Pular para o conteúdo principal

Automação Heikin-Ashi G05

Este documento consolida as transcrições da reunião em uma especificação programável. A finalidade não é ensinar interpretação visual ao trader, mas transformar a estratégia em contratos objetivos: dados necessários, estados, gatilhos, bloqueios, saídas, logs e lacunas que ainda não podem ser codificadas sem definição adicional.

Regra de implementação

O robô deve tomar decisões apenas com candles fechados. Enquanto o candle atual estiver aberto, os sinais podem ser exibidos como pré-sinal, mas não podem disparar entrada, saída definitiva ou reversão automática.

Cobertura usada nesta versão

A consolidação abaixo usa as transcrições disponíveis em 32 arquivos. A Parte 1 começa em 4of14, a Parte 2 tem um 1of5 duplicado e não há arquivo 2of5. Portanto, qualquer regra que depender de uma dessas partes ausentes deve ficar marcada como lacuna, não como inferência.

Objetivo da Automação

A automação deve rastrear movimentos direcionais usando candles Heikin-Ashi, chamados internamente de garrafinhas, em conjunto com médias móveis, linhas de tendência, pivôs, referências de tempo maior e zonas de expansão.

O objetivo operacional é:

  • identificar o início de um ciclo direcional limpo;
  • entrar apenas quando a garrafinha confirmar força sem pavio contrário;
  • separar entrada normal, entrada acelerada, entrada por pivô e setup macro 89/377;
  • evitar compra ou venda atrasada em região de perda de aceleração;
  • sair quando o movimento perder sustentação objetiva;
  • operar vários ativos e tempos gráficos sem misturar estados, referências e risco.

Princípio Central

A estratégia não é um único gatilho. Ela é uma composição de módulos:

MóduloFunçãoPode ser programado agora?
Garrafinha G05 limpaCandle de execução sem pavio contrário, corpo válido e médias alinhadas.Sim, com parâmetros.
Entrada aceleradaEntrada em passagem de referência, fechamento ou LT, sem esperar pivô.Parcial; a falha de bolinha já está formalizada, mas LT/referência ainda depende de contrato objetivo.
Pivô da garrafinha G05Entrada após correção, LT e retorno direcional.Parcial; falta formalizar a detecção do pivô e da LT.
Contexto Diário/H4Define se o G05 deve procurar compra, venda ou ficar neutro.Parcial; faltam detalhes de algumas médias e nomes internos.
Setup G05 89/377Rastreamento macro do próprio G05 usando 89 contra 377 e LTs robustas.Parcial; precisa especificar a média 377 e as LTs.
Liquidação por EXP/LT/médiasSaída cirúrgica depois de alvo técnico ou perda de sustentação.Parcial; EXP e LT precisam de contrato matemático.

O programador deve implementar cada módulo com setupType explícito. Não misture uma regra de pivô com uma regra de entrada acelerada como se fossem o mesmo sinal.

setupType =
"G05_CLEAN_CONTINUATION"
| "G05_ACCELERATED_REFERENCE_BREAK"
| "G05_BOTTLE_PIVOT"
| "H4_CONTEXT_G05_EXECUTION"
| "DAILY_CONTEXT_G05_EXECUTION"
| "G05_89_377_MACRO"

Escopo de Mercado

A estratégia foi discutida com foco principal no G05, isto é, gráfico de 5 minutos, por ser o tempo gráfico de scalping e calibragem mais rápido.

Ela também pode ser aplicada de forma fractal em:

Tempo gráficoUso esperado
G05 / 5 minutosExecução principal, calibragem fina, entradas e saídas cirúrgicas.
G15 / 15 minutosConfirmação e filtro intermediário.
G30 / 30 minutosConfirmação intermediária.
G60 / 1 horaContexto intraday, chamado na reunião de extremo de hora em alguns trechos.
H4 / 4 horasContexto macro, referências e setup próprio de garrafinha.
DiárioDireção estrutural, viés principal e zonas amplas.

O motor deve aceitar múltiplos ativos, incluindo:

  • 28 pares de moedas;
  • XAUUSD;
  • XAGUSD;
  • commodities;
  • índices futuros.

Cada ativo e cada tempo gráfico devem ter estado próprio. Uma entrada em EURUSD G05 não pode contaminar o estado de GBPUSD G05 nem o estado de EURUSD H4.

Separação Entre Sinal e Execução

Heikin-Ashi é um candle sintético. Ele serve para limpar ruído e gerar leitura de tendência, mas a ordem real é executada no mercado real.

O sistema deve manter séries separadas:

SérieUso
OHLC realPreço de entrada, stop, take, spread, slippage, margem, oscilação real e execução.
OHLC Heikin-AshiCor, pavios, corpo, fechamentos, ciclos, pivôs de garrafinha e estados da estratégia.
Médias sobre Heikin-AshiMédias visuais quando o gráfico está em Heikin-Ashi. Devem ser persistidas ou calculadas explicitamente.
Médias sobre candles reaisRTS, sessões e primitivas legadas, quando mantidas por conveniência. Devem ser marcadas como candle-based.

Nunca use preço sintético Heikin-Ashi como preço garantido de execução. O sinal nasce no Heikin-Ashi, mas stop, alvo e ordem devem ser calculados com OHLC real ou com referências convertidas para preço real.

Contrato Para Dados Híbridos

A reunião aceita manter alguns cálculos legados em candle real, desde que o robô saiba exatamente de onde cada referência veio. O que não pode acontecer é comparar uma média visual de Heikin-Ashi com uma linha calculada em candle real sem registrar isso.

Campos mínimos por série:

priceSource = "REAL_CANDLE" | "HEIKIN_ASHI"
maSource = "REAL_CLOSE" | "HA_CLOSE"
lineSource = "REAL_PRIMITIVE" | "HA_PRIMITIVE" | "MANUAL_REFERENCE"

Regra prática:

  • máxima e mínima reais continuam sendo a base mais segura para execução e stop;
  • corpo, pavio e cor devem ser calculados na garrafinha;
  • tamanho da garrafinha deve usar o range da própria garrafinha, não a OSC do candle real, quando o objetivo for classificar o corpo Heikin-Ashi;
  • RTS e sessões podem continuar candle-based se isso for registrado no payload do sinal.

Fórmula Padrão do Heikin-Ashi

Se a plataforma já entregar candles Heikin-Ashi confiáveis, use a série nativa e valide contra esta fórmula. Se o robô precisar calcular internamente, use:

haClose[i] = (open[i] + high[i] + low[i] + close[i]) / 4
haOpen[i] = (haOpen[i - 1] + haClose[i - 1]) / 2
haHigh[i] = max(high[i], haOpen[i], haClose[i])
haLow[i] = min(low[i], haOpen[i], haClose[i])

Para o primeiro candle da série:

haOpen[0] = (open[0] + close[0]) / 2

A reunião enfatiza que a abertura da nova garrafinha ocorre no ponto médio do corpo anterior:

