Бидирекционная стратегия переворота является стратегией ценового действия, основанной на поворотных точках. Она обнаруживает экстремальные уровни цен в пределах ряда баров для выявления потенциальных возможностей переворота. Она вступает в обратные сделки, когда цены нарушают поворотные точки. Стратегия подходит для рынков с высокой волатильностью и способна улавливать краткосрочные перевороты.
Основная логика стратегии двунаправленного отмены выхода заключается в следующем:
Использованиеpivothigh()
иpivotlow()
чтобы рассчитать самый высокий максимум и самый низкий минимум в пределах последних n баров в качестве поворотов.
Когда последний максимум порога превышает пивольный максимум, стратегия считает, что цены могут перевернуться и идти коротко. Стоп-лосс размещается выше пивольного максимума.
Когда последний минимум порога прорывает пивотное минимум, стратегия считает, что цены могут перевернуться и идти на длинный. Стоп-лосс размещается ниже пивотного минимума.
После того, как цены перевернутся за пределы пивотов, предыдущий сигнал будет аннулирован и будет ждать следующего торгового шанса.
Таким образом, стратегия ловит краткосрочные возможности для реверсии, когда цены нарушают поворотные точки.
Стратегия двунаправленного перехода имеет следующие преимущества:
Простая и интуитивно понятная логика, основанная на поворотных точках.
Подходит для волатильных криптовалютных рынков для улавливания краткосрочных реверсий.
Легко понять и освоить.
Низкий процент снижения, риск под контролем.
Высокая доходность 350%, коэффициент Шарпа выше 1.
Стратегия двунаправленного отмены прорыва также имеет следующие риски:
При длительном тренде может возникнуть несколько небольших стоп-потерь.
Ключевые точки не являются гарантированными точками перехода, существует риск отсутствия или недостаточного перехода.
Цены могут не перевернуться сразу после прорыва пивотов, риски преследования потерь.
Требуется только повороты последних 4 строк, размер образца может быть слишком мал.
Ликвидность рынка игнорируется, большие заказы могут повлиять на цены.
Короткий период обратного тестирования делает долгосрочную производительность неопределенной.
Стратегия двунаправленного отмены прорыва может быть оптимизирована в следующих аспектах:
Увеличьте период поворота, чтобы избежать недостаточности образцов.
Подождите дополнительных сигналов подтверждения после разрыва поворотов, чтобы избежать ложных разрывов, таких как большие объемы, расхождения MACD и т. Д.
Динамическое регулирование размеров позиций на основе условий ликвидности.
Включайте индикаторы тенденций, чтобы избежать ошибок в тенденциях.
Добавьте стратегии движения стоп-лосса к прибыли.
Испытать оптимальные параметры для различных продуктов отдельно.
Расширить период обратного тестирования и использовать фьючерсные данные для проверки надежности.
Стратегия двунаправленного перехода на обратный рынок использует краткосрочные возможности, определяя точки перехода с помощью ценных поворотов. Преимущество заключается в простых правилах, низкой выводе и высокой доходности. Но существуют риски, такие как отсутствие переходов и преследование потерь. Мы можем оптимизировать ее, расширяя периоды выборки, добавляя подтверждение перехода на обратный рынок, динамические остановки и т. Д. Для обеспечения долгосрочной эффективности необходима более обширная проверка. В целом она подходит для количественных трейдеров, умеющих в краткосрочной торговле.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("QuantNomad - Pivot Reversal Strategy - XBTUSD - 1h", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50) // // author: QuantNomad // date: 2019-06-01 // Pivot Reversal Strategy - XBTUSD - 1h // https://www.tradingview.com/u/QuantNomad/ // https://t.me/quantnomad // leftBars = input(4) rightBars = input(4) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) if (le) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) if (se) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)