반응형
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
- 블록체인
- 암호화폐
- probability
- 자동매매
- toefl writing
- 백트레이더
- 토플
- Cloud
- 클라우드
- GeorgiaTech
- 아마존 웹 서비스
- 개발자
- it
- AWS
- 확률
- TOEFL
- can
- 프로그래밍
- 비트코인
- 실시간시스템
- 토플 라이팅
- 임베디드
- realtimesystem
- 자동차sw
- AUTOSAR
- 파이썬
- 오토사
- 퀀트
- python
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 |