input : 전환선기간(9),기준선기간(26),선행스팬2기간(52),PRE(25);
var : cnt(0);
var : h1(0),l1(0),m1(0);
var : h2(0),l2(0),m2(0);
var : Preh1(0),Prel1(0),Prem1(0);
var : Preh2(0),Prel2(0),Prem2(0);
var : m3(0);
var : h4(0),l4(0),m4(0);
#77일간데이터가 있고
if DayOpen(선행스팬2기간+Pre) > 0 Then
{
h1 = 0;
l1 = 0;
h2 = 0;
l2 = 0;
Preh1 = 0;
Prel1 = 0;
Preh2 = 0;
Prel2 = 0;
h4 = 0;
l4 = 0;
#로프로 과거일의 고가와 저가를 가져와 지정기간 최고가와 최저가를 계산
For cnt = 0 to 선행스팬2기간
{
#당일~8일간
if cnt < 전환선기간 Then
{
#최고가 계산
if h1 == 0 or (h1 > 0 and DayHigh(cnt) > h1) Then
h1 = DayHigh(cnt);
#최저가 계산
if l1 == 0 or (l1 > 0 and DayLow(cnt) < l1) Then
l1 = DayLow(cnt);
#선행스팬1 계산을 위해
#25일전 기준 9일간 최고가가 계산
if Preh1 == 0 or (Preh1 > 0 and DayHigh(cnt+Pre) > Preh1) Then
Preh1 = DayHigh(cnt+Pre);
#25일전 기준 26일간 최저가가 계산
if Prel1 == 0 or (Prel1 > 0 and DayLow(cnt+Pre) < Prel1) Then
Prel1 = DayLow(cnt+Pre);
}
#당일~25일전
if cnt < 기준선기간 Then
{
#최고가 계산
if h2 == 0 or (h2 > 0 and DayHigh(cnt) > h2) Then
h2 = DayHigh(cnt);
#최저가 계산
if l2 == 0 or (l2 > 0 and DayLow(cnt) < l2) Then
l2 = DayLow(cnt);
#선행스팬1 계산을 위해
#25일전 기준 26일간 최고가가 계산
if Preh2 == 0 or (Preh2 > 0 and DayHigh(cnt+Pre) > Preh2) Then
Preh2 = DayHigh(cnt+Pre);
#25일전 기준 26일간 최저가가 계산
if Prel2 == 0 or (Prel2 > 0 and DayLow(cnt+Pre) < Prel2) Then
Prel2 = DayLow(cnt+Pre);
}
if cnt < 선행스팬2기간 Then
{
#25일전 기준 52일간 최고가 계산
if h4 == 0 or (h4 > 0 and DayHigh(cnt+pre) > h4) Then
h4 = DayHigh(cnt+pre);
#25일전 기준 52일간 최저가 계산
if l4 == 0 or (l4 > 0 and DayLow(cnt+pre) < l4) Then
l4 = DayLow(cnt+pre);
}
}
#일간전환선 = 9일간 최고가와 최저가의 중간값
m1 = (h1+l1)/2;
#일간기준선 = 26일간 최고가와 최저가의 중간값
m2 = (h2+l2)/2;
#25일전 기준 전환선
Prem1 = (Preh1+Prel1)/2;
#25일전 기준 기준전
Prem2 = (Preh2+Prel2)/2;
#선행스팬1 = 25일전 기준 전환선과 기준선의 중간값
m3 = (Prem1+Prem2)/2;
#선행스팬2 = 25일전 기준 52일간 최고가와 최저가의 중간값
m4 = (h4+l4)/2;
Plot1(m1,"일봉전환선");
Plot2(m2,"일봉기준선");
Plot3(m3,"일봉선행스팬1");
Plot4(m4,"일봉선행스팬2");
}
JavaScript
복사
[일목균형표 공식]
전환선 = (9일 최고가 + 9일 최저가)/2
기준선 = (26일 최고가 + 26일 최저가)/2
후행스팬 = 종가
선행스팬1 = (전환선+기준선)/2
선행스팬2 = (52일 최고가 + 52일 최저가)/2
※ 후행스팬은 현재종가를 25봉 뒤로 이동시킨 선이고
선행스팬1,2는 현재값을 25봉 앞으로 이동시킨 선입니다.