
A estratégia integra vários indicadores técnicos, incluindo indicadores de tendência ultrapassada, médias móveis binárias e bandas Brin, para aproveitar os benefícios de cada indicador e obter sinais de negociação mais precisos.
A estratégia usa o ATR de 12 ciclos e a média dos preços para calcular os trajectos de alta e baixa de uma tendência excessiva, para julgar os sinais de alta e baixa de uma tendência de alta e baixa de acordo com o preço. Ao mesmo tempo, usa a média móvel binária de 200 ciclos como um indicador auxiliar para julgar a tendência. Além disso, a estratégia usa o Brin para determinar os melhores momentos de entrada e parada.
Quando o preço entra na trajectória superior, gera um sinal de compra; Quando o preço entra na trajectória inferior, gera um sinal de venda. Quando o preço quebra a trajetória superior ou inferior, a marca e o texto são desenhados na trajetória correspondente.
As médias móveis binárias são traçadas acima ou abaixo da curva de preços, representadas em branco. São usadas para determinar a direção da tendência geral.
A faixa de Brin é usada para encontrar os melhores momentos de entrada e parada. Sua trajetória ascendente e descendente forma um canal em torno da oscilação de preços, que pode ser usada para determinar quando o preço saiu da faixa normal, ou seja, oscilação fora do tempo.
Após o lançamento, a estratégia usa o stop loss e o stop-loss para bloquear o lucro ou reduzir os prejuízos. A redução automática da posição é realizada através da configuração do preço de stop loss e do preço de stop-loss.
A estratégia integra vários indicadores, que permitem aproveitar ao máximo as vantagens de cada indicador para um sinal de negociação mais preciso.
O supertrend tem a capacidade de filtrar o ruído do mercado, evitando a frequência de negociação. A média móvel binária pode determinar a tendência geral e evitar a negociação de contra-clima. A faixa de brinquedos pode capturar o melhor momento para entrar e parar os perdas.
O uso de sinais móveis permite obter dicas de negociação em tempo real. O stop loss automático bloqueia os lucros e reduz as perdas.
Como a estratégia integra vários indicadores, aumenta a complexidade da estratégia e aumenta a probabilidade de erros. A configuração de indicadores também pode causar oportunidades de negociação perdidas ou gerar sinais errados.
Além disso, a configuração de stop loss muito radical também pode causar aumento de perdas. A estabilidade do sinal móvel também pode afetar a eficácia da parada de lucro em tempo hábil.
É possível testar diferentes configurações de parâmetros para encontrar a melhor combinação de parâmetros. Também é possível ajustar os parâmetros de acordo com diferentes mercados.
Pode-se tentar usar apenas alguns indicadores, reduzindo a probabilidade de sinais errados. Ou adicionar outros indicadores auxiliares para otimização.
As condições de parada e parada também podem ser ajustadas, configurando o rastreamento de parada ou parada parcial.
A estratégia integra a aplicação de vários indicadores tecnológicos para obter vantagens no julgamento de sinais de negociação, com uma maior praticidade. Mas também enfrenta um certo risco, que precisa de testes e otimização contínuos para ser realmente usado de forma autônoma e obter ganhos estáveis.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zhuenrong
//@version=4
strategy("Supertrend + DEMA + Bollinger Bands", overlay=true)
// Input parameters for Supertrend
atrLength = input(title="ATR Period", type=input.integer, defval=12)
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)
showSupertrend = input(title="Show Supertrend Indicator?", type=input.bool, defval=true)
// Input parameters for DEMA
demaLength = input(200, title="DEMA Period")
showDEMA = input(title="Show DEMA Indicator?", type=input.bool, defval=true)
// Calculate ATR for Supertrend
atr2 = sma(tr, atrLength)
atr = changeATR ? atr(atrLength) : atr2
// Calculate Supertrend
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
// Plot Supertrend
upPlot = plot(showSupertrend ? (trend == 1 ? up : na) : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
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.new(color.green, 0))
plotshape(buySignal ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(showSupertrend ? (trend == 1 ? na : dn) : na, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
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.new(color.red, 0))
plotshape(sellSignal ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = (trend == 1 ? color.new(color.green, 80) : color.new(color.white, 0))
shortFillColor = (trend == -1 ? color.new(color.red, 80) : color.new(color.white, 0))
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)
// Alert conditions
alertcondition(buySignal, title="Custom Supertrend Buy", message="Custom Supertrend Buy!")
alertcondition(sellSignal, title="Custom Supertrend Sell", message="Custom Supertrend Sell!")
// Calculate DEMA
ema1 = ema(close, demaLength)
dema = 2 * ema1 - ema(ema1, demaLength)
// Plot DEMA with white color
plot(showDEMA ? dema : na, color=color.new(color.white, 0), title="DEMA", linewidth=2)
// Add push notification on mobile if buy and sell occurred
if (buySignal)
strategy.entry("Buy", strategy.long)
//strategy.exit("Sell")
//alert("Buy Signal - Supertrend")
if (sellSignal)
strategy.entry("Sell", strategy.short)
//strategy.exit("Cover")
//alert("Sell Signal - Supertrend")
// === Stop LOSS ===
if strategy.position_size>0
strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)