Strategi ini adalah strategi pengesanan trend berdasarkan EMA dan penapis EMA tempoh 200 hari. Idea utamanya adalah menggunakan EMA jangka masa yang berlainan untuk mengenal pasti arah trend pasaran, dan membuat banyak kedudukan apabila trend meningkat dan harga di atas EMA tempoh 200 hari. Ini memastikan bahawa perdagangan hanya dilakukan dalam trend kenaikan yang kuat untuk memahami pergerakan kenaikan yang berterusan, sambil menggunakan mekanisme stop loss dan stop loss untuk mengawal risiko.
Strategi ini menggunakan tiga bingkai masa iaitu 5 minit, 15 minit dan 30 minit untuk mengira EMA pantas dan EMA perlahan. Dengan membandingkan EMA pantas dan EMA lambat pada setiap bingkai masa, arah trend dalam bingkai masa itu dapat dipastikan. Kemudian, isyarat trend dari tiga bingkai masa dijumlahkan untuk mendapatkan isyarat trend komprehensif. Apabila isyarat trend komprehensif adalah 3 (iaitu semua bingkai masa adalah isyarat kenaikan) dan harga penutupan semasa berada di atas EMA 200 minit 5 minit; apabila isyarat trend komprehensif lebih rendah daripada 3 atau apabila harga jatuh di bawah EMA 200 minit 5 minit; strategi ini diletakkan di posisi yang rata.
Strategi ini menentukan arah trend dengan membandingkan EMA pada pelbagai bingkai masa, sambil menggunakan EMA tempoh 200 sebagai penapis trend, dan membina banyak kedudukan untuk menangkap pergerakan bullish yang kuat apabila trend jelas ke atas dan harga di atas garis purata jangka panjang. Keadaan pembukaan yang ketat dan stop loss yang tetap membantu mengawal risiko. Tetapi strategi ini mungkin bertindak balas lambat pada titik perubahan trend, dan posisi stop loss yang tetap, yang mempunyai keterbatasan dalam menangani turun naik pasaran secara tiba-tiba. Masa depan boleh meningkatkan fleksibiliti dan kestabilan strategi dengan memperkenalkan lebih banyak bingkai masa, mengoptimumkan stop loss, memasukkan lebih banyak isyarat dagangan, mengoptimumkan parameter, dan lain-lain, yang membolehkan mereka memahami peluang pasaran dan mengawal risiko dengan lebih baik.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1) // Inputs fast_length = input.int(9, title="Fast EMA Length", minval=1) slow_length = input.int(21, title="Slow EMA Length", minval=1) filter_length_200 = input.int(200, title="200 EMA Length", minval=1) stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100 take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100 // Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) // Calculate 200 EMA for the 5-minute timeframe ema_200_5min = ta.ema(close, filter_length_200) // Determine the trend for each timeframe trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1 trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1 trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1 // Combine trend signals combined_trend = trend_5min + trend_15min + trend_30min // Define entry and exit conditions with 200 EMA filter enter_long = combined_trend == 3 and close > ema_200_5min exit_long = combined_trend < 3 or close < ema_200_5min // Plot EMAs for the 5-minute timeframe plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min") plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min") plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min") // Strategy execution if (enter_long) strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc)) if (exit_long) strategy.close("Long")