Estratégia de negociação de média móvel oscilante com volume de banda de Bollinger tamponada


Data de criação: 2024-01-05 12:27:02 última modificação: 2024-01-05 12:27:02
cópia: 1 Cliques: 313
1
focar em
1166
Seguidores

Estratégia de negociação de média móvel oscilante com volume de banda de Bollinger tamponada

Visão geral

Esta estratégia é baseada no indicador de Brin e no indicador de médias móveis oscilantes e constrói um canal de preços que emite sinais de negociação através da ruptura do limite superior e inferior do canal. Combina a auto-adaptabilidade do Brin e a flexibilidade do indicador oscilante, capaz de capturar mudanças de tendências de mercado em tempo hábil.

Princípio da estratégia

Esta estratégia utiliza a trajetória de Brin e a média móvel oscilante para construir um canal de preços. A trajetória de Brin, a trajetória de Brin de 21 ciclos, a trajetória de Brin, a trajetória de Brin e a trajetória de Brin se estendem para cima e para baixo, respectivamente, por um intervalo percentual. A média móvel oscilante é baseada na trajetória de Brin e se estende ou encolhe quando há uma região de super-compra ou super-venda.

Em particular, a fórmula de cálculo da órbita de Bryn é:

中轨 = N日收盘价的移动平均线 

A fórmula para calcular a subida e a descida do trem é:

上轨 = 中轨 + WidthDev * 布林带N日标准差  
下轨 = 中轨 - WidthDev * 布林带N日标准差  

Onde WidthDev representa o intervalo percentual que se estende para cima e para baixo.

A média móvel oscilante baseia-se na trajectória média e se estende ou se contrai de acordo com certas regras. Quando o mercado entra em um estado de sobrecompra ou sobrevenda, ele se estende mais longe da trajectória média, ampliando as oportunidades de fazer mais curto-circuito; Quando o mercado se acalma, ele se contrai para a trajectória média.

Em resumo, esta estratégia descreve o canal de preços através da faixa de Brin e usa o indicador de médias móveis oscilantes para determinar o momento de entrada, realizando uma transação de ruptura. Faça mais quando o preço sobe de baixo para cima e para cima quando o preço sobe para baixo e para baixo quando o preço sobe para baixo e para baixo.

Análise de vantagens

  1. Refletindo sobre a volatilidade do mercado O Brinband é capaz de refletir a volatilidade do mercado em tempo real e as tendências de mudança, e os tracks ascendentes e descendentes são ajustados de acordo com a variação da taxa de flutuação.

  2. Redução de sinais falsos O indicador de média móvel oscilante pode efetivamente reduzir os falsos sinais gerados pela banda de Brin, aumentando a largura do canal da banda de Brin e prolongando o tempo de posse, obtendo mais lucro.

  3. Capturar a reversão de tendência em tempo hábil A intersecção de uma média móvel de correlação ascendente e descendente e uma média móvel oscilante fornece vantagens de tempo e preço para emitir sinais de negociação, o que permite capturar efetivamente os ajustes críticos de múltiplos e ativos e capturar a reversão da tendência do mercado em tempo hábil.

Análise de Riscos

  1. Configuração de parâmetros da faixa de Bryn A configuração incorreta dos parâmetros da faixa de Bryn, como o ciclo de cálculo e o número de duplicados padrão de diferença, pode levar a um intervalo de rotação muito grande ou muito pequeno, gerando uma grande quantidade de falsos sinais e afetando a estabilidade da estratégia.

  2. Terremoto muito forte Se a amplitude de oscilação da média móvel de oscilação for muito grande, ela pode levar ao ponto de parada muito longe, aumentando o risco de perdas.

  3. Não voltaremos a tempo. Quando o mercado está em um momento de turbulência ou sem uma tendência clara, os sinais de negociação emitidos pelos indicadores de bandas de brinks e médias móveis oscilantes podem ser atrasados e não refletir as mudanças de preços em tempo hábil, o que leva ao risco de uma reversão prematura.

Direção de otimização

  1. Parâmetros da faixa de Bryn optimizados
    É possível testar diferentes parâmetros de ciclo, múltiplos de desvios padrão, escolhendo a combinação de parâmetros que produzem a melhor frequência de sinal e menos falsos.

  2. Parâmetros de otimização de médias móveis oscilantes É possível testar diferentes amplitudes e ciclos de vibração, selecionando parâmetros que capturem tendências e reduzem o atraso do sinal.

  3. Adicionar condições de filtragem Pode basear-se em sinais de cruzamento de bandas de Brin e médias móveis oscilantes, adicionando filtros de indicadores auxiliares, como volume de transação, para excluir alguns sinais de negociação ineficientes.

  4. Portfólio de Estratégias A estratégia pode ser usada em combinação com outras estratégias de rastreamento de stop loss ou estratégias de aprendizado de máquina para controlar ainda mais o risco e melhorar a estabilidade.

Resumir

Esta estratégia baseia-se no indicador de canais de adaptação da faixa de Brin e nas médias móveis oscilantes, realizando uma combinação orgânica de acompanhamento de tendências e captura de reversão de tendências. Ele combina os benefícios de ambos os indicadores, levando em conta a volatilidade do mercado e a flexibilidade dos sinais de negociação, permitindo negociações de ruptura estáveis e eficientes.

Código-fonte da estratégia
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//                               Hull Cloud v2 by SEASIDE420
strategy("Hull Moving Average Cloud v2", shorttitle="hull_cloud_v2", overlay=true, commission_type=strategy.commission.percent, commission_value=0.075, default_qty_type=strategy.percent_of_equity, max_bars_back=200, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
hullperiod=input(title="HullMA Period",defval=210, minval=1)
Width=input(title="Cloud Width",defval=200, minval=2)
price=input(ohlc4,title="Price data")
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) 
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) 
FromYear = input(defval = 2017, title = "From Year", minval = 2017) 
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) 
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) 
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) 
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) 
window() => true
n2ma=2*wma(price,round(hullperiod/2))
nma=wma(price,hullperiod)
diff=n2ma-nma
sqn=round(sqrt(hullperiod))
n2ma1=2*wma(price[1],round(hullperiod/2))
nma1=wma(price[1],hullperiod)
diff1=n2ma1-nma1
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
Hull_Line=n1-n1[1]/n2[1]
Hull_retracted=if(n1>n2)
    Hull_retracted=Hull_Line-Width
else
    Hull_retracted=Hull_Line+Width
c1=(Hull_retracted*n1)/price[1] 
c2=(Hull_retracted*n2)/price[1]
c4=c1>c2?green:red
c2p=plot(c2, color=black, linewidth=1)
c3p=plot(price, color=black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
plot(cross(c1, c2) ? c1 : na, style = circles,color=c4, linewidth = 4) 
if (price<c2)
    strategy.close("BUY", when=window())
if (price>c2)                       
    strategy.close("SELL", when=window())
if (price[1]>c2 and price[1]>c1)             
    strategy.entry("BUY",strategy.long, when=window())
if (price[1]<c1 and price[1]<c2)            
    strategy.entry("SELL",strategy.short, when=window())//           /L'-, 
//                               ,'-.      `   ````                 /  L '-, 
//     .                    _,--dMMMM\        `   ` ` '`..         /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `     ,<>          /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\          ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//                                                                                  :D