관리 메뉴

Leo's Garage

BackTrader - Bullish 전략 (1) 본문

파이프라인 만들기/Algo Trading

BackTrader - Bullish 전략 (1)

LeoBehindK 2023. 1. 28. 22:55
728x90
반응형

이번에는 상승장을 판단하는 전략을 간단하게 만들어서 테스트해보겠다. 

SMA(Simple Moving Average)와 RSI(Relative Strength Index)를 섞어서 상승장을 판단한다.

금일 종가가 200일과 50일 SMA보다 위에 있고, 동시에 RSI가 50보다 크면 매수한다. 

금일 종가가 SMA 50일보다 작을 때 매도한다. 

import backtrader as bt
import yfinance as yf

class BullishStrategy(bt.Strategy):
    
    def __init__(self):
        self.sma200 = bt.indicators.SimpleMovingAverage(self.data.close, period=200)
        self.sma50 = bt.indicators.SimpleMovingAverage(self.data.close, period=50)
        self.rsi = bt.indicators.RelativeStrengthIndex()

    def next(self):
        if not self.position:
            if self.data.close[0] > self.sma200[0] and self.data.close[0] > self.sma50[0] and self.rsi[0] > 50:
                self.buy()
        else:
            if self.data.close[0] < self.sma50[0]:
                self.close()

cerebro = bt.Cerebro()

data = bt.feeds.PandasData(dataname= yf.download('TSLA','2018-01-01','2021-12-31'))
cerebro.adddata(data)

cerebro.addstrategy(BullishStrategy)

cerebro.run()

cerebro.plot()

해당 전략을 2018부터 2021년까지 테슬라 주식에 적용하였다. 

결과는 아래와 같다. 

초기 자본 10000에서 최종 10225.82가 되었다. 

 

728x90
반응형
Comments