Strategi ini menggunakan persilangan dua purata bergerak eksponen (EMA) sebagai isyarat perdagangan utama, digabungkan dengan Indeks Kekuatan Relatif (RSI), Perbezaan Convergensi Purata Bergerak (MACD), dan Julat Benar Purata (ATR) sebagai penunjuk tambahan untuk meningkatkan kebolehpercayaan isyarat perdagangan. Apabila EMA cepat melintasi EMA perlahan, RSI di bawah 70, garisan MACD di atas garisan isyarat, dan nilai ATR meningkat lebih daripada 10% berbanding tempoh sebelumnya, isyarat panjang dihasilkan; sebaliknya, apabila EMA pantas melintasi EMA perlahan, RSI di atas 30, garis MACD di bawah garis isyarat, dan nilai ATR meningkat lebih daripada 10% berbanding tempoh sebelumnya, isyarat pendek dihasilkan. Strategi juga menetapkan titik berhenti kerugian dan mengambil risiko risiko.
Strategi ini menjana isyarat perdagangan yang agak boleh dipercayai dengan menggabungkan beberapa penunjuk teknikal seperti EMA, RSI, MACD, dan ATR, sambil mengawal risiko dengan menetapkan titik tetap stop loss dan mengambil keuntungan. Walaupun strategi ini masih mempunyai beberapa kekurangan, ia boleh ditingkatkan melalui pengoptimuman lanjut, seperti memperkenalkan lebih banyak penunjuk, mengoptimumkan stop loss dan mengambil keuntungan, dan menggabungkan analisis asas. Secara keseluruhan, strategi ini jelas dalam logiknya, mudah difahami dan dilaksanakan, dan sesuai untuk pemula untuk belajar dan menggunakan.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Enhanced EMA Crossover Strategy", overlay=true) // Indicators ema_fast = ema(close, 8) ema_slow = ema(close, 14) rsi = rsi(close, 14) // Correcting the MACD variable definitions [macd_line, signal_line, _] = macd(close, 12, 26, 9) atr_value = atr(14) // Entry conditions with additional filters long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1 short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1 // Adding debug information plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal") plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal") // Risk management based on a fixed number of points stop_loss_points = 100 take_profit_points = 200 // Order execution if (long_condition) strategy.entry("Long", strategy.long, comment="Long Entry") strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points) if (short_condition) strategy.entry("Short", strategy.short, comment="Short Entry") strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points) // Plotting EMAs for reference plot(ema_fast, color=color.blue, title="Fast EMA") plot(ema_slow, color=color.orange, title="Slow EMA")