커뮤니티

피라미딩 관련 질문

프로필 이미지
히익
2022-06-26 23:56:52
1208
글번호 160197
답변완료

첨부 이미지

안녕하세요! 예스트레이더 참 잘 이용하고 있습니다. 간단한 터틀 트레이딩에 자금관리와 피라미딩을 적용했는데, 피라미딩에서 문제가 있습니다. 매수,매도 최초진입 바로 다음 봉에서 피라미딩 조건이 발생하는 경우에는 피라미딩이 적용되지 않는 것 같습니다. 진입 바로 다음봉이 아닌 상황에서는 피라미딩이 올바르게 적용되는데 말이죠.. 수식은 아래와 같습니다. 항상 도움 주셔서 감사드립니다. input : capital(1000000000),ATRperiod(20),num(3),ABC(0.01); Var : Nprice(0),E_num(0),N(0); N=ATR(ATRperiod); Nprice=(ATR(ATRperiod)*2)*bigpointvalue; E_num=Int((capital+(NetProfit*bigpointvalue)*ABC)/Nprice); ///////////////////////////////////////////////////////// input : period(20),period1(20); Var1=Highest(H,period); Var2=Lowest(L,period); if MarketPosition == 0 And CrossUp(C,Var1[1]) Then Begin buy("매수",Def,Def,E_num); Var30=Index; End; If MarketPosition == 1 and crossup(c,latestEntryPrice+N[Index-Var30]) and CurrentEntries<num Then Begin buy("매수 피라미딩",Def,Def,E_num); Var30=Index; End; if MarketPosition == 1 Then Begin ExitLong("매수청산",AtStop,Lowest(L,period1)); ExitLong("매수 손절",Atstop,entryprice-N[BarsSinceEntry]*2); ExitLong("매수 피라미딩 손절",AtStop,LatestEntryPrice-(2*N[Index-Var30])); End; ///////////////////////////////////////////////////////// If MarketPosition == 0 And CrossDown(C,Var2[1]) Then Begin Sell("매도",Def,Def,E_num); Var40=Index; End; If MarketPosition == -1 and CrossDown(C,LatestEntryPrice-N[Index-Var40]) and CurrentEntries<num Then Begin Sell("매도 피라미딩",Def,Def,E_num); Var40=Index; End; If MarketPosition == -1 Then Begin ExitShort("매도청산",Atstop,Highest(H,period1)); ExitShort("매도 손절",Atstop,entryprice+N[BarsSinceEntry]*2); ExitShort("매도 피라미딩 손절",AtStop,LatestEntryPrice+(2*N[Index-Var40])); End; MessageLog("%.2f %.2f %.2f",LatestEntryPrice-N[Index-Var40],CurrentEntries,LatestEntryPrice);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-06-27 13:58:44

안녕하세요 예스스탁입니다. 피라미딩은 첫진입 다음봉에도 발생할 수 있습니다. 수식상 두번째 봉에 신호가 발생하지 않게 작성된 내용도 없습니다. 랭귀지의 if문은 봉완성시가 기준입니다. 작성하신 내용은 봉완성시 종가가 최고가나 최저가 갱신시 진입이고 이후 추가진입도 종가가 최근 진입가+-atr보다 크거나 같아야 합니다. 즐거운 하루되세요 > 히익 님이 쓴 글입니다. > 제목 : 피라미딩 관련 질문 > 안녕하세요! 예스트레이더 참 잘 이용하고 있습니다. 간단한 터틀 트레이딩에 자금관리와 피라미딩을 적용했는데, 피라미딩에서 문제가 있습니다. 매수,매도 최초진입 바로 다음 봉에서 피라미딩 조건이 발생하는 경우에는 피라미딩이 적용되지 않는 것 같습니다. 진입 바로 다음봉이 아닌 상황에서는 피라미딩이 올바르게 적용되는데 말이죠.. 수식은 아래와 같습니다. 항상 도움 주셔서 감사드립니다. input : capital(1000000000),ATRperiod(20),num(3),ABC(0.01); Var : Nprice(0),E_num(0),N(0); N=ATR(ATRperiod); Nprice=(ATR(ATRperiod)*2)*bigpointvalue; E_num=Int((capital+(NetProfit*bigpointvalue)*ABC)/Nprice); ///////////////////////////////////////////////////////// input : period(20),period1(20); Var1=Highest(H,period); Var2=Lowest(L,period); if MarketPosition == 0 And CrossUp(C,Var1[1]) Then Begin buy("매수",Def,Def,E_num); Var30=Index; End; If MarketPosition == 1 and crossup(c,latestEntryPrice+N[Index-Var30]) and CurrentEntries<num Then Begin buy("매수 피라미딩",Def,Def,E_num); Var30=Index; End; if MarketPosition == 1 Then Begin ExitLong("매수청산",AtStop,Lowest(L,period1)); ExitLong("매수 손절",Atstop,entryprice-N[BarsSinceEntry]*2); ExitLong("매수 피라미딩 손절",AtStop,LatestEntryPrice-(2*N[Index-Var30])); End; ///////////////////////////////////////////////////////// If MarketPosition == 0 And CrossDown(C,Var2[1]) Then Begin Sell("매도",Def,Def,E_num); Var40=Index; End; If MarketPosition == -1 and CrossDown(C,LatestEntryPrice-N[Index-Var40]) and CurrentEntries<num Then Begin Sell("매도 피라미딩",Def,Def,E_num); Var40=Index; End; If MarketPosition == -1 Then Begin ExitShort("매도청산",Atstop,Highest(H,period1)); ExitShort("매도 손절",Atstop,entryprice+N[BarsSinceEntry]*2); ExitShort("매도 피라미딩 손절",AtStop,LatestEntryPrice+(2*N[Index-Var40])); End; MessageLog("%.2f %.2f %.2f",LatestEntryPrice-N[Index-Var40],CurrentEntries,LatestEntryPrice);