커뮤니티
매수 매도 중 한쪽만 사용
2016-05-23 13:59:59
121
글번호 98357
안녕하세요.
시스템 식을 검증시 매수쪽은 수익이 많이 나나 매도쪽은 수익이 잘 안나는 경우가 있어 매수만 진행하려고 매도식을 삭제하면 수익이 마이너스로 돌아서는 경우가 있습니다.
아마도 기존 매도 구간일 경우 매수가 새롭게 발생하여 그런 것으로 생각되어 매도 구간에 매수가 일어 나지 않도록 해 보았지만 동일한 매수 수익이 발생되지 않습니다.
특히 atstop 이나 atmarket 을 사용하는 경우에는 더욱 감이 안 잡힙니다.
검토해 보시고 해법을 알려 주실 수 있으면 감사하겠습니다.
감사합니다.
< 조건 >
If 마켓포지션 == 0 Then Begin
Buy("매수",atstop,high);
End;
If < 청산조건 > Then exitlong();
< 조건 >
If 마켓포지션 == 0 Then Begin # If marketposition == 0 Then Begin
If close < low Then 마켓포지션 = -1; # Sell("매도",atstop,low);
End; # End;
If < 청산조건 > Then 마켓포지션 = 0; # If < 청산조건 > Then exitshort();
위 식과 같이 바꿔 봤는데 결과가 다르네요.
atlimit의 경우도 같이 설명해 주시면 감사하겠습니다. ^^
답변 1
예스스탁 예스스탁 답변
2016-05-23 16:23:28
안녕하세요
예스스탁입니다.
atstop은
매수주문(Buy,Exitshort)에서는 봉완성시 특정가격을 셋팅하고
다음봉에서 해당 가격이상의 시세가 발생하면 신호가 발생하는 타입이고
매도주문(Buy,Exitshort)에서는 봉완성시 특정가격을 셋팅하고
다음봉에서 해당 가격이하의 시세가 발생하면 신호가 발생하는 타입입니다.
현재봉이 if문 만족하면 가격을 셋팅하고
다음봉이 해당가격이상이나 이하이면 즉시 신호가 발생하므로
현재봉의 가격중 해당 가격이상인지 이하인지 파악해야 하므로
종가로만 판단하면 맞지 않고 또한 if문도 현재봉이 아닌 전봉까지 염두에 두셔야 합니다.
즉 무포지션이면 다음봉에서 신호가 발생하므로
아래와 같이 현재봉과 전봉이 모두 무포지션이고
저가가 전봉저가보다 작으면 포지션을 -1로 돌리셔야 합니다.
If 마켓포지션 == 0 Then Begin
Buy("매수",atstop,high);
End;
If < 청산조건 > Then exitlong();
If 마켓포지션 == 0 마켓포지션[1] == 0 and L <= L[1] Then
마켓포지션 = -1;
If 마켓포지션 == -1 and < 청산조건 > Then
마켓포지션 = 0;
atlimit은 각주문함수에서 바로보는 방향이 atstop과 반대입니다
매수주문(Buy,Exitshort)에서는 봉완성시 특정가격을 셋팅하고
다음봉에서 해당 가격이하의 시세가 발생하면 신호가 발생하는 타입이고
매도주문(Buy,Exitshort)에서는 봉완성시 특정가격을 셋팅하고
다음봉에서 해당 가격이상의 시세가 발생하면 신호가 발생하는 타입입니다.
if 마켓포지션 == 0 Then
buy("b",atlimit,L);
if 마켓포지션 == 0 Then
sell("s",atlimit,H);
if 마켓포지션 == 0 and 마켓포지션[1] == 0 and L <= L[1] Then
마켓포지션 = 1;
if 마켓포지션 == 0 and 마켓포지션[1] == 0 and H >= H[1] Then
마켓포지션 = -1;
onclose와 atmarket은
봉완성시 신호가 발생하고 onclose는 종가, atmarket은 다음봉시가를
진입청산가격으로 사용하는 타입니다.
즐거운 하루되세요
> 다니엘87 님이 쓴 글입니다.
> 제목 : 매수 매도 중 한쪽만 사용
> 안녕하세요.
시스템 식을 검증시 매수쪽은 수익이 많이 나나 매도쪽은 수익이 잘 안나는 경우가 있어 매수만 진행하려고 매도식을 삭제하면 수익이 마이너스로 돌아서는 경우가 있습니다.
아마도 기존 매도 구간일 경우 매수가 새롭게 발생하여 그런 것으로 생각되어 매도 구간에 매수가 일어 나지 않도록 해 보았지만 동일한 매수 수익이 발생되지 않습니다.
특히 atstop 이나 atmarket 을 사용하는 경우에는 더욱 감이 안 잡힙니다.
검토해 보시고 해법을 알려 주실 수 있으면 감사하겠습니다.
감사합니다.
< 조건 >
If 마켓포지션 == 0 Then Begin
Buy("매수",atstop,high);
End;
If < 청산조건 > Then exitlong();
< 조건 >
If 마켓포지션 == 0 Then Begin # If marketposition == 0 Then Begin
If close < low Then 마켓포지션 = -1; # Sell("매도",atstop,low);
End; # End;
If < 청산조건 > Then 마켓포지션 = 0; # If < 청산조건 > Then exitshort();
위 식과 같이 바꿔 봤는데 결과가 다르네요.
atlimit의 경우도 같이 설명해 주시면 감사하겠습니다. ^^