커뮤니티

ATR 수식 오류 관련 질문입니다!

프로필 이미지
예스스탁초보
2021-11-19 11:06:41
754
글번호 153729
답변완료
안녕하세요! 대학교에서 시뮬레이션을 배우고 있는 학생입니다. input : GapUP(0.3), GapDN(1.5), LossLimit(1.2), ATR_prd(5), MULT(4.5); if sDate != sDate[1] Then { if O > C[1] * (1+GapUP/100) Then { { if C >= O Then Buy("Gap-run-Buy", AtStop, C); Else Sell("Gap-fill-Sell", AtStoP, C); } if O < C[1] * (1-GapDN/100) Then { { if C >= O Then buy("Gap-fill-Buy", AtStop, C); Else Sell("Gap-run-Sell", AtStop, C); } } var1 = Highest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; var2 = Lowest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; if MarketPosition<>0 Then { ExitLong("EL", AtStop, var1); ExitShort("ES", AtStop, var2); } SetStopLoss(LossLimit,PercentStop); 라는 수식을 입력했었는데, 맨 마지막 30줄의 맨 마지막 부분의 문법이 잘못됐다고 자꾸 오류가 뜨네요. 혹시 무엇때문인지 알 수 있을까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-11-19 14:26:30

안녕하세요 예스스탁입니다. 수식의 가장 마지막에 오류가 찍히는 경우에는 2가지 케이스중 하나입니다. 해당 줄의 마지막에 ;를 찍지 않았거나 {}사용에 문제가 있는 경우입니다. 작성하신 수식에는 {}사용에 문제가 있습니다. if O > C[1] * (1+GapUP/100) Then { { if O < C[1] * (1-GapDN/100) Then { 위 내용에 보시면 {{로가 두번씩 열려있습니다. 하나씩 삭제하시면 됩니다. input : GapUP(0.3), GapDN(1.5), LossLimit(1.2), ATR_prd(5), MULT(4.5); if sDate != sDate[1] Then { if O > C[1] * (1+GapUP/100) Then { if C >= O Then Buy("Gap-run-Buy", AtStop, C); Else Sell("Gap-fill-Sell", AtStoP, C); } if O < C[1] * (1-GapDN/100) Then { if C >= O Then buy("Gap-fill-Buy", AtStop, C); Else Sell("Gap-run-Sell", AtStop, C); } } var1 = Highest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; var2 = Lowest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; if MarketPosition<>0 Then { ExitLong("EL", AtStop, var1); ExitShort("ES", AtStop, var2); } SetStopLoss(LossLimit,PercentStop); 즐거운 하루되세요 > 예스스탁초보 님이 쓴 글입니다. > 제목 : ATR 수식 오류 관련 질문입니다! > 안녕하세요! 대학교에서 시뮬레이션을 배우고 있는 학생입니다. input : GapUP(0.3), GapDN(1.5), LossLimit(1.2), ATR_prd(5), MULT(4.5); if sDate != sDate[1] Then { if O > C[1] * (1+GapUP/100) Then { { if C >= O Then Buy("Gap-run-Buy", AtStop, C); Else Sell("Gap-fill-Sell", AtStoP, C); } if O < C[1] * (1-GapDN/100) Then { { if C >= O Then buy("Gap-fill-Buy", AtStop, C); Else Sell("Gap-run-Sell", AtStop, C); } } var1 = Highest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; var2 = Lowest(H, BarsSinceEntry+1)-ATR(ATR_prd)*mult; if MarketPosition<>0 Then { ExitLong("EL", AtStop, var1); ExitShort("ES", AtStop, var2); } SetStopLoss(LossLimit,PercentStop); 라는 수식을 입력했었는데, 맨 마지막 30줄의 맨 마지막 부분의 문법이 잘못됐다고 자꾸 오류가 뜨네요. 혹시 무엇때문인지 알 수 있을까요?