STage 언어의 구조 및 기본 개념
숫자형, 논리형, 문자형 변수를 사용해서 값을 저장하고 확인할 수 있습니다.
매개변수를 지원하고 있어 지표나 함수를 호출하는 쪽에서 호출 되는 쪽으로 값을 전달할 수 있습니다.
전략의 흐름을 조정하는 제어문을 이용해서 상황에 따라 매매전략을 제어할 수 있습니다.
또한, 매매전략의 실행결과나 변수의 값, 가격데이터의 값 등 현재 상태, 과거상태를 차트 등에 표현 하도록 도와주는 출력문도 제공합니다.

사용자정의함수 MA(이동평균) 작성 사례

[예제]

     /* Simple Moving Averag */
 

      Parameter: Price1(Numeric), Length(Numeric)
Variables: Summation(0), Counter(0)

Summation = 0
For counter = 0 To Length - 1
Summation = Summation + Price1[counter]
End For

If Length >= 1 Then
MA = Summation / Length
Else
MA = 0
End if


연산자
STage 시스템 트레이딩은 로직을 작성할 때 연산자를 이용해서 계산을 합니다. 수학적, 논리적 연산이 가능하고, 변수와 상수 등을 이용해서 로직의 결과값을 구하고자 할 때 사용됩니다.
하나의 수식에서 여러 연산자를 사용해 연산을 할 경우, 연산자 우선순위에 따라 계산식의 각 부분을 정해진 순서대로 수행하게 됩니다. 예를 들어 괄호를 사용할 경우, 괄호안의 계산식을 우선적으로 처리합니다. 연산자 우선순위가 같은 것끼리 나열되어있다면 계산식의 왼쪽에서 오른쪽으로 진행하면서 처리합니다.
STage 시스템 트레이딩은 산술연산자, 비교연산자, 연결연산자, 논리연산자, 대입연산자, cross 연산자, dot연산자, 괄호 등을 제공하고 있습니다.

1. 산술연산자 : 산술계산을 위한 연산자. 연산자의 좌우에 상수나 숫자형 변수만 사용할 수 있습니다.

+ 더하기
- 빼기
* 곱하기
/ 나누기
\ 몫 구하기
% 나머지 구하기
^ 지수(승수)

2. 연결연산자 : 연산자의 좌우의 문자열을 연결해줍니다. 문자열에만 사용할 수 있습니다.

& 문자열 연결하기. (‘+’ 연산자도 좌우에 문자열이 있다면 문자열 연결하기 연산자와 동일하게 처리됩니다)

3. 비교연산자 : 연산자 좌우의 값의 관계(크기)를 알고자 할 때 사용한다. 연산의 결과값은 참(TRUE)와 거짓(FALSE)로 나타납니다.

== 같다.
= 같다. (위의 ‘==’연산자와 같은 연산자이다. IF 문장의 조건문에서만 비교연산자로 인식하고 다른 곳에서는 대입연산자로 인식합니다)
<> 같지 않다.
!= 같지 않다. (위의 ‘<>’연산자와 같은 연산자이다.)
< 보다 작다. 연산자의 우측보다 좌측이 작다.
> 보다 크다. 연산자의 우측보다 좌측이 크다
<= 보다 작거나 같다. 연산자의 우측보다 좌측이 작거나 같다.
>= 보다 크거나 같다. 연산자의 우측보다 좌측이 크거나 같다.

4. 논리연산자 : 조건에 대한 논리적 연산을 하기 위한 연산자. 주로 조건문에서 사용합니다.

AND 논리곱 : 좌우의 조건이 모두 참이어야 참 입니다.
&& 논리곱 : (위의 ‘AND’연산자와 같은 연산자입니다.)
OR 논리합 : 좌우의 조건 중 하나만 참이어도 참 입니다
|| 논리합 : (위의 ‘OR’연산자와 같은 연산자입니다.)
! 부정 : 우측값 만 존재하고, 우측의 값을 반대로 만듭니다. 참->거짓, 거짓->참

5. 대입연산자 : 우측의 값을 좌측으로 넘길 때 사용한다

= 대입

6. cross연산자 : 좌우측 두 값의 교차여부를 확인할 때 사용한다

