Стратегия двойного отслеживания волатильности скользящей средней

Автор:Чао Чжан, Дата: 2024-02-29 11:15:08
Тэги:

img

Обзор

Стратегия двойного отслеживания волатильности скользящей средней объединяет идеи стратегий Golden Cross Dead Cross и Moving Average Volatility Tracking. Вычисляя перекрестность простых скользящих средних (SMA) с различными периодами, он реализует золотой крест и мертвый крест для оценки тенденций. Между тем, объединяя полосы Боллинджера и индекс VIDYA, он оценивает рыночные тенденции и волатильность, достигая эффективной идентификации тенденций и эффективного захвата ключевых поворотных точек.

Логика стратегии

Основные показатели этой стратегии включают в себя простую скользящую среднюю (SMA), полосы Боллинджера и динамическую среднюю переменного индекса (VIDYA). Стратегия устанавливает быструю SMA и медленную LMA с различными периодами. Золотой крест быстрых и медленных линий служит длинным сигналом, в то время как крест смерти служит сигналом выхода. Между тем, она отслеживает прорыв цены выше или ниже полос Боллинджера в течение периода хранения.

В частности, логика длинного сигнала запускается, когда быстрая SMA пересекает медленную LMA, а цена находится выше кривой VIDYA, что указывает на рост тренда и увеличение волатильности.

Анализ преимуществ

Наибольшее преимущество этой стратегии заключается в сочетании двойных показателей для оценки рыночных условий, что повышает точность принятия решений.

  1. Стратегия "золотого креста" и "мертвого креста" проста и эффективна для определения поворотных точек тренда.
  2. Индекс VIDYA динамически отслеживает изменения волатильности рынка.
  3. Боллингерские полосы своевременно реагируют на колебания цен.

В целом, эта стратегия объединяет информацию о тенденциях, реверсии и волатильности, быстро реагирует на изменения рынка и имеет большую возможность генерировать альфу.

Анализ рисков

Хотя эта стратегия имеет много преимуществ, все же есть некоторые риски, о которых следует знать:

  1. Неправильное настройка параметров может привести к чрезмерной торговле, увеличению затрат и сдвигу.
  2. Конфликтные сигналы между двумя показателями могут привести к отсутствию лучших входных точек.
  3. Реальные результаты торговли могут сильно отличаться от результатов обратных тестов.

Для смягчения вышеуказанных рисков рекомендуется оптимизация параметров, правила приоритета между сигналами, контроль скольжения и испытание надежности в различных рыночных условиях.

Руководство по оптимизации

Основные аспекты оптимизации заключаются в настройке параметров и настройке состояния фильтра:

  1. Оптимизировать параметры периода SMA и LMA.
  2. Настройка параметра пропускной способности для полос Боллинджера.
  3. Оптимизируйте параметр альфа-сглаживания в VIDYA.
  4. Добавьте условия фильтра цены или объема.

Сочетание оптимизации параметров и совершенствования правил может еще больше повысить стабильность и рентабельность.

Заключение

Стратегия Dual Moving Average Volatility Tracking использует множество индикаторов для определения рыночных условий, фиксируя поворотные моменты тренда при мониторинге ситуации с колебаниями цен.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true)

// Inputs
fastMA_period = input(50, title="Fast MA Period")
slowMA_period = input(200, title="Slow MA Period")
src = input(close, title="Source")
lengthBB = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// Calculate Moving Averages for Golden Cross
fastMA = ta.sma(src, fastMA_period)
slowMA = ta.sma(src, slowMA_period)
bullish_cross = ta.crossover(fastMA, slowMA)
bearish_cross = ta.crossunder(fastMA, slowMA)

// Progressive Trend Tracker Components (Adjusted for NA assignment issue)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, length)
    vDD = math.sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    VAR = 0.0 // Adjusted here, assign an initial value
    VAR := ta.ema(src * math.abs(vCMO), length)
    VAR

VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed

// Bollinger Bands for dynamic support and resistance
BBandTop = fastMA + mult * ta.stdev(src, lengthBB)
BBandBot = fastMA - mult * ta.stdev(src, lengthBB)

// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(BBandTop, color=color.green, title="Bollinger Band Top")
plot(BBandBot, color=color.red, title="Bollinger Band Bottom")
plot(VAR, color=color.purple, title="VAR", linewidth=2)

// Strategy Logic (Adjusted for strategy use)
// Long Entry when bullish cross and close above VAR
// Exit when bearish cross or close below VAR
if (bullish_cross and close > VAR)
    strategy.entry("CGC_PTT_Long", strategy.long)
if (bearish_cross or close < VAR)
    strategy.close("CGC_PTT_Long")


Больше