Estratégia CorrTime
A estratégia CorrTime é um sistema de símbolo único que replica o expert advisor MetaTrader de mesmo nome. Ela analisa a correlação entre preços de fechamento e sua ordem cronológica para detectar aceleração ou reversão de momentum. O algoritmo opera em candles concluídos e combina três camadas de confirmação:
- Filtro de volatilidade: a largura das bandas de Bollinger deve ficar dentro de uma faixa configurável de atividade aceitável, para que o sistema evite fases laterais e excessivamente voláteis.
- Filtro de força de tendência: o Average Directional Index (ADX) deve permanecer acima de um limiar antes que sinais de correlação sejam avaliados.
- Gatilhos de correlação: estimadores de correlação Pearson, Spearman, Kendall ou Fechner medem quão de perto o preço evolui com o tempo. Uma mudança súbita do coeficiente gera a decisão de negociação.
Embora o robô original tenha sido projetado para EURUSD no timeframe H1, a versão StockSharp mantém todos os parâmetros configuráveis. As configurações padrão permanecem fiéis à fonte (candles de 1 hora, correlação Fechner, modo de negociação reverso).
Fluxo de negociação
- Assinar o
CandleTypeselecionado e aguardar uma barra concluída. - Atualizar bandas de Bollinger e valores ADX no novo candle.
- Rejeitar a barra quando:
- O spread de Bollinger convertido para pips está fora de
[BollingerSpreadMin, BollingerSpreadMax]. - ADX está abaixo de
AdxLevel. - O candle começa fora da janela
[EntryHour, EntryHour + OpenHours](com suporte a virada da meia-noite).
- O spread de Bollinger convertido para pips está fora de
- Construir um histórico rolante de preços de fechamento e calcular o coeficiente de correlação nos lookbacks
CorrelationRangeTrendeCorrelationRangeReverse. O código recalcula os três últimos valores de correlação para detectar um cruzamento real dos limites, exatamente como o arquivo include original fazia com buffers. - Gatilho seguidor de tendência (quando
TradeModeé TrendFollow ou Both):- Compra: a correlação estava abaixo de
CorrLimitTrendBuy, ainda estava abaixo na barra anterior e cruza acima do limiar na última barra. - Venda: a correlação estava acima de
-CorrLimitTrendSell, ainda estava acima na barra anterior e cruza abaixo de-CorrLimitTrendSellna última barra.
- Compra: a correlação estava abaixo de
- Gatilho de reversão (quando
TradeModeé Reverse ou Both):- Compra: a correlação estava abaixo de
-CorrLimitReverseBuy, ainda estava abaixo na barra anterior e sobe acima de-CorrLimitReverseBuyna última barra. - Venda: a correlação estava acima de
CorrLimitReverseSell, ainda estava acima na barra anterior e cai abaixo deCorrLimitReverseSellna última barra.
- Compra: a correlação estava abaixo de
- Se as duas direções disparam simultaneamente, os sinais se cancelam, espelhando o comportamento do MetaTrader.
- Se
CloseTradeOnOppositeSignalestiver habilitado, a estratégia fecha imediatamente qualquer posição oposta antes de abrir uma nova. - Entradas são dimensionadas com a propriedade
Volumee respeitamMaxOpenOrders, então a exposição líquida nunca excedeVolume * MaxOpenOrdersem nenhuma direção. - O risco é controlado por
StartProtection: stop-loss e take-profit usam distâncias baseadas em pips, e a flag de trailing reutiliza a mesma distância de stop quando habilitada.
Parâmetros
| Parâmetro | Descrição |
|---|---|
CandleType |
Timeframe usado para gerar candles e alimentar todos os indicadores. |
CloseTradeOnOppositeSignal |
Fecha posições abertas quando o próximo sinal aponta na direção oposta. |
EntryHour, OpenHours |
Define a janela diária de negociação. OpenHours = 0 mantém a janela aberta por uma única hora. |
BollingerPeriod, BollingerDeviation |
Configurações padrão das bandas de Bollinger aplicadas a fechamentos. |
BollingerSpreadMin, BollingerSpreadMax |
Largura mínima e máxima (em pips) exigida para o canal de Bollinger. |
AdxPeriod, AdxLevel |
Configuração do Average Directional Index e força mínima de tendência exigida. |
TradeMode |
Escolhe entre seguidor de tendência, reversão ou avaliação combinada. |
CorrelationRangeTrend, CorrelationRangeReverse |
Comprimentos de lookback para cálculos de correlação. |
CorrelationType |
Seleciona fórmulas de correlação Pearson, Spearman, Kendall ou Fechner. |
CorrLimitTrendBuy, CorrLimitTrendSell |
Limiares que definem um rompimento seguidor de tendência válido. |
CorrLimitReverseBuy, CorrLimitReverseSell |
Limiares que definem um rompimento de reversão válido. |
TakeProfitPips, StopLossPips, TrailingStopPips |
Parâmetros de risco expressos em pips e traduzidos para unidades de preço com o tamanho de pip do instrumento. |
MaxOpenOrders |
Limite superior no número agregado de entradas (teto por lado igual a Volume * MaxOpenOrders). |
Notas práticas
- O tamanho de pip é deduzido dos decimais do ativo (5 ou 3 casas decimais correspondem a um multiplicador 10x) para imitar o tratamento de pontos do MetaTrader. Ajuste os limiares ao trabalhar com ativos não forex.
- Buffers de correlação precisam de pelo menos
lookback + 2candles concluídos para avaliar um cruzamento. Durante o aquecimento, a estratégia permanece inativa. - Como toda a lógica é executada em candles concluídos, a estratégia é resiliente ao ruído intrabar e espelha o comportamento original baseado em snapshots
iTimeeiClose. - Combine esta estratégia com controles de risco em nível de carteira ao implantar múltiplas instâncias, pois o robô original também limitava o número total de ordens entre símbolos.