cross over (cross above) 좌측의 값이 우측의 값을 상향 교차한 경우 참입니다.
cross under (cross below) 좌측의 값이 우측의 값을 하향 교차한 경우 참입니다.

7. dot연산자 : 좌측의 값이 오브젝트 형태의 변수인 경우 우측의 값은 그 오브젝트 변수의 구성요소(오브젝트의 내부함수, 오브젝트의 내부변수)를 지시할 때 사용합니다.

[예제]

 

Plot1( Volume, "Volume" )

 

if volume > volume[1] then

    Plot1.color = red

Elseif Volume < Volume[1] then

    Plot1.color = Blue

Else

    Plot1.color = black

 


8. 괄호 : 최고의 우선순위를 가진다. 수식에서 괄호를 사용할 경우 괄호를 우선적으로 처리하게 된다. 괄호 안에 괄호가 있다면 그 괄호가 우선적으로 처리됩니다.

[예제]

 

Parameter : Length(200)

 

Value1 = ((Close - Close[Length]) / Close[Length])*100

Plot2(Value1,"APC")


예제에서 총 2쌍의 괄호가 사용되었으며 연산자 우선순위에 따라서 두번째 괄호인 ‘(Close - Close[Length])’가 제일 먼저 연산이 되고 그 다음으로 ‘( … / Close[Length])’가 처리됩니다.
식은 일반적으로 식의 좌측에서 우측으로 진행하면서 순서대로 처리되지만, 연산자 우선순위라는 것이 존재해서 그 우선순위에 맞게 처리순서가 결정됩니다.
같은 우선순위를 가진 연산자들끼리는 좌측에 기술된 연산자부터 처리됩니다.
연산자 우선순위는 다음과 같다. 숫자가 낮은 연산자의 우선순위가 높습니다.

1 ‘()’ 괄호
2 ‘.’ Dot
3 ‘!’ 부정
4 ‘^’ 지수(승수)
5 ‘*’, ‘/’, ‘\’, ‘%’ 곱하기, 나누기, 몫 구하기, 나머지 구하기
6 ‘+’, ‘-’ 더하기, 빼기
7 ‘cross’ Cross over(cross above), Cross under(cross below)
8 ‘&’ 문자열 연결하기
9 ‘<’, ‘<=’, ‘>’, ‘>=’ 작다, 작거나 같다, 크다, 크거나 같다
10 ‘=’, ‘==’, ‘!=’, ‘<>’ 같다, 같다, 같지 않다, 같지 않다
11 AND, && 논리곱, 논리곱
12 OR, || 논리합, 논리합
변수

- 변수의 유형

숫자형, 논리형, 문자형, 오브젝트형, 배열형, 오브젝트 배열형 등의 저장 장소로서 계산 식의 결과 등을 보관 할 수 있습니다.

숫자형 변수는 정수나 실수 값을 저장 할 수 있는 저장소입니다.
논리형 변수는 ‘True’나 ‘False’를 저장 할 수 있는 저장소입니다.
문자형 변수는 “텍스트값” 과 같이 문자를 저장 할 수 있는 저장소입니다.
오브젝트형 변수는 라인스터디와 같이 ‘new’ 연산자를 이용하는 데이터를 저장할 수 있는 저장소입니다.
배열형 변수는 숫자형이나 논리형, 문자형 등 같은 형의 데이터를 여러 개 저장 할 수 있는 저장소입니다.
오브젝트 배열형 변수는 오브젝트형의 데이터를 여러 개 저장할 수 있는 저장소입니다.

- 변수의 선언

[예제]

 

Parameter : Length(20), ShowVal(True), Title("IndiName")

Variables :  TodayBarNumber(0), show1(True), Name("MyName")

C1 = Close

O1 = Open


