
Descrição: Esta estratégia utiliza uma combinação de médias móveis dinâmicas, indicadores de tendências super, pontos de apoio e resistência potenciais e canais Kelt, para julgar a mudança de preços em vários níveis e realizar o rastreamento de tendências automatizadas. A vantagem da estratégia é que a geração de sinais de negociação é clara e a taxa de vitória é alta, ao mesmo tempo em que as medidas de gerenciamento de risco podem controlar o risco de uma única negociação.
Princípios da estratégia: Esta estratégia usa uma média móvel dinâmica para determinar a direção da tendência de curto prazo nos preços. De acordo com a escolha do usuário, o script usa uma média móvel simples ou uma média móvel indexada. Quando o preço mais alto, o preço mais baixo e o preço de fechamento são superiores ao de ontem, é considerado uma tendência de vários pontos; Quando o preço mais alto, o preço mais baixo e o preço de fechamento são inferiores ao de ontem, é considerado uma tendência de ponta vazia. Com base nisso, a posição da média móvel dinâmica é combinada para gerar sinais de compra e venda.
Além disso, a estratégia também usa o indicador de tendência super para identificar tendências de longo prazo. O indicador de tendência super, combinado com a amplitude real média de flutuação, gera um sinal de compra quando o preço funciona acima da trajetória e o preço de fechamento de ontem está abaixo da trajetória.
Para filtrar os sinais falsos, esta estratégia usa o canal de Kelt para traçar os canais de ascensão e descensão. Combinando o alcance do canal com o indicador de tendência super, é possível realizar transações de acompanhamento de tendência. Concretamente, quando o preço irrompe na trajetória de baixo para cima e o preço de fechamento de ontem é inferior ao da trajetória de cima, um forte sinal de compra é gerado; quando o preço se rompe na trajetória de cima para baixo e o preço de fechamento de ontem é superior ao da trajetória de baixo, um forte sinal de venda é gerado.
Além disso, o script também ajuda a mapear os níveis de suporte e resistência potenciais, determinando ainda mais os níveis de preço críticos. No geral, a combinação de indicadores em camadas, com condições de ruptura rigorosas, melhora radicalmente a qualidade do sinal de negociação.
Vantagens estratégicas:
A combinação de indicadores multi-estratégicos gera sinais de negociação claros. O canal CELT determina a faixa de preços-chave, combinado com a média móvel dinâmica e o indicador de super-tendência determinam rigorosamente a direção da tendência, filtrando efetivamente os falsos rompimentos do mercado.
As condições de ruptura rigorosas garantem a qualidade do sinal de negociação. Os preços precisam realmente quebrar o canal para cima e para baixo, combinando a posição do preço de fechamento de ontem, para evitar a fixação.
O indicador de tendências super pode capturar tendências de longo prazo e acompanhar tendências de direção longitudinal.
Os pontos de suporte e resistência potenciais ajudam a determinar pontos críticos de preços e oportunidades de reversão.
A frequência de negociação geral é moderada, não é muito densa. Só emite sinais de alta qualidade em pontos críticos, com uma maior taxa de vitória.
Riscos estratégicos:
Em situações de turbulência, o indicador pode emitir sinais enganosos, resultando em perdas de negociação de breakout não válidas. Pode ser otimizado através do ajuste de parâmetros ou a intervenção manual para sair da SetPosition.
O ponto de parada de ruptura do canal pode ser muito grande, o risco de perda individual é alto. O alcance de parada pode ser reduzido de forma apropriada ou o tempo de parada pode ser adotado.
Ao seguir uma tendência de linha longa, pode-se perder algumas oportunidades de reversão de linha curta no meio. A utilização de indicadores de choque pode auxiliar na determinação de ajustes locais.
Os sistemas de média móvel são, por vezes, mais lentos em reagir a surpresas. Nesse caso, pode-se considerar a redução dos parâmetros da média móvel ou o uso de outros indicadores auxiliares.
A estratégia de otimização: De acordo com diferentes cenários de mercado e preferências de negociação, a estratégia pode ser otimizada nas seguintes direções:
Ajustar os parâmetros da média móvel para otimizar a sensibilidade do sistema de indicadores às mudanças de preço.
Ajustar os parâmetros de ATR e os parâmetros de fator do indicador de tendência super, otimizar o papel do indicador de tendência super.
Ajustar o ponto de parada e equilibrar a proporção de perdas por unidade. O tempo de parada também pode ser usado para controlar ainda mais o risco de perdas individuais.
Adicionar outros indicadores auxiliares, como a banda de Bryn, o indicador de KD, etc., para avaliar ainda mais as oportunidades de ajuste e reversão locais.
O gráfico de K-linhas é construído usando variáveis como “open” e “close” para intuir o comportamento dos preços.
Optimização de parâmetros e comparação de resultados com diferentes combinações de parâmetros.
Resumo: Esta estratégia utiliza múltiplos indicadores, como a média móvel dinâmica, o indicador de tendência super e o canal Celt, para automatizar o acompanhamento de tendências. As principais vantagens são: geração de sinais claros, maior taxa de vitória; rastreamento de tendências de longa linha, captura de oportunidades direcionais; ponto de parada razoável, controle do risco de perdas individuais.
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 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/
// © mahesh_linux1989
//@version=5
strategy("Intraday Trend Identifier with Dynamic Moving Averages, Super Trend, VWAP, and Keltner Signals", overlay=true, shorttitle="ITI Keltner")
// Input for Moving Average Type
maType = input("SMA", title="Moving Average Type")
// Input for SMA Length
smaLength = input.int(20, title="SMA Length", minval=1, maxval=200)
// Input for EMA Length
emaLength = input.int(20, title="EMA Length", minval=1, maxval=200)
// Selecting Moving Average
selectedMA = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
// Bullish conditions
bullish = high > high[1] and low > low[1] and close > high[1]
// Bearish conditions
bearish = high < high[1] and low < low[1] and close < low[1]
// Strategy logic
longCondition = bullish and not bearish and close > selectedMA
shortCondition = bearish and not bullish and close < selectedMA
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Exit conditions
bullishExit = close < selectedMA
bearishExit = close > selectedMA
if (bullishExit)
strategy.close("Buy")
if (bearishExit)
strategy.close("Sell")
// Keltner Channels
basisKC = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
atrKC = ta.atr(14)
upperKC = basisKC + atrKC
lowerKC = basisKC - atrKC
// Super Trend
atrLengthST = input.int(7, title="ATR Length for Super Trend")
factorST = input.int(2, title="Factor for Super Trend")
atrValueST = ta.atr(atrLengthST)
var float upperST = na
var float lowerST = na
if (close[1] > upperST[1])
upperST := close[1] - factorST * atrValueST
else
upperST := close - factorST * atrValueST
if (close[1] < lowerST[1])
lowerST := close[1] + factorST * atrValueST
else
lowerST := close + factorST * atrValueST
// Potential Support and Resistance
potentialSupport = ta.lowest(low, smaLength)
potentialResistance = ta.highest(high, smaLength)
// VWAP
//vwapValue = ta.vwap(close, volume)
// Keltner Signals
buySignalKC = close > upperKC and close[1] <= upperKC[1]
sellSignalKC = close < lowerKC and close[1] >= lowerKC[1]
// Super Trend Signals
buySignalST = close > upperST and close[1] <= upperST[1]
sellSignalST = close < lowerST and close[1] >= lowerST[1]
// Plotting
plot(basisKC, color=color.gray, title="Keltner Channel Basis")
plot(upperKC, color=color.blue, title="Upper Keltner Channel")
plot(lowerKC, color=color.blue, title="Lower Keltner Channel")
plot(upperST, color=color.green, title="Super Trend Upper")
plot(lowerST, color=color.red, title="Super Trend Lower")
plot(potentialSupport, color=color.green, title="Potential Support")
plot(potentialResistance, color=color.red, title="Potential Resistance")
//plot(vwapValue, color=color.orange, title="VWAP")
// Plot Bullish and Bearish arrows
plotarrow(buySignalST ? 1 : na, colorup=color.green, offset=-1, title="Bullish Arrow ST")
plotarrow(sellSignalST ? -1 : na, colordown=color.red, offset=-1, title="Bearish Arrow ST")
plotarrow(buySignalKC ? 1 : na, colorup=color.blue, offset=-1, title="Bullish Arrow KC")
plotarrow(sellSignalKC ? -1 : na, colordown=color.orange, offset=-1, title="Bearish Arrow KC")
// Plot candlesticks
plot(open, color=color.gray)
plot(close, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(high, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(low, color=bullish ? color.green : bearish ? color.red : color.gray)