この戦略は4つの指数関数移動平均値 (EMA) をベースとしたトレンドフォローシステムで,市場動向を特定するために9,21,50および200期EMAのクロスオーバーとアライナメントを使用し,リスク管理のための百分比ベースのストップロスの組み合わせです.この戦略は4つの移動平均値のアライナメント順序を確認し,短期EMAが長期EMAよりも高くなったときにロングポジションを入力し,リスク管理のための固定百分比ストップロスを実装しながら,ショートポジションの逆をします.
この戦略は,市場動向を評価するために,異なる期間の (9, 21, 50, 200) 4 つの EMA を採用している. 9 日間の EMA が 21 日間の EMA を上回り, 50 日間の EMA が 200 日間の EMA を上回り,強固な上昇傾向を示すとき,購入信号が生成される.逆に,反対のアライナメントは販売信号を生成する. 1 取引につき最大損失を制御するために 2% のストップ・ロスは実装される.
この戦略は,リスク制御のために固定パーセントストップロスを実装しながら,複数のEMAを通じて信頼性の高いトレンド識別を提供する包括的なトレンドフォローリングシステムである.このシステムは固有の遅延があるが,適切なパラメータ最適化と追加の指標統合によってさらに強化することができる.この戦略は,特に不安定な市場や中長期トレンドフォローリング取引に適している.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("4 EMA Strategy with Stop Loss", overlay=true) // Define the EMA lengths ema1_length = input(9, title="EMA 1 Length") ema2_length = input(21, title="EMA 2 Length") ema3_length = input(50, title="EMA 3 Length") ema4_length = input(200, title="EMA 4 Length") // Calculate the EMAs ema1 = ta.ema(close, ema1_length) ema2 = ta.ema(close, ema2_length) ema3 = ta.ema(close, ema3_length) ema4 = ta.ema(close, ema4_length) // Plot EMAs on the chart plot(ema1, color=color.blue, title="EMA 9") plot(ema2, color=color.orange, title="EMA 21") plot(ema3, color=color.green, title="EMA 50") plot(ema4, color=color.red, title="EMA 200") // Define conditions for Buy and Sell signals buy_condition = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4) sell_condition = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4) // Input stop loss percentage stop_loss_perc = input(2.0, title="Stop Loss %") // Execute buy signal if (buy_condition) strategy.entry("Buy", strategy.long) // Set stop loss at a percentage below the entry price strategy.exit("Sell", "Buy", stop=strategy.position_avg_price * (1 - stop_loss_perc / 100)) // Execute sell signal if (sell_condition) strategy.entry("Sell", strategy.short) // Set stop loss at a percentage above the entry price strategy.exit("Cover", "Sell", stop=strategy.position_avg_price * (1 + stop_loss_perc / 100))