haOpen[i] = (haOpen[i - 1] + haClose[i - 1]) / 2

Predicados Básicos de Candle

Todos os predicados abaixo devem ser calculados sobre Heikin-Ashi, salvo quando indicado o contrário.

body        = abs(haClose - haOpen)
upperWick = haHigh - max(haOpen, haClose)
lowerWick = min(haOpen, haClose) - haLow
range = haHigh - haLow
isGreen = haClose > haOpen
isRed = haClose < haOpen

Como dados de mercado podem ter arredondamento, spread e casas decimais diferentes, "sem pavio" não deve depender de igualdade absoluta com zero. Use tolerância parametrizada.

tickTolerance = max(symbolTickSize * toleranceTicks, range * toleranceRangePct)
noLowerWick = lowerWick <= tickTolerance
noUpperWick = upperWick <= tickTolerance

Valores iniciais sugeridos:

ParâmetroValor inicialObservação
toleranceTicks1 a 2 ticksAjustar por ativo.
toleranceRangePct0.022% do range da garrafinha.

Tolerância Por Tempo Gráfico

No G05, a reunião foi dura: entrada de G05 deve ser sem pavio contrário. Em H4 e Diário, aparece a ideia de tolerar um pavio pequeno quando o corpo é grande e o setup maior está forte.

wickPolicyByTimeframe = {
G05: "STRICT_NO_OPPOSITE_WICK",
H4: "ALLOW_TINY_OPPOSITE_WICK_IF_BODY_STRONG",
D1: "ALLOW_TINY_OPPOSITE_WICK_IF_BODY_STRONG"
}

Não aplique a tolerância do H4 no G05.

Tamanho do Corpo

A reunião usa duas formas de avaliar corpo:

  1. proporção do corpo contra os pavios da própria garrafinha;
  2. proporção do corpo contra a OSC/range da própria garrafinha.

Para evitar ambiguidade, o robô deve calcular as duas e registrar as duas no log.

bodyToRangePct = range > 0 ? body / range : 0
bodyToMaxWick = max(upperWick, lowerWick) > 0 ? body / max(upperWick, lowerWick) : Infinity

Predicados iniciais:

isLargeBodyByWick = body >= bodyToWickMultiplier * max(upperWick, lowerWick)
isSmallBodyByWick = max(upperWick, lowerWick) >= wickToBodyMultiplier * body

Parâmetros:

bodyToWickMultiplier = 2
wickToBodyMultiplier = 2

Na medição discutida para H4, a classificação sugerida foi:

ClassePercentual do corpo sobre range da garrafinha
Pequeno<= 10%
Médio> 10% e <= 30%
Grande> 30%

Contrato programável:

bodySizeByRange(i) =
if bodyToRangePct[i] <= 0.10: "small"
else if bodyToRangePct[i] <= 0.30: "medium"
else: "large"

Para G05, use esses limites como preset inicial de backtest, mas não trate como regra definitiva até confirmação. O documento anterior exigia apenas corpo grande; a transcrição amplia isso: em alguns setups, corpo médio ou maior que médio é suficiente.

Força e Perda de Força

Uma tendência forte de alta, pela leitura das garrafinhas, exige:

  • garrafinha verde;
  • ausência de pavio inferior;
  • corpo médio ou grande, conforme o setup;
  • fechamento ascendente;
  • fechamento acima da média de viés configurada.

Predicado:

strongBullCandle(i) =
isGreen(i)
and noLowerWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] > haClose[i - 1]
and haClose[i] > supportMA[i]

Na baixa, espelhe:

strongBearCandle(i) =
isRed(i)
and noUpperWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] < haClose[i - 1]
and haClose[i] < resistanceMA[i]

O primeiro alerta de perda de força aparece antes da virada ficar óbvia.

Na alta:

bullWeaknessCandle(i) =
bodySizeByRange(i) == "small"
and lowerWick[i] >= wickProminentMultiplier * max(body[i], symbolTickSize)

Na baixa:

bearWeaknessCandle(i) =
bodySizeByRange(i) == "small"
and upperWick[i] >= wickProminentMultiplier * max(body[i], symbolTickSize)

Parâmetros iniciais:

ParâmetroValor inicial
wickProminentMultiplier1.0

Esses alertas não liquidam sozinhos. Eles travam novas entradas na mesma direção, reduzem agressividade e levam o estado para perigo quando aparecem contra posição aberta.

Médias Móveis do G05

O pacote de médias do G05 deve ser implementado como preset próprio da reunião.

MédiaTipoPeríodoAlias da reuniãoFunção no robô
SMA 96Simples9696Filtro lento, segurança, confirmação de aceleração e seleção de par.
EMA 89Exponencial8989Filtro robusto, LT consistente e confirmação de aceleração.
EMA 34Exponencial34pink / rosaMédia que determina o viés/tendência do G05 e funciona como suporte/resistência principal.
EMA 21Exponencial21red / vermelhaFiltro operacional, suporte/resistência secundária e confirmação.
EMA 3Exponencial3amarela / bolinha amarelaTiming rápido, aceleração e relação com LT/médias.
Correção importante

A versão anterior deste documento listava SMA 34. Pela transcrição, a média 34 do G05 é tratada como EMA 34 e chamada de pink. Use EMA34 neste setup.

Médias de Contexto Citadas

As transcrições também citam médias e linhas que não pertencem ao pacote base acima, mas entram em outros algoritmos:

ReferênciaUso
EMA377 ou MA377Setup macro G05 89/377. O tipo exato da 377 precisa confirmação.
MA8 laranjaSetup de garrafinha H4.
GoldFiltro do setup H4/Diário. Período e tipo precisam confirmação.
RTS 21Referência legada relevante, possivelmente candle-based.
T21, T89, C13, MC4, FTAPrimitivas/placares citados; precisam contrato próprio.

Viés, Setup e Entrada

A reunião diferencia três camadas que não devem ser misturadas.

CamadaO que significaExemplo
ViésO lado dominante já mudou.Fechamento da garrafinha abaixo/acima da média de viés.
Setup operávelHá condição técnica para procurar entrada.Garrafinha sem pavio, corpo médio/grande, acima/abaixo das referências.
EntradaO candle de execução fechou com gatilho completo.G05 fecha sem pavio contrário, passa a referência e tem médias alinhadas.

Exemplo importante: se no Diário/H4 o viés virar para baixa, o robô deve parar de procurar compra mesmo que ainda não exista uma garrafinha perfeita para venda. Viés oposto bloqueia novas entradas na direção antiga.

Média de Suporte ou Resistência

Para o G05, a média de suporte/resistência principal deve ser a EMA34.

supportMAName    = "EMA34"
resistanceMAName = "EMA34"
fastMAName = "EMA3"
redMAName = "EMA21"

