커뮤니티

재질문 드립니다.

프로필 이미지
기똥찬
2009-09-23 18:19:15
719
글번호 24945
답변완료
수고가 많으십니다. 아래 저의 질문에 대한 답변은 잘 보았습니다. 그런데, 제가 질문을 너무 간단하게 했는지, 의도한 질문의 답은 아니라서 예를 들어서 다시 질문드리겠습니다. 아래 수식으로 시뮬을 해보면 진입한 봉에서도 손절이 가능한데요. 제가 원하는 것은 "매수A" 또는 "매수B"가 발생한 봉에서는 손절이나 이익실현 발생할수 있으나 "매수C"가 발생하는 봉에서는 이익실현은 발생하여도 되지만, 손절은 다음봉부터 적용되도록 하는 수식을 부탁드립니다. Var1 = ma(C, 5); Var2 = ma(C, 20); Var3 = ma(C, 60); If CrossUp(Var1, Var2) Then Buy("매수A"); If CrossUp(Var2, Var3) Then Buy("매수B"); Buy("매수C", Atlimit, Var2*0.98); If Var2[1] < Var2 Then setstoploss(1); Else setstoploss(0.5); SetStopProfittarget(0.7);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-09-24 10:12:59

안녕하세요 예스스탁입니다. 가능하지 않다고 설명드린이유는 진입별로 강제청산을 제어하게 되면 if문을 사용해야 하는데 if문은 봉완성하고 조건을 판단하고 스탑을 걸게 되므로 모든 진입이 다음봉 부터 청산이 발동하게 됩니다. 이상태에서 진입봉에 강제청산이 나온다면 현재봉의 조건이 아닌 전봉의 조건으로 셋팅된 값으로 강체청산이 발동한 것입니다. 작성하신 식이 매수A와 B는 봉완성시 주문이고 매수C만 진입봉에서 강제청산이 발생하는 식이므로 아래와 같이 제어하시면 될 것 같습니다. Var1 = ma(C, 5); Var2 = ma(C, 20); Var3 = ma(C, 60); if MarketPosition == 0 Then{ If CrossUp(Var1, Var2) Then{ Buy("매수A"); } If CrossUp(Var2, Var3) Then{ Buy("매수B"); } Buy("매수C", Atlimit, Var2*0.98); } if MarketPosition == 1 Then{ If Var2[1] < Var2 Then setstoploss(1); Else setstoploss(0.5); } Else setstoploss(0); SetStopProfittarget(0.7); 즐거운 하루되세요 > 기똥찬 님이 쓴 글입니다. > 제목 : 재질문 드립니다. > 수고가 많으십니다. 아래 저의 질문에 대한 답변은 잘 보았습니다. 그런데, 제가 질문을 너무 간단하게 했는지, 의도한 질문의 답은 아니라서 예를 들어서 다시 질문드리겠습니다. 아래 수식으로 시뮬을 해보면 진입한 봉에서도 손절이 가능한데요. 제가 원하는 것은 "매수A" 또는 "매수B"가 발생한 봉에서는 손절이나 이익실현 발생할수 있으나 "매수C"가 발생하는 봉에서는 이익실현은 발생하여도 되지만, 손절은 다음봉부터 적용되도록 하는 수식을 부탁드립니다. Var1 = ma(C, 5); Var2 = ma(C, 20); Var3 = ma(C, 60); If CrossUp(Var1, Var2) Then Buy("매수A"); If CrossUp(Var2, Var3) Then Buy("매수B"); Buy("매수C", Atlimit, Var2*0.98); If Var2[1] < Var2 Then setstoploss(1); Else setstoploss(0.5); SetStopProfittarget(0.7);