資源の読み込みに... 荷物...

移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン,日付: 2024年4月30日 17:33:09
タグ:マルチSMA

img

概要

この戦略は,取引信号を生成するために2つの移動平均値 (MA) を使用する.短期間MAが長期間MAを超えると,購入信号が生成され,短期間MAが長期間MAを下回ると,販売信号が生成される.戦略はまた,取引時間 (8AMから20PM UTC) と利益目標 (150ポイント) を設定する.

戦略原則

  1. 異なる期間の移動平均を2つ計算する (デフォルトは5期と20期).
  2. 短期間MASが,買い/売る信号として機能する長期間MASの上/下を横断するかどうかを決定する.
  3. 取引時間帯を午前8時から午後20時まで設定し,この時間帯内で取引するだけです.
  4. 最新の4個のキャンドルがMA以上/下を閉じたかどうかを確認し,傾向を確認します.
  5. 買い/売却条件が満たされている場合, 150ポイントの利益目標を設定してポジションを開きます.

戦略 の 利点

  1. 異なる期間の2つのMAsを使用すると,トレンド市場に適したトレンドを効果的に把握できます.
  2. 取引期間を設定することで,低流動性の時期での取引を回避し,リスクを軽減できます.
  3. 最新の4個のキャンドルがMA以上/下を閉じたかどうかを確認することで,シグナル信頼性を向上させることができます.
  4. 固定利益目標を設定することで 利益とリスクを効果的に制御できます

戦略リスク

  1. 市場が不安定である場合 この戦略は 誤った信号を頻繁に発生させ 損失をもたらす可能性があります
  2. 固定利益目標が戦略の利益の可能性を制限する可能性があります.
  3. この戦略はストップ・ロスを設定していないので,市場が急激に逆転すると,大きなリスクに直面する可能性があります.

戦略の最適化方向

  1. 信号の信頼性を向上させるために,RSIやMACDなどのより多くの技術指標を組み込むことを検討します.
  2. 収益目標とストップ損失の設定を最適化します.例えば動的利益目標とストップ損失またはATRベースの利益目標とストップ損失を使用します.
  3. 取引シグナルを二次確認するために,オーダーフローなどの市場マイクロ構造情報を組み合わせる.
  4. 戦略の適応性を向上させるために,異なる市場状態 (トレンド/チャッピー) に対して異なるパラメータ設定を採用する.

概要

この戦略は,トレンド市場に適した,異なる期間の2つの移動平均値のクロスオーバーに基づいて取引信号を生成する.取引時間期間と固定利益目標を設定することで,一定程度リスクを制御することができる.しかし,戦略は不安定な市場でうまく機能しない可能性があり,固定利益目標は戦略の利益可能性を制限する可能性がある.将来,より多くの技術指標を組み込むことを検討し,利益目標とストップロスの設定を最適化し,市場マイクロ構造情報を組み合わせ,この戦略を最適化するために異なる市場状態のための異なるパラメータ設定を採用することができます.


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

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")


関連性

もっと