
La estrategia de selección de ADX de doble línea media identifica la tendencia mediante la combinación de la línea media 2⁄20 y el indicador ADXR para generar una señal de negociación en la etapa inicial de la tendencia. La estrategia primero utiliza la media móvil 2⁄20 para determinar la dirección de la tendencia de precios, y luego se combina con el indicador ADXR para confirmar aún más la señal de tendencia, lo que genera una señal de negociación más confiable.
La lógica central de la estrategia de selección de ADX de línea recta se basa en las siguientes partes:
2⁄20 promedio móvil del índice (EMA)
Indicador ADXR
Señales de comercio
La principal innovación de la estrategia es la utilización de indicadores ADXR para identificar tendencias en la etapa inicial y combinarlas con señales de la estrategia de línea recta tradicional, lo que mejora la calidad de la señal y aumenta la estabilidad de la estrategia.
Las principales ventajas de la estrategia de selección de ADX de doble línea son:
Las estrategias de ADX de línea recta doble también presentan los siguientes riesgos principales:
La configuración incorrecta de los parámetros ADXR puede causar oportunidades de negociación perdidas.
En situaciones especiales, puede haber más señales falsas.
Los parámetros de la EMA son fijos y no pueden adaptarse a los cambios del mercado.
La incapacidad de identificar las zonas de fluctuación de los precios puede generar demasiadas transacciones no válidas.
La estrategia de selección de ADX de doble línea equitativa puede optimizarse aún más en los siguientes aspectos:
Los parámetros de la EMA se optimizan para que puedan cambiar automáticamente según las circunstancias.
El rango de parámetros de ADXR se ha optimizado para incluir más señales de negociación efectivas.
Añadir indicadores adicionales para juzgar la tendencia, combinar la generación de señales y mejorar la calidad.
Aumentar las estrategias de stop loss, establecer criterios de stop loss y controlar el riesgo de una sola operación.
Optimización de las estrategias de gestión de fondos para que se ajusten automáticamente las posiciones de acuerdo con el estado de la cuenta.
La estrategia de selección de ADX de doble línea media mejora la calidad de la señal mediante una combinación innovadora de la estrategia tradicional de doble línea media con el indicador ADXR, mejora la estabilidad de la estrategia, es capaz de identificar eficazmente las tendencias en la etapa inicial, y tiene un mejor rendimiento en la retrospectiva histórica. La estrategia tiene un gran espacio de optimización y puede mejorarse en muchos aspectos, lo que la hace muy adaptable y rentable en mercados más complejos.
/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 04/04/2022
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength
// of the Average Directional Movement Index (ADX). It's calculated by taking
// the average of the current ADX and the ADX from one time period before
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
// and weakening trends. However, because it represents an average of ADX, values
// don't fluctuate as dramatically and some analysts believe the indicator helps
// better display trends in volatile markets.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
fADX(Len) =>
up = ta.change(high)
down = -ta.change(low)
trur = ta.rma(ta.tr, Len)
plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
ADXR(LengthADX,LengthADXR,Signal1,Signal2) =>
pos = 0.0
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos := xADXR < Signal1 ? 1 : xADXR > Signal2 ? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & ADXR', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ ADXR ═════●'
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input.float(13, step=0.01)
Signal2 = input.float(45, step=0.01)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosADXR = ADXR(LengthADX,LengthADXR,Signal1,Signal2)
iff_1 = posEMA20 == -1 and prePosADXR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosADXR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
strategy.entry('Long', strategy.long)
if possig == -1
strategy.entry('Short', strategy.short)
if possig == 0
strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)