Logarithmic Moving Average Convergence Divergence Chiến lược

Tác giả:ChaoZhang, Ngày: 2023-09-21 15:38:05
Tags:

Tổng quan

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.

Chiến lược logic

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.

Ưu điểm

  • 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

Rủi ro

  • 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

Cơ hội gia tăng

  • 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

Kết luận

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")

Thêm nữa