トレンド追随型ストラテジー

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

Chelsea Yang

Data Science Instructor

2種類のトレーディング戦略

トレンド追随

  • 価格トレンドが同方向に続くと仮定
  • 移動平均やADXなどのトレンド指標で売買シグナルを作成

平均回帰

  • 価格が平均へ戻ると仮定
  • RSIやボリンジャーバンドなどで売買シグナルを作成
Pythonで学ぶ金融トレーディング

MAクロスオーバー戦略

トレンドに乗れ。

 

  • 2本のEMAクロスオーバー:
    • ロング: 短期EMAが長期EMAを上抜け
    • ショート: 短期EMAが長期EMAを下抜け
Pythonで学ぶ金融トレーディング

指標を計算

import talib
# Calculate the indicators
EMA_short = talib.EMA(price_data['Close'],
                      timeperiod=10).to_frame()
EMA_long = talib.EMA(price_data['Close'], 
                     timeperiod=40).to_frame()
Pythonで学ぶ金融トレーディング

シグナルを構築

# Create the signal DataFrame
signal = EMA_long.copy()
signal[EMA_long.isnull()] = 0

# Construct the signal signal[EMA_short > EMA_long] = 1
signal[EMA_short < EMA_long] = -1
Pythonで学ぶ金融トレーディング

シグナルをプロット

# Plot the signal, price and MAs
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で学ぶ金融トレーディング

シグナルでストラテジーを定義

# Define the strategy
bt_strategy = bt.Strategy('EMA_crossover',

[bt.algos.WeighTarget(signal), 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')

MAクロスオーバーのバックテスト結果

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

練習しましょう!

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

Preparing Video For Download...