예제에서 기술한 것처럼 ‘variables:’ 라는 선언자 뒤에 변수들의 리스트를 ‘,’를 이용, 나열해서 사용하기도 하고, ‘c1’ 이나 ‘o1’ 처럼 선언없이 문장의 중간에서 바로 사용할 수 있습니다.
variables : TodayBarNumber(0) 과 같이 선언해서 사용 할 경우, 해당 변수는 지표나 전략이 실행되는 최초(정확히는 ‘Barindex’가 0일 때)에 한 번 0 으로 초기화 됩니다.
즉, 명시적 선언시에는 초기값을 지정해줘야 합니다.
‘variables’를 사용한 명시적 선언은 로직 중간에서도 가능합니다. 하지만, 로직의 처음에서 선언했을 때와 똑같이 처리됩니다.
‘var’, ‘variable’, ‘variables’, ‘vars’는 같은 예약어입니다.
변수의 선언은 대소문자 구별하지 않습니다. 즉, ‘VAR1’과 ‘var1’은 동일한 변수입니다.
변수의 이름엔 빈칸이 들어갈 수 없습니다.
변수의 이름 처음에 숫자를 사용할 수 없습니다.
변수의 이름은 한글, 영어, 특수기호, 일본어, 중국어 등 모든 표현 가능한 변수를 사용할 수 있습니다.

- 매개변수의 선언

위의 예제 참고
지표나 전략의 경우 : Length(20) 처럼 초기화 될 값을 선언해줘야 합니다.
함수의 경우 : Length(Numeric) 처럼 변수의 유형을 선언해줘야 합니다.
매개변수 선언은 로직 중간에서도 가능합니다. 하지만, 로직의 처음에서 선언했을 때와 똑같이 처리됩니다.
‘param’, ‘params’, ‘parameter’, ‘parameters’, ‘input’, ‘inputs’는 같은 예약어 입니다.
매개변수의 선언은 대소문자 구별하지 않습니다. 즉, ‘param1’과 ‘PARAM1’은 동일한 변수입니다.
지표의 매개변수의 초기값은 함수를 기술하는 것이 가능합니다. 아래의 예제 참고 바랍니다.
지표의 두번째 매개변수부터는 바로 전에 선언된 매개변수들을 이용해서 지표의 초기화 값으로 선언하는 것이 가능합니다. 아래의 예제를 참고 바랍니다.
매개변수의 이름엔 빈칸이 들어갈 수 없습니다.
매개변수의 이름 처음에 숫자를 사용할 수 없습니다.
매개변수의 이름은 한글, 영어, 특수기호, 일본어, 중국어 등 모든 표현 가능한 매개변수를 사용할 수 있습니다.
사용자 함수의 매개변수 중 배열형으로 선언된 것은, 해당 함수를 호출하는 쪽에서 전달할 수 있는 값도 반드시 배열형이어야 합니다.

[예제]

매개변수 정의 시 다음과 같이 지표값이나 기 정의된 변수를 포함할 수 있으며,
간단한 수식도 포함 가능합니다.


Parameter : P1(adx(0)), P2(P1+10), P3((P1+P2)/2)



함수
함수란 전략이나 지표에서 특정 작업을 수행하기 위해 만들어진 명령어들의 집합입니다.
함수를 호출 하는 쪽에서 호출되는 쪽으로 전해지는 값을 매개변수라고 합니다.
함수의 수행결과를 호출하는 쪽으로 돌려주기도 하는데, 이것을 함수의 ‘리턴값’이라고 합니다.

함수의 유형
시스템함수 수학함수(Cosine등), 시간함수, 색상함수, 문자열함수(UpperStr등)
주문함수 주문함수(Buy, Sell 등), STOP주문함수(SetTrailingStop 등), 성과분석함수( EntryDate 등)
출력함수 Plot, PlotBar, Print 등
사용자함수 STage 시스템 트레이딩에서는 많은 기본함수들을 제공하고 있지만, 사용자가 특정 로직을 반복적으로 사용하고자 할 때나 로직의 관리를 효율적으로 하고자 할 때를 대비해서, 사용자함수 기능을 제공하고 있습니다.

이전봉 값 참조

매개변수나 변수 등은 매매전략이나 지표, 사용자 함수 등에서 계산식의 결과를 저장하거나 값을 전달하기 위해 사용됩니다.

이 변수들은 지표가 새로운 봉에서 실행될 때(Realtime이나 Back-Test 모두), 이전 봉에서 저장된 최종 값을 현재 봉에서 참조할 수 있습니다.

그때 사용하는 예약어가 ‘[ ]’ 입니다.

변수의 값은 물론 가격데이터나 사용자 함수의 이전 봉 값 참조도 가능합니다.


[]

 

Parameter: Length(10)

