Estratégia do indicador BOLL de média móvel de supertendência


Data de criação: 2023-12-01 16:29:56 última modificação: 2023-12-01 16:30:43
cópia: 0 Cliques: 954
1
focar em
1619
Seguidores

Estratégia do indicador BOLL de média móvel de supertendência

Visão geral

A estratégia BOLL é uma estratégia de stop loss que segue os movimentos reais da média ATR. A estratégia usa o indicador BOLL para traçar um canal de tendência em um gráfico e, em combinação com o indicador Bollinger Bands, para emitir um sinal de compra e venda.

Princípio da estratégia

A estratégia usa dois parâmetros principais, o ciclo de crescimento e o multiplicador, que são 10 e 3, respectivamente, para calcular a mediana de ultra-trend. A fórmula de cálculo específica é a seguinte:

Linha de alta: preço de fechamento - (multiplicado pela amplitude real média do ATR) Linha inferior: preço de fechamento + (multiplique × ATR média real amplitude de flutuação)

Quando o preço de fechamento é superior ao trajeto ascendente do ciclo anterior, é considerado um sinal de multi-cabeça; quando o preço de fechamento é inferior ao trajeto descendente do ciclo anterior, é considerado um sinal de zero-cabeça.

A estratégia também combina o indicador da faixa de Brin, com a linha central como a linha de referência, separando a linha superior e inferior de duas diferenças padrão da linha central. Um sinal de compra é gerado quando o preço quebra a linha média de baixo para cima; um sinal de venda é gerado quando a linha média é quebrada de cima para baixo.

Vantagens estratégicas

  1. O uso da dinâmica do ATA para calcular a amplitude de flutuação permite capturar rapidamente as mudanças de tendência do mercado
  2. Combinação com o indicador BRI para tornar os sinais de negociação mais confiáveis
  3. Parâmetros personalizáveis para diferentes cenários de mercado

Risco estratégico

  1. É propenso a sinais errados em situações de tremores.
  2. Parâmetros mal definidos podem causar transações frequentes
  3. Não é possível determinar o ponto de viragem da tendência, há um certo atraso

Direção de otimização

  1. Optimizar os parâmetros do ciclo ATR para reduzir a transação de ruído dos filtros
  2. Combinado com outros indicadores, o critério de suporte ao nível de resistência reduz a probabilidade de retorno de lucro
  3. Adição de módulo de gestão de fundos para controlar perdas individuais

Resumir

A estratégia do indicador BOLL de linha de equilíbrio de tendência ultra integra os benefícios de vários indicadores técnicos, usa um mecanismo de stop loss de rastreamento dinâmico para rastrear efetivamente as tendências do mercado. Os parâmetros da estratégia são personalizáveis, adaptáveis e são uma estratégia de rastreamento de ruptura recomendada.

Código-fonte da estratégia
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
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 = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short)
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)