ゴールデンクロスとデスクロス定量取引戦略


作成日: 2024-02-02 14:46:11 最終変更日: 2024-02-02 14:46:11
コピー: 1 クリック数: 676
1
フォロー
1617
フォロワー

ゴールデンクロスとデスクロス定量取引戦略

概要

この戦略は,XAUUSD ((ゴールド) の30日単調移動平均 ((MA30) と200日単調移動平均 ((MA200) の交差を計算することによって,金叉の買取と死叉の販売の定量取引を実現する.この戦略は,同時に,ストップ・ロズとストップ・ストップ価格を設定し,自動的に平仓することができる.

戦略原則

この戦略の核心指標は,MA30とMA200である.MA30の上を通過すると,買いのシグナルが生じ,MA30下を通過すると,売りのシグナルが生じます.この交差は,金叉と死叉と呼ばれています.

具体的には,この策略は,ta庫を使ってMA30とMA200を計算する. そして,ta.crossoverとta.crossunderの関数を使ってそれらの交差を判断する. 上方交差 (金叉) が発生したとき,longConditionをtrueに設定して,買入操作を行う. 下方交差 (死叉) が発生したとき,shortConditionをtrueに設定して,売出操作を行う.

取引の実行に関しては,買取と売却の注文はそれぞれ40,000ポイントのストップ・ロズとストップ・ストップの価格が設定されている.これは,XAUUSDで4000ポイントの価格変化に相当する.価格がストップ・ロスまたはストップを触発すると,オーダーは自動的に平仓する.

また,策略は,ヘッジメカニズムを設定している. 現在の多頭ポジションを保有している場合,その後死叉シグナルが発生すると,直接平仓の方向に切り替わります. 現在の空頭ポジションを保有している場合,その後金叉シグナルが発生すると,直接平仓の方向に切り替わります. これは,トレンドが逆転するときに大きな損失を免れることができます.

戦略的優位性

これは非常にシンプルで直感的なトレンド追跡戦略で,以下の利点があります.

  1. ルールも明確で実行しやすい.
  2. 複数の時間周期で利用可能で,日中および長線操作に適している.
  3. 市場が周期的であり,トレンドの逆転を捉えることができます.
  4. ストップダストストップの自動出場メカニズムを設定し,単発の損失を制御する.
  5. 市場を覆す可能性のある損失を防ぐため,ヘッジメカニズムを確立する.

リスク分析

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

  1. MA指数は遅滞しており,短期的なトレンドの逆転の最良の入場時間を逃している可能性があります.
  2. ストップ・ロスの設定は不合理で,早期にストップ・ロスを出す可能性があります.
  3. 逆転信号の干渉が多すぎて,無意味な取引が増える.
  4. この戦略は,取引資金の規模にも一定の要求があり,一定の撤収を許容する必要があります.

これらのリスクを制御するために,パラメータを最適化し,ストップ・ロー幅を調整し,反転信号をフィルタリングすることができます.

戦略の最適化

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

  1. MAパラメータを最適化してEMAまたは加重移動平均に置き換える.
  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")