Стратегия прорыва колеблющегося канала


Дата создания: 2023-11-15 16:01:09 Последнее изменение: 2023-11-15 16:01:09
Копировать: 1 Количество просмотров: 660
1
Подписаться
1617
Подписчики

Стратегия прорыва колеблющегося канала

Обзор

Эта стратегия является стратегией прорыва торговли, основанной на канальных показателях. Она использует шокирующие характеристики каналов вверх и вниз, делая больше, когда цена прорывает каналы вверх, и делает пустоту, когда она прорывает каналы вниз, и относится к типу стратегии отслеживания тенденции.

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

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

В частности, логика сделки в стратегии выглядит следующим образом:

  1. Вычислить среднюю ось в канале: SMA ((Цена закрытия, N)

  2. Орбитальная линия: центральная ось + значение параметров

  3. Нижняя орбита коридора: центральная ось - значения параметров

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

  5. “Возвращаясь в канал, мы заняли позицию с большим преимуществом.

  6. При прорыве ниже орбитальной линии, если удовлетворяется условие, что объем сделки больше, чем в 2 раза предыдущий цикл, открытый вход

  7. Возвращение в канал с пустыми головами

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

Эта стратегия имеет следующие преимущества:

  1. Используя каналные индикаторы, можно эффективно отслеживать тенденции цен.

  2. В сочетании с ростом объема транзакций, можно эффективно отфильтровывать фальшивые прорывы.

  3. Возвращение в канал является механизмом устранения убытков, который может ограничить убытки от одной сделки.

  4. Вибрационные характеристики подходят для захвата коротких линейных тенденций.

  5. Логика реализации проста, легко понятна и реализуется.

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

Однако эта стратегия также несет в себе некоторые риски:

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

  2. Неправильная настройка параметров канала может привести к появлению слишком много ошибочных сигналов.

  3. Неправильные критерии для оценки всплеска объемов сделок также могут пропустить настоящий прорывный сигнал.

  4. В то же время, по мнению экспертов, в случае, если в стране не будут введены ограничения на выезд из страны, это может привести к повышению цен на продукцию.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров каналов, чтобы они были более подходящими для различных рынков.

  2. Оптимизация или увеличение условий для открытия позиции, например, с учетом пустоты средней линии или формы Клайн, чтобы избежать ложного прорыва.

  3. Оптимизация механизма остановки и выхода из игры, надлежащая разгрузка остановки и предотвращение преждевременного выхода из игры.

  4. Увеличение механизма управления позициями, адаптация позиций и использования средств в соответствии с рыночными условиями.

  5. В сочетании с другими показателями можно определить направление тенденции на большом уровне и избежать противодействия тенденциям.

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

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

Исходный код стратегии
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Copyright, 2022, Cache_that_pass.  You are free to use this script however you see fit and reproduce it in any manner.

//@version=5

            //////  Name the strategy between the 2 quotation marks.  Consider setting commission type and value in strategy header to match exchanges rates. //////

strategy("Oscillating SSL Channel Strategy", "O-SSL Strat", overlay=true, pyramiding=1, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 100, calc_on_order_fills=true)



            //////  Inputs and calculations used by script  //////

period = input(title='Period', defval=25)
len = input(title='Period', defval=25)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

            //////  Show me the money  //////

plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))


            //////  Trade execution logic  //////  
            
//pseudo-code//
        //Go long when high (or maybe close) breaks above the sslUp and volume is 2x or > Volume[1] and sslUp > sslDown
        //Close the above longs when sslUp crosses under sslDown (or set takeprofit and stop loss exits)
        //
        //Go short when low is lower than the sslUp and volume is 2x or > Volume[1] and sslDown > sslUp
        //Close shorts when sslDown crosses under sslUp

longCondition1 = (sslUp > sslDown)
longCondition2 = ta.crossover(high, sslUp)
//longCondition3 = (volume >= (volume[1]*1.89))
longCondition = ((longCondition1) and (longCondition2))// and (longCondition3))

longExit = ta.crossunder(sslUp, sslDown)

            //////  Bring It  //////
if (longCondition)
    strategy.entry("Bring It", strategy.long)

            //////  Sling It  //////
if (longExit)
    strategy.close("Bring It", comment="Sling It")


shortCondition1 = (sslDown) > (sslUp)
shortCondition2 = ta.crossunder(low, sslUp)
//shortCondition3 = (volume >= (volume[1]*1.89))
shortCondition = ((shortCondition1) and (shortCondition2))// and (shortCondition3))

shortExit = ta.crossunder(sslDown, sslUp)

            //////  Bring It  //////
if (shortCondition)
    strategy.entry("Bring It", strategy.long)

            //////  Sling It  //////
if (shortExit)
    strategy.close("Bring It", comment="Sling It")

            //////  Sling It  //////
if (shortCondition)
    strategy.entry("Sling It", strategy.short)

            //////  Bling It  //////
if (shortExit)
    strategy.close("Sling It", comment="Bring It")