Python으로 배우는 금융 트레이딩
Chelsea Yang
Data Science Instructor
추세 추종
평균회귀
추세는 친구다.
import talib
# 지표 계산
EMA_short = talib.EMA(price_data['Close'],
timeperiod=10).to_frame()
EMA_long = talib.EMA(price_data['Close'],
timeperiod=40).to_frame()
# 신호 DataFrame 생성 signal = EMA_long.copy() signal[EMA_long.isnull()] = 0# 신호 구성 signal[EMA_short > EMA_long] = 1signal[EMA_short < EMA_long] = -1
# 신호, 가격, 이동평균 그리기 combined_df = bt.merge(signal, price_data, EMA_short, EMA_long) combined_df.columns = ['Signal', 'Price', 'EMA_short', 'EMA_long']combined_df.plot(secondary_y=['Signal'])

# 전략 정의 bt_strategy = bt.Strategy('EMA_crossover',[bt.algos.WeighTarget(signal), bt.algos.Rebalance()])
# 백테스트 생성 및 실행
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
# 백테스트 결과 시각화
bt_result.plot(title='Backtest result')

Python으로 배우는 금융 트레이딩