본문 바로가기
∎ 매매의 기술 [ K ]/지표편집

[펌] 키움 수식관리자에 사용되는 내장함수

by 케이님[K] 2014. 5. 5.



1. 내장 함수 사용에 관한 기본 사항

≫ 기본 규칙

사칙연산자간 우선순위
사칙연산자간 우선순위는 '*''/'이 '+' '-'에 우선하여 연산을 실행합니다.
소괄호()를 통한 우선순위
변수를 지정할 경우에 사용하기도 하며, 연산자간의 계산상의 우선순위를 결정할 때에도 사용합니다.
ex) RSI(14), (High+Low)/2
논리연산자 And와 Or의 중복
조건문 내에서 And와 Or를 중복할 경우 작성자의 의도대로 계산하여, 참과 거짓 여부를 판단하여야 합니다. 이러한 경우에는 소괄호 ()로서 각 조건사이의 관계를 명확히 하여야 합니다.
조건1 And 조건2 or 조건 3은 다음과 같이 2가지로 해석될 수 있으므로,
ⓐ (조건1 And 조건2) or 조건 3
ⓑ 조건1 And (조건2 or 조건 3)
ⓐ 혹은 ⓑ 둘 중 하나로 명확하게 작성하셔야 합니다.
문자와 소문자의 구분
대소문자의 구분이 없습니다.
따라서 RSI, rSI, RSi, RsI, Rsi 등이 모두 동일한 함수입니다.
공백 및 줄의 변경
함수식 작성시 공백 및 줄에 의한 영향 없습니다.
예를 들자면, RSI(14)와 RSI( 14 )는 동일한 수식이라고 인식됩니다.
변수에 대한 제약
변수는 영문뿐 아니라 한글 변수도 가능하며, 글자 수에도 제한이 없습니다.
ex) ADX(Period) , ADX(적용기간)


≫ 유의 사항

함수명과 변수명에 특수문자 사용금지
사용자 정의 함수명에 특수 문자 ' * , # , _ , + , " . " '등의 모든 특수 문자를 금합니다.
ex) " +DI " 라고 함수명을 정의하여 사용할 수 없습니다.
ex) " *Period " 라고 변수명을 정의하여 사용할 수 없습니다.
함수명/변수명 앞에 숫자 사용 금지
사용자 정의 함수명을 정하는 경우 함수명/변수명 앞에 숫자 사용을 금합니다.
ex) '1MAO' 라고 함수 명 앞에 숫자를 기입하여 함수명을 정의하면 안됩니다.
ex) '3기간' 라고 변수 명 앞에 숫자를 사용하여 변수명을 사용할 수 없습니다.
기본 함수명/지표명/조건검색명/강세약세명/매매전략명과 사용자 정의 명과 동일 이름 사용 금지
기본 함수명(내장함수 포함)의 하나를 선택하여 사용자 정의 함수명 및 변수명으로 사용할 수 없습니다.
ex) 사용자 정의 함수명을 기본함수에 있는 ATR 이라는 이름으로 정의할 수 없습니다.
사용자 정의 지표명을 기본지표에 있는 MACD라고 사용할 수 없으므로, myMACD 또는 MACD변형 등 사용자 임의대로 변형하여 사용하여야 합니다.



2. 데이터 함수


기술적 분석에 쓰이는 기본적인 시세 데이터를 의미합니다.

