Estratégia de negociação de alta frequência baseada em bandas de Bollinger

Autora:ChaoZhang, Data: 2023-12-21 15:37:07
Tags:

img

Resumo

Esta estratégia implementa uma estratégia de negociação de alta frequência baseada no indicador de Bollinger Bands. Determina as bandas de Bollinger superior e inferior calculando o desvio padrão e a média móvel dos preços. Quando o preço toca a faixa média, são executadas negociações longas ou curtas. Cada negociação investe todo o capital com uma faixa de lucro de 0,5%. Esta estratégia é adequada para pares de negociação altamente voláteis e exchanges sem taxas.

Estratégia lógica

A estratégia usa o indicador Bollinger Bands para determinar se os preços atingiram níveis de sobrecompra ou sobrevenda. As bandas consistem em uma banda superior, banda inferior e banda média. A banda do meio é uma média móvel simples de n dias de preços. A banda superior é a banda do meio mais k vezes o desvio padrão de n dias de preços. A banda inferior é a banda do meio menos k vezes o desvio padrão. k é geralmente definido como 2.

Esta estratégia define o período de Bollinger para 20 dias e k para 2. Quando os preços tocam a faixa média, ele sinaliza os preços reverter de áreas extremas, gerando sinais de negociação. O sinal longo é acionado quando os preços cruzam acima da faixa média. O sinal curto é acionado quando os preços caem abaixo da faixa média.

Quando as posições são inseridas, todo o capital é investido (incluindo o capital próprio e o lucro/perda flutuante).

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Usar Bandas de Bollinger para identificar sinais de negociação é mais eficaz na detecção de extremos do que médias móveis simples.

  2. A abordagem de alta frequência obtém rapidamente lucros em ciclos comerciais curtos.

  3. Investir todo o capital maximiza o potencial de lucro.

  4. A definição de um intervalo de lucro efetivamente gerencia o risco e bloqueia os ganhos.

Análise de riscos

Existem também alguns riscos:

  1. As bandas de Bollinger são sensíveis aos parâmetros de entrada.

  2. A negociação de alta frequência requer trocas de taxas zero, caso contrário, as taxas corroem os lucros.

  3. Investir todo o capital é arriscado, os eventos do cisne negro podem desencadear grandes perdas.

  4. Uma faixa de lucros reduzida aumenta a frequência das transacções e a complexidade operacional.

Soluções:

  1. Otimizar os parâmetros de Bollinger para encontrar configurações ideais.

  2. Usem trocas de taxas zero como a Binance Spot.

  3. Definição de perdas de parada para limitar a perda máxima.

  4. Ampliar a gama de lucros para reduzir a frequência do comércio.

Optimização

Esta estratégia pode ser melhorada:

  1. Adicionando indicadores de volume como Volume no Balanço para filtrar falsificações.

  2. Otimizando os parâmetros de Bollinger para encontrar as melhores combinações.

  3. Utilizando intervalos de stop loss e take profit adaptativos, por exemplo, ampliando os intervalos à medida que as negociações ou ganhos se acumulam.

  4. Incorporar modelos de aprendizagem de máquina para prever sinais de compra/venda.

  5. Evitar negociações em torno de eventos importantes como relatórios de lucros baseados em fundamentos.

Conclusão

Esta é uma estratégia de alta frequência que usa Bandas de Bollinger para geração de sinal, dimensionamento completo de posições e pequenos lucros.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia Bollinger Bands", shorttitle="BB Strategy", overlay=true)

// Parámetros de las Bandas de Bollinger
length = input(20, title="Longitud")
mult = input(2.0, title="Multiplicador")

// Calcula las Bandas de Bollinger
basis = ta.sma(close, length)
upper_band = basis + mult * ta.stdev(close, length)
lower_band = basis - mult * ta.stdev(close, length)

// Condiciones para realizar operaciones
price_touches_basis_up = ta.crossover(close, basis)
price_touches_basis_down = ta.crossunder(close, basis)

// Monto inicial de inversión
monto_inicial = 10

// Lógica de la estrategia
if (price_touches_basis_up)
    qty = strategy.equity + strategy.netprofit // Invertir el total del capital más las ganancias en cada operación
    direction = close > basis ? strategy.long : strategy.short
    strategy.entry("Operacion", direction, qty = 1)

// Lógica para cerrar la operación con un movimiento del 0.5% (take profit)
target_profit = 0.005 // Actualizado a 0.5%

if (strategy.position_size != 0)
    direction = strategy.position_size > 0 ? strategy.long : strategy.short
    strategy.exit("Take Profit/Close", from_entry = "Operacion", profit = close * (1 + target_profit))

// Dibuja las Bandas de Bollinger en el gráfico
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")

// Muestra el monto inicial de inversión en la barra del título
var label lbl = label.new(na, na, "")
label.set_text(lbl, "Monto Inicial: $" + str.tostring(monto_inicial, "#.########"))
label.set_xy(lbl, bar_index, low)
label.set_color(lbl, color.new(color.blue, 0))


Mais.