双 EMA ゴールデンクロス ブレイクストラテジー

作者: リン・ハーンチャオチャン,日付: 2024-01-26 15:13:59
タグ:

img

概要

双 EMA ゴールデンクロスブレークアウト戦略は,異なる期間の2つの指数的な移動平均値 (EMA) をベースとしたトレンドフォローおよびブレークアウトトレード戦略である.この戦略は,価格のトレンド変化を把握するために,2つの EMAの間にゴールデンクロスが出現すると購入信号,死亡クロスが発生すると販売信号を生成する.この戦略は,偽信号をフィルタリングするために,EMAの価格ブレークアウト条件も組み合わせている.

戦略の論理

EMAの二重の黄金クロスブレイク戦略は主に次の論理に基づいています.

  1. 短期トレンドを把握するために短い期間のEMA (26日線) と,長期的なトレンド方向を決定するために長い期間のEMA (200日線) を使用する.

  2. 短い期間のEMAが長い期間のEMAを横切ったとき,これは"黄金十字"と呼ばれ,下向きから上向きへの傾向の変化を示し,買い信号が生成されます.

  3. 短い期間のEMAが長い期間のEMAを下回る時,これは"死十字"と呼ばれ,上昇傾向から下落傾向への傾向の変化を示し,売り信号が生成されます.

  4. 交差信号が発生すると,価格も EMA を突破し,偽信号をフィルタリングし,信頼できる取引信号を確保する必要があります.

  5. ストップ・ロストと収益のテクニックを適用して 取引リスクを制御し 利益を固定します

利点を分析する

EMAの二重ゴールドクロスブレイク戦略には以下の利点があります.

  1. 価格動向とクロスオーバー信号を決定するために二重EMAを使用することで,市場の動きを効果的に追跡することができます.

  2. 価格ブレイクフィルター信号を組み合わせることで 偽のクロスオーバー信号に惑わされないようにします

  3. シンプルで明快な取引論理を採用し,理解し実行しやすい.

  4. 異なる製品と時間枠に適用可能で,柔軟で汎用的です.

  5. 設定可能な EMA パラメータとストップ・ロース/テイク・プロフィート条件により,高度に適応可能になります.

リスク分析

EMAの二重ゴールド・クロス・ブレイク戦略には,次のリスクもあります.

  1. 価格が振動するときに頻繁なクロスオーバーが発生し,過剰な取引信号を生成することがあります. EMAパラメータを適切に調整することでクロスオーバー頻度は減少します.

  2. 双 EMA は 時々 遅い 性能 を 示し, 時 に 価格 変化 に 反応 でき ませ ん. 確認 の ため に,他の 指標 を 組み合わせ て も よい.

  3. ストップ・ロストポイントが小さすぎる場合,価格のわずかな変動によって容易に引き起こすことが可能であり,大きすぎたテイク・プロフィートポイントは一部の利益を見逃す可能性があります.ストップ・ロストとテイク・プロフィートポジションは,市場の状況に応じて調整する必要があります.

  4. トレンドに反する取引を避けるために,主要トレンド判断は取引信号の前に行われなければなりません.

オプティマイゼーションの方向性

EMAの二重ゴールドクロスブレイク戦略は,次の側面で最適化することができる:

  1. 機械学習アルゴリズムを適用して EMA パラメータを動的に最適化し,価格変動により良く適応できるようにする.

  2. 音量,ボリンジャー帯などの他の確認信号を追加して信号の質を改善します.

  3. 価格経路のディープラーニング予測を組み込み ストップ・ロスを設定し 最適レベルに近づける

  4. 信号の精度を高めるため,特に高周波データのための戦略を最適化する.

  5. 過剰なストップアウトを防ぐため,ストップ・ロスの適応調整メカニズムを追加する.

結論

概要すると,デュアルEMAゴールドクロスブレイクアウト戦略は,価格動向とターニングポイントを決定するためにEMAクロスオーバー信号を使用し,偽の信号を避けるために価格ブレイクアウトフィルターを組み込む.これは信頼できる,安定した,簡単に実行可能なトレンドです.パラメータ最適化,信号フィルタリング,適応調整によりさらなる改善が可能です.その取引論理はシンプルで直感的で,あらゆるタイプの投資家に適しており,基本アルゴリズム的な取引戦略の1つです.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Buy/Sell Signal", shorttitle="EMABuySell", overlay=true)

// === INPUTS ===
src = input(close)
ema1Length = input(26, title='EMA-1')
ema2Length = input(200, title='EMA-2')

EMASig = input(true, title="Show EMA ?")
takeProfitPercent = input(2.0, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100

pema1 = ta.ema(src, ema1Length)
pema2 = ta.ema(src, ema2Length)

// Plotting EMAs
plot(EMASig ? pema1 : na, title='EMA-1', color=color.new(color.blue, 0), linewidth=2)
plot(EMASig ? pema2 : na, title='EMA-2', color=color.new(color.orange, 0), linewidth=2)

// EMA Crossover Buy Signal
EMACrossoverLong = ta.crossover(pema1, pema2)

// EMA Crossunder Short Signal
EMACrossoverShort = ta.crossunder(pema1, pema2)

// Crossover above EMA-200 Long Signal
CrossoverAboveEMA200 = ta.crossover(close, pema2)

// Trading logic for Long
if ((EMACrossoverLong and close > pema1 and close > pema2) or CrossoverAboveEMA200)
    strategy.entry("Buy", strategy.long, qty=1)

// Take Profit logic for Long
longCondition = close >= strategy.position_avg_price * (1 + takeProfitPercent)
if (strategy.position_size > 0 and longCondition)
    strategy.close("Buy")

// Stop Loss logic for Long
stopLossConditionLong = ta.crossunder(pema1, pema2)
if (strategy.position_size > 0 and stopLossConditionLong)
    strategy.close("Buy")

// Trading logic for Short
if (EMACrossoverShort and close < pema1 and close < pema2)
    strategy.entry("Sell", strategy.short, qty=1)

// Take Profit logic for Short
shortCondition = close <= strategy.position_avg_price * (1 - takeProfitPercent)
if (strategy.position_size < 0 and shortCondition)
    strategy.close("Sell")

// Stop Loss logic for Short
stopLossConditionShort = ta.crossover(pema1, pema2)
if (strategy.position_size < 0 and stopLossConditionShort)
    strategy.close("Sell")

// Visual Signals
plotshape(series=EMACrossoverLong or CrossoverAboveEMA200, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=EMACrossoverShort, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)


もっと