Esta estratégia é um port StockSharp do consultor especialista MetaTrader "FiboArc" (pasta MQL/24924). O EA original combina múltiplos filtros de Momentum com rompimentos de arcos de Fibonacci. A implementação StockSharp mantém a mesma ideia adaptando-a à API de velas de alto nível:
Duas médias móvias ponderadas lineares (FastMaPeriod, SlowMaPeriod) definem a direção da tendência.
Um oscilador de Momentum medido contra o nível neutro de 100 filtra configurações fracas.
Um histograma MACD confirma a força da tendência e detecta cruzamentos frescos.
Um arco de Fibonacci simplificado é reconstruído em cada barra usando os preços de abertura de duas velas âncora selecionadas por TrendAnchorLength e ArcAnchorLength. Um rompimento através deste nível dinâmico substitui as verificações baseadas em objetos da versão MetaTrader.
A estratégia funciona com qualquer par símbolo/período suportado pelo StockSharp. Todos os cálculos são executados em velas completamente concluídas para espelhar o comportamento do EA e evitar viés de antecipação.
Indicadores e fluxo de dados
A estratégia assina um único fluxo de velas configurado por CandleType. Cada nova vela concluída é alimentada nos seguintes indicadores via SubscribeCandles(...).BindEx(...):
Indicador
Propósito
Configurações padrão
LinearWeightedMovingAverage (rápida)
Tendência de curto prazo e timing de entrada
FastMaPeriod = 6, preço típico
LinearWeightedMovingAverage (lenta)
Filtro de tendência de nível superior
SlowMaPeriod = 85, preço típico
Momentum
Distância de 100 é usada para confirmar movimentos fortes
As saídas dos indicadores são recebidas como instâncias IIndicatorValue; apenas valores finais são processados.
Reconstrução do arco de Fibonacci
MetaTrader desenha um objeto de arco real e lê seus valores com ObjectGetValueByShift. O StockSharp não depende de objetos de gráfico, então o arco é emulado numericamente:
A estratégia mantém uma lista contínua de velas concluídas (_history).
TrendAnchorLength seleciona o índice da âncora base, e ArcAnchorLength seleciona a segunda âncora.
O nível do arco para a vela atual é calculado como uma interpolação linear entre as aberturas das âncoras usando FibonacciRatio (padrão 0.618).
Para detecção de rompimentos, compara-se a abertura da vela anterior com o nível de arco anterior e a abertura da vela atual com o nível recém-calculado. Um cruzamento de baixo para cima (fibCrossUp) ou de cima para baixo (fibCrossDown) recria as verificações originais do EA.
Regras de trading
Entradas longas
Uma posição comprada é aberta quando todas as condições abaixo são satisfeitas:
A barra anterior abriu abaixo do nível de arco anterior e a barra atual abre acima do novo nível (fibCrossUp).
A LWMA rápida está acima da LWMA lenta (bullishTrend).
A distância absoluta entre o Momentum e 100 é de pelo menos MomentumThreshold.
A linha principal do MACD está acima de sua linha de sinal, ou acabou de cruzar para cima (macdAboveSignal ou macdCrossUp).
O tamanho atual da posição é menor ou igual a zero (sem exposição comprada existente).
A estratégia compra Volume mais o valor absoluto de qualquer exposição vendida aberta para garantir transições plano-para-comprado.
Entradas curtas
Os trades vendidos espelham a lógica comprada:
fibCrossDown confirma um rompimento para baixo.
A LWMA rápida está abaixo da LWMA lenta.
A distância do Momentum excede MomentumThreshold.
O MACD está abaixo de sua linha de sinal ou cruza para baixo.
Nenhuma exposição comprada existente permanece.
Saídas
As posições são fechadas quando um dos seguintes ocorre:
As condições de tendência ou MACD se invertem contra o trade.
O sinal de rompimento de Fibonacci oposto aparece.
O nível adaptativo de stop-loss ou take-profit é tocado.
Todas as saídas são executadas com ordens de mercado para manter consistência com a versão MetaTrader.
Gestão de risco
O EA original oferecia stops baseados em dinheiro, lógica de trailing e proteção de break-even. A estratégia StockSharp mantém as mesmas funcionalidades com parâmetros transparentes:
StopLossDistance e TakeProfitDistance definem distâncias fixas em unidades de preço a partir do preço executado.
EnableBreakEven, BreakEvenTrigger e BreakEvenOffset controlam o comportamento de mover para break-even.
EnableTrailing, TrailingTrigger e TrailingDistance implementam um trailing stop baseado em velas.
Parâmetros
Nome
Descrição
CandleType
Período (e tipo de agregação) usado para todos os cálculos.