If CNDL_TrendUp[2] and
CNDL_WhiteLine[2] and
CNDL_LongBody(Length)[2] and
CNDL_BlackLine[1] and
Close[1] > Close[2] and
CNDL_BlackLine and
Open >= Min(Open[1], Close[1]) and
Open <= Max(Open[1], Close[1]) and
Close < Close[2] and
Close > Open[2] Then
PlotPoint1 (TopSide, "Two Crows", Red, 4)
End If


"하락반전캔들검색" 중에서 "2Crows" 지표 입니다. ‘CNDL_TrendUp’이라는 함수의 2봉 전 값을 가져오거나 ‘Close’나 ‘Open’의 2봉 전, 1봉 전 값을 가져오고 있습니다.



PRINT 함수

STage 시스템 트레이딩은 매매전략이나 지표에서 작성된 로직을 STageStudio의 ‘디버그’창을 통해서 로직의 결과 등을 문자의 형태로 볼 수도 있습니다.

매매전략 작성시 원하는 값이 계산되고 있는지에 대한 점검을 할 수 있도록 도와주는 도구입니다.



그림과 같이 보고 싶은 값을 ‘PRINT’ 함수의 매개변수로 입력해주면 STageStudio의 ‘디버그’창에 원하는 값이 문자로 출력됩니다.

원하는 값의 형태(숫자형, 논리형, 문자형)에 맞게 출력이 되며, ‘PRINT’ 함수의 매개변수의 개수는 제한이 없습니다.


주석문

주석문이란 매매로직이나 지표, 사용자가 함수를 작성할 때, 작성자나 해당 로직을 유지보수하는 사람의 이해를 돕기 위해 로직의 중간중간에 설명문을 삽입한 것을 말합니다.

주석문은 실행하지 않으며, 2가지 형태로 표현이 가능합니다.


  ‘//’를 사용한 경우 해당 줄의 끝까지 주석으로 인식합니다. 해당줄을 초과해서 주석으로 표현할 수 없습니다.
 /*’으로 시작해서 ‘*/’으로 끝내는 경우 그 중간에 기술한 내용을 주석으로 인식합니다. 여러줄을 주석으로 표현할 수 있습니다.

[예제]

 

// DMI Indicator

Parameter: Length(14)
Variables: SumDX(0), Counter(0)

PLOT2
( MinusDI(Length), "-DI", Blue )
PLOT1
( PlusDI(Length), "+DI", Magenta )
PLOT3
( ADX(Length), "ADX", Red, Black, 2 )
PLOTBaseline1
( 20, "20 Line", Magenta )

/* PLOT1( Round( PlusDI(Length),3 ), "+DI", Magenta)
PLOT2( Round( MinusDI(Length),3 ), "-DI", Blue)
PLOT3( Round( ADX(Length),3 ), "ADX",Red,Black,2)
PLOTBaseline1( 10, "10 BaseLine", Magenta )
PLOTBaseline2( 30, "30 BaseLine", Magenta ) */

// print ( d, t, Round( PlusDI(Length),3 ), Round( MinusDI(Length),3 ), Round( ADX(Length),3 ) )


제어문(조건문)

제어문이란 로직에 조건을 설정하여 실행순서를 바꿀 수 있게 하는 명령어들을 말합니다. 로직의 흐름은 기술한 순서(위에서 아래, 좌에서 우)대로 실행하는 것이 원칙입니다.

그런데, 상황에 따라서 변수등을 비교하거나 반복실행을 해야 할 때가 있는데, 이러한 때 사용하게 됩니다.

IF 문장, FOR 문장, DO 문장, SELECT 문장, WITH 문장으로 구성됩니다.
괄호 ‘()’로 표기한 부분은 생략 가능함을 의미합니다


1. IF 문장 : 조건에 따라 분기하게 되는 문장. 가장 많이 사용하기도 합니다. 4가지 형태가 있습니다.

용법 1 예제
IF 조건문 THEN 실행문
IF 조건문 THEN 실행문 : 조건문과 실행문 모두 한 줄에 기술해야 하며 END IF를 사용할 수 없습니다. 한 줄 IF라고 합니다.

용법 2 예제
IF 조건문 THEN
  실행문 1
  실행문 2
  …
  실행문 x
END IF
조건문이 참(TRUE)이면 실행문들을 실행하게 됩니다. 거짓이면 실행문을 실행하지 않고 IF문장 다음의 문장들을 실행하게 됩니다.

