As bandas de Bollinger e a estratégia de cruzamento de KD estocástico

Autora:ChaoZhang, Data: 2024-03-08 16:49:06
Tags:

img

Resumo

Esta estratégia combina dois indicadores técnicos, Bollinger Bands e Stochastic KD, para determinar pontos de entrada e saída. O objetivo é capturar o rebote após o mercado ser supervendido, controlando o risco de retirada. A estratégia entra em uma posição longa quando o preço de fechamento cai abaixo da faixa de Bollinger inferior e as linhas de Stochastic KD cruzam de forma alcista (linha K cruza acima da linha D).

Princípios de estratégia

  1. Calcular Bandas de Bollinger: Use a média móvel simples do preço como a faixa média, e as bandas superior e inferior são calculadas somando e subtraindo um múltiplo fixo do desvio padrão do preço da faixa média.

  2. Calcular KD estocástico: o valor K representa a posição relativa do preço de fechamento atual dentro da faixa dos preços mais altos e mais baixos nos últimos N períodos. O valor D é a média móvel simples de M dias do valor K.

  3. Condição de entrada: Quando o preço de fechamento atual ultrapassa a faixa de Bollinger inferior e as linhas estocásticas KD cruzam-se de forma alcista (linha K cruza-se acima da linha D), a estratégia entra numa posição longa.

  4. Condição de saída: quando o preço de fechamento corrente ultrapassa a faixa de Bollinger média ou ultrapassa a faixa de Bollinger superior, a estratégia fecha a posição.

Ao usar as Bandas de Bollinger para determinar se o preço está em um nível relativamente baixo e confirmar o sinal de reversão com o crossover de alta do Stochastic KD, a estratégia procura capturar o ponto de entrada.

Vantagens

  1. Ao combinar indicadores de preço e de dinâmica, a estratégia pode efetivamente capturar a recuperação após condições de sobrevenda.

  2. As bandas de Bollinger representam de forma dinâmica os níveis relativamente altos e baixos do preço, o que é mais objetivo e eficaz em comparação com os limiares fixos.

  3. O indicador KD estocástico reflete o estado de sobrecompra e sobrevenda do preço e as suas alterações de ímpeto, complementando as Bandas de Bollinger.

  4. Os níveis de stop-loss e take-profit são definidos de forma clara para controlar a exposição ao risco de cada operação.

  5. Os parâmetros são ajustáveis, tornando a estratégia adequada para diferentes mercados e prazos.

Riscos

  1. A estratégia pode apresentar um desempenho inferior em mercados de intervalo ou quando a tendência não é clara, exigindo indicadores adicionais de detecção de tendências para discernimento.

  2. O indicador de KD estocástico pode ocasionalmente dar sinais falsos, exigindo uma confirmação adicional utilizando outros métodos.

  3. A selecção dos parâmetros para as Bandas de Bollinger e o Stochastic KD deve ser otimizada através de backtesting.

  4. A estratégia não tem em conta o tamanho das posições e a gestão de fundos, limitando a sua capacidade de controlar os drawdowns.

Orientações de otimização

  1. Introduzir indicadores de tendência, tais como médias móveis, e aplicar a estratégia apenas quando a tendência estiver clara.

  2. Realizar confirmação secundária no sinal de cruzamento de alta do KD estocástico, como verificar se o valor K está no intervalo baixo.

  3. Otimizar os parâmetros das Bandas de Bollinger e do Stochastic KD para encontrar a melhor combinação.

  4. Incorporar na estratégia módulos de dimensionamento de posições e gestão de fundos, tais como a utilização do critério Kelly para calcular o tamanho das posições e definir níveis globais de stop-loss.

  5. Realizar a otimização dos parâmetros e o backtesting para diferentes mercados e prazos separadamente para melhorar a adaptabilidade da estratégia.

Conclusão

Este artigo apresenta uma estratégia de negociação baseada em Bandas de Bollinger e KD estocástico. A estratégia determina pontos de entrada e saída comparando a posição do preço em relação às Bandas de Bollinger e os sinais de cruzamento do KD estocástico, com o objetivo de capturar a recuperação após condições de sobrevenda enquanto controla o risco de retirada. As vantagens da estratégia estão em sua capacidade de descrever dinamicamente os níveis relativamente altos e baixos do preço e tomar decisões com base no estado de sobrecompra e sobrevenda do preço, fornecendo sinais claros e complementares. No entanto, a estratégia também tem certas limitações, como desempenho inferior em mercados de faixa, a possibilidade de sinais falsos do KD estocástico e a falta de dimensionamento de posição, entre outros. Na estratégia de negociação, a estratégia pode ser melhorada em termos de identificação de tendência, confirmação, otimização de sinal, robustez e adaptabilidade de acordo com as características específicas do mercado. Em geral, a estratégia de Bollinger Band


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands and KD Strategy with Take Profit", overlay=true)

// 輸入參數
length = input(14, title="Bollinger Bands Length")
mult = input(2, title="Bollinger Bands Multiplier")
kdLength = input(14, title="KD Length")
kdSmooth = input(3, title="KD Smooth")
kdD = input(3, title="KD D")

// 計算布林通道
basis = ta.sma(close, length)
upper_band = basis + mult * ta.stdev(close, length)
lower_band = basis - mult * ta.stdev(close, length)

// 計算KD指標
k = ta.stoch(close, high, low, kdLength)
d = ta.sma(k, kdSmooth)  // 使用sma計算KD D

// 判斷進出點的條件
price_below_lower_band = close < lower_band
cross_above_kd = ta.crossover(k, d)
price_above_upper_band = close > upper_band
cross_below_basis = ta.crossunder(close, basis)

// 策略進出點
if (price_below_lower_band and cross_above_kd)
    strategy.entry("Buy", strategy.long)
if (cross_below_basis or price_above_upper_band)
    strategy.close("Buy")

// 繪製布林通道
plot(upper_band, color=color.blue, title="Upper Band")
plot(lower_band, color=color.red, title="Lower Band")
plot(basis, color=color.green, title="Basis")

// 繪製KD指標
hline(80, "Overbought", color=color.red)
hline(20, "Oversold", color=color.green)
plot(k, color=color.blue, title="K")
plot(d, color=color.red, title="D")


Mais.