Regras:

  • na alta, a EMA34 atua como suporte dinâmico e linha de viés;
  • na baixa, a EMA34 atua como resistência dinâmica e linha de viés;
  • fechar do lado errado da EMA34 e sinal forte de liquidação ou bloqueio;
  • se o preço já está abaixo da EMA34 em contexto de venda, não exija novo cruzamento da EMA34; nesse caso, a garrafinha vermelha sem pavio superior pode acionar a venda se os demais filtros estiverem alinhados;
  • espelhe para compra quando o preço já está acima da EMA34.

Alinhamento de Médias

O alinhamento evita que o robô compre contra resistência dinâmica ou venda contra suporte dinâmico.

Para compra direcional limpa:

bullMAAlignment(i) =
realClose[i] > EMA3[i]
and realClose[i] > EMA21[i]
and realClose[i] > EMA34[i]
and EMA3[i] >= EMA21[i]
and EMA21[i] >= EMA34[i] optional by profile

Para venda direcional limpa:

bearMAAlignment(i) =
realClose[i] < EMA3[i]
and realClose[i] < EMA21[i]
and realClose[i] < EMA34[i]
and EMA3[i] <= EMA21[i]
and EMA21[i] <= EMA34[i] optional by profile

Para entrada acelerada, o filtro é mais exigente:

acceleratedBullMAAlignment(i) =
bullMAAlignment(i)
and maFailureUp(EMA34, i)
and maFailureUp(EMA21, i)
and maFailureUp(EMA3, i)
and (maFailureUp(EMA89, i) or maFailureUp(SMA96, i))

acceleratedBearMAAlignment(i) =
bearMAAlignment(i)
and maFailureDown(EMA34, i)
and maFailureDown(EMA21, i)
and maFailureDown(EMA3, i)
and (maFailureDown(EMA89, i) or maFailureDown(SMA96, i))

Modo mais apertado:

strictAcceleratedMode =
require EMA89 and SMA96 in the trade direction

A reunião diz 89 e/ou 96. Para entrada muito apertada, usar as duas aumenta segurança e reduz sinais.

Falha de Bolinha

A reunião cita "falha de bolinha" nas médias SMA96, EMA89, EMA34, EMA21 e EMA3. A "bolinha amarela" é a representação visual da EMA3, mas o conceito de bolinha não se limita à EMA3: no Docusaurus, Ondas de Bolinhas define bolinhas como os pontos plotados das médias móveis, em que cada média de cada candle forma uma bolinha e a sequência dessas bolinhas cria ondas de média.

Fontes internas já existentes:

FonteO que fechaO que ainda não fecha para este setup
Ondas de BolinhasDefine onda de bolinhas, contagem mínima, zerada, falha imediata e falha estrutural.Serve como base conceitual; a regra abaixo fecha a falha usada neste setup.
FalhaDefine a lógica geral: a falha mede saúde da tendência, não é reversão automática, e precisa confirmação.A definição é de ciclo/preço; precisa adaptação explícita para ciclo de médias.
Médias MóveisConfirma que médias têm ciclos próprios e que referências como falha podem derivar de ciclos de MMs.A regra abaixo transforma esse conceito em predicado para maFailureUp/Down.

Definição Fechada Para Programação

Cada bolinha é o valor de uma média móvel em um candle fechado. A falha de bolinha acontece quando a média vinha em sequência de 3+ bolinhas na mesma direção e, no candle seguinte, enverga para o lado contrário.

Falha de baixa:

maFailureDown(ma, i) =
isClosed(i)
and ascendingDotCount(ma, i - 1) >= 3
and maDotDirection(ma, i) == "down"

Interpretação: a média vinha com 3+ bolinhas ascendentes; a bolinha de referência é a última bolinha antes da virada, isto é, a mais alta da sequência; no candle seguinte, a média enverga para baixo. Essa é a falha de baixa.

Falha de alta:

maFailureUp(ma, i) =
isClosed(i)
and descendingDotCount(ma, i - 1) >= 3
and maDotDirection(ma, i) == "up"

Interpretação: a média vinha com 3+ bolinhas descendentes; a bolinha de referência é a última bolinha antes da virada, isto é, a mais baixa da sequência; no candle seguinte, a média enverga para cima. Essa é a falha de alta.

Definições auxiliares:

minDotSequence = 3
maSlopeEpsilon = 0

maDotDirection(ma, i) =
"up" if ma[i] > ma[i - 1] + maSlopeEpsilon
"down" if ma[i] < ma[i - 1] - maSlopeEpsilon
"flat" otherwise

ascendingDotCount(ma, i) =
quantidade de bolinhas consecutivas fechadas, terminando em i,
em que cada valor da média é maior que o valor anterior

descendingDotCount(ma, i) =
quantidade de bolinhas consecutivas fechadas, terminando em i,
em que cada valor da média é menor que o valor anterior

Se maDotDirection for "flat", não existe falha nova nesse candle. Candle aberto também não confirma falha.

Para esta automação, a leitura operacional correta é:

  • maFailureUp(ma, i) não é simplesmente close > ma, inclinação positiva isolada ou cruzamento de médias;
  • maFailureDown(ma, i) não é simplesmente close < ma, inclinação negativa isolada ou cruzamento de médias;
  • a falha deve ser calculada sobre a sequência de bolinhas da própria média, não sobre o candle isolado;
  • em compra, a falha de bolinha favorável indica que uma tentativa/correção de baixa das bolinhas falhou e a média voltou a produzir estrutura de alta;
  • em venda, a falha de bolinha favorável indica que uma tentativa/correção de alta das bolinhas falhou e a média voltou a produzir estrutura de baixa.

O contrato do sinal deve registrar a sequência que gerou a falha:

dotFailureSignal = {
direction: "bull" | "bear",
maName: "SMA96" | "EMA89" | "EMA34" | "EMA21" | "EMA3",
failureType: "three-dot-sequence-bend",
candleIndex: number,
dotValue: number,
referenceDotIndex: number,
referenceDotValue: number,
sequenceDirection: "ascending" | "descending",
sequenceCount: number,
minDotSequence: 3,
confirmed: boolean,
source: "engine"
}

Uso permitido:

dotFailureSignal.confirmed == true
and dotFailureSignal.direction == tradeDirection
and dotFailureSignal.candleIndex <= signalCandleIndex

Bloqueios de implementação:

  • não substituir falha de bolinha por cruzamento de preço com média;
  • não substituir falha de bolinha por slope atual sem a sequência anterior de 3+ bolinhas;
  • não misturar bolinha de uma média com referência (BR) de outra;
  • não confirmar falha em candle aberto;
  • não contar bolinha flat como ascendente ou descendente;
  • não considerar a falha isolada como reversão automática; ela é filtro de alinhamento/aceleração dentro do contexto de garrafinhas, médias e LT.

Ciclo de Alta

O ciclo de alta nasce quando aparece a primeira garrafinha verde sem pavio inferior depois de um contexto que não estava em alta forte.

bullCycleStart(i) =
isGreen(i)
and noLowerWick(i)
and haClose[i] > supportMA[i]
and previousState != "BullCycle"

