
A estratégia de negociação de ruptura de acumulação identifica as fases de acumulação e distribuição do mercado, usando o princípio da análise vetorial, auxiliada pelo julgamento de formas de arco-íris e inversão, procurando oportunidades potenciais de compra e venda.
O uso de cruzamentos de linhas médias de diferentes comprimentos para identificar fases de acumulação e distribuição. Quando o preço de fechamento atravessa a linha média de comprimento como AccumulationLength, é considerado uma fase de acumulação; Quando o preço de fechamento atravessa a linha média de comprimento como DistributionLength, é considerado uma fase de distribuição.
O uso de cruzamentos de equilíbrios de diferentes comprimentos é usado para identificar o arco-íris e a inversão. Quando o equilíbrio do comprimento do SpringLength no ponto mais baixo é considerado um arco-íris; Quando o comprimento do UpthrustLength no ponto mais alto é considerado um inverso.
Faça mais quando observa a forma de arco-e-lança na fase de acúmulo; faça vazio quando observa a forma de inversão na fase de distribuição.
Configure o nível de parada. A parada de posição longa é o preço de fechamento ((1 - percentual de parada de perda%), a parada de posição curta é o preço de fechamento ((1 + percentual de parada de perda%)).
Os gráficos indicam as fases de acúmulo, distribuição, arco-íris e inversão para facilitar a identificação.
O uso de métodos de análise vetorial para identificar as fases de acumulação e distribuição de acúmulo de mercado pode aumentar a confiabilidade dos sinais de negociação.
A combinação de arco-íris e inversão permite a verificação de sinais de negociação.
A configuração de Stop Loss permite um controle eficaz de perdas individuais.
Ao marcar no gráfico, é possível observar com clareza todo o processo de formação de acúmulo.
Os parâmetros da estratégia são ajustáveis e podem ser otimizados para diferentes mercados e ciclos de negociação.
O aglomerado pode causar um sinal de equilíbrio que emite um sinal errado.
A forma de arco-íris e a forma de inversa podem falhar.
A ruptura do stop loss pode aumentar os prejuízos.
Os parâmetros precisam ser ajustados para diferentes mercados, o que pode levar a sinais de negociação errados.
Os sistemas de transação automática podem não ser flexíveis o suficiente para o tempo de retorno à rua e precisam de monitoramento manual.
A combinação ideal de parâmetros pode ser testada em diferentes mercados em diferentes períodos.
Pode-se considerar a adição de um fator de volume de transação para confirmar o sinal de transação.
Pode-se definir um Stop Loss dinâmico, ajustando o nível de Stop Loss de acordo com as flutuações do mercado.
Pode-se considerar a inclusão de fatores fundamentais para evitar transações erradas em momentos importantes.
Os parâmetros de otimização dinâmica podem ser incorporados aos algoritmos de aprendizagem de máquina.
A estratégia de negociação de ruptura gradual integra vários métodos de análise técnica, como análise vetorial, indicadores de linha média e identificação de forma, que podem identificar efetivamente a dinâmica do mercado e gerar sinais de negociação. A estratégia possui vantagens como sinais de negociação confiáveis, riscos controláveis e exibição visual clara.
/*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)