EMA23/EMA50 ダブル移動平均クロスオーバー定量取引戦略

EMA EMA23 EMA50
作成日: 2024-04-26 15:29:21 最終変更日: 2024-04-26 15:29:21
コピー: 3 クリック数: 605
1
フォロー
1617
フォロワー

EMA23/EMA50 ダブル移動平均クロスオーバー定量取引戦略

概要

この戦略は,EMA23とEMA50の交差信号に基づいて取引する.EMA23がEMA50を突破すると買いの信号が生み出され,突破すると売りの信号が生み出されます.この戦略は,価格がEMA50を下回ると多頭ポジションにストップし,空頭ポジションにストップします.さらに,この戦略は,価格がEMA50を再び突破すると再入場します.この戦略は30分間の時間枠に適用されます.

戦略原則

  1. EMA23とEMA50の2つの指標の移動平均を計算する.
  2. EMA23上はEMA50を穿うとき,買取信号を生じ;EMA23下はEMA50を穿うとき,売出信号を生じ。
  3. 多項のポジションでは,価格がEMA50を下回り,終了価格が前KラインのEMA50を下回った場合,ストップが実行されます.
  4. 空頭ポジションでは,価格がEMA50を超え,前K線のEMA50より高い閉店価格であれば,ストップをかける.
  5. 複数位のポジションでは,価格がEMA50に再立ち直り,閉店価格,最高価格がEMA50より高く,EMA23がEMA50より高く,再入場する.
  6. 空頭ポジションでは,価格がEMA50を下回り,閉盘価格も最低価格もEMA50を下回り,EMA23もEMA50を下回り,再入場する.
  7. 多頭位は,開設価格に設定された終了値の1.6倍,空頭位は開設価格に設定された終了値の0.75倍の利益を得た.

戦略的優位性

  1. 双均線交差は,シンプルで効果的なトレンド追跡指標で,トレンドを捉えるのに役立ちます.
  2. 損失防止メカニズムは,リスクを制御し,損失の拡大を防ぐのに役立ちます.
  3. 戦略は,トレンドを再び捉え,収益性を高めるために,再入場メカニズムを導入します.
  4. 利潤の結末の設定は,戦略が利潤を間に合うようにロックできるようにします.
  5. 30分という時間枠は取引の機会を増やし,騒音をフィルターします.

戦略リスク

  1. EMAはトレンドを追跡する指標として遅滞しており,ベストエントリーポイントを逃している可能性がある.
  2. 停止点の位置の設定は,十分に最適化されていない可能性があり,早期停止を引き起こします.
  3. 取引の頻度は手数料のコストを増加させ,収益性を損なう可能性があります.
  4. 市場が揺れ動いているとき,偽信号が多く出ることがあります.
  5. 固定利益の結末は,戦略の利益の空間を制限するかもしれない.

戦略最適化の方向性

  1. MACD,RSIなど,他の技術指標を導入することを検討することができます.
  2. ストップポイントの設定を最適化するには,ATRなどの波動率指標を使用してストップポジションを動的に調整することを考えることができます.
  3. 取引頻度を制御し,適切な取引フィルタリング条件を設定し,偽の信号を減らす.
  4. 動揺市とトレンド市に対して異なる戦略パラメータ設定を使用する.
  5. 利潤の結末は市場変動やリスク・リターン比率などの動向に合わせて柔軟に調整できます.

要約する

この戦略は,双均線交差に基づく量化取引戦略で,EMA23とEMA50の交差信号によってトレンドを捕捉し,リスク制御と利益の可能性を高めるためにストップと再エントリーメカニズムを設定している.この戦略は,簡単でわかりやすいもので,30分などの短期間の取引に適している.しかし,この戦略には,トレンド判断の遅れ,ストップロスの最適化不足,震動市場の不良なパフォーマンスなどのいくつかの限界があります.将来,より多くの技術指標を導入し,ストップロスの位置を最適化し,取引頻度を制御し,トレンドと震動を区分し,利潤の動態を締めくくり,より健全な収益を期すために戦略を最適化することができます.

ストラテジーソースコード
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// EMA 23 ve EMA 50'nin hesaplanması
ema23 = ta.ema(close, 23)
ema50 = ta.ema(close, 50)

// Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi
buySignal = ta.crossover(ema23, ema50)

// Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi
sellSignal = ta.crossunder(ema23, ema50)

// Long pozisyon stop seviyesi
longStopLoss = low < ema50 and close < ema50[1]

// Short pozisyon stop seviyesi
shortStopLoss = high > ema50 and close > ema50[1]

// Long pozisyon için tekrar giriş kuralı
longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50

// Short pozisyon için tekrar giriş kuralı
shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50

// Long işlemde kar alma seviyesi (%60)
longTakeProfit = strategy.position_avg_price * 1.60

// Short işlemde kar alma seviyesi (%25)
shortTakeProfit = strategy.position_avg_price * 0.75

// Long işlem için yeniden giriş koşulu
longReEntryCondition = strategy.position_size <= 0 and longReEntry

// Short işlem için yeniden giriş koşulu
shortReEntryCondition = strategy.position_size >= 0 and shortReEntry

// Geriye dönük test için başlangıç tarihi (01.01.2022)
startDate = timestamp(2022, 01, 01, 00, 00)

if (time >= startDate)
    if (buySignal)
        strategy.entry("Buy", strategy.long)

    if (sellSignal)
        strategy.entry("Sell", strategy.short)

    if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit))
        strategy.close("Buy")

    if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit))
        strategy.close("Sell")

    if (longReEntryCondition)
        strategy.entry("Buy", strategy.long)

    if (shortReEntryCondition)
        strategy.entry("Sell", strategy.short)