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

Автор:Чао Чжан, Дата: 2024-02-22 16:50:46
Тэги:

img

Обзор

Эта стратегия рассчитывает самый высокий и самый низкий объем транзакций за определенный недавний период, чтобы сформировать адаптивный диапазон колебаний. Когда объем транзакций текущего цикла проходит через этот диапазон, генерируются торговые сигналы. Направление сигнала определяется свечой Инь Ян, которая является простой и эффективной стратегией отслеживания внезапных крупных единичных транзакций на рынке.

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

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

Конкретный процесс расчета:

  1. Вычислить наибольший объем транзакций Наибольший и наименьший объем транзакций Наименьший за последние N циклов
  2. Определить, является ли объем транзакции объем текущего цикла выше, чем наиболее высокий
  3. Соединить, является ли текущая свеча Инь или Ян, чтобы завершить прорывный сигнал суждения
  4. Создавать длинные и короткие сигналы

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

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

  1. Настройка адаптивного диапазона чувствительна к изменениям рынка
  2. Зафиксировать тенденции роста высокой волатильности, снизить уровень пропущенных сделок
  3. Объедините суждения о форме свечи, чтобы избежать ложных прорывов.
  4. Простая внедрение и модификация
  5. Параметры регулируются для различных продуктов

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

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

  1. Склонны преследовать максимумы и убивать минимумы, необходимо регулировать параметры для контроля
  2. Может часто генерировать ложные сигналы на крупных циклических осциллирующих рынках
  3. Не может различать нормальные и ненормальные прорывы, нуждается в включении других показателей или моделей для суждения
  4. Только одна возможность для каждого прорыва, не может отслеживать тенденции

Настройка параметров цикла и включение других индикаторов для фильтрации может оптимизировать.

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

Стратегия может быть оптимизирована несколькими способами:

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

Резюме

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EvoCrypto

//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)

// INPUTS {
Range_Length    =   input(5,        title="Range Length",                       minval=1)

Heikin_Ashi     =   input(true,     title="Heikin Ashi Colors")
Display_Bars    =   input(true,     title="Show Bar Colors")
Display_Break   =   input(true,     title="Show Break-Out")
Display_Range   =   input(true,     title="Show Range")
// }

// SETTINGS {
Close           =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close)    : close
Open            =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open)     : open

Positive        =    volume
Negative        =   -volume

Highest         =   highest(volume, Range_Length)
Lowest          =   lowest(-volume, Range_Length)

Up              =   Highest > Highest[1] and Close > Open
Dn              =   Highest > Highest[1] and Close < Open

Volume_Color    =   
 Display_Break and Up   ? color.new(#ffeb3b, 0)     : 
 Display_Break and Dn   ? color.new(#f44336, 0)     : 
 Close > Open           ? color.new(#00c0ff, 60)    : 
 Close < Open           ? color.new(#000000, 60)    : na 
// }

//PLOTS {
plot(Positive,                      title="Positive Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)
plot(Negative,                      title="Negative Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)

plot(Display_Range ? Highest : na,  title="Highest",            color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)
plot(Display_Range ? Lowest  : na,  title="Lowest",             color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)

barcolor(Display_Bars ? Volume_Color : na)
// }

if (Up)
    strategy.entry("Long Entry", strategy.long)
if (Dn)
    strategy.entry("Short Entry", strategy.short)

Больше