커뮤니티

시스템식 부탁 드립니다.

프로필 이미지
몸통공격
2013-07-18 11:27:14
161
글번호 65466
답변완료
아래와 같이 시스템을 만들었는데 목표값 익절 후에는 재진입이 안됩니다. (목표수익 후에는 재진입이 없는 것으로 설정했으니까 맞습니다.) 이를 근간으로 하여 변형 좀 부탁 드립니다. 1. 변형식A. 목표값 익절 후에 익절 방향과 다른 반대 쪽 진입조건이 되면 재진입하도록 변경 부탁드립니다. 2.변형식B. 손절이 된 후에 반대편 진입은 나와도 되는데 손절됐던 방향으로 즉시 재진입이 되는데 이것을 막는 방법이 없을까요? 제가 생각하건데 진입조건식이 두가지인 OR 이 있다보니 손절이 된 후에는 다른 진입조건이 만족 되어서 진입식이 나오는 것 같은데 OR 조건으로 되어 있어서 안될 것 같긴한데 방법이 있다면 바꿔 주십시오. 감사합니다. # 매수/ If (매수조건1) or (매수조건2) then{ if count == 0 Then#당일첫진입일때는 매수조건만족시 진입 buy("b1"); if count > 0 Then {#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and IsExitName("StopProfittarget",1) == false Then Buy("b2"); #매도포지션 상태이고 저가가 진입가-1보다 클때만 진입 if MarketPosition == -1 and L > EntryPrice-2.00 Then buy("b3"); #매도포지션 상태이고 저가가 진입가-1보다 작으면 청산만 if MarketPosition == -1 and L < EntryPrice-2.00 Then ExitShort("sx"); } } # 매도/ If (매도조건1) or (매도조건2) Then{ if count == 0 Then#당일첫진입일때는 매도조건만족시 진입 Sell("s1"); if count > 0 then{#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and IsExitName("StopProfittarget",1) == false Then Sell("s2"); #매수포지션 상태이고 고가가 진입가+1보다 클때만 진입 if MarketPosition == 1 and H < EntryPrice+2.00 Then Sell("s3"); #매수포지션 상태이고 고가가 진입가+1보다 크면 청산만 if MarketPosition == 1 and H > EntryPrice+2.00 Then ExitLong("bx"); } } SetStopLoss(2,PointStop); SetStopProfittarget(2.00,PointStop); SetStopEndofday(150000);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-07-18 15:33:17

