
Chiến lược này là một hệ thống giao dịch tự động dựa trên moving average ((EMA) của nhiều chỉ số, tạo ra tín hiệu giao dịch bằng cách phân chia các phán quyết về EMA 5 chu kỳ, 20 chu kỳ và 50 chu kỳ. Hệ thống được thiết kế độc đáo bằng cách sử dụng các phán quyết EMA đa dạng dựa trên giá cao, thấp và đóng cửa, kết hợp với các cơ chế dừng lỗ động và theo dõi dừng để kiểm soát rủi ro một cách hiệu quả và đồng thời khóa lợi nhuận.
Chiến lược dựa trên nhiều chu kỳ thời gian để đưa ra quyết định giao dịch dựa trên mối quan hệ giao dịch giữa EMA và vị trí. Cụ thể:
Đây là một hệ thống giao dịch đa phương tiện được thiết kế nghiêm ngặt, kiểm soát rủi ro hiệu quả thông qua lọc phân tầng và dừng lỗ động. Mặc dù có thể bỏ lỡ một số biến động nhanh, nhưng hoạt động ổn định trong thị trường đang có xu hướng.
/*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")