티스토리 뷰

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