Chiến lược này tạo ra các tín hiệu giao dịch bằng cách sử dụng chỉ số MACD logarithmic. Nó tính toán sự khác biệt giữa trung bình động logarithmic nhanh và chậm để đánh giá đà và cơ hội thị trường.
Lý lẽ chính là:
Tính toán MA logaritm nhanh (bên mặc định 12) và MA logaritm chậm (bên mặc định 26)
Logarithmic MACD là sự khác biệt của chúng, thể hiện đà thị trường
Đường tín hiệu được làm mịn MA của MACD (bên mặc định 9)
Đi dài khi MACD vượt qua trên tín hiệu từ dưới
Đi ngắn khi MACD vượt dưới tín hiệu từ trên
Sự khác biệt tín hiệu MACD được vẽ dưới dạng biểu đồ
So với MACD đơn giản, MACD logaritm có thể làm nổi bật các xu hướng tăng trưởng theo cấp số nhân tốt hơn.
Phát hiện các biến động giá theo cấp số nhân bằng cách sử dụng biến đổi logaritm
Log MACD làm nổi bật thông tin biến động giá
Đường tín hiệu làm mịn MACD thành tín hiệu giao dịch
Biểu đồ MACD trực quan cho thấy hướng xu hướng
Biến đổi log có thể khuếch đại tiếng ồn giá
Các tín hiệu thường xuyên, rủi ro giao dịch quá mức
Không có quản lý dừng lỗ, kiểm soát rủi ro không đầy đủ
Hạn chế:
Điều chỉnh các thông số để giảm tần số tín hiệu
Thêm bộ lọc để tránh tín hiệu trong điều kiện hỗn loạn
Thực hiện dừng lỗ để kiểm soát lỗ cho mỗi giao dịch
Tối ưu hóa các tham số cho sự ổn định
Hãy thử các biến đổi khác như trung bình chuyển động theo hàm số nhân
Thêm bộ lọc xu hướng vào tín hiệu màn hình
Kết hợp các chiến lược dừng lỗ
Sử dụng máy học để đánh giá độ tin cậy tín hiệu
Biến đổi logarithmic làm tăng độ nhạy của MACD để phát hiện xu hướng sớm. Nhưng tần suất giao dịch nên được kiểm soát. Với tối ưu hóa các thông số, quản lý rủi ro vv, chiến lược này có thể trở thành một hệ thống định lượng ổn định và độc đáo.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Logarithmic Moving Average Convergence Divergence Strategy", shorttitle="LMACD Strategy") // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", defval=false) sma_signal = input(title="Simple MA(Signal Line)", defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) lmacd = log(fast_ma) - log(slow_ma) signal = sma_signal ? sma(lmacd, signal_length) : ema(lmacd, signal_length) hist = lmacd - signal plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(lmacd, title="LMACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) if (crossover(hist, 0)) strategy.entry("Long", strategy.long, comment="LMACD long") if (crossunder(hist, 0)) strategy.entry("Short", strategy.short, comment="LMACD short")