
Trata-se de uma estratégia de negociação quantitativa abrangente que combina análise de vários quadros temporais e confirmação de indicadores técnicos. O núcleo da estratégia consiste em avaliar a força da tendência do mercado através do estado de cruzamento de médias móveis em diferentes períodos de tempo (H1, H4 e dia) e realizar a confirmação de sinais de negociação em combinação com indicadores de dinamismo equivalentes ao RSI e ao MACD. O sistema é equipado com um mecanismo de gerenciamento de fundos perfeito, usa um stop loss stop baseado no ATR e realiza uma estratégia de saída combinada com um stop loss parcial e um tracking stop.
O principal princípio da estratégia é a análise multidimensional das tendências do mercado e a confirmação de:
Sistema de pontuação de tendências de quadros temporais múltiplos:
Condições de entrada:
Gestão de Riscos e Estratégias de Saída:
Painel de controlo:
Confirmação de tendências multidimensionaisAo integrar informações de tendências de três períodos de tempo, a estratégia é capaz de identificar com mais precisão as tendências fortes e filtrar efetivamente os falsos sinais e o ruído. O maior peso é atribuído a períodos de tempo mais longos, o que corresponde ao princípio de prioridade de tendências de longo prazo na análise técnica.
Multi-verificação do sinal de entradaAlém da pontuação de tendência, a estratégia exige que o preço, o RSI e o MACD atendam simultaneamente a determinados requisitos para a execução de negociações, o que aumenta significativamente a qualidade do sinal.
Gestão inteligente de riscos:
Visualização de apoio à decisãoO painel de controle mostra de forma intuitiva o estado da tendência e a pontuação global para cada período de tempo, ajudando os comerciantes a avaliar rapidamente o estado do mercado e aumentando a confiança na tomada de decisões.
Altamente adaptávelA estratégia pode ser aplicada a várias variedades de negociação, especialmente em pares de moedas estrangeiras e metais preciosos com tendências evidentes.
Risco de reversão de tendênciaEmbora a estratégia tenha aumentado a precisão com a análise de múltiplos períodos de tempo, é possível que haja um retorno maior quando o mercado se reverte fortemente. Recomenda-se a redução temporária de posições ou a suspensão da negociação antes da divulgação de dados ou eventos econômicos importantes.
Risco de excesso de negociaçãoA solução é adicionar um filtro de mercado adicional para oscilação, como a proporção de real de variação (ATR%) ou um indicador de taxa de flutuação.
Sensibilidade do parâmetroO desempenho da estratégia é mais sensível ao ciclo SMA ((50⁄200) e à configuração do múltiplo ATR. Recomenda-se o uso de um histórico completo de retorno para otimizar os parâmetros e avaliar periodicamente se os parâmetros ainda são adequados para o ambiente atual do mercado.
Limitações na gestão de fundosOs modelos de risco de proporção fixa atuais podem não ser suficientemente flexíveis em condições de mercado extremas. Pode-se considerar a introdução de um método de cálculo de escala de posição com ajuste de taxa de flutuação, reduzindo automaticamente as posições em períodos de alta volatilidade.
Risco de atraso na execuçãoEm mercados rápidos, a confirmação múltipla dependente da estratégia pode levar a atrasos no tempo de entrada, perdendo o melhor preço. Para reduzir esse risco, pode-se considerar o aumento de sinais de entrada antecipada baseados em ações de preços.
Melhorar a identificação de tendências:
Sistema de confirmação de sinal reforçado:
Otimizar o mecanismo de saída:
Melhorar a gestão de riscos:
Melhorar a adaptabilidade do sistema:
A estratégia de negociação de quantificação de tendências de múltiplos quadros temporais com confirmação dinâmica é uma solução de negociação abrangente e sistemática para gerar sinais de negociação de alta qualidade por meio da integração de informações de tendências e confirmação de indicadores técnicos em vários períodos temporais. Sua maior vantagem reside na identificação de tendências em vários níveis e no mecanismo de confirmação de sinais, que aumenta efetivamente a qualidade do sinal.
O principal risco da estratégia reside na potencial retração e sensibilidade dos parâmetros durante a reversão da tendência. A estratégia pode melhorar ainda mais a estabilidade e a lucratividade em vários cenários de mercado através de orientações de otimização recomendadas, como melhorar o mecanismo de identificação de tendências, reforçar o sistema de confirmação de sinais, otimizar o mecanismo de saída, reforçar a gestão de risco e melhorar a adaptabilidade do sistema.
Para os comerciantes que desejam capturar oportunidades de tendências de médio e longo prazo nos mercados de divisas e metais preciosos, esta é uma estrutura estratégica perfeita em teoria e prática. Após uma avaliação adequada e otimização de parâmetros apropriados, pode ser usado como um componente central de negociação sistematizada ou como um sistema de negociação independente.
/*backtest
start: 2025-02-20 00:00:00
end: 2025-02-27 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("JolurocePro v2.0", overlay=true, margin_long=100, margin_short=100, pyramiding=1)
// 1. Configuración Principal
capitalMaximo = input(20000, "Capital Maximo (USD)")
lotajeBase = input.float(0.1, "Lotes por 1000 USD", minval=0.01)
paresPermitidos = input.string("XAUUSD,EURUSD,GBPUSD,GBPNZD,EURCAD,USDCAD,USDJPY", "Pares Permitidos")
// 2. Indicadores Multitemporales
[mediaRapidaH1, mediaLentaH1] = request.security(syminfo.tickerid, "60", [ta.sma(close, 50), ta.sma(close, 200)])
[mediaRapidaH4, mediaLentaH4] = request.security(syminfo.tickerid, "240", [ta.sma(close, 50), ta.sma(close, 200)])
[mediaRapidaD, mediaLentaD] = request.security(syminfo.tickerid, "D", [ta.sma(close, 50), ta.sma(close, 200)])
// 3. Calculo del Score
currentScore = (mediaRapidaH1 > mediaLentaH1 ? 1 : -1) + (mediaRapidaH4 > mediaLentaH4 ? 2 : -2) + (mediaRapidaD > mediaLentaD ? 3 : -3)
// 4. Panel de Control
var table panel = table.new(position.top_right, 4, 6, bgcolor=color.new(#2C3E50, 90))
if barstate.islast
// Encabezado
table.cell(panel, 0, 0, " JolurocePro ", width=4, text_color=color.white, text_size=size.large)
// Temporalidad H1
table.cell(panel, 0, 1, "H1", text_color=color.white)
table.cell(panel, 1, 1, str.tostring(math.round(mediaRapidaH1, 4)), text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 1, str.tostring(math.round(mediaLentaH1, 4)), text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 1, mediaRapidaH1 > mediaLentaH1 ? "▲" : "▼", text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
// Temporalidad H4
table.cell(panel, 0, 2, "H4", text_color=color.white)
table.cell(panel, 1, 2, str.tostring(math.round(mediaRapidaH4, 4)), text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 2, str.tostring(math.round(mediaLentaH4, 4)), text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 2, mediaRapidaH4 > mediaLentaH4 ? "▲" : "▼", text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
// Temporalidad Diaria
table.cell(panel, 0, 3, "Diario", text_color=color.white)
table.cell(panel, 1, 3, str.tostring(math.round(mediaRapidaD, 4)), text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 3, str.tostring(math.round(mediaLentaD, 4)), text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 3, mediaRapidaD > mediaLentaD ? "▲" : "▼", text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
// Recomendacion
table.cell(panel, 0, 4, "Score Actual:", text_color=color.white)
table.cell(panel, 1, 4, str.tostring(currentScore), text_color=currentScore >= 3 ? #2ECC71 : currentScore <= -3 ? #E74C3C : #F1C40F, width=3)
table.cell(panel, 0, 5, "Senal:", text_color=color.white)
table.cell(panel, 1, 5, currentScore >= 3 ? "COMPRA" : currentScore <= -3 ? "VENTA" : "NEUTRO", text_color=currentScore >= 3 ? #2ECC71 : currentScore <= -3 ? #E74C3C : #F1C40F, width=3)
// 5. Indicadores Tecnicos
atrValor = ta.atr(14)
rsi = ta.rsi(close, 14)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
macdSignal = ta.ema(macdLine, 9)
// 6. Condiciones de Entrada
condicionLong = currentScore >= 3 and close > mediaRapidaH1 and rsi > 50 and macdLine > macdSignal
condicionShort = currentScore <= -3 and close < mediaRapidaH1 and rsi < 50 and macdLine < macdSignal
// 7. Gestion de Riesgo
posicionSize = math.min((strategy.equity / 1000) * lotajeBase, strategy.equity * 0.02)
slLong = close - (atrValor * 2)
tp1Long = close + (atrValor * 1)
tp2Long = close + (atrValor * 3)
slShort = close + (atrValor * 2)
tp1Short = close - (atrValor * 1)
tp2Short = close - (atrValor * 3)
// 8. Ejecucion de Ordenes
if condicionLong
strategy.entry("Long", strategy.long, qty=posicionSize)
strategy.exit("TP1", "Long", stop=slLong, limit=tp1Long, qty_percent=50)
strategy.exit("TP2", "Long", limit=tp2Long, trail_points=atrValor*10)
if condicionShort
strategy.entry("Short", strategy.short, qty=posicionSize)
strategy.exit("TP1", "Short", stop=slShort, limit=tp1Short, qty_percent=50)
strategy.exit("TP2", "Short", limit=tp2Short, trail_points=atrValor*10)
// 9. Senales Visuales
plotshape(condicionLong, "Compra", shape.triangleup, location.belowbar, color=#2ECC71, size=size.small)
plotshape(condicionShort, "Venta", shape.triangledown, location.abovebar, color=#E74C3C, size=size.small)