본문 바로가기
프로그래밍

python, 주식(보조지표) - 일목균형표(2)

by 청청개구리 2022. 12. 18.
728x90

이전 글에 이어 계속 나아가 보자.

이전글에 기준선과 전환선을 만들어 보았는데,

이번글에 선행스팬1, 선행스팬2, 후행스팬을 계산한다.

그래프 그리기로 구름대 표현까지 추가해보자

 

아래는 이전글 참고.

https://nothing-else-matters.tistory.com/92

 

python, 주식(보조지표) - 일목균형표(1)

일목요연하게 볼 수 있다하여, 일목균형표. 요기에 나오는 여러 선들을 구해보는 작업이다. 이번 (1)회에서는 기준선, 전환선을 해보고, 나머지 선행스팬1, 선행스팬2, 후행스팬 은 (2)회로 하겠음

nothing-else-matters.tistory.com

 

 

후행스팬과 선행스팬은 원데이터가 가지는 범위를 벗어나서까지 계산값이 기록되어야 한다.

원데이터로 받아들인 날짜범위 외에 추가가 필요하다

계산 데이터가 모두 완성되면 아래 그림과 같은 같은 형태가 된다.

숫자는 일수를 나타내고 있다.

 

 

아래 계산식에서 보듯이, 계산상 입력기간과 일치하도록 구해지지 않게 되는거다.

 

 

 

 

 

소스코드 보자.

 

코드 설명

62행 : 파일을 읽는다

65행 : 데이터프레임으로 만들고

67-75행 : 선행스팬으로 채워질 26일을 미리 준비해둔다.

      주말을 제외하고 평일만 추가하고 싶어 요일을 검사하고 있다.

82, 84행 : 기준선, 전환선 계산

89, 91, 92행 : 선행스팬1, 선행스팬2, 후행스팬 계산

       당일을 합해서 26일 전후가 되기에 shift(25)를 사용하고 있음

94-97행 : 후행스팬을 위해 준비한 추가 행에 기준선, 전환선이 계산되는데 잘못된 값이므로,

       지우기 위해서, 시가=0 일경우에는 0 처리한다.

99행 : 0 인 값은 NaN 처리한다.(그래프에 그려지지 않게 하기 위해)

102행 : 데이터프레임의 엑셀출력 

 

 

그래프 확인해 본다. 구름대 표현은 fill_between() 사용하자.

 

비교를 위해서 HTS에서 비슷한 기간의 차트를 가져와 본다.

 

그럭저럭 비슷하게 나오는 그래프를 확인 할 수 있겠다.

자~ 요걸 어떻게 써먹을 수 있을지...

 

728x90