Estratégia de negociação de agregação de tendências e volume em vários períodos de tempo

FRVP AVWAP EMA RSI ADX MACD SMA ATR
Data de criação: 2025-04-02 16:15:52 última modificação: 2025-04-02 16:15:52
cópia: 0 Cliques: 375
2
focar em
319
Seguidores

Estratégia de negociação de agregação de tendências e volume em vários períodos de tempo Estratégia de negociação de agregação de tendências e volume em vários períodos de tempo

Visão geral

Trata-se de uma estratégia de negociação multi-indicador complexa, que combina várias ferramentas de análise técnica, como o preço médio ponderado do volume de transação (AVWAP), a distribuição de volume de transação em intervalos fixos (FRVP), a média móvel do índice (EMA), o índice de força relativa (RSI), o índice de direção da média (ADX) e a dispersa da média móvel (MACD), com o objetivo de identificar oportunidades de negociação de alta probabilidade por meio da agregação de indicadores.

Princípio da estratégia

A estratégia determina o sinal de entrada através de múltiplos critérios:

  1. Preço cruzado com o AVWAP
  2. Localização do preço em relação à EMA
  3. Julgamento da intensidade do RSI
  4. A dinâmica do MACD
  5. Confirmação da força da tendência do ADX
  6. Filtros de quantidade de entrega

A estratégia se concentra nos períodos de negociação da Ásia, Londres e Nova York, que geralmente têm melhor liquidez e sinais de negociação mais confiáveis. A lógica de entrada inclui dois modos de posição longa e posição vazia, e configura um mecanismo de parada de escala e parada de perda.

Vantagens estratégicas

  1. Combinação de múltiplos indicadores para melhorar a precisão do sinal
  2. Filtragem de volume de transação dinâmica para evitar transações de baixa liquidez
  3. Uma estratégia de stop-loss flexível
  4. Optimização de estratégias com base em diferentes períodos de negociação
  5. Mecanismo de gestão de risco dinâmico
  6. Sinais visuais para auxiliar na tomada de decisões

Risco estratégico

  1. A combinação de múltiplos indicadores pode aumentar a complexidade do sinal
  2. Risco de ressonância
  3. Performance pode ser instável em diferentes condições de mercado
  4. Custo de transação e deslizamento podem afetar o lucro real

Direção de otimização da estratégia

  1. Introdução de parâmetros de ajuste dinâmico de algoritmos de aprendizado de máquina
  2. Aumentar a adaptabilidade do horário de negociação
  3. Otimização de estratégias de stop loss
  4. Introdução de mais condições de filtragem
  5. Desenvolvimento de modelos estratégicos de universalidade entre espécies

Resumir

Trata-se de uma estratégia de negociação altamente personalizada e multidimensional, que tenta melhorar a qualidade e a precisão do sinal de negociação através da integração de vários indicadores técnicos e características de período de negociação. A estratégia mostra a complexidade de agregação de indicadores e gestão de risco dinâmico em negociações quantitativas.

Código-fonte da estratégia
/*backtest
start: 2024-04-02 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("FRVP + AVWAP by Grok", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// User Inputs
frvpLength = input.int(20, title="FRVP Length", minval=1)
emaLength = input.int(75, title="EMA Length", minval=1) // Adjusted for stronger trend confirmation
rsiLength = input.int(14, title="RSI Length", minval=1)
adxThreshold = input.int(20, title="ADX Strength Threshold", minval=0, maxval=100)
volumeMultiplier = input.float(1.0, title="Volume Multiplier", minval=0.1)

// Stop Loss & Take Profit for XAUUSD
stopLossPips = 25 // 25 pips SL for Asian, London, NY Sessions
takeProfit1Pips = 35 // TP1 at 35 pips
takeProfit2Pips = 80 // Final TP at 80 pips

// Stop-Loss & Take-Profit Multipliers (XAUUSD: 1 pip = 0.1 points on most platforms)
stopMultiplier = float(stopLossPips) * 0.1
tp1Multiplier = float(takeProfit1Pips) * 0.1
tp2Multiplier = float(takeProfit2Pips) * 0.1

// Indicators
avwap = ta.vwap(close)  // Volume Weighted Average Price (VWAP)
ema = ta.ema(close, emaLength)     // Exponential Moving Average
rsi = ta.rsi(close, rsiLength)     // Relative Strength Index
macdLine = ta.ema(close, 12) - ta.ema(close, 26)  // MACD Line
signalLine = ta.ema(macdLine, 9)   // MACD Signal Line
atr = ta.atr(14)                   // Average True Range

// Average Directional Index (ADX)
adxSmoothing = 14
[diplus, diminus, adx] = ta.dmi(14, adxSmoothing)  // Corrected syntax for ta.dmi()

// Volume Profile (FRVP - Fixed Range Volume Profile Midpoint)
highestHigh = ta.highest(high, frvpLength)
lowestLow = ta.lowest(low, frvpLength)
frvpMid = (highestHigh + lowestLow) / 2  // Midpoint of the range

// Detect Trading Sessions
currentHour = hour(time, "UTC")  // Renamed to avoid shadowing built-in 'hour'
isAsianSession = currentHour >= 0 and currentHour < 8
isLondonSession = currentHour >= 8 and currentHour < 16
isNYSession = currentHour >= 16 and currentHour < 23

// Entry Conditions
longCondition = ta.crossover(close, avwap) and close > ema and rsi > 30 and macdLine > signalLine and adx > adxThreshold
shortCondition = ta.crossunder(close, avwap) and close < ema and rsi < 70 and macdLine < signalLine and adx > adxThreshold

// Volume Filter
avgVolume = ta.sma(volume, 20)     // 20-period Simple Moving Average of volume
volumeFilter = volume > avgVolume * volumeMultiplier  // Trade only when volume exceeds its moving average

// Trade Execution with SL/TP for Sessions
if (longCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("LongEntry", strategy.long, qty=100)
    strategy.exit("LongTP1", from_entry="LongEntry", limit=close + tp1Multiplier)
    strategy.exit("LongExit", from_entry="LongEntry", stop=close - stopMultiplier, limit=close + tp2Multiplier)

if (shortCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("ShortEntry", strategy.short, qty=100)
    strategy.exit("ShortTP1", from_entry="ShortEntry", limit=close - tp1Multiplier)
    strategy.exit("ShortExit", from_entry="ShortEntry", stop=close + stopMultiplier, limit=close - tp2Multiplier)

// Plotting for Debugging and Visualization
plot(avwap, "AVWAP", color=color.purple, style=plot.style_line, offset=0)
plot(ema, "EMA", color=color.orange, style=plot.style_line, offset=0)
// plot(rsi, "RSI", color=color.yellow, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(macdLine, "MACD Line", color=color.blue, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(signalLine, "Signal Line", color=color.red, style=plot.style_histogram, offset=0)  // Better in a separate pane
plot(adx, "ADX", color=color.green, style=plot.style_line, offset=0)

// Optional: Plot entry/exit signals for visualization
plotshape(longCondition and volumeFilter ? close : na, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(shortCondition and volumeFilter ? close : na, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)