Стратегия волатильности ATR для прорыва в динамике

Автор:Чао Чжан, Дата: 2024-01-12 13:50:44
Тэги:

img

Обзор

Эта стратегия использует сочетание простой движущейся средней двойной движущейся средней стратегии, дополненной индексом волатильности ATR для определения волатильности рынка. Когда краткосрочная средняя линия пересекает выше долгосрочной средней линии, она определяется как бычий рынок и принимается длинная позиция. Когда краткосрочная средняя линия пересекает ниже долгосрочной средней линии, она определяется как медвежий рынок и принимается короткая позиция. В то же время надежность движущегося среднего сигнала оценивается путем сочетания объемно-взвешенной средней цены VWAP. Кроме того, индикатор RSI включен для предотвращения отклонений.

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

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

Эта стратегия выбирает 50-дневную скользящую среднюю в качестве краткосрочной скользящей средней и 200-дневную скользящую среднюю в качестве долгосрочной скользящей средней. В сочетании с объемной взвешенной средней ценой VWAP для определения надежности сигнала скользящей средней. То есть, выходите на рынок только тогда, когда сигнал скользящей средней выровнен с VWAP. Это фильтрует некоторые ложные сигналы.

Кроме того, индикатор RSI включен, чтобы избежать перекупки и перепродажи.

Наконец, средняя амплитуда колебаний индикатора ATR используется для определения волатильности и уровня риска рынка. Когда значение ATR больше 1,18, оно определяется как высокая волатильность. В этот момент, изменяя цвет фона, повышается риск и торговля может быть временно избегнута, пока волатильность не снизится.

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

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

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

  2. Сочетание VWAP для фильтрации ложных сигналов и повышения надежности сигнала.

  3. Введение индикатора RSI для предотвращения торговли против рынка, что может уменьшить потери.

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

  5. Сочетание различных индикаторов просто и легко понять и реализовать, подходящее для количественного входа в торговлю.

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Когда скользящая средняя генерирует сигнал, цена может сильно измениться, создавая риск переоценки.

  2. VWAP может содержать ошибки, что приводит к отфильтрованию правильных торговых сигналов.

  3. В конце тренда RSI может оставаться в зоне перекупленности/перепроданности в течение длительного времени, упуская поворотный момент переворота тренда.

  4. ATR может отставать при оценке волатильности рынка. Решение заключается в том, чтобы объединить самую высокую цену, самую низкую цену и т. Д., Чтобы определить волатильность рынка.

  5. Доходность может не соответствовать ожиданиям, и параметры должны быть соответствующим образом скорректированы.

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

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

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

  2. Добавьте дополнительные индикаторы к фильтру сигналов, такие как MACD, KDJ и т.д.

  3. Оптимизируйте параметры стоп-лосса и прибыли для снижения потерь и увеличения прибыли.

  4. Оценить разницу в торговых стратегиях между сильными и слабыми акциями для моделирования классификации.

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

  6. Разработать автоматизированные торговые системы и подключиться к живой торговле для обратного тестирования.

Резюме

В целом, эта стратегия является относительно простой стратегией отслеживания трендов. Ядро использует двойные скользящие средние для определения долгосрочных и краткосрочных тенденций. Объединяет VWAP и RSI для обработки сигналов и применения ATR для оценки рисков. Идея стратегии проста и проста в понимании и эксплуатации. Благодаря некоторому пространству оптимизации можно получить хорошую отдачу.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Больше