Стратегия прорыва на Дончианском канале.

Автор:Чао Чжан, Дата: 2024-02-26 14:55:04
Тэги:

img

Обзор

Стратегия прорыва канала Дончиана - это стратегия, основанная на тренде, основанная на ценовых каналах.

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

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

В частности, стратегия работает в следующих шагах:

  1. Вычислить максимальный максимум за 20 периодов, а именно dcUpper;
  2. Вычислить 20-периодный минимальный минимум, а именно dcLower;
  3. Вычислить среднее значение dcUpper и dcLower, чтобы получить dcAverage, как среднюю линию канала;
  4. Укажите верхний, нижний и средний участки, чтобы сформировать Дончианский канал;
  5. Пройти длинный путь, когда закрытие находится выше средней линии dcAverage, и пройти короткий путь, когда закрытие находится ниже dcAverage;
  6. Правила выхода: если закрытие находится ниже нижней полосы dcНиже при длинном, закрыть длинную позицию; если закрытие находится выше средней линии dcСреднее при коротком, закрыть короткую позицию.

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

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

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

  1. Твердая теоретическая основа - использование ценовых каналов для определения тенденций является проверенным подходом к техническому анализу;
  2. Простая и понятная логика, легко понятная и реализуемая;
  3. Система, основанная на прорыве, с большим количеством возможностей для следования трендам, подходящих стратегий торговли количеством;
  4. Ясный механизм остановки потерь для ограничения потерь от одной сделки;
  5. Гибкость - параметры могут быть адаптированы для различных рыночных условий.

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

Существуют также некоторые риски:

  1. Высокая частота торговли приводит к более высоким затратам и сдвигам;
  2. Неправильное размещение стоп-потери вызывает потерю сверх стоп-потери;
  3. Ненадлежащие параметры приводят к отсутствию или ложным сигналам;
  4. Поздние неудачи в прорыве тренда приводят к убыткам.

Решения:

  1. оптимизировать параметры и контролировать частоту торговли;
  2. Улучшить логику стоп-потери для предотвращения переставок;
  3. Испытание в различных условиях и регулирование параметров;
  4. Добавьте фильтры, чтобы избежать неудач последнего тренда.

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

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

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

Заключение

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


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "dc", overlay = true)


testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)
    



Больше