
Esta estrategia utiliza los indicadores de dinámica ADX, RSI y las bandas de Brin para determinar las tendencias del mercado y las situaciones de sobreventa y sobrecompra, para lograr una estrategia de comercio automático de baja y alta venta y salida en beneficio.
En función de los indicadores anteriores, se puede determinar la situación del mercado y establecer la siguiente estrategia de negociación:
Condiciones de compra:
Condiciones de venta:
Esta estrategia utiliza una combinación de varios indicadores para determinar el estado del mercado, evitando la probabilidad de error de un solo indicador. Al mismo tiempo, mediante la tendencia, el exceso de compras y ventas, se puede bloquear eficazmente el punto de inflexión del mercado y lograr una venta baja.
En comparación con el uso de un solo indicador de tendencia, esta estrategia puede capturar oportunidades a corto plazo con mayor rapidez. En comparación con el uso de un solo indicador de oscilación, esta estrategia puede capturar mejor la dirección de la tendencia. Por lo tanto, esta estrategia conserva las ventajas de seguir la tendencia y tiene la flexibilidad de operar en contra, una estrategia cuantitativa con una mayor eficiencia potencial.
Los principales riesgos de esta estrategia son los siguientes:
Las medidas de gestión de riesgos correspondientes:
El espacio para la optimización de esta estrategia se encuentra principalmente en los siguientes aspectos:
Optimización de los parámetros indicadores. Se puede introducir un algoritmo de optimización inteligente para optimizar independientemente los parámetros de las diferentes variedades.
Aumentar la ingeniería de características. Introducir más indicadores técnicos de precios, establecer modelos de apoyo para el entrenamiento de máquinas vectoriales y otros, mejorar la precisión de la señal.
Combinación de estrategias de ruptura. De acuerdo con las características de la situación de las diferentes variedades, aplica reglas de juicio basadas en canales, resistencia de soporte, etc., para capturar puntos de ruptura y aumentar la estabilidad de la estrategia.
Optimización del mecanismo de stop loss. Introducción de métodos de seguimiento de stop loss, stop loss móvil, etc., para lograr el ajuste dinámico de stop loss, bloqueo máximo de ganancias y control efectivo del riesgo.
Esta estrategia es una estrategia de comercio cuantitativa de corto y medio plazo, que utiliza varios indicadores técnicos para evaluar el estado del mercado, como ADX, RSI y Brin Belt, y realiza operaciones de compra y venta para evaluar los cambios significativos en la estructura del mercado. La lógica de la estrategia se puede interpretar con claridad y puede reducir considerablemente la probabilidad de error en el juicio de un solo indicador técnico. Al mismo tiempo, la estrategia también requiere que los indicadores de alerta emitan señales erróneas, establezcan riesgos como paros demasiado radicales y desviación de parámetros de pérdidas.
/*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)