관리 메뉴

Leo's Garage

BackTrader - Bullish 전략 (2) 본문

파이프라인 만들기/Algo Trading

BackTrader - Bullish 전략 (2)

LeoBehindK 2023. 1. 29. 08:00
728x90
반응형

두번째 상승장 판단 전략을 만들어보자.

이번에는 단순히 SMA 2개를 가지고 장세를 판단해본다.

20일 SMA과 50일 SMA 2개와 금일 종가와 비교를 한다. 

두 SMA보다 종가가 높으면 매수한다. 

두 SMA보다 종가가 낮으면 매도한다.

이때 매수는 and 조건, 매도는 or 조건이다.

코드는 아래와 같다. 

import backtrader as bt
import yfinance as yf

class UpTrend(bt.Strategy):
    params = (
        ('fast_ma_period', 20),
        ('slow_ma_period', 50),
    )

    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)

    def next(self):
        if self.data.close[0] > self.fast_ma[0] and self.data.close[0] > self.slow_ma[0]:
            if not self.position:
                self.buy()
        elif self.data.close[0] < self.fast_ma[0] or self.data.close[0] < self.slow_ma[0]:
            if self.position:
                self.sell()

cerebro = bt.Cerebro()

data = bt.feeds.PandasData(dataname= yf.download('TSLA','2018-01-01','2021-12-31'))
cerebro.adddata(data)

cerebro.addstrategy(UpTrend)

cerebro.run()

cerebro.plot()

해당 전략을 테슬라 2018~2021까지 적용해보자

초기 자본은 10000이었는데 결과적으로 10219.07이 되었다. 

 

728x90
반응형
Comments