Triple EMA Trend Following Strategy là một chiến lược rất phù hợp để theo dõi xu hướng thị trường. Nó sử dụng ba EMA của các giai đoạn khác nhau làm tín hiệu giao dịch để thiết lập các vị trí dài hoặc ngắn khi có sự xác nhận xu hướng đầy đủ.
Ưu điểm của chiến lược này là nó có thể giảm các tín hiệu sai và đảm bảo sức mạnh xu hướng đầy đủ trước khi nhập vào một vị trí. Đồng thời, nó có một hệ thống dừng lỗ thích nghi có thể dừng lại dựa trên biến động thị trường, do đó đạt được quản lý rủi ro tốt hơn.
Chiến lược này sử dụng các EMA 7-, 14 và 21 giai đoạn làm chỉ số tín hiệu đầu vào.
Thiết kế này có thể giảm tín hiệu sai và đảm bảo xu hướng đủ rõ ràng trước khi vào.
Chiến lược này sử dụng một hệ thống dừng lỗ thích nghi dựa trên ATR và giảm tối đa. Nó tính biến động giá trong thời gian thực và thiết lập các đường dừng lỗ phù hợp. Cụ thể, nó tính toán một số lần số nhất định của ATR như vùng đệm dừng lỗ.
Trong một xu hướng tăng, đường dừng lỗ sẽ di chuyển lên với mức cao mới, với hiệu ứng theo đuổi tốt. Khi giá giảm trở lại điểm thấp của vùng đệm, đường dừng lỗ sẽ được kích hoạt để đóng các vị trí. Điều này có thể kiểm soát rủi ro dừng lỗ theo điều kiện thị trường.
Chiến lược này sử dụng phương pháp lấy lợi nhuận theo tỷ lệ phần trăm cố định. Sau khi mở một vị trí, một đường lấy lợi nhuận sẽ được đặt ở một tỷ lệ phần trăm nhất định trên giá nhập cảnh. Khi giá tăng lên đến đường lấy lợi nhuận, vị trí sẽ được đóng để lấy lợi nhuận.
Lợi ích của tỷ lệ lợi nhuận cố định này là nó cho phép đặt trước mức lợi nhuận mục tiêu sẽ thỏa mãn việc thoát khỏi một khi đạt được. Nó cũng tránh rủi ro giá giảm lại. tỷ lệ lợi nhuận có thể được điều chỉnh khi cần thiết.
Có thể tránh mở các vị trí mù quáng trên thị trường biến động bằng cách kết hợp với các chỉ số đánh giá xu hướng; cũng có thể sử dụng các phương pháp chuyển động lợi nhuận hoặc tỷ lệ lợi nhuận để làm cho các phương pháp lợi nhuận linh hoạt hơn.
Chiến lược cũng có thể được tối ưu hóa trong các khía cạnh sau:
Sử dụng nhiều chỉ số hơn để xác định thời gian nhập cảnh, chẳng hạn như MACD, KD vv, tránh bị mắc kẹt trong thị trường biến động.
Cố gắng di chuyển lấy lợi nhuận, hoặc tỷ lệ lợi nhuận lấy lợi nhuận phương pháp, để làm cho lấy lợi nhuận phương pháp linh hoạt hơn.
Thêm cơ chế theo dõi giảm xuống phương pháp dừng lỗ, cho phép theo dõi các điểm thấp hơn một lần nữa khi giá giảm lại, do đó kiểm soát rủi ro.
Điều chỉnh các tham số thời gian EMA dựa trên các đặc điểm của các sản phẩm khác nhau, tối ưu hóa đánh giá xu hướng.
Thêm mô-đun kích thước vị trí, có thể điều chỉnh theo kích thước giao dịch dựa trên tỷ lệ sử dụng quỹ.
Triple EMA Trend Following Strategy là một chiến lược theo xu hướng rất thực tế. Nó có khả năng đánh giá xu hướng mạnh mẽ, đồng thời cũng có cơ chế lấy lợi nhuận và dừng lỗ thích nghi có thể tự động quản lý lệnh. Từ góc độ tối ưu hóa, các hệ thống lấy lợi nhuận và dừng lỗ có thể được cải thiện hơn nữa để điều chỉnh dựa trên điều kiện thị trường thời gian thực.
/*backtest start: 2023-01-01 00:00:00 end: 2023-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" ema_1 = ema(close, input(7)) ema_2 = ema(close, input(12)) ema_3 = ema(close, input(21)) Take_profit= ((input (4))/100) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) length = input(20, "Length", minval = 2) src = input(close, "Source") factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25) volStop(src, atrlen, atrfactor) => var max = src var min = src var uptrend = true var stop = 0.0 atrM = nz(atr(atrlen) * atrfactor, tr) max := max(max, src) min := min(min, src) stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != nz(uptrend[1], true) max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] [vStop, uptrend] = volStop(src, length, factor) go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3) closeLong = close > longTakeProfit or crossunder(close, vStop) //Entry strategy.entry(id="long", long = true, when = go_long and window()) //Exit strategy.close("long", when = closeLong and window()) plot(vStop,"Vstop", color.black, linewidth=2) plot(ema_1,"EMA Short", color.green, linewidth=1) plot(ema_2,"EMA Mid", color.purple, linewidth=1) plot(ema_3,"EMA Long", color.red, linewidth=1)