トレーディングシグナル

Pythonで学ぶ金融トレーディング

Chelsea Yang

Data Science Instructor

トレーディングシグナルとは?

  • 事前の条件に基づき、ロング/ショートをトリガー
  • 構成例:

    • 単一のテクニカル指標
    • 複数のテクニカル指標
    • 市場データ+指標の組み合わせ
  • アルゴ取引で一般的

Pythonで学ぶ金融トレーディング

シグナルの例

  • シグナル: 価格 > SMA(価格がSMAを上回ったらロング)

エントリーを示すシグナルのプロット。

Pythonで学ぶ金融トレーディング

btでのシグナル実装手順

  1. データ取得と指標計算
  2. シグナル戦略を定義
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. バックテストを作成・実行
  4. 結果を確認
Pythonで学ぶ金融トレーディング

シグナルの構築

# Get price data by the stock ticker
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# Calculate SMA
sma = price_data.rolling(20).mean()

別法: talibで指標を計算

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Pythonで学ぶ金融トレーディング

シグナル戦略を定義

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • 簡略化のため次を仮定:
    • 常に単一銘柄のみ取引
    • スリッページ・手数料なし
      • スリッページ: 期待価格と約定価格の差
      • 手数料: 約定時にブローカーへ支払う費用
Pythonで学ぶ金融トレーディング

シグナル戦略をバックテスト

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Pythonで学ぶ金融トレーディング

バックテスト結果をプロット

# Plot the backtest result
bt_result.plot(title='Backtest result')

バックテスト結果のプロット

Pythonで学ぶ金融トレーディング

演習に進みましょう!

Pythonで学ぶ金融トレーディング

Preparing Video For Download...