Essa garrafinha inicial é a Garrafinha de Referência, ou GR.

Campos do ciclo:

cycle = {
direction: "bull",
startIndex: i,
referenceIndex: i,
referenceLow: realLow[i],
highestRealHigh: realHigh[i],
highestHaClose: haClose[i],
secondHighestHaClose: null,
dangerCount: 0
}

A cada candle fechado do ciclo:

highestRealHigh = max(highestRealHigh, realHigh[i])
highestHaClose = max(highestHaClose, haClose[i])
secondHighestHaClose = segundo maior haClose unico desde startIndex

Ciclo de Baixa

O ciclo de baixa nasce quando aparece a primeira garrafinha vermelha sem pavio superior, preferencialmente após cruzamento ou fechamento abaixo da média de viés.

bearCycleStart(i) =
isRed(i)
and noUpperWick(i)
and haClose[i] < resistanceMA[i]
and previousState != "BearCycle"

Campos do ciclo:

cycle = {
direction: "bear",
startIndex: i,
referenceIndex: i,
referenceHigh: realHigh[i],
lowestRealLow: realLow[i],
lowestHaClose: haClose[i],
secondLowestHaClose: null,
dangerCount: 0
}

Regra do Segundo Fechamento Mais Alto

A reunião define:

Se o preço estiver abaixo do segundo fechamento mais alto do movimento de alta, não compre.

Regra programável para compra:

blockBuyBySecondClose(i) =
secondHighestHaClose exists
and haClose[i] < secondHighestHaClose

Interpretação:

  • calcule os fechamentos Heikin-Ashi desde a GR do ciclo de alta;
  • ordene os fechamentos únicos do maior para o menor;
  • pegue o segundo maior fechamento;
  • se o candle de sinal fechar abaixo dele, o robô não compra.

Essa regra evita comprar quando o movimento já perdeu uma referência importante de sustentação.

Espelho para venda:

blockSellBySecondClose(i) =
secondLowestHaClose exists
and haClose[i] > secondLowestHaClose

Na venda, se o preço estiver acima do segundo fechamento mais baixo do movimento de baixa, não venda.

Tipos de Entrada

Existem três famílias principais de entrada no G05.

TipoQuando usarO que não confundir
Continuidade limpaCiclo já nasceu e o candle confirma força.Não é pivô.
Entrada aceleradaCandle passa referência, fechamento ou LT com tudo acelerado.Não exige pivô formado.
Pivô da garrafinhaHouve correção, LT e retorno direcional.Não é simples rompimento.

O signalPayload deve sempre declarar:

entryFamily =
"clean_continuation"
| "accelerated_reference_break"
| "bottle_pivot"

Entrada de Compra Por Continuidade Limpa

A entrada de compra exige candle fechado e todos os filtros abaixo.

buyCleanSignal(i) =
isGreen(i)
and noLowerWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] > haClose[i - 1]
and haClose[i] > EMA34[i]
and bullMAAlignment(i)
and not blockBuyBySecondClose(i)
and not bullWeaknessCandle(i)
and noOpenPosition(symbol, timeframe)

Regras adicionais:

  • não comprar em candle verde com pavio inferior expressivo;
  • não comprar se o candle ainda estiver aberto;
  • não comprar se a garrafinha verde aparecer abaixo da EMA34;
  • não comprar se houver duas garrafinhas vermelhas recentes contra o ciclo e a média não confirmou sustentação;
  • não comprar se o módulo de bolinha estiver ligado e a falha de bolinha não estiver alinhada;
  • não comprar em movimento atrasado que já perdeu o segundo fechamento mais alto.

Entrada de Venda Por Continuidade Limpa

A entrada de venda é o espelho da compra.

sellCleanSignal(i) =
isRed(i)
and noUpperWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] < haClose[i - 1]
and haClose[i] < EMA34[i]
and bearMAAlignment(i)
and not blockSellBySecondClose(i)
and not bearWeaknessCandle(i)
and noOpenPosition(symbol, timeframe)

Regras adicionais:

  • não vender em candle vermelho com pavio superior expressivo;
  • não vender se o candle ainda estiver aberto;
  • não vender se a garrafinha vermelha aparecer acima da EMA34;
  • não vender se houver duas garrafinhas verdes recentes contra o ciclo e a média não confirmou sustentação;
  • não vender se o módulo de bolinha estiver ligado e a falha de bolinha não estiver alinhada;
  • não vender em movimento atrasado que já perdeu o segundo fechamento mais baixo.

Entrada Acelerada Por Referência

A entrada acelerada serve para operar uma passagem limpa por uma referência relevante sem esperar a formação de pivô.

Referências válidas:

  • fechamento de garrafinha Diário;
  • fechamento de garrafinha H4;
  • limite superior/inferior de um retângulo formado por fechamentos relevantes;
  • LT robusta;
  • LT 89, LT 377, LT de microciclo ou LT de garrafinhas, quando formalizada;
  • referência de correção do H4.

Compra acelerada:

buyAcceleratedSignal(i, referenceLine) =
haClose[i] > referenceLine.price
and isGreen(i)
and noLowerWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] > EMA34[i]
and acceleratedBullMAAlignment(i)
and referenceLine.allowsDirection == "bull"

Venda acelerada:

sellAcceleratedSignal(i, referenceLine) =
haClose[i] < referenceLine.price
and isRed(i)
and noUpperWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] < EMA34[i]
and acceleratedBearMAAlignment(i)
and referenceLine.allowsDirection == "bear"

Regra importante do G05:

  • compra acelerada no G05 precisa fechar sem pavio inferior;
  • venda acelerada no G05 precisa fechar sem pavio superior;
  • se houver pavio contrário no G05, não entre; espere o próximo candle sem pavio.

Confirmação 89/96 Após Entrada

A passagem da EMA89 ou da SMA96 pela referência depois do sinal mede qualidade da aceleração.

accelerationHealth =
if EMA89 or SMA96 crosses referenceLine within 2 hours: "excellent"
else if EMA89 or SMA96 crosses referenceLine within 4 hours: "acceptable"
else: "weak_or_lateral"

Isso deve entrar como score, ranking de pares e gestão, não como gatilho obrigatório de entrada, salvo se um perfil específico exigir.

Pivô da Garrafinha G05

O pivô da garrafinha é a entrada preferida quando o mercado corrige e volta a favor do contexto.

Contextos favoraveis:

  • H4 acelerado na direção do trade;
  • Diário com viés a favor e G05 corrigindo;
  • G05 macro 89/377 a favor;
  • correção que respeitou a referência de fechamento do H4/Diário;
  • preço acima das referências para compra ou abaixo para venda.

Estrutura Minima do Pivô

O pivô precisa ter:

  • uma perna de correção;
  • uma LT desenhada sobre as garrafinhas ou sobre uma média/onda robusta;
  • um retorno direcional;
  • candle de gatilho sem pavio contrário;
  • EMA3/bolinha amarela no lado correto da LT;
  • corpo médio ou grande;
  • fechamento do lado correto da EMA34.

