예스스탁
예스스탁 답변
2020-08-14 11:32:22
안녕하세요
예스스탁입니다.
올려주신 내용과 수식이면
진입이 발생하고 진입봉에서만 손절되고 다음봉시가에 무조건 청산을 하는 내용입니다.
아래와 같이 청산함수 작성해 사용하시면 됩니다.
buy("b",AtStop,H);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
sell("s",AtStop,L);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
if MarketPosition <= 0 Then
{
var1 = min(max(NextBarOpen,H),NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,var1-(H-L)*0.5);
}
Else
ExitLong("bx2",AtMarket);
if MarketPosition >= 0 Then
{
var2 = max(min(NextBarOpen,L),NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,Var2+(H-L)*0.5);
}
Else
ExitShort("sx2",AtMarket);
즐거운 하루되세요
> 군고구마 님이 쓴 글입니다.
> 제목 : 68754 질문
> 저의 원래 수식에서 빠진게 있었네요..손절되지 않으면, 마지막에 다음봉시가청산.
이렇게 해도 답변은 똑같으신 건지요?
아래 조건 추가했을 경우로 수정 부탁드립니다..
감사합니다.
----------------------------------------------------------------
시간설정
.
.
.
buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
if MarketPosition == 1 Then
ExitLong("bx2",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx2",AtMarket);
-------------------------------------------------------------
안녕하세요
예스스탁입니다.
buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
위 내용은 진입 후 시가에서 청산하는 부분인데
진입가가 시가보다 크면 진입과 청산이 동시에 발생합니다.
위 내용의 경우 진입봉이 완성되고 다음봉 시가에 청산되게 하셔야 합니다.
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
위 내용도 EntryPrice 진입후 봉이 완성되어야 값이 변경이 됩니다.
봉미완성시에 변경되는 값이 아니므로 진입과 동시에 셋팅되어 청산되는 식과
진입후 첫봉이 완성되고 청산하는 내용으로 청산식 2개를 사용하셔야 합니다.
아래는 수정한 식입니다.
buy("b",AtStop,H); if MarketPosition == -1 Then
ExitShort("sx",AtStop,NextBarOpen);
if MarketPosition == 1 Then
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
if MarketPosition <= 0 Then
ExitLong("bx1",AtStop,(NextBarOpen+(H-L)*0.5)-(H-L)*0.5);
Else
ExitLong("bx2",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
if MarketPosition >= 0 Then
ExitShort("sx1",AtStop,(NextBarOpen-(H-L)*0.5)+(H-L)*0.5);
Else
ExitShort("sx2",AtStop,EntryPrice+(H-L)*0.5);
즐거운 하루되세요
> 군고구마 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 노고에 감사드립니다.
아래 식에서 's'로 매도진입하자마자 동시에 같은가격에 바로 'sx1'으로 매도청산됩니다.
진입후, 시가 또는 진입가의 전봉레인지*0.5 변동시 청산하게 만든건데, 뭔가 잘못한거 같습니다. buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
도움 부탁드립니다.