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
- 확률
- 비트코인
- probability
- toefl writing
- 백테스트
- 자동매매
- 토플
- 개발자
- GeorgiaTech
- 파이썬
- 백트레이더
- 암호화폐
- 토플 라이팅
- Bitcoin
- Cloud
- 자동차sw
- backtrader
- 오토사
- AUTOSAR
- 퀀트
- TOEFL
- 클라우드
- backtest
- 아마존 웹 서비스
- can
- it
- 프로그래밍
- 블록체인
- AWS
- python
Archives
- Today
- Total
Leo's Garage
BackTrader - 역추세 매매 (SMA 이용) 본문
728x90
반응형
이전에 올렸던 역추세 매매 전략은 볼린져 밴드를 이용한 방법이었다.
오늘 해 볼 역추세 매매는 SMA(Simple Moving Average)를 이용해 보려고 한다.
전략은 간단한데 사는 전략은 아래와 같다.
30일 SMA가 10일 SMA보다 커지는 순간에 산다.
이 때 가격을 기준으로 3% 손실이 나거나 5% 수익인 경우에 대해서 stop loss와 take profit 가격을 설정한다.
그리고 파는 전략은 아래와 같다.
금일 종가가 Take Profit 가격보다 크거나 같을 때 혹은 Stop loss 가격보다 작거나 같을 때 이다.
이를 코드로 작성하면 아래와 같다.
import backtrader as bt
import yfinance as yf
class ReverseTrend(bt.Strategy):
params = (
('fast_ma_period', 10),
('slow_ma_period', 30),
('stop_loss', 0.03),
('take_profit', 0.05),
)
def __init__(self):
self.fast_ma = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.fast_ma_period)
self.slow_ma = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.slow_ma_period)
self.order = None
self.stop_price = None
self.take_price = None
def next(self):
if self.order:
if self.data.close[0] >= self.take_price or \
self.data.close[0] <= self.stop_price:
self.sell()
return
if self.fast_ma[0] < self.slow_ma[0] and \
self.fast_ma[-1] > self.slow_ma[-1]:
self.order = self.buy()
self.stop_price = self.data.close[0] * (1.0 - self.params.stop_loss)
self.take_price = self.data.close[0] * (1.0 + self.params.take_profit)
cerebro = bt.Cerebro()
data = bt.feeds.PandasData(dataname= yf.download('TSLA','2021-01-01','2021-12-31'))
cerebro.adddata(data)
cerebro.addstrategy(ReverseTrend)
cerebro.run()
cerebro.plot()
그리고 해당 코드를 Tesla 2021년 한 해의 주가 추이에 적용하면 아래와 같은 결과가 나오게 된다.
초기 자본금이 10000이었는데 1년 이후에 61572.69가 되었다.
물론 해당 전략에 대해서 Tesla 주가가 워낙 상승만 했기 때문에 잘 먹혔는지도 모르겠다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTesting.py - SMA (1) | 2023.02.05 |
---|---|
BackTrader란 (0) | 2023.02.03 |
BackTrader - Bullish 전략 (2) (0) | 2023.01.29 |
BackTrader - Bullish 전략 (1) (0) | 2023.01.28 |
BackTrader - MACD 활용 (0) | 2023.01.27 |
Comments