Contrato provisório:

bottlePivot = {
direction: "bull" | "bear",
legAStartIndex,
legBExtremeIndex,
triggerIndex,
trendLineId,
referenceLineId,
ema3StayedOnValidSideOfLT: boolean,
triggerClosedBeyondLT: boolean,
triggerClosedBeyondReference: boolean
}

Pivô de Compra

buyBottlePivotSignal(i, pivot) =
pivot.direction == "bull"
and pivot.triggerIndex == i
and isGreen(i)
and noLowerWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] > EMA34[i]
and haClose[i] > pivot.referenceLine.price
and pivot.triggerClosedBeyondLT
and pivot.ema3StayedOnValidSideOfLT
and bullMAAlignment(i)

Regra operacional:

  • se a correção do H4 gerou uma linha pelos fechamentos mais baixos, compre apenas acima dessa linha;
  • não compre pivô abaixo da linha de referência, mesmo que o G05 pareca acelerado;
  • se o pivô se formou do lado errado da LT e apenas voltou depois, rejeite, salvo perfil agressivo explicitamente configurado.

Pivô de Venda

sellBottlePivotSignal(i, pivot) =
pivot.direction == "bear"
and pivot.triggerIndex == i
and isRed(i)
and noUpperWick(i)
and bodySizeByRange(i) in ["medium", "large"]
and haClose[i] < EMA34[i]
and haClose[i] < pivot.referenceLine.price
and pivot.triggerClosedBeyondLT
and pivot.ema3StayedOnValidSideOfLT
and bearMAAlignment(i)

Regra operacional:

  • se a correção do H4 gerou uma linha pelos fechamentos mais altos, venda apenas abaixo dessa linha;
  • não venda pivô acima da linha de referência, mesmo que exista corte de LT;
  • na venda, a bolinha amarela/EMA3 não deve ficar do lado inválido da LT durante a formação do pivô.
Lacuna de LT

A transcrição deixa claro que a LT é mais importante que pequenas invasões de média, mas não formaliza os anchors da LT. Sem contrato de anchors, tolerância e atualização, o pivô não pode ser 100% automático.

Gatilho Sem Ret62

A reunião separa pivôs que voltam na Ret62 dos que não voltam. A regra completa não foi fechada, mas há uma família de gatilhos para quando o movimento já está abaixo/acima da média e não precisa "passar pela média" de novo.

Venda sem Ret62, versão programável parcial:

sellWithoutRet62Candidate(i) =
isRed(i)
and noUpperWick(i)
and haClose[i] < previousBullExGRLow
and haClose[i] < EMA34[i]
and acceleratedBearMAAlignment(i)

Alternativa com duas garrafinhas:

sellWithoutRet62TwoCandles(i) =
isRed(i)
and isRed(i - 1)
and noUpperWick(i)
and haClose[i] < EMA34[i]
and acceleratedBearMAAlignment(i)

Se o preço já estava abaixo da EMA34, não force uma nova regra de "fechar abaixo da média"; nesse caso, a média já está cumprida e o foco volta para candle sem pavio, referência e alinhamento.

Espelhe para compra.

Lacuna Ret50/Ret62

Ainda falta a matriz completa: quando usar Ret62, quando Ret50 basta, qual linha vira referência e quando uma ou duas garrafinhas substituem o pivô formal.

Contexto Diário e H4

O G05 pode operar sozinho, mas muitas entradas discutidas usam Diário ou H4 como contexto.

Diário

O Diário define direção estrutural e referências amplas.

Regras consolidadas:

  • garrafinha diaria fechando acima da média de viés cria viés de alta;
  • garrafinha diaria fechando abaixo da média de viés cria viés de baixa;
  • viés oposto bloqueia novas entradas antigas mesmo que ainda não exista setup perfeito no lado novo;
  • entrada operacional pode acontecer no dia seguinte ou depois, calibrada pelo H4/G05;
  • a linha do fechamento da garrafinha diaria pode virar referência para entrada;
  • a EXP do Diário é destino técnico importante; antes dela, o Diário tende a mandar segurar, salvo mudança de viés diário.

H4

O H4 funciona como contexto e também como algoritmo próprio.

Setup de alta H4 citado:

h4BullBottleSetup(i) =
isGreen(i)
and haClose[i] > MA8[i]
and haClose[i] > GoldMA[i]
and noLowerWick(i) or tinyLowerWickAllowed(i)
and bodySizeByRange(i) in ["medium", "large"]

Setup de baixa H4: espelho.

Regras:

  • a primeira garrafinha que instala o setup precisa ser mais limpa, porque contra-ataque rápido inválida o movimento;
  • H4 pode aceitar pavio pequeno se o corpo é grande e o contexto está forte;
  • no G05 que executa o H4, volte para a regra estrita: sem pavio contrário;
  • linhas de fechamento do H4 podem virar referências de entrada;
  • se o H4 fraquejar na EXP do Diário, pode liquidar uma operação que nasceu no Diário.

Lacunas do H4:

  • período e tipo da GoldMA;
  • se MA8 é simples ou exponencial;
  • definição matemática de "H4 fraquejou";
  • regra exata para operar "primeira garrafinha" versus garrafinhas seguintes.

Setup Macro G05 89/377

A transcrição destaca que, se for operar somente o G05, o setup robusto seria o 89/377.

Ideia:

  • EMA89 acima da MA377 favorece compras;
  • EMA89 abaixo da MA377 favorece vendas;
  • MA377 e RTS podem funcionar como suportes/resistências relevantes;
  • correções em ABC ou pivôs acima/abaixo dessas referências geram entradas;
  • LTs robustas filtram ruído melhor que LT curta.

Contrato inicial:

g05MacroBull89_377(i) =
EMA89[i] > MA377[i]
and slope(EMA89, lookback) > 0
and slope(MA377, lookback) >= 0
and realClose[i] > MA377[i]

g05MacroBear89_377(i) =
EMA89[i] < MA377[i]
and slope(EMA89, lookback) < 0
and slope(MA377, lookback) <= 0
and realClose[i] < MA377[i]

Entradas permitidas dentro desse contexto:

  • pivô da garrafinha a favor do macro;
  • entrada acelerada após correção em ABC;
  • passagem por LT robusta com G05 sem pavio contrário;
  • retomada acima de RTS/377 para compra ou abaixo para venda, se a referência estiver formalizada.

LTs robustas citadas como filtros:

  • LT do H4 ou microciclo H4;
  • LT 89;
  • LT 377;
  • LT C13;
  • LT MC4;
  • LT das garrafinhas do G05;
  • LT 21, mas com ressalva de ser mais ruidosa.
Lacuna 89/377

A transcrição não fixa o tipo da média 377 nem o algoritmo de LT robusta. Implemente o esqueleto, mas não libere trading automático desse módulo sem essas definições.

Fibonacci, Ret e EXP

