Стратегия отслеживания волатильности и остановки потерь

Автор:Чао Чжан, Дата: 2023-09-20 11:31:12
Тэги:

Обзор

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

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

Функция ATR используется для расчета истинного диапазона за определенный период. Простая скользящая средняя ATR затем рассчитывается как скользящая средняя линия волатильности. Когда ATR превышает свою скользящую среднюю, волатильность рынка считается возрастающей и принимается короткая стратегия. Когда ATR пересекается ниже своей скользящей средней, волатильность рынка считается уменьшающейся и принимается длинная стратегия.

При нахождении на позиции фиксированный процентный отпуск стоп-лосса устанавливается для динамической корректировки стоп-лосса на основе изменения цены, чтобы защитить прибыль, избегая преждевременного прекращения.

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

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

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

Стратегия опирается исключительно на один индикатор волатильности, с некоторым отставанием. Последующий стоп-лосс рассматривает только неблагоприятные движения цен, не способные предотвратить ретрассов прибыли. Если цены сильно колеблются, стоп-лосс может быть поражен, понеся большие потери.

Параметры настройки на ATR и скользящие средние периоды могут помочь, как и может включать другие показатели для всеобъемлющих суждений.

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

  1. Испытать различные комбинации параметров ATR и скользящих средних для поиска оптимальных параметров.

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

  3. Принять динамические стратегии стоп-лосса, корректируя процент стоп-лосса на основе волатильности рынка.

  4. Оптимизировать модели размещения позиций для различных продуктов.

  5. Применение машинного обучения для определения поворотных точек волатильности.

  6. Объедините с скользящими средними за более длительный период времени, чтобы определить более широкое направление тренда.

Резюме

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


/*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")

Больше