용법 3 예제

IF 조건문 THEN

  실행문 1
  …
  실행문 4
ELSE
  실행문 5
  …
  실행문 9
END IF

조건문이 참(TRUE)이면 실행문1~실행문4를 실행하게 됩니다. 거짓이면 실행문5~실행문9를 실행합니다. 즉 조건문이 참이냐 거짓이냐의 여부에 따라 실행하는 문장을 달리 하고 싶을 때 사용합니다.

용법 4 예제

IF 조건문 1 THEN

  실행문 1
  실행문 2
ELSEIF 조건문 2 THEN
  실행문 3
  실행문 4
(ELSEIF 조건문 3 THEN
  실행문 5
  실행문 6)
(ELSE
실행문 7)
END IF

조건문1이 참(TRUE)이면 실행문1~2를 실행.

거짓이면 조건문2를 판단, 참이면 실행문3~4를 실행. 거짓이면 조건문3을 판단, 참이면 실행문5~6을 실행. 거짓이면 실행문7 을 실행하게 됩니다.

거짓이면 실행문5~실행문9를 실행합니다. 즉 조건문을 여러 개 사용하고 싶을 때 사용합니다.


2. FOR 문장 : 로직을 처리할 때, 여러줄의 코드를 반복해 실행하고자 할 경우 사용. 반복실행할 회수가 이미 정해진 경우 많이 사용합니다. 

용법 예제

FOR 카운터변수 = 시작값 TO 종료값 (STEP 증감값)
  실행문 1
  …
  실행문 x
END FOR



Counter는 4부터 시작해서 루프를 한 번 완료할때마다 1씩 감소한다. Counter가 -1이 되면 더 이상 FOR 문장을 수행하지 않는다. 예제는 총 5번 루프를 수행하게 된다.

카운터 변수의 시작값부터 종료값까지 반복해서 실행합니다.
STEP으로 증감값을 기술하면 카운터변수를 증감값을 이용해 증감하고 생략했을 경우, 기본적으로 증감값은 1 입니다.
한 번 실행문1부터 x까지 실행했다면 종료값과 카운터변수를 비교해서 반복여부를 판단합니다


▶ Step 뒤에 상수값 뿐만 아니라 수식도 사용 가능합니다

예제

▶ EXIT FOR : FOR 문장을 강제로 종료하기 위한 명령어 입니다.

예제

3. DO 문장 : DO와 LOOP라는 명령어 사이에 기술한 실행문을 반복 실행하게 하는 문장.

WHILE과 UNTIL을 사용해서 총 4가지 형태로 사용할 수 있습니다.
WHILE과 UNTIL은 반대되는 조건문을 가집니다.


용법 예제

DO WHILE 조건문
  실행문 1
  실행문 2
  …
  실행문 x
LOOP



print 문장은 총 9번 실행된다.

실행문 1~x를 실행하기 전에 조건문을 판단해서 참이면 실행문 1~x를 실행.
거짓이면 DO 문장을 종료하고 LOOP 다음에 기술된 문장을 실행합니다.


용법 예제

DO
  실행문 1
  실행문 2
  …
  실행문 x
LOOP WHILE 조건문



print 문장은 총 1번 실행된다.

실행문 1~x를 한 번씩 모두 실행하고 조건문을 판단해서 참이면 실행문 1~x를 다시 실행.
거짓이면 DO 문장을 종료하고 LOOP 다음에 기술된 문장을 실행합니다.


용법 예제

DO UNTIL 조건문
  실행문 1
  실행문 2
  …
  실행문 x
LOOP



print 문장은 총 9번 실행된다.

실행문 1~x를 실행하기 전에 조건문을 판단해서 거짓이면 실행문 1~x를 실행.
참이면 DO 문장을 종료하고 LOOP 다음에 기술된 문장을 실행합니다.


용법 예제

DO
  실행문 1
  실행문 2
  …
  실행문 x
LOOP UNTIL 조건문



print 문장은 총 1번 실행된다.

실행문 1~x를 한 번씩 모두 실행하고 조건문을 판단해서 거짓이면 실행문 1~x를 다시 실행.
참이면 DO 문장을 종료하고 LOOP 다음에 기술된 문장을 실행합니다.


4. SELECT 문장

