커뮤니티

매수청산이 두번에 걸쳐서 나오는 오류입니다.

프로필 이미지
지수와함께춤을
2009-12-01 21:11:50
562
글번호 26436
답변완료
밑에는 제 매수청산 수식입니다. 현재보유수량 *2/3 만 청산하는게 목적인데요 매수진입이 한번일때는 상관없습니다만 매수진입이 2번 이상일때는 총수량*2/3 으로 한번 매수청산되고 나머지수량*2/3으로 또 매수청산 됩니다. 뭐가 문제인지요? If MarketPosition == 1 then { if sdate >= 날짜 and (C >= mav4*0.98 or C >= mav5*0.98 ) Then { ExitLong("all수익4ma",onclose,def,"", CurrentContracts*2/3,1); }}
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-12-02 09:35:11

안녕하세요 예스스탁입니다 분할청산을 의도하실 경우에는 분할청산횟수에 따라 모두 작성해 주셔야 합니다. 또한 하나의 청산식은 분할진입횟수만큼 동작하게 됩니다. 그러므로 하나의 청산식이 여러번 발동될수 있습니다. 또한 CurrentContracts는 현재 미청산된 수량이므로 청산후의 수량의 2/3으로 청산되게 됩니다. 1. 경우의 수별로 청산이 동작하게끔 작성해 주셔야 하며 2. 수량 분할에 대한 계산식이 필요합니다. if MarketPosition == 1 Then{ # 매수진입 후 if CurrentEntries > CurrentEntries[1] Then{ # 진입횟수가 상승시마다 수량계산 var1 = CurrentContracts; var2 = var1*(2/3); var3 = (var1-var2); } if MaxEntries == 1 Then{ # 진입이 한번일 경우 if 청산식1 Then ExitLong("Bx1",onclose,def,"",var2,1); if 청산식2 Then ExitLong("Bx2",onclose,def,"",var3,1); } if MaxEntries == 2 Then{ # 진입이 두번일 경우 if CurrentEntries == 2 and 청산식1 Then # 2번진입 후 첫번째 청산 ExitLong("BX3",onclose,def,"",var2,1); if CurrentEntries == 1 and 청산식2 Then # 2번진입 후 두번째 청산 ExitLong("Bx4",onclose,def,"",var3,1); } } 해당 식을 참고하시기 바랍니다. 즐거운 하루되세요 > 지수와함께춤을 님이 쓴 글입니다. > 제목 : 매수청산이 두번에 걸쳐서 나오는 오류입니다. > 밑에는 제 매수청산 수식입니다. 현재보유수량 *2/3 만 청산하는게 목적인데요 매수진입이 한번일때는 상관없습니다만 매수진입이 2번 이상일때는 총수량*2/3 으로 한번 매수청산되고 나머지수량*2/3으로 또 매수청산 됩니다. 뭐가 문제인지요? If MarketPosition == 1 then { if sdate >= 날짜 and (C >= mav4*0.98 or C >= mav5*0.98 ) Then { ExitLong("all수익4ma",onclose,def,"", CurrentContracts*2/3,1); }}