키움 영웅문 수식에서 분봉상 날짜가 바뀌는 경우 값을 리셋하고 다시 계산해야할 때가 있다.

예를들어 당일 분봉 거래대금 합산을 구하는 아래 수식을 보자

M = sum(((L+H+O+C)/4)*V/100000000); 
Old = valueWhen(1, date(1)!=date, M(1)); 
M - Old

valueWhen(조건만족 n번째봉, 조건, 값)

 

현재분봉(가장 최근 분봉)의 날짜와 다른 부분의 수식값이 곧 어제까지의 값이다.

이 값을 Old라고 하자( 여기서 M(1)는 하루전 값이다. 오늘값은 M(0) 또는 괄호생략하여 M)

 

"모든날짜 대금합 - 어제까지의 대금합" 으로 오늘의 대금을 따로 구할수 있다.

 

[보충]: 이 부분을 다시 설명해보면,

과거분봉-> 미래분봉 방향으로 거래대금을 더해가다가,

현재current분봉의 날짜가 바로 전 분봉의 날짜와 다르면, M(1) 즉 전 분봉까지의 대금합을 빼겠다는 의미로 보는게 맞을듯함.

 

 

번째 케이스,

최근 분봉 30개의 상승률을 구하고 싶은데, 어제의 분봉은 제외하고 싶을때,

start = if(date(30)!=date, DayOpen(), c(30));
d = h(0) - start;
d / start * 100;

if(조건, 참일때 값, 거짓일 때 값)

 

date(30) 은 30개 전 봉의 날짜.

즉, date(30)이 현재봉의 날짜와 다른경우 오늘의 시가(dayOpen)로 기준을 잡겠다는 의미이다.

30개 전 분봉도 오늘것이면, 30개 전의 종가를 기준으로 잡게된다.

 

위와같이 date 변수를 사용해서 분봉에서도 날짜의 변화를 적용할 수 있다.

 

 

+ Recent posts