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
- backtest
- 비트코인
- AUTOSAR
- can
- 파이썬
- backtrader
- Cloud
- 확률
- 자동차sw
- 토플
- 토플 라이팅
- it
- toefl writing
- 자동매매
- 클라우드
- 암호화폐
- 블록체인
- AWS
- python
- GeorgiaTech
- 오토사
- Bitcoin
- 백테스트
- 퀀트
- TOEFL
- 백트레이더
Archives
- Today
- Total
Leo's Garage
BackTrader - 역추세 매매 본문
728x90
반응형
Backtrader로 간단한 역추세 매매 로직을 만들어보자
역추세 매매란 결국 시장의 가격이 평균으로 회귀하는 성질을 이용하는 것이라 볼 수 있다.
그래서 이를 평균회귀 전략이라고도 한다.
MeanReversion이라는 전략을 하나 생성한다.
이 전략은 간단하게 볼린져 밴드를 지표로 사용하여 과매도 과매수를 식별, 매수 매도 신호를 발생시킨다.
from datetime import datetime
import backtrader as bt
import yfinance as yf
class MeanReversion(bt.Strategy):
params = (
('period', 20),
('devfactor', 2)
)
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.period)
self.bbands = bt.indicators.BollingerBands(
self.data.close, period=self.params.period)
def next(self):
if self.data.close[0] < self.bbands.bot[0]:
self.buy()
elif self.data.close[0] > self.bbands.top[0]:
self.sell()
cerebro = bt.Cerebro()
data = bt.feeds.PandasData(dataname= yf.download('TSLA','2021-01-01','2021-12-31'))
cerebro.adddata(data)
cerebro.addstrategy(MeanReversion)
cerebro.run()
cerebro.plot()
SMA(단순 이동평균선)으로 평균을 볼린져 밴드로 상한, 하한의 표준편차를 계산한다.
종가가 하한 볼린져 밴드보다 아래면 매수, 상한 볼린져 밴드보다 위면 매도한다.
코드에서는 2021년 1년간의 테슬라 주가를 가지고 테스트해보았고, 해당 결과는 위와 같다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - RSI 지표를 이용한 매매 (0) | 2023.01.14 |
---|---|
BackTrader - 추세추종전략 (0) | 2023.01.14 |
우한 코로나 주가 관련 역추세 매매 백 테스팅 (0) | 2020.01.28 |
우한 코로나에 대한 주가 영향, 과거 데이터로 알아보자 (0) | 2020.01.28 |
Algo Trading - Back Trader (1) | 2020.01.26 |
Comments