Bollinger Band Dinâmica de Obtenção de Lucro e Estratégia Dinâmica de Adição de Posição

Autora:ChaoZhang, Data: 2024-03-22
Tags:

img

Estratégia geral

Esta estratégia é baseada no indicador de Bollinger Band. Ele abre posições quando o preço atinge a faixa superior ou inferior, e define a lógica de adição de lucro dinâmico e posição dinâmica. Quando o preço se recupera da faixa inferior e quebra a faixa média, a estratégia considera que uma tendência de alta se formou. Nesse momento, a estratégia adicionará posições quando o preço recuar para uma certa porcentagem da faixa média. Quando o preço finalmente quebra a faixa superior, a estratégia fecha posições para tirar lucros. Em uma tendência de queda, a estratégia adota a lógica de operação oposta. Através da adição de lucro dinâmico e posição dinâmica baseada em Bollinger Bands, essa estratégia pode obter mais lucros nos mercados de tendência.

Princípio da estratégia

Os principais princípios desta estratégia são os seguintes:

  1. Calcule as faixas superior, média e inferior das Bandas de Bollinger. As faixas superior e inferior são calculadas adicionando e subtraindo N vezes o desvio padrão da faixa média, onde N pode ser personalizado.

  2. Quando o preço de fechamento rompe a faixa inferior e nenhuma posição foi aberta antes, a estratégia abre uma posição longa; quando o preço de fechamento rompe a faixa superior e nenhuma posição foi aberta antes, a estratégia abre uma posição curta.

  3. Após a abertura de uma posição longa, se o preço de fechamento romper para cima através da faixa média, considera-se que uma tendência de alta se formou, e a variável baseCrossed é marcada como verdadeira.

  4. No caso de uma posição longa, se o preço de fechamento quebra a faixa inferior e a baseCrossed é verdadeira, e o preço atual caiu mais de 2% em relação ao preço de abertura original, a estratégia adiciona posições neste momento e redefine a baseCrossed para falsa ao mesmo tempo. O caso de uma posição curta é o oposto.

  5. Se o preço de fechamento atravessar a faixa superior ao manter uma posição longa, ou o preço de fechamento romper a faixa inferior ao manter uma posição curta, a estratégia fecha todas as posições, obtém lucros e redefine várias variáveis de marcador para se preparar para a próxima abertura.

Através da abertura dinâmica acima, adicionando posições e tomando lógica de lucro, esta estratégia pode operar de forma flexível em mercados de tendência para obter lucros mais elevados.

Análise das vantagens

  1. Dinâmica de lucro: Esta estratégia ajusta dinamicamente o nível de lucro através das bandas superior e inferior das Bandas de Bollinger.

  2. Adição de posição dinâmica: na fase de retração após a formação da tendência, a estratégia irá gradualmente adicionar posições, o que pode obter lucros mais altos nos mercados de tendência.

  3. Parâmetros flexíveis: Os parâmetros das bandas de Bollinger, tais como os valores N e P, podem ser ajustados de forma flexível para se adaptarem às diferentes características do mercado e estilos de negociação.

  4. Forte adaptabilidade: A banda de Bollinger é um indicador técnico clássico com uma boa capacidade de capturar tendências. Combinando-o com gestão dinâmica de posições, pode desempenhar um papel estável em vários mercados financeiros.

  5. Lógica clara: As condições de abertura e fechamento e a lógica de adição e redução de posições desta estratégia são muito claras e fáceis de entender, o que é conveniente para os traders entenderem e controlarem.

Análise de riscos

  1. Mercado oscilante: as estratégias de Bollinger Bands geralmente apresentam um desempenho fraco em mercados oscilantes.

  2. Reversão da tendência: no momento chave da reversão da tendência, esta estratégia pode apresentar um atraso no julgamento, levando à adição de posições na direção errada, resultando numa maior retirada.

  3. Situações extremas: em situações extremas (como subidas e quedas bruscas), a tendência das Bandas de Bollinger pode ser anormal, fazendo com que a estratégia falhe.

  4. Configurações de parâmetros: configurações de parâmetros inadequadas afetarão seriamente o desempenho desta estratégia.

  5. Eventos de cisne negro: se houver grandes eventos políticos e econômicos, essa estratégia pode enfrentar maior exposição a riscos.