IF 문장을 사용해서 조건문을 처리할 때와 비슷합니다.
SELECT 문장으로 표현하게 되면 로직이 단순명료해지는 장점이 있습니다.
조건문과 비교문 모두 수식이나 변수의 사용이 가능합니다.

용법 예제

SELECT CASE 조건문
  CASE 비교문 1
    실행문 1
  CASE 비교문 2
    실행문 2
  …
  ELSE
    실행문 x
END SELECT


조건문의 결과가 비교문 1과 같으면 실행문 1을 실행. 비교문 2와 같으면 실행문 2를 실행. 같은 비교문이 없다면 실행문 x를 실행.


▶ 비교문의 구성

비교문은 ‘,’를 사용해서 여러값을 기술하는 경우 기술한 복수의 조건을 설정 할 수 있습니다.
비교문은 ‘TO’를 사용해서 시작값과 끝값을 지정해 범위를 설정할 수 있습니다.
예제


조건문과 비교문 모두 수식이나 변수의 사용이 가능합니다.
예제


5. WITH 문장 : STage 시스템 트레이딩만이 제공하는 강력한 기능 중 하나로써 WITH와 END WITH로 정의된 구간에서 기본값에 대한 정의를 변경 할 수 있습니다.


용법

WITH 기본값
  실행문 1
  실행문 2
  ...
  실행문 x
END WITH


‘기본값’으로 사용할 수 있는 변수(라인스터디, Plot 지시자 , Data 지시자)

 

▶ [‘WITH 라인스터디’ 예제]

예제는 10개의 봉마다 라인스터디를 하나씩 그리는 로직입니다.

예제

라인스터디를 그리는(생성하는) 시점에서의 라인스터디의 색을 설정하고, 두께를 조정하고 있습니다.

10일전 종가보다 오늘의 종가가 높으면 빨간색, 낮으면 파란색, 같으면 검정색을 지정하고, 두께를 각 각 6, 4, 2로 지정했습니다.

 

이처럼 WITH 문장의 오른쪽에 오는 기본값을 검사하여 color나 size의 기본값을 지정할 수 있습니다.



▶ [‘WITH Data’ 예제]

예제

예제는 Data를 2개 사용해서 매매하는 로직입니다.

‘High of Data2’은 Data2의 당일 최고값을 사용하는 로직이고 ‘buy of Data2 next bar at market’는 다음봉 Data2의 시장가로 주문을 내고 있습니다.

이 로직은 WITH문장을 사용해서 다음과 같이 바꿀 수 있습니다.


예제

이처럼 WITH 문장의 오른쪽에 오는 기본값을 검사하여 high와 같은 가격예약어나 buy와 같은 주문문장에 대한 기본 Data값을 지정할 수 있습니다.

여기서 한가지 주의할 것은, With Data2를 사용해 Data의 기본값을 Data2로 지정했다 해도 With 내부로직에서 High of Data1이나 Data1.High처럼 사용한다면 With에 영향받지 않고 Data1의 High를 참조합니다.



▶ [‘WITH Data(수식)’ 예제]

위 예제에서 With Data2로 기술해서 Data2를 기본값으로 지정했지만 상황에 따라서 변수 등을 이용해 능동적으로 기본 Data값을 조정하고 싶다면 아래와 같이 사용 가능합니다.

예제


위 예제에서 보듯이 ‘Data(x)’의 결과값 (여기서는 1~3 사이의 값)을 기본 Data값으로 지정할 수 있습니다.

Data(수식)에서 수식 부분에는 변수 이외에도 함수를 사용해서 ‘Data( fx(x)+fy(y) )’ 혹은, ‘Data( (x+y)/z+x%3 )’과 같은 자유로운 표현이 가능합니다.


PLOT 함수

▶ STage 시스템 트레이딩은 매매전략이나 지표에서 작성된 로직을 차트를 통해 PLOT, PLOTBAR, PLOTPOINT, PLOTBASELINE을 이용하여 시각적으로 표현할 수 있습니다.


1. PLOT : 차트에서 선을 그릴 때 사용하는 예약어 입니다.

‘PLOT1’, ‘PLOT2’와 같이 ‘PLOT’이라는 예약어에 숫자를 연결해서 각각의 PLOT들을 구분해서 그릴 수 있습니다.

