본문 바로가기
무모한 도전-주식 인공지능 만들기

VR과 MFI를 계산하기 위한 여정-1-

by 인터넷떠돌이 2020. 3. 23.
반응형

안녕하세요?

 

어떻게 하다하다 보니, 시간이 걸리게 되었는데, 아무튼 간에 일단 VR이라고 Volume Ratio와 MFI라고 Money Flow Index를 계산하기 위해서 프로그램을 짜느라 시간이 걸렸습니다. 이 시간이 걸린 다음에 겨우겨우 어떻게 성공을 하게 되었는데, 그 과정을 2부분으로 나누어진 포스팅에서 올려 보도록 하겠습니다.

 

먼저 위 스크린샷처럼 처음에는 Calculation_of_Rule003만 만들려고 했습니다. 그런데 이게 하다보니, 초기에 선언해 주어야 하는 pandas의 Dataframe이 있었습니다. 어떻게 해도 빈 데이터 프레임을 생성을 안전하게 하기 위해서는 따로 메서드를 만들어서 선언해 주도록 해야 하고, 이 초기화 시키는 메서드는 다음 스크린샷에서 실행이 됩니다.

 

먼저 원래는 다른 py파일에 있는 메서드인데, 여기서 실행을 시켜 주는 이유는, 원래 Calculation_of_Rule003이란 메서드가 있는 클래스의 def __init__()가 작동을 하지 않아서 부득이 이렇게 할 수 밖에 없었습니다. 아마 제가 파이썬을 제대로 배웠으면 그 이유를 알것 같은데, 그게 아니다 보니, 이래저래 애로사항이 많습니다.

 

그리고 나서 위 스크린샷처럼 일단 VR을 계산하기 위해서 우선 이전 가격을 가지고 와야 하는데, 문제는 처음으로 들어오면, 당연히 이게 없습니다. 그래서 try except문을 사용하도록 하고, 일단 임시로 값을 지정해 주도록 합니다. 그리고 나서 다음으로는 판다스 데이터 프레임에 데이터를 집어 넣는다고 애를 먹었는데, 일단 먼저 판다스의 Series로 먼저 만들어 준 다음에, 그 다음에야 판다스 데이터 프레임으로 만들어 줄 수 있었습니다. 이 상태에서야 append()라는 함수의 사용이 가능했습니다.

 

 

그리고 나서 다음으로는 각각의 그룹 - 전일 대비 가격이 상승했으면 upGroup, 하락했으면 downGroup, 그리고 전일과 가격이 같으면 sameGroup에 거래량을 집어 넣도록 해서, 일단 합계를 구하도록 합니다. 그리고 나서 VR을 구하기 위한 공식에 집어 넣어서 계산을 하도록 합니다.

 

그리고 나서 한번 실행을 시켜 보았습니다. 이렇게 했을때 제대로 VR 지수가 계산이 되어 가는 것을 확인할 수 있었습니다. 

 

문제는 VR을 가지고서 일단 조건을 5구간으로 나눌 수 있었기 때문에, 나머지 5개 조건은 MFI를 비교하는 조건으로 만들어야 했습니다. 일단 위 스클니샷처럼 처음 초기화를 시키는 메서드에서 2개의 데이터 프레임을 더 추가해 주도록 합니다.

 

그리고 나서 다음으로는 nth라고 해서 몇번째 프로세스인지를 알아내서, 5번 이하의 프로세스는 일단 VR을 계산하기 위한 과정에 들어가도록 코드를 변경해 보도록 합니다.

 

그리고 나서 다음으로 해야 할 것은 이제 6번 이상의 프로세스일 경우에는 MFI를 계산하기 위해서 코드를 수정해 보도록 합니다. 여기서는 먼저 고가와 저가를 가지고 오도록 하고, 이후 AP를 각각의 그룹별로 계산해서 데이터 프레임에 집어 넣도록 합니다.

 

이렇게 해서 일정한 기간의 aaGroup과 bbGroup가 모였으면, 계산을 해서 합계를 구하는데, 그 합계를 가지고서 일단 MF라는 값을 구하고, 그 값을 바탕으로 MFI계수를 구하도록 만들어 줍니다. 일단 여기서 이제 MFI계수까지 계산을 하는데 성공했는데, 나머지 작업은 이어서 올라오는 포스팅에서 다루도록 하겠습니다.

반응형