
Strategi ini adalah sistem perdagangan automatik berdasarkan purata bergerak pelbagai indeks ((EMA) yang membina isyarat perdagangan melalui penilaian berlapis pada EMA 5 kitaran, 20 kitaran dan 50 kitaran. Reka bentuk sistem ini unik kerana menggunakan penilaian EMA berganda berdasarkan harga tinggi, rendah dan ditutup, dan menggabungkan mekanisme berhenti kehilangan dan berhenti yang dinamik untuk mengawal risiko dengan berkesan sambil mengunci keuntungan.
Strategi membuat keputusan dagangan berdasarkan hubungan EMA silang dan kedudukan dalam pelbagai tempoh masa. Secara khusus:
Ini adalah sistem perdagangan linear ganda yang dirancang dengan teliti, mengawal risiko dengan berkesan melalui penapisan bertingkat dan hentian rugi dinamik. Walaupun mungkin terlepas beberapa pergerakan cepat, ia stabil dalam pasaran yang sedang tren. Ia disyorkan untuk menyesuaikan parameter dengan sewajarnya mengikut ciri-ciri pasaran yang berbeza, dan mempertimbangkan untuk menambah petunjuk tambahan seperti jumlah transaksi untuk meningkatkan kebolehpercayaan.
/*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")