Correção terminológica: use EXP, não ESP. Neste documento, EXP significa Expansão de Fibonacci.

A estratégia usa Fibonacci em duas camadas:

  1. expansão do movimento/ciclo;
  2. expansão de pivôs que aparecem no caminho.

Expansão do Ciclo Pela GR

Para compra:

fibA = cycle.referenceLow
fibB = cycle.highestRealHigh

Para venda:

fibA = cycle.referenceHigh
fibB = cycle.lowestRealLow

Expansão do Pivô

Para pivô de venda, a transcrição diz que o Fibonacci vem da máxima da perna B do pivô.

sellPivotFibA = pivot.legBRealHigh
sellPivotFibB = pivot.nextRealLowOrTriggerReference

Para pivô de compra, espelhe:

buyPivotFibA = pivot.legBRealLow
buyPivotFibB = pivot.nextRealHighOrTriggerReference

O segundo ponto (fibB) ainda precisa ser formalizado conforme o motor de pivô.

Níveis Citados

NívelUso
Ret50Retração mais curta; decisão específica ainda pendente.
Ret62Retração profunda; pivôs que voltam nela receberam tratamento próprio.
EXP38Zona recorrente de observação/liquidação.
EXP56Zona citada em liquidação de pivô.

Confluência de EXPs

O robô deve expandir pivôs relevantes e registrar confluência.

expConfluenceAt(priceZone) =
count(expansions whose target zone overlaps priceZone) >= minExpConfluence

Parâmetro inicial:

minExpConfluence = 2

Regras:

  • duas figuras contrárias em uma única EXP podem justificar realização conservadora;
  • duas figuras contrárias em duas ou mais EXPs confluentes são sinal mais forte de liquidação;
  • se não chegou em EXP, duas figuras contrárias sozinhas não liquidam automaticamente, salvo se também houver LT, média ou pivô contrário.

Stop, Risco e Alvo

O stop depende da família de entrada.

EntradaStop técnico inicial
Continuidade limpaAbaixo/acima da GR ou do último fundo/topo real relevante.
Entrada acelerada por retângulo/referênciaDo outro lado do retângulo ou da referência que justificou a entrada.
Pivô da garrafinhaNa perna B do pivô, com buffer.
Já abaixo/acima da EMA34Acima/abaixo do último topo/fundo real ou da "coisinha" local do pivô; precisa buffer.

Para compra:

entryPrice = executableAskOrMarketPrice
stopPrice = selectedRealSupport - stopBuffer
riskR = entryPrice - stopPrice

Para venda:

entryPrice = executableBidOrMarketPrice
stopPrice = selectedRealResistance + stopBuffer
riskR = stopPrice - entryPrice

Alvos por R:

target6R  = entryPrice +/- 6 * riskR
target10R = entryPrice +/- 10 * riskR

Use + para compra e - para venda.

Risco-Retorno Por Perfil

A reunião enfatiza relações de 1:6 a 1:10 para entradas limpas do G05, mas também mostra exemplos de scalps menores em operações ruins/curtas ou em liquidações. Portanto, não coloque 6R como bloqueio global de todos os módulos.

minimumRewardRiskBySetup = {
G05_CLEAN_CONTINUATION: 6,
G05_ACCELERATED_REFERENCE_BREAK: 3,
G05_BOTTLE_PIVOT: 2,
G05_89_377_MACRO: 3
}

Esses valores são presets de backtest, não verdade final. O perfil de produção deve declarar o mínimo por setup.

Estado de Perigo

Durante uma compra, duas garrafinhas vermelhas seguidas colocam o robô em perigo.

buyDanger(i) =
currentPosition.direction == "buy"
and isRed(i)
and isRed(i - 1)

Durante uma venda:

sellDanger(i) =
currentPosition.direction == "sell"
and isGreen(i)
and isGreen(i - 1)

O estado de perigo significa que o mercado pode:

  • congestionar;
  • corrigir;
  • reverter.

Ele não significa saída automática em todos os casos.

Regra refinada:

  • duas garrafinhas contrárias antes da EXP e com média segurando = perigo, proteger e não abrir nova entrada;
  • duas garrafinhas contrárias na EXP = liquidação provável;
  • duas garrafinhas contrárias em confluência de EXPs = liquidação forte;
  • duas garrafinhas contrárias + fechamento do lado errado da EMA34 = liquidar;
  • duas garrafinhas contrárias + pivô contrário acima/abaixo da LT = liquidar.

Saídas e Liquidações

A liquidação deve registrar o motivo principal e os motivos secundários. Uma saída pode ser acionada por mais de uma regra no mesmo candle.

Saída Por EMA34

Na compra:

exitBuyByEMA34(i) =
currentPosition.direction == "buy"
and haClose[i] < EMA34[i]

Na venda:

exitSellByEMA34(i) =
currentPosition.direction == "sell"
and haClose[i] > EMA34[i]

Saída Por LT

Compra:

exitBuyByLT(i) =
currentPosition.direction == "buy"
and haClose[i] < activeBottleTrendLine.priceAt(i)

Venda:

exitSellByLT(i) =
currentPosition.direction == "sell"
and haClose[i] > activeBottleTrendLine.priceAt(i)

A transcrição também cita a bolinha amarela atravessando a LT como confirmação. Como falta o contrato exato da LT, trate isso como reforço:

exitByLTWithDotConfirmation =
exitByLT
and EMA3 crosses to invalid side of activeBottleTrendLine

Saída Por EMA3 Contra Red e Pink

Compra:

exitBuyByFastMA(i) =
currentPosition.direction == "buy"
and EMA3[i] < EMA21[i]
and EMA3[i] < EMA34[i]
and haClose[i] < EMA34[i] optional confirmation

Venda:

exitSellByFastMA(i) =
currentPosition.direction == "sell"
and EMA3[i] > EMA21[i]
and EMA3[i] > EMA34[i]
and haClose[i] > EMA34[i] optional confirmation

Saída Por EXP e Figuras Contrárias

Compra:

exitBuyByExpOppositeCandles(i) =
currentPosition.direction == "buy"
and isInExpZone(i)
and isRed(i)
and isRed(i - 1)

Venda:

exitSellByExpOppositeCandles(i) =
currentPosition.direction == "sell"
and isInExpZone(i)
and isGreen(i)
and isGreen(i - 1)

Se houver confluência de duas ou mais EXPs, aumente a prioridade da saída.

Saída Por Pivô Contrario

Compra:

exitBuyByOppositePivot(i) =
currentPosition.direction == "buy"
and sellBottlePivotSignal(i, detectedPivot)

Venda:

exitSellByOppositePivot(i) =
currentPosition.direction == "sell"
and buyBottlePivotSignal(i, detectedPivot)

Regras Que Não Devem Ser Generalizadas Para G05

A transcrição cita, no Diário/H4, liquidação por três figuras de corpo pequeno com pavio grande em zona de EXP. Também há fala explícita para não usar essa regra genericamente no G05.

Portanto:

