La estrategia doble de estocásticos juzga las zonas alcistas y bajistas mediante el cálculo de indicadores estocásticos del período actual y de múltiples marcos de tiempo, con el objetivo de comprar bajo y vender alto.
La estrategia calcula dos conjuntos de indicadores estocásticos simultáneamente. El primer conjunto es la estocástica del período actual, a saber, los valores K y D. El segundo conjunto es la estocástica de 3 veces el período actual, a saber, MTFK y MTFD.
Cuando el MTFK cruza por encima de 50 y el actual K es mayor que D, se genera una señal de compra, lo que indica una zona alcista para ir largo.
Por lo tanto, la estrategia utiliza indicadores estocásticos duales para juzgar las zonas alcistas y bajistas y realizar un seguimiento de las tendencias de los precios.
Específicamente, la lógica de entrada larga es:
longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD
La lógica de entrada corta es:
shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD
Donde mtfK es el valor K del período 3x, y mtfD es el valor D del período 3x. Las señales largas se generan cuando mtfK cruza por encima de 50 y k>d. Las señales cortas se generan cuando mtfD cruza por debajo de 50 y k
La estrategia también establece la lógica de stop loss. Cuando largo, si mtfD cruza por debajo de la banda superior, se genera una señal de cierre. Cuando corto, si mtfK cruza por encima de la banda inferior, se activa una señal de cierre.
Las ventajas de esta estrategia son:
El uso de la estocástica dual proporciona un juicio más preciso de las zonas alcistas y bajistas. El indicador del período actual juzga las tendencias a corto plazo mientras que el indicador del período más grande juzga las tendencias a largo plazo.
El comercio basado en el cruce de diferentes indicadores de marcos de tiempo puede realizar un seguimiento eficaz de las tendencias y lograr una compra baja y una venta alta.
La lógica de stop loss ayuda a controlar los riesgos y limitar las pérdidas hasta cierto punto.
La lógica de la estrategia es simple y clara, fácil de entender e implementar para el comercio en vivo.
La estrategia también tiene algunos riesgos:
Las estadísticas duales pueden generar señales falsas, causando operaciones innecesarias, por ejemplo, divergencias entre tendencias a corto y largo plazo causadas por eventos repentinos.
La configuración incorrecta de la pérdida de parada puede dar lugar a pérdidas ampliadas.
Las operaciones frecuentes generadas por la estrategia pueden afectar negativamente a las ganancias debidas a las comisiones.
La estrategia se basa únicamente en indicadores técnicos sin tener en cuenta los elementos fundamentales, que deben controlarse en cierta medida.
Soluciones:
Ajustar los parámetros de la estocástica dual para reducir las señales falsas.
Optimizar la lógica de stop loss y establecer distancias razonables de stop loss.
Ajustar los parámetros para reducir la frecuencia de las operaciones.
Preste atención a los eventos fundamentales significativos para evitar el comercio subjetivo.
La estrategia se puede optimizar en los siguientes aspectos:
Optimizar los parámetros de la estocástica dual para reducir las señales falsas.
Incorporar otros indicadores para filtrar las señales, como el MACD, las medias móviles, etc., evitando señales falsas.
Optimizar la estrategia de stop loss probando diferentes puntos y ratios de stop loss para controlar eficazmente los riesgos.
Incorporar indicadores de volumen de operaciones, como las rupturas de volumen, para evitar operaciones ineficaces durante las consolidaciones de precios.
Prueba diferentes períodos de retención: los períodos de retención demasiado cortos conducen a comisiones que consumen las ganancias, los períodos demasiado largos no detienen las pérdidas a tiempo.
Incorpore factores fundamentales, cerrando posiciones alrededor de eventos significativos para evitar ser conmocionado.
La estrategia de doble estocástico juzga las zonas alcistas y bajistas por el período actual y los indicadores estocásticos de múltiples períodos, logrando el objetivo de comprar bajo y vender alto. Tiene ventajas como una fuerte capacidad de seguimiento de tendencias, lógica simple y fácil negociación en vivo. Pero existen riesgos, que requieren ajuste de parámetros, optimización de pérdidas de parada e incorporación de otros técnicos o fundamentos para mejorar. Si se optimiza de manera integral y se prueba estrictamente, esta estrategia puede convertirse en un sistema muy práctico de seguimiento de tendencias.
/*backtest start: 2023-10-07 00:00:00 end: 2023-11-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD) len = input(54, minval=1, title="Length for Main Stochastic") smoothK = input(12, minval=1, title="SmoothK for Main Stochastic") smoothD = input(3, minval=1, title="SmoothD for Main Stochastic") upLine = input(80, minval=50, maxval=90, title="Upper Line Value?") lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?") trailStep=input(100,minval=10,title="Trialing step value") // current stochastic calculation k = sma(stoch(close, high, low, len), smoothK) d = sma(k, smoothD) //mtf stochastic calculation smoothed with period mtfK= sma(stoch(close, high, low, len), smoothK*3) mtfD= sma(k, smoothD*3) plot(k,"current TF k",blue,style=line, linewidth=2) plot(d,"current TF d",red,style=line, linewidth=2) plot(mtfK,"MTF TF k",black,style=line) plot(mtfD,"Multi TF d",green,style=line, linewidth=2) hline(upLine) hline(50) hline(lowLine) longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD if (longCondition) strategy.entry("Lungo", strategy.long) shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD if (shortCondition) strategy.entry("Corto", strategy.short) exitlong=crossunder(mtfD, upLine) exitshort=crossover(mtfK, lowLine) if (exitlong) strategy.exit("Esci lungo","Lungo",trail_points=trailStep) if (exitshort) strategy.exit("Esci corto","Corto",trail_points=trailStep) showZones = input(true, title="Show Bullish/Bearish Zones") // bullish signal rule: bullishRule = k >= mtfD // bearish signal rule: bearishRule = k <= mtfD // current trading State ruleState = 0 ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1]) bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)