В процессе загрузки ресурсов... загрузка...

Стратегия торговли с изменением коэффициента объема

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

img

Обзор

Стратегия реверсии соотношения объема торговли (VR Reversal Strategy) - краткосрочная стратегия реверсии торговли, основанная на показателе объема.

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

Основным показателем стратегии реверсии VR является соотношение объема (сокращенно VR), которое представляет собой соотношение между объемом торговли текущего периода и средним объемом торговли за определенный период времени.

VR = объем тока / SMA (объем, N)

где N означает параметр Length, объем торгов текущего цикла, разделенный на простую скользящую среднюю величину объема торгов за цикл Length.

При VR > порог, это считается сигналом участия крупных игроков.

Стратегия также вводит вспомогательный индикатор направленного суждения dir. Он сравнивает цену закрытия текущего цикла с ценой N циклов назад. Более 1 - бычье направление, меньше 1 - медвежье направление.

Если VR превышает указанный порог, если dir=1, генерируется сигнал покупки. Если dir=-1, генерируется сигнал продажи.

Преимущества

Самое большое преимущество стратегии реверсии VR заключается в том, чтобы уловить шанс внезапного переворота цены.

Другие преимущества включают:

  • При использовании показателя объема оценка основных игроков относительно достоверна
  • Простой алгоритм, легкий в понимании и реализации
  • Гибкие конфигурируемые параметры, лучшая адаптивность

Риски

Несмотря на то, что стратегия реверсии VR имеет некоторые преимущества, все же существуют некоторые риски:

  • Как краткосрочная стратегия, есть некоторая случайность с колебаниями кривой возврата
  • Индикатор VR может не определить основных игроков.
  • Необходимо выбрать подходящие базовые продукты.

Кроме того, следует избегать чрезмерной торговли, устанавливать стоп-лосс для контроля однократных потерь и т.д.

Советы по оптимизации

Существует возможность дальнейшей оптимизации стратегии реверсии VR. Основные предложения:

  • Объедините больше показателей для суждения, чтобы избежать сбоев VR
  • Добавить логику остановки потери, может ссылаться на индикатор ATR, чтобы установить диапазон остановки потери
  • Оптимизировать параметры, особенно параметр длины цикла для различных циклов и продуктов
  • Корректировать порог положительного и отрицательного VR на основе результатов обратных испытаний для обеспечения надежности

Заключение

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


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

//@version=4

strategy(title="Volume Ratio_30min", shorttitle="VR_30min")//,initial_capital=1000)

// User Input ------------------------------------------------------------------
len = input(20, title="Length", minval=1)
threshold  = input(3,step=0.05, title="閾値")

// Volume Caliculetion ---------------------------------------------------------
vol = volume
sma=sma(volume,len)
vrs = vol / sma

// Direction -------------------------------------------------------------------
dirtime=input(1,"direction picker # bars")
dir=if close/close[dirtime] > 1
    1
else
    -1

// Plot ------------------------------------------------------------------------
plot(vrs, title="VRS",  color=color.green, transp=0)
hline(1, title="baseline")
plot(threshold, color=color.white)

// ️⚠️⚠️Logic -----------------------------------------------------------------

long    = vrs > threshold  and dir == 1
short   = vrs > threshold  and dir ==-1

// Back Test Fnction -----------------------------------------------------------
start = timestamp(input(2019, "Start Year"), input(1, "Start Month"), input(1, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)
_testPeriod() => true

// Order -----------------------------------------------------------------------
if _testPeriod()
    if long
        strategy.entry("Long", strategy.long)
    if short
        strategy.entry("Short", strategy.short)


Больше