Статистическая стратегия обратного тестирования волатильности, основанная на методе экстремальных значений

Автор:Чао Чжан, Дата: 2023-12-26 10:24:53
Тэги:

img

Обзор

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

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

  1. Вычислить экстремальные значения самой высокой цены, самой низкой цены и цены закрытия в определенный период времени
  2. Применение формулы метода крайних значений для расчета статистической волатильности
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    
  3. Сравните волатильность с верхним и нижним порогами для получения торговых сигналов
    pos = iff(nRes > TopBand, 1,  
              iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. Совершать длинные или короткие сделки на основе торговых сигналов

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

Основными преимуществами этой стратегии являются:

  1. Использование статистического индикатора волатильности позволяет эффективно выявлять точки напряженности рынка и возможности для реверсии
  2. Метод экстремальной стоимости для расчета волатильности не чувствителен к экстремальным ценам, что приводит к более стабильным и надежным результатам.
  3. Параметры могут быть скорректированы для адаптации к торговле в различных условиях волатильности

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

Основными рисками этой стратегии являются:

  1. Статистическая волатильность сама по себе имеет некоторое отставание и не может точно понять поворотные моменты рынка
  2. Показатель волатильности медленно реагирует на внезапные события, возможно, упуская краткосрочные торговые возможности.
  3. Есть некоторые риски неправильных сделок и стоп-лосс

Контрмеры и решения:

  1. Соответственно сократить статистический цикл для повышения чувствительности к изменениям рынка
  2. Использование других показателей для улучшения точности сигнала
  3. Установка точек остановки потерь для контроля одиночных потерь

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

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

  1. Испытать различные параметры статистического периода для поиска оптимальных параметров
  2. Добавить модуль управления позициями для корректировки позиций на основе волатильности
  3. Добавьте условия фильтрации, такие как скользящие средние линии, чтобы уменьшить неправильные сделки

Резюме

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


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/11/2014
// This indicator used to calculate the statistical volatility, sometime 
// called historical volatility, based on the Extreme Value Method.
// Please use this link to get more information about Volatility. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Statistical Volatility - Extreme Value Method ", shorttitle="Statistical Volatility Backtest")
Length = input(30, minval=1)
TopBand = input(0.005, step=0.001)
LowBand = input(0.0016, step=0.001)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xMaxC = highest(close, Length)
xMaxH = highest(high, Length)
xMinC = lowest(close, Length)
xMinL = lowest(low, Length)
SqrTime = sqrt(253 / Length)
Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
nRes = iff(Vol < 0,  0, iff(Vol > 2.99, 2.99, Vol))
pos = iff(nRes > TopBand, 1,
	   iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(nRes, color=blue, title="Statistical Volatility")


Больше