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
- 블록체인
- backtest
- 토플
- AUTOSAR
- AWS
- 파이썬
- 클라우드
- 프로그래밍
- probability
- 퀀트
- 오토사
- backtrader
- TOEFL
- python
- 백테스트
- can
- 자동차sw
- Bitcoin
- GeorgiaTech
- 토플 라이팅
- 백트레이더
- it
- 비트코인
- 아마존 웹 서비스
- 확률
- 자동매매
- Cloud
- 암호화폐
- 개발자
- toefl writing
Archives
- Today
- Total
Leo's Garage
BackTrader - Bullish 전략 (1) 본문
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
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - 역추세 매매 (SMA 이용) (0) | 2023.02.02 |
---|---|
BackTrader - Bullish 전략 (2) (0) | 2023.01.29 |
BackTrader - MACD 활용 (0) | 2023.01.27 |
BackTrader - 여러 지표 섞어서 만들기 (2) (0) | 2023.01.26 |
BackTrader - 여러 지표 섞어서 만들기 (1) (0) | 2023.01.25 |
Comments