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
- 토플
- probability
- 블록체인
- 아마존 웹 서비스
- AWS
- 오토사
- 백테스트
- Cloud
- 자동차sw
- python
- 확률
- it
- 퀀트
- 토플 라이팅
- 백트레이더
- 파이썬
- GeorgiaTech
- 비트코인
- 프로그래밍
- 개발자
- Bitcoin
- backtest
- AUTOSAR
- 암호화폐
- 클라우드
- 자동매매
- backtrader
- TOEFL
- can
- toefl writing
Archives
- Today
- Total
Leo's Garage
BackTrader - Nasdaq 100 적용 본문
728x90
반응형
오늘은 index를 임의로 만들어서 전략에 녹여보려고 한다.
녹일 index는 바로 Nasdaq100이다.
전략은 다음과 같다.
Nasdaq100의 종가가 Nasdaq100 50일 평균선 보다 올라가면 매수하고 떨어지면 매도한다.
코드는 아래와 같다.
import backtrader as bt
import yfinance as yf
class MyStrategy(bt.Strategy):
def __init__(self):
self.nasdaq = self.datas[0]
self.stock = self.datas[1]
self.order = None
self.nasdaq_sma = bt.indicators.SMA(self.nasdaq.close, period=50)
def next(self):
if self.order:
return # if an order is pending, don't do anything
if not self.position: # if not in the market
if self.nasdaq.close[0] > self.nasdaq_sma[0]: # if the current NASDAQ-100 close is greater than its 50-day moving average
self.buy() # enter a long position
else:
if self.nasdaq.close[0] < self.nasdaq_sma[0]: # if the current NASDAQ-100 close is less than its 50-day moving average
self.sell() # exit the long position
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
# Add data feed to cerebro
nasdaq_data = bt.feeds.PandasData(dataname= yf.download('^NDX','2018-01-01','2021-12-31'))
data = bt.feeds.PandasData(dataname= yf.download('TSLA','2018-01-01','2021-12-31'))
cerebro.adddata(nasdaq_data)
cerebro.adddata(data)
cerebro.run()
cerebro.plot()
해당 코드를 보면 이전 전략들과 다르게 data를 두 번 넣은 것을 볼 수 있다.
이런식으로 BackTrader에는 여러가지 데이터들을 전략에 사용할 수 있다.
해당 코드를 돌려보면 아래와 같은 결과가 나오게 된다.
초기 자본은 10000이었는데 13294.53이 되었다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - WMA 활용 (0) | 2023.02.20 |
---|---|
BackTrader - S&P500 활용 (0) | 2023.02.17 |
BackTrader - 단순 종가 비교 전략 (0) | 2023.02.15 |
BackTesting.py - SMA (1) | 2023.02.05 |
BackTrader란 (0) | 2023.02.03 |
Comments