Cette stratégie génère des signaux de trading à l'aide de l'indicateur MACD logarithmique.
La logique principale est la suivante:
Calculer la MA logarithmique rapide (défaut 12) et la MA logarithmique lente (défaut 26)
Le MACD logarithmique est leur différence, exprimant l'élan du marché
La ligne de signal est lissée MA du MACD (par défaut 9)
Allez long lorsque le MACD traverse le signal supérieur de bas
Allez court lorsque le MACD traverse le signal ci-dessous
Différence du signal MACD représentée par histogramme
Comparé au MACD simple, le MACD logarithmique peut mieux mettre en évidence les tendances de croissance exponentielle.
Détecte les mouvements de prix exponentiels en utilisant la transformation logarithmique
Le log MACD met en évidence les informations relatives aux fluctuations des prix
La ligne de signal fait évoluer le MACD en signaux de trading
L'histogramme MACD montre intuitivement la direction de la tendance
La transformation de log peut amplifier le bruit des prix
Signaux fréquents, risques de suréchange
Aucune gestion des pertes par arrêt, contrôle des risques incomplet
Les mesures d'atténuation
Ajustez les paramètres pour réduire la fréquence du signal
Ajouter des filtres pour éviter les signaux dans des conditions agitées
Mise en œuvre d'un stop loss pour contrôler les pertes par transaction
Optimiser les paramètres de stabilité
Essayez d'autres transformations comme la moyenne mobile exponentielle
Ajouter un filtre de tendance aux signaux de l'écran
Incorporer des stratégies de stop loss
Utiliser l'apprentissage automatique pour juger de la fiabilité du signal
La transformation logarithmique améliore la sensibilité du MACD pour la détection précoce des tendances. Mais la fréquence des transactions doit être contrôlée. Avec des optimisations dans les paramètres, la gestion des risques, etc., cette stratégie peut devenir un système quantitatif stable et unique.
/*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")