커뮤니티

신호가 나오지 않는데 검토 부탁 드립니다.

프로필 이미지
회원
2014-09-19 17:50:30
133
글번호 78696
답변완료
아래는 TDI_추세선행식입니다. 그런데 신호가 나오지를 않는데 잘 못된 부분을 수정 좀 부탁드립니다. 감사합니다. ================================================= input : TDILen(20), TDiMinimum(0), SwingLen(0); var : ii(0); If CurrentBar >= TDILen * 2 - 1 then { Var1 = close - close[TDILen - 1]; Var11 = abs(Var1); Var2 = accumN(Var1, TDILen); Var22 = abs(Var2); Var3 = accumN(Var11, TDILen * 2); Var33 = accumN(Var11, TDILen); Var4 = Var22 + Var33 - Var3; If Var4 > TDIMinimum then { For ii = 0 To SwingLen - 1 begin condition1 = Var4[SwingLen - ii] > Var4[SwingLen - ii - 1]; condition2 = Var4[SwingLen + ii] > Var4[SwingLen + ii + 1]; end; If condition1 == True And condition2 == True then { If Var2 > 0 then { For ii = 0 To SwingLen - 1 begin condition3 = Var2[SwingLen - ii] > Var2[SwingLen - ii - 1]; condition4 = Var2[SwingLen + ii] > Var2[SwingLen + ii + 1]; end; If condition3 == True And condition4 == True then { sell("매도", Atmarket); } } If Var2 < 0 then { For ii = 0 To SwingLen - 1 begin condition5 = Var2[SwingLen - ii] < Var2[SwingLen - ii - 1]; condition6 = Var2[SwingLen + ii] < Var2[SwingLen + ii + 1]; end If condition5 == True And condition6 == True then { buy("매수", Atmarket); } } } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-09-22 09:22:01

안녕하세요 예스스탁입니다. SwingLen에 0 이상의 값을 할당하셔야 합니다. input : TDILen(20), TDiMinimum(0), SwingLen(5); var : ii(0); If CurrentBar >= TDILen * 2 - 1 then { Var1 = close - close[TDILen - 1]; Var11 = abs(Var1); Var2 = accumN(Var1, TDILen); Var22 = abs(Var2); Var3 = accumN(Var11, TDILen * 2); Var33 = accumN(Var11, TDILen); Var4 = Var22 + Var33 - Var3; If Var4 > TDIMinimum then { For ii = 0 To SwingLen - 1 begin condition1 = Var4[SwingLen - ii] > Var4[SwingLen - ii - 1]; condition2 = Var4[SwingLen + ii] > Var4[SwingLen + ii + 1]; end; If condition1 == True And condition2 == True then { If Var2 > 0 then { For ii = 0 To SwingLen - 1 begin condition3 = Var2[SwingLen - ii] > Var2[SwingLen - ii - 1]; condition4 = Var2[SwingLen + ii] > Var2[SwingLen + ii + 1]; end; If condition3 == True And condition4 == True then { sell("매도", Atmarket); } } If Var2 < 0 then { For ii = 0 To SwingLen - 1 begin condition5 = Var2[SwingLen - ii] < Var2[SwingLen - ii - 1]; condition6 = Var2[SwingLen + ii] < Var2[SwingLen + ii + 1]; end If condition5 == True And condition6 == True then { buy("매수", Atmarket); } } } } } 즐거운 하루되세요 > HI_ma****** 님이 쓴 글입니다. > 제목 : 신호가 나오지 않는데 검토 부탁 드립니다. > 아래는 TDI_추세선행식입니다. 그런데 신호가 나오지를 않는데 잘 못된 부분을 수정 좀 부탁드립니다. 감사합니다. ================================================= input : TDILen(20), TDiMinimum(0), SwingLen(0); var : ii(0); If CurrentBar >= TDILen * 2 - 1 then { Var1 = close - close[TDILen - 1]; Var11 = abs(Var1); Var2 = accumN(Var1, TDILen); Var22 = abs(Var2); Var3 = accumN(Var11, TDILen * 2); Var33 = accumN(Var11, TDILen); Var4 = Var22 + Var33 - Var3; If Var4 > TDIMinimum then { For ii = 0 To SwingLen - 1 begin condition1 = Var4[SwingLen - ii] > Var4[SwingLen - ii - 1]; condition2 = Var4[SwingLen + ii] > Var4[SwingLen + ii + 1]; end; If condition1 == True And condition2 == True then { If Var2 > 0 then { For ii = 0 To SwingLen - 1 begin condition3 = Var2[SwingLen - ii] > Var2[SwingLen - ii - 1]; condition4 = Var2[SwingLen + ii] > Var2[SwingLen + ii + 1]; end; If condition3 == True And condition4 == True then { sell("매도", Atmarket); } } If Var2 < 0 then { For ii = 0 To SwingLen - 1 begin condition5 = Var2[SwingLen - ii] < Var2[SwingLen - ii - 1]; condition6 = Var2[SwingLen + ii] < Var2[SwingLen + ii + 1]; end If condition5 == True And condition6 == True then { buy("매수", Atmarket); } } } } }