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

トレーリング・プロフィート・ロック付きのマルチEMA自動取引システム

作者: リン・ハーンチャオチャン,日付: 2024年4月12日15時35分32秒
タグ:エイママルチ

img

概要

この戦略は,複数の指数関数移動平均値 (EMA) をベースとした自動化された取引システムで,5期,20期および50期EMAsの階層的分析を通じて取引信号を確立する.このシステムのユニークなデザインは,高値,低値,閉値に基づく複数のEMAを組み込み,ダイナミックなストップ損失とトラッキング利益メカニズムと組み合わせ,利益を確保しながらリスクを効果的に制御する.

戦略の原則

戦略は,複数の時間枠EMAクロスオーバーと位置関係に基づいて取引決定をします.特に:

  1. 5期,20期 (高値,低値,閉場価格に基づいて) と50期 EMA を使用します.
  2. 入場条件は,すべての指標が明瞭な上昇傾向を示す必要がある. 50EMA < 20EMA ((低) < 20EMA ((近) < 20EMA ((高) < 5EMA.
  3. 現在の価格がすべての EMA を上回るよう要求し,強い傾向を確認する
  4. エクジットは2つのメカニズムを使用します.価格が5期間のEMAを下回ると利益を得たり,20期間のEMAを下回るとストップロスを取る.

戦略 の 利点

  1. 階層的なフィルタリングメカニズムは 誤った信号を大幅に減少させます
  2. 複数のEMAクロスオーバーの確認により取引の正確性が向上する
  3. ダイナミックストップロスのポジションは,市場の変動に合わせて調整されます.
  4. 完全に自動化されたシステムで 感情的な干渉を排除します
  5. 利回りメカニズムは 利益の確保に有効です

戦略リスク

  1. 横向市場での取引が頻繁になる可能性があります
  2. EMAは本質的に遅い指標で,市場開始点を見逃す可能性があります
  3. 複数の条件により,いくつかの取引機会が失われる可能性があります.
  4. 20EMAの低点でのストップ・ロスは比較的緩やかかもしれません.

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

  1. 信号信頼性を向上させるため,ボリューム確認メカニズムを追加できます.
  2. ダイナミックなポジションサイズ化のために波動性指標を組み込むことを検討する.
  3. より柔軟な利益取得制度を導入し,部分的なポジション削減など
  4. RSIのような振動器と組み合わせてエントリータイミングを最適化できます
  5. 弱い市場をフィルタリングするためにトレンド強さの判断を追加することを検討します

概要

これは厳格に設計された複数の移動平均取引システムで,階層的なフィルタリングとダイナミックストップ・ロスを通してリスクを効果的に制御する.いくつかの急速な市場の動きを見逃しても,トレンド市場では一貫してパフォーマンスを発揮する.異なる市場の特徴に応じてパラメータを調整し,信頼性を向上させるためにボリュームやその他の補助指標を追加することを検討することを推奨する.この戦略は,中長期投資で安定したリターンを求める投資家に適しています.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Automated EMA Strategy with Hierarchical Conditions", overlay=true)

// Inputs for EMA lengths
length_5 = 5
length_20 = 20
length_50 = 50

// Calculating EMAs
ema_5 = ta.ema(close, length_5)
ema_20_high = ta.ema(high, length_20)
ema_20_low = ta.ema(low, length_20)
ema_20_close = ta.ema(close, length_20)
ema_50 = ta.ema(close, length_50)

// Buy condition: 50 EMA < 20 EMA (Close) < 20 EMA (High) < 20 EMA (Low) < 5 EMA
// and LTP above all EMAs
buy_condition = ema_50 < ema_20_low and ema_20_low < ema_20_close and ema_20_close < ema_20_high and ema_20_high < ema_5 and close > ema_5 and close > ema_20_close and close > ema_20_high and close > ema_20_low and close > ema_50

// Stop-loss and target levels
stop_loss = ema_20_low

// Target condition: Close below 5 EMA
target_condition = close < ema_5

// Check if there's an open position
is_in_position = strategy.position_size > 0

// Execute Buy Signal only if no position is open
if (buy_condition and not is_in_position)
    strategy.entry("Buy", strategy.long)

// Exit conditions: Stop-loss or target (close below 5 EMA)
if (is_in_position and (target_condition or close < stop_loss))
    strategy.close("Buy")

// Plotting the EMAs
plot(ema_5, color=color.blue, title="5 EMA")
plot(ema_20_high, color=color.green, title="20 EMA (High)")
plot(ema_20_low, color=color.red, title="20 EMA (Low)")
plot(ema_20_close, color=color.purple, title="20 EMA (Close)")
plot(ema_50, color=color.orange, title="50 EMA")


関連性

もっと