Эта стратегия использует метод экстремальной стоимости для расчета статистической волатильности, также известной как историческая волатильность. Она измеряет волатильность на основе экстремальных значений самой высокой цены, самой низкой цены и ценой закрытия, в сочетании с временным фактором. Волатильность отражает колебания цены актива. Стратегия будет делать соответствующие длинные или короткие сделки, когда волатильность выше или ниже порога.
SqrTime = sqrt(253 / Length)
Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
pos = iff(nRes > TopBand, 1,
iff(nRes < LowBand, -1, nz(pos[1], 0)))
Основными преимуществами этой стратегии являются:
Основными рисками этой стратегии являются:
Контрмеры и решения:
Направления оптимизации для этой стратегии:
Эта стратегия использует метод экстремального значения для расчета статистической волатильности и генерирует торговые сигналы путем улавливания аномалий волатильности. По сравнению с простыми индикаторами, такими как скользящие средние линии, она лучше отражает волатильность рынка и улавливает переломы. Между тем, алгоритм метода экстремального значения также делает результаты более стабильными и надежными. Благодаря корректировке и оптимизации параметров эта стратегия может адаптироваться к различным рыночным условиям, и ее логика торговли и статистический индикатор волатильности заслуживают дальнейших исследований и применения.
/*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")