Estrategia cuantitativa de la Cruz de Oro

El autor:¿ Qué pasa?, Fecha: 2023-11-22 14:39:33
Las etiquetas:

img

Resumen general

Esta estrategia calcula un indicador de volumen neto personalizado para implementar una estrategia comercial de compra en el cruce dorado y venta en el cruce de la muerte.

Principio de la estrategia

La lógica central de la estrategia es calcular un indicador de volumen neto (NV) personalizado. El indicador NV juzga la dirección de los cambios de precios. Si es positivo, toma el volumen diario. Si es negativo, toma el valor negativo del volumen diario. Si no cambia, toma 0.

La estrategia calcula entonces la línea media móvil simple de 3 días del indicador NV, respectivamente, como la línea cruzada dorada y la línea cruzada de la muerte.

Además, la estrategia también establece horarios de inicio y finalización parametrizados para controlar las horas de negociación.

Ventajas de la estrategia

La mayor ventaja de esta estrategia es que la estrategia es simple y clara, fácil de entender, ajustes de parámetros flexibles, variedades de operaciones personalizables, horarios de operaciones, etc. Además, esta estrategia pertenece a una estrategia de seguimiento de tendencias que puede capturar efectivamente las tendencias de precios, reducir la frecuencia de operaciones y lograr mayores rendimientos.

Los riesgos de la estrategia

Los principales riesgos de esta estrategia son:

  1. La estrategia de seguimiento diario no puede responder rápidamente a los cambios en las tendencias de los precios.

  2. La cruz de oro cuantitativa en sí tiene cierta histeresis, lo que puede conducir a una entrada tardía y pérdidas amplificadas.

  3. Incapaz de filtrar eficazmente el ruido del mercado y susceptible a las trampas.

Las medias móviles pueden utilizarse dinámicamente, combinadas con otros indicadores para reducir los riesgos.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Aumentar las estrategias de stop loss para controlar pérdidas individuales con métodos de stop loss móviles y de stop loss durante la noche.

  2. Aumentar los indicadores de filtrado y utilizar el MACD, el KDJ y otros indicadores para filtrar señales falsas y mejorar la estabilidad de la estrategia.

  3. Optimización de parámetros, búsqueda iterativa de la combinación óptima de parámetros mediante algoritmos genéticos, cadenas de Markov y otros métodos.

  4. La cartera estratégica puede combinarse con otras estrategias no relacionadas para diversificar aún más los riesgos y aumentar los rendimientos globales.

Conclusión

Esta estrategia implementa una tendencia simple y efectiva siguiendo cruces de oro cuantitativas. Aunque hay un cierto grado de histeresis, los parámetros son flexibles y fáciles de entender. Es una estrategia adecuada para principiantes. A través de la optimización continua, el efecto de la estrategia se puede mejorar gradualmente y reducir los riesgos.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 03:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="@DankCoins - Customized Net Volume")
src = input(defval = close, title = "VA Source")
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume



// Inputs //
VHigh = input(defval = 50, title = "VHigh Amount")
VLow = input(defval = -50, title = "VLow Amount")


// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2012)

MAV1 = sma(volume, 3)
MAV2 = -sma(volume, 3)

enterShort = crossunder(nv, MAV1)
exitShort = crossunder(nv, MAV2)
enterLong = crossover(nv, MAV2)
exitLong = crossover(nv, MAV1)

// Time Function 
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=enterShort and window())
strategy.exit("Exit Long", from_entry = "Long Entry",  when=exitLong and window())
strategy.exit("Exit Short", from_entry = "Short Entry",  when=exitShort and window())


// Plot
plot(nv, color=blue, title="NV")
plot(VHigh, color=red)
plot(VLow, color=red)
plot(MAV1, color=green)
plot(MAV2, color=green)

Más.