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

Динамическая стратегия выхода из канала

Автор:Чао Чжан, Дата: 2023-11-13 10:33:44
Тэги:

img

Обзор

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

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

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

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

200-дневная скользящая средняя EMA ((close,200) также представлена в качестве ориентира для определения общей тенденции.

Стратегия использует EMA в качестве ориентира для оценки основного тренда. Когда закрытие находится выше 200-дневной линии, это указывает на восходящий тренд. Когда закрытие находится ниже, это указывает на нисходящий тренд.

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

Длинный стоп-лосс устанавливается на нижней полосе или средней линии на основе правил длинный/короткий.

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

  1. Динамический канал адаптируется к изменяющимся тенденциям рынка.

  2. Торговые сигналы генерируются на основе прорывов, следуя принципу трендовой торговли.

  3. Основная тенденция определяется скользящей средней, в сочетании с прорывами каналов.

  4. Гибкое размещение стоп-лосса на основе рыночных условий.

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

  1. Ошибочное суждение о главной тенденции может отклоняться от рынка.

  2. Неправильное установление периода канала увеличивает неправильную торговлю.

  3. Стоп-потеря слишком близко к каналу может увеличить стоп-выход.

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

Решения:

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

  2. Оптимизировать параметры периода канала для различных рыночных ритмов.

  3. Настроить стоп-позицию, чтобы было достаточно буфера.

  4. Добавьте фильтры к сигналам входа на экран.

Руководство по оптимизации

  1. Добавьте больше показателей, чтобы оценить основную тенденцию, улучшая точность.

  2. Включайте показатели объема, чтобы избежать ложных прорывов.

  3. Оптимизировать параметры периода канала для различных продуктов.

  4. Внедрить динамический стоп-лосс.

  5. Добавьте фильтры, чтобы улучшить качество сигнала и избежать ненужных сделок.

Заключение

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


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © pratyush_trades

//@version=4
strategy("Donchian Indexes", overlay=true)

length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])
longSL=input("Lower Low", "LONG SL", options=["Lower Low", "Basis"])
shortSL=input("Higher High", "SHORT SL", options=["Higher High", "Basis"])

hh = highest(high, length)
ll = lowest(low, length)

up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)
plot(ema(close,200), "ema", color=color.orange)

if (close>ema(close,200))
    if (not na(close[length]))
        strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)

if (close<ema(close,200))
    if (not na(close[length]))
        strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)

if (strategy.position_size>0)
    strategy.exit(id="Longs Exit",stop=longSL=='Basis' ? mid : ll)

if (strategy.position_size<0)
    strategy.exit(id="Shorts Exit",stop=shortSL=='Basis' ? mid : hh)

Больше