커뮤니티

예스트레이더3.1 기능추가 및 변경사항

프로필 이미지
예스스탁
2007-08-20 15:20:15.0
4595
New Version 차트변경 사항

1. 허수봉 표시하지 않음
봉의 거래량이 없는 경우 현재버전에서는 직전 봉의 종가를 해당 봉의 시/고/저/종가로 표시했지만
새 버전에서는 이런 허수봉은 표시하지 않습니다.

[ 현재버전 ]
예) 파라텍 2007/05/15 5분봉
거래량이 없는 경우 직전 봉의 종가를 현재봉의 시/고/저/종가로 표시해줌

[ 새버전 ]
예) 파라텍 2007/05/15 5분봉
9시 5분/15분/20분봉에 거래량이 없으므로 표시하지 않습니다.

2. 차트에 복수종목 동시 적용 시 표시 방법
A. 서로 다른 주기인 경우
주기가 가장 작은 차트의 시간 축을 기준으로 일치하는 경우만 표시하며분/일/주/월 봉이 동시
적용되는 경우 가장 작은 주기의 첫 봉 위치에 표시됩니다.


B. 동일 주기인 경우
주 종목의 시간축과 일치 하는 경우만 표시
a 주종목 삼성전자에 맞춰 연결선물지수도 15:00분까지 표시

-> 주종목 연결선물지수의 시간 축에 일치하는 봉만 표시

C. 차트의 조회 시에는 위와 같은 방법으로 봉이 그려지게 됩니다.
다만 실시간인 경우에 종목의 데이터가 없는 시간대는 공백으로 처리하며
종목의 데이터가 있는 경우에는 표시하게 되며 조회 시에는 주종목의 시간대와 맞지 않는
참조종목의 봉은 숨겨지게 됩니다.
[ 실시간 ]

[ 재조회 ]


그러므로 예를 들어 아래의 식과 같이 타종목의 5이평을 그린다고 한다면

var1 = ma(data2( C ),5);
plot1(var1,”타종목5이평”);

14:40/14:15/14:10/14:05/14:00 봉의 종가로 5이평을 계산하는 것이 아니라
14:40/14:35/14:30/14:25/14:20 봉의 종가로 5이평을 계산하게 됩니다.



New Version 예스랭귀지 변경 사항

1. 내부변수 타입 세분화
내부변수 사용시에 기존에는 수치형과 논리형 모두 할당 받게 되어 있었으나 새 버젼 랭귀지에서는
수치형과 논리형으로 세분하여 선언한 후, 수치형에는 수치만 할당가능하며 논리형으로 선언한
변수 에는 논리식만 할당
할 수 있습니다.

2. 타종목 참조 함수 기능 보강 및 변경

동일 주기의 타 종목 뿐만 아니라 주기가 다른 모든 종목(동일 종목 포함)을 참조 할 수 있습니다.

Data1 ~ Data99
Data1함수가 주종목의 데이터 값을 참조하는 것으로 변경되었습니다.
그러므로 첫번째 적용한 참조종목은 Data2, 두번째 적용한 참조종목은 data3과 같이 사용됩니다.
총 99개 종목까지 참조가 가능합니다.

데이터 변수 참조
Data2(C)
Data2(“C”) -> 호환을 위해 “” 사용가능

