Chiến lược này theo dõi xu hướng bằng cách tính toán hai đường trung bình động, DEMA và TEMA, và thiết lập các vị trí dài hoặc ngắn khi chúng tạo ra thập tự vàng hoặc thập tự chết.
Logic cốt lõi của chiến lược này là xác định hướng xu hướng dựa trên sự chéo chéo giữa hai đường trung bình động động, DEMA và TEMA.
DEMA viết tắt của Double Exponential Moving Average. Nó kết hợp tính năng làm mịn cân của EMA và tối ưu hóa vấn đề chậm của EMA. Công thức của nó là:
DEMA = 2*EMA(CLOSE, N) - EMA(EMA(CLOSE, N), N)
Ở đây N là Demalength.
TEMA là viết tắt của Triple Exponential Moving Average. Nó sử dụng trượt hàm số ba để giảm sự tụt hậu của các đường trung bình động. Công thức của nó là:
EMA1 = EMA ((CLOSE, Temalength) EMA2 = EMA ((EMA1, Temalength) EMA3 = EMA ((EMA2, Temalength) TEMA = 3EMA1 - 3EMA2 + EMA3
Khi TEMA vượt qua DEMA, nó được coi là tín hiệu chéo vàng để đi dài. Khi TEMA vượt qua dưới DEMA, nó được coi là tín hiệu chéo chết để đi ngắn.
Ngoài ra, chiến lược thiết lập delayBars để đảm bảo tính hợp lệ của tín hiệu và tránh tín hiệu sai.
Cuối cùng, chiến lược này áp dụng logic kiểm tra kép. Nó sẽ kiểm tra xem vị trí đối diện có cần phải được đóng trước khi mở các giao dịch mới không. Điều này tránh được rủi ro của các vị trí hai hướng.
So với EMA và SMA truyền thống, DEMA và TEMA là các MMA động nhạy cảm hơn có thể nhanh chóng nắm bắt sự thay đổi xu hướng, do đó cải thiện độ chính xác của các phán đoán xu hướng thị trường.
Các tham số delayBars buộc chiến lược phải chờ một khoảng thời gian sau khi tín hiệu xuất hiện trước khi nhập vào các vị trí.
Bằng cách kiểm tra xem vị trí đối diện có cần phải được đóng trước khi mở các giao dịch mới không, chiến lược tránh giữ các vị trí hai hướng và giảm thiểu lỗ từ các giao dịch phòng ngừa rủi ro.
Chiến lược này chủ yếu dựa trên sự chéo chéo giữa các chỉ số thị trường, một chỉ số kỹ thuật chung, để xác định xu hướng và tín hiệu.
Trong một thị trường có biến động bên cạnh lớn, MAs có thể thường xuyên giao nhau và tạo ra các tín hiệu sai gây ra tổn thất.
Các giải pháp là tạm dừng chiến lược khi xác định xu hướng bên, hoặc điều chỉnh đúng các thông số MA và thời gian trì hoãn.
Chiến lược chỉ theo dõi xu hướng giá và không thể dự đoán những bẫy ngắn hạn hoặc sự đảo ngược xu hướng do các sự kiện lớn.
Các giải pháp là kết hợp các chỉ số khác để đánh giá rủi ro, hoặc giảm đúng kích thước vị trí.
Ngoài DEMA và TEMA, thử nghiệm sự kết hợp của SMA, EMA và các MAs nâng cao khác để tìm ra những cái phù hợp nhất cho thị trường này.
Chạy tối ưu hóa để tìm ra chiều dài MA tối ưu và thời gian trì hoãn tín hiệu cho các tín hiệu giao dịch chính xác hơn.
Với các đặc điểm sản phẩm khác nhau, hãy tìm sự kết hợp phù hợp giữa chiều dài MA, thời gian trì hoãn cho biến động giá và xu hướng của chúng.
Ví dụ: sử dụng Bollinger Bands để đánh giá sự biến động và mức giá để tránh thị trường whipsaw. Sử dụng các chỉ số động lực để đánh giá điểm mạnh của xu hướng.
Đây là một xu hướng cơ bản theo chiến lược dựa trên giao thoa MA năng động giữa DEMA và TEMA. Ưu điểm của nó là sự ổn định cao, độ tin cậy và tính phổ biến. Nhưng nó cũng có một số khả năng phát hiện đảo ngược chậm và yếu. Bài viết này cung cấp một phân tích toàn diện về ưu, nhược điểm và hướng tối ưu hóa của nó, phục vụ như là tài liệu tham khảo có giá trị để sử dụng chiến lược này. Nhìn chung, nó cung cấp một ví dụ điển hình về thiết kế chiến lược giao dịch định lượng xứng đáng nghiên cứu thêm.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jacobdickson255 strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0) //Dema Scripting Demalength = input.int(230, minval=1) src = close e1 = ta.ema(src, Demalength) e2 = ta.ema(e1, Demalength) dema = 2 * e1 - e2 plot(dema, "DEMA", color=#43A047) //Tema Scripting Temalength = input.int(210, minval=1) ema1 = ta.ema(close, Temalength) ema2 = ta.ema(ema1, Temalength) ema3 = ta.ema(ema2, Temalength) tema = 3 * (ema1 - ema2) + ema3 plot(tema, "TEMA", color=#2962FF) delayBars = input(5, title="Bar Delay") var int lastTradeBar = na longCondition = ta.crossover(tema, dema) longExit = ta.crossunder(tema, dema) shortCondition = ta.crossunder(tema, dema) shortExit = ta.crossover(tema, dema) // Exit conditions should be checked before entry conditions // Close short position if a long condition is present if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short strategy.close("Short") // Close long position if a short condition is present if ((longExit and strategy.position_size > 0)) strategy.close("Long") // Now check for entry conditions if (longCondition) strategy.entry("Long", strategy.long) lastTradeBar := bar_index if (shortCondition) strategy.entry("Short", strategy.short) lastTradeBar := bar_index