트레이딩 시그널

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

Chelsea Yang

Data Science Instructor

트레이딩 시그널이란?

  • 사전 기준에 따라 롱/숏 진입을 트리거합니다
  • 구성 방식:

    • 단일 기술적 지표
    • 복수 기술적 지표
    • 시장 데이터와 지표 결합
  • 알고리즘 트레이딩에 흔히 사용됩니다

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

시그널 예시

  • 시그널: Price > SMA (가격이 SMA를 상향 돌파하면 롱)

진입 시그널을 보여주는 플롯.

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

bt에서 시그널 구현 방법

  1. 데이터 수집 및 지표 계산
  2. 시그널 기반 전략 정의
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. 백테스트 생성 및 실행
  4. 결과 검토
Python으로 배우는 금융 트레이딩

시그널 구성

# 티커로 가격 데이터 조회
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# SMA 계산
sma = price_data.rolling(20).mean()

또는 talib으로 지표를 계산합니다:

# SMA 계산
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Python으로 배우는 금융 트레이딩

시그널 기반 전략 정의

# 시그널 기반 전략 정의
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           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')

백테스트 결과의 플롯

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

연습해 봅시다!

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

Preparing Video For Download...