타종목 지표 계산
Data2(ma(c,5));
Data2(RSI(5));`

3. 타종목 참조함수의 이전값 참조
타종목의 값의 반환시점에 혼돈을 줄이기 위해 타종목 참조함수의 이전값은 함수안에 표기 하도록 변경되었습니다.
Data2( C[1] )

함수 뒤에 [N]은 사용할 수 없게 변경되었습니다.
Data2( C )[1]

4. 타주기의 종목을 이용한 지표식 작성시 유의사항

위와 같이 식을 작성할 경우 1번,2번,3번 지표는 모두 타종목의 5이동평균을 그리기 위한 의도로
작성되었습니다.
하지만 1번 지표의 경우 차트그림과 같이 다른 값을 나타냅니다.

2번과 3번라인의 경우에는 ①,②,③,④,⑤번의 종가를 가져와 이동평균을 계산하므로 정상적인
5이동평균값을 나타내지만
1번의 경우에는 ⓐ,ⓑ,ⓒ,ⓓ,ⓔ값을 가져와 이동평균을 계산하므로 의도와는 다른 값이 나타납니다.는 전봉인 와 같은 시세가 내장되어 있으며 에는 와 같은 시세가 내장되어 있습니다.
즉 주종목의 주기에 의해 나타나는 참조종목의 빈공간에는 바로 전봉과 같은 시세가 내장되어 있으니 식 작성시 유의하시기 바랍니다.

그리므로 타종목의 값을 대체하여 사용하는 변수를 선언할 경우


var : 변수명1(0,data2), 변수명2(0,data3), 변수명3(0,data4);

변수명1 = Data2(C):
변수명2 = Data3(C):
변수명3 = Data4(C):

a 변수명1의 초기값은 0이며 data2의 주기를 따라간다
a 변수명2의 초기값은 0이며 data3의 주기를 따라간다
a 변수명3의 초기값은 0이며 data4의 주기를 따라간다

와 같이 선언하면 해당변수는 지정된 참조데이터의 주기를 고려하여 그 값을 반환하게 됩니다.

5. For문 변경사항
For문 안에 증감단위를 지정할 경우 Step 증감값으로 작성해야 합니다.
증감값이 1인 경우에는 Step 증감값은 기존과 같이 생략 가능합니다.

→ count값을 10부터 0까지 2씩 증가하면서 반복실행

변경 전
        For
count = 0 To 10 2

변경 후
        For count = 0 To 10 step 2

6. Index,DataCompress,BarInterval
Index,DataCompress,BarInterval함수를 사용시 뒤에 ()를 표기하지 않습니다.
(O) var1 = index;
(X) var2 = index();
(O) var1 = DataCompress;
(X) var2 = DataCompress();
(O) var1 = BarInterval;
(X) var2 = BarInterval();

7. 사용자 함수
사용자함수에서 함수 결과 값에 현재의 결과 값을 더할 수 없습니다.

변경 전
(O) Fuction1 = Fuction1+1;
(O) Fuction1 = Fuction1[1]+1;

변경 후
(X) Fuction1 = Fuction1+1;
(O) Fuction1 = Fuction1[1]+1;

8. Accumn
Accumn함수의 인자값이 AccumN(numericseris, numeric)이므로 논리식을 사용할 수 없습니다.
(X) accumn(논리식,10)

논리식을 N봉 동안 누적할 경우 아래와 같이 사용할 수 있습니다.
(O) accumn(iff(논리식,1,0),10)

9. 문장작성시 유의사항
강화된 문법에 의해 수식을 작성시 유의해야 하는 부분이 있습니다.
A. IFF(조건, 참값 , 거짓값 )
     변수타입이 세분화 되었기 때문에 IFF함수의 참값과 거짓값은 같은 변수타입으로
     작성해야 합니다.
     참값이 수치형이면 거짓값도 수치형으로, 참값이 논리형이면 거짓값도 논리형으로 작성해야
     합니다.

    올바른 사용방법
    IFF(C > O, C > C[1], C < C[1]) a 참값, 거짓값 모두 논리
    IFF(C > O, 1, 0) a 참값, 거짓값 모두 수치

    잘못된 사용방법
    IFF(C > O, C > C[1], 0 ) a 참값은 논리, 거짓값은 수치
    IFF(C > O, 1, C < C[1] ) a 참값은 수치, 거짓값은 논리

B. 하나의 완전한 구문은 검증에 에러를 주지 않습니다.
- 같다 (연산자 == )

연산자 ==은 같다라는 뜻의 관계연산자이며 =은 할당을 나타내는 연산자입니다.
value1과 종가가 같다라는 문장은 아래와 같습니다.

If value1 == C then

하지만 새 버전의 랭귀지에서는 아래의 경우에도 검증이 완료되니 작성상 유의하시기 바랍니다.

if value = C then
if문 안에 value = C라는 할당을 나타내는 표현이 사용되었지만 value=C부분은 하나의 완전한
구문이므로 검증에 이상이 없는 문장으로 취급합니다.

- 할당

A라는 변수에 B라는 값을 할당 시 아래와 같이 작성됩니다.

A = B;

새 버전에서는

A - B;
A == B;

와 같이 할당(=)을 -, 혹은 == 과 같이 작성하여도 모두 완전한 구문이므로 검증이 완료되므로
작성상 유의하시기 바랍니다.

10. 일부 지표의 계산식이 변경되었습니다.
ADX / DMI / DiPlus / DiMinus / RSI의 지표값에 오류가 있어 함수의 계산식을 수정했습니다.
기존의 계산값을 계속 사용하고자 하시는 분은 아래와 같이 사용하시면 됩니다.
ADX_Y(Period)
DMI_Y(Period)
Diplus_Y(Period)
Diminus_Y(Period)
RSI_Y(Period)

11. 타종목 참조함수안에 DayOpen/dayHigh/DayLow/Dayclose 함수는 사용할 수 없습니다.
      참조함수에 각종함수를 사용하여 타종목의 값을 리턴받을 수 있지만
      Day~함수를 사용할 경우 의미없는 값을 반환하므로 주의하시기 바랍니다.

      Data2(ma(c,20)) (O)
      Data2(DayOpen(1)) (X)
      Data2(DayHigh(1)) (X)
      Data2(DayLow(1)) (X)
      Data2(DayClose(1)) (X)

12. 강제청산에 수수료 및 슬리피지를 반영하지 않습니다.
       예스트레이더3에서는 설정창에 지정한 수수료 및 슬리피지를 감안하여 강제청산이 구동되었으나
       예스트레이더 3.1에서는 강제청산 시 설정창에 지정된 수수료와 슬리피지를 반영하지 않습니다.

13. 기타주의 사항
      A. 봉의 완성시점
           봉이 완성되는 시점은 다음 봉의 첫번째 체결데이터가 들어오는 순간입니다.
           그러므로 차트에 적용된 전략의 매매시그널의 완료 시점도 다음 봉의 시가 데이타를 수신하는
           순간이 된다.
           분봉일 경우에는 신호 발생 다음 분봉이 만들어지면서 봉완성을 인식하고, 일봉일 경우에는
           다음날의 첫번째 체결데이타가 들어와야만 전일 일봉의 봉완성을 인식합니다.
           따라서 봉이 만들어 지는 과정에 일시적으로 매매 조건을 만족할 수 있으나 이 때 바로 매매를
           위한 시그널이 발생하지 않습니다.
      B. 전략 적용에서 실 시간처리와 재 적용시 신호 변경 가능
          i. 전략 적용시신호들은 데이타의 발생순서에 따라 확정되나 재적용시 달라질 수 있습니다.
              이는 과거봉을 구성하는 전체 데이터를 모두 가지고 있지 않고 시/고/저/종가 데이터 만을
              가지고 있으므로 재 적용시 중간의 과정은 알 수 없습니다.
              따라서 재적용시 봉의 형태에 따라 처리하는 규칙이 있고 재적용시 이에 따라 신호를
              생성합니다. (신호처리원칙 참조)

          ii. 서로 다른 종목을 동시에 적용후 각각의 데이타를 이용한 전략의 적용시 종목간의 시간
              차이로 인하여 재적용시 달라지는 경우가 생길 수 있습니다.

       C. 종목 검색시 검색에 필요한 최소 봉의 수를 생략 할 경우 특정 종목을 대상으로 최소봉의
             수를 계산한 뒤 다른 종목을 검색하게 되는데 검색로직에 따라 정확하게 검색하지 못하는
             경우가 있습니다. 이 경우에는 검색에 필요한 최소 봉의 수를 정확하게 입력하고 검색해야
             합니다.