Strategi ini menghasilkan sinyal perdagangan menggunakan indikator MACD Logaritma. Ini menghitung perbedaan antara rata-rata bergerak logaritma cepat dan lambat untuk mengukur momentum pasar dan peluang.
Logika utamanya adalah:
Menghitung MA logaritma cepat (default 12) dan MA logaritma lambat (default 26)
Logaritma MACD adalah perbedaan mereka, mengungkapkan momentum pasar
Garis sinyal dihaluskan MA dari MACD (default 9)
Pergi panjang ketika MACD melintasi sinyal di atas dari bawah
Pergi short ketika MACD melintasi di bawah sinyal dari atas
Perbedaan sinyal MACD digambarkan sebagai histogram
Dibandingkan dengan MACD sederhana, MACD logaritmik dapat lebih baik menyoroti tren pertumbuhan eksponensial.
Mendeteksi pergerakan harga eksponensial menggunakan transformasi logaritma
Log MACD menyoroti informasi fluktuasi harga
Garis sinyal meluruskan MACD menjadi sinyal perdagangan
Histogram MACD secara intuitif menunjukkan arah tren
Transformasi log dapat memperkuat kebisingan harga
Sinyal yang sering, risiko perdagangan berlebihan
Tidak ada manajemen stop loss, kontrol risiko tidak lengkap
Pengurangan:
Sesuaikan parameter untuk mengurangi frekuensi sinyal
Tambahkan filter untuk menghindari sinyal dalam kondisi bergetar
Mengimplementasikan stop loss untuk mengendalikan kerugian per perdagangan
Mengoptimalkan parameter untuk stabilitas
Coba transformasi lain seperti rata-rata bergerak eksponensial
Tambahkan filter tren ke sinyal layar
Menggabungkan strategi stop loss
Menggunakan pembelajaran mesin untuk menilai keandalan sinyal
Transformasi logaritma meningkatkan kepekaan MACD untuk deteksi tren awal. Tetapi frekuensi perdagangan harus dikontrol. Dengan optimasi dalam parameter, manajemen risiko dll, strategi ini dapat menjadi sistem kuantitatif yang stabil dan unik.
/*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")