Стратегия отслеживания волатильности черного лебедя и пересечения скользящих средних

EMA SMA ATR
Дата создания: 2024-12-13 11:52:51 Последнее изменение: 2024-12-13 11:52:51
Копировать: 0 Количество просмотров: 458
1
Подписаться
1617
Подписчики

Стратегия отслеживания волатильности черного лебедя и пересечения скользящих средних

Обзор

Эта стратегия является динамической системой отслеживания торговли, основанной на величине колебаний цен и пересечениях средней линии. Стратегия в основном инициирует сигналы, отслеживая аномальные колебания с частотой колебаний цен более 1,91% (“черные свинцовые события”), в сочетании с пересечением EMA144 и EMA169 для подтверждения направления тенденции и времени выхода.

Стратегический принцип

Основная логика стратегии состоит из двух основных частей:

  1. Мониторинг волатильности: измерение волатильности цены путем вычисления абсолютной разницы между ценой закрытия и ценой открытия относительно соотношения цены закрытия и подачи торгового сигнала, когда соотношение превышает 1,91%
  2. Подтверждение тренда: использование перекрестков EMA144 и EMA169 для подтверждения направления тренда, перекрестки вверх делают больше, перекрестки вниз делают пусто. Кроме того, в качестве вспомогательных индикаторов были введены SMA60 и SMA20.

Стратегия делает перерасчет при обнаружении повышения более чем на 1,91% и делает дисконт при обнаружении понижения. Когда происходит обратный пересечение линии, стратегия автоматически выводит позиции, чтобы контролировать риск.

Стратегические преимущества

  1. Быстро реагировать: стратегия позволяет вовремя улавливать резкие колебания рынка, особенно подходит для краткосрочных торгов.
  2. Контроль риска: эффективно контролировать риск хранения позиции с помощью пересечения равномерной линии в качестве сигнала о равновесии.
  3. Высокая гибкость: стратегии позволяют устанавливать диапазон времени отсчета и корректировку параметров, которые могут быть оптимизированы в зависимости от различных рыночных условий.
  4. Идеальное управление позициями: контроль позиций с использованием процентов от чистой стоимости счета и поддержка пирамиды до трехкратного увеличения позиций.

Стратегический риск

  1. Риск ложного прорыва: в условиях высокой волатильности рынка могут появляться ложные сигналы, приводящие к ненужным сделкам.
  2. Риск скольжения: из-за того, что стратегия действует в короткие периоды, возможны большие потери скольжения.
  3. Риск обратного тренда: ситуация, когда после сильных колебаний может произойти быстрый обратный тренд.
  4. Чувствительность к параметрам: эффекты стратегии более чувствительны к параметрам, которые могут часто нуждаться в корректировке в зависимости от рыночных условий.

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

  1. Внедрение фильтрации колебаний: рекомендуется добавление показателя ATR для фильтрации рыночного шума и улучшения качества сигнала.
  2. Оптимизация времени поступления: можно рассмотреть возможность увеличения количества подтверждений для повышения точности поступления.
  3. Динамические параметры корректировки: рекомендуется разработать систему адаптивных параметров, автоматически корректирующих порог возбуждения в зависимости от рыночных условий.
  4. Улучшение механизма погашения убытков: рекомендуется добавить функцию отслеживания убытков, чтобы лучше защитить уже полученную прибыль.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-12-05 00:00:00
end: 2024-12-12 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

//黑天鹅警报器,作者():道格拉斯机器人
//适合1分钟-3分钟的k线,发生波动超过百分之二时,自动报警
strategy('黑天鹅警报', overlay=true, initial_capital=10000, currency='USD', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=3)
//-------------------------------------------
//-------------------------------------------
timecondition = timeframe.period == '480' or timeframe.period == '240' or timeframe.period == 'D' or timeframe.period == '720'
// Make input options that configure backtest date range
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=11, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2018, minval=1800, maxval=2100)
endDate = input.int(title='End Date', defval=1, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=11, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2031, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)



// Inputs
a = input(1, title='Key Vaule. \'This changes the sensitivity\'')
c = input(10, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')


ma60 = ta.sma(close, 60)
ema144 = ta.ema(close, 144)

ema169 = ta.ema(close, 169)
ma20 = ta.sma(close, 20)


plot(ema144, color=color.new(color.yellow, 0), title='144')
plot(ema169, color=color.new(color.orange, 0), title='169')


heitiane = close - open
heitiane := math.abs(heitiane)
heitiane /= close

if inDateRange and heitiane > 0.0191 and close < open  //  and close>f3
    strategy.entry('botsell20', strategy.short, comment='黑天鹅追空' + str.tostring(heitiane))

if ta.crossover(ema144, ema169)
    strategy.close('botsell20', comment='平空')
if inDateRange and heitiane > 0.0191 and close > open  //  and close>f3
    strategy.entry('botbuy20', strategy.long, comment='白天鹅追多' + str.tostring(heitiane))

if ta.crossunder(ema144, ema169)
    strategy.close('botbuy20', comment='平多')