Esta estratégia gera sinais de negociação usando o indicador MACD Logarítmico. Ele calcula a diferença entre médias móveis logarítmicas rápidas e lentas para medir o impulso e as oportunidades do mercado.
A lógica principal é:
Calcular o MA logarítmico rápido (padrão 12) e o MA logarítmico lento (padrão 26)
O MACD logarítmico é a sua diferença, expressando a dinâmica do mercado
A linha de sinal é suavizada MA do MACD (padrão 9)
Vá longo quando o MACD cruza acima do sinal de baixo
Vai curto quando o MACD cruza abaixo do sinal de cima
Diferença do sinal MACD representada por histograma
Em comparação com o MACD simples, o MACD logarítmico pode destacar melhor as tendências de crescimento exponencial.
Detecta movimentos de preços exponenciais usando transformação logarítmica
Log MACD destaca informações sobre flutuação de preços
A linha de sinal suaviza o MACD em sinais de negociação
O histograma MACD mostra intuitivamente a direcção da tendência
A transformação de log pode amplificar o ruído do preço
Sinais frequentes, riscos de excesso de negociação
Não há gestão de stop loss, controlo de risco incompleto
Atenuantes:
Ajustar os parâmetros para reduzir a frequência do sinal
Adicionar filtros para evitar sinais em condições agitadas
Implementar stop loss para controlar a perda por transação
Otimizar parâmetros de estabilidade
Tente outras transformações como média móvel exponencial
Adicionar filtro de tendência aos sinais da tela
Incorporar estratégias de stop loss
Usar aprendizado de máquina para julgar a confiabilidade do sinal
A transformação logarítmica aumenta a sensibilidade do MACD para a detecção precoce de tendências. Mas a frequência de negociação deve ser controlada. Com otimizações em parâmetros, gerenciamento de riscos, etc., essa estratégia pode se tornar um sistema quantitativo estável e único.
/*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")