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
- 프로그래밍
- python
- GeorgiaTech
- Cloud
- 자동차sw
- can
- Bitcoin
- backtest
- 오토사
- TOEFL
- 클라우드
- 블록체인
- AUTOSAR
- AWS
- toefl writing
- 파이썬
- 퀀트
- 자동매매
- 토플 라이팅
- 백테스트
- backtrader
- probability
- it
- 비트코인
- 백트레이더
- 토플
- 아마존 웹 서비스
- 암호화폐
- 개발자
- 확률
Archives
- Today
- Total
Leo's Garage
BackTrader - WMA 활용 본문
728x90
반응형
이번에는 WMA라는 지표를 활용해서 전략을 만들어 보고자 한다.
WMA (Weighted moving average) - 가중 이동평균
SMA(단순 이동 평균)은 많이 들어봤을 것이다.
WMA는 단순히 이동평균을 구하는 것이 아니라 최근의 주가에 가중치를 두어서 계산하는 방식을 취한다.
공식은 아래와 같다.
사실 이 방식은 널리 쓰이는 방식은 아니다.
가장 최근의 일자에 가장 큰 가중치를 두기 때문에 SMA에 비해서 최근 시장 분위기를 잘 반영한다는 장점이 있다.
SMA와 마찬가지로 그 기간의 가격을 대표하는 값이며 이동평균 안에 그 가격의 움직임을 포함하고 있다.
해당 전략을 코드에 적용하면 아래와 같다.
import backtrader as bt
import yfinance as yf
class MyStrategy(bt.Strategy):
def __init__(self):
self.stock = self.datas[0]
self.order = None
self.vwma = bt.indicators.WMA(self.stock, period=20)
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.stock.close[0] > self.vwma[0]: # if the current close price is greater than the VWMA
self.buy() # enter a long position
else:
if self.stock.close[0] < self.vwma[0]: # if the current close price is less than the VWMA
self.sell() # exit the long position
cerebro = bt.Cerebro()
data = bt.feeds.PandasData(dataname= yf.download('TSLA','2018-01-01','2021-12-31'))
cerebro.adddata(data)
cerebro.addstrategy(MyStrategy)
cerebro.run()
cerebro.plot()
해당 전략을 테슽라 주가에 반영해보면 결과는 아래와 같다 .
10000으로 시작할 경우, 10217.96이 됨을 알 수 있다.
728x90
반응형
'파이프라인 만들기 > Algo Trading' 카테고리의 다른 글
BackTrader - KDJ index (0) | 2023.02.25 |
---|---|
BackTrader - 일목균형표 (0) | 2023.02.21 |
BackTrader - S&P500 활용 (0) | 2023.02.17 |
BackTrader - Nasdaq 100 적용 (0) | 2023.02.16 |
BackTrader - 단순 종가 비교 전략 (0) | 2023.02.15 |
Comments