재테크/주식 알람 시스템 만들기

8. 매매 전략에 대해서

중년 플머 김씨 2020. 11. 8. 00:08

소스파일은 github.com/galaxywiz/StockCrawler_py 에서 확인 가능합니다.

 

지금 까지가 차량의 보디 제작이었다고 하면, 이제 차량의 성능과 직관 되는 엔진이라 할 수 있는 매매 로직에 대한 기술입니다.

이전 코드들은 어떻게 보면, 프로그래밍 관점에서 이런 저런 기능들을 넣은 거라 하면, 이제부터는 주식 시장 관점에서 어떻게 하면 ohlc 데이터로 매수 매도 신호를 잡을 수 있는지 고민해 보면서 작성하는 파트가 되겠습니다.

우선 아래처럼 특정 폼을 만들어 줍니다. (매수/매도 시그널, 매수/매도 리스트 갖고 오기)

 

tradeStrategy.py

import numpy as np
from stockData import StockData, BuyState

#//---------------------------------------------------//
class TradeStrategy:
    def setStockData(self, stockData):
        self.stockData_ = stockData

    def buy(self, timeIdx):
        pass

    def sell(self, timeIdx):
        pass

    def buyList(self):
        pass

    def sellList(self):
        pass

이렇게 폼 (이쪽 용어론 추상 클래스)을 만드는 이유는 다른 클래스가 이 클래스를 사용시 어떻게 동작할지 정해지지 않지만, 외부에선 호출할 필요가 있기 때문에 사용합니다.

 

예를 들어, 오늘 저녁에 치킨을 시켜 먹자고 합시다.
가족들에겐 오늘 치킨 시켜 먹을꺼니까 저녁 준비 하지 말라고 알려줍니다.
그리고 이제 주문을 하는데, 치킨은 여러 종류가 있죠. 양념, 간장, 치즈, 파닭, 후라이드
그리고 그 세세한 부분을 주문하고 나중에 XX치킨이 배달되어 오겠죠.

 

이런 느낌이라고 보시면 됩니다. 이 다음에 만드는 Bot 프로그램에서, 전략을 불러오는데,

어떤 전략인지는 모르겠고, 매수/매도 함수만 통일시켜 줍니다.


그리고 기술지표 시그널을 사용해서 다양한 조합을 만들어 주면 되는데,

이 부분은 각자 생각해온 그런 전략이 있을 것이고, 거기에 맞게 여기만 코딩을 해주면,

마치 치킨은 치킨인데 어떤 양념을 통해서 맛있게 만든 치킨인지,

실패한 맛의 치킨인지를 주식 시장이 결정해 주게 됩니다.

 

여기서는 간단하면서 강력한(많은 사람들이 쓰는) 3가지 시그널에 대해서 작성해 보도록 하겠습니다.

이동평균선이 골드 크로스 하는지 파악하는 전략,

MACD 시그널을 이용한 전략,

마지막으로 레리 윌리엄스 란 분이 창안하신 변동성 돌파 전략에 대해서 기술해 보겠습니다.