threeSmallWickCandlesExit.enabledForG05 = false
threeSmallWickCandlesExit.enabledForH4OrD1 = configurable

Bloqueios Obrigatórios

O robô não deve entrar quando qualquer item abaixo for verdadeiro.

Bloqueios de Compra

BloqueioCondição
Candle abertoCandle de sinal ainda não fechou.
Pavio inferior no G05not noLowerWick(i).
Abaixo da EMA34haClose[i] <= EMA34[i], salvo setup que ainda está apenas procurando referência futura.
Abaixo do segundo fechamentoblockBuyBySecondClose(i).
Corpo fracobodySizeByRange(i) == "small", salvo modo de observação.
Fechamento não ascendentehaClose[i] <= haClose[i - 1], se o setup exigir continuidade.
Médias desalinhadasnot bullMAAlignment(i) ou not acceleratedBullMAAlignment(i) conforme setup.
Bolinha desalinhadamódulo ligado e sem dotFailureSignal confirmado a favor.
LT inválidapivô do lado errado da LT ou sem anchors válidos.
Referência não rompidaentrada acelerada sem fechamento acima da referência.
Risco-retorno insuficientealvo técnico ou R calculado menor que mínimo do setup.
Posição já abertaexiste trade aberto no mesmo ativo/timeframe/direção bloqueada.
Viés maior contrárioDiário/H4 bloqueia compra.

Bloqueios de Venda

BloqueioCondição
Candle abertoCandle de sinal ainda não fechou.
Pavio superior no G05not noUpperWick(i).
Acima da EMA34haClose[i] >= EMA34[i], salvo setup que ainda está apenas procurando referência futura.
Acima do segundo fechamento baixoblockSellBySecondClose(i).
Corpo fracobodySizeByRange(i) == "small", salvo modo de observação.
Fechamento não descendentehaClose[i] >= haClose[i - 1], se o setup exigir continuidade.
Médias desalinhadasnot bearMAAlignment(i) ou not acceleratedBearMAAlignment(i) conforme setup.
Bolinha desalinhadamódulo ligado e sem dotFailureSignal confirmado a favor.
LT inválidapivô do lado errado da LT ou sem anchors válidos.
Referência não rompidaentrada acelerada sem fechamento abaixo da referência.
Risco-retorno insuficientealvo técnico ou R calculado menor que mínimo do setup.
Posição já abertaexiste trade aberto no mesmo ativo/timeframe/direção bloqueada.
Viés maior contrárioDiário/H4 bloqueia venda.

Probabilidades Como Pontuação, Não Como Gatilho

A reunião cita:

  • depois de uma garrafinha verde, a chance da próxima também ser verde seria cerca de 75%;
  • com fechamento acima da média móvel, essa chance subiria para 80% a 95%.

Esses numeros devem ser tratados como justificativa estatistica do filtro, não como regra isolada de entrada.

Implementação recomendada:

signalScore = 0
if isGreen(i) and isGreen(i - 1): signalScore += 1
if noLowerWick(i): signalScore += 2
if haClose[i] > EMA34[i]: signalScore += 2
if bullMAAlignment(i): signalScore += 2
if not blockBuyBySecondClose(i): signalScore += 1
if EMA89 or SMA96 confirms within 2h: signalScore += 2

O score pode ajudar logs, ranking de sinais e backtest, mas não deve substituir os bloqueios obrigatórios.

Operação Multiativo

Para operar muitos ativos simultaneamente, o robô deve ter controle de exposição.

Regras mínimas:

  • limitar risco por trade;
  • limitar risco total aberto;
  • limitar numero de posições simultaneas por direção;
  • limitar exposição por moeda base e moeda cotada;
  • impedir duplicidade do mesmo ativo no mesmo tempo gráfico;
  • permitir que G05, G15, G60, H4 e Diário do mesmo ativo compartilhem trava de margem;
  • priorizar pares em que 89/96 confirmam aceleração mais rápido;
  • registrar todos os sinais bloqueados para auditoria.

Exemplo de parâmetros:

riskPerTradePct = 0.25% a 1.00%
maxOpenRiskPct = 3.00%
maxPositionsPerSymbol = 1
maxPositionsSameCurrency = 3

Esses valores dependem da conta, alavancagem e corretora.

Máquina de Estados

Use uma máquina de estados por ativo e tempo gráfico.

Idle
-> HigherTimeframeBias
-> BullCycleArmed
-> BearCycleArmed
-> EntryCandidate
-> InBuy
-> InSell
-> BuyDanger
-> SellDanger
-> ExitPending
-> Idle
EstadoSignificadoPróximas ações
IdleSem ciclo acionável.Procurar viés, ciclo ou referência.
HigherTimeframeBiasDiário/H4 permite apenas uma direção.Procurar execução G05 a favor.
BullCycleArmedGR de alta detectada.Validar entrada limpa, acelerada ou pivô.
BearCycleArmedGR de baixa detectada.Validar entrada limpa, acelerada ou pivô.
EntryCandidateExiste sinal quase completo, mas falta bloqueio passar.Aguardar fechamento/confirmação ou descartar.
InBuyCompra aberta.Gerenciar EXP, LT, EMA34, EMA3 e figuras contrárias.
InSellVenda aberta.Gerenciar EXP, LT, EMA34, EMA3 e figuras contrárias.
BuyDangerCompra com sinal contrário relevante.Proteger, reduzir ou sair se regra completa acionar.
SellDangerVenda com sinal contrário relevante.Proteger, reduzir ou sair se regra completa acionar.
ExitPendingSaída acionada aguardando execução/confirmação da corretora.Enviar ordem, confirmar fill e limpar estado.

Transições Principais

Idle -> HigherTimeframeBias:
dailyOrH4BiasDetected(i)

Idle -> BullCycleArmed:
bullCycleStart(i)

Idle -> BearCycleArmed:
bearCycleStart(i)

BullCycleArmed -> InBuy:
anyBuySignal(i)
and rewardRiskOk(i)
and riskLimitsOk(symbol, timeframe)

BearCycleArmed -> InSell:
anySellSignal(i)
and rewardRiskOk(i)
and riskLimitsOk(symbol, timeframe)

InBuy -> BuyDanger:
buyDanger(i)
or bullWeaknessCandle(i)

InSell -> SellDanger:
sellDanger(i)
or bearWeaknessCandle(i)

InBuy or BuyDanger -> ExitPending:
exitBuyByEMA34(i)
or exitBuyByLT(i)
or exitBuyByFastMA(i)
or exitBuyByExpOppositeCandles(i)
or exitBuyByOppositePivot(i)
or stopHit()
or takeHit()

InSell or SellDanger -> ExitPending:
exitSellByEMA34(i)
or exitSellByLT(i)
or exitSellByFastMA(i)
or exitSellByExpOppositeCandles(i)
or exitSellByOppositePivot(i)
or stopHit()
or takeHit()

Pseudocodigo do Motor