안녕하세요 예스스탁입니다. 1. # 매수/ If (매수조건1) or (매수조건2) then{ if count == 0 Then#당일첫진입일때는 매수조건만족시 진입 buy("b1"); if count > 0 Then {#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and (isExitName("StopProfittarget",1) == false or (MarketPosition(1) == -1 and IsExitName("StopProfittarget",1) == true)) then Buy("b2"); #매도포지션 상태이고 저가가 진입가-1보다 클때만 진입 if MarketPosition == -1 and L > EntryPrice-2.00 Then buy("b3"); #매도포지션 상태이고 저가가 진입가-1보다 작으면 청산만 if MarketPosition == -1 and L < EntryPrice-2.00 Then ExitShort("sx"); } } # 매도/ If (매도조건1) or (매도조건2) Then{ if count == 0 Then#당일첫진입일때는 매도조건만족시 진입 Sell("s1"); if count > 0 then{#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and (isExitName("StopProfittarget",1) == false or (MarketPosition(1) == 1 and IsExitName("StopProfittarget",1) == true)) Then Sell("s2"); #매수포지션 상태이고 고가가 진입가+1보다 클때만 진입 if MarketPosition == 1 and H < EntryPrice+2.00 Then Sell("s3"); #매수포지션 상태이고 고가가 진입가+1보다 크면 청산만 if MarketPosition == 1 and H > EntryPrice+2.00 Then ExitLong("bx"); } } SetStopLoss(2,PointStop); SetStopProfittarget(2.00,PointStop); SetStopEndofday(150000); 2. 동일방향거래가 손절로 끝난 경우에는 청산후 최소 1봉이상 경과후에 조건만족하면 신호가 발생하게 작성했습니다. # 매수/ If (매수조건1) or (매수조건2) then{ if count == 0 Then#당일첫진입일때는 매수조건만족시 진입 buy("b1"); if count > 0 Then {#당일 두번째 진입부터 #현재 무포지션이고 if MarketPosition == 0 and ExitDate(1) == sdate Then{ #직전진입의 청산이 손절이나 목표수익이 아니면 매수진입 if isExitName("StopProfittarget",1) == false and IsExitName("StopLoss") == false Then buy("b2-1"); #직전진입이 매도진입이고 목표수익으로 끝난경우이면 매수진입 if IsExitName("StopProfittarget",1) == true and MarketPosition(1) == -1 Then buy("b2-2"); #직전진입이 매도진입이고 손절로 끝난경우에는 매수진입 if IsExitName("StopLoss",1) == true and MarketPosition(1) == 1 then Buy("b2-3"); #직전진입이 매수진입이고 손절로 끝난경우에는 청산후 1봉 이상 경과후에 매수진입 if IsExitName("StopLoss",1) == true and MarketPosition(1) == 1 and BarsSinceExit(1) > 0 then Buy("b2-4"); } #매도포지션 상태이고 저가가 진입가-1보다 클때만 진입 if MarketPosition == -1 and L > EntryPrice-2.00 Then buy("b3"); #매도포지션 상태이고 저가가 진입가-1보다 작으면 청산만 if MarketPosition == -1 and L < EntryPrice-2.00 Then ExitShort("sx"); } } # 매도/ If (매도조건1) or (매도조건2) Then{ if count == 0 Then#당일첫진입일때는 매도조건만족시 진입 Sell("s1"); if count > 0 then{#당일 두번째 진입부터 #현재 무포지션 if MarketPosition == 0 and ExitDate(1) == sdate Then{ #직전진입의 청산이 손절이나 목표수익이 아니면 매도진입 if isExitName("StopProfittarget",1) == false and IsExitName("StopLoss") == false Then Sell("s2-1"); #직전진입이 매수진입이고 목표수익으로 끝난경우이면 매도진입 if IsExitName("StopProfittarget",1) == true and MarketPosition(1) == -1 Then Sell("s2-2"); #직전진입이 매수진입이고 손절로 끝난경우에는 매도진입 if IsExitName("StopLoss",1) == true and MarketPosition(1) == 1 then Sell("s2-3"); #직전진입이 매도진입이고 손절로 끝난경우에는 청산후 1봉 이상 경과후에 매도진입 if IsExitName("StopLoss",1) == true and MarketPosition(1) == 1 and BarsSinceExit(1) > 0 then Sell("s2-4"); } #매수포지션 상태이고 고가가 진입가+1보다 클때만 진입 if MarketPosition == 1 and H < EntryPrice+2.00 Then Sell("s3"); #매수포지션 상태이고 고가가 진입가+1보다 크면 청산만 if MarketPosition == 1 and H > EntryPrice+2.00 Then ExitLong("bx"); } } SetStopLoss(2,PointStop); SetStopProfittarget(2.00,PointStop); SetStopEndofday(150000); 즐거운 하루되세요 > 몸통공격 님이 쓴 글입니다. > 제목 : 시스템식 부탁 드립니다. > 아래와 같이 시스템을 만들었는데 목표값 익절 후에는 재진입이 안됩니다. (목표수익 후에는 재진입이 없는 것으로 설정했으니까 맞습니다.) 이를 근간으로 하여 변형 좀 부탁 드립니다. 1. 변형식A. 목표값 익절 후에 익절 방향과 다른 반대 쪽 진입조건이 되면 재진입하도록 변경 부탁드립니다. 2.변형식B. 손절이 된 후에 반대편 진입은 나와도 되는데 손절됐던 방향으로 즉시 재진입이 되는데 이것을 막는 방법이 없을까요? 제가 생각하건데 진입조건식이 두가지인 OR 이 있다보니 손절이 된 후에는 다른 진입조건이 만족 되어서 진입식이 나오는 것 같은데 OR 조건으로 되어 있어서 안될 것 같긴한데 방법이 있다면 바꿔 주십시오. 감사합니다. # 매수/ If (매수조건1) or (매수조건2) then{ if count == 0 Then#당일첫진입일때는 매수조건만족시 진입 buy("b1"); if count > 0 Then {#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and IsExitName("StopProfittarget",1) == false Then Buy("b2"); #매도포지션 상태이고 저가가 진입가-1보다 클때만 진입 if MarketPosition == -1 and L > EntryPrice-2.00 Then buy("b3"); #매도포지션 상태이고 저가가 진입가-1보다 작으면 청산만 if MarketPosition == -1 and L < EntryPrice-2.00 Then ExitShort("sx"); } } # 매도/ If (매도조건1) or (매도조건2) Then{ if count == 0 Then#당일첫진입일때는 매도조건만족시 진입 Sell("s1"); if count > 0 then{#당일 두번째 진입부터 #무포지션이면 직전진입이 SetStopProfittarget으로 청산된게 아닐때만 진입 if MarketPosition == 0 and ExitDate(1) == sdate and IsExitName("StopProfittarget",1) == false Then Sell("s2"); #매수포지션 상태이고 고가가 진입가+1보다 클때만 진입 if MarketPosition == 1 and H < EntryPrice+2.00 Then Sell("s3"); #매수포지션 상태이고 고가가 진입가+1보다 크면 청산만 if MarketPosition == 1 and H > EntryPrice+2.00 Then ExitLong("bx"); } } SetStopLoss(2,PointStop); SetStopProfittarget(2.00,PointStop); SetStopEndofday(150000);