커뮤니티

수정부탁드립니다.

프로필 이미지
대구어린울프
2020-04-03 17:22:53
515
글번호 137516
답변완료

첨부 이미지

안녕하세요? 손절이 범위를 벗어나지않게 되도록 수정부탁드립니다. 금일 거래된차트와 변수 첨부하였으니 참조해주시고, 익절은 잘 되고있는 상태입니다. 감사합니다. input : 매수전봉양봉틱수(5),매수현재양봉틱수(5); input : 매도전봉음봉틱수(5),매도현재음봉틱수(5); input : 진입횟수(5); input : 익절틱수(50),손절틱수(4); input : P1(5),P2(20); var : entry(0),mav1(0),mav2(0),T1(0); mav1 = ma(C,P1); mav2 = ma(C,P2); #영업일 변경 if bdate != bdate[1] Then { T1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if mav1 > mav2 and #정배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매수나 무포지션 상태 C[1] == O[1]-매도전봉음봉틱수*PriceScale and C[0] == O[0]-매도현재음봉틱수*PriceScale Then { sell("s"); if entry < 진입횟수-1 then buy("bs1",AtStop,C+PriceScale*4); Else ExitShort("sx1",AtStop,C+PriceScale*4); } if mav1 < mav2 and #역배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매도나 무포지션 상태 C[1] == O[1]+매수전봉양봉틱수*PriceScale and C[0] == O[0]+매수현재양봉틱수*PriceScale Then { buy("b"); if entry < 진입횟수-1 Then sell("sb1",AtStop,C-PriceScale*4); Else ExitShort("bx1",AtStop,C-PriceScale*4); } #매수진입 후 손절되면 매도로 스위칭 if MarketPosition == 1 Then { if entry < 진입횟수 Then sell("bs",AtStop,EntryPrice-PriceScale*손절틱수); Else ExitLong("bsx",AtStop,EntryPrice-PriceScale*손절틱수); } #매도진입 후 손절되면 매수로 스위칭 if MarketPosition == -1 and entry < 진입횟수 Then { if entry < 진입횟수 Then buy("sb",AtStop,EntryPrice+PriceScale*손절틱수); Else ExitShort("sbx",AtStop,EntryPrice+PriceScale*손절틱수); } #목표수익 설정 SetStopProfittarget(PriceScale*익절틱수,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-04-03 21:02:34

안녕하세요 예스스탁입니다. 식 수정해 드립니다. 66804문의 아래에 이전에 3개식에 대한 진입횟수 처리한 식을 답변드렸습니다. 참고하시기 바랍니다. input : 매수전봉양봉틱수(5),매수현재양봉틱수(5); input : 매도전봉음봉틱수(5),매도현재음봉틱수(5); input : 진입횟수(5); input : 익절틱수(50),손절틱수(4); input : P1(5),P2(20); var : entry(0),mav1(0),mav2(0),T1(0); mav1 = ma(C,P1); mav2 = ma(C,P2); if bdate != bdate[1] Then { entry = 0; } #현재봉이 무포지션이 아니고 전봉과 현재봉의 포지션이 다를때 if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) then entry = entry +1; #현재봉과 전봉의 포지션은 같은데 총거래횟수가 증가했을때(봉하나에서 진입청산이 모두 발생) if (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry +1; if mav1 > mav2 and #정배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매수나 무포지션 상태 C[1] == O[1]-매도전봉음봉틱수*PriceScale and C[0] == O[0]-매도현재음봉틱수*PriceScale Then { sell("s"); if entry < 진입횟수-1 then buy("bs1",AtStop,C+PriceScale*4); Else ExitShort("sx1",AtStop,C+PriceScale*4); } if mav1 < mav2 and #역배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매도나 무포지션 상태 C[1] == O[1]+매수전봉양봉틱수*PriceScale and C[0] == O[0]+매수현재양봉틱수*PriceScale Then { buy("b"); if entry < 진입횟수-1 Then sell("sb1",AtStop,C-PriceScale*4); Else ExitShort("bx1",AtStop,C-PriceScale*4); } #매수진입 후 손절되면 매도로 스위칭 if MarketPosition == 1 Then { if entry < 진입횟수 Then sell("bs",AtStop,EntryPrice-PriceScale*손절틱수); Else ExitLong("bsx",AtStop,EntryPrice-PriceScale*손절틱수); } #매도진입 후 손절되면 매수로 스위칭 if MarketPosition == -1 Then { if entry < 진입횟수 Then buy("sb",AtStop,EntryPrice+PriceScale*손절틱수); Else ExitShort("sbx",AtStop,EntryPrice+PriceScale*손절틱수); } #목표수익 설정 SetStopProfittarget(PriceScale*익절틱수,PointStop); 즐거운 하루되세요 > 대구어린울프 님이 쓴 글입니다. > 제목 : 수정부탁드립니다. > 안녕하세요? 손절이 범위를 벗어나지않게 되도록 수정부탁드립니다. 금일 거래된차트와 변수 첨부하였으니 참조해주시고, 익절은 잘 되고있는 상태입니다. 감사합니다. input : 매수전봉양봉틱수(5),매수현재양봉틱수(5); input : 매도전봉음봉틱수(5),매도현재음봉틱수(5); input : 진입횟수(5); input : 익절틱수(50),손절틱수(4); input : P1(5),P2(20); var : entry(0),mav1(0),mav2(0),T1(0); mav1 = ma(C,P1); mav2 = ma(C,P2); #영업일 변경 if bdate != bdate[1] Then { T1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if mav1 > mav2 and #정배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매수나 무포지션 상태 C[1] == O[1]-매도전봉음봉틱수*PriceScale and C[0] == O[0]-매도현재음봉틱수*PriceScale Then { sell("s"); if entry < 진입횟수-1 then buy("bs1",AtStop,C+PriceScale*4); Else ExitShort("sx1",AtStop,C+PriceScale*4); } if mav1 < mav2 and #역배열 entry < 진입횟수 and #진입횟수가 지정한 값 이하 bdate == bdate[1] and MarketPosition == 0 and #매도나 무포지션 상태 C[1] == O[1]+매수전봉양봉틱수*PriceScale and C[0] == O[0]+매수현재양봉틱수*PriceScale Then { buy("b"); if entry < 진입횟수-1 Then sell("sb1",AtStop,C-PriceScale*4); Else ExitShort("bx1",AtStop,C-PriceScale*4); } #매수진입 후 손절되면 매도로 스위칭 if MarketPosition == 1 Then { if entry < 진입횟수 Then sell("bs",AtStop,EntryPrice-PriceScale*손절틱수); Else ExitLong("bsx",AtStop,EntryPrice-PriceScale*손절틱수); } #매도진입 후 손절되면 매수로 스위칭 if MarketPosition == -1 and entry < 진입횟수 Then { if entry < 진입횟수 Then buy("sb",AtStop,EntryPrice+PriceScale*손절틱수); Else ExitShort("sbx",AtStop,EntryPrice+PriceScale*손절틱수); } #목표수익 설정 SetStopProfittarget(PriceScale*익절틱수,PointStop);