この戦略は,移動平均のクロスオーバーとボリューム分析に基づいた定量的な取引戦略システムである.この戦略は,ボリューム指標と組み合わせた,様々なタイプの移動平均 (EMA,SMA,WMAを含む) のクロスオーバー信号を通じて取引決定を行う.システムは,移動平均の種類とパラメータの柔軟な構成をサポートし,信頼性を向上させるために取引確認条件としてボリューム分析を導入する.
戦略は,二重移動平均クロスオーバーシステムをコア・トレード・シグナルとして使用し,その補助判断としてボリューム分析を組み合わせます.
これは,移動平均クロスオーバーとボリューム分析を通じて古典的な技術分析理論を組み合わせた定量的な取引戦略である. 戦略設計は,強力な実用性とスケーラビリティで合理的である. パラメータ最適化とモジュール強化を通じて,戦略の安定性と収益性がさらに向上することができる. ライブ取引の前に徹底的なバックテストを行い,特定の取引機器の特徴に応じてパラメータを調整することが推奨される.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Cruzamento de Médias com Volume ☾︎ 𝔇𝔞𝔯𝔎 ✞︎ 𝔗𝔯𝔞𝔡𝔢𝔯 ☽︎", overlay=true) // Criação de opções no editor para selecionar o tipo de média móvel maType1 = input.string(title="Tipo de Média Móvel 1", defval="EMA", options=["SMA", "EMA", "WMA"]) maType2 = input.string(title="Tipo de Média Móvel 2", defval="EMA", options=["SMA", "EMA", "WMA"]) // Função para selecionar a média móvel de acordo com o tipo escolhido getMovingAverage(maType, src, length) => if maType == "SMA" ta.sma(src, length) else if maType == "EMA" ta.ema(src, length) else if maType == "WMA" ta.wma(src, length) else na // Parâmetros para o cálculo das médias móveis length1 = input.int(9, title="Período da Média 1") length2 = input.int(21, title="Período da Média 2") // Cálculo das médias móveis escolhidas ma1 = getMovingAverage(maType1, close, length1) ma2 = getMovingAverage(maType2, close, length2) // Parâmetro editável para o período da média de volume volLength = input.int(20, title="Período da Média de Volume") // Cálculo da média móvel do volume com período ajustável volSMA = ta.sma(volume, volLength) // Média móvel simples do volume // Cálculo da EMA de 200 períodos para visualizar a tendência primária ema200 = ta.ema(close, 200) // Condições para compra: ma1 cruza acima da ma2 + Volume acima da média de volume ajustável longCondition = ta.crossover(ma1, ma2) and volume > volSMA // Condições para venda: ma1 cruza abaixo da ma2 + Volume acima da média de volume ajustável shortCondition = ta.crossunder(ma1, ma2) and volume > volSMA // Executa a operação de compra if (longCondition) strategy.entry("Compra", strategy.long) // Executa a operação de venda if (shortCondition) strategy.entry("Venda", strategy.short) // Plotando as médias móveis no gráfico de preços plot(ma1, color=color.green, title="Média Móvel 1", linewidth=2) plot(ma2, color=color.red, title="Média Móvel 2", linewidth=2) // Plotando a EMA de 200 períodos para visualização da tendência de longo prazo plot(ema200, color=color.orange, title="EMA 200", linewidth=2) // Plotando a média de volume para visualização no painel inferior plot(volSMA, color=color.blue, title="Média de Volume", linewidth=2)