예스스탁
예스스탁 답변
2007-08-23 09:07:49
안녕하세요..예스스탁입니다.
3.1버전(리딩스타도 3.1과 동일)으로 바뀌면서 랭귀지가 일부 변경되었습니다.
말씀하신 오류가 나는 이유는 예스트레이더3.0버전에서는 변수할당시 논리형과 수치형 구분없이 처리를 하였는데, 3.1및 리딩스타에서는 논리형과 수치형으로 구분해서 사용하도록 변경되었기 때문입니다.
formula0 부터 3까지는 수치형 데이타가 할당되는데, formula4는 참 또는 거짓의 논리형 데이타가 할당되어야 합니다. 변수 선언시 초기값으로 통상 0 이나 특정 숫자만을 사용하였는데 논리형 변수를 선언할때는 초기값으로 true 또는 false를 괄호 속에 써 주셔야 됩니다.
식을 수정해서 작성하면 아래와 같습니다.
input : N(10), period1(10), period2(20), period3(30);
var : formula0(0), formula1(0), formula2(0), formula3(0), formula4(false);
Formula0 = (highest(H, n) + lowest(L, n)) / 2;
Formula1 =ma(C,Period1);
Formula2 =ma(C,Period2);
Formula3 =ma(C,Period3);
Formula4= ((c>Formula0 and c> Formula2 and c> Formula3)
or (c>Formula0 and Formula2>=Formula0)
or (c> Formula2 and Formula2>Formula3)) ;
또 다른 방법은 변수선언시 모두 0 값을 초기값으로 지정해주고 formula4 변수에 1또는 0값이 할당될 수 있도록 iff구문을 사용해도 됩니다.
input : N(10), period1(10), period2(20), period3(30);
var : formula0(0), formula1(0), formula2(0), formula3(0), formula4(0);
Formula0 = (highest(H, n) + lowest(L, n)) / 2;
Formula1 =ma(C,Period1);
Formula2 =ma(C,Period2);
Formula3 =ma(C,Period3);
Formula4= iff(
((c>Formula0 and c> Formula2 and c> Formula3)
or (c>Formula0 and Formula2>=Formula0)
or (c> Formula2 and Formula2>Formula3))
,1,0) ;
감사합니다.
> sjmom 님이 쓴 글입니다.
> 제목 : 리딩스타로 이사 가려는데 참 마니 버벅대네요..
> 아래의 식중 Formula4 는 오류가 납니다.. 어찌 바꿔야 하는지요,.
Formula0 = (highest(H, n) + lowest(L, n)) / 2;
Formula1 =ma(C,Period1);
Formula2 =ma(C,Period2);
Formula3 =ma(C,Period3);
Formula4= ((c>Formula0 and c> Formula2 and c> Formula3)
or (c>Formula0 and Formula2>=Formula0)
or (c> Formula2 and Formula2>Formula3)) ;