Estratégia de lucro dinâmico de banda de Bollinger

SMA
Data de criação: 2024-05-24 17:54:47 última modificação: 2024-05-24 17:54:47
cópia: 0 Cliques: 599
1
focar em
1617
Seguidores

Estratégia de lucro dinâmico de banda de Bollinger

Visão geral

A estratégia usa os indicadores das Bollinger Bands, fazendo short quando o preço toca o trajeto superior, fazendo over quando toca o trajeto inferior, e configura stop-loss dinâmico, e quando a posição atinge 1% de ganho, é eliminada. A ideia central da estratégia é que os preços sempre flutuam dentro da faixa de Bollinger, com a característica de retornar ao valor médio, portanto, pode ser feita uma operação reversa para obter ganhos de diferença de preço quando os preços se desviam muito da média móvel.

Princípio da estratégia

  1. Cálculo de médias móveis e diferença padrão: Use a média móvel simples (SMA) para calcular a média móvel do preço de fechamento (base) e, em seguida, calcule a diferença padrão do preço de fechamento em relação à média móvel (dev).
  2. Calcule a linha superior e inferior: base + dev*Multiplicador, sub-rail (lower) para base - dev *multiplicador, onde o multiplicador é o múltiplo da amplitude de oscilação.
  3. Geração de sinais de negociação: quando o preço de fechamento atravessa a trajetória e o preço de fechamento atual é menor do que o preço de abertura; quando o preço de fechamento atravessa a trajetória abaixo e o preço de fechamento atual é maior do que o preço de abertura, gera um sinal de fechamento.
  4. Stop-loss dinâmico: após a abertura da posição, o preço de stop-loss é calculado de acordo com o preço de abertura da posição e o percentual de stop-loss. Quando o preço atinge o preço de stop-loss, a posição é liquidada.
  5. Visualização: Mapeamento de bandas de Bolingbroke, médias móveis e sinais de negociação em gráficos.

Vantagens estratégicas

  1. Simples e eficaz: a lógica da estratégia é clara, usa apenas um indicador técnico e é fácil de entender e implementar.
  2. Ampla aplicabilidade: As Bollinger Bands são universais e podem ser usadas em uma variedade de diferentes padrões de negociação e mercados.
  3. Paradas dinâmicas: em comparação com paradas fixas, paradas dinâmicas permitem que o lucro da nota de lucro seja maximizado, enquanto o risco é controlado.
  4. Capturar uma tendência de forma eficiente: em uma tendência, quando o preço toca o caminho de cima ou de baixo, geralmente continua a seguir a direção original por um tempo, a estratégia pode aproveitar eficazmente essa oportunidade de tendência.

Risco estratégico

  1. Desempenho negativo em mercados de turbulência: A estratégia pode gerar sinais de negociação frequentes quando o mercado está em uma onda de turbulência ampla, com preços quebrando repetidamente dentro da faixa de Bollinger, resultando em um excesso de transações e aumento do custo de processamento.
  2. Retirada profunda na tendência: se a tendência persistir por muito tempo e os preços se desviarem da linha média por muito tempo, a retracção pode ser mais profunda devido à contração da estratégia.
  3. Dificuldade de escolha de parâmetros: os parâmetros da faixa de Bollinger (como comprimento, múltiplo) têm um grande impacto no desempenho da estratégia, mas não são os melhores parâmetros para todos os lugares.

Direção de otimização da estratégia

  1. Combinação de tendências: adicionar indicadores de tendências na estratégia (como a média móvel), pode suspender a negociação em um cenário de tendência ou negociar em movimento.
  2. Optimizar o Stop Loss: O Stop Loss pode ser ajustado dinamicamente com base em indicadores de volatilidade, como o ATR, a fim de obter uma melhor relação de risco-benefício.
  3. Combinação de vários fatores: considere a utilização de bandas de Bollinger em combinação com outros indicadores técnicos (como RSI, MACD, etc.) para melhorar a precisão do sinal e reduzir o falso sinal.
  4. Filtragem básica: após a geração de sinais de negociação, a estratégia pode ser confirmada novamente por dados básicos (como resultados, dados do setor, etc.), aumentando a estabilidade da estratégia.

Resumir

A estratégia utiliza a faixa de Bollinger para construir um sistema de negociação simples e eficaz, com o preço tocando o caminho para cima e para baixo como sinal, e ao mesmo tempo adota um modo de controle de risco de parar dinâmico. A estratégia tem um bom desempenho em situações de tendência, mas pode enfrentar problemas de negociação frequente em mercados de turbulência.

Código-fonte da estratégia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Future Price Prediction", overlay=true)

// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0

// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev

// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")

// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]

// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na

if longCondition
    longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
    shortTakeProfit := close * (1 - takeProfitPercentage / 100)

// Strateji Giriş ve Çıkış
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)

// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
    table.cell(data, 0, 0, "Current Price", text_color=color.white)
    table.cell(data, 1, 0, str.tostring(close))
    table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
    table.cell(data, 1, 1, str.tostring(basis))