커뮤니티

초보 문의합니다.

프로필 이미지
팍팍
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);