투자 연구
분봉 수식에서 날짜 변경 처리하기(키움)
DevIndie
2020. 4. 12. 18:23
키움 영웅문 수식에서 분봉상 날짜가 바뀌는 경우 값을 리셋하고 다시 계산해야할 때가 있다.
예를들어 당일 분봉 거래대금 합산을 구하는 아래 수식을 보자
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 변수를 사용해서 분봉에서도 날짜의 변화를 적용할 수 있다.