
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên trung bình di chuyển chỉ số bốn lần ((EMA) để xác định xu hướng thị trường bằng cách chéo và sắp xếp các EMA 9, 21, 50 và 200 chu kỳ và kiểm soát rủi ro kết hợp với tỷ lệ phần trăm dừng. Chiến lược xác định hướng xu hướng thị trường bằng cách đánh giá thứ tự của bốn đường trung bình, tham gia nhiều hơn khi đường trung bình ngắn hạn nằm trên đường trung bình dài hạn, ngược lại là trống, đồng thời thiết lập tỷ lệ phần trăm dừng cố định để kiểm soát rủi ro.
Chiến lược sử dụng các đường trung bình di chuyển chỉ số của bốn chu kỳ khác nhau (9, 21, 50, 200) để đánh giá xu hướng thị trường bằng cách quan sát mối quan hệ giữa các đường trung bình này. Khi EMA ngày 9 nằm trên EMA ngày 21, EMA ngày 21 nằm trên EMA ngày 50, EMA ngày 50 nằm trên EMA ngày 200, hệ thống cho rằng thị trường đang có xu hướng tăng mạnh và phát đi nhiều.
Đây là một hệ thống giao dịch theo dõi xu hướng có cấu trúc hoàn chỉnh, cung cấp cơ chế nhận dạng xu hướng đáng tin cậy hơn bằng cách sử dụng kết hợp nhiều đường trung bình, đồng thời sử dụng tỷ lệ dừng cố định để kiểm soát rủi ro. Mặc dù hệ thống có một số chậm trễ, nhưng bằng cách tối ưu hóa tham số hợp lý và bổ sung các chỉ số bổ sung, bạn có thể nâng cao hơn nữa sự ổn định và lợi nhuận của chiến lược.
/*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))