커뮤니티

68754 질문

프로필 이미지
군고구마
2020-08-13 22:24:39
1157
글번호 141483
답변완료
저의 원래 수식에서 빠진게 있었네요..손절되지 않으면, 마지막에 다음봉시가청산. 이렇게 해도 답변은 똑같으신 건지요? 아래 조건 추가했을 경우로 수정 부탁드립니다.. 감사합니다. ---------------------------------------------------------------- 시간설정 . . . 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); 도움 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

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); 도움 부탁드립니다.