Chiến lược này kết hợp các đường trung bình động và chỉ số MACD để xác định xu hướng và tạo ra tín hiệu giao dịch. Nó thuộc về một chiến lược theo xu hướng điển hình. Nó sử dụng hai đường trung bình động ZLSMA của các khung thời gian khác nhau để xác định hướng xu hướng và giao thoa MACD để tạo ra các tín hiệu mua và bán cụ thể. Điều này cho phép nó nắm bắt hiệu quả xu hướng trung và dài hạn trong khi tránh bị đánh lừa bởi tiếng ồn thị trường ngắn hạn.
Chiến lược bao gồm các thành phần chính sau:
Fast ZLSMA và Slow ZLSMA: So sánh trung bình động ZLSMA của các khung thời gian khác nhau xác định hướng xu hướng tổng thể. Đường nhanh bao gồm ZLSMA 32 giai đoạn, và đường chậm bao gồm ZLSMA 400 giai đoạn. Khi đường nhanh vượt qua đường chậm, đó là tín hiệu tăng và ngược lại.
Chỉ số MACD: MACD được tính bằng cách trừ đường chậm (EMA 26 giai đoạn) từ đường nhanh (EMA 12 giai đoạn). Đường tín hiệu là đường EMA 9 giai đoạn của MACD. Khi MACD vượt qua đường tín hiệu, đó là tín hiệu mua, và khi MACD vượt qua dưới đường tín hiệu, đó là tín hiệu bán.
Các tín hiệu giao dịch: Các tín hiệu mua và bán chỉ được tạo ra khi hướng xu hướng ZLSMA phù hợp với các tín hiệu chéo MACD. Cụ thể, đi dài khi xu hướng tăng trùng với đường chéo vàng của MACD và đi ngắn khi xu hướng giảm trùng với đường chéo chết của MACD.
Dừng lỗ và lấy lợi nhuận: Chiến lược hiện không bao gồm logic dừng lỗ và lấy lợi nhuận, cần tối ưu hóa thêm.
Sự kết hợp của việc sử dụng các đường trung bình động để xác định xu hướng chính và MACD để thời gian vào có thể lọc hiệu quả các đột phá sai và tránh bị đánh lừa bởi tiếng ồn thị trường ngắn hạn.
Những lợi thế chính của chiến lược này là:
Bắt được xu hướng: Sử dụng trung bình động của các khung thời gian khác nhau để xác định hướng xu hướng cho phép giao dịch với xu hướng và nắm bắt xu hướng trung và dài hạn một cách hiệu quả.
lọc tiếng ồn: Ứng dụng chỉ số MACD giúp lọc tiếng ồn thị trường ngắn hạn và tránh bị đánh lừa bởi các thị trường nhỏ.
Các tham số có thể tùy chỉnh: Các giai đoạn trung bình động và các tham số MACD có thể tùy chỉnh và có thể được tối ưu hóa cho các thị trường khác nhau.
Dễ thực hiện: Tất cả các chỉ số được sử dụng là các chỉ số kỹ thuật chung.
Rủi ro có thể kiểm soát được: Với lệnh dừng lỗ và lấy lợi nhuận rõ ràng, rủi ro và lợi nhuận của mỗi giao dịch có thể được kiểm soát.
Những rủi ro chính của chiến lược này là:
Xác định xu hướng sai: Nếu xu hướng chính được xác định sai, tất cả các giao dịch có thể dẫn đến lỗ.
Tối ưu hóa tham số không chính xác: Các thông số trung bình động và MACD phải được kiểm tra và tối ưu hóa kỹ lưỡng, nếu không kết quả có thể không thỏa mãn.
Thiếu lệnh dừng lỗ: Hiện tại không có lệnh dừng lỗ, gây ra nguy cơ mất mát quá lớn.
Tiềm năng lợi nhuận hạn chế: Là một chiến lược theo xu hướng, tiềm năng lợi nhuận của mỗi giao dịch là hạn chế, đòi hỏi khối lượng lớn để tăng lợi nhuận.
Tần suất giao dịch cao: Điều chỉnh tham số không đúng có thể dẫn đến tần suất giao dịch quá cao, tăng chi phí giao dịch và trượt.
Chiến lược có thể được tối ưu hóa thêm trong các khía cạnh sau:
Thêm cơ chế dừng lỗ: Thiết lập các điểm dừng lỗ thích hợp để kiểm soát chặt chẽ mức lỗ tối đa cho mỗi giao dịch.
Tối ưu hóa các thông số: Kiểm tra lại và tối ưu hóa để tìm ra kết hợp thông số chuyển động tối ưu và MACD.
Tần suất giao dịch thấp hơn: Điều chỉnh các tham số để đảm bảo tín hiệu giao dịch chỉ được tạo ra khi xu hướng rõ ràng.
Bao gồm các yếu tố khác: Các yếu tố như thay đổi khối lượng có thể được thêm vào để xác nhận xu hướng và tín hiệu.
Cải thiện thời gian nhập: Tăng cường sử dụng MACD để tăng độ chính xác nhập.
Làm cho áp dụng phổ quát: Tối ưu hóa các tham số để làm cho chiến lược áp dụng rộng rãi trên các sản phẩm khác nhau, mở rộng khả năng áp dụng.
Kết luận, chiến lược này có hiệu quả nắm bắt xu hướng trung và dài hạn thông qua sự kết hợp đơn giản nhưng hiệu quả của đường trung bình động và MACD, làm cho nó trở thành một nền tảng chiến lược giao dịch định lượng vững chắc. Nhưng các thông số cần tối ưu hóa hơn nữa, rủi ro cần kiểm soát tốt hơn và các yếu tố khác nên được kết hợp để đạt được kết quả nhất quán hơn. Nó có giá trị thực tế và có nhiều chỗ để cải thiện.
/*backtest start: 2023-11-07 00:00:00 end: 2023-11-10 05:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © veryfid //@version=5 strategy("Stratégie ZLSMA Bruno", shorttitle="Stratégie ZLSMA Bruno", overlay=false) source = close useCurrentRes = input(true, title="Use Current Chart Resolution?") smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below") sd = input(true, title="Show Dots When MacD Crosses Signal Line?") sh = input(true, title="Show Histogram?") macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?") hist_colorChange = input(true,title="MacD Histogram 4 Colors?") //res = useCurrentRes ? period : resCustom fastLength = input(12), slowLength=input(26) signalLength=input(9) fastMA = ta.ema(source, fastLength) slowMA = ta.ema(source, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) hist = macd - signal outMacD = macd outSignal = signal outHist = hist histA_IsUp = outHist > outHist[1] and outHist > 0 histA_IsDown = outHist < outHist[1] and outHist > 0 histB_IsDown = outHist < outHist[1] and outHist <= 0 histB_IsUp = outHist > outHist[1] and outHist <= 0 //MacD Color Definitions macd_IsAbove = outMacD >= outSignal macd_IsBelow = outMacD < outSignal //plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray macd_color = macd_colorChange ? macd_IsAbove ? color.lime : color.red : color.red //signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime circleYPosition = outSignal //plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4) //plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2) //plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4) plot(sd and ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color) hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white) // Paramètres de la ZLSMA length = input(32, title="Longueur") offset = input(0, title="Décalage") src = input(close, title="Source") lsma = ta.linreg(src, length, offset) lsma2 = ta.linreg(lsma, length, offset) eq = lsma - lsma2 zlsma = lsma + eq length_slow = input(400, title="Longueur") offset_slow = input(0, title="Décalage") lsma_slow = ta.linreg(src, length_slow, offset_slow) lsma2_slow = ta.linreg(lsma_slow, length_slow, offset_slow) eq_slow = lsma_slow - lsma2_slow zlsma_slow = lsma_slow + eq_slow // Paramètres de la sensibilité sensitivity = input(0.5, title="Sensibilité") // Règles de trading longCondition = zlsma < zlsma_slow and zlsma_slow < zlsma_slow[1] and zlsma > zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime//ta.crossover(zlsma, close) and ta.crossover(zlsma, zlsma[1]) // Croisement vers le haut shortCondition = zlsma > zlsma_slow and zlsma_slow > zlsma_slow[1] and zlsma < zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime //ta.crossunder(zlsma, close) and ta.crossunder(zlsma, zlsma[1]) // Croisement vers le bas // Entrée en position strategy.entry("Achat", strategy.long, when=longCondition) strategy.entry("Vente", strategy.short, when=shortCondition) botifySignalZLSMA = longCondition ? 1 : shortCondition ? -1 : 0 plot(botifySignalZLSMA, title='Botify_signal', display=display.none) // Sortie de position strategy.close("Achat", when=ta.crossunder(zlsma, close)) // Close the "Achat" position strategy.close("Vente", when=ta.crossover(zlsma, close)) // Close the "Vente" position // Tracé de la courbe ZLSMA plot(zlsma, color=color.yellow, linewidth=3) plot(zlsma_slow, color=color.red, linewidth=3)