
Стратегия реализуется на основе пересечения долгосрочных движущихся средних объемов торгов. Она использует ЭМА разных периодов для расчета долгосрочных тенденций в объемах торгов и построения индикатора колебаний с помощью его разрыва.
Центральным показателем стратегии является индикатор колебаний объема торгов (Volume Oscillator). Он отражает тенденцию изменения объема торгов через разницу в долгосрочных и краткосрочных скользящих средних показателях объема торгов. Конкретная формула расчета такова:
Volume Oscillator = (ShortEMA - LongEMA) / LongEMA * 100
Среди них ShortEMA и LongEMA представляют собой соответственно краткосрочные и долгосрочные скользящие средние индексов. Когда ShortEMA проходит через LongEMA, показатель является положительным, что означает, что объем торгов расширяется; когда ShortEMA проходит через LongEMA, показатель является отрицательным, что означает, что объем торгов сокращается.
После вычисления этого шокирующего показателя, эта стратегия использует его скрещивание с нулевой осью для получения торгового сигнала. Когда индикатор переходит от отрицательной прямой, то есть пересекает нулевую ось, делайте больше; когда индикатор переходит от положительной отрицательной, то есть пересекает нулевую ось, делайте пустое. Это отражает динамическое преобразование торгового объема.
Кроме того, стратегия также объединяет предыдущие высокие и низкие точки для определения конкретного направления операции. То есть, когда показатель проходит нулевую ось, если предыдущая высокая точка больше абсолютного значения предыдущей низкой точки, то смотрите больше; наоборот, смотрите ниже. Используя эту особенность, можно судить о силе расширения объема торгов.
Эта стратегия имеет следующие преимущества:
Использование объема сделок в качестве базового показателя позволяет эффективно определять намерения участников рынка и имеет большую практическую ценность.
В сочетании с долгосрочными и краткосрочными EMA можно одновременно отслеживать среднесрочные и долгосрочные тенденции и краткосрочные динамики.
Торговые сигналы, образующиеся при скрещивании индикатора с нулевой осью, просты, ясны и легко оцениваются.
Включение предыдущих высоких и низких точек для определения конкретного направления действий позволяет эффективно использовать потенциал объема торгов.
Ясность стратегии, гибкость в регулировании параметров, адаптивность.
В этой стратегии также есть некоторые риски, о которых следует помнить:
Показатели объема торгов подвержены влиянию ложных рыночных прорывов, которые могут создавать ошибочные сигналы. Можно установить стоп-лосс, чтобы контролировать риск.
В шокирующих ситуациях может часто происходить перекрестный объем торгов, что требует обоснованного подтверждения перевода показателя.
Предыдущие максимумы и минимумы отражают только недавнее расширение, и невозможно определить его продолжительность.
Параметры разных сортов и периодов времени требуют индивидуальной оптимизации и недостаточно универсальны.
Показатель объема сделок медленно реагирует на высокочастотные программированные сделки и может пропустить оптимальный момент входа.
Эта стратегия может быть оптимизирована в следующих аспектах:
Добавить условия фильтрации, чтобы избежать ложных сигналов, таких как подтверждение добавления ценового индикатора.
Оптимизация циклических параметров долгосрочных и краткосрочных ЭМА, чтобы они соответствовали характеристикам разных сортов.
Настройка циклических параметров для предыдущих высоких и низких точек, используя максимальные и минимальные цены за определенное время.
Для предотвращения частых сделок настройка зоны конвертации показателя на интервалы.
Добавление стратегий по сдерживанию убытков и борьба с единичными потерями.
В сочетании с другими техническими показателями, такими как VRP.
Автоматическая оптимизация параметров с использованием методов машинного обучения.
В целом, длинно-коротколинейная кросс-стратегия, основанная на показателях колебаний объема торгов, в полной мере использует особенности перевода объема торгов, обладает сильным суждением и хорошей детективностью в начале развития тенденции. При этом в сочетании с предыдущими высокими и низкими точками определяется конкретное направление, что делает торговые решения более точными.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-03-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("SB_Volume_oscillator_Prev_high_low", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
shortlen = input(5, minval=1)
longlen = input(10, minval=1)
short = ema(volume, shortlen)
long = ema(volume, longlen)
osc = 100 * (short - long) / long
//hline(0, title="Zero")
//plot(osc)
zero=input(0.0)
low_val=input(0.0)
high_val=input(0.0)
prev_high_val=input(0.0)
prev_low_val=input(0.0)
where=input(0)
where:=nz(where[1])
low_val:=nz(low_val[1])
high_val:=nz(high_val[1])
prev_high_val:=nz(prev_high_val[1])
prev_low_val:=nz(prev_low_val[1])
if(crossover(osc,zero))
high_val:=osc
where:=1
prev_low_val:=low_val
low_val:=osc
if(crossunder(osc,zero))
low_val:=osc
where:=-1
prev_high_val:=high_val
high_val:=osc
if(where==1)
if(high_val<osc)
high_val:=osc
if(where==-1)
if(low_val>osc)
low_val:=osc
if (crossover(osc,zero))
if(prev_high_val<=abs(prev_low_val))
strategy.entry("My Long Entry Id", strategy.long)
if(prev_high_val>abs(prev_low_val))
strategy.entry("My Short Entry Id", strategy.short)
if (crossunder(osc,zero))
if(prev_high_val<=abs(prev_low_val))
strategy.entry("My Long Entry Id", strategy.long)
if(prev_high_val>abs(prev_low_val))
strategy.entry("My Short Entry Id", strategy.short)