지난 게시물에서 "주봉 시가" 구하는 방법에 대해서 서술했었다.
2020/06/15 - [분류 전체보기] - [키움증권, 수식관리자] 주봉 시가 나타내기
이번에는 주봉 고가, 저가, 평균단가를 구하는 방법에 대해서 보도록 하겠다. (참고로 평균단가는 고가와 저가의 평균이다)
순서는 다음과 같다.
- 이번주의 첫 번째 봉 찾기
- 지난주의 마지막 봉 찾기
- 지난주의 저가 및 고가 찾기
1. 이번주의 첫 번째 봉 찾기
이건 위의 시가를 찾을 때와 같은 방법으로 수행한다. 간략하게 다시 말하자면 요일이 역전되는 순간(월->토)이 그 경계이므로, 그 순간까지 쭉 따라간다. 이 때, valueWhen함수를 이용한다.
valueWhen(1, 요일(date)<요일(date(1)), (--지난주 저가--))
2. 지난주의 마지막 봉 찾기
이건 한칸만 바로 앞으로 가면 된다. 다양한 방법이 있겠지만, 나는 요일이 순행한다는 조건으로 한칸 이동했다. 처음에는 이전봉과 날짜가 같은 경우로 잡았는데, 분봉인 경우에는 되지만, 일봉은 이전봉이 날짜가 바뀌는 봉이기 때문에 이 조건으로 되지 않는다.
valueWhen(1, 요일(date)>=요일(date(1)), (--이번주 저가--))
3. 지난주의 저가 및 고가 찾기
2번에서 찾은 봉은 지난주의 마지막 봉이다. 이 봉에서 시작해서 주가 바뀌기 전까지 앞으로 이동하면서 최저 및 최고가를 찾아주면 된다.
lowestSince(1, 요일(date)<요일(date(1)), low)
highestSince(1, 요일(date)<요일(date(1)), high)
마무리. 구한 내용 종합하기
3번을 적용해야되는 부분은 2번에서 찾은 봉 기준이고, 2번을 적용해야되는 부분은 1번에서 찾은 봉 기준이다. 이걸 보두 합치면 다음과 같다. LL은 지난주 저가, RR은 지난주 고가이다.
LL = valueWhen(1, 요일(date)<요일(date(1)),
valueWhen(1, 요일(date)>=요일(date(1)),
lowestSince(1, 요일(date)<요일(date(1)), low) ) );
RR = valueWhen(1, 요일(date)<요일(date(1)),
valueWhen(1, 요일(date)>=요일(date(1)),
highestSince(1, 요일(date)<요일(date(1)), high) ) );
이 두 값의 평균을 구하면, 지난주의 평균 가격이 나온다.
(LL + RR) / 2
이런식으로 구하고자 하는 값이 있을 때, 주어진 값과 함수가 어떤 것이 있는지 살펴보고, 하나하나씩 천천히 구해나가다 보면 원하는 결과에 도달할 수 있다.
'차트 세팅' 카테고리의 다른 글
[키움증권, 수식관리자] 주봉 시가 나타내기 (0) | 2020.06.15 |
---|---|
[키움증권, 수식관리자] 요일 구하기(월화수목금토일) (6) | 2020.06.15 |
[키움증권, 수식관리자] 분봉에서 "일봉의 시가, 종가, 고가, 저가" 나타내기 (0) | 2020.06.15 |