함수 영문/한글표기 과거표시 예제 예제설명
거래대금 account account(N) account + account(5) 현재봉의 거래금액과 5봉 전의 거래금액의 합
거래대금 거래대금(N) 거래대금 + 거래대금(5)
거래량 Volume V(N) V + V(1) 현재봉의 거래량과 1봉 전(직전봉)의 거래량의 합
거래량 거래량(N) 거래량 + 거래량(1)
시가 Open, O O(N) O - O(1) 현재봉의 시가와 1봉 전(직전봉)의 시가와의 차
시가 시가(N) 시가 - 시가(1)
고가 High, H H(N) H - H(2) 현재봉의 고가와 2봉 전의 고가의 차
고가 고가(N) 고가 - 고가(2)
저가 Low, L L(N) L - L(2) 현재봉의 저가와 2봉 전의 저가의 차
저가 저가(N) 저가 - 저가(2)
종가 Close, C C(N) C - C(1) 현재봉의 종가와 1봉 전(직전봉)의 종가와의 차
종가 종가(N) 종가 - 종가(1)
미결제약정 OI OI(N) OI + OI(2) 현재봉의 미결제약정과 2봉 전의 미결제 약정의 합
미결제약정 미결제약정(N) 미결제약정+미결제약정(2)
날짜 date Date(N) Date 봉의 끝 날짜를 의미함
(20030809" 형태의 값)
일자 일자(N) 일자
시간 time Time(N) time 봉의 끝 시간을 의미함
("102500" 형태의 값)
시간 시간(N) 시간



3. 산술 및 관계 연산자


데이터 함수에 산술 및 관계 연산자를 이용한 수식을 만들어 사용할 수 있습니다.
이를 통해 과거 및 현재 시세 데이터의 관계 및 논리를 판단할 수 있습니다.

함수명 의미 예제 예제 설명
+ 더하기 H + L 금일 고가와 저가의 합
- 빼기 H(1) - L(1) 1봉 전의 고가와 1봉 전의 저가의 차
* 곱하기 V * 100 금일 거래량에 100을 곱한 값
/ 나누기 C(1) / C 1봉 전의 종가를 금일의 종가로 나눈 값
% 나머지 10 % 3 나눈 값의 나머지
= 대입 A = H - L A에 고가와 저가의 차를 대입
== 논리적으로 같음 C == O 종가와 시가가 같다
!= 논리적으로 다름 C != O 종가와 시가가 다르다
< 우측이 큼 C < O 종가가 시가보다 작다
<= 우측이 크거나 같음 C <= O 종가가 시가보다 작거나 같다
> 좌측이 큼 C > O 종가가 시가보다 크다
>= 좌측이 크거나 같음 C >= O 종가가 시가보다 크거나 같다
!, not 부정 not A A가 아니다
&&, and 논리곱 C>O && C(1)>O(1) 현재 봉의 종가가 시가보다 크고, 직전 봉의 종가가 시가가 크다
||, or 논리합 C>O || C(1)>O(1) 현재 봉의 종가가 시가보다 크거나, 직전 봉의 종가가 시가보다 크다
If, 만일 조건문 if(C>O, 1, 0) 현재 봉의 종가가 시가보다 크면 1, 크지 않으면 0 이다


≫ 데이터와 산술 및 관계 연산자를 이용한 예제

양봉 : 종가가 시가보다 크거나 같은 봉
함수명`표기 양봉() 지표명 양봉 지표명 양봉
함수식 C>=O 수식 C>=O 수식(함수이용) 양봉()
변수정의 변수정의
중간가격 : 고가와 저가와의 차의 중간값
함수명`표기 MidPoint() 지표명 Midpoint 지표명 Midpoint
함수식 (H+L)/2 수식 (H+L)/2 수식(함수이용) MidPoint()
변수정의 변수정의
ROC
함수명`표기 ROC
(가격,적용기간)
지표명 ROC 지표명 ROC
함수식 A=가격;
B=A(적용기간);
(A-B)/B*100
수식 A=가격;
B=A(적용기간);
(A-B)/B*100
수식
(함수이용)
ROC
(가격,적용기간)
변수정의 가격=종가, 적용기간=14 변수정의 가격=종가,적용기간=14



4. 통계함수


일정 범위의 데이터를 통계적으로 분석할 때 사용하는 함수로서, 기술적지표의 특성으로 인해 가장 많이 사용되는 함수입니다.
A - 값, N & M - 기간

함수명 영문/한글표기 과거(M봉 전 값) 의미 예제
단순평균 Avg(A,N) Avg(A,N,M) A의 N일간의 단순평균 avg(C,10) 종가의 10일간
단순평균
평균(A,N) 평균(A,N,M) 평균(종가,10)
가중평균 wavg(A,N) wavg(A,N,M) A의 N일간의 가중평균 wavg(H,10) 고가의 10일간
가중평균
가중평균(A,N) 가중평균(A,N,M) 가중평균(고가,10)
지수평균 eavg(A,N) eavg(A,N,M) A의 N일간의 단순평균 eavg(O,10) 시가의 10일간
단순평균
지수평균(A,N) 지수평균(A,N,M) 단순평균(시가,10)
이평 MA(A,N,D이평) MA(A,N,D이평,M) A의 N일간의 D이평 MA(C,10,단순) 종가의 10일
단순이평
MA(종가,5,지수) 종가의 5일
지수이평
표준편차 stdev(A,N) stdev(A,N,M) A의 N일간의 표준편차 stdev(C,10) 종가의 10일간
표준편차
표준편차(A,N) 표준편차(A,N,M) 표준편차(종가,10)
최고값 highest(A,N) highest(A,N,M) A의 N일간의 최고값 highest(C,10) 10일 간의
종가 중 최고가
최고값(A,N) 최고값(A,N,M) 최고값(C,10)
최저값 lowest(A,N) lowest(A,N,M) A의 N일간의 최저값 lowest(C,10) 10일 간의
종가 중 최저가
최저값(A,N) 최저값(A,N,M) 최저값(C,10)
누적합계 sum(A) - A의 누적합계 sum(V) 거래량의 누적합계
sum(A,N) sum(A,N,M) A의 N일간의 누적합계 sum(V,10) 10일간의
거래량의 누적합계
합계(A,N) 합계(A,N,M) 합계(거래량,10)


≫ 통계함수를 이용한 함수식 및 지표식 예제

MACD : 단기단순이평 - 장기단순이평
함수명`표기 MACD(가격,단기,장기,이평방법) 지표명 MACD 지표명 MACD
함수식 MA(가격,단기,이평방법)-MA(가격,장기,이평방법) 수식 MA(가격,단기,이평방법)-MA(가격,장기,이평방법) 수식
(함수이용)
MACD(가격,단기,장기,이평방법)
변수 가격=종가,단기=12,장기=26,이평방법=지수 변수 가격=종가,단기=12,장기=26,이평방법=지수
일정기간 동안의 최고가(고가 중)와 최저가(저가 중)의 차
함수명`표기 NRange(기간) 지표명 N기간 주가범위 지표명 N기간 주가범위
함수식 Highest(H,기간)
- Lowest(L,기간)
수식 Highest(H,기간)
- Lowest(L,기간)
수식
(함수이용)
NRange(기간)
변수 기간=10 변수 기간=10
William"s R (%R) 산식
함수명`표기 WilliamsR(적용기간) 지표명 Williams %R 지표명 Williams%R
함수식 (highest(H,적용기간) - C)
/ (highest(H,적용기간) -
lowest(L,적용기간))*-100
수식 (highest(H,적용기간) - C)
/ (highest(H,적용기간) -
lowest(L,적용기간))*-100
수식
(함수이용)
WilliamsR
(적용기간)
변수 적용기간=14 변수 적용기간=14



5. 수학함수


로그 및 삼각함수 등의 수학적인 계산에 이용되는 함수입니다.

함수명 영문/한글표기 의미 예제 설명
최대값 Max(A,B) A와 B중 큰 값을 선택 max(C,C(1)) 종가와 전일종가의 최대값
최대값(A,B) 최대값(종가,종가(1))
최소값 Min(A,B) A와 B중 작은 값을 선택 min(C,C(1)) 종가와 전일종가의 최소값
최소값(A,B) 최소값(종가,종가(1))
누승 a^b A의 누승 C^2 종가의 제곱(누승2)을 구한다
pow(a,b) pow(C,2)
누승(밑,단순) 누승(C,2)
로그 log(A) A의 로그 log(100) 로그 100의 값
로그(A) 로그(100)
상용로그 log10(A) A의 상용로그 log10(100) 상용로그 100의 값
상용로그(A) 상용로그(100)
절대값 abs(A) A의 절대값 abs(C-O) 종가와 시가 차의 절대값
절대값(A) 절대값(C-O)
제곱근 sqrt(A) A의 제곱근 sqrt(C) 종가의 제곱근
제곱근(A) 제곱근(종가)
사인 sin(A) A의 사인 값 sin(H) 고가의 사인 값
사인(A) 사인(H)
코사인 cos(A) A의 코사인 값 cos(H) 고가의 코사인 값
코사인(A) 코사인(H)
탄젠트 tan(A) A의 탄젠트 값 tan(H) 고가의 탄젠트 값
탄젠트(A) 탄젠트(H)
아크사인 asin(A) A의 아크사인 값 asin(H) 고가의 아크사인 값
아크사인(A) 아크사인(H)
아크코사인 acos(A) A의 아크코사인 값 acos(H) 고가의 아크코사인 값
아크코사인(A) 아크코사인(H)
아크탄젠트 atan(A) A의 아크탄젠트 값 atan(H) 고가의 아크탄젠트 값
아크탄젠트(A) 아크탄젠트(H)


≫ 수학함수 및 통계함수를 이용한 함수식 및 지표식 예제

일정기간 동안 최고가(종가 중)와 최저가(종가 중)를 뺀 값의 절대값
함수명`표기 absRange(기간) 지표명 Abs Range 지표명 Abs Range
함수식 abs(Highest(C,기간)
- Lowest(C,기간))
수식 abs(Highest(C,기간)
- Lowest(C,기간))
수식
(함수이용)
AbsRange(기간)
변수 기간=10 변수 기간=10
일정기간 동안 금일종가와 전일종가를 뺀 값의 누적합산 값
함수명`표기 sumabsR(기간) 지표명 sumabsR 지표명 sumabsR
함수식 A = abs(C-C(1));
Sum(A,기간)
수식 A = abs(C-C(1));
Sum(A,기간)
수식
(함수이용)
sumabsR(기간)
변수 기간=10 변수 기간=14
VHF
산식 : 일정기간 동안 최고가에서 최저가를 뺀 값의 절대값/일정기간 동안의 가격변화분(금일종가-전일종가)을 누적 합산한 수치
함수명`표기 VHF(적용기간) 지표명 VHF 지표명 VHF
함수식 A=abs(Highest(C,적용기간) -Lowest(C,적용기간));
B=sum(abs(C-C(1)), 적용기간);
A/B
수식 A=abs(Highest(C,적용기간)
-Lowest(C,적용기간));
B=sum(abs(C-C(1)),적용기간);
A/B
수식
(함수이용)
VHF
(적용기간)
변수 적용기간 변수



6. 기타함수


상향돌파와 하향돌파는 매매전략 작성에 주로 사용되는 함수입니다.

함수명 사용법(영문/한글) 의미 예제
상향돌파 crossup(A,B) A가 B를 상향돌파 crossup(C,avg(C,5)) 상향돌파(종가,평균(종가,5))
상향돌파(A,B) 종가가 5일 종가 단순이평을 상향 돌파
하향돌파 crossdown(A,B) A가 B를 하향돌파 crossdown(C,avg(C,5)) 하향돌파(종가,평균(종가,5))
하향돌파(A,B) 종가가 5일 종가 단순이평을 하향 돌파
만약 If(condition,A,B) 만일 condition을 만족하면 A를, 만족하지 않으면 B If(C==C(1),1,0) 만일(종가==종가(1),1,0)
만일(condition,A,B) 만일 현재 종가와 1봉전 종가가 같으면, 1, 아니면 0
이동 Shift(A,N) 차트 상에서 A를 N(양/음)만큼 우(좌)측 으로 이동 shift(C,10)
종가를 10만큼 우측으로 이동
Countsince CountSince
(condition,data)
condition이 만족된 이후 data의 값이 참인 횟수 CountSince(date!=date(1),CrossUp(Trix(12),0))
일자가 변경된 후 Trix가 0기준선을 상향돌파한 횟수
BarsSince BarsSince
(condition)
condition이 만족된 이후 지나간 봉 갯수 BarsSince(CrossUp(Tri x(12),0))
Trix가 0기준선을 상향돌파한 이후 지난 봉 갯수
HighestSince HighestSince
(condition, data)
condition이 만족된 이후 data의 최고값 HighestSince(CrossUp(Trix(12),0), c)
Trix가 0기준선을 상향돌파한 이후 c의 최고가
LowestSince LowestSince
(condition, data)
condition이 만족된 이후 data의 최저값 LowestSince(CrossDown(Trix(12),0), c)
Trix가 0기준선을 하향돌파한 이후 c의 최저가
ValueWhen ValueWhen
(nth,condition,data)
condition이 nth번째 만족된 시점의 data값 ValueWhen(1, CrossUp(Trix(12),0), c)
Trix가 0기준선을 상향 돌파한 시점의 종 가
DayOpen DayOpen() 장 시작가 Dayopen()
장 시작가
DayHigh DayHigh() 장중 고가 DayHigh()+ Dayopen()
장중 고가와 장 시가의 합
DayLow DayLow() 장중 저가 DayLow() + DayHigh()
장중 저가와 장중 고가의 합
PredayOpen PredayOpen() 전일 시가 PredayOpen()+DayOpen()
전일 시가와 장 시작가의 합
PredayHigh PredayHigh() 전일 고가 PredayHigh()
전일 고가
PredayLow PredayLow() 전일 저가 (PredayLow() + PredayHigh())/2
전일 저가와 전일 고가의 합을 2로 나눈값
PredayClose PredayClose() 전일 종가 PredayClose()
전일 종가


≫ 기타 함수를 이용한 매매전략 /조건검색 함수식 예제

가격 이동평균의 크로스를 이용한 전략
전략 로직 : 골든크로스 시 매수, 데드크로스 시 매도
검색 로직 : 골든크로스 시 매수, 데드크로스 시 매도
전략명 이동평균 크로스 전략 검색명 이동평균 크로스
수식 : 매수진입/매도청산 A= avg(C,단기);
B= avg(C,장기);
Crossup(A,B)
수식 : 매수검색 A= avg(C,단기);
B= avg(C,장기);
Crossup(A,B)
수식 : 매수청산/매도진입 A= avg(C,단기);
B= avg(C,장기);
Crossdown(A,B)
수식 : 매도검색 A= avg(C,단기);
B= avg(C,장기);
Crossdown(A,B)
변수 단기=5, 장기 =20 변수 단기=5, 장기 =20
MACD와 시그널과의 크로스를 이용한 전략
전략 로직 : MACD가 시그널을 상향돌파 시 매수, MACD가 시그널을 하향돌파 시 매도
전략명 MACD 크로스 전략 전략명 MACD 크로스
수식 :
매수진입/매도청산
A=eavg(C,단기);
B=eavg(C,장기);
M=A-B;
Signal=eavg(M,시그널기간);
Crossup(M,Signal)
기본함수이용 수식 (매수) A=MACD(C,단기,장기,지수);
B=eavg(A,시그널기간);
Crossup(A,B)
수식 :
매수청산/매도진입
A=eavg(C,단기);
B=eavg(C,장기);
M=A-B;
Signal=eavg(M,시그널기간);
Crossdown(M,Signal)
기본함수이용 수식 (매도) A=MACD(C,단기,장기,지수);
B=eavg(A,시그널기간);
Crossup(A,B)
변수 단기=12,장기=26,시그널기간=9 변수 단기=12,장기=26,시그널기간=9

 

 

http://www.kospi200futures.co.kr/

 


댓글