Diese Strategie erzeugt Handelssignale mithilfe des logarithmischen MACD-Indikators. Sie berechnet die Differenz zwischen schnellen und langsamen logarithmischen gleitenden Durchschnitten, um die Marktdynamik und -chancen zu messen.
Die Hauptlogik lautet:
Berechnung der schnellen logarithmischen MA (Standard 12) und der langsamen logarithmischen MA (Standard 26)
Logarithmischer MACD ist ihre Differenz, die Marktdynamik ausdrückt
Die Signallinie ist glatter MA des MACD (Standard 9)
Gehen Sie lang, wenn der MACD über das Signal von unten geht
Gehen Sie kurz, wenn der MACD unter dem Signal von oben kreuzt
MACD-Signaldifferenz als Histogramm dargestellt
Im Vergleich zum einfachen MACD kann der logarithmische MACD exponentielle Wachstumstrends besser hervorheben.
Erkennt exponentielle Preisbewegungen mit logarithmischer Transformation
Der MACD-Log zeigt Informationen über Preisschwankungen.
Signallinie glättet MACD in Handelssignale
Das MACD-Histogramm zeigt intuitiv die Trendrichtung.
Die Log-Transformation kann das Preisgeräusch verstärken
Häufige Signale, Risiken eines übermäßigen Handels
Keine Stop-Loss-Verwaltung, unvollständige Risikokontrolle
Abmilderung:
Anpassung der Parameter zur Verringerung der Signalfrequenz
Fügen Sie Filter hinzu, um Signale unter schüttelnden Bedingungen zu vermeiden
Einführung von Stop Loss zur Kontrolle von Verlusten pro Handel
Optimierung der Stabilitätsparameter
Versuchen Sie andere Transformationen wie exponentiellen gleitenden Durchschnitt
Hinzufügen eines Trendfilters zu Bildschirmsignalen
Einbeziehung von Stop-Loss-Strategien
Verwenden Sie maschinelles Lernen, um die Signalverlässlichkeit zu beurteilen
Die logarithmische Transformation erhöht die Empfindlichkeit des MACD
/*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")