Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch

Tác giả:ChaoZhang, Ngày: 2024-05-24 18:14:37
Tags:MACDEMASMA

img

Tổng quan

Chiến lược này dựa trên phiên bản không trễ của chỉ số MACD (Moving Average Convergence Divergence), nắm bắt xu hướng ngắn hạn bằng cách phản ứng nhanh với những thay đổi giá, cho phép giao dịch tần số cao. Chiến lược sử dụng hai đường trung bình động với các khoảng thời gian khác nhau (đường nhanh và chậm) để xây dựng chỉ số MACD và giới thiệu một thuật toán không trễ để loại bỏ sự chậm trễ giữa chỉ số và giá, cải thiện tính kịp thời của tín hiệu. Ngoài ra, sự chéo chéo của đường tín hiệu và đường MACD được sử dụng làm tín hiệu mua và bán, và cảnh báo được thiết lập để giúp các nhà giao dịch nắm bắt các cơ hội giao dịch kịp thời.

Nguyên tắc chiến lược

  1. Tính toán EMA (Exponential Moving Average) hoặc SMA (Simple Moving Average) của đường nhanh (định dạng 12 giai đoạn) và đường chậm (định dạng 26 giai đoạn).
  2. Sử dụng thuật toán không trễ để làm mịn đôi các đường nhanh và chậm, loại bỏ sự chậm trễ giữa chỉ số và giá.
  3. Đường MACD được hình thành bởi sự khác biệt giữa đường nhanh không chậm và đường chậm không chậm.
  4. Đường tín hiệu được hình thành bởi EMA (đường mặc định 9 thời gian) hoặc SMA của đường MACD.
  5. Biểu đồ MACD được hình thành bởi sự khác biệt giữa đường MACD và đường tín hiệu, màu xanh lá cây đại diện cho các giá trị dương và màu đỏ đại diện cho các giá trị âm.
  6. Khi đường MACD băng qua đường tín hiệu từ dưới và điểm chéo nằm dưới trục không, một tín hiệu mua (điểm xanh) được tạo ra.
  7. Khi đường MACD băng qua đường tín hiệu từ trên và điểm chéo nằm trên trục không, một tín hiệu bán (điểm đỏ) được tạo ra.
  8. Chiến lược tự động đặt lệnh dựa trên tín hiệu mua và bán và kích hoạt cảnh báo tương ứng.

Phân tích lợi thế

  1. Các thuật toán không trễ hiệu quả loại bỏ sự chậm trễ giữa chỉ số và giá, cải thiện tính kịp thời và chính xác của tín hiệu.
  2. Việc thiết kế các đường trung bình động kép có thể nắm bắt tốt hơn xu hướng thị trường và thích nghi với môi trường thị trường khác nhau.
  3. Biểu đồ MACD trực quan phản ánh sự so sánh giữa các lực tăng và giảm, hỗ trợ các quyết định giao dịch.
  4. Các chức năng đặt lệnh tự động và cảnh báo giúp các nhà giao dịch thuận tiện nắm bắt các cơ hội giao dịch kịp thời, cải thiện hiệu quả giao dịch.

Phân tích rủi ro

  1. Trong các thị trường biến động, các tín hiệu chéo thường xuyên có thể dẫn đến giao dịch quá mức và thua lỗ.
  2. Cài đặt tham số không chính xác có thể gây ra sự biến dạng tín hiệu và ảnh hưởng đến hiệu suất chiến lược.
  3. Chiến lược dựa trên dữ liệu lịch sử để tính toán và có khả năng thích nghi kém với các sự kiện đột ngột và các sự kiện thiên nga đen.

Hướng tối ưu hóa

  1. Đưa ra các chỉ số xác nhận xu hướng, chẳng hạn như ADX, để lọc các tín hiệu sai trong thị trường biến động.
  2. Tối ưu hóa các tham số để tìm sự kết hợp tốt nhất của các giai đoạn đường nhanh và chậm và các giai đoạn đường tín hiệu, cải thiện tính ổn định của chiến lược.
  3. Kết hợp các chỉ số kỹ thuật hoặc các yếu tố cơ bản khác để xây dựng một mô hình đa yếu tố, cải thiện lợi nhuận điều chỉnh rủi ro của chiến lược.
  4. Thiết lập các cơ chế dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro giao dịch duy nhất.

Tóm lại

Chiến lược giao dịch MACD Dual Crossover Zero Lag đạt được giao dịch tần số cao bằng cách nhanh chóng phản ứng với những thay đổi giá và nắm bắt xu hướng ngắn hạn. thuật toán zero-lag và thiết kế trung bình di chuyển kép cải thiện tính kịp thời và chính xác của các tín hiệu. Chiến lược có một số ưu điểm nhất định, chẳng hạn như tín hiệu trực quan và hoạt động thuận tiện, nhưng cũng phải đối mặt với những rủi ro như quá mức giao dịch và độ nhạy của tham số. Trong tương lai, chiến lược có thể được tối ưu hóa bằng cách giới thiệu các chỉ số xác nhận xu hướng, tối ưu hóa tham số, mô hình đa yếu tố, v.v., để cải thiện độ bền và lợi nhuận của chiến lược.


/*backtest
start: 2024-04-23 00:00:00
end: 2024-05-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close

fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)

// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength) 
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength) 
zerolagEMA = ((2 * ma1) - ma2)

// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)

// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA 

// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2

hist = ZeroLagMACD - signal

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')

ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red

// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')

// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)

// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
    strategy.entry("Buy", strategy.long)
    alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)


Có liên quan

Thêm nữa