티스토리 뷰

728x90
반응형

추세추종전략 모델을 간단히 만들어보자

SMA(이동평균선)이 교차할 때마다 매수 매도 신호를 준다. 

import backtrader as bt
import yfinance as yf

class TrendTrader(bt.Strategy):
    params = (
        ('fast_period', 5),
        ('slow_period', 20)
    )
    def __init__(self):
        self.fast_sma = bt.indicators.SimpleMovingAverage(self.data.close, period=self.params.fast_period)
        self.slow_sma = bt.indicators.SimpleMovingAverage(self.data.close, period=self.params.slow_period)
    def next(self):
        if self.fast_sma[0] > self.slow_sma[0] and self.fast_sma[-1] < self.slow_sma[-1]:
            self.buy()
        elif self.fast_sma[0] < self.slow_sma[0] and self.fast_sma[-1] > self.slow_sma[-1]:
            self.sell()

cerebro = bt.Cerebro()

data0 = bt.feeds.PandasData(dataname= yf.download('AAPL','2019-01-01','2019-12-31'))
cerebro.adddata(data0)

cerebro.addstrategy(TrendTrader)

cerebro.run()

cerebro.plot()

20일선과 5일선을 사용하였다. 

 

5일선이 20일선을 앞지르면 매수하고, 5일선이 20일선 아래로 가면 매도한다.

2019년도 애플 주식에 적용해보았다.

 

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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 31
글 보관함