金十字 死十字 移動平均 取引戦略

作者: リン・ハーンチャオチャン開催日:2023年10月30日 14:42:09
タグ:

img

概要: この戦略は,異なる期間の3つの移動平均値に基づいて,黄金クロスと死亡クロス取引を実施する.短期MAが長期MAを超えると長期MAが伸び,短期MAが長期MAを下回ると短くなります.トレンド方向はトレンドMA線によって決定されます.

戦略論理:

  1. 3つのMAを定義します.短期間MA,長期間MA,傾向MA.期間はそれぞれ20,200,50です.

  2. 購入シグナルは,短期間MAが長期間MAを超えると生成される.売却シグナルは,短期間MAが長期間MAを下回ると生成される.

  3. ショートとロングMAがトレンドMAよりも高いかどうかを確認します.そうでない場合は,トレンドに反して取引を避けるためにシグナルをフィルタリングします.

  4. ストップ・ロスを設定し,エントリー価格の割合として利益を取ります.バックテストに基づいてパラメータを最適化します.

  5. 入力信号を視覚化するために MA 交差点を描画する.

利点:

  1. シンプルで直感的な戦略論理 分かりやすく実行できます

  2. 中期トレンドを効果的に把握し その勢いで取引することができます

  3. トレンドとフィルタリングする MA は,トレンドに反する取引を避けます.

  4. 承認期間は,異なる市場状況に合わせて調整できます.

  5. リスクをコントロールするために ストップ・ロスを調整し 利益を取ることができます

リスク:

  1. 急激な不安定な動きがストップロスを引き起こす可能性があります.

  2. トレンドが逆転すると 損失は大きくなります

  3. パラメータの調整が正しくない場合,過剰取引や機会を逃す可能性があります.

  4. 取引コストを考慮する必要があります.

改善点:

  1. 偽信号を避けるため ATR のような 揮発性フィルターを追加します

  2. マシン学習を使って パーマータを動的に最適化します

  3. トレンドを決定するためにMACDのようなより多くの指標を追加します.

  4. 利益を確保するためにストップロスを実行します

  5. 最適のストップ・ロストと 利益のレベルを見つけるためのバックテストです

結論は

戦略は,明確な論理と簡単な実行でトレンドを効果的に捉える.トレンドフィルター,ストップ・ロスト,テイク・プロフィートでリスクを制御する.パラメータチューニングは市場条件に最適化する必要があります.より多くの指標がパフォーマンスを向上させることができます.中期トレンド取引に適しています.バックテストとデモ取引でうまく機能しています.ライブ取引では,ウィップソーとトレンド逆転リスクに注意してください.全体的に実用的な価値があります.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAU M15", overlay=true)

// Define input parameters
long_length = input.int(64, title="Long MA Length")
short_length = input.int(1, title="Short MA Length")
trend_length = input.int(200, title="Trend MA Length")

// Calculate moving averages
long_ma = ta.sma(close, long_length)
short_ma = ta.sma(close, short_length)
trend_ma = ta.sma(close, trend_length)

// Plot moving averages on chart
plot(long_ma, color=color.blue, title="Long MA")
plot(short_ma, color=color.red, title="Short MA")
plot(trend_ma, color=color.green, title="Trend MA")

// Entry conditions
enterLong = ta.crossover(long_ma, short_ma) and long_ma > trend_ma and short_ma > trend_ma
enterShort = ta.crossunder(long_ma, short_ma) and long_ma < trend_ma and short_ma < trend_ma

if (enterLong)
    strategy.entry("Long", strategy.long)

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

// Exit conditions
exitLong = ta.crossunder(long_ma, short_ma)
exitShort = ta.crossover(long_ma, short_ma)

if (exitLong)
    strategy.close("Long")

if (exitShort)
    strategy.close("Short")

// Set stop loss and take profit levels
long_stop_loss_percentage = input(1, title="Long Stop Loss (%)") / 100
long_take_profit_percentage = input(3, title="Long Take Profit (%)") / 100

short_stop_loss_percentage = input(1, title="Short Stop Loss (%)") / 100
short_take_profit_percentage = input(3, title="Short Take Profit (%)") / 100

strategy.exit("Take Profit/Stop Loss", "Long", stop=close * (1 - long_stop_loss_percentage), limit=close * (1 + long_take_profit_percentage))
strategy.exit("Take Profit/Stop Loss", "Short", stop=close * (1 + short_stop_loss_percentage), limit=close * (1 - short_take_profit_percentage))

plotshape(series=enterLong, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(series=enterShort, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)


もっと