移動平均クロスオーバートレンドフォロー戦略


作成日: 2023-12-06 16:58:20 最終変更日: 2023-12-06 16:58:20
コピー: 0 クリック数: 651
1
フォロー
1619
フォロワー

移動平均クロスオーバートレンドフォロー戦略

概要

この戦略は,移動平均の交差に基づくトレンド追跡戦略である.これは,2つの異なる周期の指数移動平均を使用し,短周期移動平均の上に長周期移動平均を横切るときに多行し,短周期移動平均の下の長周期移動平均を横切るときに空行し,典型的なトレンド追跡戦略である.

戦略原則

この戦略は20周期と50周期の2つの移動平均を使用している. まず,この2つの移動平均を計算し,その交差点を取引シグナルとして探している. 20周期移動平均の上に50周期移動平均を穿越すると,買いのシグナルが生じ,20周期移動平均の下の50周期移動平均を穿越すると,売り出しシグナルが生じます.

取引シグナルが生成された後,この戦略は,固定されたストップ・ロスの幅とストップ・ロスの幅に従って注文する.例えば,購入後に0.4%のストップと0.7%のストップを設定する.販売後に0.4%のストップと0.7%のストップを設定する.ストップ・ロスの幅を設定することで,単一の取引のリスクと利益を制御する.

戦略的優位性

この戦略の利点は以下の通りです.

  1. 操作ロジックはシンプルで明快で,理解し,実行しやすい.
  2. 市場トレンドの転換点を 確実に捉える
  3. ストップ・ロスト・ストップが設定され,単一取引のリスクをコントロールできます.

戦略リスク

この戦略にはいくつかのリスクがあります.

  1. 市場が明らかにトレンドしていないとき,より多くの誤信号が生じる
  2. 市場からの騒音を効率的にフィルターできず, 閉じ込められやすい
  3. 設定したストップ・ロープ幅は,すべての品種に適していない可能性があり,最適化が必要です.

対策として

  1. 移動平均の周期を最適化し,誤信号をフィルターする
  2. 他の指標と組み合わせたフィルタリング
  3. テストし,停止停止パラメータを最適化

最適化の方向

この戦略は以下の点で最適化できます.

  1. 移動平均の周期を最適化して,最適なパラメータの組み合わせを見つける
  2. 取引量の増加などの指標をフィルターする信号
  3. 特定の品種でテストし,止損止幅を最適化
  4. 固定ストップを動的ストップに変更します.
  5. 機械学習などのアルゴリズムを追加し,最適なパラメータを自動的に探す

要約する

この戦略は全体的にシンプルで効果的なトレンド追跡戦略である. Caughtは移動平均を交差して市場のトレンドの転向を判断し,ストップ・ストップ・コントロールのリスクを設定している. この戦略は,トレンド判断の要求が低い投資家に適している.パラメータとモデルのさらなる最適化により,より良い戦略効果を得ることができる.

]

ストラテジーソースコード
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © danielfepardo

//@version=5

strategy("QUANT", overlay=true)
lenght1 = input(20)
lenght2 = input(50)


ema1 = ta.ema(close, lenght1)
ema2 = ta.ema(close, lenght2)
plot(ema1, color=color.black)
plot(ema2, color=color.red)

long = ta.crossover(ema1, ema2)

SL = 0.004
TP = 0.007

if long == true
    strategy.entry("Compra Call", strategy.long)
longstop=strategy.position_avg_price*(1-SL)
longprofit=strategy.position_avg_price*(1+TP)
strategy.exit("Venta Call", stop=longstop, limit=longprofit)

short = ta.crossover(ema2, ema1)

if short == true
    strategy.entry("Compra Put", strategy.short)
shortstop=strategy.position_avg_price*(1+SL)
shortprofit=strategy.position_avg_price*(1-TP)
strategy.exit("Venta Put", stop=shortstop, limit=shortprofit)