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.