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


Дата создания: 2024-02-28 18:12:47 Последнее изменение: 2024-02-28 18:12:47
Копировать: 1 Количество просмотров: 695
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

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

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

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

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

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

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

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

  1. Оптимизация ATR-параметров. Можно тестировать различные периодические параметры, чтобы ATR лучше отражал реальные колебания.

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

  3. Добавление фильтров на другие показатели. Например, в сочетании с MACD-индикатором, определяющим точки покупки и продажи, можно в некоторой степени уменьшить недействительные сделки.

  4. Оптимизация остановочных и стоп-пунктов. Испытание влияния различных параметров на конечную доходность.

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)