일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- it
- backtrader
- 퀀트
- 아마존 웹 서비스
- backtest
- 토플
- python
- 백테스트
- AWS
- toefl writing
- 토플 라이팅
- 비트코인
- probability
- 백트레이더
- Bitcoin
- 암호화폐
- 개발자
- 확률
- 블록체인
- 오토사
- 클라우드
- 프로그래밍
- 파이썬
- TOEFL
- GeorgiaTech
- Cloud
- 자동매매
- 자동차sw
- can
- AUTOSAR
- Today
- Total
Leo's Garage
Algo Trading - Back Trader 본문
우리가 주식 투자하기에 앞서 전략을 수립할 때, 매매 방법을 정하기 전에 내가 생각한 투자 방법을 테스트해보고 싶을 때가 있다. 이 때 말하는 투자는 가치투자나 성장주 투자가 아닌 트레이딩 관점에서 보는 투자이다.
예를 들어 어떤 기업의 주식 1년치 Data를 쭉 내려받아서 보니까 어떤 어떤 특정 지표 혹은 전략으로 매매하면 수익이 극대화 될 것 같다라는 생각을 할 때가 있다. 하지만 눈으로 보고 확인하는 것이 아니라 Simulation을 해본다면 좀 더 확실하게 내 전략이나 매매법이 옳았다는 것을 알 수 있을 것이다.
이러한 것을 가능하게 해주는 Python Framework가 있다. 바로 Back Trader이다.
이 프레임워크를 사용하면 우리가 머릿속으로 생각했던 매매 전략을 특정 기업의 특정 기간에 테스트해볼 수 있다. 우선 오늘은 맛보기로 이동평균선 Cross 전략을 구현하여 어떤식으로 백트레이더가 활용되는지 보여주겠다.
전략은 다음과 같다.
- SMA 5일선 > SMA 20일선 : BUY
- SMA 5일선 < SMA 20일선 : SELL
전략은 위와 같이 매우 단순한다. 이 전략을 2019년 1월1일부터 2019년 12월 31일까지 삼성전자 주가 데이터에 적용해보도록 하겠다.
from datetime import datetime
import backtrader as bt
import yfinance as yf
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1, sma2 = bt.ind.SMA(period=5), bt.ind.SMA(period=20)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = bt.Cerebro()
cerebro.broker.setcash(100000) #자산을 10만원으로 초기화
cerebro.addstrategy(SmaCross)
data0 = bt.feeds.PandasData(dataname= yf.download('005930.KS','2019-01-01','2019-12-31'))
cerebro.adddata(data0)
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue()) #시작 시 자산
cerebro.run()
print('Final Portfollio Value: %.2f' % cerebro.broker.getvalue()) #종료 시 자산
cerebro.plot()
코드는 위와 같다.
결과를 보면 다음과 같이 나온다.
이평선 Cross 전략을 2019년 한 해동안 삼성전자 주식에 사용하였더니, 약 7.55%의 수익을 발생시켰다. 이를 그래프로 보면 아래와 같다.
위의 전략을 토대로 삼성전자의 주식을 매매하면 위의 초록색 화살표 지점에서 주식을 사고, 빨간색 지점에서 주식을 팔게 된다.
2018년말 대비 2019년 KOSPI 성장률이 7.7%이므로 이 전략이 좋다고 볼 수는 없을 것이다.
어쨌든 백트레이더는 이런식으로 활용한다. 앞으로 시중에 나와있는 많은 전략들을 프로그래밍하여 여러 기업들에 테스트를 해보면서 과연 어떤 전략이 효과적인지 알아보도록 하겠다.
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - RSI 지표를 이용한 매매 (0) | 2023.01.14 |
---|---|
BackTrader - 추세추종전략 (0) | 2023.01.14 |
BackTrader - 역추세 매매 (0) | 2023.01.14 |
우한 코로나 주가 관련 역추세 매매 백 테스팅 (0) | 2020.01.28 |
우한 코로나에 대한 주가 영향, 과거 데이터로 알아보자 (0) | 2020.01.28 |