커뮤니티

질문드립니다.

프로필 이미지
stockric
2017-01-03 16:23:51
153
글번호 105546
답변완료
Vars :valtouched(0), booltouched(False), n(0), vartartouch(8), 시그널(False); valtouched = 0; vartartouch = 8; For n = 0 to 3 { If CrossDown(L[n], Ma(c,5)[n]) Then valtouched = valtouched +1;} If valtouched = vartartouch Then {If Ma(c,5) > Close Then 시그널 = True;} If 시그널 Then {PlotPaintBar(C,O,"테스트",RED,DEF,3);} 3캔들이 5일선을 하락한다를 for문으로 작성했는데요. 화면의 모든캔들에 페인트바가 표시되네요. 어디가 문제일까요?
강조
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-01-04 14:41:53

안녕하세요 예스스탁입니다. if조건만족 하지 않으면 시그널이 false로 초기화 되어야 합니다. 현재식은 한번 true가 저장되면 변동없이 계속 true만 가지게 됩니다. If valtouched == vartartouch and Ma(c,5) > Close Then 시그널 = True; Else 시그널 = false; 즐거운 하루되세요 > stockric 님이 쓴 글입니다. > 제목 : 질문드립니다. > Vars :valtouched(0), booltouched(False), n(0), vartartouch(8), 시그널(False); valtouched = 0; vartartouch = 8; For n = 0 to 3 { If CrossDown(L[n], Ma(c,5)[n]) Then valtouched = valtouched +1;} If valtouched = vartartouch Then {If Ma(c,5) > Close Then 시그널 = True;} If 시그널 Then {PlotPaintBar(C,O,"테스트",RED,DEF,3);} 3캔들이 5일선을 하락한다를 for문으로 작성했는데요. 화면의 모든캔들에 페인트바가 표시되네요. 어디가 문제일까요?