В процессе загрузки ресурсов... загрузка...

Адаптивные VWAP-диапазоны с динамической стратегией отслеживания волатильности класса Garman

Автор:Чао ЧжанДата: 2024-12-20 14:51:00
Тэги:VWAPГКВЗПППМ.А.VWMA

img

Обзор

Это адаптивная торговая стратегия, основанная на средневзвешенной цене объема (VWAP) и волатильности класса Garman (GKV). Стратегия динамически регулирует диапазоны стандартного отклонения VWAP через волатильность для достижения интеллектуального отслеживания тенденций рынка. Она открывает длинные позиции, когда цена превышает верхнюю полосу, и закрывает позиции, когда она превышает нижнюю полосу, причем более высокая волатильность приводит к более высоким порогам прорыва и более низкая волатильность приводит к более низким порогам.

Принцип стратегии

Основой стратегии является сочетание VWAP с волатильностью GKV. Сначала она рассчитывает VWAP как ценный поворот, а затем создает диапазоны с использованием стандартного отклонения цен закрытия. Ключом является использование формулы GKV для расчета волатильности, которая рассматривает четыре ценовых точки (открытие, высокий, низкий, закрытие) и более точна, чем традиционные меры волатильности. Волатильность динамически регулирует ширину диапазона - когда повышается волатильность, диапазоны расширяются, повышая пороги прорыва; когда снижается волатильность, диапазоны сужаются, снижая пороги прорыва.

Преимущества стратегии

  1. Комбинирует характеристики соотношения объема и цены и волатильности для более надежных сигналов
  2. Адаптивная регулировка ширины полосы позволяет уменьшить помехи шума
  3. Использует волатильность GKV для более точного определения микроструктуры рынка
  4. Простая и понятная логика вычислений, легкая для внедрения и обслуживания
  5. Подходит для различных рыночных условий с высокой универсальностью

Стратегические риски

  1. Может часто торговать на разных рынках, увеличивая затраты
  2. Уровень чувствительности к длине и периоду волатильности VWAP
  3. Может медленно реагировать на быстрые изменения тренда
  4. Требует данных о рынке в режиме реального времени с высокими требованиями к качеству Предложения по контролю риска:
  • Установка разумных уровней стоп-лосса
  • Оптимизация параметров для различных рынков
  • Добавить индикаторы подтверждения тенденции
  • Размеры позиций управления

Направления оптимизации стратегии

  1. Внедрение анализа многочасовых рамок для повышения надежности сигнала
  2. Добавить измерение анализа объема для подтверждения валидности прорыва
  3. Оптимизировать метод расчета волатильности, рассмотреть возможность введения EWMA
  4. Добавить фильтры силы тренда
  5. Рассмотреть возможность добавления динамических механизмов стоп-лосса Эти оптимизации могут улучшить стабильность стратегии и качество возврата.

Резюме

Стратегия достигает динамического отслеживания рынка благодаря инновационному сочетанию волатильности VWAP и GKV. Ее адаптивный характер обеспечивает стабильную производительность в различных рыночных условиях.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Adaptive VWAP Bands with Garman Klass Volatility", overlay=true)

// Inputs
length = input.int(25, title="Volatility Length")
vwapLength = input.int(14, title="VWAP Length")
vol_multiplier = input.float(1,title="Volatility Multiplier")

// Function to calculate Garman-Klass Volatility
var float sum_gkv = na
if na(sum_gkv)
    sum_gkv := 0.0

sum_gkv := 0.0
for i = 0 to length - 1
    sum_gkv := sum_gkv + 0.5 * math.pow(math.log(high[i]/low[i]), 2) - (2*math.log(2)-1) * math.pow(math.log(close[i]/open[i]), 2)

gcv = math.sqrt(sum_gkv / length)

// VWAP calculation
vwap = ta.vwma(close, vwapLength)

// Standard deviation for VWAP bands
vwapStdDev = ta.stdev(close, vwapLength)

// Adaptive multiplier based on GCV
multiplier = (gcv / ta.sma(gcv, length)) * vol_multiplier

// Upper and lower bands
upperBand = vwap + (vwapStdDev * multiplier)
lowerBand = vwap - (vwapStdDev * multiplier)

// Plotting VWAP and bands
plot(vwap, title="VWAP", color=color.blue, linewidth=2)
plot(upperBand, title="Upper Band", color=color.green, linewidth=1)
plot(lowerBand, title="Lower Band", color=color.red, linewidth=1)

var barColor = color.black

// Strategy: Enter long above upper band, go to cash below lower band
if (close > upperBand)
    barColor := color.green
    strategy.entry("Long", strategy.long)
else if (close < lowerBand)
    barColor := color.fuchsia
    strategy.close("Long")

barcolor(barColor)


Связанные

Больше