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


Дата создания: 2023-10-20 16:37:28 Последнее изменение: 2023-10-20 16:37:28
Копировать: 0 Количество просмотров: 943
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

  1. Трехкратное скольжение среднего индекса по цене “close” с помощью ema дает гладкую кривую _hls。

  2. Для определения того, повышается ли скользящая кривая, если она повышается, а предыдущая K-линия не повышается, запишите ее как нижнюю, возьмите наименьшее значение этой K-линии. Если она понижается, а предыдущая K-линия повышается, запишите ее как верхнюю, возьмите наивысшее значение этой K-линии. В противном случае NaN.

  3. Повторяя этот процесс, мы получаем zigzag.

  4. Когда зигзаг поднимается, отмечается как текущая верхняя точка; когда опускается, отмечается как текущая нижняя точка.

  5. Поддерживающая линия - uplevel, когда точка поднимается; сопротивляющая линия - dnlevel, когда точка опускается.

  6. Когда цены выходят за зеленую линию, они делают больше, а когда они выходят за красную, они делают меньше.

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

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

  1. Используйте индикатор ZigZag, чтобы определить ключевые точки поддержки и сопротивления, которые часто имеют важное значение.

  2. ZigZag устраняет часть шума на рынке и делает торговые сигналы более четкими.

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

  4. Поддерживающие линии сопротивления просты и эффективны.

  5. Логика стратегии ясна и понятна, есть много возможностей для оптимизации параметров.

  6. Гибкость в выборе разновидностей и временных циклов торговли, адаптивность.

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

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

  1. Неправильная настройка параметров индикатора ZigZag может привести к пропущенным торговым возможностям.

  2. После того, как уровень сопротивления поддержки будет преодолен, может возникнуть повторное тестирование. Для контроля риска следует установить остановку.

  3. Прорывные сигналы могут быть ошибочными и должны быть проверены в сочетании с тенденциями и формами.

  4. Рынок может долго колебаться поперечно, и тогда стратегия может привести к слишком большому количеству неэффективных сделок.

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

Соответствующие меры:

  1. Оптимизируйте параметры ZigZag, чтобы найти оптимальную комбинацию параметров.

  2. Вовремя установить стоп-лосс после прорыва, чтобы контролировать одиночные потери.

  3. Фильтрационные сигналы, такие как индикаторы тренда, повышают точность.

  4. Добавление условий для идентификации ликвидационного рынка, в течение которого не будет торговли.

  5. Соответствующая смягчение прорыва, уменьшение недействительных сделок.

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

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

  1. Оптимизируйте параметры ZigZag, чтобы найти оптимальную комбинацию параметров.

  2. После прорыва вход рассматривает возможность повторного тестирования поддерживающего сопротивления, устанавливает логику выхода для повторного тестирования.

  3. В сочетании с трендовыми индикаторами, такими как MA, фильтруются сигналы торговли с низкой вероятностью.

  4. Увеличение энергетических показателей, чтобы подтвердить прорывный сигнал и избежать ошибочного сигнала.

  5. Установка Lachenbruch упомянутого в Lachenbruch дуального метода ((( одновременно делать больше вакуума), чтобы отфильтровать ошибочные сигналы и получать прибыль.

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

  7. Внедрение стратегии стоп-лосса и установление точек стоп-лосса для управления рисками.

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

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

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

//Noro
//2018

//@version=3
// strategy(title = "Noro's ZZ-2 Strategy", shorttitle = "Noro's ZZ-2 Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(4, title = "ZigZag length")
Extreme = input(4, title = "ZigZag extreme")
src = input(close, title = "Source")
showzz = input(false, defval = false, title = "Show ZigZag")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//ZigZag
f_zz(_length, _detection)=>
    _hls = ema(ema(ema(src, _length), round(_length*0.66)), round(_length*0.33))
    _isRising = _hls >= _hls[1]
    _zigzag = _isRising and not _isRising[1] ? lowest(_detection) :  not _isRising and _isRising[1] ? highest(_detection) : na
zigzag = f_zz(length, Extreme)
zzcol = showzz ? black : na
plot(zigzag, color = zzcol, linewidth = 2)

//Levels
dot = 0.0
dot := zigzag > 0 ? zigzag : dot[1]
uplevel = 0.0
uplevel := dot > dot[1] ? zigzag : uplevel[1]
dnlevel = 0.0
dnlevel := dot < dot[1] ? zigzag : dnlevel[1]
upcol = na
upcol := dot > dot[1] ? na : lime
plot(uplevel, color = upcol, linewidth = 2)
dncol = na
dncol := dot < dot[1] ? na : red
plot(dnlevel, color = dncol, linewidth = 2)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if dot > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel)