커뮤니티

안녕하세요.. 시스템작성에 관해 문의 드립니다

프로필 이미지
구구주녀
2010-04-19 15:59:36
692
글번호 29440
답변완료
피라미딩이 포함된 식을 짜봤는데.. 최대 2 step 까지만 피라미딩을 원해서 제약조건을 걸었는데요 제가 건 제약과 관계없이 계속 매수가 일어나네요 ㅠㅠ 어디가 틀렸는지 모르겠는데 좀 봐주시면 감사하겠습니다 각각의 변수는 전부 지정했고요... maxstp은 input 값으로 3으로 정했습니다. (input: maxstp(3);) 한번 피라미딩이 될때마다 stp = stp + 1 이 되도록 해서 stp < maxstp 조건에 걸려서 더이상 피라미딩이 안되도록 했는데요... 제가 원하는 바와 다르게 계속해서 신호뜰때마다 매수가 되네요 ㅠㅠ 어디가 틀렸는지 봐주시면 감사하겠습니다 (--)(__) // 변수지정 NN = ATR(20); MaAvg = Ma(Close, 20); Unit = 1; //조건 UpTrend = MaAvg > MaAvg[1] and Close > MaAvg; if 30 <= PR and PR <= 70 Then OverL = False; if PR > 70 Then {for ii = 1 to midlen {if pr[ii] <= 70 then OverL = True; Else overL = False; } } // 포지션 구축 If UpTrend == True and OverL == True and marketposition ==0 Then {Buy("L", AtStop, highest(Close, MAlen), Unit); stp = 1;} // 피라미딩 If MarketPosition == 1 and stp < maxstp Then {if NN <= alpha Then {buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit); stp = stp + 1;} }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-04-20 14:18:20

안녕하세요 예스스탁입니다. 최대 두번까지 진입하기 위해서는 stp < 2가 되야 합니다. 첫진입 들어가기전에는 stp == 0 첫진입 이후 stp == 1 두번째가 들어갈때는 stp == 1 이므로 stp는 2보다 작다고 하셔야 합니다. 참고로 아래와 같이 작성하셔도 됩니다. // 피라미딩 If MarketPosition == 1 and CurrentEntries < 2 Then {if NN <= alpha Then {buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit); stp = stp + 1;} } 즐거운 하루되세요 > 구구주녀 님이 쓴 글입니다. > 제목 : 안녕하세요.. 시스템작성에 관해 문의 드립니다 > 피라미딩이 포함된 식을 짜봤는데.. 최대 2 step 까지만 피라미딩을 원해서 제약조건을 걸었는데요 제가 건 제약과 관계없이 계속 매수가 일어나네요 ㅠㅠ 어디가 틀렸는지 모르겠는데 좀 봐주시면 감사하겠습니다 각각의 변수는 전부 지정했고요... maxstp은 input 값으로 3으로 정했습니다. (input: maxstp(3);) 한번 피라미딩이 될때마다 stp = stp + 1 이 되도록 해서 stp < maxstp 조건에 걸려서 더이상 피라미딩이 안되도록 했는데요... 제가 원하는 바와 다르게 계속해서 신호뜰때마다 매수가 되네요 ㅠㅠ 어디가 틀렸는지 봐주시면 감사하겠습니다 (--)(__) // 변수지정 NN = ATR(20); MaAvg = Ma(Close, 20); Unit = 1; //조건 UpTrend = MaAvg > MaAvg[1] and Close > MaAvg; if 30 <= PR and PR <= 70 Then OverL = False; if PR > 70 Then {for ii = 1 to midlen {if pr[ii] <= 70 then OverL = True; Else overL = False; } } // 포지션 구축 If UpTrend == True and OverL == True and marketposition ==0 Then {Buy("L", AtStop, highest(Close, MAlen), Unit); stp = 1;} // 피라미딩 If MarketPosition == 1 and stp < maxstp Then {if NN <= alpha Then {buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit); stp = stp + 1;} }