ゴールデンクロスとデスクロスのダブルMA戦略


作成日: 2024-01-31 11:29:45 最終変更日: 2024-01-31 11:29:45
コピー: 0 クリック数: 577
1
フォロー
1617
フォロワー

ゴールデンクロスとデスクロスのダブルMA戦略

概要

この戦略は,双動平均に基づいた取引戦略である.これは,ユーザが設定した長さと短さの2つの移動平均に基づいて金叉と死叉の操作を行います.つまり,速い移動平均線が速い移動平均線を横切るときまたはゆっくりとした移動平均線を横切るとき,取引信号を発信します.速いMAの上にゆっくりとしたMAを横切るとき,多めに行います.

戦略原則

この戦略の核心的な論理は,2つの移動平均の交差原理に基づいています.移動平均とは,一定の時間周期における閉盘価格を算術平均として取得した平均価格です.移動平均は,ランダムなノイズを効果的に除し,より明確な価格トレンドを反映します.

この戦略の短期MAは,価格の短期トレンドを代表し,長期MAは価格の長期トレンドを代表する.短期MAは,長期MAよりも価格の変化に敏感であり,価格の逆転をより早く捉えることができる.短期MAの上部に長期MAを穿うとき,短期トレンドが上位に転じ,多額の取引を行うことを代表する.短期MAの下部に長期MAを穿うとき,短期トレンドが空頭に転じ,空きをすることを代表する.

具体的には,戦略は,ta.smaを計算して指定された周期の単純移動平均を取引信号として使用する.ユーザーは,長線周期long_periodと短線周期short_periodの2つのMAパラメータをカスタマイズすることができます.戦略は,ta.crossoverとta.crossunderを使用して,MAの黄金クロスとデッドフォークを判断します.短MAに長MAが穿越すると,金叉が現れる場合は,多行します.短MAの下には長MAが穿越すると,デッドフォークが現れる場合は,空行します.

戦略的優位性

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

  1. 操作は簡単で,簡単に習得できます.
  2. 市場環境に合わせてカスタマイズできるパラメータ
  3. 双MA交差原理を用いて,ノイズを効果的にフィルターし,トレンドの逆転を捕捉する.
  4. 価格の転換点を把握する 高い感度.

戦略リスク

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

  1. 双MA間隔が小さすぎると誤信号が生じやすい.
  2. 重要なトレンドを見逃したMA周期を誤って切断する
  3. 逆転は必ずしもトレンドの逆転を意味するものではなく,偽のシグナルを提示する可能性があります.
  4. オーバー最適化を避けるためにパラメータを適切に調整する必要があります.

上記のリスクに対して,MAパラメータの調整,ストップ・ストップの設定,または他の指標と組み合わせて最適化することができる.

空間を最適化する

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

  1. MA周期パラメータを最適化して,自適応MA周期を採用する.
  2. 偽の突破を防ぐために,トランザクションをフィルターする.
  3. 他の技術指標,MACD,KDJなどの組み合わせ.
  4. 単一損失を制御するストップ・ストップ・ストップロジックを追加します.
  5. コード構造の最適化,モジュール化後期拡張スペースの追加.

要約する

この戦略は,全体として,量化取引の入門策として非常に適しています.それは,単純な二重MAパラメータだけで動作し,操作が簡単で,容易に理解でき,市場逆転時を直感的に反映することができます.同時に,戦略は,実際の需要に応じてパラメータを調整したり,他の論理を追加したりするために,最適化するための大きな空間を残しています.

ストラテジーソースコード
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))