250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- backtrader
- 확률
- 개발자
- toefl writing
- Bitcoin
- 클라우드
- 오토사
- python
- 자동매매
- it
- AWS
- 프로그래밍
- GeorgiaTech
- 토플
- 백트레이더
- TOEFL
- 토플 라이팅
- 파이썬
- 블록체인
- 비트코인
- Cloud
- backtest
- 암호화폐
- AUTOSAR
- 백테스트
- 퀀트
- 아마존 웹 서비스
- probability
- 자동차sw
- can
Archives
- Today
- Total
Leo's Garage
BackTrader - 여러 지표 섞어서 만들기 (2) 본문
728x90
반응형
이번에는 볼린져 밴드 지표와 RSI 지표를 섞어서 전략을 만들어 보겠다.
볼린져 밴드는 기간 20일과 Factor는 2로 지정한다.
볼린져 밴드에 Factor에 대한 설명은 아래 링크를 참조 바란다.
RSI는 14일을 기준으로 하고, 30 이하를 과매도, 70 이상을 과매수 조건으로 지정한다.
그리고 전략은 다음과 같다.
포지션이 없을 경우, 현재 종가가 볼린져 밴드 하단보다 낮으면서 RSI가 30보다 낮을 경우 매수
포지션이 있을 경우, 현재 종가가 볼린져 밴드 상단보다 높거나 RSI가 70보다 높은 경우 매도 한다.
코드는 아래와 같다.
import backtrader as bt
import yfinance as yf
class BollingerBandsRSI(bt.Strategy):
params = (
('period', 20),
('devfactor', 2),
('rsi_period', 14),
('rsi_oversold', 30),
('rsi_overbought', 70),
)
def __init__(self):
self.bb = bt.indicators.BollingerBands(self.data.close, period=self.params.period, devfactor=self.params.devfactor)
self.rsi = bt.indicators.RelativeStrengthIndex(self.data.close, period=self.params.rsi_period)
def next(self):
if not self.position:
if self.data.close[0] < self.bb.lines.bot[0] and self.rsi[0] < self.params.rsi_oversold:
self.buy()
else:
if self.data.close[0] > self.bb.lines.top[0] or self.rsi[0] > self.params.rsi_overbought:
self.close()
cerebro = bt.Cerebro()
data = bt.feeds.PandasData(dataname= yf.download('TSLA','2018-01-01','2021-12-31'))
cerebro.adddata(data)
cerebro.addstrategy(BollingerBandsRSI)
cerebro.run()
cerebro.plot()
결과는 다음과 같다.
테슬라 주식을 2018년부터 2021년까지 적용했을 때 초기 자금 10000에서 10076.73이 되었다.
설정값을 변경하면서 테스트를 해보면 다른 결과가 나올 수 있다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - Bullish 전략 (1) (0) | 2023.01.28 |
---|---|
BackTrader - MACD 활용 (0) | 2023.01.27 |
BackTrader - 여러 지표 섞어서 만들기 (1) (0) | 2023.01.25 |
BackTrader - 볼린져 밴드 전략 (0) | 2023.01.15 |
BackTrader - 골든 크로스 / 데드 크로스 전략 (0) | 2023.01.15 |
Comments