onCandleClose(symbol, timeframe, candle):
updateRealSeries(candle)
updateHeikinAshiSeries(candle)
updateMovingAverages(symbol, timeframe, source="HA_CLOSE")
updateLegacyReferences(symbol, timeframe, source="REAL_CANDLE")
updateTrendLines(symbol, timeframe)
updatePivots(symbol, timeframe)
updateExpansions(symbol, timeframe)
updateCycleStats(symbol, timeframe)

state = getState(symbol, timeframe)
context = getHigherTimeframeContext(symbol)
exits = evaluateExitRules(symbol, timeframe, context)

if hasOpenPosition(symbol, timeframe) and exits.hasHardExit:
closePosition(exits.primaryReason)
setState(ExitPending)
return

candidates = [
buyCleanSignal(i),
sellCleanSignal(i),
buyAcceleratedSignal(i, activeReference),
sellAcceleratedSignal(i, activeReference),
buyBottlePivotSignal(i, activePivot),
sellBottlePivotSignal(i, activePivot)
]

rankedCandidates = filterByBiasRiskAndBlocks(candidates, context)

if rankedCandidates.empty:
updateDangerOrArmedState()
logNoTradeDecision()
return

best = selectBestCandidate(rankedCandidates)
if best.rewardRiskOk and riskLimitsOk():
openPosition(best)
setState(best.direction == "buy" ? InBuy : InSell)
else:
logBlockedSignal(best)

Logs Obrigatórios

Cada candle fechado deve gerar log quando houver ciclo, sinal, bloqueio, entrada, saída ou perigo.

Campos mínimos:

{
timestamp,
symbol,
timeframe,
setupType,
entryFamily,
stateBefore,
stateAfter,
realOpen,
realHigh,
realLow,
realClose,
haOpen,
haHigh,
haLow,
haClose,
isGreen,
isRed,
upperWick,
lowerWick,
noUpperWick,
noLowerWick,
body,
range,
bodyToRangePct,
bodyToMaxWick,
bodySizeByRange,
EMA3,
EMA21,
EMA34,
EMA89,
SMA96,
MA377,
maAlignment,
dotFailureSignal,
activeReferenceLine,
activeTrendLine,
activePivot,
secondHighestHaClose,
secondLowestHaClose,
fibA,
fibB,
expZones,
expConfluenceCount,
entryPrice,
stopPrice,
riskR,
rewardRisk,
exitReasons,
decision,
blockReason
}

Sem esses logs, fica impossível auditar se uma entrada ruim veio da regra, do dado, da corretora, da média móvel, da LT ou da interpretação do candle.

Checklist Para Programação

Antes de liberar backtest ou produção, confirme:

  • Heikin-Ashi calculado igual ao gráfico usado pela equipe.
  • Candle fechado e candle em formação separados.
  • OHLC real e OHLC Heikin-Ashi armazenados separadamente.
  • Médias sobre Heikin-Ashi e médias sobre candle real identificadas por fonte.
  • Tolerância de pavio definida por ativo e por tempo gráfico.
  • G05 configurado como pavio contrário estritamente ausente.
  • Corpo pequeno/médio/grande calculado por range da garrafinha.
  • EMA34 usada como pink e média de viés do G05.
  • Pacote SMA96, EMA89, EMA34, EMA21, EMA3 criado como preset da reunião.
  • Falha de bolinha implementada como sequência de 3+ bolinhas em uma direção seguida de envergada contrária no candle seguinte.
  • Entrada limpa, acelerada e pivô separadas por entryFamily.
  • Regra do segundo fechamento mais alto implementada para compra.
  • Regra do segundo fechamento mais baixo implementada para venda.
  • Estado de perigo com duas garrafinhas contrárias implementado.
  • Liquidação por EMA34 implementada.
  • Liquidação por EXP + duas figuras contrárias implementada.
  • Liquidação por LT implementada somente depois de formalizar anchors da LT.
  • Fibonacci do ciclo e do pivô separados.
  • Stop calculado por preço real, não por preço sintético.
  • Perfil de R/R por setup, não um único mínimo global.
  • Logs completos gravados.
  • Bloqueios auditáveis por motivo.
  • Backtest separando spread, slippage e horário de mercado.
  • Multiativo com limite de risco e margem.

Lacunas Que Precisam de Confirmação

Estas lacunas não devem ser preenchidas por chute na implementação:

LacunaPor que importa
Anchors da LT das garrafinhas.Pivô, entrada acelerada e liquidação por LT dependem disso.
Convenção exata do lado válido da EMA3/bolinha em cada LT.A transcrição é clara na importância, mas a regra precisa virar geometria objetiva.
Definição formal de pivô da garrafinha e "V de perna curta".Precisa saber A/B/C, extremos, invalidação e candle de gatilho.
Matriz completa Ret50 versus Ret62.A transcrição cita diferenças, mas não fecha todo o fluxo.
previousBullExGRLow e espelho de venda/compra.A regra sem Ret62 usa ex-GR, mas precisa definição de qual GR anterior.
Período e tipo da GoldMA.O setup H4 depende dela.
Tipo da MA377.O setup 89/377 precisa saber se é EMA, SMA ou outra média.
Definições de RTS, T21, T89, FTA, C13 e MC4.São filtros/placares citados, mas não especificados aqui.
Como calcular EXPs e quais níveis oficiais usar.Foram citados 38 e 56, mas o preset completo falta.
Como rankear uma EXP isolada contra duas ou mais EXPs confluentes.Isso muda liquidação conservadora versus manter posição.
Stop oficial por setup.Há exemplos por retângulo, perna B e GR; falta buffer e prioridade.
Regra de "H4 fraquejou".Necessária para liquidar operações do Diário usando H4.
O que fazer quando 89/96 cruza em 2h ou 4h.Hoje está como score/saúde; pode virar filtro se a equipe decidir.
Vídeos ausentes.Parte 1 1of14 a 3of14 e Parte 2 2of5 podem conter definições não vistas.

Síntese Operacional

O robô deve procurar continuidade limpa, não adivinhar fundo ou topo.

Na compra, a entrada boa é uma garrafinha verde fechada sem pavio inferior, acima da EMA34, com médias alinhadas, sem perda do segundo fechamento mais alto, respeitando a referência do contexto e com risco-retorno suficiente para o setup.

Na venda, a entrada boa é uma garrafinha vermelha fechada sem pavio superior, abaixo da EMA34, com médias alinhadas, sem perda do segundo fechamento mais baixo, respeitando a referência do contexto e com risco-retorno suficiente para o setup.

Entrada acelerada e pivô são coisas diferentes. Acelerada é passagem limpa por referência com tudo apontando. Pivô exige correção, LT, bolinha do lado correto, candle sem pavio e referência rompida.

Duas garrafinhas contra a posição colocam o trade em perigo. Elas liquidam quando aparecem em EXP, confluência de EXPs, perda da EMA34, corte de LT ou pivô contrário. Antes disso, são alerta e gestão, não saída cega.