Эта стратегия определяет направление тренда, рассчитывая движущиеся средние значения реального диапазона колебаний, которые отражают волатильность рынка, в зависимости от отношения волатильности к его движущему среднему значению. Посмотрите вверх, когда волатильность пересекает движущуюся среднюю, посмотрите вниз, когда она пересекает, и установите стоп-стоп.
Используйте функцию ATR, чтобы рассчитать реальный диапазон колебаний в течение заданного периода. Затем вычислите простое среднее значение ATR в качестве среднего значения колебаний. При пересечении ATR по его среднему колебанию, считая, что рыночная волатильность увеличилась, используйте стратегию просмотра; при пересечении ATR по его среднему колебанию, считая, что рыночная волатильность уменьшилась, используйте стратегию просмотра.
При хранении позиции устанавливается фиксированная пропорциональная следящая стоп-позиция, динамически корректирующая стоп-позицию в зависимости от изменения цены, защищая прибыль при одновременном предотвращении покрытия стоп-позиции.
Эта стратегия использует показатели волатильности для определения движения рынка, чтобы избежать заблуждения от шума. Занижение волатильности при повышении волатильности и увеличение волатильности при снижении позволяет осуществлять хеджирование. Отслеживание стоп-лосса может корректировать стоп-позиции в зависимости от изменения цены в реальном времени, что позволяет сократить ненужные стоп-лосы, защищая прибыль.
Эта стратегия основана только на показателе волатильности, существует определенная отсталость. И отслеживание стоп-убытков учитывает только изменения цены в неблагоприятном направлении, не может защитить от отката прибыли.
Можно соответствующим образом оптимизировать ATR и циклические параметры средней линии, а также можно добавить другие показатели для комплексного суждения. Метод остановки может быть изменен на динамическую остановку, чтобы скорректировать величину остановки в зависимости от степени волатильности рынка.
Тестируйте различные комбинации ATR и среднелинейных циклов, чтобы найти оптимальные параметры.
Добавление других показателей, формирование портфеля стратегий, повышение их точности.
Настройка динамической стратегии стоп-лосс, при которой стоп-лосс корректируется в зависимости от степени волатильности рынка.
Для оптимизации стратегии управления капиталом различные сорта могут устанавливать разные размеры позиций.
Применение технологий машинного обучения для определения переломных моментов волатильности рынка.
В сочетании со среднеуровневыми показателями на высшем уровне, можно определить направление тенденций на более высоком уровне.
Стратегия, использующая показатели волатильности для определения движения рынка, является более простой и прямой, но легко ограничивается только одним показателем. Надлежащее введение нескольких показателей для определения и оптимизации параметров может повысить стабильность стратегии. В целом, стратегия предлагает идею торговли на основе волатильности рынка.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a
// smoothed average of the True Range. It returns an average of the TrueRange
// over a specific number of bars, giving higher weight to the TrueRange of
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
iff(nRes > xMARes, -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="Volatility")
plot(xMARes, color=red, title="MA")