
Esta estratégia é um sistema de negociação inteligente baseado em múltiplos indicadores técnicos, combinando sinais de mercado de três dimensões: média móvel (MA), volume (Volume) e volatilidade (ATR). Análise abrangente da volatilidade para capturar oportunidades de mercado. A estratégia usa um sistema de média móvel dupla como base principal para julgar tendências e introduz o volume de negociação e a volatilidade como condições de filtro de negociação, alcançando assim múltiplas verificações de sinais de negociação.
A lógica central da estratégia baseia-se nas seguintes três dimensões:
A estratégia só emitirá um sinal de negociação quando as condições dessas três dimensões forem atendidas ao mesmo tempo. Esse mecanismo de filtragem múltipla melhora efetivamente a precisão das transações.
Esta estratégia cria um sistema completo de tomada de decisões de negociação por meio da análise colaborativa de vários indicadores técnicos. O design da estratégia considera totalmente as características do mercado, como tendências, liquidez e volatilidade, e é altamente prático e confiável. Por meio de otimização e melhoria contínuas, espera-se que essa estratégia mantenha um desempenho estável em vários ambientes de mercado. O design modular da estratégia também fornece uma boa base para expansão subsequente e pode ser ajustado e otimizado de forma flexível de acordo com as necessidades reais.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced Trading Strategy", overlay=true)
// Parâmetros de entrada
shortPeriod = input.int(9, title="Short Period", minval=1)
longPeriod = input.int(21, title="Long Period", minval=1)
volumeThreshold = input.float(1.5, title="Volume Threshold Multiplier", minval=0.1)
volatilityPeriod = input.int(14, title="Volatility Period", minval=1)
// Cálculo das médias móveis
shortSMA = ta.sma(close, shortPeriod)
longSMA = ta.sma(close, longPeriod)
// Cálculo do volume médio
averageVolume = ta.sma(volume, longPeriod)
// Cálculo da volatilidade (ATR - Average True Range)
volatility = ta.atr(volatilityPeriod)
// Condições de compra e venda baseadas em médias móveis
maBuyCondition = ta.crossover(shortSMA, longSMA)
maSellCondition = ta.crossunder(shortSMA, longSMA)
// Verificação do volume
volumeCondition = volume > averageVolume * volumeThreshold
// Condição de volatilidade (volatilidade acima de um certo nível)
volatilityCondition = volatility > ta.sma(volatility, volatilityPeriod)
// Condições finais de compra e venda
buyCondition = maBuyCondition and volumeCondition and volatilityCondition
sellCondition = maSellCondition and volumeCondition and volatilityCondition
// Plotando as médias móveis
plot(shortSMA, title="Short SMA", color=color.red)
plot(longSMA, title="Long SMA", color=color.blue)
// Sinal de compra
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Sinal de venda
if (sellCondition)
strategy.close("Buy")
// Plotando sinais no gráfico
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Configurando alertas
alertcondition(buyCondition, title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sellCondition, title="Sell Alert", message="Sell Signal Triggered")