Chiến lược này là một hệ thống giao dịch tự động dựa trên nhiều chỉ số trung bình chuyển động theo hàm số (EMA), thiết lập tín hiệu giao dịch thông qua phân tích phân cấp của EMA 5 giai đoạn, 20 giai đoạn và 50 giai đoạn.
Chiến lược dựa trên các quyết định giao dịch trên nhiều khung thời gian EMA chéo và mối quan hệ vị trí.
Đây là một hệ thống giao dịch trung bình động đa được thiết kế nghiêm ngặt, kiểm soát hiệu quả rủi ro thông qua lọc phân cấp và dừng lỗ năng động. Mặc dù nó có thể bỏ lỡ một số biến động thị trường nhanh chóng, nó hoạt động nhất quán trong các thị trường 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")