관리 메뉴

Leo's Garage

BackTrader - RSI 지표를 이용한 매매 본문

파이프라인 만들기/Algo Trading

BackTrader - RSI 지표를 이용한 매매

LeoBehindK 2023. 1. 14. 10:51
728x90
반응형

RSI(relative strength index) - 상대강도지수 이다.

RSI는 가격의 상승압력과 하락압력간의 상대적인 강도를 의미한다.

즉, 이 종목이 과매수인지 과매도인지 나타낸다.

 

RSI를 이용한 간단한 전략은 아래와 같다.

import backtrader as bt
import yfinance as yf

class RSIStrategy(bt.Strategy):
    params = (
        ('period', 14),
        ('buy_level', 70),
        ('sell_level', 30),
    )

    def __init__(self):
        self.rsi = bt.indicators.RSI(self.data.close, period=self.params.period)

    def next(self):
        if self.rsi[0] > self.params.buy_level:
            self.buy()
        elif self.rsi[0] < self.params.sell_level:
            self.sell()

cerebro = bt.Cerebro()

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

cerebro.addstrategy(RSIStrategy)

cerebro.run()

cerebro.plot()

RSI를 14일 단위로 계산해서 70이상이면 매수, 30이하이면 매도한다. 

종목은 테슽라로 2021년 1년간 데이터를 기준으로 돌려보았다.

 

최종적으로 가치는 상승했지만, 그다지 효율적이지 않다는 것은 알 수 있다. 

하나의 예시정도로만 보고 다른 지표랑 섞어서 쓰는 것을 고려해야 할 것 같다. 

728x90
반응형
Comments