Стратегия индикатора импульса ADX, RSI


Дата создания: 2023-12-11 16:06:30 Последнее изменение: 2023-12-11 16:06:30
Копировать: 0 Количество просмотров: 559
1
Подписаться
1215
Подписчики

Стратегия индикатора импульса ADX, RSI

Обзор

Эта стратегия использует динамические индикаторы ADX, RSI и BRI, чтобы оценить рыночные тенденции и преодолеть перепродажи, чтобы достичь низких покупок и высоких продаж, а также для получения прибыли.

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

  1. Индекс ADX определяет тенденцию. Когда ADX больше 32, считается, что рынок находится в состоянии тренда.
  2. RSI определяет перекуп и перепродажу. Когда RSI превышает 30 градусов, считается, что ситуация перепродажа; когда RSI превышает 70 градусов, считается, что ситуация перепродажа.
  3. При повышении цены на конец торгового периода, когда цена пересекает границу, считается, что она поднялась. При повышении цены на конец торгового периода, когда цена пересекает границу, считается, что она упала.

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

Условия покупки:

  1. ADX>32, состояние тренда
  2. RSI перешагнул 30 и перепродал
  3. Закрытие ниже пояса Брин, завершение падения

Условия продажи:

  1. ADX>32, состояние тренда
  2. RSI перешагнул отметку в 70 и перекупил
  3. Закрытие торгового дня на более высоком уровне, чем в Брин-Бенде.

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

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

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

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

Основные риски, связанные с этой стратегией:

  1. Риск того, что индикатор пошлет ошибочный сигнал. Суждение индикатора может быть недействительным, когда на рынке произойдут крупные события.
  2. Стоп-позиции устанавливают слишком радикальные риски. Если стоп-позиции слишком малы, то они могут быть остановлены краткосрочными колебаниями рынка.
  3. Риск совпадения параметров. Если параметры показателя совпадают только на основе исторических данных, то параметры могут быть менее стабильными и могут не адаптироваться к изменениям рынка.

Соответствующие меры управления рисками:

  1. В то же время, по мнению экспертов, это может быть связано с неэффективным управлением рынком, поскольку в результате нарушения рыночных условий может возникнуть непредвиденная ситуация.
  2. Установка разумного стоп-диапазона, в сочетании с такими показателями, как средняя линия, для определения стоп-цены, чтобы избежать подкупа.
  3. Добавлен модуль Parameter Tuning, использующий метод Walk Forward Analysis для динамической оптимизации параметров, гарантируя стабильность параметров.

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

В этой стратегии есть много возможностей для оптимизации, в частности:

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

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

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

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

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

Эта стратегия является среднесрочной и краткосрочной количественной торговой стратегией, использующей различные технические показатели, такие как ADX, RSI, Brin Belt, для оценки состояния рынка. При определении существенных изменений в структуре рынка, она может быть использована для совершения операций по покупке и продаже. Логика стратегии может быть четко интерпретирована, что значительно снижает вероятность ошибочного определения одного технического показателя.

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

//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)

//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
dirmov(len) =>
    up = change(high)
    down = -change(low)
    plusDM = na(up) ? na : up > down and up > 0 ? up : 0
    minusDM = na(down) ? na : down > up and down > 0 ? down : 0
    truerange = rma(tr, len)

    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)

    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx


[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)

//Creo RSI

src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")


//Creo Bande di Bollinger

source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)

//Stabilisco regole di ingresso

if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
    strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
    //strategy.exit("exit", "COMPRA", loss = 90) 
    strategy.cancel(id="COMPRA")

if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
    strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
    //strategy.exit("exit", "VENDI", loss = 90)
    strategy.cancel(id="VENDI")

//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)