안녕하세요?
현재라고 말할 것 같으면, 2021년 2월 3일 현재 이 시점에서 제 알고리즘 트레이더는 MFI라는 지수를 기반으로해서 매수하고 매도를 하고 있습니다. 이 전략이 유용한지 아닌지는 둘째치고, 일단 요청이 있어서 우선 지식으로 정리하는 차원에서 제 매수/매도 룰을 공개하고자 합니다.
먼저 제가 사용하는 방식은 일단 영문으로 된 자료로 있는 investopedia에 있던 자료를 가지고 와서 사용하고 있습니다. 일단 여기서는 positive와 negative가 있는데, 이전 Typical Price에 비해서 내려가면 negative, 반대로 지금 typical price가 이전 typical price보다 크면 positive로 해석을 하였습니다.
그래서 일단 클래스를 선언하지도 않은 상태로 별개의 py파일에 있는 메서드를 가지고 왔습니다. 여기선은 당연 MFI를 계산하기 위해서 인데, 일단 이 작업을 위해서는 일단, close의 길이가 period보다 큰지 아닌지 측정합니다. 제 경우에는 먼저 10period라고 해서 10개의 분봉을 기준으로 해서 계산을 합니다.
그렇게 해서 길이가 확보가 되었다고 판단이 되면, 다음으로 해야 하는 것으로는 바로, 필요한 필요한 요소들을 그룹으로 묶어서 가지고 오는 것 입니다. 이렇게 가지고 온 다음에, 결과를 저장할 수 있는 pandas의 series도 준비해 주도록 합니다.
그리고 나서 period를 다 돌 동안에 for loop를 이용하도록 합니다. 여기서 일단 이전 typical price와 현 typical price간의 높고 낮음을 지정해서 각각의 pandas Series안에 넣어 주도록 합니다.
그리고 나서 각각 10개 캔들챠트 분봉에서 얻은 결과의 합계는 위 스크린샷에서 볼 수 있는 것철머 모두 sum()이라고 합계를 만들어 놓고 나서, 이걸 가지고서 MFI지수를 계산하는데 들어가 도록 합니다. 마지막으로 return을 써서 이 계산한 값들을 전달할 수 있도록 만들어 주도록 합니다.
그리고 나서 이 값은 이제 2번째 메서드인 결정을 하기 위한 메서드로 전달이 되게 됩니다. 일단 여기서 먼저 해야 하는 일이 있는데, 그건 바로 매수/매도를 결정하기 이전에 stopLoss라고 손절매 값을 현재가가 넘어 갔는지 아닌지 알아보는 것 입니다.
그리고 나서 손절매에 걸리지 않았다는 것을 안 다음에야 이제 MFI지수의 값에 따라서 Sell이냐 Buy냐를 결정하게 됩니다. 이렇게 한느 것으로 일단 작업이 마무리 되기는 되었지만, 이걸 어떻게 작동시켰는가 하는 의문이 남으실 겁니다.
이 경우는 메인 스트림이 되는 py파일-예를 들면 main.py같은 py파일을 만들어 놓고 나서, 여기서 먼저 차트 데이터를 확보한 다음에, 이걸 가지고서 일단 MFI지수를 먼저 계산해 주도록 합니다.
그리고 나서 다음으로 해야 하는 것으로는 바로 이 MFI지수를 결정한 값이 나왔으면, 이걸 바탕으로 해서 만약 stopLoss면 특별한 Sell로 처리해서 보내야 하고, 그렇지 않으면 결정을 가지고서 Confirmation_of_action이라고 하는 메서드가 있는데, 여기서 제대로 된 결정이 가능한지 알아봐야 합니다.
'무모한 도전-주식 인공지능 만들기 > 지식 정리 창고' 카테고리의 다른 글
클래스(Class)안에 있는 메서드(Method)의 데이터 주고 받기 (4) | 2020.07.28 |
---|---|
손과 발 역할을 하는 프로그램의 정리 part3 (0) | 2020.05.13 |
손과 발 역할을 하는 프로그램의 정리 part2 (6) | 2020.04.03 |
손과 발 역할을 하는 프로그램의 정리 part1 (2) | 2020.04.02 |
kiwoom.py에 있었던 변경사항 -3- (2) | 2020.02.26 |