Estrategia de inversión de tendencia basada en el indicador ADX

El autor:¿ Qué pasa?, Fecha: 2023-09-13 17:02:31
Las etiquetas:

Esta estrategia se llama Estrategia de reversión de tendencia basada en el indicador ADX. Utiliza el indicador ADX para medir la fuerza de la tendencia y capturar oportunidades de reversión cuando hay sobrecompra / sobreventa.

ADX significa índice direccional promedio, que refleja la fuerza de una tendencia.

El DMI incluye las líneas DI+ y DI-. DI+ por encima de DI- muestra una tendencia alcista, mientras que DI- por encima de DI+ indica una tendencia bajista.

La lógica de negociación es:

  1. Cuando el ADX está por encima de 45, la tendencia se considera muy pronunciada.

  2. Si DI+ está por debajo de DI- entonces, señala un estado de sobreventa y una oportunidad de inversión de tendencia, yendo largo.

  3. Por el contrario, si el DI- está por debajo del DI+, sugiere condiciones de sobrecompra y oportunidad de inversión para ir corto.

  4. Tome ganancias a tiempo después de la reversión.

La ventaja es el uso de ADX para determinar puntos de reversión de tendencia fuertes. Los valores altos de ADX filtran las señales falsas de los mercados variados de manera efectiva.

En conclusión, el ADX es experto en medir el momento de una fuerte inversión de tendencia.


/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='DMI swings',title='DMI swings', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true        // create function "within window of time"

[pos_dm, neg_dm, avg_dm] = dmi(14, 14)

//Entry 
strategy.entry(id="long", long = true, when = avg_dm > 45 and pos_dm < neg_dm and window())

//Exit
strategy.close("long", when = avg_dm > 45 and pos_dm > neg_dm and window())

Más.