커뮤니티
초보 문의합니다.
2007-12-20 10:14:39
1062
글번호 14194
안녕하세요. 관리자님.
몇년만에 다시 예스랭귀지를 보는데요. 아래의 것들은
예전에 만들었던 지표와 관련된 식들인데
3.1버전으로 전환을 부탁드립니다.
뭐가 틀렸는지에 대한 간단한 설명도 첨부해 주면 더욱 좋구요.
감사합니다.
----------------------------------------------------------------------
1)
a= (Data1("c")-Data1("c")[dayindex()+1])/Data1("c")[dayindex()+1] * 100;
문법에러 잘못된 토큰 메세지가 나오느데 어떻게 수정을 합니까.
-----------------------------------------------------------------------
2)
정배열= Formula1 > Formula2 and Formula0 > Formula2;
역배열= Formula1 < Formula2 and Formula0 < Formula2;
value1 = Formula2 > Formula2[1] ;
value2 = Formula1 > Formula1[1] ;
value3 = Formula0 > Formula0[1] ;
연산자 앞뒤 두 데이타의 형태가 같아야 합니다. 라고 메세지가 뜹니다.
------------------------------------------------------------------------
3)
if Formula0 >= 80 then
plot1(Formula0,"과열",red);
else if Formula0 < 80 and Formula0 > 20 then
plot1(Formula0,"중립",LGREEN);
else
plot1(Formula0,"침체",blue);
----------------------------------------------------------------------
4)
var : PP(0);
PP=iff(PredayClose()>=PredayOpen(), PredayHigh(), PredayLow());
Plot1(PP, "피봇포인트");
Plot2(2*PP - PredayLow(), "1차저항");
Plot3(PP+PredayHigh()-PredayLow(), "2차저항");
Plot4(PP*2 - PredayHigh(), "1차지지");
Plot5(PP-PredayHigh()+PredayLow(), "2차지지");
----------------------------------------------------------------------------
5)
var: Formula0(0),Formula1(0),Formula2(0),Formula3(0),Formula4(0),
Formula5(0),Formula6(0),Formula7(0),Formula8(0),a(0.0008);
Formula0 = (timehigh(90000,100000)+timelow(90000,100000))/2 ;
Formula1 = timehigh(90000,100000);
Formula2 = timelow(90000,100000);
Formula3 = timehigh(90000,100000)*(1+a);
Formula4 = timelow(90000,100000)*(1-a);
Formula5 = predayhigh();
Formula6 = predaylow();
Formula7 = predayhigh()*(1+a);
Formula8 = predaylow()*(1+a);
답변 1
예스스탁 예스스탁 답변
2007-12-20 11:19:49
안녕하세요? 예스스탁입니다.
문의하신 내용 답변드립니다.
1)
--------------------------------------------------------------------
a= (Data2(c)-Data2(c[dayindex()+1]))/Data2(c[dayindex()+1]) * 100;
//3.0에서 첫번째 참조 종목은 Data1로 사용했는데, 3.1에서는 Data2로 바뀌었습니다.
//3.0에서는 Data2("C") 처럼 겹따옴표를 사용하였는데, 3.1에서는 생략가능합니다.
//3.0에서는 이전참조를 할때 Data2("C")[N]으로 사용가능하였지만, 3.1에서는 Data2(C[N]) 으로만 가능합니다.
2)
--------------------------------------------------------------------
var : 정배열(false), 역배열(false), value1(false), value2(false), value3(false);
정배열= Formula1 > Formula2 and Formula0 > Formula2;
역배열= Formula1 < Formula2 and Formula0 < Formula2;
value1 = Formula2 > Formula2[1] ;
value2 = Formula1 > Formula1[1] ;
value3 = Formula0 > Formula0[1] ;
//3.0에서는 내부변수 선언시 수치형과 논리형을 구분하지 않았는데, 3.1에서는 구분하도록 하였습니다.
위 식처럼 보면 변수에 할당되어야 할 값이 참 값 또는 거짓값으로 할당되어야 하는 식에서는
변수 선언시 초기값을 true 또는 false로 선언해 주셔야 됩니다.
3)
--------------------------------------------------------------------
if Formula0 >= 80 then
plot1(Formula0,"지표",red);
else if Formula0 < 80 and Formula0 > 20 then
plot1(Formula0,"지표",LGREEN);
else
plot1(Formula0,"지표",blue);
// plot1이 세번 사용되었는데, 각각의 이름이 다르기 때문에 발생하는 오류입니다. 이름을 통일시켜 주시면 됩니다.
4)
--------------------------------------------------------------------
var : PP(0);
PP=iff(DayClose(1)>=DayOpen(1), DayHigh(1), DayLow(1));
Plot1(PP, "피봇포인트");
Plot2(2*PP - DayLow(1), "1차저항");
Plot3(PP+DayHigh(1)-DayLow(1), "2차저항");
Plot4(PP*2 - DayHigh(1), "1차지지");
Plot5(PP-DayHigh(1)+DayLow(1), "2차지지");
// predayHigh, predayLow, predayClose, predayOpen 은 3.1에서
dayHigh(1), dayLow(1), dayClose(1), dayOpen(1) 또는
HighD(1), LowD(1), ClseD(1), OpenD(1) 로 제공됩니다.
----------------------------------------------------------------------
참고로 변경된 내용에 대한 설명은 본 게시판 목록 상단의 공지내용에 올려져 있습니다.
감사합니다.
> 팍팍 님이 쓴 글입니다.
> 제목 : 초보 문의합니다.
> 안녕하세요. 관리자님.
몇년만에 다시 예스랭귀지를 보는데요. 아래의 것들은
예전에 만들었던 지표와 관련된 식들인데
3.1버전으로 전환을 부탁드립니다.
뭐가 틀렸는지에 대한 간단한 설명도 첨부해 주면 더욱 좋구요.
감사합니다.
----------------------------------------------------------------------
1)
a= (Data1("c")-Data1("c")[dayindex()+1])/Data1("c")[dayindex()+1] * 100;
문법에러 잘못된 토큰 메세지가 나오느데 어떻게 수정을 합니까.
-----------------------------------------------------------------------
2)
정배열= Formula1 > Formula2 and Formula0 > Formula2;
역배열= Formula1 < Formula2 and Formula0 < Formula2;
value1 = Formula2 > Formula2[1] ;
value2 = Formula1 > Formula1[1] ;
value3 = Formula0 > Formula0[1] ;
연산자 앞뒤 두 데이타의 형태가 같아야 합니다. 라고 메세지가 뜹니다.
------------------------------------------------------------------------
3)
if Formula0 >= 80 then
plot1(Formula0,"과열",red);
else if Formula0 < 80 and Formula0 > 20 then
plot1(Formula0,"중립",LGREEN);
else
plot1(Formula0,"침체",blue);
----------------------------------------------------------------------
4)
var : PP(0);
PP=iff(PredayClose()>=PredayOpen(), PredayHigh(), PredayLow());
Plot1(PP, "피봇포인트");
Plot2(2*PP - PredayLow(), "1차저항");
Plot3(PP+PredayHigh()-PredayLow(), "2차저항");
Plot4(PP*2 - PredayHigh(), "1차지지");
Plot5(PP-PredayHigh()+PredayLow(), "2차지지");
----------------------------------------------------------------------------
5)
var: Formula0(0),Formula1(0),Formula2(0),Formula3(0),Formula4(0),
Formula5(0),Formula6(0),Formula7(0),Formula8(0),a(0.0008);
Formula0 = (timehigh(90000,100000)+timelow(90000,100000))/2 ;
Formula1 = timehigh(90000,100000);
Formula2 = timelow(90000,100000);
Formula3 = timehigh(90000,100000)*(1+a);
Formula4 = timelow(90000,100000)*(1-a);
Formula5 = predayhigh();
Formula6 = predaylow();
Formula7 = predayhigh()*(1+a);
Formula8 = predaylow()*(1+a);
이전글