Para controlar os riscos acima, podemos começar a partir de dois aspectos: 1) Definir parâmetros razoavelmente e otimizar parâmetros para diferentes alvos e condições de mercado; 2) Adicionar mais condições de filtragem à estratégia, como julgamento de tendência, filtragem de volatilidade, etc., para melhorar a qualidade dos sinais.

Direcção de otimização

  1. Filtragem da tendência: adicionar a lógica do julgamento da tendência ao abrir posições, como usar o arranjo de alta da MA como condição de filtragem para longo e o arranjo de baixa da MA como condição de filtragem para curto, o que pode melhorar a taxa de sucesso da captura da tendência.

  2. Filtragem de volatilidade: As bandas de Bollinger são na verdade um tipo de indicador de volatilidade. Indicadores de volatilidade como ATR e volatilidade histórica podem ser introduzidos para identificar o estado de volatilidade do mercado. As posições podem ser adequadamente reduzidas em estados de alta volatilidade e aumentadas em estados de baixa volatilidade, a fim de controlar melhor os riscos.

  3. Optimização de parâmetros dinâmicos: Os parâmetros das Bandas de Bollinger podem ser ajustados dinamicamente de acordo com as condições do mercado. Por exemplo, o valor de N pode ser aumentado em mercados de tendência e diminuído em mercados oscilantes. Isso requer o uso de aprendizado de máquina e outras tecnologias para encontrar os parâmetros ideais através de treinamento em dados históricos.

  4. Estratégias combinadas: Esta estratégia pode ser combinada com outras estratégias clássicas, como o MACD e o RSI, para formar estratégias combinadas, melhorando a robustez e a rentabilidade do sistema.

  5. Adicionar lógica de stop-loss: atualmente, esta estratégia não possui uma lógica de stop-loss clara.

  6. Optimização da gestão de posições: no processo de adição e redução de posições, métodos clássicos de gestão de posições, como a fórmula Kelly e o valor F óptimo, podem ser utilizados para maximizar os lucros sob riscos controláveis.

Através das otimizações acima referidas, a relação risco/recompensa desta estratégia pode ser melhorada, permitindo-lhe adaptar-se melhor aos ambientes de mercado em evolução e proporcionar retornos estáveis aos operadores.

Resumo

A estratégia Bollinger Bands é uma estratégia clássica de rastreamento de tendências. Baseada em Bollinger Bands, busca lucros de tendência mais altos ajustando dinamicamente as posições. Esta estratégia tem lógica clara, parâmetros flexíveis e forte adaptabilidade. É uma estratégia de negociação quantitativa digna de pesquisa e aplicação aprofundadas. Mas, ao mesmo tempo, devemos também ver que essa estratégia tem um desempenho ruim em mercados oscilantes e não tem a capacidade de lidar com situações extremas e eventos de cisne negro. Isso requer que nos concentramos na otimização de parâmetros, controle de risco e estratégia de combinação em aplicação real, e testemos regularmente a eficácia da estratégia em diferentes condições de mercado. Compreendendo profundamente a lógica interna desta estratégia e continuamente otimizando e melhorando, acredito que esta estratégia pode se tornar uma ferramenta importante para os traders quantitativos e os investidores trazerem retornos estáveis e de longo prazo.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//  Bollinger Bands 1Bb 상하한 크로스 롱숏 실행

strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
 // bb
length = input.int(12, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
    strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
    basisCrossed := true
if close > upper
    upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
    strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
    basisCrossed := false
if close > upper
    strategy.close("롱")
    strategy.close("추가롱")
    entryMade := false
    basisCrossed := false
    upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
    strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
    basisCrossed := true
if close < lower
    lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
    strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
    basisCrossed := false
if close < lower
    strategy.close("s")
    strategy.close("추가s")
    entryMade := false
    basisCrossed := false
    upperCrossed := false


Mais.