사용방법 : PLOT1 [위치이동] ( 값, “이름”, 라인색, 배경색, 두께 ).

위치이동은 PLOT1을 차트에 그릴 때 X축을 기준으로 양수인경우 왼쪽, 음수인 경우 오른쪽으로 이동시켜 그리게 하는 값입니다.

이름 부터는 생략 가능합니다.


예제



예제는 ‘MACF’ 함수의 결과값을 ‘Value1’이라는 변수에 대입하고 그 값을 ‘PLOT1’을 사용하여 차트에 표현하고 있습니다.

2. PLOTBAR : 차트에서 봉을 그릴 때 사용하는 예약어 입니다.

‘PLOT1’, ‘PLOT2’와 같이 ‘PLOT’이라는 예약어에 숫자를 연결해서 각각의 PLOT들을 구분해서 그릴 수 있습니다.
사용방법 1 : PLOTBAR1 [위치이동] ( 최고값, 최저값, “이름”, 외곽선색, 채움색, 두께 ). 위치이동은 PLOT의 값과 동일한 기능이다. 이름부터는 생략가능합니다.
사용방법 2 : PLOTBAR2 [위치이동] ( 시작값, 최고값, 최저값, 종료값, “이름”, 외곽선색, 채움색, 두께 ). 위치이동은 PLOT의 값과 동일한 기능입니다. 이름부터는 생략 가능합니다.

예제

예제에서 PlotBar1은 2봉 이전의 시고저종값으로 봉을 그리되, x축에서 오른쪽으로 7칸을 이동해서 그리고 있다. PlotBar2는 최고값과 최저값으로 봉을 그리고 있습니다.

3. PLOTPOINT : 차트에서 점을 그릴 때 사용하는 예약어 입니다.

‘PLOTPOINT1’, ‘PLOTPOINT2’와 같이 ‘PLOTPOINT’이라는 예약어에 숫자를 연결해서 각각의 PLOTPOINT들을 구분해서 그릴 수 있습니다.

사용방법
- PLOTPOINT1 [위치이동] ( 위치, “이름”, 색, 두께, 모양 ). 위치이동은 PLOT의 값과 동일한 기능
- 위치에 사용 할 수 있는 값은 Topside나 Bottomside 뿐이다. 색부터는 생략 가능합니다.

4. PLOTBASELINE : 차트에서 x축과 평행한 수평선을 그릴 때 사용하는 예약어입니다.


‘PLOTBASELINE 1’, ‘PLOTBASELINE 2’와 같이 ‘PLOTBASELINE’이라는 예약어에 숫자를 연결해서 각각의 PLOTBASELINE들을 구분해서 그릴 수 있습니다.

사용방법
- PLOTBASELINE1 [위치이동] ( 값, “이름”, 색, 두께 ). 위치이동은 PLOT의 값과 동일한 기능
- 색부터는 생략 가능합니다.
예제는 ‘MACF’ 함수의 결과값을 ‘Value1’이라는 변수에 대입하고 그 값을 ‘PLOT1’을 사용하여 차트에 표현하고 있습니다.


▶ PLOT, PLOTBAR, PLOTPOINT, PLOTBASELINE의 경우 ‘.’연산자를 이용해서 해당 PLOT들의 속성을 변경하거나 참조할 수 있으며, PLOT의 내부함수를 호출 할 수 있습니다.


1. PLOT이 사용할 수 있는 속성

show PLOT이 해당 봉에서 차트에 보여질지의 여부를 설정합니다.
color PLOT이 해당 봉에서 차트에 보여질 때의 색깔을 지정합니다.

2. PLOTBAR가 사용할 수 있는 속성

PLOT과 동일합니다.

3. PLOTPOINT가 사용할 수 있는 속성

setvalue 이 내부함수를 호출하면 PLOTPOINT가 해당 봉에도 찍히게 됩니다. PLOTPOINT를 다시 호출하는 것과 비슷합니다.

4. PLOTBASELINE가 사용할 수 있는 속성

applyscale 차트를 그릴 때 표현하는 영역의 y축의 스케일을 자동조정하게 됩니다.
이 값이 false가 되면 y축의 스케일을 조정할 때 PLOTBASELINE의 값은 빼고 그리게 됩니다.
show PLOTBASELINE이 차트에 보여질지의 여부를 설정합니다.