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 | 31 |
Tags
- 백트레이더
- 오토사
- Bitcoin
- 암호화폐
- GeorgiaTech
- 토플
- 블록체인
- 확률
- it
- backtest
- toefl writing
- AUTOSAR
- backtrader
- 자동매매
- 백테스트
- 프로그래밍
- Cloud
- 아마존 웹 서비스
- can
- 비트코인
- probability
- python
- 퀀트
- 자동차sw
- TOEFL
- 개발자
- 클라우드
- AWS
- 파이썬
- 토플 라이팅
Archives
- Today
- Total
Leo's Garage
BackTrader - 여러 지표 섞어서 만들기 (1) 본문
728x90
반응형
이번에는 지표 2개를 섞어서 매수 매도 하는 전략을 만들어보겠다.
사용할 지표는 SMA(이동평균선)과 RSI(상대 강도)이다.
전략의 내용은 간단하게 아래와 같다.
포지션이 없을 경우, 20일 SMA가 50일 SMA보다 크면서 동시에 7일 RSI가 40보다 작으면 매수한다.
포지션이 있을 경우, 20일 SMA가 50일 SMA보다 작거나 7일 RSIrk 60보다 크면 매도한다.
import backtrader as bt
import yfinance as yf
class MultiIndicatorStrategy(bt.Strategy):
params = (
('sma1_period', 20),
('sma2_period', 50),
('rsi_period', 7),
('rsi_oversold', 40),
('rsi_overbought', 60),
)
def __init__(self):
self.sma1 = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.sma1_period)
self.sma2 = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.sma2_period)
self.rsi = bt.indicators.RelativeStrengthIndex(self.data.close, period=self.params.rsi_period)
def next(self):
if not self.position:
if self.sma1[0] > self.sma2[0] and self.rsi[0] < self.params.rsi_oversold:
self.buy()
else:
if self.sma1[0] < self.sma2[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(MultiIndicatorStrategy)
cerebro.run()
cerebro.plot()
backtrader를 이용해 위와 같이 간단하게 코드를 만들었다.
결과를 살펴보자.
테슬라 주식을 2018 ~ 2021 사이에 사고 팔아보았다.
2가지 전략을 단순 적용한 경우는 위와 같다.
초기 자본 10000 에서 10041.49가 되었다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - MACD 활용 (0) | 2023.01.27 |
---|---|
BackTrader - 여러 지표 섞어서 만들기 (2) (0) | 2023.01.26 |
BackTrader - 볼린져 밴드 전략 (0) | 2023.01.15 |
BackTrader - 골든 크로스 / 데드 크로스 전략 (0) | 2023.01.15 |
PineScript란? (0) | 2023.01.15 |
Comments