Стратегия торговли на прорыве волатильности MCL-YG


Дата создания: 2023-11-14 13:49:12 Последнее изменение: 2023-11-14 13:49:12
Копировать: 0 Количество просмотров: 673
1
Подписаться
1617
Подписчики

Стратегия торговли на прорыве волатильности MCL-YG

Обзор

Эта стратегия использует прорыв в коридоре Бринга для обнаружения торговых сигналов, чтобы осуществить двойную торговлю двумя положительно связанными активами: MCL и YG. Когда цена MCL касается коридора Бринга вверх, делается плюс MCL и плюс YG; когда цена MCL касается коридора Бринга вниз, делается плюс MCL и плюс YG, чтобы осуществить прогрессивную торговлю ценовым трендом.

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

Сначала стратегия рассчитывает среднюю SMA и стандартную разницу StdDev на основе цены закрытия в течение определенного цикла. Затем добавляется одно смещение ниже средней SMA, образуя верхнюю и нижнюю полосы Брин-Бенда. Когда цена касается верхней полосы, она создает сигнал покупки, а когда касается нижней полосы, она создает сигнал продажи.

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

Паровая торговля двумя положительно связанными активами MCL и YG. Когда MCL прорывается вверх, это указывает на то, что цена MCL находится в восходящей тенденции, в это время делается больше MCL, в то же время делается YG, то есть покупается более сильный актив, продается более слабый актив, чтобы получить прибыль от расширения разницы в цене двух активов.

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

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

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

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

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

Оптимизация стратегии

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

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

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

Исходный код стратегии
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © shark792

//@version=5

// 1. Define strategy settings
strategy(title="MCL-YG Pair Trading Strategy", overlay=true,
     pyramiding=0, initial_capital=10000,
     commission_type=strategy.commission.cash_per_order,
     commission_value=4, slippage=2)

smaLength = input.int(title="SMA Length", defval=20)
stdLength = input.int(title="StdDev Length", defval=20)

ubOffset = input.float(title="Upper Band Offset", defval=1, step=0.5)
lbOffset = input.float(title="Lower Band Offset", defval=1, step=0.5)

usePosSize = input.bool(title="Use Position Sizing?", defval=true)
riskPerc   = input.float(title="Risk %", defval=0.5, step=0.25)


// 2. Calculate strategy values
smaValue = ta.sma(close, smaLength)
stdDev   = ta.stdev(close, stdLength)

upperBand = smaValue + (stdDev * ubOffset)
lowerBand = smaValue - (stdDev * lbOffset)

riskEquity  = (riskPerc / 100) * strategy.equity
atrCurrency = (ta.atr(20) * syminfo.pointvalue)
posSize     = usePosSize ? math.floor(riskEquity / atrCurrency) : 1


// 3. Output strategy data
plot(series=smaValue, title="SMA", color=color.teal)

plot(series=upperBand, title="UB", color=color.green,
     linewidth=2)
plot(series=lowerBand, title="LB", color=color.red,
     linewidth=2)


// 4. Determine long trading conditions
enterLong = ta.crossover(close, upperBand)
exitLong  = ta.crossunder(close, smaValue)


// 5. Code short trading conditions
enterShort = ta.crossunder(close, lowerBand)
exitShort  = ta.crossover(close, smaValue)


// 6. Submit entry orders
if enterLong
    strategy.entry(id="EL", direction=strategy.long, qty=posSize)

if enterShort
    strategy.entry(id="ES", direction=strategy.short, qty=posSize)


// 7. Submit exit orders
strategy.close(id="EL", when=exitLong)
strategy.close(id="ES", when=exitShort)