Estrategia de trading cuantitativo basada en ADX, BB %B, AO y EMA


Fecha de creación: 2023-12-11 16:24:11 Última modificación: 2023-12-11 16:24:11
Copiar: 0 Número de Visitas: 782
1
Seguir
1621
Seguidores

Estrategia de trading cuantitativo basada en ADX, BB %B, AO y EMA

Descripción general

Esta estrategia se llama la estrategia de seguimiento de movimiento de cuatro factores de la pirámide. La estrategia utiliza el indicador de movimiento de la dirección promedio (ADX) para determinar la dirección de la tendencia, el porcentaje de la banda B de la banda Brin (BB % B) para determinar la fuerza relativa de las acciones, la igualdad mágica (AO) para determinar la cantidad de movimiento y el índice de promedio móvil de diferentes períodos (EMA) para determinar la amplitud, para lograr el seguimiento de la dinámica de los precios de las acciones, para perseguir las acciones fuertes y evitar los efectos de las acciones débiles.

Principio de estrategia

La estrategia utiliza cuatro indicadores técnicos diferentes para determinar el momento de comprar y vender. La lógica de determinación específica es la siguiente:

Condiciones de entrada múltiples: EMA de 21 días en 5 días, EMA de 200 días en 50 días, BB % B mayor que la línea de sobreventa establecida, AO mayor que el valor positivo establecido y ADX mayor que el valor establecido.

Condiciones de entrada: 5 días de EMA con un EMA de 21 días, 50 días de EMA con un EMA de 200 días, BB % B menor que la línea de venta por encima establecida, AO menor que el valor negativo establecido, ADX mayor que el valor establecido.

Análisis de las ventajas estratégicas

La estrategia integra varios indicadores para determinar la dirección de la tendencia y la fortaleza relativa de las acciones, lo que puede filtrar eficazmente las brechas falsas. Las ventajas específicas son las siguientes:

  1. El indicador ADX permite evaluar la existencia y la intensidad de una tendencia, evitando la apertura frecuente de posiciones en mercados convulsivos.

  2. El BB %B es un indicador que determina si una acción se encuentra en una posición alta o baja, evitando así la caída.

  3. El indicador AO determina si hay un fuerte apoyo dinámico en la compra, lo que garantiza la efectividad de la ruptura;

  4. La combinación de la horquilla dorada y la horquilla muerta de los indicadores de la EMA determina la dirección dominante del mercado y evita posiciones inversa.

En resumen, la estrategia permite controlar eficazmente el riesgo de las transacciones y seguir a los individuos fuertes en el mercado.

Análisis de riesgos

A pesar de que la estrategia utiliza una combinación de varios indicadores para controlar el riesgo, existen ciertos riesgos:

  1. El uso de múltiples combinaciones de indicadores de tipo índice es sensible al ajuste de parámetros, y una combinación de parámetros inadecuada puede no ser efectiva.

  2. Buscar demasiada dinámica puede perder el punto de inflexión real del mercado. Se debe controlar adecuadamente el ciclo de mantenimiento de la posición y detener el stop loss a tiempo.

  3. Indicadores como el EMA son retrasados y pueden no reflejar el impacto de los eventos repentinos en el tiempo. Se debe complementar adecuadamente con otros indicadores o reducir el ciclo de MA adecuadamente.

  4. Los eventos de gran magnitud pueden causar dispersión de los indicadores, y deben combinarse con un análisis fundamental, que puede desactivar la estrategia si es necesario.

Dirección de optimización

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. La búsqueda de la combinación óptima de parámetros mediante métodos como el aprendizaje automático.

  2. La adición de otros indicadores de tendencia de juicio, como CCI, MACD, etc., forma una combinación de indicadores de silicio para mejorar la precisión de juicio.

  3. Unirse a una estrategia de stop loss para controlar las pérdidas individuales.

  4. Establezca el tiempo de retención y evite la avaricia excesiva.

Resumir

Esta estrategia se llama la estrategia de seguimiento de la dinámica de los cuatro factores de la pirámide, que utiliza cuatro indicadores para determinar el momento de compra y venta, ADX, BB % B, AO y EMA, para lograr el seguimiento dinámico de las acciones fuertes. Esta estrategia puede determinar eficazmente la dirección de la tendencia y la fuerza relativa de las acciones, controlar el riesgo de negociación. El siguiente paso puede ser la optimización de parámetros, la adición de otros indicadores y la configuración de la duración de la posición para perfeccionar aún más la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//ADX + BB %B + AO + EMA

strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000)
take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100)
stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100)
bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100)
bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100)
ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2)
adx_value = input(title="ADX", type=input.integer, defval=15)

startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

ema5 = ema(close, 5)
ema21 = ema(close, 21)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

//BB %B
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)

//Awesome Oscillator
ao = sma(hl2,5) - sma(hl2,34)

// ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
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)
sig = adx(dilen, adxlen)

long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value
short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value

plot(ema5, color=color.blue)
plot(ema21, color=color.aqua)
plot(ema50, color=color.purple)
plot(ema200, color=color.red)
bgcolor(color=long_strategy ? color.green : na, transp=80)
bgcolor(color=short_strategy ? color.purple : na, transp=80)
    
if inDateRange and long_strategy
    strategy.entry("long", strategy.long)
    strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100)
if inDateRange and short_strategy
    strategy.entry("short", strategy.short)
    strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)