추세 추종 전략

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

Chelsea Yang

Data Science Instructor

두 가지 매매 전략

추세 추종

  • 가격 추세가 같은 방향으로 이어진다고 가정
  • 이동평균, ADX 등 추세 지표로 매매 신호 생성

평균회귀

  • 가격이 평균으로 되돌아간다고 가정
  • RSI, 볼린저 밴드 등 지표로 매매 신호 생성
Python으로 배우는 금융 트레이딩

MA 교차 전략

추세는 친구다.

 

  • 이중 EMA 교차:
    • 롱 신호: 단기 EMA가 장기 EMA 상향 돌파
    • 숏 신호: 단기 EMA가 장기 EMA 하향 돌파
Python으로 배우는 금융 트레이딩

지표 계산

import talib
# 지표 계산
EMA_short = talib.EMA(price_data['Close'],
                      timeperiod=10).to_frame()
EMA_long = talib.EMA(price_data['Close'], 
                     timeperiod=40).to_frame()
Python으로 배우는 금융 트레이딩

신호 구성

# 신호 DataFrame 생성
signal = EMA_long.copy()
signal[EMA_long.isnull()] = 0

# 신호 구성 signal[EMA_short > EMA_long] = 1
signal[EMA_short < EMA_long] = -1
Python으로 배우는 금융 트레이딩

신호 시각화

# 신호, 가격, 이동평균 그리기
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'])

EMA 교차 신호 플롯

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

신호로 전략 정의

# 전략 정의
bt_strategy = bt.Strategy('EMA_crossover',

[bt.algos.WeighTarget(signal), bt.algos.Rebalance()])
Python으로 배우는 금융 트레이딩

신호 기반 전략 백테스트

# 백테스트 생성 및 실행
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Python으로 배우는 금융 트레이딩

백테스트 결과 시각화

# 백테스트 결과 시각화
bt_result.plot(title='Backtest result')

MA 교차 백테스트 결과

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

Ayo berlatih!

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

Preparing Video For Download...