커뮤니티

문의드립니다.

프로필 이미지
산골소년
2024-05-17 03:41:38
658
글번호 179623
답변완료
늘 고맙습니다. 청산식을 만들다보니 잘 이해가 안가는 부분이 있어 문의 드립니다. 아래와 같은 청산식을 돌려보았습니다. 그런데 아래 수식중 be11-2: bei12=index; 이것을 넣지않고 돌리니 진입후 바로 청산이 되어 버립니다. 왜 그런것인가요? 그 아래 if문이 없어서 그걸 다시 쓰지도 않는데 말이죠. var:be11(0),bei11(0),bei12(0),be11목표(0); if MarketPosition == 1 Then { be11=1; bei11=Index; be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry]; } if be11==1 and bei11>0 Then { be11=2; bei12=Index; ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수"); ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수"); ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-05-17 11:59:14

안녕하세요 예스스탁입니다. 1 우선 올려주신 청산식이 어떤 의도로 작성하신 내용인지 알 수가 없습니다. 2 변수는 값을 저장하면 다음에 변경하기 까지 값을 유지하게 됩니다. be11=2; bei12=Index; 작성하신 수식에서 위 내용이 있으므로 해서 매수포지션이 청산이 되면 MarketPosition이 1이 아니게 되면 2값을 유지하게 되고 다음 매수가 진입하면 1로 변경이 됩니다. 위 내용이 없으면 처음 한번 be11에 1이 저장되고 bei1에 봉번호가 저장되면 계속 그값을 유지하게 됩니다. 차트 전체상 단지 1만 가지는 내용이 되고 봉번호는 한번 저장되면 당연히 0보다 크므로 if be11==1 and bei11>0 Then 조건이 항상 만족하는 조건이 되게 됩니다. 3 작성하신 내용이 매수진입 후 be11목표 도달하면 청산 75포인트 수익이면 청산, 25포인트 손실이면 청산하는 내용이면 해당 be11,bei12는 불필요한 변수들입니다. 아래와 같이만 작성하시면 됩니다. var:be11목표(0); if MarketPosition == 1 Then { be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry]; ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수"); ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수"); ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수"); } 즐거운 하루되세요 > 산골소년 님이 쓴 글입니다. > 제목 : 문의드립니다. > 늘 고맙습니다. 청산식을 만들다보니 잘 이해가 안가는 부분이 있어 문의 드립니다. 아래와 같은 청산식을 돌려보았습니다. 그런데 아래 수식중 be11-2: bei12=index; 이것을 넣지않고 돌리니 진입후 바로 청산이 되어 버립니다. 왜 그런것인가요? 그 아래 if문이 없어서 그걸 다시 쓰지도 않는데 말이죠. var:be11(0),bei11(0),bei12(0),be11목표(0); if MarketPosition == 1 Then { be11=1; bei11=Index; be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry]; } if be11==1 and bei11>0 Then { be11=2; bei12=Index; ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수"); ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수"); ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수"); }