
Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada moving average (EMA) multi-indeks. Dengan menggunakan tiga garis EMA dengan periode yang berbeda (EMA 10, 30, 50), kombinasi antara penembusan harga dan penilaian arah tren, sistem sinyal jual beli yang lengkap dibangun. Desain strategi mempertimbangkan pembentukan, konfirmasi, dan konversi tren, sehingga dapat menangkap peluang tren utama di pasar secara efektif.
Strategi ini menggunakan mekanisme penilaian bertingkat untuk menentukan sinyal perdagangan:
Ini adalah strategi pelacakan tren yang dirancang dengan logika yang jelas dan logis. Dengan penggunaan kombinasi dari beberapa garis rata-rata, strategi ini memastikan stabilitas strategi dan memberikan sinyal perdagangan yang jelas. Meskipun ada risiko keterlambatan tertentu, tetapi dengan pengoptimalan dan pengendalian risiko yang masuk akal, strategi secara keseluruhan menunjukkan nilai praktis yang baik.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © banyat6913
//@version=5
strategy("EMA Trend Strategy", overlay=true)
// Input Parameters
ema_short_length = input.int(10, title="EMA Short Length", minval=1)
ema_mid_length = input.int(30, title="EMA Mid Length", minval=1)
ema_long_length = input.int(50, title="EMA Long Length", minval=1)
// Calculate EMA
ema_short = ta.ema(close, ema_short_length)
ema_mid = ta.ema(close, ema_mid_length)
ema_long = ta.ema(close, ema_long_length)
// **TREND UP**
// 1. EMA 10 > EMA 30 > EMA 50
uptrend_condition = ema_short > ema_mid and ema_mid > ema_long
// 2. Bullish Candle Crossing Up EMA 30
bullish_candle = close > open
cross_up_ema_mid = ta.crossover(close, ema_mid)
// 3. If EMA 30 crosses down EMA 50 -> Close Buy Order
ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long)
// Buy Signal
buy_signal = uptrend_condition and cross_up_ema_mid
// Sell Signal for closing Buy Order
close_buy_signal = ema_30_cross_down_50
// **TREND DOWN**
// 1. EMA 50 > EMA 30 > EMA 10
downtrend_condition = ema_long > ema_mid and ema_mid > ema_short
// 2. Bearish Candle Crossing Down EMA 30
bearish_candle = close < open
cross_down_ema_mid = ta.crossunder(close, ema_mid)
// 3. If EMA 30 crosses up EMA 50 -> Close Sell Order
ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long)
// Sell Signal
sell_signal = downtrend_condition and cross_down_ema_mid
// Buy Signal for closing Sell Order
close_sell_signal = ema_30_cross_up_50
// Backtesting Logic
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (close_buy_signal)
strategy.close("Buy")
if (sell_signal)
strategy.entry("Sell", strategy.short)
if (close_sell_signal)
strategy.close("Sell")
// Plot EMA Lines
plot(ema_short, color=color.blue, title="EMA 10")
plot(ema_mid, color=color.orange, title="EMA 30")
plot(ema_long, color=color.green, title="EMA 50")
// Plot Buy and Sell Signals on Chart
plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal")
plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal")
plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal")
plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")