INPUTS: LENGTH(14);
VARS: SL(0), SH(0), PL(0), PU(0);
SL=LRS(LOW,LENGTH);
SH=LRS(HIGH,LENGTH);
FOR VALUE1=1 TO LENGTH BEGIN
VALUE2=LOW[VALUE1-1] + (SL*VALUE1-1);
VALUE3=HIGH[VALUE1-1] + (SH*VALUE1-1);
IF VALUE1=1 THEN BEGIN
PL=VALUE2;
PU=VALUE3;
END;
IF VALUE2 < PL THEN PL=VALUE2;
IF VALUE3 > PU THEN PU=VALUE3;
END;
PLOT1(PL,"PL");
PLOT2(PU,"PU");
/////////////////////
랭귀지 편집기에서는 오류검증이 되었는데 예스트레이더에서 적용을 해보려고 하면 프로그램이 먹어버리네요 보시기에 어떤 오류가 있는건지 봐주시면 감사하겠습니다.
답변 1
예스스탁
예스스탁 답변
2020-01-21 16:23:31
안녕하세요
예스스탁입니다.
IF VALUE1=1 THEN BEGIN
예스랭귀지에서 =을 저장연산자입니다.
위 구문에 의해 for문이 무한 루프를 돌게 됩니다.
아래와 같이 수정하시면 됩니다.
IF VALUE1==1 THEN BEGIN
즐거운 하루되세요
> 시고르시고르 님이 쓴 글입니다.
> 제목 : 질문 부탁드립니다.
> INPUTS: LENGTH(14);
VARS: SL(0), SH(0), PL(0), PU(0);
SL=LRS(LOW,LENGTH);
SH=LRS(HIGH,LENGTH);
FOR VALUE1=1 TO LENGTH BEGIN
VALUE2=LOW[VALUE1-1] + (SL*VALUE1-1);
VALUE3=HIGH[VALUE1-1] + (SH*VALUE1-1);
IF VALUE1=1 THEN BEGIN
PL=VALUE2;
PU=VALUE3;
END;
IF VALUE2 < PL THEN PL=VALUE2;
IF VALUE3 > PU THEN PU=VALUE3;
END;
PLOT1(PL,"PL");
PLOT2(PU,"PU");
/////////////////////
랭귀지 편집기에서는 오류검증이 되었는데 예스트레이더에서 적용을 해보려고 하면 프로그램이 먹어버리네요 보시기에 어떤 오류가 있는건지 봐주시면 감사하겠습니다.