O recurso está a ser carregado... Carregamento...

Estratégia de avanço da oscilação das bandas de Bollinger

Autora:ChaoZhang, Data: 2023-11-01 16:45:54
Tags:

img

Resumo

Esta estratégia combina as Bandas de Bollinger e o indicador de Aroon para lucrar com oscilações e avanços em mercados voláteis.

Estratégia lógica

A estratégia utiliza principalmente dois indicadores para identificar oportunidades de negociação e pontos de saída.

Primeiro, as Bandas de Bollinger. Consiste de uma banda média, uma banda superior e uma banda inferior. A banda média é uma média móvel simples do preço de fechamento em n períodos. A banda superior é a banda média + k desvios padrão. A banda inferior é a banda média - k desvios padrão. Uma ruptura ascendente da banda média da banda inferior sinaliza entrada longa. Uma ruptura descendente da banda média da banda superior sinaliza entrada curta. A estratégia usa as Bandas de Bollinger para identificar pontos de oportunidade em meio a tendências de oscilação, entrando em torno de avanços da banda média.

Em segundo lugar, o indicador Aroon. Ele reflete a força relativa do preço mais alto e mais baixo em n períodos. Aroon pode determinar tendências e oportunidades. Quando a linha Aroon Up é superior a um limiar, indica uma tendência ascendente. Quando a linha Aroon Down é superior a um limiar, indica uma tendência descendente. A estratégia usa Aroon Up para confirmar uma tendência ascendente e Aroon Down para determinar o stop loss.

Combinando os dois indicadores, a estratégia vai longo quando ocorre uma ruptura de Bollinger e Aroon Up é superior a um limiar.

Vantagens

  1. A combinação de vários indicadores melhora a precisão. Um único indicador é suscetível ao ruído do mercado. A combinação de Bollinger Bands e Aroon pode filtrar sinais falsos.

  2. A Bollinger Bands possui uma forte capacidade de identificação de tendências e pode detectar oportunidades de avanço a curto prazo.

  3. Controle de risco adequado. Stop loss e Aroon Down controlam o risco de queda. O dimensionamento da posição também limita a perda por negociação.

  4. Em comparação com as estratégias de tendência, esta estratégia tem melhor desempenho em mercados oscilantes.

Riscos

  1. As Bandas de Bollinger podem ser imprecisas, eventos repentinos no mercado podem invalidar as Bandas de Bollinger.

  2. Os parâmetros de Aroon precisam de otimização. Diferentes mercados precisam de parâmetros de Aroon ajustados para melhores resultados.

  3. O intervalo de stop loss deve ser relaxado adequadamente para evitar toques repetidos.

  4. A estratégia é adequada para os mercados oscilantes.

Optimizações

  1. Otimizar os parâmetros de Bollinger, usar Bandas de Bollinger adaptativas.

  2. Otimizar parâmetros dinâmicos de Aroon. diferentes ativos e prazos precisam de parâmetros diferentes de Aroon. Pesquisa de otimização dinâmica.

  3. Adicionar filtros como RSI para evitar sobrecompra/supervenda. Melhora ainda mais a precisão dos sinais de estratégia.

  4. Utilize o aprendizado de máquina para otimizar o stop loss.

  5. Os indicadores de volume podem evitar falsos sinais de ruptura de Bollinger.

Conclusão

Em geral, esta é uma estratégia de negociação de oscilação típica. Identifica oportunidades de negociação combinando Bollinger Bands e Aroon, capazes de capitalizar as oscilações de curto prazo do mercado. Com stop loss, gerenciamento de risco e otimização de parâmetros adequados, é adequado para mercados de variação. Mas otimização e controle de risco são necessários para evitar aplicá-lo em mercados de tendência. Com melhorias adicionais, pode se tornar uma estratégia quantitativa muito prática.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 21:00:00
period: 1m
basePeriod: 1m
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/
// © relevantLeader16058

//@version=4
// strategy(shorttitle='Bollinger bands And Aroon Scalping',title='Bollinger bands And Aroon Scalping (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


// BB inputs and calculations
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)


lengthAr = input(288, minval=1)
AroonUP = 100 * (highestbars(high, lengthAr+1) + lengthAr)/lengthAr
AroonDown = 100 * (lowestbars(low, lengthAr+1) + lengthAr)/lengthAr


Confirmation = input(90, "Aroon Confirmation")
Stop = input(70, "Aroon Stop")

Bullish = crossunder (close, basis)
Bearish = crossunder (close, upper)

//Entry 

strategy.entry(id="long", long = true, when = Bullish and AroonUP > Confirmation and window())

//Exit

strategy.close("long", when = Bearish or AroonUP < Stop and window())




Mais.