La Estrategia de negociación de ruptura gradual de acumulación tiene por objeto identificar las posibles fases de acumulación y distribución en el mercado utilizando los principios del análisis de Wyckoff, complementado con la detección de patrones de primavera y de impulso ascendente, para buscar oportunidades potenciales de compra y venta.
Utilice cruces de promedio móvil de diferentes longitudes para identificar las fases de acumulación y distribución. Cuando el precio de cierre cruza por encima del MA de longitud AccumulationLength, indica una fase de acumulación. Cuando el precio de cierre cruza por debajo del MA de longitud DistributionLength, indica una fase de distribución.
Utilice cruces de promedio móvil de diferentes longitudes para identificar patrones de resorte y empuje ascendente. Cuando el precio bajo cruza por encima del MA de longitud SpringLength, indica un resorte. Cuando el precio alto cruza por debajo del MA de longitud UpthrustLength, indica un empuje ascendente.
Ir largo cuando se observa un resorte durante una fase de acumulación. Ir corto cuando se observa un impulso ascendente durante una fase de distribución.
Establecer los niveles de stop loss. El stop loss largo se establece en close * (1 - Stop Percentage%). El stop loss corto se establece en close * (1 + Stop Percentage%).
Trazar formas en el gráfico para indicar los patrones de acumulación, distribución, resorte y empuje ascendente identificados para un fácil reconocimiento visual.
La identificación de las fases de acumulación y distribución utilizando el análisis de Wyckoff mejora la fiabilidad de las señales comerciales.
La confirmación de las señales con los patrones de resorte y empuje ascendente proporciona una validación adicional.
El stop loss ayuda a controlar la pérdida de una sola operación.
Las anotaciones del gráfico revelan claramente todo el proceso de enrollamiento de precios.
Los parámetros ajustables hacen que esta estrategia sea optimizable en todos los mercados y plazos.
Las whipssaws pueden generar señales falsas durante la acción de precios agitados.
El resorte y el empuje ascendente pueden fallar ocasionalmente.
Si se retira el stop loss, podría aumentar las pérdidas.
Los parámetros incompatibles para diferentes mercados pueden causar señales incorrectas.
Los sistemas mecánicos carecen de un control discrecional flexible.
Prueba de combinaciones óptimas de parámetros en todos los mercados y plazos.
Considera incorporar el volumen para confirmar la señal.
Establecer paradas dinámicas basadas en la volatilidad del mercado.
Incorpore factores fundamentales para evitar señales en eventos importantes.
Aplicar el aprendizaje automático para optimizar dinámicamente los parámetros.
La estrategia de negociación de ruptura de acumulación gradual integra el análisis de Wyckoff, las medias móviles, el reconocimiento de patrones y otras técnicas para identificar eficazmente la acción del precio en espiral y generar señales comerciales. Tiene señales confiables, riesgos controlados, visuales claros y otras ventajas. Como sistema mecánico, su discreción y adaptabilidad necesitan mejora. Las optimizaciones futuras implican optimización de parámetros, confirmación de volumen, mejora de stop loss, filtros fundamentales y más.
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 2h basePeriod: 15m 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/ // © deperp //@version=5 strategy("Wyckoff Range Strategy", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent) // Input Variables AccumulationLength = input(32, "Accumulation") DistributionLength = input(35, "Distribution") SpringLength = input(10, "Spring") UpthrustLength = input(20, "Upthrust") stopPercentage = input(10, "Stop Percentage") // Accumulation Phase isAccumulation = ta.crossover(close, ta.sma(close, AccumulationLength)) // Distribution Phase isDistribution = ta.crossunder(close, ta.sma(close, DistributionLength)) // Spring and Upthrust isSpring = ta.crossover(low, ta.sma(low, SpringLength)) isUpthrust = ta.crossunder(high, ta.sma(high, UpthrustLength)) // Strategy Conditions enterLong = isAccumulation and isSpring exitLong = isDistribution and isUpthrust enterShort = isDistribution and isUpthrust exitShort = isAccumulation and isSpring // Entry and Exit Conditions if (enterLong) strategy.entry("Long", strategy.long) if (exitLong) strategy.close("Long") if (enterShort) strategy.entry("Short", strategy.short) if (exitShort) strategy.close("Short") // Stop Loss stopLossLevelLong = close * (1 - stopPercentage / 100) stopLossLevelShort = close * (1 + stopPercentage / 100) strategy.exit("Stop Loss Long", "Long", stop=stopLossLevelLong) strategy.exit("Stop Loss Short", "Short", stop=stopLossLevelShort) // Plotting Wyckoff Schematics plotshape(isAccumulation, title="Accumulation Phase", location=location.belowbar, color=color.green, style=shape.labelup, text="Accumulation") plotshape(isDistribution, title="Distribution Phase", location=location.abovebar, color=color.red, style=shape.labeldown, text="Distribution") plotshape(isSpring, title="Spring", location=location.belowbar, color=color.blue, style=shape.triangleup) plotshape(isUpthrust, title="Upthrust", location=location.abovebar, color=color.orange, style=shape.triangledown)