Estrategia de trading cuantitativo Vibration Box


Fecha de creación: 2023-12-27 14:45:41 Última modificación: 2023-12-27 14:45:41
Copiar: 0 Número de Visitas: 956
1
Seguir
1623
Seguidores

Estrategia de trading cuantitativo Vibration Box

Descripción general

La estrategia de comercio cuantitativo de la caja del tesoro es una estrategia de comercio en línea corta que utiliza el canal de la caja de Darvas para capturar las tendencias del mercado. La estrategia se basa principalmente en el indicador de la caja del tesoro para juzgar el movimiento del mercado y buscar oportunidades de comercio.

Principio de estrategia

  • Utiliza el parámetro length para configurar la longitud de la caja de vibración. La longitud predeterminada en esta política es de 5 líneas K.
  • Se puede juzgar la tendencia en base a los picos y bajas de los picos, y hacer más vacío en consecuencia.
  • Cuando el precio supera la caja del tesoro, se dibuja una línea TopBox verde en el gráfico. Esta es una señal de hacer más.
  • Cuando el precio cae por debajo de la caja del tesoro, se dibuja una línea BottomBox roja en el gráfico. Esta es una señal de falta.
  • Utiliza el sistema de líneas múltiples como indicador auxiliar de juicio. Cuando el precio es superior a la línea media de líneas múltiples y inferior a la línea media de líneas vacías.
  • Utiliza el indicador RVI para determinar las zonas de sobreventa y sobreventa. Cuando el RVI está por encima de la línea de la señal, es una señal de sobreventa. Cuando el RVI está por debajo de la línea de la señal, es una señal de cabeza vacía.

La entrada se realiza después de que se juzga la combinación de varios indicadores anteriores. El precio de parada es el lado opuesto de la caja de oro. El EXIT de parada utiliza la orientación de RVI para cerrar el pedido.

Análisis de las ventajas

  • Utiliza el canal de las cajas del tesoro para determinar la dirección de las tendencias del mercado y evitar perder la oportunidad de ver las grandes tendencias.
  • El canal de la caja del tesoro se forma fácilmente y la frecuencia de captación de la señal es alta.
  • El límite de pérdidas de la caja del tesoro es razonable y permite un buen control del límite de pérdidas.
  • La medición múltiple y el auxiliar de juicio RVI pueden mejorar la precisión de la toma de decisiones.

Análisis de riesgos

  • La posición de pérdida de la caja de oro es más amplia y el riesgo de pérdidas individuales es mayor.
  • En la mayoría de las posiciones, los ajustes a corto plazo pueden ser estancados.
  • La dirección de la formación del canal de la caja del tesoro no siempre es correcta, hay señales erróneas.
  • Los parámetros deben ajustarse adecuadamente para que los indicadores auxiliares se ajusten a la caja del tesoro.

Se puede reducir el riesgo mediante el ajuste adecuado de los puntos de parada. Además, los parámetros de los indicadores auxiliares también necesitan ser ajustados para que actúen de la mejor manera posible.

Dirección de optimización

  • Prueba los parámetros de las cajas de diferentes longitudes para encontrar la longitud óptima.
  • Optimizar los parámetros de los indicadores auxiliares para que se ajusten mejor a la caja de oro.
  • Intentar otros indicadores auxiliares para verificar aún más la señal, como KDJ, MACD, etc.
  • Prueba de las condiciones de stop loss y stop-loss para que la estrategia sea más estable.

Resumir

La estrategia de comercio cuantitativo de la caja de oro es una estrategia de comercio de línea corta más activa en general. Puede capturar los cambios de tendencia en el mercado a tiempo, aprovechando el canal de la caja de oro para abrir posiciones; y la combinación de indicadores auxiliares puede mejorar la precisión de la toma de decisiones. La estrategia tiene un carácter positivo de riesgo-beneficio, que vale la pena adoptar y optimizar continuamente.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xxy_theone
// https://www.youtube.com/watch?v=YYxlnFOX9sQ
// This strategy script has been made to backtest the strategy explained in the video above


//@version=5
strategy(shorttitle = "Darvas Box Test", title="TradeIQ Darvas Box Test", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, currency=currency.USD)

// === INPUT BACKTEST RANGE ===
var GRP1 = "Backtest Range"
fromDate = input(timestamp("7 Mar 2022 00:00 +0000"), "From", group=GRP1)
toDate = input(timestamp("19 Mar 2022 23:59 +0000"), "To", group=GRP1)
window() =>  true


var GRP3 = "Darvas Box"
boxp=input(5, "Box Length", group=GRP3)

LL = ta.lowest(low,boxp)
k1=ta.highest(high,boxp)
k2=ta.highest(high,boxp-1)
k3=ta.highest(high,boxp-2)

NH =  ta.valuewhen(high>k1[1],high,0)
box1 =k3<k2
TopBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, LL, 0)


plot(TopBox, linewidth=3, color=color.green, title="TBbox") 
plot(BottomBox, linewidth=3, color=color.red, title="BBbox")


var GRP4 = "MavilimW"

fmal=input(3,"First Moving Average length", group=GRP4)
smal=input(5,"Second Moving Average length", group=GRP4)
tmal=fmal+smal
Fmal=smal+tmal
Ftmal=tmal+Fmal
Smal=Fmal+Ftmal

M1= ta.wma(close, fmal)
M2= ta.wma(M1, smal)
M3= ta.wma(M2, tmal)
M4= ta.wma(M3, Fmal)
M5= ta.wma(M4, Ftmal)
MAVW= ta.wma(M5, Smal)
col1= MAVW>MAVW[1]
col3= MAVW<MAVW[1]
colorM = col1 ? color.blue : col3 ? color.red : color.yellow

plot(MAVW, color=colorM, linewidth=2, title="MAVW")


var GRP5 = "Relative Vigor Index"
len = input.int(10, title="Length", minval=1, group=GRP5)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset", minval = -500, maxval = 500, group=GRP5)
//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)


var longStopSet = false

long = ta.crossover(close,TopBox) and close > MAVW ? true : false
longClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossunder(rvi,sig) ? true : false
strategy.entry("Long Position", strategy.long, when = long and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(longStopSet==false and strategy.position_size > 0)
    strategy.exit("exit", "Long Position", stop=BottomBox)
    longStopSet := true
if(strategy.position_size==0)
    longStopSet := false
strategy.close("Long Position", when = longClose)

var shortStopSet = false

short = ta.crossunder(close,BottomBox) and close < MAVW ? true : false
shortClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossover(rvi,sig) ? true : false
strategy.entry("Short Position", strategy.short, when = short and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(shortStopSet==false and strategy.position_size < 0)
    strategy.exit("exit", "Short Position", stop=TopBox)
    shortStopSet := true
if(strategy.position_size==0)
    shortStopSet := false
strategy.close("Short Position", when = shortClose)