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

スマート R2R ベースのストップ・ロスの管理を備えた三重 EMA クロスオーバー取引システム

作者: リン・ハーンチャオチャン, 日付: 2025-01-06 16:53:36
タグ:エイマR2R

img

概要

これは,三重指数動平均 (EMA) クロスオーバー信号に基づいたトレンドフォローする取引システムである.このシステムは,クロスオーバーを通じて取引信号を生成するために,EMA8,EMA21,EMA89を組み合わせ,リスク対報酬比に基づくスマートストップロスの管理を統合し,自動リスク管理を達成する.

戦略の原則

このシステムは以下の基本機能モジュールで構成されています.

  1. シグナル生成モジュール:高速EMA8と中期EMA21のクロスオーバーを使用して取引方向を決定し,主要なトレンドを確認するために価格が遅いEMA89以上または以下である必要があります.
  2. トレード実行モジュール: ロングまたはショート条件が満たされたときに自動的にポジションを開く.初期ストップ・ロストとテイク・プロフィートのレベルを設定する.
  3. リスクマネジメントモジュール: 価格変動がリスク/リターン比1:1に達すると,自動でストップ・ロスをブレイク・イブンに移動し,リスクフリー利益を確保する
  4. 視覚化モジュール:チャート上の3つのEMA,エントリーポイント,ストップ・ロスの動きマーカーをグラフ化

戦略 の 利点

  1. 複数のタイムフレームの検証: 異なる期間の3つのEMAを通じてトレンドを確認し,取引の信頼性を向上させる
  2. スマートリスクマネジメント リスク/リターン比に基づくストップ・ロスのメカニズムは,利益を保護しながら引き上げを減らす
  3. 高度な自動化:信号生成から位置管理まで完全に自動化されたプロセスで,人間の介入を減らす
  4. 調整可能なパラメータ: EMA 期間やストップ・ロスの割合のような主要なパラメータは,異なる市場特性に最適化できます.

戦略リスク

  1. 市場変動リスク:横向市場での誤ったブレイクシグナルを頻繁に発生させる可能性があります.
  2. スリップリスク: ストップロスの実行は,急速に動いている市場でスリップが発生する可能性があります.
  3. システムリスク: 急激な市場変動により,ストップ・ロスは効果がない 解決策:
  • トレンドフィルターを追加して,不安定な市場を識別します
  • 合理的なストップ・ロスのバッファを設定する
  • 変動に適応するメカニズムを導入する

戦略の最適化方向

  1. ボリュームインジケーターを組み込む:信号品質を改善するために,EMAクロスオーバー信号にボリューム確認を追加する
  2. ダイナミックストップ・ロスの開発: 戦略の適応性を高めるため,市場の変動に基づいてストップ・ロスの距離を調整する
  3. 目標R2Rに達した後,トラッキングストップを導入して,より多くの潜在的な利益を得るために,ブレイク・イブメカニズムを最適化します.
  4. 市場環境フィルターを追加する: 異なる市場条件における戦略パラメータを調整するための傾向強度指標を設計する

概要

この戦略は,古典的なEMAクロスオーバーシステムと近代的なリスク管理方法を組み合わせて,完全なトレンドフォローする取引システムを達成する.このシステムの強みは,信頼できる信号生成メカニズムとインテリジェントなリスク制御方法にあるが,パラメータは依然として最適化され,具体的な市場特性に基づいて機能は実用的なアプリケーションで拡張する必要がある.継続的な改善と最適化によって,この戦略はさまざまな市場条件で安定したパフォーマンスを維持する可能性がある.


/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover with SL to BE", shorttitle="OmegaGalsky", overlay=true)

// Входни параметри
ema8_period = input.int(8, title="EMA 8 Period")
ema21_period = input.int(21, title="EMA 21 Period")
ema89_period = input.int(89, title="EMA 89 Period")
fixed_risk_reward = input.float(1.0, title="Risk/Reward Ratio (R2R)")
sl_percentage = input.float(0.001, title="Stop Loss Percentage", step=0.0001)
tp_percentage = input.float(0.0025, title="Take Profit Percentage", step=0.0001)

// Изчисляване на EMA
ema8 = ta.ema(close, ema8_period)
ema21 = ta.ema(close, ema21_period)
ema89 = ta.ema(close, ema89_period)

// Условия за BUY
buy_condition = ta.crossover(ema8, ema21) and close > ema89 and close > open

// Условия за SELL
sell_condition = ta.crossunder(ema8, ema21) and close < ema89 and close < open

// Вход в BUY позиция
if (buy_condition)
    stop_loss = close * (1 - sl_percentage)
    take_profit = close * (1 + tp_percentage)
    strategy.entry("BUY", strategy.long)
    strategy.exit("TP/SL", from_entry="BUY", stop=stop_loss, limit=take_profit)

// Вход в SELL позиция
if (sell_condition)
    stop_loss = close * (1 + sl_percentage)
    take_profit = close * (1 - tp_percentage)
    strategy.entry("SELL", strategy.short)
    strategy.exit("TP/SL", from_entry="SELL", stop=stop_loss, limit=take_profit)

// Логика за преместване на стоп към BE
if (strategy.position_size > 0)
    entry_price = strategy.position_avg_price
    // За LONG позиция
    if (strategy.position_size > 0 and high  >= entry_price + (entry_price * sl_percentage * fixed_risk_reward))
        strategy.exit("SL to BE", from_entry="BUY", stop=entry_price)
        label.new(bar_index, high, "SL moved to BE", color=color.green)
    // За SHORT позиция
    if (strategy.position_size < 0 and low <= entry_price - (entry_price * sl_percentage * fixed_risk_reward))
        strategy.exit("SL to BE", from_entry="SELL", stop=entry_price)
        label.new(bar_index, low, "SL moved to BE", color=color.red)

// Чертеж на EMA
plot(ema8, color=color.orange, title="EMA 8")
plot(ema21, color=color.blue, title="EMA 21")
plot(ema89, color=color.purple, title="EMA 89")


関連性

もっと