金・クロス・デッド・クロス 量的な取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-02 14:46:11
タグ:

img

概要

この戦略は,金貨のクロスバイとデッドクロスセール量的な取引を実施するために,XAUUSD (金貨) の30日間のシンプル移動平均 (MA30) と200日間のシンプル移動平均 (MA200) のクロスオーバーを計算する.この戦略は,自動的なポジション閉じるためのストップ損失と取利益価格を設定する.

戦略原則

この戦略の主な指標はMA30とMA200である.MA30がMA200を超えると,買い信号が生成される.MA30がMA200を下回ると,売り信号が生成される.これらのクロスは金クロス死クロスと呼ばれる.

具体的には,この戦略は,MA30とMA200を計算するためにtaライブラリを使用します. ta.crossoverとta.crossunder関数は,交差するかどうかを判断します. 上向き交差 (ゴールドクロス) が起こると,longCondition値は true に設定されます. 下向き交差 (デッドクロス) が起こると,shortCondition値は true に設定されます.

オーダー実行では,ロングとショートトレードにそれぞれ40,000ポイントのストップ・ロストとテイク・プロフィート価格が設定されています.これはXAUUSDの4,000ポイントの価格変化に対応します.価格がストップ・ロストまたはテイク・プロフィートをトリガーすると,オーダーは自動的にポジションを閉じます.

また,ヘッジメカニズムは戦略に確立されている.現在のポジションが長ければ,次のデッドクロスシグナルが直接ポジションを平ら化し,それを逆転させる.現在のポジションが短ければ,次のゴールドクロスシグナルも直接平ら化し,ポジションを逆転させる.これはトレンド逆転中に大きな損失を回避する.

利点

これは非常にシンプルで直感的なトレンドフォロー戦略です.以下の利点があります:

  1. 明確で実行しやすいルール
  2. 日間取引と長期取引の複数のタイムフレームに適用されます.
  3. 市場サイクルに合わせて 傾向の逆転を把握します
  4. シングルトレード損失を制御するためにストップ損失/利益の自動退出メカニズムを設定します.
  5. トレンド逆転による損失を回避するためにヘッジを設定する.

リスク分析

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

  1. MA指標は遅れており,短期的なトレンド逆転のためにベストエントリーを見逃す可能性があります.
  2. 不適切なストップロスの設定は,取引を早めに終了させる可能性があります.
  3. 逆信号が多すぎると 不必要な取引が増加します
  4. この戦略には 引き上げに対応するための資本要件があります

これらのリスクは,パラメータの最適化,ストップ損失レベルの調整,逆信号のフィルタリングなどによって管理できます.

最適化

戦略はいくつかの方法で最適化できます.

  1. EMA または重度の移動平均値を使用して MA パラメータを最適化します.
  2. ボリューム,変動指標など他のフィルターを追加します
  3. 重要な信号に対してのみヘッジメカニズムを有効にする.
  4. 資本効率を高めるために ポジションサイズを設定する
  5. 機械学習アルゴリズムを使用して ストップ/利益を動的に最適化します

パラメータ調整,フィルター追加,位置サイズ設定などにより戦略の安定性が向上します

結論

これはシンプルで実用的な移動平均クロスオーバー戦略である. 市場サイクルに準拠し,自動ストップ損失/利益出口とヘッジメカニズムを通じてリスクを制御する. 理解し,実装しやすく,複数の製品とタイムフレームに適用できる.さらなる最適化によりリスク/リターンプロフィールが向上する. 全体的に推奨される定量的な取引戦略である.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Cruce de Medias Móviles", overlay=true)

// Medias móviles
ma30 = ta.sma(close, 30)
ma60 = ta.sma(close, 60)
ma200 = ta.sma(close, 200)

// Cruce de medias móviles
crossoverUp = ta.crossover(ma30, ma200)
crossoverDown = ta.crossunder(ma30, ma200)

// Señales de compra y venta
longCondition = crossoverUp
shortCondition = crossoverDown

// Ejecución de órdenes
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000)

// Plot de las medias móviles
plot(ma30, color=color.blue, title="MA 30")
plot(ma60, color=color.orange, title="MA 60")
plot(ma200, color=color.green, title="MA 200")

// Condiciones para cerrar la posición contraria
if (strategy.position_size > 0)
    if (crossoverDown)
        strategy.close("Buy")
if (strategy.position_size < 0)
    if (crossoverUp)
        strategy.close("Sell")

もっと