Estrategia de cruce estocástico de varios plazos

El autor:¿ Qué pasa?, Fecha: 2023-10-24 14:44:00
Las etiquetas:

img

Resumen general

La Estrategia de cruce estocástico de múltiples plazos es una estrategia típica de seguimiento de tendencias. Calcula los valores de desviación estándar en diferentes plazos (por ejemplo, diarios, semanales, mensuales, etc.), construye múltiples líneas K y D, toma el promedio de estas líneas para construir promedios móviles, y va largo cuando la línea rápida cruza por encima de la línea lenta y corta cuando la línea rápida cruza por debajo de la línea lenta. Al combinar líneas de desviación estándar en múltiples plazos, esta estrategia puede filtrar eficazmente el ruido del mercado y capturar la tendencia predominante.

Estrategia lógica

La lógica central de esta estrategia es calcular la desviación estándar en múltiples marcos de tiempo y luego tomar el promedio para generar señales comerciales.

En primer lugar, la estrategia calcula los valores de K de la desviación estándar bajo diferentes parámetros en 5 grupos, correspondientes a plazos diarios, semanales y mensuales:

smoothK = input(55)
SMAsmoothK = input(13)  
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)

smoothK1 = input(89) 
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1) 

...

smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

Luego calcula D líneas con diferentes parámetros respectivamente:

smoothD = input(34)
d = sma(k, smoothD)  

...

smoothD4 = input(233) 
d4 = sma(k4, smoothD4)

A continuación, calcula el promedio de las líneas K y D para obtener la línea rápida Kavg y la línea lenta Davg:

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)

Por último, es largo cuando Kavg cruza por encima de Davg, y es corto cuando Kavg cruza por debajo de Davg:

long = crossover(Kavg, Davg)  
short = crossunder(Kavg, Davg)

Al combinar líneas de desviación estándar en múltiples marcos de tiempo, esta estrategia puede filtrar el ruido del mercado en marcos de tiempo más grandes y capturar la dirección de tendencia predominante.

Ventajas

  • Utiliza el poder predictivo de la desviación estándar a través de múltiples marcos de tiempo para filtrar el ruido y capturar tendencias
  • Flexibilidad para ajustar el período de retención ajustando los parámetros de los marcos de tiempo
  • La desviación tipo en sí tiene una fuerte tendencia en las siguientes características:
  • El cruce de la media móvil evita ser engañado por breakouts falsos únicos
  • Fácil de optimizar los períodos de media móvil para una mayor estabilidad

Riesgos y soluciones

  • Los cruces de la media móvil de múltiples marcos de tiempo pueden generar muchas señales falsas, optimizar los períodos de media móvil
  • Desviación estándar propensa a errores por movimientos volátiles, considere agregar filtros
  • Los períodos fijos no pueden adaptarse a los cambios del mercado, adoptan períodos de adaptación
  • Los períodos de retención largos corren el riesgo de perseguir los máximos y los mínimos, utilizan paradas de trailing para obtener ganancias
  • La dependencia del único indicador KDJ es limitada, se combina con otros indicadores

Soluciones:

  1. Añadir filtros para evitar señales de fuga falsas

  2. Utilizar períodos de adaptación basados en la volatilidad del mercado

  3. Emplear paradas de seguimiento para salir de las operaciones a tiempo

  4. Optimizar los períodos de media móvil para obtener el mejor equilibrio

  5. Incorporar más indicadores para mejorar la robustez

Oportunidades de mejora

Esta estrategia puede mejorarse aún más en los siguientes ámbitos:

  1. Incorporar otras señales de indicadores como MACD, Bandas de Bollinger para mejorar la calidad de la señal

  2. Añadir filtros de tendencia como dirección SMA, ADX para evitar operaciones contra tendencia

  3. Utilizar períodos de adaptación basados en la volatilidad del mercado

  4. Implementar paradas de seguimiento basadas en parámetros de estrategia para salir de las operaciones

  5. Optimizar los períodos de media móvil rápida y lenta para obtener los mejores parámetros

  6. Añadir filtros de entrada para evitar señales falsas de ruido a corto plazo

  7. Entrada de ruptura del ensayo después del cruce de medias móviles

  8. Evaluar diferentes estrategias de salida como la salida de la lámpara para optimizar las salidas

Conclusión

La Estrategia de Cruce Estocástico Multiframe combina la capacidad de seguimiento de tendencia del indicador estocástico y la estabilidad de las estrategias de promedio móvil. Al tomar el promedio de las líneas de desviación estándar K y D de varios períodos para generar señales, utiliza eficazmente el poder predictivo de la desviación estándar en diferentes marcos de tiempo, filtra el ruido del mercado y captura la tendencia predominante.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)


price = input(close)

///////////////////////////////
smoothK = input(55) 

SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)



smoothD = input(34)
d = sma(k, smoothD)


///////////////////////////

smoothK1 = input(89) 

SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

smoothD1 = input(55)
d1 = sma(k1, smoothD1)

//////////////////////////////////////

smoothK2 = input(144) 

SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)

smoothD2 = input(89)
d2 = sma(k2, smoothD2)

/////////////////////////////////////

smoothK3 = input(233) 

SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)

smoothD3 = input(144)
d3 = sma(k3, smoothD3)

////////////////////////////////////////////////

smoothK4 = input(377) 

SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

smoothD4 = input(233)
d4 = sma(k4, smoothD4)

/////////////////////////////////////////////////

Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)

Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)


///////////////////////////////////////
hline(50, color=gray)


long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50


last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) 
short_signal = crossover(last_short, last_long)



strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal) 

//len1 = input(3)

//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]

//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)



Más.