A estratégia de negociação de ruptura gradual de acumulação visa identificar as possíveis fases de acumulação e distribuição no mercado, utilizando os princípios da análise de Wyckoff, complementada pela detecção de padrões de primavera e ascensão, para procurar possíveis oportunidades de compra e venda.
Usar cruzamento de médias móveis de diferentes comprimentos para identificar as fases de acumulação e distribuição. Quando o preço de fechamento cruza acima da MA do comprimento AccumulationLength, indica uma fase de acumulação. Quando o preço de fechamento cruza abaixo da MA do comprimento DistributionLength, indica uma fase de distribuição.
Usar cruzes médias móveis de diferentes comprimentos para identificar padrões de mola e upthrust. Quando o preço baixo cruza acima da MA do comprimento SpringLength, ele indica uma mola. Quando o preço alto cruza abaixo da MA do comprimento UpthrustLength, ele indica um impulso.
Ir longo quando uma mola é observada durante uma fase de acumulação.
Defina níveis de stop loss. A stop loss longa é definida como close * (1 - Stop Percentage%). A stop loss curta é definida como close * (1 + Stop Percentage%).
Traçar formas no gráfico para indicar padrões identificados de acumulação, distribuição, mola e empuxo ascendente para facilitar o reconhecimento visual.
Identificar as fases de acumulação e distribuição utilizando a análise Wyckoff melhora a confiabilidade dos sinais de negociação.
A confirmação de sinais com padrões de mola e de impulso ascendente fornece uma validação adicional.
O stop loss ajuda a controlar a perda de uma única negociação.
As anotações do gráfico revelam claramente todo o processo de enrolamento dos preços.
Os parâmetros ajustáveis tornam esta estratégia otimizável em todos os mercados e prazos.
Whipsaws podem gerar sinais falsos durante a ação do preço agitado.
A mola e o impulso ascendente podem falhar ocasionalmente.
A eliminação de perdas de parada pode aumentar as perdas.
Os parâmetros incompatíveis para diferentes mercados podem causar sinais incorretos.
Os sistemas mecânicos carecem de controlo discricionário flexível.
Teste combinações de parâmetros ideais em todos os mercados e prazos.
Considere incorporar o volume para confirmação do sinal.
Estabelecer paradas dinâmicas com base na volatilidade do mercado.
Incorporar fatores fundamentais para evitar sinais em eventos importantes.
Aplicar aprendizado de máquina para otimizar dinamicamente parâmetros.
A estratégia de negociação de ruptura de acumulação gradual integra análise de Wyckoff, médias móveis, reconhecimento de padrões e outras técnicas para identificar efetivamente a ação do preço de enrolamento e gerar sinais de negociação. Tem sinais confiáveis, riscos controlados, visuais claros e outras vantagens. Como um sistema mecânico, sua discrição e adaptabilidade precisam de melhoria.
/*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)