커뮤니티

문의드립니다.

프로필 이미지
회원
2013-06-03 16:17:56
242
글번호 63923
답변완료
안녕하세요. 항상 감사합니다. 작성한 수식의 성능보고서에서 최대손실과 최대손실폭이 커서 줄일수 있는 방안을 생각중입니다. 좋은 방안이 있다면 조언 부탁드립니다. 수식 부탁드려요. 간단한 장기 이평선 크로스 매매를 예로 진입 이후 n%의 손실이 날때마다 한계약씩 추가하여 x번까지 추가하고, 마지막 추가매수 이후 생긴 저점에 대비해서 n/2 % 오를때마다 청산합니다. 즉, 250에 추가매수가 되었고, 그 이후 저점이 249에서 n/2 % 오르면 1차 추가매수분 정리.. 그런데 2차 매수까지 되었다면, 2차분은 다시 그 이후 생긴 저점대비 n/2% 오른 자리에서 청산하고, 1차 매수분은 2차매수분 청산자리에서 추가로 n/2% 오르면 거기서 청산하는 것입니다. 예를들어 n=1이고, 3차매수까지 되었다면, 3차매수 이후 생긴 저점대비 0.5% 오르면 3차매수분 청산, 1% 오르면 2차매수분 청산, 1.5% 오르면 1차매수분 청산 이렇게 되는것입니다. 단 마지막 진입 이후 추가로 n%가 더 하락하면 추가매수분은 전량 손절입니다.(최초 진입분은 매도 또는 청산신호에 따릅니다.) 최초 진입신호 후 청산신호나 반대신호가 나온다면, 그 자리에서 최초진입분은 물론 추가진입 분까지 모두 청산합니다. 여기까지 식 하나를 부탁드리고.... 또 다른 하나의 식은... 이때(추가매수 이후 최초진입의 청산신호나 반대 진입 신호가 나왔을때) 추가매수까지 청산하는게 아니라 최초진입분은 신규신호와 청산신호에 적용하고, 추가 진입분은 n/2% 반등을 그대로 적용하는 식입니다.( 이것도 역시 n% 하락하고 나면 추가진입분은 모두 손절하는 식입니다.) 잘 부탁드립니다. 감사합니다.^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-06-03 18:05:12

안녕하세요 예스스탁입니다. 1. input : N(1),X(3); var : Bxcnt(0),Sxcnt(0),Xper(0); Xper = N/2; var1 = ma(c,60); if MarketPosition <= 0 and crossup(c,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then value1 = L; if L < value1 Then value1 = L; if CurrentContracts < CurrentContracts[1] Then{ Bxcnt = Bxcnt+1; Condition1 = true; } if CurrentEntries < X and Condition1 == false Then buy("bb",atlimit,EntryPrice*(1-(N*CurrentEntries)/100),1); ExitLong("bx",Atlimit,value1*(1+(Xper*Bxcnt)/100),"",1,1); ExitLong("bloss",AtStop,EntryPrice*(1-(N*X)/100)); } Else{ Condition1 = false; Bxcnt = 1; } if MarketPosition >= 0 and CrossDown(c,var1) Then Sell("s",OnClose,def,1); if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] Then value2 = H; if H > value2 Then value2 = H; if CurrentContracts < CurrentContracts[1] Then{ Sxcnt = Sxcnt+1; Condition2 = true; } if CurrentEntries < X and Condition2 == false Then Sell("ss",atlimit,EntryPrice*(1+(N*CurrentEntries)/100),1); ExitShort("sx",Atlimit,value2*(1-(Xper*Bxcnt)/100),"",1,1); ExitShort("sloss",AtStop,EntryPrice*(1+(N*X)/100)); } Else{ Condition2 = false; Sxcnt = 1; } 2. input : N(1),X(3); var : Bxcnt(0),Sxcnt(0),Xper(0); Xper = N/2; var1 = ma(c,60); if MarketPosition == 0 and crossup(c,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then value1 = L; if L < value1 Then value1 = L; if CurrentContracts < CurrentContracts[1] Then{ Bxcnt = Bxcnt+1; Condition1 = true; } if CurrentEntries < X and Condition1 == false Then buy("bb",atlimit,EntryPrice*(1-(N*CurrentEntries)/100),1); ExitLong("bx",Atlimit,value1*(1+(Xper*Bxcnt)/100),"",1,1); ExitLong("bloss",AtStop,EntryPrice*(1-(N*X)/100)); if CrossDown(c,var1) Then ExitLong("bxx",OnClose,def,"b"); } Else{ Condition1 = false; Bxcnt = 1; } if MarketPosition == 0 and CrossDown(c,var1) Then Sell("s",OnClose,def,1); if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] Then value2 = H; if H > value2 Then value2 = H; if CurrentContracts < CurrentContracts[1] Then{ Sxcnt = Sxcnt+1; Condition2 = true; } if CurrentEntries < X and Condition2 == false Then Sell("ss",atlimit,EntryPrice*(1+(N*CurrentEntries)/100),1); ExitShort("sx",Atlimit,value2*(1-(Xper*Bxcnt)/100),"",1,1); ExitShort("sloss",AtStop,EntryPrice*(1+(N*X)/100)); if crossup(c,var1) Then ExitShort("sxx",OnClose,def,"s"); } Else{ Condition2 = false; Sxcnt = 1; } 즐거운 하루되세요 > HI_jhy6835 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요. 항상 감사합니다. 작성한 수식의 성능보고서에서 최대손실과 최대손실폭이 커서 줄일수 있는 방안을 생각중입니다. 좋은 방안이 있다면 조언 부탁드립니다. 수식 부탁드려요. 간단한 장기 이평선 크로스 매매를 예로 진입 이후 n%의 손실이 날때마다 한계약씩 추가하여 x번까지 추가하고, 마지막 추가매수 이후 생긴 저점에 대비해서 n/2 % 오를때마다 청산합니다. 즉, 250에 추가매수가 되었고, 그 이후 저점이 249에서 n/2 % 오르면 1차 추가매수분 정리.. 그런데 2차 매수까지 되었다면, 2차분은 다시 그 이후 생긴 저점대비 n/2% 오른 자리에서 청산하고, 1차 매수분은 2차매수분 청산자리에서 추가로 n/2% 오르면 거기서 청산하는 것입니다. 예를들어 n=1이고, 3차매수까지 되었다면, 3차매수 이후 생긴 저점대비 0.5% 오르면 3차매수분 청산, 1% 오르면 2차매수분 청산, 1.5% 오르면 1차매수분 청산 이렇게 되는것입니다. 단 마지막 진입 이후 추가로 n%가 더 하락하면 추가매수분은 전량 손절입니다.(최초 진입분은 매도 또는 청산신호에 따릅니다.) 최초 진입신호 후 청산신호나 반대신호가 나온다면, 그 자리에서 최초진입분은 물론 추가진입 분까지 모두 청산합니다. 여기까지 식 하나를 부탁드리고.... 또 다른 하나의 식은... 이때(추가매수 이후 최초진입의 청산신호나 반대 진입 신호가 나왔을때) 추가매수까지 청산하는게 아니라 최초진입분은 신규신호와 청산신호에 적용하고, 추가 진입분은 n/2% 반등을 그대로 적용하는 식입니다.( 이것도 역시 n% 하락하고 나면 추가진입분은 모두 손절하는 식입니다.) 잘 부탁드립니다. 감사합니다.^^