Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên nhiều chỉ số EMA (Exponential Moving Averages). Bằng cách sử dụng ba chỉ số EMA với các khoảng thời gian khác nhau (10, 30, 50), kết hợp với giá chéo và phân tích hướng xu hướng, nó xây dựng một hệ thống tín hiệu mua và bán hoàn chỉnh. Chiến lược xem xét kỹ lưỡng sự hình thành xu hướng, xác nhận và đảo ngược, nắm bắt hiệu quả các cơ hội xu hướng lớn trên thị trường.
Chiến lược sử dụng một cơ chế đánh giá phân cấp để xác định tín hiệu giao dịch: Lớp xác định xu hướng: Sử dụng các vị trí tương đối của ba EMA (10/30/50) để đánh giá hướng xu hướng. Xu hướng tăng được xác định khi EMA10 > EMA30 > EMA50; xu hướng giảm khi EMA50 > EMA30 > EMA10. 2. Lớp kích hoạt tín hiệu: Một khi xu hướng được thiết lập, các tín hiệu giao dịch được kích hoạt bằng cách chéo giá với EMA30. 3. Lớp quản lý vị trí: Khi EMA30 vượt qua EMA50 theo hướng ngược lại, nó kích hoạt các tín hiệu đóng vị trí tương ứng, cung cấp một cơ chế thoát hệ thống.
Đây là một xu hướng được thiết kế tốt theo chiến lược với logic rõ ràng. Sự kết hợp của nhiều EMA đảm bảo cả tính ổn định của chiến lược và các tín hiệu giao dịch rõ ràng. Mặc dù có một số rủi ro chậm trễ vốn có, chiến lược này cho thấy giá trị thực tế tốt thông qua các biện pháp tối ưu hóa và kiểm soát rủi ro hợp lý. Nó đặc biệt phù hợp với các nhà giao dịch tìm kiếm lợi nhuận ổn định với rủi ro được kiểm soát.
/*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")