
Esta estrategia es un sistema de trading inteligente basado en múltiples indicadores técnicos, que combina señales de mercado de tres dimensiones: media móvil (MA), volumen (Volume) y volatilidad (ATR). Análisis exhaustivo de la volatilidad para capturar oportunidades de mercado. La estrategia utiliza un sistema de doble promedio móvil como base principal para juzgar las tendencias e introduce el volumen comercial y la volatilidad como condiciones de filtro comercial, logrando así múltiples verificaciones de las señales comerciales.
La lógica central de la estrategia se basa en las tres dimensiones siguientes:
La estrategia sólo emitirá una señal comercial cuando las condiciones de estas tres dimensiones se cumplan al mismo tiempo. Este mecanismo de filtrado múltiple mejora eficazmente la precisión de las transacciones.
Esta estrategia construye un sistema completo de toma de decisiones comerciales a través del análisis colaborativo de múltiples indicadores técnicos. El diseño de la estrategia considera plenamente las características del mercado, como las tendencias, la liquidez y la volatilidad, y es altamente práctico y confiable. Se espera que mediante la optimización y mejora continuas, esta estrategia mantenga un rendimiento estable en diversos entornos de mercado. El diseño modular de la estrategia también proporciona una buena base para la expansión posterior y puede ajustarse y optimizarse de forma flexible según las necesidades reales.
/*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")