본문 바로가기

HTS 활용/영웅문

키움 영웅문 내장 함수

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. 데이터 함수


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

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



3. 산술 및 관계 연산자


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

함수명의미예제예제 설명
+더하기H + L금일 고가와 저가의 합
-빼기H(1) - L(1)1봉 전의 고가와 1봉 전의 저가의 차
*곱하기V * 100금일 거래량에 100을 곱한 값
/나누기C(1) / C1봉 전의 종가를 금일의 종가로 나눈 값
%나머지10 % 3나눈 값의 나머지
=대입A = H - LA에 고가와 저가의 차를 대입
==논리적으로 같음C == O종가와 시가가 같다
!=논리적으로 다름C != O종가와 시가가 다르다
<우측이 큼C < O종가가 시가보다 작다
<=우측이 크거나 같음C <= O종가가 시가보다 작거나 같다
>좌측이 큼C > O종가가 시가보다 크다
>=좌측이 크거나 같음C >= O종가가 시가보다 크거나 같다
!, not부정not AA가 아니다
&&, 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^bA의 누승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를, 만족하지 않으면 BIf(C==C(1),1,0)만일(종가==종가(1),1,0)
만일(condition,A,B)만일 현재 종가와 1봉전 종가가 같으면, 1, 아니면 0
이동Shift(A,N)차트 상에서 A를 N(양/음)만큼 우(좌)측 으로 이동shift(C,10)
종가를 10만큼 우측으로 이동
CountsinceCountSince
(condition,data)
condition이 만족된 이후 data의 값이 참인 횟수CountSince(date!=date(1),CrossUp(Trix(12),0))
일자가 변경된 후 Trix가 0기준선을 상향돌파한 횟수
BarsSinceBarsSince
(condition)
condition이 만족된 이후 지나간 봉 갯수BarsSince(CrossUp(Tri x(12),0))
Trix가 0기준선을 상향돌파한 이후 지난 봉 갯수
HighestSinceHighestSince
(condition, data)
condition이 만족된 이후 data의 최고값HighestSince(CrossUp(Trix(12),0), c)
Trix가 0기준선을 상향돌파한 이후 c의 최고가
LowestSinceLowestSince
(condition, data)
condition이 만족된 이후 data의 최저값LowestSince(CrossDown(Trix(12),0), c)
Trix가 0기준선을 하향돌파한 이후 c의 최저가
ValueWhenValueWhen
(nth,condition,data)
condition이 nth번째 만족된 시점의 data값ValueWhen(1, CrossUp(Trix(12),0), c)
Trix가 0기준선을 상향 돌파한 시점의 종 가
DayOpenDayOpen()장 시작가Dayopen()
장 시작가
DayHighDayHigh()장중 고가DayHigh()+ Dayopen()
장중 고가와 장 시가의 합
DayLowDayLow()장중 저가DayLow() + DayHigh()
장중 저가와 장중 고가의 합
PredayOpenPredayOpen()전일 시가PredayOpen()+DayOpen()
전일 시가와 장 시작가의 합
PredayHighPredayHigh()전일 고가PredayHigh()
전일 고가
PredayLowPredayLow()전일 저가(PredayLow() + PredayHigh())/2
전일 저가와 전일 고가의 합을 2로 나눈값
PredayClosePredayClose()전일 종가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


'HTS 활용 > 영웅문' 카테고리의 다른 글

이동평균선 강조하기  (2) 2014.12.23
종합차트에 추세선 저장하기  (0) 2014.12.15
영웅문 내장함수  (0) 2014.09.02
상한가 하한가 신호검색  (0) 2013.08.27
DEMA  (0) 2013.08.06