Эта стратегия генерирует торговые сигналы с использованием индикатора логарифмического MACD. Он рассчитывает разницу между быстрыми и медленными логарифмическими скользящими средними для оценки рыночной динамики и возможностей.
Главная логика такова:
Вычислить быструю логарифмическую МА (по умолчанию 12) и медленную логарифмическую МА (по умолчанию 26)
Логарифмический MACD - это их разница, выражающая рыночную динамику
Сигнальная линия сглажена MA MACD (по умолчанию 9)
Продолжите, когда MACD пересекает сигнал сверху снизу
Пройти короткий, когда MACD пересекает ниже сигнала сверху
Дифференция MACD-сигнала, изображенная на графике в виде гистограммы
По сравнению с простым MACD, логарифмический MACD может лучше выделить тенденции экспоненциального роста.
Выявляет экспоненциальные движения цен с помощью логарифмической трансформации
Логотип MACD подчеркивает информацию о колебаниях цен
Сигнальная линия сглаживает MACD в торговые сигналы
Гистограмма MACD интуитивно показывает направление тренда
Трансформация лога может усилить шум цены
Частые сигналы, риски чрезмерной торговли
Отсутствие управления стоп-лоссами, неполный контроль рисков
Уменьшение последствий:
Настройка параметров для снижения частоты сигнала
Добавьте фильтры, чтобы избежать сигналов в хрупких условиях
Внедрить режим остановки потери для контроля потери по сделке
Оптимизировать параметры стабильности
Попробуйте другие преобразования, такие как экспоненциальная скользящая средняя.
Добавить фильтр тренда к сигналам экрана
Включить стратегии стоп-лосса
Использование машинного обучения для оценки надежности сигнала
Логарифмическая трансформация повышает чувствительность 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")