커뮤니티

MRO 변경

프로필 이미지
행복충전
2011-07-28 13:30:01
614
글번호 41395
답변완료
MRO(Condition,Period,N) 함수를 Period가 없는 MRO(Condition,N)로 사용자함수를 만들려고 합니다. While문 실행도중 무한루프에 빠지는 것을 방지하고자 안전장치로 LastBarOnChart를 추가해 주었습니다. LastBarOnChart 함수를 사용하면 안되나요? 정상 실행이 안되는데, 정상 실행되도록 수정해 주시면 감사하겠습니다. Inputs: Expression(TrueFalseSeries), Occur(NumericSimple); Variables: TrueCount(0), Counter(0); Counter = 0; TrueCount = 0; While LastBarOnChart != 1 AND TrueCount < Occur Begin If Expression[Counter] Then{ TrueCount = TrueCount + 1; } Counter = Counter + 1; End; If TrueCount >= Occur AND TrueCount > 0 Then MRO2 = counter-1; Else MRO2 = -1;
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-07-28 15:19:56

안녕하세요 예스스탁입니다. LastBarOnChart != 1는 단지 살행되는 봉이 차트상 마지막봉이냐 아니냐를 나타내므로 무한루프와는 관계가 없습니다. 과거의 값을 계속 불러와 조건의 만족여부를 판단하는데 불러와야 하는 과거 수치가 차트의 설정된 봉갯수 이상이 되면 If Expression[Counter] == true Then 이 false이므로 TrueCount가 증가하지 않고 Counter만 증가하면서 계속 이전값을 호출하게 되므로 발생되는 내용입니다. Counter가 봉갯수이상은 넘지 않도록했습니다. Inputs: Expression(TrueFalseSeries), Occur(NumericSimple); Variables: TrueCount(0), Counter(0); Counter = 0; TrueCount = 0; While Counter < index and TrueCount < Occur { If Expression[Counter] == true Then{ TrueCount = TrueCount + 1; } Counter = Counter + 1; } If TrueCount >= Occur AND TrueCount > 0 Then MRO2 = counter-1; Else MRO2 = -1; 즐거운 하루되세요 > 행복충전 님이 쓴 글입니다. > 제목 : MRO 변경 > MRO(Condition,Period,N) 함수를 Period가 없는 MRO(Condition,N)로 사용자함수를 만들려고 합니다. While문 실행도중 무한루프에 빠지는 것을 방지하고자 안전장치로 LastBarOnChart를 추가해 주었습니다. LastBarOnChart 함수를 사용하면 안되나요? 정상 실행이 안되는데, 정상 실행되도록 수정해 주시면 감사하겠습니다. Inputs: Expression(TrueFalseSeries), Occur(NumericSimple); Variables: TrueCount(0), Counter(0); Counter = 0; TrueCount = 0; While LastBarOnChart != 1 AND TrueCount < Occur Begin If Expression[Counter] Then{ TrueCount = TrueCount + 1; } Counter = Counter + 1; End; If TrueCount >= Occur AND TrueCount > 0 Then MRO2 = counter-1; Else MRO2 = -1;