
この戦略は、移動平均 (MA)、ボリューム (Volume)、ボラティリティ (ATR) の 3 つの次元からの市場シグナルを組み合わせた、複数のテクニカル指標に基づくインテリジェントな取引システムです。ボラティリティを包括的に分析して、市場の機会を捉えます。この戦略では、トレンドを判断する主な基準として二重移動平均システムを使用し、取引量とボラティリティを取引フィルター条件として導入することで、取引シグナルの複数の検証を実現します。
戦略の中核となるロジックは、次の 3 つの次元に基づいています。
この戦略は、これら 3 つの側面の条件が同時に満たされた場合にのみ取引シグナルを発行します。この多重フィルタリングメカニズムにより、トランザクションの精度が効果的に向上します。
この戦略は、複数のテクニカル指標の共同分析を通じて完全な取引意思決定システムを構築します。戦略設計はトレンド、流動性、ボラティリティなどの市場特性を十分に考慮しており、実用性と信頼性に優れています。この戦略は継続的な最適化と改善を通じて、さまざまな市場環境において安定したパフォーマンスを維持することが期待されます。戦略のモジュール設計は、その後の拡張のための優れた基盤も提供し、実際のニーズに応じて柔軟に調整および最適化できます。
/*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")