From cdb42d947bbece6dcd02011ec21434f5dd9b9e09 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Mon, 23 Feb 2026 21:36:50 -0300 Subject: [PATCH 01/63] Add files from C:\Nova pasta --- caracteristicas_WIN_mini_indice.md | 50 ++ caracteristicas_ativos_tecnicos.md | 95 +++ correlacao_ativos.md | 23 + eficiencia_tributaria.md | 101 +++ fev_2minReversaoComVolumeWIN.txt | 220 +++++++ fev_ATRmovimentoDoPrecoComVontade.txt | 52 ++ fev_ContadorCruzamentosMedias.txt | 93 +++ fev_DetectorFasesMercado.txt | 85 +++ fev_DivergenciaIFR.txt | 58 ++ fev_HorarioTurbulencia.txt | 44 ++ fev_MediasSetupDiario.txt | 74 +++ fev_MediasSetupSemana.txt | 78 +++ fev_OBVvolumeVerdadeiro.txt | 53 ++ fev_PainelDecisao.txt | 51 ++ fev_PainelDecisaoAlarme.ntsl.txt | 105 ++++ fev_PriceActionAnaliseCorpo.txt | 48 ++ fev_PriceActionAnaliseSombra.txt | 37 ++ fev_PriceActionCorpoSombraExecucao.txt | 185 ++++++ fev_PriceActionNewton.txt | 265 ++++++++ fev_PriceActionTiposCandlesLeitura.txt | 170 +++++ fev_PriceActionVSA_OBV.txt | 120 ++++ fev_RegraDeDow_Rompimento.txt | 68 ++ fev_TendenciaLongoPrazo.txt | 110 ++++ fev_TendenciaPivoTesteDeOuro.txt | 107 ++++ fev_VSAassinaturaInstitucional.txt | 70 +++ fev_VWAPreferenciaPreco.txt | 36 ++ fev_VWAPsemanalDiario.txt | 41 ++ fev_direcaoDoDia.txt | 102 +++ fev_mediasTrend9_20_50_200.txt | 178 ++++++ fev_panorama920.txt | 107 ++++ fev_panoramaMedias9_20_50_200.txt | 342 ++++++++++ fev_priceActionPrimeiroCandle.txt | 136 ++++ gerenciamento_risco.md | 58 ++ organizacao_B3_Internacional.md | 115 ++++ organizacao_B3_Internacional_horarios.md | 44 ++ tabela_confluencias.md | 74 +++ teoria_ATR.txt | 108 ++++ teoria_IFR.md | 63 ++ teoria_OCO.md | 190 ++++++ teoria_VSA.md | 92 +++ teoria_candlestick.md | 132 ++++ teoria_medias.md | 754 +++++++++++++++++++++++ teoria_panorama_contexto.md | 58 ++ teoria_priceAction_primeirocandle.md | 199 ++++++ teoria_priceaction.md | 222 +++++++ teoria_renko.md | 71 +++ teoria_sentimentosTrade.rb | 65 ++ teoria_tendencia.md | 151 +++++ teoria_tendencia_institucional.md | 58 ++ teoria_tendencia_pivots.md | 81 +++ teoria_volume.md | 172 ++++++ teoria_vwap.md | 93 +++ teoria_wyckoff.md | 94 +++ 53 files changed, 6198 insertions(+) create mode 100644 caracteristicas_WIN_mini_indice.md create mode 100644 caracteristicas_ativos_tecnicos.md create mode 100644 correlacao_ativos.md create mode 100644 eficiencia_tributaria.md create mode 100644 fev_2minReversaoComVolumeWIN.txt create mode 100644 fev_ATRmovimentoDoPrecoComVontade.txt create mode 100644 fev_ContadorCruzamentosMedias.txt create mode 100644 fev_DetectorFasesMercado.txt create mode 100644 fev_DivergenciaIFR.txt create mode 100644 fev_HorarioTurbulencia.txt create mode 100644 fev_MediasSetupDiario.txt create mode 100644 fev_MediasSetupSemana.txt create mode 100644 fev_OBVvolumeVerdadeiro.txt create mode 100644 fev_PainelDecisao.txt create mode 100644 fev_PainelDecisaoAlarme.ntsl.txt create mode 100644 fev_PriceActionAnaliseCorpo.txt create mode 100644 fev_PriceActionAnaliseSombra.txt create mode 100644 fev_PriceActionCorpoSombraExecucao.txt create mode 100644 fev_PriceActionNewton.txt create mode 100644 fev_PriceActionTiposCandlesLeitura.txt create mode 100644 fev_PriceActionVSA_OBV.txt create mode 100644 fev_RegraDeDow_Rompimento.txt create mode 100644 fev_TendenciaLongoPrazo.txt create mode 100644 fev_TendenciaPivoTesteDeOuro.txt create mode 100644 fev_VSAassinaturaInstitucional.txt create mode 100644 fev_VWAPreferenciaPreco.txt create mode 100644 fev_VWAPsemanalDiario.txt create mode 100644 fev_direcaoDoDia.txt create mode 100644 fev_mediasTrend9_20_50_200.txt create mode 100644 fev_panorama920.txt create mode 100644 fev_panoramaMedias9_20_50_200.txt create mode 100644 fev_priceActionPrimeiroCandle.txt create mode 100644 gerenciamento_risco.md create mode 100644 organizacao_B3_Internacional.md create mode 100644 organizacao_B3_Internacional_horarios.md create mode 100644 tabela_confluencias.md create mode 100644 teoria_ATR.txt create mode 100644 teoria_IFR.md create mode 100644 teoria_OCO.md create mode 100644 teoria_VSA.md create mode 100644 teoria_candlestick.md create mode 100644 teoria_medias.md create mode 100644 teoria_panorama_contexto.md create mode 100644 teoria_priceAction_primeirocandle.md create mode 100644 teoria_priceaction.md create mode 100644 teoria_renko.md create mode 100644 teoria_sentimentosTrade.rb create mode 100644 teoria_tendencia.md create mode 100644 teoria_tendencia_institucional.md create mode 100644 teoria_tendencia_pivots.md create mode 100644 teoria_volume.md create mode 100644 teoria_vwap.md create mode 100644 teoria_wyckoff.md diff --git a/caracteristicas_WIN_mini_indice.md b/caracteristicas_WIN_mini_indice.md new file mode 100644 index 0000000..6bdd8d8 --- /dev/null +++ b/caracteristicas_WIN_mini_indice.md @@ -0,0 +1,50 @@ +# WIN Índice: Verdades Operacionais (Alta Aderência) + +## 1) Referências que o WIN mais respeita + +1. **VWAP diária** como eixo institucional intraday. +2. **Máxima e mínima do dia anterior** como zonas objetivas de decisão. +3. **Ajuste e abertura** como níveis de reação e disputa. +4. **Estrutura de preço** (topos/fundos, pivôs, rompimento + reteste). +5. **Região de médias 20/50** como continuidade de tendência. + + +--- + +## 2) Verdades sobre contexto + +- **Sem contexto, sinal perde qualidade.** Candle isolado não é vantagem estatística. +- **Lateralidade destrói setup de tendência.** Em compressão de médias, aumenta falso rompimento. +- **Notícia forte muda regime de risco.** Spread e volatilidade aumentam abruptamente. +- **Liquidez define qualidade técnica.** Horário ruim aumenta ruído e piora execução. + +--- + +## 3) Horários de maior cautela + +- **Abertura/turbulência da manhã:** risco de violino e inversões rápidas. +- **Almoço:** menor liquidez, pior relação risco/retorno. +- **Janelas de indicadores Brasil/EUA:** evitar ficar posicionado na divulgação. + +--- + +## 4) Uso correto da MME9 inicial + +- A **MME9 do início do dia** é referência de contexto de curto prazo. +- Ela **não é alvo obrigatório de preço**. +- Decisão operacional deve priorizar confluência com VWAP, estrutura e direção (20/50). + +--- + +## 5) Regra prática de decisão + +Operar apenas com confluência de: + +1. **Nível** (VWAP/ajuste/máx-mín anterior), +2. **Estrutura** (pivô/rompimento válido), +3. **Direção** (20/50 alinhadas), +4. **Horário limpo** (fora de janela crítica). + +Sem confluência, a melhor decisão é **não operar**. + +Invalidação de segunda falha em 2min. diff --git a/caracteristicas_ativos_tecnicos.md b/caracteristicas_ativos_tecnicos.md new file mode 100644 index 0000000..b40fee2 --- /dev/null +++ b/caracteristicas_ativos_tecnicos.md @@ -0,0 +1,95 @@ +# Ativos com Melhor Resposta à Análise Técnica + +Para que a Análise Técnica (Price Action, Chartismo, Elliott) funcione bem, o ativo precisa de **Liquidez** (para evitar manipulação) e **Volatilidade** (para gerar movimento). + +## 1. Mercado Internacional (Os "Reis" da Técnica) + +Estes são os ativos mais técnicos do mundo. Se você traçar um Fibonacci ou um Suporte neles, o mundo inteiro está vendo a mesma linha. + +| Ativo | Código Futuro | Por que é técnico? | +| :--- | :--- | :--- | +| **S&P 500** | `ES` | **O Padrão Ouro.** É o ativo mais líquido do mundo. Respeita milimetricamente suportes, resistências e médias móveis. Menos "ruído" que o Nasdaq. | +| **Euro vs Dólar** | `6E` (Futuro) / `EURUSD` | O par de moedas mais negociado. Movimentos lentos, cadenciados e extremamente técnicos. Ótimo para iniciantes em mercado global. | +| **Petróleo WTI** | `CL` | Segue tendências longas e duradouras. Quando engata uma direção, dificilmente volta sem um padrão de reversão claro. | +| **Ouro** | `GC` | Respeita muito zonas de oferta e demanda antigas (suportes/resistências de anos atrás). | +| **Bitcoin** | `BTC` | Por ter muita participação de varejo e algoritmos (e nenhum Banco Central controlando), é um dos ativos que mais respeita padrões gráficos puros (Bandeiras, Triângulos). | + +## 2. Mercado Brasileiro (B3) + +No Brasil, a liquidez é concentrada. Fora destes ativos, a análise técnica perde eficiência e o gráfico fica "sujo". + +| Ativo | Código | Características Técnicas | +| :--- | :--- | :--- | +| **Mini Índice** | `WIN` | Respeita bem Price Action intraday (pivôs, pullbacks), mas tem muito "ruído" (violinos) nos 5 minutos. Requer filtros de horário (09:00 - 17:00). | +| **Mini Dólar** | `WDO` | Extremamente técnico, mas muito agressivo. Respeita muito "Pontos de Ajuste", Vwap e máximas/mínimas do dia anterior. | +| **Petrobras** | `PETR4` | A ação mais técnica do Brasil. Alta liquidez permite day trade confiável. Segue muito o petróleo lá fora. | +| **Vale** | `VALE3` | Respeita suportes e resistências, mas costuma abrir com Gaps enormes devido ao minério na China. | +| **Itaú** | `ITUB4` | Movimentos mais "quadrados" e lentos. Bom para Swing Trade, difícil para Day Trade curto. | + +## 3. O que EVITAR (Onde a Análise Técnica falha) + +* **Small Caps sem volume:** Ações que negociam pouco (ex: algumas construtoras menores ou empresas em recuperação judicial). Um único player move o preço, invalidando o gráfico. +* **Horários de baixa liquidez:** Operar o WIN na hora do almoço (12:00 - 13:00) ou depois das 17:30 costuma gerar muitos sinais falsos. +* **Moedas Exóticas:** Pares como USD/TRY (Lira Turca) ou USD/ZAR (Rand) são erráticos e movidos a política, ignorando gráficos. + +### Dica de Ouro +Se você está começando a estudar padrões gráficos clássicos (Oco, Bandeira, Topo Duplo), treine no **S&P 500 (ES)** ou **EUR/USD**. Eles são os "livros didáticos" do mercado. O **WIN** é mais "sujo" e exige mais malícia. + +## 4. Técnicas Operacionais por Ativo (Resumo Prático) + +| Ativo | Técnica que tende a funcionar melhor | O que evitar | +| :--- | :--- | :--- | +| **WINFUT** | **Estrutura de preço** (pivô, rompimento com reteste, pullback em tendência). | Operar rompimento seco sem confirmação de fechamento e sem filtro de horário. | +| **WDOFUT** | **Níveis institucionais** (VWAP, ajuste, máxima/mínima anterior, janelas PTAX). | Operar contra VWAP dominante e ignorar horário de fluxo forte. | +| **WSPFUT/WSFUT** | **Correlação e direção macro** (ES/US500 + abertura americana). | Operar sem checar contexto dos futuros americanos. | +| **BITFUT** | **Momentum/tendência com volume** (continuação após compressão/rompimento). | Forçar operação em lateral curta com volatilidade errática. | +| **PETR4/VALE3/ITUB4** | **Suporte/Resistência + Pullback** em zonas claras, com leitura do contexto setorial. | Ignorar gap de abertura e notícia setorial/global correlata. | + +--- + +## 5. Setups-Chave e Quando Usar + +### 5.1 Rompimento de 2 Falhas (Reversão) +**Ideia:** o preço tenta romper um nível 2 vezes, falha nas duas e depois perde o fundo (ou rompe topo) de defesa. + +**Melhor uso:** +- Em região de resistência/suporte importante. +- Quando aparece exaustão (pavio, perda de força, volume de absorção). + +**Confirmação mínima:** +- Quebra da estrutura de defesa após a segunda falha. +- Fechamento do candle de confirmação fora da micro-estrutura. + +### 5.2 Retração de 50% (Zona de Valor) +**Ideia:** após impulso forte, o preço corrige até metade do movimento para buscar continuidade. + +**Melhor uso:** +- Em tendência já definida (não em lateral). +- Com confluência de média (20/50), VWAP ou suporte/resistência. + +**Confirmação mínima:** +- Candle de reação no 50% (martelo, engolfo, rejeição). +- Entrada na superação/perda do candle gatilho. + +### 5.3 Outros Setups de Alta Probabilidade +- **Rompimento + Reteste:** rompe nível, volta para testar e continua. +- **Pullback na MME 20:** tendência clara com retorno controlado à média. +- **Pivô 1-2-3:** mudança de estrutura com confirmação de continuidade. +- **VWAP Reclaim/Reject:** recuperação ou rejeição da VWAP em contexto direcional. + +--- + +## 6. Características que Você Precisa Observar Antes de Operar + +1. **Regime do mercado:** tendência ou lateralização? +2. **Liquidez do horário:** está em janela boa ou em horário "morto"? +3. **Distância do preço para média/VWAP:** está esticado ou em zona de valor? +4. **Inclinação das médias:** 20 e 50 confirmam direção? +5. **Estrutura válida:** houve rompimento real ou só violino? +6. **Volume:** confirma movimento ou mostra absorção? +7. **Contexto externo:** notícia, abertura EUA, correlação com ativo líder. + +### Regra de decisão rápida +- **Confluência completa:** operar. +- **Confluência parcial:** reduzir mão. +- **Sem confluência:** não operar. \ No newline at end of file diff --git a/correlacao_ativos.md b/correlacao_ativos.md new file mode 100644 index 0000000..285d39e --- /dev/null +++ b/correlacao_ativos.md @@ -0,0 +1,23 @@ +# Tabela de Correlações e Confirmações (Teoria de Dow) + +Esta tabela serve como guia rápido para validar tendências e entradas baseadas no princípio de confirmação entre índices. + +## B3 (Brasil) + +| Ativo Principal | Ativo de Confirmação | Tipo de Correlação | Interpretação para Alta (Compra) | Interpretação para Baixa (Venda) | +| :--- | :--- | :--- | :--- | :--- | +| **WIN (Índice Futuro)** | **DOL/WDO (Dólar Futuro)** | **Inversa** | WIN sobe / WDO cai | WIN cai / WDO sobe | +| **IBOV (Ibovespa)** | **Blue Chips (VALE3, PETR4)** | **Positiva** | IBOV sobe / VALE3 e PETR4 sobem | IBOV cai / VALE3 e PETR4 caem | +| **IBOV / WIN** | **DI (Juros Futuros)** | **Inversa** | Bolsa sobe / Juros (DI) caem | Bolsa cai / Juros (DI) sobem | + +## Internacional (EUA) e Global + +| Ativo Principal | Ativo de Confirmação | Tipo de Correlação | Interpretação para Alta (Compra) | Interpretação para Baixa (Venda) | +| :--- | :--- | :--- | :--- | :--- | +| **ES (S&P 500)** | **NQ (Nasdaq 100)** | **Positiva** | Ambos renovam máximas ou sobem juntos | Ambos renovam mínimas ou caem juntos | +| **ES (S&P 500)** | **RTY (Russell 2000)** | **Positiva** | Small caps acompanham a alta das Large caps | Aversão a risco generalizada (ambos caem) | +| **WIN (Brasil)** | **ES (S&P 500)** | **Positiva** | S&P 500 subindo ajuda a puxar o WIN | S&P 500 caindo pressiona o WIN para baixo | + +## Notas de Uso +1. **Divergências:** Se o Ativo Principal faz um novo topo e o Ativo de Confirmação falha em fazer um novo topo, há uma **Divergência de Baixa** (fraqueza). +2. **Timing:** Utilize essas correlações para filtrar entradas. Evite comprar WIN se o WDO/DOL estiver explodindo para cima ou se o S&P 500 estiver derretendo. \ No newline at end of file diff --git a/eficiencia_tributaria.md b/eficiencia_tributaria.md new file mode 100644 index 0000000..1868299 --- /dev/null +++ b/eficiencia_tributaria.md @@ -0,0 +1,101 @@ +# Planejamento de Rentabilidade e Eficiência Tributária + +## 1. Estrutura de Custos (B3 + Corretora) +Para "pagar a operação", você precisa cobrir os custos antes de pensar no lucro. + +### Custos Diretos (Estimativa) +* **Corretagem (Toro):** Geralmente Zero (com RLP ativo). *Verificar seu plano.* +* **Emolumentos B3 (Taxas de Bolsa):** + * **Mini Índice (WIN):** Aprox. R$ 0,25 por contrato (Compra + Venda). + * **Mini Dólar (WDO):** Aprox. R$ 2,40 por contrato (Compra + Venda). +* **ISS:** Incide sobre a corretagem (se houver). + +### O "Ponto de Empate" (Breakeven) +Quanto você precisa andar para não perder dinheiro? + +* **Mini Índice (WIN):** + * Valor por Tick (5 pts): R$ 1,00. + * Custo: ~R$ 0,25. + * **Conclusão:** 1 Tick (5 pts) já paga os custos e sobra R$ 0,75. +* **Mini Dólar (WDO):** + * Valor por Tick (0,5 pts): R$ 5,00. + * Custo: ~R$ 2,40. + * **Conclusão:** 1 Tick (0,5 pts) paga os custos e sobra R$ 2,60. + +## 2. Tributação no Brasil (Regras Oficiais) +Não há como "fugir" legalmente se você opera na B3 via CPF residente no Brasil. A corretora retém o "Dedo-duro" (IRRF). + +* **Day Trade:** 20% sobre o lucro líquido mensal. + * *Dedo-duro:* 1% retido na fonte. +* **Swing Trade:** 15% sobre o lucro líquido mensal. + * *Isenção:* Apenas para vendas de AÇÕES até R$ 20k/mês. **Não existe isenção para Futuros (Índice/Dólar).** +* **Compensação de Prejuízos:** Prejuízos anteriores podem ser abatidos do lucro atual (dentro da mesma modalidade: DT com DT, ST com ST). + +## 3. Estratégia OCO para Rentabilidade Mínima +Para garantir que a operação valha a pena após taxas e IR (20%), seu Payoff deve ser positivo. + +**Fórmula do Lucro Real:** +`Lucro Líquido = (Ganho Bruto - Custos B3) * 0.80 (IR)` + +**Sugestão de Risco/Retorno (R:R):** +Nunca opere para ganhar menos que o risco, pois os custos comem a margem. +* **Mínimo Aceitável:** 1.5 : 1 (Ganhar 1.5x o Risco). +* **Ideal:** 2 : 1 ou superior. + +**Exemplo Prático (WIN):** +* **Stop Loss:** 100 pontos (R$ 20,00). +* **Alvo Mínimo (1.5x):** 150 pontos (R$ 30,00). +* **Custo:** R$ 0,25. +* **Resultado:** (30 - 20 - 0,25) = R$ 9,75 (se acertar 50% das vezes, a conta fecha). + +## 4. Planejamento Internacional (Offshore e Cripto) +*Atenção: A elisão fiscal (planejamento) é legal; a evasão fiscal (sonegação) é crime.* + +### O Conceito de "Paraíso Fiscal" e Bitcoin +A ideia de usar um cartão pré-pago em Bitcoin emitido no exterior para gastar lucros sem tributação no Brasil envolve riscos legais significativos. +### Níveis de Uso de Paraísos Fiscais + +1. **Residência Fiscal:** Se você mora no Brasil, é tributado sobre sua renda **global**. +2. **Lei das Offshores (Lei 14.754/2023):** Mudou a regra. Agora, rendimentos no exterior (aplicações financeiras e entidades controladas) são tributados em 15% anualmente, independente de repatriação. +3. **Criptoativos:** + * Venda de cripto (mesmo via cartão) é fato gerador de imposto (Ganho de Capital) se houver lucro na variação cambial/valorização. + * Isenção antiga de R$ 35k para cripto no exterior é discutível com a nova lei (muitos juristas entendem que cripto em exchange gringa entra na regra dos 15% sem isenção). +**Nível 1: "Offshore Light" (Pessoa Física em Corretora de Paraíso Fiscal)** +* **Como funciona:** Você abre conta na Tickmill (Seychelles) ou similar com seu CPF. +* **Vantagem:** Acesso a mercados globais, alavancagem alta, sem retenção de imposto na fonte pelo país de origem. +* **Tributação:** Segue a regra geral de 15% sobre o lucro anual (Lei 14.754). +* **Custo:** Zero (apenas taxas de trade). + +### Tickmill e Corretoras de CFD (Regra 2024) +* **Natureza:** Tickmill é uma corretora internacional (CFDs). +* **Imposto:** Segue a Lei 14.754 (Investimentos Financeiros no Exterior). +* **Alíquota:** 15% sobre o lucro anual (incluindo ganho de capital e variação cambial). Não há isenção de pequeno valor. +**Nível 2: "Offshore Pro" (PIC - Private Investment Company)** +* **Como funciona:** Você abre uma empresa (PJ) em um paraíso fiscal (ex: BVI, Cayman) e a empresa abre a conta na corretora. +* **Vantagem:** Diferimento fiscal (em alguns casos específicos de balanço) e sucessão patrimonial (não entra em inventário no Brasil). +* **Custo:** Alto (~US$ 2.000 para abrir + ~US$ 1.500 anuais de manutenção). +* **Indicação:** Apenas para patrimônio acima de US$ 300.000. Abaixo disso, o custo de manutenção come a economia tributária. + +### Alternativa Legal (Eficiência Tributária) +* **Prejuízos:** A melhor forma de pagar menos imposto legalmente é gerir seus prejuízos. Anote cada centavo perdido para abater dos lucros futuros. +* **Custos:** Lance todas as taxas de corretagem e emolumentos como despesa para reduzir a base de cálculo do IR. +### Fluxo Operacional (Looping Cripto) +Muitos traders utilizam criptoativos para movimentar recursos entre o Paraíso Fiscal e o consumo, visando agilidade e privacidade. + +1. **Envio:** BRL (Brasil) -> USDT (Exchange BR) -> Carteira Tickmill (Depósito via Cripto). +2. **Operação:** Lucro em Dólar na Tickmill (Seychelles). +3. **Saque:** Tickmill -> USDT (Wallet Privada/Ledger). +4. **Uso:** USDT -> Cartão de Débito Cripto Internacional (emitido em jurisdição offshore). + * *Nota:* O uso do cartão caracteriza "disponibilidade da renda" e é fato gerador de imposto, mas ocorre fora do sistema bancário tradicional brasileiro (Bacen). + +### Resumo da Estratégia "Offshore" (Cenário Hipotético) +Se o objetivo é operar mercados internacionais (Forex/S&P500 lá fora) e manter em cripto: +1. Abrir conta em corretora internacional que aceite depósito em Cripto. +2. Lucros mantidos em USDT/BTC. +3. Uso de cartões de débito cripto (ex: baseados em paraísos fiscais). + * *Risco:* A Receita Federal cruza dados de intercâmbio de informações financeiras (CRS). Se a exchange reportar, você cai na malha fina. + * *Custo:* Spreads de conversão cripto/fiat nesses cartões costumam ser altos (2% a 5%), o que pode ser mais caro que o imposto legal de 15% sobre ganho de capital (até 5 milhões). + +**Conclusão:** Para operações na B3 (Brasil), não há como usar estrutura offshore para fugir do IR de 20%, pois a fonte (B3) é local. Essa estratégia só se aplica a operações feitas em corretoras do exterior. + +Até que valor posso ganhar sem pagar imposto mensal? \ No newline at end of file diff --git a/fev_2minReversaoComVolumeWIN.txt b/fev_2minReversaoComVolumeWIN.txt new file mode 100644 index 0000000..2e98ae9 --- /dev/null +++ b/fev_2minReversaoComVolumeWIN.txt @@ -0,0 +1,220 @@ +{ + Indicador: fev_2minReversaoComVolumeWIN + Autor: Wesley (Gemini Code Assist) + Descrição: Identifica velas de reversão (Martelo/Estrela) validadas por + Volume acima da média (Lei de Esforço vs Resultado). +} + +input + UsarPresetRegime(true); + RegimePreset(1); // 1=Manhã Forte, 2=Almoço, 3=Pós-14h, 0=Manual + AtivarAnalisePrimeiroCandle(true); + FatorVolume(1.5); // No WIN 2min, 1.5x tende a capturar melhor absorção relevante + PeriodoMedia(20); + MultiplicadorPavio(1.5); // Pavio principal em relação ao corpo + MaxPavioOpostoCorpo(1.2); // Limite do pavio oposto em relação ao corpo + UsarFiltroProximidadeMME20(false); + DistanciaMaxMME20Perc(0.35); // Distância máxima (%) do fechamento para a MME20 + +var + vMediaVol, fMME20, fDistanciaMME20Perc : float; + fFatorVolumeEfetivo, fMultiplicadorPavioEfetivo, fMaxPavioOpostoEfetivo, fDistMaxMME20Efetiva : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bRejeicaoForteAlta, bRejeicaoForteBaixa : boolean; + bDojiPrimeiro, bAbsorcaoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + fMaxAnterior, fMinAnterior : float; + TamCorpo, TamPavioSup, TamPavioInf, Range, fFechamentoPosicao : float; + CorAbsorcaoFundo, CorAbsorcaoTopo, CorNeutra, CorRejeicaoContexto, CorIndefinicao : integer; + bMesmoDia, bProximoMME20, bUsarFiltroProxEfetivo : boolean; + iRegimeEfetivo : integer; + +begin + // --- 1. CONFIGURAÇÃO --- + CorAbsorcaoFundo := RGB(0, 255, 0); // Verde (Sentido de Alta) + CorAbsorcaoTopo := RGB(255, 0, 0); // Vermelho (Sentido de Baixa) + CorNeutra := RGB(105, 105, 105); // Cinza Escuro + CorRejeicaoContexto := RGB(255, 140, 0); // Laranja (Rejeição forte por contexto) + CorIndefinicao := RGB(255, 255, 255); // Branco + + // --- 1.1 PRESET DE REGIME (PARTE PRINCIPAL) --- + iRegimeEfetivo := RegimePreset; + if (iRegimeEfetivo < 0) then + iRegimeEfetivo := 0; + if (iRegimeEfetivo > 3) then + iRegimeEfetivo := 3; + + // Fallback manual + fFatorVolumeEfetivo := FatorVolume; + fMultiplicadorPavioEfetivo := MultiplicadorPavio; + fMaxPavioOpostoEfetivo := MaxPavioOpostoCorpo; + bUsarFiltroProxEfetivo := UsarFiltroProximidadeMME20; + fDistMaxMME20Efetiva := DistanciaMaxMME20Perc; + + if UsarPresetRegime then + begin + // 1 = Manhã forte (09:00-11:00) + if (iRegimeEfetivo = 1) then + begin + fFatorVolumeEfetivo := 1.7; + fMultiplicadorPavioEfetivo := 1.6; + fMaxPavioOpostoEfetivo := 1.0; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.30; + end + // 2 = Almoço (12:00-13:00) + else if (iRegimeEfetivo = 2) then + begin + fFatorVolumeEfetivo := 1.9; + fMultiplicadorPavioEfetivo := 1.8; + fMaxPavioOpostoEfetivo := 0.9; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.25; + end + // 3 = Pós-14h (14:00-17:00) + else if (iRegimeEfetivo = 3) then + begin + fFatorVolumeEfetivo := 1.5; + fMultiplicadorPavioEfetivo := 1.5; + fMaxPavioOpostoEfetivo := 1.2; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.35; + end; + end; + + // --- PINTURA PADRÃO --- + PaintBar(CorNeutra); // Pinta tudo de cinza antes de verificar os sinais + + // --- 2. ANÁLISE DE VOLUME (O ESFORÇO) --- + vMediaVol := Media(PeriodoMedia, Volume); + fMME20 := MediaExp(20, Close); + // Verifica se o volume atual é relevante (ex: > 1.5x a média) + bVolumeAlto := Volume >= (vMediaVol * fFatorVolumeEfetivo); + + // --- 2.1 FILTRO OPCIONAL: PROXIMIDADE DA MME20 --- + if (fMME20 > 0) then + fDistanciaMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 + else + fDistanciaMME20Perc := 999; + + bProximoMME20 := (fDistanciaMME20Perc <= fDistMaxMME20Efetiva); + + // --- 3. ANATOMIA DO CANDLE (O RESULTADO) --- + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + if (Range > 0) then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + fMaxAnterior := High[1]; + fMinAnterior := Low[1]; + bMesmoDia := (Date = Date[1]); + + // Análise dedicada do primeiro candle do dia + if (Range > 0) and (not bMesmoDia) and AtivarAnalisePrimeiroCandle then + begin + bDojiPrimeiro := (TamCorpo <= (Range * 0.10)); + bAbsorcaoPrimeiro := bVolumeAlto and (TamCorpo <= (Range * 0.35)); + + bIniciativaAltaPrimeiro := (Close > Open) + and bVolumeAlto + and (TamCorpo >= (Range * 0.60)) + and (fFechamentoPosicao >= 0.75); + + bIniciativaBaixaPrimeiro := (Close < Open) + and bVolumeAlto + and (TamCorpo >= (Range * 0.60)) + and (fFechamentoPosicao <= 0.25); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + + bArmadilhaPrimeiro := (bGapAltaPrimeiro and (Close < Open) and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))) + or (bGapBaixaPrimeiro and (Close > Open) and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))); + + if bArmadilhaPrimeiro then + begin + PaintBar(CorRejeicaoContexto); + PlotText("1C_TRAP", CorRejeicaoContexto, 8, 0, Close); + end + else if bIniciativaAltaPrimeiro then + begin + PaintBar(CorAbsorcaoFundo); + PlotText("1C_UP", CorAbsorcaoFundo, 8, 0, Low * 0.999); + end + else if bIniciativaBaixaPrimeiro then + begin + PaintBar(CorAbsorcaoTopo); + PlotText("1C_DN", CorAbsorcaoTopo, 8, 0, High * 1.001); + end + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(CorIndefinicao) + else if (Close > Open) then + PaintBar(CorAbsorcaoFundo) + else if (Close < Open) then + PaintBar(CorAbsorcaoTopo) + else + PaintBar(CorIndefinicao); + end; + + // Proteção contra divisão por zero + // Ignora o primeiro candle do dia para evitar sinal falso na abertura + if (Range > 0) and bMesmoDia then + begin + // Definição de Martelo (Força Compradora) + // Pavio inferior dominante e pavio superior controlado + bMartelo := (TamPavioInf >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioSup <= (TamCorpo * fMaxPavioOpostoEfetivo)); + + // Definição de Estrela (Força Vendedora) + // Pavio superior dominante e pavio inferior controlado + bEstrela := (TamPavioSup >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioInf <= (TamCorpo * fMaxPavioOpostoEfetivo)); + + // Rejeição forte por contexto (pinta laranja mesmo sem volume) + // Alta: varre mínima anterior e fecha recuperando com pavio inferior dominante + bRejeicaoForteAlta := (Low < fMinAnterior) + and (Close > Open) + and (Close >= (Low + (Range * 0.55))) + and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); + + // Baixa: varre máxima anterior e fecha rejeitando com pavio superior dominante + bRejeicaoForteBaixa := (High > fMaxAnterior) + and (Close < Open) + and (Close <= (High - (Range * 0.55))) + and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); + + // --- 4. SINALIZAÇÃO --- + + // 4.1 Contexto de rejeição forte (prioridade, independente de volume) + if (bRejeicaoForteAlta or bRejeicaoForteBaixa) then + begin + PaintBar(CorRejeicaoContexto); + PlotText("RJ", CorRejeicaoContexto, 8, 0, Close); + end + else + begin + + // Só sinaliza se tiver Volume Alto + Padrão de Reversão + // e, opcionalmente, preço perto da MME20 para reduzir ruído de lateral + if bVolumeAlto and ((not bUsarFiltroProxEfetivo) or bProximoMME20) then + begin + if bMartelo then + begin + PaintBar(CorAbsorcaoFundo); // Pinta o candle atual + PaintBar(CorAbsorcaoFundo); // Reforça coloração no candle de sinal + PlotText("ABS", CorAbsorcaoFundo, 8, 0, Low * 0.999); + Alert(CorAbsorcaoFundo); + end; + + if bEstrela then + begin + PaintBar(CorAbsorcaoTopo); // Pinta o candle atual + PaintBar(CorAbsorcaoTopo); // Reforça coloração no candle de sinal + PlotText("ABS", CorAbsorcaoTopo, 8, 0, High * 1.001); + Alert(CorAbsorcaoTopo); + end; + end; + end; + end; +end; \ No newline at end of file diff --git a/fev_ATRmovimentoDoPrecoComVontade.txt b/fev_ATRmovimentoDoPrecoComVontade.txt new file mode 100644 index 0000000..e32fee2 --- /dev/null +++ b/fev_ATRmovimentoDoPrecoComVontade.txt @@ -0,0 +1,52 @@ +{ + Estratégia: Keltner ATR Breakout + Descrição: Colore candles que fecham fora do Canal de Keltner (Média +/- ATR). + Plataforma: ProfitChart (NTSL) +} + +Input + PeriodoMedia(20); // Média de tendência + PeriodoATR(14); // Período clássico do ATR + FatorVolatilidade(1.3); // Recalibrado para 1.3 para capturar movimentos mais curtos + +Var + vMedia : Real; + vATR : Real; + BandaSup : Real; + BandaInf : Real; + CorAlta : Integer; + CorBaixa : Integer; + CorNeutra : Integer; + +Begin + // Definição de Cores RGB Vivas + CorAlta := RGB(0, 255, 0); + CorBaixa := RGB(255, 0, 0); + CorNeutra := RGB(128, 128, 128); + + // Cálculo da Média Central (Exponencial) + // Usando sintaxe em Ingles para compatibilidade (XAverage = Media Exponencial) + vMedia := XAverage(Close, PeriodoMedia); + + // Cálculo da Volatilidade (Usando Summation/Soma para contornar erro de nome da funcao Average) + vATR := Summation(High - Low, PeriodoATR) / PeriodoATR; + + // Definição das Bandas do Canal + BandaSup := vMedia + (vATR * FatorVolatilidade); + BandaInf := vMedia - (vATR * FatorVolatilidade); + + // 1. Pinta tudo de cinza (Neutro/Dentro do Canal - AGUARDAR) + PaintBar(CorNeutra); + + // 2. Verifica Rompimento de Alta (COMPRA - Força) + If (Close > BandaSup) and (Close > Open) then + PaintBar(CorAlta); + + // 3. Verifica Rompimento de Baixa (VENDA - Força) + If (Close < BandaInf) and (Close < Open) then + PaintBar(CorBaixa); + + // Plotagem das linhas para conferência visual + Plot(BandaSup); + Plot2(BandaInf); +End; \ No newline at end of file diff --git a/fev_ContadorCruzamentosMedias.txt b/fev_ContadorCruzamentosMedias.txt new file mode 100644 index 0000000..40723e3 --- /dev/null +++ b/fev_ContadorCruzamentosMedias.txt @@ -0,0 +1,93 @@ +{ + Indicador: fev_ContadorCruzamentosMedias + Objetivo: Contar no intraday quantos cruzamentos ocorrem por dia entre: + 1) MME20 x MMA50 + 2) MMA50 x MMA200 + Observação: Não depende de exportação de dados. +} + +input + PeriodoMME20(20); + PeriodoMMA50(50); + PeriodoMMA200(200); + ContarApenasHorarioRegular(true); + HoraInicio(900); + HoraFim(1755); + MarcarCruzamentosNoPreco(true); + +var + fMME20, fMMA50, fMMA200 : float; + iHoraAtual, iHoraHHMM : integer; + iCruz2050Dia, iCruz50200Dia : integer; + bNovoDia, bMesmoDia, bDentroHorario : boolean; + bCruz2050Alta, bCruz2050Baixa : boolean; + bCruz50200Alta, bCruz50200Baixa : boolean; + c2050, c50200, cMarca2050, cMarca50200 : integer; + +begin + // Cores + c2050 := RGB(255, 0, 255); // Fúcsia (contador 20x50) + c50200 := RGB(0, 255, 255); // Ciano (contador 50x200) + cMarca2050 := RGB(255, 215, 0); // Dourado (marca cruzamento 20x50 no preço) + cMarca50200 := RGB(255, 255, 255); // Branco (marca cruzamento 50x200 no preço) + + // Horário em HHMM + iHoraAtual := Time; + if (iHoraAtual > 2359) then + iHoraHHMM := iHoraAtual / 100 + else + iHoraHHMM := iHoraAtual; + + bNovoDia := (Date <> Date[1]); + bMesmoDia := (Date = Date[1]); + + // Reset diário + if bNovoDia then + begin + iCruz2050Dia := 0; + iCruz50200Dia := 0; + end; + + // Faixa horária de contagem + if ContarApenasHorarioRegular then + bDentroHorario := (iHoraHHMM >= HoraInicio) and (iHoraHHMM <= HoraFim) + else + bDentroHorario := True; + + // Médias + fMME20 := MediaExp(PeriodoMME20, Close); + fMMA50 := Media(PeriodoMMA50, Close); + fMMA200 := Media(PeriodoMMA200, Close); + + // Cruzamentos apenas dentro do mesmo dia (evita contar transição de pregão) + bCruz2050Alta := bMesmoDia and bDentroHorario and (fMME20 > fMMA50) and (fMME20[1] <= fMMA50[1]); + bCruz2050Baixa := bMesmoDia and bDentroHorario and (fMME20 < fMMA50) and (fMME20[1] >= fMMA50[1]); + + bCruz50200Alta := bMesmoDia and bDentroHorario and (fMMA50 > fMMA200) and (fMMA50[1] <= fMMA200[1]); + bCruz50200Baixa := bMesmoDia and bDentroHorario and (fMMA50 < fMMA200) and (fMMA50[1] >= fMMA200[1]); + + if (bCruz2050Alta or bCruz2050Baixa) then + iCruz2050Dia := iCruz2050Dia + 1; + + if (bCruz50200Alta or bCruz50200Baixa) then + iCruz50200Dia := iCruz50200Dia + 1; + + // Exibe os contadores em painel de indicador + Plot(iCruz2050Dia); + SetPlotColor(1, c2050); + SetPlotWidth(1, 2); + + Plot2(iCruz50200Dia); + SetPlotColor(2, c50200); + SetPlotWidth(2, 2); + + // Marca no preço cada evento de cruzamento + if MarcarCruzamentosNoPreco then + begin + if (bCruz2050Alta or bCruz2050Baixa) then + PlotText("X2050", cMarca2050, 8, 0, Close); + + if (bCruz50200Alta or bCruz50200Baixa) then + PlotText("X50200", cMarca50200, 8, 0, Close); + end; +end; \ No newline at end of file diff --git a/fev_DetectorFasesMercado.txt b/fev_DetectorFasesMercado.txt new file mode 100644 index 0000000..95e658d --- /dev/null +++ b/fev_DetectorFasesMercado.txt @@ -0,0 +1,85 @@ +{ + Indicador: fev_DetectorFasesMercado + Autor: Wesley (Gemini Code Assist) + Descrição: Identifica as 4 Fases do Mercado (Wyckoff/Dow) baseando-se na + inclinação da Média de 20 e posição relativa à Média de 200. +} + +var + mme20, mma200 : float; + inclinacao20 : float; + faseMercado : string; + corFundo : integer; + limiarFlat : float; + +begin + // --- 1. CÁLCULOS --- + mme20 := MediaExp(20, Close); + mma200 := Media(200, Close); + + // Calcula a inclinação da média (Diferença entre a média atual e a anterior) + inclinacao20 := mme20 - mme20[1]; + + // Define o que é "Flat" (Lateral). Ajuste conforme o ativo. + // Para Índice (WIN), 5 a 10 pontos. Para Dólar (WDO), 0.5 a 1 ponto. + // Aqui usamos um valor genérico proporcional ao preço para funcionar em BITFUT/WSPFUT + limiarFlat := Close * 0.0002; // 0.02% do preço + + // --- 2. LÓGICA DE DECISÃO --- + + // Cenário A: Tendência Definida (Alta ou Baixa) + if (Abs(inclinacao20) > limiarFlat) then + begin + if (inclinacao20 > 0) and (Close > mme20) then + begin + faseMercado := "FASE 2: TENDÊNCIA DE ALTA (Markup)"; + corFundo := RGB(230, 255, 230); // Fundo Verde Claro + end + else if (inclinacao20 < 0) and (Close < mme20) then + begin + faseMercado := "FASE 4: TENDÊNCIA DE BAIXA (Markdown)"; + corFundo := RGB(255, 230, 230); // Fundo Vermelho Claro + end + else + begin + // Preço cruzando a média inclinada (Correção complexa) + faseMercado := "CORREÇÃO / INDEFINIDO"; + corFundo := RGB(240, 240, 240); // Cinza Claro + end; + end + // Cenário B: Lateralidade (Acumulação ou Distribuição) + else + begin + // Se está lateral ACIMA da 200 -> Provável Distribuição ou Reacumulação + if (Close > mma200) then + begin + faseMercado := "FASE 3: DISTRIBUIÇÃO (Lateral de Topo)"; + corFundo := RGB(255, 250, 205); // Amarelo Claro + end + // Se está lateral ABAIXO da 200 -> Provável Acumulação + else + begin + faseMercado := "FASE 1: ACUMULAÇÃO (Lateral de Fundo)"; + corFundo := RGB(230, 240, 255); // Azul Claro + end; + end; + + // --- 3. VISUALIZAÇÃO --- + + // Pinta o candle (SetChartColor não foi reconhecido neste contexto) + PaintBar(corFundo); + + // Escreve a fase no topo do candle + PlotText(faseMercado, RGB(255, 255, 255), 8, 0, High * 1.002); + + // Plota as médias para referência visual + Plot(mme20); + Plot2(mma200); + + // Configura as cores das linhas (Usando RGB para evitar erros de constante) + SetPlotColor(1, RGB(255, 0, 255)); // Fuchsia + SetPlotWidth(1, 2); + SetPlotColor(2, RGB(255, 255, 255)); // White + SetPlotWidth(2, 2); + +end; \ No newline at end of file diff --git a/fev_DivergenciaIFR.txt b/fev_DivergenciaIFR.txt new file mode 100644 index 0000000..eefc0d9 --- /dev/null +++ b/fev_DivergenciaIFR.txt @@ -0,0 +1,58 @@ +// { +// Indicador: fev_DivergenciaIFR +// Descrição: Identifica divergências clássicas entre Preço e IFR (RSI). +// Sinaliza exaustão de movimento antes da reversão. +// Autor: Wesley +// } + +var + fIFR : float; + iPeriodo : Integer; + fTopoPreco, fFundoPreco : float; + fTopoIFR, fFundoIFR : float; + cCorDivergenciaBaixa, cCorDivergenciaAlta : Integer; + +begin + iPeriodo := 14; // Período padrão do IFR + fIFR := IFR(iPeriodo); + + // Cores de Alerta + cCorDivergenciaBaixa := RGB(255, 140, 0); // Laranja (Cuidado na Compra) + cCorDivergenciaAlta := RGB(0, 255, 255); // Ciano (Cuidado na Venda) + + // --- Lógica de Divergência de Baixa (Topo) --- + // Preço faz Topo Mais Alto, mas IFR faz Topo Mais Baixo + if (High > High[1]) and (High > High[2]) then // Topo no Preço + begin + // Verifica se o IFR não acompanhou a força + if (fIFR < fIFR[1]) or (fIFR < fIFR[2]) then + begin + // Filtro: IFR deve estar em zona de sobrecompra (> 60) para ser relevante + if (fIFR > 60) then + begin + PlotText("DIV BAIXA", cCorDivergenciaBaixa, 0, High + (Range * 0.5)); + // Opcional: Pintar barra de alerta + // PaintBar(cCorDivergenciaBaixa); + end; + end; + end; + + // --- Lógica de Divergência de Alta (Fundo) --- + // Preço faz Fundo Mais Baixo, mas IFR faz Fundo Mais Alto + if (Low < Low[1]) and (Low < Low[2]) then // Fundo no Preço + begin + // Verifica se o IFR não acompanhou a fraqueza + if (fIFR > fIFR[1]) or (fIFR > fIFR[2]) then + begin + // Filtro: IFR deve estar em zona de sobrevenda (< 40) + if (fIFR < 40) then + begin + PlotText("DIV ALTA", cCorDivergenciaAlta, 0, Low - (Range * 0.5)); + // Opcional: Pintar barra de alerta + // PaintBar(cCorDivergenciaAlta); + end; + end; + end; + + // Plot(fIFR); // Descomente se quiser ver a linha do IFR +end; \ No newline at end of file diff --git a/fev_HorarioTurbulencia.txt b/fev_HorarioTurbulencia.txt new file mode 100644 index 0000000..8d20ebf --- /dev/null +++ b/fev_HorarioTurbulencia.txt @@ -0,0 +1,44 @@ +// { +// Indicador: fev_HorarioTurbulencia +// Descrição: Pinta o fundo do gráfico em horários de alta volatilidade/risco. +// Baseado nas regras do OperacionalSetupTrader.md +// Autor: Wesley +// } + +var + iHora, iMinuto : Integer; + cCorPerigo, cCorAlerta : Integer; + +begin + iHora := Time / 100; + iMinuto := Time mod 100; + + cCorPerigo := RGB(255, 230, 230); // Vermelho Claro (Zona Proibida) + cCorAlerta := RGB(255, 255, 224); // Amarelo Claro (Atenção) + + // --- ZONA 1: Abertura das Ações BR + Ptax (10:00 - 10:15) --- + // O "Samba do Crioulo Doido" + if (iHora = 10) and (iMinuto >= 00) and (iMinuto <= 15) then + begin + SetChartColor(cCorPerigo); + end + + // --- ZONA 2: Abertura NYSE (10:30 - 10:45 ou 11:30 dependendo do horário verão) --- + // Ajuste conforme horário de verão. Aqui configurado para 10:30 padrão. + else if (iHora = 10) and (iMinuto >= 30) and (iMinuto <= 45) then + begin + SetChartColor(cCorAlerta); + end + + // --- ZONA 3: Fechamento / Leilão (17:50+) --- + else if (iHora >= 17) and (iMinuto >= 50) then + begin + SetChartColor(cCorPerigo); + end + + // --- Horário Normal --- + else + begin + // Mantém a cor padrão do fundo (não faz nada) + end; +end; \ No newline at end of file diff --git a/fev_MediasSetupDiario.txt b/fev_MediasSetupDiario.txt new file mode 100644 index 0000000..be7ee72 --- /dev/null +++ b/fev_MediasSetupDiario.txt @@ -0,0 +1,74 @@ +// { +// Indicador: fev_MediasSetupDiario +// Descrição: Plota médias e colore candles baseado na confluência (Leque/Tendência). +// Autor: Wesley +// } + +var + // Médias + mme9, mme14, mme20, mma50, mma200 : float; + + // Cores + cAmarela, cLaranja, cFucsia, cCiano, cBranca : integer; // Cores das Linhas + cCandleCiano, cCandleFuchsia, cCandleVerde, cCandleVermelho, cCandleCinza : integer; // Cores dos Candles + +begin + // --- Inicialização das Cores das Linhas --- + cAmarela := RGB(255, 255, 0); // 9 MME + cLaranja := RGB(255, 165, 0); // 14 MME + cFucsia := RGB(255, 0, 255); // 20 MME + cCiano := RGB(0, 255, 255); // 50 MMA + cBranca := RGB(255, 255, 255);// 200 MMA + + // --- Inicialização das Cores dos Candles --- + cCandleCiano := RGB(0, 255, 255); // Compra Forte (Leque Aberto) + cCandleFuchsia := RGB(255, 0, 255); // Venda Forte (Leque Aberto) + cCandleVerde := RGB(0, 255, 0); // Compra (Tendência) + cCandleVermelho := RGB(255, 0, 0); // Venda (Tendência) + cCandleCinza := RGB(105, 105, 105); // Neutro (Embolado) + + // --- Cálculo das Médias Móveis --- + mme9 := MediaExp(9, Close); + mme14 := MediaExp(14, Close); + mme20 := MediaExp(20, Close); + mma50 := Media(50, Close); + mma200 := Media(200, Close); + + // --- Lógica de Coloração (Confluência) --- + PaintBar(cCandleCinza); // Default: Sem confluência / Embolado + + // 1. Confluência Forte (Leque Aberto Perfeito) + // Ordem: Preço > 9 > 20 > 50 > 200 + if (Close > mme9) and (mme9 > mme20) and (mme20 > mma50) and (mma50 > mma200) then + PaintBar(cCandleCiano) + // Ordem: Preço < 9 < 20 < 50 < 200 + else if (Close < mme9) and (mme9 < mme20) and (mme20 < mma50) and (mma50 < mma200) then + PaintBar(cCandleFuchsia) + + // 2. Confluência Normal (Tendência Definida pela 20 e 50) + else if (Close > mme20) and (mme20 > mma50) then + PaintBar(cCandleVerde) + else if (Close < mme20) and (mme20 < mma50) then + PaintBar(cCandleVermelho); + + // --- Plotagem das Médias no Gráfico --- + Plot(mme9); + SetPlotColor(1, cAmarela); + SetPlotWidth(1, 2); + + Plot2(mme14); + SetPlotColor(2, cLaranja); + SetPlotWidth(2, 2); + + Plot3(mme20); + SetPlotColor(3, cFucsia); + SetPlotWidth(3, 2); + + Plot4(mma50); + SetPlotColor(4, cCiano); + SetPlotWidth(4, 3); + + Plot5(mma200); + SetPlotColor(5, cBranca); + SetPlotWidth(5, 3); +end; \ No newline at end of file diff --git a/fev_MediasSetupSemana.txt b/fev_MediasSetupSemana.txt new file mode 100644 index 0000000..079662e --- /dev/null +++ b/fev_MediasSetupSemana.txt @@ -0,0 +1,78 @@ +// { +// Indicador: fev_MediasSetupSemana +// Descrição: Plota médias e colore candles baseado na confluência (Leque/Tendência). +// Autor: Wesley +// } + +var + // Médias + mme9, mme14, mme20, mma50, mma200 : float; + + // Cores + cAmarela, cLaranja, cFucsia, cCiano, cBranca : integer; // Cores das Linhas + cCandleCiano, cCandleFuchsia, cCandleVerde, cCandleVermelho, cCandleCinza : integer; // Cores dos Candles + +begin + // --- Inicialização das Cores das Linhas --- + cAmarela := RGB(255, 255, 0); // 9 MME + cLaranja := RGB(255, 165, 0); // 14 MME + cFucsia := RGB(255, 0, 255); // 20 MME + cCiano := RGB(0, 255, 255); // 50 MMA + cBranca := RGB(255, 255, 255);// 200 MMA + + // --- Inicialização das Cores dos Candles --- + cCandleCiano := RGB(0, 255, 255); // Compra Forte (Leque Aberto) + cCandleFuchsia := RGB(255, 0, 255); // Venda Forte (Leque Aberto) + cCandleVerde := RGB(0, 255, 0); // Compra (Tendência) + cCandleVermelho := RGB(255, 0, 0); // Venda (Tendência) + cCandleCinza := RGB(105, 105, 105); // Neutro (Embolado) + + // --- Cálculo das Médias Móveis --- + mme9 := MediaExp(9, Close); + mme14 := MediaExp(14, Close); + mme20 := MediaExp(20, Close); + mma50 := Media(50, Close); + mma200 := Media(200, Close); + + // --- Lógica de Coloração (Confluência) --- + PaintBar(cCandleCinza); // Default: Sem confluência / Embolado + + // 1. Confluência Forte (Leque Aberto Perfeito) + // Ordem: Preço > 9 > 20 > 50 > 200 + if (Close > mme9) and (mme9 > mme20) and (mme20 > mma50) and (mma50 > mma200) then + PaintBar(cCandleCiano) + // Ordem: Preço < 9 < 20 < 50 < 200 + else if (Close < mme9) and (mme9 < mme20) and (mme20 < mma50) and (mma50 < mma200) then + PaintBar(cCandleFuchsia) + + // 2. Confluência Normal (Tendência Definida pela 20 e 50) + else if (Close > mme20) and (mme20 > mma50) then + PaintBar(cCandleVerde) + else if (Close < mme20) and (mme20 < mma50) then + PaintBar(cCandleVermelho); + + // --- Plotagem das Médias no Gráfico --- + Plot(mme9); + SetPlotColor(1, cAmarela); + SetPlotWidth(1, 2); + + Plot2(mme14); + SetPlotColor(2, cLaranja); + SetPlotWidth(2, 2); + + Plot3(mme20); + SetPlotColor(3, cFucsia); + SetPlotWidth(3, 2); + + Plot4(mma50); + SetPlotColor(4, cCiano); + SetPlotWidth(4, 3); + + Plot5(mma200); + SetPlotColor(5, cBranca); + SetPlotWidth(5, 3); + + // Garante que o primeiro candle seja visualmente Cinza (Neutro) + if (Date <> Date[1]) then + PaintBar(cCandleCinza); +end; \ No newline at end of file diff --git a/fev_OBVvolumeVerdadeiro.txt b/fev_OBVvolumeVerdadeiro.txt new file mode 100644 index 0000000..1bafeb7 --- /dev/null +++ b/fev_OBVvolumeVerdadeiro.txt @@ -0,0 +1,53 @@ +{ + Estratégia: fev_OBVvolumeVerdadeiro + Autor: Wesley + Descrição: Indicador de Saldo de Volume (OBV) Puro. + Utilizado para identificar fluxo imediato (Acumulação vs Distribuição). + + Lógica: + - Linha Colorida: O próprio OBV. + + Interpretação: + - OBV Subindo (Verde): Pressão de Compra. + - OBV Caindo (Vermelho): Pressão de Venda. +} + +Var + vOBV : Real; + corAlta : Integer; + corBaixa : Integer; + corNeutra : Integer; + +Begin + // --- DEFINIÇÃO DE CORES --- + corAlta := RGB(0, 255, 0); // Verde (Compradores no controle) + corBaixa := RGB(255, 0, 0); // Vermelho (Vendedores no controle) + corNeutra := RGB(105, 105, 105); // Cinza (Neutro) + + // --- CÁLCULOS --- + vOBV := OBV; + + // --- PLOTAGEM --- + Plot(vOBV); + + // --- ESTILIZAÇÃO --- + SetPlotWidth(1, 2); // OBV mais grosso + + // --- REGRA DE COLORAÇÃO --- + PaintBar(corNeutra); // Pinta tudo de cinza por padrão + + // Só aplica coloração se NÃO for o primeiro candle do dia + if (Date = Date[1]) then + begin + if (vOBV > vOBV[1]) then + begin + SetPlotColor(1, corAlta); // Pinta a linha do indicador + PaintBar(corAlta); // Pinta o candle no gráfico de preço + end + else if (vOBV < vOBV[1]) then + begin + SetPlotColor(1, corBaixa); // Pinta a linha do indicador + PaintBar(corBaixa); // Pinta o candle no gráfico de preço + end; + end; +End; \ No newline at end of file diff --git a/fev_PainelDecisao.txt b/fev_PainelDecisao.txt new file mode 100644 index 0000000..244e0df --- /dev/null +++ b/fev_PainelDecisao.txt @@ -0,0 +1,51 @@ +{ + Indicador: fev_PainelDecisao + Autor: Wesley (Gemini Code Assist) + Descrição: Consolida o checklist de 3 etapas (VWAP, Estrutura, OBV) + do Setup Operacional em um painel visual e sonoro. +} + +input + PeriodoEstrutura(5); + PeriodoOBV(20); + +var + // --- Variáveis de Validação --- + bCompraAutorizada, bVendaAutorizada : boolean; + + // --- Variáveis de Cálculo --- + vVwapDiaria, vVwapSemanal : float; + maxN, minN : float; + obv, mediaObv : float; + +begin + // --- 1. PASSO 1: VALIDAÇÃO INSTITUCIONAL (VWAP) --- + vVwapDiaria := VWAP(1); + vVwapSemanal := VWAP(2); + + // --- 2. PASSO 2: VALIDAÇÃO DE ESTRUTURA (PIVÔ) --- + maxN := Highest(High, PeriodoEstrutura); + minN := Lowest(Low, PeriodoEstrutura); + + // --- 3. PASSO 3: VALIDAÇÃO DE FLUXO (OBV) --- + obv := OnBalanceVolume; + mediaObv := Media(PeriodoOBV, obv); + + // --- 4. DECISÃO FINAL (CONFLUÊNCIA) --- + bCompraAutorizada := (Close > vVwapDiaria) and (Close > vVwapSemanal) and (Close > maxN[1]) and (obv > mediaObv); + bVendaAutorizada := (Close < vVwapDiaria) and (Close < vVwapSemanal) and (Close < minN[1]) and (obv < mediaObv); + + // --- 5. VISUALIZAÇÃO E ALARME --- + if bCompraAutorizada then + begin + PlotText('COMPRA AUTORIZADA', RGB(0, 255, 0), 12, 0, High * 1.01); + if not bCompraAutorizada[1] then PlaySound('Ring.wav'); + end + else if bVendaAutorizada then + begin + PlotText('VENDA AUTORIZADA', RGB(255, 0, 0), 12, 0, High * 1.01); + if not bVendaAutorizada[1] then PlaySound('Ring.wav'); + end + else + PlotText('AGUARDANDO CONFLUÊNCIA...', RGB(255, 255, 0), 10, 0, High * 1.01); +end; \ No newline at end of file diff --git a/fev_PainelDecisaoAlarme.ntsl.txt b/fev_PainelDecisaoAlarme.ntsl.txt new file mode 100644 index 0000000..f9e7294 --- /dev/null +++ b/fev_PainelDecisaoAlarme.ntsl.txt @@ -0,0 +1,105 @@ +var + // Variáveis Institucionais (VWAP) + vVwapD, vVwapS : float; + bVwapC, bVwapV : boolean; + + // Variáveis de Estrutura (Pivô) + fMaxEst, fMinEst : float; + bEstC, bEstV : boolean; + + // Variáveis de Gatilho (Price Action) + fCorpo, fPavioSup, fPavioInf, fRange : float; + bAlta, bBaixa : boolean; + fMedia20 : float; + bTendenciaAlta, bTendenciaBaixa, bAnteriorDeAlta, bAnteriorDeBaixa : boolean; + bTrigC, bTrigV : boolean; + +begin + // --- PASSO 1: VALIDAÇÃO INSTITUCIONAL (VWAP) --- + // Baseado em fev_VWAPsemanalDiario + vVwapD := VWAP(1); + vVwapS := VWAP(2); + + // Compra: Acima das duas VWAPs e candle positivo + bVwapC := (Close > vVwapD) and (Close > vVwapS) and (Close > Open); + // Venda: Abaixo das duas VWAPs e candle negativo + bVwapV := (Close < vVwapD) and (Close < vVwapS) and (Close < Open); + + + // --- PASSO 2: VALIDAÇÃO DE ESTRUTURA (PIVÔ) --- + // Baseado em fevTendenciaPivoTeste + // Verifica rompimento dos últimos 5 candles + fMaxEst := Highest(High[1], 5); + fMinEst := Lowest(Low[1], 5); + + bEstC := Close > fMaxEst; + bEstV := Close < fMinEst; + + + // --- PASSO 3: GATILHO (PRICE ACTION) --- + // Baseado em fev_PriceAction + fRange := Range; + fCorpo := Abs(Close - Open); + bAlta := Close >= Open; + bBaixa := Close < Open; + + if bAlta then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + end else begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + end; + + // Contexto para Gold Signal + fMedia20 := MediaExp(20, Close); + bTendenciaAlta := (Close > fMedia20) and (fMedia20 > fMedia20[1]); + bTendenciaBaixa := (Close < fMedia20) and (fMedia20 < fMedia20[1]); + bAnteriorDeAlta := Close[1] > Open[1]; + bAnteriorDeBaixa := Close[1] < Open[1]; + + // Reset dos gatilhos + bTrigC := False; + bTrigV := False; + + // Identifica Gatilhos de Compra (Gold, Ciano, Verde) + // Gold Signal Compra + if (fCorpo >= (fRange * 0.70)) and bAlta and bTendenciaAlta and (Close > High[1]) and bAnteriorDeAlta and (fPavioSup <= (fRange * 0.20)) then bTrigC := True; + // Ciano (Força) + if (fCorpo >= (fRange * 0.70)) and bAlta and (fPavioSup <= (fRange * 0.20)) then bTrigC := True; + // Verde (Engolfo) + if (Close > Open) and (Close > High[1]) and (Open < Low[1]) then bTrigC := True; + + // Identifica Gatilhos de Venda (Gold, Fuchsia, Vermelho) + // Gold Signal Venda + if (fCorpo >= (fRange * 0.70)) and bBaixa and bTendenciaBaixa and (Close < Low[1]) and bAnteriorDeBaixa and (fPavioInf <= (fRange * 0.20)) then bTrigV := True; + // Fuchsia (Força) + if (fCorpo >= (fRange * 0.70)) and bBaixa and (fPavioInf <= (fRange * 0.20)) then bTrigV := True; + // Vermelho (Engolfo) + if (Close < Open) and (Close < Low[1]) and (Open > High[1]) then bTrigV := True; + + + // --- DECISÃO FINAL E PLOTAGEM --- + + // Cenário de COMPRA (Institucional OK + Estrutura OK) + if bVwapC and bEstC then + begin + PlotText("COMPRA AUTORIZADA", RGB(0, 255, 0), 0, Low - (Range*0.5)); + // Se tiver Gatilho junto, é Confluência Total -> ALARME + if bTrigC then + begin + Alert(RGB(0, 255, 0)); // Toca som e pisca verde + end; + end + // Cenário de VENDA (Institucional OK + Estrutura OK) + else if bVwapV and bEstV then + begin + PlotText("VENDA AUTORIZADA", RGB(255, 0, 0), 0, High + (Range*0.5)); + // Se tiver Gatilho junto, é Confluência Total -> ALARME + if bTrigV then + begin + Alert(RGB(255, 0, 0)); // Toca som e pisca vermelho + end; + end; +end; \ No newline at end of file diff --git a/fev_PriceActionAnaliseCorpo.txt b/fev_PriceActionAnaliseCorpo.txt new file mode 100644 index 0000000..5447591 --- /dev/null +++ b/fev_PriceActionAnaliseCorpo.txt @@ -0,0 +1,48 @@ +var + cCiano, cFuchsia, cVerde, cVermelho, cCinza : Integer; + fCorpo, fPavioSup, fPavioInf, fRange : float; + bAlta, bBaixa : boolean; + +begin + // Inicialização das Cores + cCiano := RGB(0, 255, 255); // Compra Forte + cFuchsia := RGB(255, 0, 255); // Venda Forte + cVerde := RGB(0, 255, 0); // Engolfo Alta + cVermelho := RGB(255, 0, 0); // Engolfo Baixa + cCinza := RGB(105, 105, 105); + + // Cálculos + fRange := Range; + fCorpo := Abs(Close - Open); + + if (Close >= Open) then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + bAlta := True; + bBaixa := False; + end + else + begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + bAlta := False; + bBaixa := True; + end; + + // Default + PaintBar(cCinza); + + // 1. Padrões Técnicos (Engolfo) + if (Close > Open) and (Close > High[1]) and (Open < Low[1]) then + PaintBar(cVerde); + if (Close < Open) and (Close < Low[1]) and (Open > High[1]) then + PaintBar(cVermelho); + + // 2. Força / Momentum (Ciano/Fuchsia) + if (fCorpo >= (fRange * 0.70)) then + begin + if bAlta and (fPavioSup <= (fRange * 0.20)) then PaintBar(cCiano); + if bBaixa and (fPavioInf <= (fRange * 0.20)) then PaintBar(cFuchsia); + end; +end; \ No newline at end of file diff --git a/fev_PriceActionAnaliseSombra.txt b/fev_PriceActionAnaliseSombra.txt new file mode 100644 index 0000000..4811061 --- /dev/null +++ b/fev_PriceActionAnaliseSombra.txt @@ -0,0 +1,37 @@ +var + cAzulRoyal, cMarrom, cCinza : Integer; + fCorpo, fPavioSup, fPavioInf, fRange : float; + +begin + // Inicialização das Cores + cAzulRoyal := RGB(65, 105, 225); // Rejeição de Topo + cMarrom := RGB(165, 42, 42); // Rejeição de Fundo + cCinza := RGB(105, 105, 105); // Neutro + + // Cálculos + fRange := Range; + fCorpo := Abs(Close - Open); + + if (Close >= Open) then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + end + else + begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + end; + + // Default + PaintBar(cCinza); + + // Lógica de Sombra (Prioridade Única) + // Pavio superior grande (Rejeição de Topo / Shooting Star) + if (fPavioSup > (fCorpo * 2)) and (fPavioSup > fPavioInf) then + PaintBar(cAzulRoyal); + + // Pavio inferior grande (Rejeição de Fundo / Hammer) + if (fPavioInf > (fCorpo * 2)) and (fPavioInf > fPavioSup) then + PaintBar(cMarrom); +end; \ No newline at end of file diff --git a/fev_PriceActionCorpoSombraExecucao.txt b/fev_PriceActionCorpoSombraExecucao.txt new file mode 100644 index 0000000..b56ac4c --- /dev/null +++ b/fev_PriceActionCorpoSombraExecucao.txt @@ -0,0 +1,185 @@ +var + // Definição de Cores Personalizadas + cCinza, cVerde, cVermelho, cAmarelo, cFuchsia, cCiano, cAzulRoyal, cMarrom : Integer; + + fCorpo, fPavioSup, fPavioInf, fRange : float; + fCorpoAnt, fPavioSupAnt, fPavioInfAnt, fRangeAnt : float; + fOpen1, fClose1, fHigh1, fLow1, fOpen2, fClose2, fHigh2, fLow2 : float; + fCorpo1, fRange1, fPavioSup1, fPavioInf1 : float; + fMedia20_1, fMedia20_2 : float; + vOBV1, vOBV2 : float; + bAlta, bBaixa : boolean; + fMedia20 : float; + vOBV : float; + bFluxoComprador, bFluxoVendedor : boolean; + bTendenciaAlta, bTendenciaBaixa, bAnteriorDeAlta, bAnteriorDeBaixa : boolean; + bDoisAtrasAlta, bDoisAtrasBaixa : boolean; + bAntMartelo, bAntEstrela, bReversaoCompraConfirmada, bReversaoVendaConfirmada : boolean; + bGoldSignalCompra, bGoldSignalVenda : boolean; + bGoldContinuacaoCompra, bGoldContinuacaoVenda : boolean; + +begin + // Inicialização das Cores + cCinza := RGB(105, 105, 105); + cVerde := RGB(0, 255, 0); + cVermelho := RGB(255, 0, 0); + cAmarelo := RGB(255, 255, 0); + cFuchsia := RGB(255, 0, 255); + cCiano := RGB(0, 255, 255); + cAzulRoyal := RGB(65, 105, 225); + cMarrom := RGB(165, 42, 42); + + // 1. Cálculos Básicos do Candle + fRange := Range; + fCorpo := Abs(Close - Open); + + if (Close >= Open) then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + bAlta := True; + bBaixa := False; + end + else + begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + bAlta := False; + bBaixa := True; + end; + + // 1.1 Filtro de Fluxo (OBV Puro) + vOBV := OBV; + bFluxoComprador := (vOBV > vOBV[1]); + bFluxoVendedor := (vOBV < vOBV[1]); + + // Contexto de Tendência (para o Gold Signal) + fMedia20 := MediaExp(20, Close); + bTendenciaAlta := (Close > fMedia20) and (fMedia20 > fMedia20[1]); + bTendenciaBaixa := (Close < fMedia20) and (fMedia20 < fMedia20[1]); + + // Contexto do candle anterior para o Gold Signal (Sua nova condição) + bAnteriorDeAlta := Close[1] > Open[1]; // Candle anterior foi de compra + bAnteriorDeBaixa := Close[1] < Open[1]; // Candle anterior foi de venda + bDoisAtrasAlta := Close[2] > Open[2]; + bDoisAtrasBaixa := Close[2] < Open[2]; + + // Pré-cálculos de séries para evitar acessos posicionais dentro de condicionais + fOpen1 := Open[1]; + fClose1 := Close[1]; + fHigh1 := High[1]; + fLow1 := Low[1]; + fOpen2 := Open[2]; + fClose2 := Close[2]; + fHigh2 := High[2]; + fLow2 := Low[2]; + + fRange1 := Range[1]; + fCorpo1 := Abs(fClose1 - fOpen1); + + if (fClose1 >= fOpen1) then + begin + fPavioSup1 := fHigh1 - fClose1; + fPavioInf1 := fOpen1 - fLow1; + end + else + begin + fPavioSup1 := fHigh1 - fOpen1; + fPavioInf1 := fClose1 - fLow1; + end; + + fMedia20_1 := MediaExp(20, Close[1]); + fMedia20_2 := MediaExp(20, Close[2]); + vOBV1 := OBV[1]; + vOBV2 := OBV[2]; + + bGoldContinuacaoCompra := (fClose1 >= fOpen1) and (fClose1 > fMedia20_1) and (fMedia20_1 > fMedia20_2) and (fCorpo1 >= (fRange1 * 0.70)) and (fClose1 > fHigh2) and (fClose2 > fOpen2) and (fPavioSup1 <= (fRange1 * 0.20)) and (vOBV1 > vOBV2); + bGoldContinuacaoVenda := (fClose1 < fOpen1) and (fClose1 < fMedia20_1) and (fMedia20_1 < fMedia20_2) and (fCorpo1 >= (fRange1 * 0.70)) and (fClose1 < fLow2) and (fClose2 < fOpen2) and (fPavioInf1 <= (fRange1 * 0.20)) and (vOBV1 < vOBV2); + + // Reversão confirmada: contexto anterior [2] + candle de reversão [1] + confirmação no candle atual + fRangeAnt := fHigh1 - fLow1; + fCorpoAnt := Abs(fClose1 - fOpen1); + + if (fClose1 >= fOpen1) then + begin + fPavioSupAnt := fHigh1 - fClose1; + fPavioInfAnt := fOpen1 - fLow1; + end + else + begin + fPavioSupAnt := fHigh1 - fOpen1; + fPavioInfAnt := fClose1 - fLow1; + end; + + bAntMartelo := (fRangeAnt > 0) and (fPavioInfAnt > (fCorpoAnt * 2)) and (fPavioSupAnt < fCorpoAnt); + bAntEstrela := (fRangeAnt > 0) and (fPavioSupAnt > (fCorpoAnt * 2)) and (fPavioInfAnt < fCorpoAnt); + + bReversaoCompraConfirmada := bAntMartelo and bDoisAtrasBaixa and (fLow1 <= fLow2) and bFluxoComprador and (Close > fHigh1); + bReversaoVendaConfirmada := bAntEstrela and bDoisAtrasAlta and (fHigh1 >= fHigh2) and bFluxoVendedor and (Close < fLow1); + + // 2. Lógica de Coloração (Hierarquia de Prioridade) + + // Default: Cinza (Mercado sem tendência / Ruído) + PaintBar(cCinza); + + // Cálculo dos Sinais Gold (Atual) + bGoldSignalCompra := bAlta and bTendenciaAlta and (fCorpo >= (fRange * 0.70)) and (Close > High[1]) and bAnteriorDeAlta and (fPavioSup <= (fRange * 0.20)) and bFluxoComprador; + bGoldSignalVenda := bBaixa and bTendenciaBaixa and (fCorpo >= (fRange * 0.70)) and (Close < Low[1]) and bAnteriorDeBaixa and (fPavioInf <= (fRange * 0.20)) and bFluxoVendedor; + + // Prioridade 1: Gold Signal (Amarelo) - Mais de 4 confluências + if bGoldSignalCompra then + begin + PaintBar(cAmarelo); // Gold Signal Compra + Alert(cAmarelo); + end + else if bGoldSignalVenda then + begin + PaintBar(cAmarelo); // Gold Signal Venda + Alert(cAmarelo); + end + + // Prioridade 1.1: Continuidade do Gold Signal (Candle Seguinte) + // Se o candle anterior foi Gold, o atual pinta de Verde/Vermelho para confirmar direção + else if bGoldContinuacaoCompra then + PaintBar(cVerde) + else if bGoldContinuacaoVenda then + PaintBar(cVermelho) + + // Prioridade 3: Reversão confirmada (anterior + posterior) + else if bReversaoVendaConfirmada then + PaintBar(cAzulRoyal) // Estrela Cadente confirmada + else if bReversaoCompraConfirmada then + PaintBar(cMarrom) // Martelo confirmado + + // Prioridade 4: Padrões Técnicos (Verde/Vermelho) + else if (Close > Open) and (Close > High[1]) and (Open < Low[1]) and bFluxoComprador then + PaintBar(cVerde) // Engolfo de Alta + else if (Close < Open) and (Close < Low[1]) and (Open > High[1]) and bFluxoVendedor then + PaintBar(cVermelho) // Engolfo de Baixa + + // Prioridade 2: Força / Momentum (Ciano / Fuchsia) + else if (fCorpo >= (fRange * 0.70)) and bAlta and (fPavioSup <= (fRange * 0.20)) and bFluxoComprador then + PaintBar(cCiano) // Barra de Força Compra + else if (fCorpo >= (fRange * 0.70)) and bBaixa and (fPavioInf <= (fRange * 0.20)) and bFluxoVendedor then + PaintBar(cFuchsia); // Barra de Força Venda + + // Classificação do primeiro candle do dia por Price Action + tipo de candle + // Regra: rejeição forte prevalece sobre a cor do corpo. + if (Date <> Date[1]) then + begin + // Rejeição vendedora forte (pavio superior dominante): sinal de venda + if (fPavioSup >= (fCorpo * 1.5)) and (fPavioSup > fPavioInf) then + PaintBar(cVermelho) + + // Rejeição compradora forte (pavio inferior dominante): sinal de compra + else if (fPavioInf >= (fCorpo * 1.5)) and (fPavioInf > fPavioSup) then + PaintBar(cVerde) + + // Sem rejeição clara: segue direção do fechamento + else if (Close >= Open) then + PaintBar(cVerde) + else + PaintBar(cVermelho); + end; + +end; \ No newline at end of file diff --git a/fev_PriceActionNewton.txt b/fev_PriceActionNewton.txt new file mode 100644 index 0000000..f553459 --- /dev/null +++ b/fev_PriceActionNewton.txt @@ -0,0 +1,265 @@ +{ + Indicador: fev_PriceActionNewton + Autor: Wesley (Gemini Code Assist) + Descrição: Implementa a Teoria Price Action Newton com cálculos de Velocidade, Aceleração, Massa e Força. + Identifica padrões de alta força, alta velocidade e consolidação, com coloração dinâmica no gráfico. +} + +input + // Configuração de Visualização + iModoVisualizacao(0); // 0: Força, 1: Massa, 2: Aceleração + bVisualizarAltaIntensidade(true); // true: Alta Volatilidade/Força, false: Baixa (Consolidação) + iPeriodoSuavizacao(3); // 1 = Sem suavização (Cru). 3 a 5 = Ideal para WINFUT (Filtra ruído) + UsarModuloATR(true); + NormalizarForcaPorATR(true); + PeriodoATR(14); + PeriodoMediaATR(50); + FatorMinATR(0.90); + FatorMaxATR(2.50); + AtivarAnalisePrimeiroCandle(true); + pFatorVolumePrimeiroCandle(1.5); + pCorpoMinPrimeiroCandle(0.60); + + // Parâmetros configuráveis na tela + pFatorVelocidadeAltaManha(2.5); // WINFUT: Manhã é mais volátil, exige fator maior + pFatorVelocidadeBaixaManha(0.4); + pFatorForcaAltaManha(2.5); // WINFUT: Fator maior para filtrar ruído da manhã + pFatorForcaBaixaManha(0.4); + pFatorMassaAltaManha(2.0); // WINFUT: Volume precisa ser significativamente maior + pFatorMassaBaixaManha(0.7); + pFatorConsolidacaoManha(0.4); + + pFatorVelocidadeAltaTarde(1.8); // WINFUT: Tarde tem volatilidade menor que a manhã, mas ainda relevante + pFatorVelocidadeBaixaTarde(0.6); + pFatorForcaAltaTarde(1.8); + pFatorForcaBaixaTarde(0.6); + pFatorMassaAltaTarde(1.5); + pFatorMassaBaixaTarde(0.8); + pFatorConsolidacaoTarde(0.6); + +var + // Cores + cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco : Integer; + nR, nG, nB, j : Integer; + + // Variáveis de Price Action Newton + fVelocidade, fAceleracao, fMassa, fForca, fMaxForca, fIntensidade : float; + fForcaBase, fATRAtual, fATRMedio : float; + fVelocidadeAnt, fAceleracaoAnt, fMassaAnt, fForcaAnt : float; + fPrecoBase, fPrecoBaseAnt, fPrecoBaseAnt2, fPrecoBaseAnt3 : float; + fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : float; + bAltaVelocidade, bBaixaVelocidade, bConsolidacao, bAltaForca : boolean; + bPrimeiroCandleDia, bPrimeiroAlta, bPrimeiroBaixa, bDojiPrimeiro, bAbsorcaoPrimeiro : boolean; + bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + bATRRegimeOK : boolean; + + bPeriodoManha : boolean; + +begin + // 1. Definição de Cores + cVerde := RGB(0, 255, 0); // Alta Força de Alta + cVermelho := RGB(255, 0, 0); // Alta Força de Baixa + cCiano := RGB(0, 255, 255); // Velocidade Alta + cFucsia := RGB(255, 0, 255); // Velocidade Baixa + cMarrom := RGB(139, 69, 19); // Consolidação + cCinza := RGB(169, 169, 169); // Neutro + cBranco := RGB(255, 255, 255); // Reversão/Neutro + + // 2. Identificação do Período (Manhã ou Tarde) + bPeriodoManha := (Time < 120000); // Antes de 12:00 é manhã + + // 3. Cálculos Físicos (Newton) + + // Define a base de cálculo (Preço Puro ou Suavizado) + // Usar MediaExp(3) aumenta drasticamente a assertividade no WINFUT + if iPeriodoSuavizacao > 1 then + fPrecoBase := MediaExp(iPeriodoSuavizacao, Close) + else + fPrecoBase := Close; + + fPrecoBaseAnt := fPrecoBase[1]; + fPrecoBaseAnt2 := fPrecoBase[2]; + fPrecoBaseAnt3 := fPrecoBase[3]; + + // Velocidade (v) = Variação do Preço Base + fVelocidade := fPrecoBase - fPrecoBaseAnt; + fVelocidadeAnt := fPrecoBaseAnt - fPrecoBaseAnt2; + + // Aceleração (a) = Variação da Velocidade + fAceleracao := fVelocidade - fVelocidadeAnt; + fAceleracaoAnt := fVelocidadeAnt - (fPrecoBaseAnt2 - fPrecoBaseAnt3); + + // Massa (m) = Volume + fMassa := Volume; + fMassaAnt := Volume[1]; + + // Força (F) = Massa * Aceleração (2ª Lei de Newton) + fForca := fMassa * fAceleracao; + fForcaAnt := fMassaAnt * fAceleracaoAnt; + + // Módulo ATR: regime de volatilidade + normalização opcional + fATRAtual := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoMediaATR, fATRAtual); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bATRRegimeOK := (not UsarModuloATR) + or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); + + fForcaBase := fForca; + if NormalizarForcaPorATR then + begin + if fATRAtual > 0 then + fForcaBase := fForca / fATRAtual + else + fForcaBase := fForca; + end; + + // 4. Lógica de Coloração Dinâmica + + // Default + PaintBar(cCinza); + + // Modo 0: FORÇA (F = M * A) + if iModoVisualizacao = 0 then + begin + if not bATRRegimeOK then + begin + PaintBar(cCinza); + end + else + begin + // Cálculo da Força Máxima recente para normalização (Escala de Cor) + fMaxForca := 0.0001; + for j := 0 to 20 do + begin + if Abs(fForcaBase[j]) > fMaxForca then fMaxForca := Abs(fForcaBase[j]); + end; + + fIntensidade := Abs(fForcaBase) / fMaxForca; + if fIntensidade > 1.0 then fIntensidade := 1.0; + + if fForcaBase > 0 then + begin + // Escala de Verde (Branco -> Verde) + nR := 255 - Round(255 * fIntensidade); + nG := 255; + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end + else if fForcaBase < 0 then + begin + // Escala de Vermelho (Branco -> Vermelho) + nR := 255; + nG := 255 - Round(255 * fIntensidade); + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end; + if fForcaBase = 0 then PaintBar(cBranco); + end; + end + // Modo 1: MASSA (Volume) + else if iModoVisualizacao = 1 then + begin + if not bATRRegimeOK then + begin + PaintBar(cCinza); + end + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaManha)) or + ((not bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaTarde)) then + PaintBar(cCiano); // Massa Alta + end + else + begin + if ((bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaManha)) or + ((not bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaTarde)) then + PaintBar(cFucsia); // Massa Baixa + end; + end + // Modo 2: ACELERAÇÃO (Mudança de Velocidade) + else if iModoVisualizacao = 2 then + begin + if not bATRRegimeOK then + begin + PaintBar(cCinza); + end + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaTarde)) then + begin + // Aceleração > 0 (Compra) -> Ciano; Aceleração < 0 (Venda) -> Fucsia + if fAceleracao > 0 then PaintBar(cCiano) else if fAceleracao < 0 then PaintBar(cFucsia); + end; + end + else + begin + if ((bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaTarde)) then + PaintBar(cCinza); // Baixa aceleração/Consolidação + end; + end; + + // 5. Override opcional: análise específica do primeiro candle + bPrimeiroCandleDia := (Date <> Date[1]); + if bPrimeiroCandleDia and AtivarAnalisePrimeiroCandle then + begin + fRangePrimeiro := High - Low; + if fRangePrimeiro <= 0 then + fRangePrimeiro := 0.01; + + fCorpoPrimeiro := Abs(Close - Open); + fMediaVolumePrimeiro := Media(20, Volume); + if fMediaVolumePrimeiro <= 0 then + fMediaVolumePrimeiro := 1; + + bPrimeiroAlta := (Close > Open); + bPrimeiroBaixa := (Close < Open); + bDojiPrimeiro := (fCorpoPrimeiro <= (fRangePrimeiro * 0.10)); + + if (Close >= Open) then + begin + fPavioSupPrimeiro := High - Close; + fPavioInfPrimeiro := Open - Low; + end + else + begin + fPavioSupPrimeiro := High - Open; + fPavioInfPrimeiro := Close - Low; + end; + + bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioSupPrimeiro > fPavioInfPrimeiro); + bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioInfPrimeiro > fPavioSupPrimeiro); + bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); + bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) + or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); + + if bArmadilhaPrimeiro then + PaintBar(cMarrom) + else if bRejeicaoTopoPrimeiro then + PaintBar(cVermelho) + else if bRejeicaoFundoPrimeiro then + PaintBar(cVerde) + else if bIniciativaAltaPrimeiro then + PaintBar(cCiano) + else if bIniciativaBaixaPrimeiro then + PaintBar(cFucsia) + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(cBranco) + else if bPrimeiroAlta then + PaintBar(cVerde) + else if bPrimeiroBaixa then + PaintBar(cVermelho) + else + PaintBar(cBranco); + end; + +end; \ No newline at end of file diff --git a/fev_PriceActionTiposCandlesLeitura.txt b/fev_PriceActionTiposCandlesLeitura.txt new file mode 100644 index 0000000..5449399 --- /dev/null +++ b/fev_PriceActionTiposCandlesLeitura.txt @@ -0,0 +1,170 @@ +input + AtivarAnalisePrimeiroCandle(true); + FatorVolumePrimeiroCandle(1.5); + CorpoMinPrimeiroCandle(0.60); + +var + // Cores + cVerde, cVermelho, cLaranja, cBranco, cCinza : Integer; + + // Variáveis de Anatomia + fCorpo, fPavioSup, fPavioInf, fRange : float; + fCorpoAnt, fPavioSupAnt, fPavioInfAnt, fRangeAnt : float; + bAlta, bBaixa : boolean; + + // Variáveis de Contexto (Candle Anterior) + bAntAlta, bAntBaixa, bAnt2Alta, bAnt2Baixa : boolean; + bMarteloAnterior, bEstrelaAnterior, bMarteloConfirmado, bEstrelaConfirmada : boolean; + fAntMax, fAntMin, fAnt2Max, fAnt2Min : float; + + // Padrões válidos (contexto + anatomia) + bEngolfoAltaValido, bEngolfoBaixaValido : boolean; + bInsideBarValido, bDojiRealValido : boolean; + bContextoAlta, bContextoBaixa : boolean; + bSinalCompraContextual, bSinalVendaContextual : boolean; + bPrimeiroCandle, bAbsorcaoPrimeiro : boolean; + bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + fMediaVolumePrimeiro : float; + +begin + // 1. Definição de Cores + cVerde := RGB(0, 255, 0); // Compra contextualizada + cVermelho := RGB(255, 0, 0); // Venda contextualizada + cLaranja := RGB(255, 140, 0); // Inside Bar + cBranco := RGB(255, 255, 255); // Doji + cCinza := RGB(105, 105, 105); // Neutro + + // 2. Cálculos do Contexto (Candle Anterior) + bAntAlta := Close[1] > Open[1]; + bAntBaixa := Close[1] < Open[1]; + bAnt2Alta := Close[2] > Open[2]; + bAnt2Baixa := Close[2] < Open[2]; + fAntMax := High[1]; + fAntMin := Low[1]; + fAnt2Max := High[2]; + fAnt2Min := Low[2]; + bPrimeiroCandle := (Date <> Date[1]); + + // 3. Cálculos do Candle Atual + fRange := Range; + fCorpo := Abs(Close - Open); + + if (Close >= Open) then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + bAlta := True; + bBaixa := False; + end + else + begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + bAlta := False; + bBaixa := True; + end; + + // 3.1 Cálculos do candle anterior (para confirmação de reversão) + fRangeAnt := fAntMax - fAntMin; + fCorpoAnt := Abs(Close[1] - Open[1]); + + if (Close[1] >= Open[1]) then + begin + fPavioSupAnt := fAntMax - Close[1]; + fPavioInfAnt := Open[1] - fAntMin; + end + else + begin + fPavioSupAnt := fAntMax - Open[1]; + fPavioInfAnt := Close[1] - fAntMin; + end; + + // Reversão confirmada: candle de reversão [1] + confirmação no candle atual + bMarteloAnterior := (fRangeAnt > 0) and (fPavioInfAnt > (fCorpoAnt * 2)) and (fPavioSupAnt < fCorpoAnt); + bEstrelaAnterior := (fRangeAnt > 0) and (fPavioSupAnt > (fCorpoAnt * 2)) and (fPavioInfAnt < fCorpoAnt); + + bMarteloConfirmado := bMarteloAnterior and bAnt2Baixa and (fAntMin <= fAnt2Min) and (Close > fAntMax); + bEstrelaConfirmada := bEstrelaAnterior and bAnt2Alta and (fAntMax >= fAnt2Max) and (Close < fAntMin); + + // 3.2 Validação de contexto antes da cor + bContextoAlta := bAntBaixa or bAnt2Baixa; + bContextoBaixa := bAntAlta or bAnt2Alta; + + // Engolfo real = anatomia + contexto + bEngolfoAltaValido := bAlta and bContextoAlta and bAntBaixa and (Close > fAntMax) and (Open <= Close[1]); + bEngolfoBaixaValido := bBaixa and bContextoBaixa and bAntAlta and (Close < fAntMin) and (Open >= Close[1]); + + // Inside bar real = candle dentro do anterior + contração de range + bInsideBarValido := (High < fAntMax) and (Low > fAntMin) and (fRangeAnt > 0) and (fRange < (fRangeAnt * 0.85)); + + // Doji real = corpo muito pequeno + sombras relevantes + bDojiRealValido := (fRange > 0) and (fCorpo <= (fRange * 0.10)) and (fPavioSup >= (fRange * 0.25)) and (fPavioInf >= (fRange * 0.25)); + + // Sinal final contextualizado: contexto primeiro, padrão depois + bSinalCompraContextual := bEngolfoAltaValido or bMarteloConfirmado; + bSinalVendaContextual := bEngolfoBaixaValido or bEstrelaConfirmada; + + // 4. Lógica de Coloração (Hierarquia de Prioridade) + + // Default + PaintBar(cCinza); + + // --- NÍVEL 3: SINAL CONTEXTUALIZADO (PRIORIDADE MÁXIMA) --- + // Sequência: contexto validado -> padrão validado -> cor + if bSinalCompraContextual then + PaintBar(cVerde) + else if bSinalVendaContextual then + PaintBar(cVermelho) + + // --- NÍVEL 2: INDECISÃO --- + else if bInsideBarValido then + PaintBar(cLaranja) // Inside Bar + else if bDojiRealValido then + PaintBar(cBranco); // Doji + + // Análise dedicada do primeiro candle + if bPrimeiroCandle then + begin + if AtivarAnalisePrimeiroCandle then + begin + fMediaVolumePrimeiro := Media(20, Volume); + if fMediaVolumePrimeiro <= 0 then + fMediaVolumePrimeiro := 1; + + bRejeicaoTopoPrimeiro := (fPavioSup > (fCorpo * 1.8)) and (fPavioSup > fPavioInf); + bRejeicaoFundoPrimeiro := (fPavioInf > (fCorpo * 1.8)) and (fPavioInf > fPavioSup); + bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)) and (fCorpo <= (fRange * 0.35)); + bIniciativaAltaPrimeiro := bAlta and (fCorpo >= (fRange * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); + bIniciativaBaixaPrimeiro := bBaixa and (fCorpo >= (fRange * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + bArmadilhaPrimeiro := (bGapAltaPrimeiro and bBaixa and bRejeicaoTopoPrimeiro) + or (bGapBaixaPrimeiro and bAlta and bRejeicaoFundoPrimeiro); + + if bArmadilhaPrimeiro then + PaintBar(cLaranja) + else if bRejeicaoTopoPrimeiro then + PaintBar(cVermelho) + else if bRejeicaoFundoPrimeiro then + PaintBar(cVerde) + else if bIniciativaAltaPrimeiro then + PaintBar(cVerde) + else if bIniciativaBaixaPrimeiro then + PaintBar(cVermelho) + else if bAbsorcaoPrimeiro or bDojiRealValido then + PaintBar(cBranco) + else if bAlta then + PaintBar(cVerde) + else if bBaixa then + PaintBar(cVermelho) + else + PaintBar(cBranco); + end + else + PaintBar(cCinza); + end; + +end; \ No newline at end of file diff --git a/fev_PriceActionVSA_OBV.txt b/fev_PriceActionVSA_OBV.txt new file mode 100644 index 0000000..5285c2d --- /dev/null +++ b/fev_PriceActionVSA_OBV.txt @@ -0,0 +1,120 @@ + { + Estratégia: fev_PriceActionVSA_OBV + Tipo: Execução (Coloração + Trading) + Autor: Wesley + Descrição: Regra de Coloração de Alta Seletividade (Gold Signal). + Combina Price Action (Força), VSA (Volume) e OBV (Fluxo). + + Lógica Visual: + - Candle Neutro: Cinza (Padrão). + - Sinal de Ouro: Amarelo (Entrada). + - Candle Seguinte: Verde (se Compra) ou Vermelho (se Venda), indicando a direção. + } + + Input + PeriodoMedia(20); + FatorVolume(1.0); // Volume deve ser maior que a média (1.0x) + + Var + // Cores + cAmarelo, cVerde, cVermelho, cCinza : Integer; + + // Variáveis de Cálculo + fMedia20 : Float; + fMediaVol : Float; + fCorpo, fRange, fPavioSup, fPavioInf : Float; + vOBV : Float; + + // Booleanos de Condição + bTendenciaAlta, bTendenciaBaixa : Boolean; + bFluxoComprador, bFluxoVendedor : Boolean; + bVolumeOK : Boolean; + bBarraForcaCompra, bBarraForcaVenda : Boolean; + bAnteriorDeAlta, bAnteriorDeBaixa : Boolean; + + // Sinais + bGoldSignalCompra : Boolean; + bGoldSignalVenda : Boolean; + + Begin + // --- DEFINIÇÃO DE CORES --- + cAmarelo := RGB(255, 255, 0); + cVerde := RGB(0, 255, 0); + cVermelho := RGB(255, 0, 0); + cCinza := RGB(105, 105, 105); + + // --- CÁLCULOS TÉCNICOS --- + + // 1. Médias e Volume (VSA) + fMedia20 := MediaExp(PeriodoMedia, Close); + fMediaVol := Media(Quantity, PeriodoMedia); + bVolumeOK := (Quantity > fMediaVol * FatorVolume); + + // 2. Fluxo (OBV) + vOBV := OBV; + bFluxoComprador := (vOBV > vOBV[1]); + bFluxoVendedor := (vOBV < vOBV[1]); + + // 3. Price Action (Anatomia do Candle) + fRange := Range; + fCorpo := Abs(Close - Open); + fPavioSup := High - Max(Close, Open); + fPavioInf := Min(Close, Open) - Low; + + // 4. Contexto de Tendência + bTendenciaAlta := (Close > fMedia20) and (fMedia20 > fMedia20[1]); + bTendenciaBaixa := (Close < fMedia20) and (fMedia20 < fMedia20[1]); + + bAnteriorDeAlta := (Close[1] > Open[1]); + bAnteriorDeBaixa := (Close[1] < Open[1]); + + // 5. Definição de Barra de Força (Corpo > 60% e Pavio a favor pequeno) + // Relaxei levemente para 60% para capturar mais sinais válidos com volume + bBarraForcaCompra := (Close > Open) and (fCorpo >= fRange * 0.60) and (fPavioSup <= fRange * 0.25); + bBarraForcaVenda := (Close < Open) and (fCorpo >= fRange * 0.60) and (fPavioInf <= fRange * 0.25); + + // --- LÓGICA DO GOLD SIGNAL (CONFLUÊNCIA TOTAL) --- + + // Compra: Força + Tendência + Continuidade + Rompimento + Volume + OBV + bGoldSignalCompra := bBarraForcaCompra and bTendenciaAlta and bAnteriorDeAlta and (Close > High[1]) and bVolumeOK and bFluxoComprador; + + // Venda: Força + Tendência + Continuidade + Rompimento + Volume + OBV + bGoldSignalVenda := bBarraForcaVenda and bTendenciaBaixa and bAnteriorDeBaixa and (Close < Low[1]) and bVolumeOK and bFluxoVendedor; + + // --- PINTURA (REGRA DE ESTADO) --- + + // 1. Padrão: Cinza + PaintBar(cCinza); + + // 2. Sinal de Ouro (Prioridade Máxima) + if bGoldSignalCompra or bGoldSignalVenda then + PaintBar(cAmarelo) + + // 3. Candle Seguinte ao Sinal (Direção do Movimento) + // Verifica se o candle ANTERIOR foi Gold Signal + else if (bGoldSignalCompra[1]) then + PaintBar(cVerde) // Marca a direção da compra + else if (bGoldSignalVenda[1]) then + PaintBar(cVermelho) // Marca a direção da venda + ; + + // 4. Regra do Primeiro Candle (Ignorar Abertura) + if (Date <> Date[1]) then + PaintBar(cCinza); + + // --- EXECUÇÃO (ROBÔ) --- + // Compra + if (bGoldSignalCompra) then + begin + if (IsSold) then ClosePosition; + if (Not IsBought) then BuyAtMarket; + end; + + // Venda + if (bGoldSignalVenda) then + begin + if (IsBought) then ClosePosition; + if (Not IsSold) then SellShortAtMarket; + end; + + End; \ No newline at end of file diff --git a/fev_RegraDeDow_Rompimento.txt b/fev_RegraDeDow_Rompimento.txt new file mode 100644 index 0000000..46b7fd4 --- /dev/null +++ b/fev_RegraDeDow_Rompimento.txt @@ -0,0 +1,68 @@ +{ + Indicador: fev_RegraDeDow_Rompimento + Autor: Wesley (Gemini Code Assist) + Descrição: Valida rompimentos baseando-se na Teoria de Dow adaptada para Intraday. + Regra 1: Preço rompe 0.3% além do nível. + Regra 2: Preço fecha 2 candles consecutivos além do nível (Tempo). +} + +input + PeriodoEstrutura(5); + FiltroPercentual(0.3); // 0.3% para Day Trade (Equivalente aos 3% do Diário) + UsarRegraTempo(true); // Se true, aceita rompimento se fechar 2x fora + +var + fTeto, fPiso : float; + bRompimentoAlta, bRompimentoBaixa : boolean; + bRegraPrecoAlta, bRegraPrecoBaixa : boolean; + bRegraTempoAlta, bRegraTempoBaixa : boolean; + cRompimentoAlta, cRompimentoBaixa, cNeutro : integer; + +begin + // --- 1. CONFIGURAÇÃO --- + cRompimentoAlta := RGB(0, 191, 255); // Deep Sky Blue + cRompimentoBaixa := RGB(255, 140, 0); // Dark Orange + cNeutro := RGB(105, 105, 105); + + // --- 2. DEFINIÇÃO DOS NÍVEIS (ESTRUTURA) --- + // O nível a ser rompido é a máxima/mínima dos últimos N candles (excluindo o atual) + fTeto := Highest(High, PeriodoEstrutura)[1]; + fPiso := Lowest(Low, PeriodoEstrutura)[1]; + + // --- 3. REGRA DE PREÇO (0.3%) --- + // O fechamento deve ser X% maior que o teto ou menor que o piso + bRegraPrecoAlta := (Close >= fTeto * (1 + FiltroPercentual/100)); + bRegraPrecoBaixa := (Close <= fPiso * (1 - FiltroPercentual/100)); + + // --- 4. REGRA DE TEMPO (2 CANDLES) --- + // O candle atual E o anterior devem ter fechado fora da estrutura + // Nota: Usamos a estrutura calculada no momento de cada candle + if UsarRegraTempo then + begin + bRegraTempoAlta := (Close > fTeto) and (Close[1] > Highest(High, PeriodoEstrutura)[2]); + bRegraTempoBaixa := (Close < fPiso) and (Close[1] < Lowest(Low, PeriodoEstrutura)[2]); + end + else + begin + bRegraTempoAlta := False; + bRegraTempoBaixa := False; + end; + + // --- 5. CONSOLIDAÇÃO --- + // O rompimento é válido se satisfizer Preço OU Tempo + bRompimentoAlta := bRegraPrecoAlta or bRegraTempoAlta; + bRompimentoBaixa := bRegraPrecoBaixa or bRegraTempoBaixa; + + // --- 6. VISUALIZAÇÃO --- + PaintBar(cNeutro); + + if bRompimentoAlta then + begin + PaintBar(cRompimentoAlta); + end + else if bRompimentoBaixa then + begin + PaintBar(cRompimentoBaixa); + end; + +end; \ No newline at end of file diff --git a/fev_TendenciaLongoPrazo.txt b/fev_TendenciaLongoPrazo.txt new file mode 100644 index 0000000..c0647e9 --- /dev/null +++ b/fev_TendenciaLongoPrazo.txt @@ -0,0 +1,110 @@ +{ + Indicador: fev_TendenciaLongoPrazo + Autor: Wesley (Gemini Code Assist) + Descrição: Identifica as tendências Primária, Secundária e Terciária + baseado no alinhamento de médias (Teoria de Dow/Médias). + Primária = 200 MMA | Secundária = 50 MMA | Terciária = 20 MME +} + +input + P_Primaria(200); + P_Secundaria(50); + P_Terciaria(20); + +var + mPrimaria, mSecundaria, mTerciaria : float; + sPrimaria, sSecundaria, sTerciaria : string; + cPrimaria, cSecundaria, cTerciaria : integer; + +begin + // --- 1. CÁLCULOS --- + // Primária: Longo Prazo (Aritmética - O Rei) + mPrimaria := Media(P_Primaria, Close); + + // Secundária: Médio Prazo (Aritmética - Institucional) + mSecundaria := Media(P_Secundaria, Close); + + // Terciária: Curto Prazo (Exponencial - Fluxo/Mestra) + mTerciaria := MediaExp(P_Terciaria, Close); + + // --- 2. DEFINIÇÃO DE ESTADO (Preço vs Média) --- + + // Primária + if Close > mPrimaria then + begin + sPrimaria := "PRIMÁRIA (Longo): ALTA"; + cPrimaria := RGB(0, 255, 0); // Verde + end + else + begin + sPrimaria := "PRIMÁRIA (Longo): BAIXA"; + cPrimaria := RGB(255, 0, 0); // Vermelho + end; + + // Secundária + if Close > mSecundaria then + begin + sSecundaria := "SECUNDÁRIA (Médio): ALTA"; + cSecundaria := RGB(0, 255, 0); + end + else + begin + sSecundaria := "SECUNDÁRIA (Médio): BAIXA"; + cSecundaria := RGB(255, 0, 0); + end; + + // Terciária + if Close > mTerciaria then + begin + sTerciaria := "TERCIÁRIA (Curto): ALTA"; + cTerciaria := RGB(0, 255, 0); + end + else + begin + sTerciaria := "TERCIÁRIA (Curto): BAIXA"; + cTerciaria := RGB(255, 0, 0); + end; + + // --- 3. PLOTAGEM DAS LINHAS --- + Plot(mTerciaria); + SetPlotColor(1, RGB(255, 0, 255)); // Fuchsia (20) + SetPlotWidth(1, 2); + + Plot2(mSecundaria); + SetPlotColor(2, RGB(0, 255, 255)); // Ciano (50) + SetPlotWidth(2, 2); + + Plot3(mPrimaria); + SetPlotColor(3, RGB(255, 255, 255)); // Branco (200) + SetPlotWidth(3, 3); + + // --- 4. TEXTO INFORMATIVO (Apenas no candle atual) --- + // Plota o texto empilhado acima do preço para leitura rápida + PlotText(sPrimaria, cPrimaria, 8, 0, High * 1.006); + PlotText(sSecundaria, cSecundaria, 8, 0, High * 1.004); + PlotText(sTerciaria, cTerciaria, 8, 0, High * 1.002); + + // --- 5. COLORAÇÃO DOS CANDLES --- + // Hierarquia de Cores: Terciária > Secundária > Primária + + // 1. TENDÊNCIA TERCIÁRIA (MME 20) - O Momento + // Se estiver acima da 20, é Verde (Compra/Tendência Forte) + if (Close > mTerciaria) then + PaintBar(RGB(0, 255, 0)) + + // 2. TENDÊNCIA SECUNDÁRIA (MMA 50) - O Suporte Institucional + // Se perdeu a 20, mas segura na 50, é Ciano (Pullback) + else if (Close > mSecundaria) then + PaintBar(RGB(0, 255, 255)) + + // 3. TENDÊNCIA PRIMÁRIA (MMA 200) - O Clima + // Se perdeu a 50, mas segura na 200, é Branco (Suporte Longo) + else if (Close > mPrimaria) then + PaintBar(RGB(255, 255, 255)) + + // 4. TENDÊNCIA DE BAIXA (Abaixo de Tudo) + // Se perdeu a 200, é Vermelho (Venda/Bear Market) + else + PaintBar(RGB(255, 0, 0)); + +end; \ No newline at end of file diff --git a/fev_TendenciaPivoTesteDeOuro.txt b/fev_TendenciaPivoTesteDeOuro.txt new file mode 100644 index 0000000..15751ac --- /dev/null +++ b/fev_TendenciaPivoTesteDeOuro.txt @@ -0,0 +1,107 @@ +{ + Indicador: fev_TendenciaPivoTesteDeOuro + Autor: Wesley (Gemini Code Assist) + Descrição: Tendência por rompimento de estrutura com filtro MME 9/20. + Sinal dourado após confirmação sequencial do pivô. +} + +input + PeriodoEstrutura(5); + CandlesConfirmacaoDourado(1); + +var + cCinza, cVerde, cVermelho, cDourado : Integer; + fMaxEstrutura, fMinEstrutura : float; + fMME9, fMME20 : float; + iPeriodoTeste, iCandlesConfirmacao : Integer; + bEstruturaAlta, bEstruturaBaixa : Boolean; + bFiltroMediaAlta, bFiltroMediaBaixa : Boolean; + bPivotAltaConfirmado, bPivotBaixaConfirmado : Boolean; + bDouradoCompra, bDouradoVenda : Boolean; + +begin + // Inicialização das Cores + cCinza := RGB(105, 105, 105); // Correção / Estrutura + cVerde := RGB(0, 255, 0); // Rompimento de Alta + cVermelho := RGB(255, 0, 0); // Rompimento de Baixa + cDourado := RGB(255, 215, 0); // Confirmação de pivô + candle a favor + + iPeriodoTeste := PeriodoEstrutura; + iCandlesConfirmacao := CandlesConfirmacaoDourado; + + if (iPeriodoTeste < 3) then + iPeriodoTeste := 3; + + if (iCandlesConfirmacao < 1) then + iCandlesConfirmacao := 1; + if (iCandlesConfirmacao > 3) then + iCandlesConfirmacao := 3; + + // Identifica a Máxima e Mínima da Estrutura anterior (excluindo o candle atual) + fMaxEstrutura := Highest(High[1], iPeriodoTeste); + fMinEstrutura := Lowest(Low[1], iPeriodoTeste); + + // Médias para filtro intraday de tendência + fMME9 := MediaExp(9, Close); + fMME20 := MediaExp(20, Close); + // Habilitação obrigatória para operar pivô: alinhamento MME 9 e 20 + bFiltroMediaAlta := (Close > fMME9) and (fMME9 > fMME20); + bFiltroMediaBaixa := (Close < fMME9) and (fMME9 < fMME20); + + // Estrutura válida (Regra de Ouro): + // Alta -> fechamento acima da máxima dos últimos N candles + // Baixa -> fechamento abaixo da mínima dos últimos N candles + bEstruturaAlta := (Close > fMaxEstrutura); + bEstruturaBaixa := (Close < fMinEstrutura); + + // Coloração Padrão: Cinza (Estamos dentro da estrutura ou correção) + PaintBar(cCinza); + // Modo mais simples: + // Pivot de alta = estrutura de alta + médias 9/20 alinhadas para alta + // Pivot de baixa = estrutura de baixa + médias 9/20 alinhadas para baixa + bPivotAltaConfirmado := bEstruturaAlta and bFiltroMediaAlta; + bPivotBaixaConfirmado := bEstruturaBaixa and bFiltroMediaBaixa; + + // Candle de confirmação do pivô no candle atual + if bPivotAltaConfirmado then + begin + PaintBar(cVerde); + end; + + if bPivotBaixaConfirmado then + begin + PaintBar(cVermelho); + end; + + // Confirmação final do pivô por sequência pós-confirmação: + // Se CandlesConfirmacaoDourado = 1, exige 1 candle após o pivô fechando a favor. + // Se CandlesConfirmacaoDourado >= 2, exige 2 candles após o pivô fechando a favor. + if (iCandlesConfirmacao = 1) then + begin + bDouradoCompra := bPivotAltaConfirmado[1] and (Close > Open) and (Close > Close[1]); + bDouradoVenda := bPivotBaixaConfirmado[1] and (Close < Open) and (Close < Close[1]); + end + else if (iCandlesConfirmacao = 2) then + begin + bDouradoCompra := bPivotAltaConfirmado[2] and (Close[1] > Open[1]) and (Close[1] > Close[2]) and (Close > Open) and (Close > Close[1]); + bDouradoVenda := bPivotBaixaConfirmado[2] and (Close[1] < Open[1]) and (Close[1] < Close[2]) and (Close < Open) and (Close < Close[1]); + end + else + begin + bDouradoCompra := bPivotAltaConfirmado[3] and (Close[2] > Open[2]) and (Close[2] > Close[3]) and (Close[1] > Open[1]) and (Close[1] > Close[2]) and (Close > Open) and (Close > Close[1]); + bDouradoVenda := bPivotBaixaConfirmado[3] and (Close[2] < Open[2]) and (Close[2] < Close[3]) and (Close[1] < Open[1]) and (Close[1] < Close[2]) and (Close < Open) and (Close < Close[1]); + end; + + if (bDouradoCompra or bDouradoVenda) then + begin + PaintBar(cDourado); + end; + + // Nota: O "Sinal mais forte" é o rompimento. + // Enquanto não rompe (Close dentro do range fMinEstrutura e fMaxEstrutura), + // o candle permanece Cinza, indicando acumulação. + + // Garante que o primeiro candle seja visualmente Cinza (Neutro) + if (Date <> Date[1]) then + PaintBar(cCinza); +end; diff --git a/fev_VSAassinaturaInstitucional.txt b/fev_VSAassinaturaInstitucional.txt new file mode 100644 index 0000000..665221b --- /dev/null +++ b/fev_VSAassinaturaInstitucional.txt @@ -0,0 +1,70 @@ +{ + Estratégia: fev_VSAassinaturaInstitucional + Autor: Wesley + Descrição: Regra de Coloração que identifica sinais de VSA (Volume Spread Analysis). + Pinta Shakeouts (sinal de força) e Upthrusts (sinal de fraqueza). +} + +Input + volMultiplier(1.5); // Volume Alto (Sinal Padrão). Padrão: 1.5x a média + volGold(2.0); // Volume Ultra Alto (Sinal Ouro). Padrão: 2.0x a média + volPeriod(20); // Período da média para o volume. Padrão: 20 + +Var + avgVolume : Real; + spread : Real; + closePosition : Real; + corShakeout : Integer; + corUpthrust : Integer; + corCyan : Integer; + corFuchsia : Integer; + corNeutra : Integer; + +begin + // --- DEFINIÇÃO DE CORES --- + corShakeout := RGB(0, 255, 0); // Verde (Sinal de Compra VSA) + corUpthrust := RGB(255, 0, 0); // Vermelho (Sinal de Venda VSA) + corCyan := RGB(0, 255, 0); // Verde (Compra Extrema/Clímax) + corFuchsia := RGB(255, 0, 0); // Vermelho (Venda Extrema/Clímax) + corNeutra := RGB(105, 105, 105); // Cinza (mercado sem sinal) + + // --- CÁLCULOS --- + // 1. Média Móvel Simples do Volume (Quantity é o volume no NTSL) + avgVolume := Media(Quantity, volPeriod); + + // 2. Spread (Range) do Candle + spread := High - Low; + + // 3. Posição do Fechamento (0 = na mínima, 1 = na máxima) + // Proteção contra divisão por zero em candles sem range (dojis) + if spread > 0 then + closePosition := (Close - Low) / spread + else + closePosition := 0.5; // Em um doji, o fechamento está no meio + + // --- PINTURA --- + PaintBar(corNeutra); // Pinta tudo de cinza por padrão + + // Só aplica coloração VSA se NÃO for o primeiro candle do dia + if (Date = Date[1]) then + begin + // 1. Verifica Upthrust (Venda) + if (closePosition < 0.33) then + begin + if (Quantity > avgVolume * volGold) then + PaintBar(corFuchsia) // Prioridade 1: Volume Extremo (> 2.0x) = Fúcsia (Venda) + else if (Quantity > avgVolume * volMultiplier) then + PaintBar(corUpthrust); // Prioridade 2: Volume Alto (> 1.5x) = Vermelho + end; + + // 2. Verifica Shakeout/Rejeição (Compra) + if (closePosition > 0.66) then + begin + if (Quantity > avgVolume * volGold) then + PaintBar(corCyan) // Prioridade 1: Volume Extremo (> 2.0x) = Ciano (Compra) + else if (Quantity > avgVolume * volMultiplier) then + PaintBar(corShakeout); // Prioridade 2: Volume Alto (> 1.5x) = Verde + end; + end; + +end; diff --git a/fev_VWAPreferenciaPreco.txt b/fev_VWAPreferenciaPreco.txt new file mode 100644 index 0000000..c2e55ca --- /dev/null +++ b/fev_VWAPreferenciaPreco.txt @@ -0,0 +1,36 @@ +{ + Estratégia: fev_VWAPreferenciaPreco + Autor: Wesley + Descrição: Regra de Coloração que funciona como um filtro institucional. + Pinta os candles com base na sua posição em relação à VWAP diária. +} + +Var + vVwap : Real; + corCompra : Integer; + corVenda : Integer; + corNeutra : Integer; + +begin + // --- DEFINIÇÃO DE CORES --- + // Cores baseadas no seu arquivo CoresPadroesCandles.txt + corCompra := RGB(0, 255, 0); // Verde: Território de Compra com candle de força + corVenda := RGB(255, 0, 0); // Vermelho: Território de Venda com candle de força + corNeutra := RGB(105, 105, 105); // Cinza: Mercado em pullback ou sem direção clara + + // --- CÁLCULO DO INDICADOR --- + // A função VWAP já é nativa do ProfitChart + vVwap := VWAP(0); + + // --- LÓGICA DE PINTURA --- + // 1. Pinta tudo de cinza por padrão (condição neutra) + PaintBar(corNeutra); + + // 2. CONDIÇÃO DE COMPRA: Preço acima da VWAP e candle positivo (força compradora) + if (Close > vVwap) and (Close > Open) then + PaintBar(corCompra); + + // 3. CONDIÇÃO DE VENDA: Preço abaixo da VWAP e candle negativo (força vendedora) + if (Close < vVwap) and (Close < Open) then + PaintBar(corVenda); +end; \ No newline at end of file diff --git a/fev_VWAPsemanalDiario.txt b/fev_VWAPsemanalDiario.txt new file mode 100644 index 0000000..6fcb471 --- /dev/null +++ b/fev_VWAPsemanalDiario.txt @@ -0,0 +1,41 @@ + { + Estratégia: fev_VWAPsemanalDiario + Autor: Wesley + Descrição: Regra de Coloração focada na confluência da VWAP Diária com a Semanal. + Identifica quando o curto prazo (Diário) está alinhado com o médio prazo (Semanal). + } + + Var + vVwapDiaria : Real; + vVwapSemanal : Real; + corCompra : Integer; + corVenda : Integer; + corNeutra : Integer; + + begin + // --- DEFINIÇÃO DE CORES --- + corCompra := RGB(0, 255, 0); // Verde + corVenda := RGB(255, 0, 0); // Vermelho + corNeutra := RGB(105, 105, 105); // Cinza + + // --- CÁLCULO DAS VWAPS --- + // 1 = Diária, 2 = Semanal, 3 = Mensal + vVwapDiaria := VWAP(1); + vVwapSemanal := VWAP(2); + + // --- PINTURA --- + PaintBar(corNeutra); // Padrão: Zona de Conflito (Preço entre as VWAPs) + + // COMPRA: Preço acima da VWAP Diária E Semanal + Candle Positivo + if (Close > vVwapDiaria) and (Close > vVwapSemanal) and (Close > Open) then + PaintBar(corCompra); + + // VENDA: Preço abaixo da VWAP Diária E Semanal + Candle Negativo + if (Close < vVwapDiaria) and (Close < vVwapSemanal) and (Close < Open) then + PaintBar(corVenda); + + // Garante que o primeiro candle seja visualmente Cinza (Neutro) + if (Date <> Date[1]) then + PaintBar(corNeutra); + + end; diff --git a/fev_direcaoDoDia.txt b/fev_direcaoDoDia.txt new file mode 100644 index 0000000..69f0313 --- /dev/null +++ b/fev_direcaoDoDia.txt @@ -0,0 +1,102 @@ +{ + Indicador: fev_direcaoDoDia + Autor: Wesley (Gemini Code Assist) + Descrição: Unificação do "Porteiro" (VWAP) com a "Tendência" (Médias). + Rank 1 (Institucional) + Rank 3 (Contexto). + Só pinta se houver confluência total. +} + +var + // Variáveis VWAP (Institucional) + vVwapDiaria, vVwapSemanal : float; + bCompraVWAP, bVendaVWAP : boolean; + + // Variáveis Médias (Tendência) + mme9, mme20, mma200 : float; + bCompraMedias, bVendaMedias : boolean; + + // Variáveis Price Action (Primeiro candle) + fCorpoAbertura, fPavioSupAbertura, fPavioInfAbertura : float; + + // Cores + cCompraForte, cVendaForte, cNeutro : integer; + +begin + // --- 1. CONFIGURAÇÃO DE CORES --- + cCompraForte := RGB(0, 255, 0); // Verde Limão + cVendaForte := RGB(255, 0, 0); // Vermelho Vivo + cNeutro := RGB(105, 105, 105); // Cinza (Zona de Risco/Indecisão) + + // --- 2. CÁLCULO INSTITUCIONAL (VWAP) --- + // O "Porteiro" - Rank 1 + vVwapDiaria := VWAP(1); + vVwapSemanal := VWAP(2); + + // Regra: Preço deve estar acima/abaixo de AMBAS as VWAPs + bCompraVWAP := (Close > vVwapDiaria) and (Close > vVwapSemanal); + bVendaVWAP := (Close < vVwapDiaria) and (Close < vVwapSemanal); + + // --- 3. CÁLCULO DE TENDÊNCIA (MÉDIAS) --- + // O "Contexto" - Rank 3 (Simplificado para Direção) + mme9 := MediaExp(9, Close); + mme20 := MediaExp(20, Close); + mma200 := Media(200, Close); + + // Regra: Alinhamento básico de curto prazo a favor do longo + // Compra: Preço > 9 > 20. (A 200 serve como filtro de "Caixote" opcional, aqui usada para validar tendência macro) + bCompraMedias := (Close > mme9) and (mme9 > mme20); + + // Venda: Preço < 9 < 20. + bVendaMedias := (Close < mme9) and (mme9 < mme20); + + // --- 4. LÓGICA DE DECISÃO (CONFLUÊNCIA) --- + + // Default: Neutro + PaintBar(cNeutro); + + // CENÁRIO COMPRADOR + // Institucional autoriza E Tendência confirma + if (bCompraVWAP) and (bCompraMedias) then + begin + PaintBar(cCompraForte); + end; + + // CENÁRIO VENDEDOR + // Institucional autoriza E Tendência confirma + if (bVendaVWAP) and (bVendaMedias) then + begin + PaintBar(cVendaForte); + end; + + // --- 5. PRIMEIRO CANDLE (PRICE ACTION) --- + // Apenas no primeiro candle do dia: rejeição forte prevalece sobre a cor do corpo. + if (Date <> Date[1]) then + begin + fCorpoAbertura := Abs(Close - Open); + + if (Close >= Open) then + begin + fPavioSupAbertura := High - Close; + fPavioInfAbertura := Open - Low; + end + else + begin + fPavioSupAbertura := High - Open; + fPavioInfAbertura := Close - Low; + end; + + // Rejeição vendedora (pavio superior dominante) + if (fPavioSupAbertura >= (fCorpoAbertura * 1.5)) and (fPavioSupAbertura > fPavioInfAbertura) then + PaintBar(cVendaForte) + + // Rejeição compradora (pavio inferior dominante) + else if (fPavioInfAbertura >= (fCorpoAbertura * 1.5)) and (fPavioInfAbertura > fPavioSupAbertura) then + PaintBar(cCompraForte) + + // Sem rejeição clara: segue direção do corpo + else if (Close >= Open) then + PaintBar(cCompraForte) + else + PaintBar(cVendaForte); + end; +end; \ No newline at end of file diff --git a/fev_mediasTrend9_20_50_200.txt b/fev_mediasTrend9_20_50_200.txt new file mode 100644 index 0000000..627cd10 --- /dev/null +++ b/fev_mediasTrend9_20_50_200.txt @@ -0,0 +1,178 @@ +{ + Indicador: fev_mediasTrend9_20_50_200 + Autor: Wesley (Gemini Code Assist) + Descrição: Cria uma "Trend Cloud" (Nuvem de Tendência) para gráfico de linha, baseada no alinhamento das médias 9, 20, 50 e 200. +} + +input + // Períodos das Médias + PeriodoMME9(9); + PeriodoMME20(20); + PeriodoMMA50(50); + PeriodoMMA200(200); + + // Distâncias mínimas em PONTOS para ativar a zona neutra (preto) + DistMinCruzamento9_20(50.0); // Distância para o par 9/20 + DistMinCruzamento20_50(50.0); // Distância para o par 20/50 + DistMinCruzamento50_200(100.0); // Distância para o par 50/200 + + // Chaves para Ligar/Desligar as Regras de Coloração + bUsarZonaNeutra(true); // Liga/Desliga a cor Preta (médias próximas) + bUsarSuperTendencia(true); // Liga/Desliga as cores Ciano/Fucsia (todas alinhadas) + bUsarTendenciaNormal(true); // Liga/Desliga as cores Verde/Vermelho (cruzamento 9/20) + + // Filtro de volatilidade por ATR + bUsarFiltroATR(true); + PeriodoATR(14); + PeriodoMediaATR(50); + FatorMinATR(0.90); + FatorMaxATR(2.50); + + // Configurações para Backtest + bAtivarBacktest(true); // Liga/Desliga o modo de backtest + fCapitalInicial(10000.0); // Capital inicial para o backtest + +var + // Cores + cCompra, cCompraForte, cVenda, cVendaForte, cNeutro, cLateral, cCorAtual, cFundo : Integer; + + // Médias + fMME9, fMME20, fMMA50, fMMA200 : Float; + + // Distâncias + fDist9_20, fDist20_50, fDist50_200 : Float; + fATRAtual, fATRMedio : Float; + bATRRegimeOK : Boolean; + + // Variáveis para Backtest + fCapitalAtual, fPrecoEntrada : Float; + bPosicaoAberta : Boolean; + iDirecao : Integer; // 1 para compra, -1 para venda + +begin + // 1. Inicialização para Backtest + if bAtivarBacktest then + begin + fCapitalAtual := fCapitalInicial; + bPosicaoAberta := false; + fPrecoEntrada := 0.0; + iDirecao := 0; + end; + + // 2. Definição de Cores + cCompra := RGB(0, 255, 0); // Verde + cCompraForte := RGB(0, 255, 255); // Ciano + cVenda := RGB(255, 0, 0); // Vermelho + cVendaForte := RGB(255, 0, 255); // Fucsia + cNeutro := RGB(0, 0, 0); // Preto + cLateral := RGB(128, 128, 128); // Cinza; + + // 3. Cálculo das Médias + fMME9 := MediaExp(PeriodoMME9, Close); + fMME20 := MediaExp(PeriodoMME20, Close); + fMMA50 := Media(PeriodoMMA50, Close); + fMMA200 := Media(PeriodoMMA200, Close); + + // 4. Cálculo das Distâncias em Pontos + fDist9_20 := Abs(fMME9 - fMME20); + fDist20_50 := Abs(fMME20 - fMMA50); + fDist50_200 := Abs(fMMA50 - fMMA200); + + // 4.1 Regime de Volatilidade (ATR) + fATRAtual := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoMediaATR, fATRAtual); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bATRRegimeOK := (not bUsarFiltroATR) + or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); + + // 5. Lógica de Coloração (do mais restrito para o mais geral) + + // Prioridade 0: Fora de regime ATR => neutro + if (not bATRRegimeOK) then + begin + cCorAtual := cNeutro; + end; + // Prioridade 1: Zona Neutra (médias muito próximas) + if bATRRegimeOK and bUsarZonaNeutra and ((fDist9_20 < DistMinCruzamento9_20) or + (fDist20_50 < DistMinCruzamento20_50) or + (fDist50_200 < DistMinCruzamento50_200)) then + begin + cCorAtual := cNeutro; + end; + // Prioridade 2: Super Tendência (todas as médias alinhadas) + if bATRRegimeOK and bUsarSuperTendencia and (fMME9 > fMME20) and (fMME20 > fMMA50) and (fMMA50 > fMMA200) then + begin + cCorAtual := cCompraForte; // Compra Forte (Ciano) + end; + if bATRRegimeOK and bUsarSuperTendencia and (fMME9 < fMME20) and (fMME20 < fMMA50) and (fMMA50 < fMMA200) then + begin + cCorAtual := cVendaForte; // Venda Forte (Fucsia) + end; + // Prioridade 3: Tendência Normal (baseada no cruzamento 9/20) + if bATRRegimeOK and bUsarTendenciaNormal and (fMME9 > fMME20) then + begin + cCorAtual := cCompra; // Compra (Verde) + end; + if bATRRegimeOK and bUsarTendenciaNormal and (fMME9 < fMME20) then + begin + cCorAtual := cVenda; // Venda (Vermelho) + end; + // Caso Padrão: Se não houver tendência clara + if not (bUsarZonaNeutra or bUsarSuperTendencia) then + begin + cCorAtual := cLateral; + end; + + // 6. Definição da Cor de Fundo com Base na Tendência Atual + if cCorAtual = cCompra then + cFundo := RGB(200, 255, 200); // Fundo Verde Claro + else if cCorAtual = cCompraForte then + cFundo := RGB(200, 255, 255); // Fundo Ciano Claro + else if cCorAtual = cVenda then + cFundo := RGB(255, 200, 200); // Fundo Vermelho Claro + else if cCorAtual = cVendaForte then + cFundo := RGB(255, 200, 255); // Fundo Fucsia Claro + else if cCorAtual = cNeutro then + cFundo := RGB(200, 200, 200); // Fundo Cinza Claro + else + cFundo := RGB(240, 240, 240); // Fundo Padrão; + + // 7. Lógica de Backtest + if bAtivarBacktest then + begin + if not bPosicaoAberta and ((cCorAtual = cCompra) or (cCorAtual = cCompraForte)) then + begin + // Abrir posição de compra + bPosicaoAberta := true; + fPrecoEntrada := Close; + iDirecao := 1; + end; + if not bPosicaoAberta and ((cCorAtual = cVenda) or (cCorAtual = cVendaForte)) then + begin + // Abrir posição de venda + bPosicaoAberta := true; + fPrecoEntrada := Close; + iDirecao := -1; + end; + if bPosicaoAberta and ((iDirecao = 1 and ((cCorAtual = cVenda) or (cCorAtual = cVendaForte))) or + (iDirecao = -1 and ((cCorAtual = cCompra) or (cCorAtual = cCompraForte)))) then + begin + // Fechar posição + if iDirecao = 1 then + fCapitalAtual := fCapitalAtual + (Close - fPrecoEntrada); + else + fCapitalAtual := fCapitalAtual + (fPrecoEntrada - Close); + + bPosicaoAberta := false; + fPrecoEntrada := 0.0; + iDirecao := 0; + end; + end; + + // 8. Plotagem do Gráfico de Linha com a Cor Definida + Plot(Close); + SetPlotColor(1, cCorAtual); + SetPlotBackgroundColor(cFundo); +end; diff --git a/fev_panorama920.txt b/fev_panorama920.txt new file mode 100644 index 0000000..65ed9fe --- /dev/null +++ b/fev_panorama920.txt @@ -0,0 +1,107 @@ +{ + Indicador: fev_panorama920 + Autor: Wesley (Gemini Code Assist) + Descrição: Panorama operacional com MME 9 e MME 20 para day trade. + Habilita compra, venda ou lateralização com filtros de validação. +} + +input + PeriodoMME9(9); + PeriodoMME20(20); + PeriodoEstrutura(5); + MinInclinacao20Perc(0.02); + MinSeparacaoMMEPerc(0.02); + MaxDistanciaPreco20Perc(1.20); + IgnorarPrimeirosCandles(3); + UsarFiltroEstrutura(false); + UsarFiltroDistancia(false); + UsarFiltroAbertura(true); + +var + cCompra, cVenda, cLateral : Integer; + fMME9, fMME20, fMME20_1 : Float; + fDistanciaPreco20Perc, fInclinacao20Perc, fSeparacaoMMEPerc : Float; + fMaxEstrutura, fMinEstrutura : Float; + iCandlesDia, iPeriodoEstrutura : Integer; + bEstruturaAlta, bEstruturaBaixa : Boolean; + bInclinacaoAltaOK, bInclinacaoBaixaOK : Boolean; + bSeparacaoOK, bDistanciaOK, bAberturaOK : Boolean; + bCompraBase, bVendaBase : Boolean; + bCompraHabilitada, bVendaHabilitada : Boolean; + +begin + // Cores do panorama 9/20 + cCompra := RGB(0, 255, 0); // Verde: compra habilitada + cVenda := RGB(255, 0, 0); // Vermelho: venda habilitada + cLateral := RGB(105, 105, 105); // Cinza: lateralização / indefinição + + // Médias + fMME9 := MediaExp(PeriodoMME9, Close); + fMME20 := MediaExp(PeriodoMME20, Close); + fMME20_1 := fMME20[1]; + + iPeriodoEstrutura := PeriodoEstrutura; + if (iPeriodoEstrutura < 3) then + iPeriodoEstrutura := 3; + + // Contador de candles do dia (filtro de abertura) + if (Date <> Date[1]) then + iCandlesDia := 1 + else + iCandlesDia := iCandlesDia + 1; + + // Métricas de qualidade dos sinais + fDistanciaPreco20Perc := (Abs(Close - fMME20) / fMME20) * 100; + fInclinacao20Perc := (Abs(fMME20 - fMME20_1) / fMME20) * 100; + fSeparacaoMMEPerc := (Abs(fMME9 - fMME20) / fMME20) * 100; + + // Estrutura (rompimento/pivô simplificado) + fMaxEstrutura := Highest(High[1], iPeriodoEstrutura); + fMinEstrutura := Lowest(Low[1], iPeriodoEstrutura); + bEstruturaAlta := (Close > fMaxEstrutura); + bEstruturaBaixa := (Close < fMinEstrutura); + + // Filtros para evitar sinais ruins + bInclinacaoAltaOK := (fMME20 > fMME20_1) and (fInclinacao20Perc >= MinInclinacao20Perc); + bInclinacaoBaixaOK := (fMME20 < fMME20_1) and (fInclinacao20Perc >= MinInclinacao20Perc); + bSeparacaoOK := (fSeparacaoMMEPerc >= MinSeparacaoMMEPerc); + bDistanciaOK := (fDistanciaPreco20Perc <= MaxDistanciaPreco20Perc); + bAberturaOK := (iCandlesDia > IgnorarPrimeirosCandles); + + // Regra base de compra (confluência 9/20) + // 1) 9 acima da 20 + // 2) 20 inclinada para cima com força mínima + // 3) preço acima das duas + bCompraBase := (fMME9 > fMME20) and bInclinacaoAltaOK and (Close > fMME9) and (Close > fMME20); + + // Regra base de venda (confluência 9/20) + // 1) 9 abaixo da 20 + // 2) 20 inclinada para baixo com força mínima + // 3) preço abaixo das duas + bVendaBase := (fMME9 < fMME20) and bInclinacaoBaixaOK and (Close < fMME9) and (Close < fMME20); + + // Habilitação final com filtros opcionais para não "matar" os sinais + bCompraHabilitada := bCompraBase and bSeparacaoOK + and ((not UsarFiltroEstrutura) or bEstruturaAlta) + and ((not UsarFiltroDistancia) or bDistanciaOK) + and ((not UsarFiltroAbertura) or bAberturaOK); + + bVendaHabilitada := bVendaBase and bSeparacaoOK + and ((not UsarFiltroEstrutura) or bEstruturaBaixa) + and ((not UsarFiltroDistancia) or bDistanciaOK) + and ((not UsarFiltroAbertura) or bAberturaOK); + + // Padrão: lateral + PaintBar(cLateral); + + // Habilitação de compra/venda + if bCompraHabilitada then + PaintBar(cCompra); + + if bVendaHabilitada then + PaintBar(cVenda); + + // Primeiro candle do dia fica neutro + if (Date <> Date[1]) then + PaintBar(cLateral); +end; \ No newline at end of file diff --git a/fev_panoramaMedias9_20_50_200.txt b/fev_panoramaMedias9_20_50_200.txt new file mode 100644 index 0000000..fd19ef3 --- /dev/null +++ b/fev_panoramaMedias9_20_50_200.txt @@ -0,0 +1,342 @@ +{ + Indicador: fev_panoramaMedias9_20_50_200 + Autor: Wesley (Gemini Code Assist) + Descrição: Panorama com médias 9/20/50/200 e decisão por peso. + Permite ligar/desligar cada média; sem médias ativas fica neutro (cinza). +} + +input + AtivarPanorama(true); + AtivarAnalisePrimeiroCandle(true); + FatorVolumePrimeiroCandle(1.5); + CorpoMinPrimeiroCandle(0.60); + PeriodoMME9(9); + PeriodoMME20(20); + PeriodoMMA50(50); + PeriodoMMA200(200); + UsarMME9(true); + UsarMME20(true); + UsarMMA50(true); + UsarMMA200(false); + AtivarFaixaSeguranca(true); + HoraInicioFaixa1(855); + HoraFimFaixa1(915); + HoraInicioFaixa2(920); + HoraFimFaixa2(950); + PesoMME9(1.5); + PesoMME20(3.5); + PesoMMA50(4.0); + PesoMMA200(1.0); + PercentualMinConfluencia(72.0); + UsarProtecaoErros(true); + MinInclinacaoMME20Perc(0.03); + MinInclinacaoMMA50Perc(0.015); + MinInclinacaoMMA200Perc(0.005); + MinSeparacao9_20Perc(0.03); + MinSeparacao50_200Perc(0.02); + MinDist20_50Perc(0.08); + DistMinCruzamento9_20(25.0); // Distância mínima em pontos entre MME9 e MME20 para habilitar sinal + MaxDist20_50Perc(0.45); + MaxDistanciaMME20Perc(0.55); + UsarFiltroATR(true); + PeriodoATR(14); + PeriodoMediaATR(50); + FatorMinATR(0.90); + FatorMaxATR(2.50); + ExigirAlinhamentoMMA200(false); + +var + cCompra, cVenda, cLateral, cSeguranca, cBranco : Integer; + fMME9, fMME20, fMMA50, fMMA200 : Float; + fMME20_1, fMMA50_1, fMMA200_1 : Float; + fInclinacaoMME20Perc, fInclinacaoMMA50Perc, fInclinacaoMMA200Perc : Float; + fSeparacao9_20Perc, fSeparacao50_200Perc, fDistanciaMME20Perc, fDist20_50Perc : Float; + fDistancia9_20Pontos : Float; + fATRAtual, fATRMedio : Float; + fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : Float; + fPesoAlta, fPesoBaixa, fPesoTotal, fPesoMinimo : Float; + iDataAnterior, iHoraAtual, iHoraHHMM : Integer; + bAlta9, bBaixa9 : Boolean; + bAlta20, bBaixa20 : Boolean; + bAlta50, bBaixa50 : Boolean; + bAlta200, bBaixa200 : Boolean; + bInclinacaoAltaOK, bInclinacaoBaixaOK : Boolean; + bSeparacaoOK, bDistanciaOK : Boolean; + bDist20_50OK : Boolean; + bATRRegimeOK : Boolean; + bRegime200AltaOK, bRegime200BaixaOK : Boolean; + bMedias9_20ProximasCruzar : Boolean; + bFaixa1Ativa, bFaixa2Ativa : Boolean; + bDentroFaixa1, bDentroFaixa2 : Boolean; + bFaixaSeguranca : Boolean; + bPrimeiroCandleDia : Boolean; + bPrimeiroAlta, bPrimeiroBaixa, bDojiPrimeiro, bAbsorcaoPrimeiro : Boolean; + bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : Boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : Boolean; + bCompraHabilitada, bVendaHabilitada : Boolean; + +begin + // Cores + cCompra := RGB(0, 255, 0); // Verde + cVenda := RGB(255, 0, 0); // Vermelho + cLateral := RGB(105, 105, 105); // Cinza + cSeguranca := RGB(0, 0, 0); // Preto + cBranco := RGB(255, 255, 255); // Branco + + // Estado padrão + PaintBar(cLateral); + + // Pré-cálculo seguro para evitar acesso posicional dentro de if + iDataAnterior := Date[1]; + bPrimeiroCandleDia := (Date <> iDataAnterior); + iHoraAtual := Time; + if (iHoraAtual > 2359) then + iHoraHHMM := iHoraAtual / 100 + else + iHoraHHMM := iHoraAtual; + + // Faixas de segurança parametrizáveis (se início/fim = 0, a faixa é ignorada) + bFaixa1Ativa := (HoraInicioFaixa1 > 0) and (HoraFimFaixa1 > 0); + bFaixa2Ativa := (HoraInicioFaixa2 > 0) and (HoraFimFaixa2 > 0); + + bDentroFaixa1 := bFaixa1Ativa and (iHoraHHMM >= HoraInicioFaixa1) and (iHoraHHMM <= HoraFimFaixa1); + bDentroFaixa2 := bFaixa2Ativa and (iHoraHHMM >= HoraInicioFaixa2) and (iHoraHHMM <= HoraFimFaixa2); + + bFaixaSeguranca := AtivarFaixaSeguranca and (bDentroFaixa1 or bDentroFaixa2); + + // Chave global desligada: tudo cinza + if (not AtivarPanorama) then + begin + if bPrimeiroCandleDia then + PaintBar(cLateral); + end + else + begin + // Cálculo das médias + fMME9 := MediaExp(PeriodoMME9, Close); + fMME20 := MediaExp(PeriodoMME20, Close); + fMMA50 := Media(PeriodoMMA50, Close); + fMMA200 := Media(PeriodoMMA200, Close); + fMME20_1 := fMME20[1]; + fMMA50_1 := fMMA50[1]; + fMMA200_1 := fMMA200[1]; + + // Métricas para travas anti-erro + if (fMME20 > 0) then + fInclinacaoMME20Perc := (Abs(fMME20 - fMME20_1) / fMME20) * 100 + else + fInclinacaoMME20Perc := 0; + + if (fMMA50 > 0) then + fInclinacaoMMA50Perc := (Abs(fMMA50 - fMMA50_1) / fMMA50) * 100 + else + fInclinacaoMMA50Perc := 0; + + if (fMMA200 > 0) then + fInclinacaoMMA200Perc := (Abs(fMMA200 - fMMA200_1) / fMMA200) * 100 + else + fInclinacaoMMA200Perc := 0; + + if (fMME20 > 0) then + fSeparacao9_20Perc := (Abs(fMME9 - fMME20) / fMME20) * 100 + else + fSeparacao9_20Perc := 0; + + if (fMMA200 > 0) then + fSeparacao50_200Perc := (Abs(fMMA50 - fMMA200) / fMMA200) * 100 + else + fSeparacao50_200Perc := 0; + + if (fMME20 > 0) then + fDistanciaMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 + else + fDistanciaMME20Perc := 999; + + if (fMME20 > 0) then + fDist20_50Perc := (Abs(fMME20 - fMMA50) / fMME20) * 100 + else + fDist20_50Perc := 0; + + // Regime de volatilidade (ATR) + fATRAtual := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoMediaATR, fATRAtual); + if (fATRMedio <= 0) then + fATRMedio := 0.01; + + bATRRegimeOK := (not UsarFiltroATR) + or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); + + // Distância em pontos entre MME9 e MME20 (para detectar proximidade de cruzamento) + fDistancia9_20Pontos := Abs(fMME9 - fMME20); + bMedias9_20ProximasCruzar := (fDistancia9_20Pontos < DistMinCruzamento9_20); + + // Sinais individuais por média + bAlta9 := (Close > fMME9); + bBaixa9 := (Close < fMME9); + + bAlta20 := (Close > fMME20) and (fMME20 > fMME20_1); + bBaixa20 := (Close < fMME20) and (fMME20 < fMME20_1); + + bAlta50 := (Close > fMMA50) and (fMMA50 > fMMA50_1); + bBaixa50 := (Close < fMMA50) and (fMMA50 < fMMA50_1); + + bAlta200 := (Close > fMMA200) and (fMMA200 > fMMA200_1); + bBaixa200 := (Close < fMMA200) and (fMMA200 < fMMA200_1); + + // Travas para evitar erros comuns de operação + bInclinacaoAltaOK := ((not UsarMME20) or ((fMME20 > fMME20_1) and (fInclinacaoMME20Perc >= MinInclinacaoMME20Perc))) + and ((not UsarMMA50) or ((fMMA50 > fMMA50_1) and (fInclinacaoMMA50Perc >= MinInclinacaoMMA50Perc))) + and ((not UsarMMA200) or ((fMMA200 > fMMA200_1) and (fInclinacaoMMA200Perc >= MinInclinacaoMMA200Perc))); + + bInclinacaoBaixaOK := ((not UsarMME20) or ((fMME20 < fMME20_1) and (fInclinacaoMME20Perc >= MinInclinacaoMME20Perc))) + and ((not UsarMMA50) or ((fMMA50 < fMMA50_1) and (fInclinacaoMMA50Perc >= MinInclinacaoMMA50Perc))) + and ((not UsarMMA200) or ((fMMA200 < fMMA200_1) and (fInclinacaoMMA200Perc >= MinInclinacaoMMA200Perc))); + + bSeparacaoOK := ((not (UsarMME9 and UsarMME20)) or (fSeparacao9_20Perc >= MinSeparacao9_20Perc)) + and ((not (UsarMMA50 and UsarMMA200)) or (fSeparacao50_200Perc >= MinSeparacao50_200Perc)); + + bDistanciaOK := (not UsarMME20) or (fDistanciaMME20Perc <= MaxDistanciaMME20Perc); + + bDist20_50OK := (not (UsarMME20 and UsarMMA50)) + or ((fDist20_50Perc >= MinDist20_50Perc) and (fDist20_50Perc <= MaxDist20_50Perc)); + + bRegime200AltaOK := (not ExigirAlinhamentoMMA200) or (not UsarMMA200) or ((Close > fMMA200) and (fMMA200 > fMMA200_1)); + bRegime200BaixaOK := (not ExigirAlinhamentoMMA200) or (not UsarMMA200) or ((Close < fMMA200) and (fMMA200 < fMMA200_1)); + + // Acumuladores de peso + fPesoAlta := 0; + fPesoBaixa := 0; + fPesoTotal := 0; + + if UsarMME9 then + begin + fPesoTotal := fPesoTotal + PesoMME9; + if bAlta9 then + fPesoAlta := fPesoAlta + PesoMME9; + if bBaixa9 then + fPesoBaixa := fPesoBaixa + PesoMME9; + end; + + if UsarMME20 then + begin + fPesoTotal := fPesoTotal + PesoMME20; + if bAlta20 then + fPesoAlta := fPesoAlta + PesoMME20; + if bBaixa20 then + fPesoBaixa := fPesoBaixa + PesoMME20; + end; + + if UsarMMA50 then + begin + fPesoTotal := fPesoTotal + PesoMMA50; + if bAlta50 then + fPesoAlta := fPesoAlta + PesoMMA50; + if bBaixa50 then + fPesoBaixa := fPesoBaixa + PesoMMA50; + end; + + if UsarMMA200 then + begin + fPesoTotal := fPesoTotal + PesoMMA200; + if bAlta200 then + fPesoAlta := fPesoAlta + PesoMMA200; + if bBaixa200 then + fPesoBaixa := fPesoBaixa + PesoMMA200; + end; + + // Sem médias ativas => cinza + if (fPesoTotal <= 0) then + begin + PaintBar(cLateral); + end + else + begin + fPesoMinimo := fPesoTotal * (PercentualMinConfluencia / 100); + + bCompraHabilitada := (fPesoAlta >= fPesoMinimo) and (fPesoAlta > fPesoBaixa); + bVendaHabilitada := (fPesoBaixa >= fPesoMinimo) and (fPesoBaixa > fPesoAlta); + + if UsarProtecaoErros then + begin + bCompraHabilitada := bCompraHabilitada and bInclinacaoAltaOK and bSeparacaoOK and bDistanciaOK and bDist20_50OK and bRegime200AltaOK and bATRRegimeOK; + bVendaHabilitada := bVendaHabilitada and bInclinacaoBaixaOK and bSeparacaoOK and bDistanciaOK and bDist20_50OK and bRegime200BaixaOK and bATRRegimeOK; + end; + + // Se médias 9/20 estiverem próximas de cruzar (< 50 pts), pinta preto + if bMedias9_20ProximasCruzar then + PaintBar(cSeguranca) + else if bCompraHabilitada then + PaintBar(cCompra) + else if bVendaHabilitada then + PaintBar(cVenda) + else + PaintBar(cLateral); + end; + + // Primeiro candle do dia neutro (apenas se análise específica estiver desligada) + if bPrimeiroCandleDia and (not AtivarAnalisePrimeiroCandle) then + PaintBar(cLateral); + end; + + // Análise dedicada do primeiro candle (prioridade sobre o panorama) + if bPrimeiroCandleDia and AtivarAnalisePrimeiroCandle then + begin + fRangePrimeiro := High - Low; + if fRangePrimeiro <= 0 then + fRangePrimeiro := 0.01; + + fCorpoPrimeiro := Abs(Close - Open); + fMediaVolumePrimeiro := Media(20, Volume); + if fMediaVolumePrimeiro <= 0 then + fMediaVolumePrimeiro := 1; + + bPrimeiroAlta := (Close > Open); + bPrimeiroBaixa := (Close < Open); + bDojiPrimeiro := (fCorpoPrimeiro <= (fRangePrimeiro * 0.10)); + + if (Close >= Open) then + begin + fPavioSupPrimeiro := High - Close; + fPavioInfPrimeiro := Open - Low; + end + else + begin + fPavioSupPrimeiro := High - Open; + fPavioInfPrimeiro := Close - Low; + end; + + bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioSupPrimeiro > fPavioInfPrimeiro); + bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioInfPrimeiro > fPavioSupPrimeiro); + bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); + bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); + bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) + or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); + + if bArmadilhaPrimeiro then + PaintBar(cSeguranca) + else if bRejeicaoTopoPrimeiro then + PaintBar(cVenda) + else if bRejeicaoFundoPrimeiro then + PaintBar(cCompra) + else if bIniciativaAltaPrimeiro then + PaintBar(cCompra) + else if bIniciativaBaixaPrimeiro then + PaintBar(cVenda) + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(cBranco) + else if bPrimeiroAlta then + PaintBar(cCompra) + else if bPrimeiroBaixa then + PaintBar(cVenda) + else + PaintBar(cBranco); + end; + + // Faixa de segurança tem prioridade máxima (sobrescreve qualquer sinal) + if bFaixaSeguranca then + PaintBar(cSeguranca); +end; \ No newline at end of file diff --git a/fev_priceActionPrimeiroCandle.txt b/fev_priceActionPrimeiroCandle.txt new file mode 100644 index 0000000..d5f710b --- /dev/null +++ b/fev_priceActionPrimeiroCandle.txt @@ -0,0 +1,136 @@ +{ + Indicador: fev_priceActionPrimeiroCandle + Objetivo: Analisar exclusivamente o primeiro candle do dia. + Regra visual: Apenas o primeiro candle recebe classificação; todo o restante fica cinza. +} + +input + pCorpoForca(0.70); // Corpo mínimo (em % do range) para considerar barra de força + pFatorVolumeClimatico(2.0); // Multiplicador de volume vs candle anterior + pFatorRejeicao(1.8); // Relação pavio/corpo para detectar rejeição + pPeriodoReferencia(20); // Janela para médias de volume e range + pFatorVolumeRelativo(1.5); // Volume atual vs média de volume + pFatorGapGrande(0.8); // Gap grande em múltiplos do range médio + pFatorExpansaoRange(1.3); // Expansão de range vs média + pFechamentoExtremo(0.75); // Fechamento na extremidade do candle + +var + // Cores + cCinza, cVerde, cVermelho, cCiano, cFucsia, cAzulRoyal, cMarrom, cBranco, cLaranja : Integer; + + // Estado + bPrimeiroCandle, bAlta, bBaixa : boolean; + bForca, bVolumeClimatico, bRejeicaoTopo, bRejeicaoFundo : boolean; + bGapAlta, bGapBaixa, bGapGrande : boolean; + bFechouNaMax, bFechouNaMin, bExpansaoRange, bAbsorcao : boolean; + bArmadilhaAlta, bArmadilhaBaixa : boolean; + + // Métricas do candle + fRange, fCorpo, fPavioSup, fPavioInf, fRazaoCorpo : float; + fGap, fVolMedio, fRangeMedio, fVolumeRelativo : float; + fClosePosicao : float; + i : Integer; + +begin + // 1) Paleta + cCinza := RGB(105, 105, 105); // Todo o resto do dia + cVerde := RGB(0, 255, 0); // Primeiro candle de alta (normal) + cVermelho := RGB(255, 0, 0); // Primeiro candle de baixa (normal) + cCiano := RGB(0, 255, 255); // Iniciativa compradora (força + volume) + cFucsia := RGB(255, 0, 255); // Iniciativa vendedora (força + volume) + cAzulRoyal := RGB(65, 105, 225); // Rejeição de topo + cMarrom := RGB(165, 42, 42); // Rejeição de fundo + cBranco := RGB(255, 255, 255); // Absorção/indefinição/doji + cLaranja := RGB(255, 140, 0); // Armadilha de abertura + + // 2) Default: tudo cinza + PaintBar(cCinza); + + // 3) Detecta o primeiro candle do dia + bPrimeiroCandle := (Date <> Date[1]); + + // 4) Só analisa o primeiro candle + if bPrimeiroCandle then + begin + // 4.1) Referências de contexto + fVolMedio := 0; + fRangeMedio := 0; + for i := 1 to pPeriodoReferencia do + begin + fVolMedio := fVolMedio + Volume[i]; + fRangeMedio := fRangeMedio + (High[i] - Low[i]); + end; + + if pPeriodoReferencia > 0 then + begin + fVolMedio := fVolMedio / pPeriodoReferencia; + fRangeMedio := fRangeMedio / pPeriodoReferencia; + end; + + if fVolMedio <= 0 then fVolMedio := 1; + if fRangeMedio <= 0 then fRangeMedio := 0.01; + + fGap := Open - Close[1]; + + fRange := High - Low; + if fRange <= 0 then fRange := 0.01; + + fCorpo := Abs(Close - Open); + fRazaoCorpo := fCorpo / fRange; + fClosePosicao := (Close - Low) / fRange; + fVolumeRelativo := Volume / fVolMedio; + + bAlta := (Close > Open); + bBaixa := (Close < Open); + bGapAlta := (Open > Close[1]); + bGapBaixa := (Open < Close[1]); + bGapGrande := (Abs(fGap) >= (fRangeMedio * pFatorGapGrande)); + + bFechouNaMax := (fClosePosicao >= pFechamentoExtremo); + bFechouNaMin := (fClosePosicao <= (1 - pFechamentoExtremo)); + bExpansaoRange := (fRange >= (fRangeMedio * pFatorExpansaoRange)); + + if (Close >= Open) then + begin + fPavioSup := High - Close; + fPavioInf := Open - Low; + end + else + begin + fPavioSup := High - Open; + fPavioInf := Close - Low; + end; + + bForca := (fRazaoCorpo >= pCorpoForca) and ((bAlta and bFechouNaMax) or (bBaixa and bFechouNaMin)); + bVolumeClimatico := (Volume > (Volume[1] * pFatorVolumeClimatico)) or (fVolumeRelativo >= pFatorVolumeRelativo); + bRejeicaoTopo := (fPavioSup > (fCorpo * pFatorRejeicao)) and (fPavioSup > fPavioInf); + bRejeicaoFundo := (fPavioInf > (fCorpo * pFatorRejeicao)) and (fPavioInf > fPavioSup); + + // Armadilha: gap forte + fechamento contra + rejeição + bArmadilhaAlta := bGapAlta and bGapGrande and bBaixa and bRejeicaoTopo; + bArmadilhaBaixa := bGapBaixa and bGapGrande and bAlta and bRejeicaoFundo; + + // Absorção: muito volume e pouco resultado direcional + bAbsorcao := (fVolumeRelativo >= pFatorVolumeRelativo) and (fRazaoCorpo <= 0.35); + + // 5) Prioridade de classificação + if bArmadilhaAlta or bArmadilhaBaixa then + PaintBar(cLaranja) + else if bRejeicaoTopo then + PaintBar(cAzulRoyal) + else if bRejeicaoFundo then + PaintBar(cMarrom) + else if bForca and bVolumeClimatico and bExpansaoRange and bAlta then + PaintBar(cCiano) + else if bForca and bVolumeClimatico and bExpansaoRange and bBaixa then + PaintBar(cFucsia) + else if bAbsorcao then + PaintBar(cBranco) + else if bAlta then + PaintBar(cVerde) + else if bBaixa then + PaintBar(cVermelho) + else + PaintBar(cBranco); + end; +end; \ No newline at end of file diff --git a/gerenciamento_risco.md b/gerenciamento_risco.md new file mode 100644 index 0000000..508c26a --- /dev/null +++ b/gerenciamento_risco.md @@ -0,0 +1,58 @@ +# Gerenciamento de Risco para Day Trade + +Com um capital de R$10.000, é essencial adotar um gerenciamento de risco eficiente para proteger o patrimônio e maximizar as oportunidades no mercado. Abaixo está um plano detalhado: + +## Regras de Gerenciamento de Risco + +1. **Risco por Operação:** + - Recomenda-se arriscar no máximo **1% a 2%** do capital total por operação. + - Com R$10.000, o risco por operação deve ser de **R$100 a R$200**. + +2. **Stop Loss:** + - Defina um stop loss claro para cada operação, baseado em análise técnica (suportes, resistências, volatilidade). + - Exemplo: Se o stop loss for de 200 pontos no mini índice, o valor financeiro será de R$40 por contrato (considerando R$0,20 por ponto). + +3. **Alavancagem e Contratos:** + - O mini índice (WIN) exige uma margem de garantia por contrato, que varia entre **R$25 e R$100** dependendo da corretora. + - Com R$10.000, é possível operar até **100 contratos** considerando a margem mínima, mas isso é extremamente arriscado. + - Para um gerenciamento de risco eficiente, limite-se a operar **2 a 5 contratos**, dependendo do stop loss e do risco por operação. + +4. **Relação Risco/Retorno:** + - Busque operações com uma relação risco/retorno de pelo menos **1:2** (exemplo: arriscar R$100 para ganhar R$200). + +## Exemplo de Cálculo de Contratos + +- **Capital Total:** R$10.000 +- **Risco por Operação:** R$100 (1% do capital) +- **Stop Loss:** 200 pontos (R$40 por contrato) +- **Quantidade de Contratos:** + - R$100 ÷ R$40 = **2 contratos** + +Com esse cálculo, é possível operar **2 contratos** no mini índice, mantendo o risco dentro do limite estabelecido. + +## Exemplos de Gerenciamento de Risco para Diferentes Capitais + +### Capital: R$20.000 +- **Risco por Operação:** R$200 a R$400 (1% a 2% do capital) +- **Stop Loss:** 200 pontos (R$40 por contrato) +- **Quantidade de Contratos:** + - R$200 ÷ R$40 = **5 contratos** + - R$400 ÷ R$40 = **10 contratos** + +### Capital: R$50.000 +- **Risco por Operação:** R$500 a R$1.000 (1% a 2% do capital) +- **Stop Loss:** 200 pontos (R$40 por contrato) +- **Quantidade de Contratos:** + - R$500 ÷ R$40 = **12 contratos** + - R$1.000 ÷ R$40 = **25 contratos** + +### Capital: R$100.000 +- **Risco por Operação:** R$1.000 a R$2.000 (1% a 2% do capital) +- **Stop Loss:** 200 pontos (R$40 por contrato) +- **Quantidade de Contratos:** + - R$1.000 ÷ R$40 = **25 contratos** + - R$2.000 ÷ R$40 = **50 contratos** + +## Conclusão + +Gerenciar o risco é fundamental para a consistência no day trade. Sempre ajuste o número de contratos e o stop loss de acordo com o capital disponível e o perfil de risco. Evite alavancagem excessiva e mantenha a disciplina nas operações. \ No newline at end of file diff --git a/organizacao_B3_Internacional.md b/organizacao_B3_Internacional.md new file mode 100644 index 0000000..72ded39 --- /dev/null +++ b/organizacao_B3_Internacional.md @@ -0,0 +1,115 @@ +# Organização Operacional: B3 (Toro) & Internacional (Tickmill) + +Este documento estrutura a rotina para operar simultaneamente no Brasil e no Exterior, aproveitando as correlações e diversificando risco. + +## 1. Estrutura de Plataformas e Contas + +### 🇧🇷 B3 (Brasil) - Toro Investimentos +* **Foco:** Day Trade em Índice/Dólar e Swing Trade em Ações. +* **Plataforma:** ProfitChart (Toro Trader). +* **Vantagem:** Corretagem Zero (com RLP) e plataforma robusta para fluxo (Tape Reading) e técnica. +* **Moeda Base:** BRL (Real). + +### 🌎 Internacional - Tickmill (Corretora CFD) +* **Foco:** Forex, Ouro (XAUUSD) e Índices Americanos (US500/S&P, USTEC/Nasdaq). +* **Plataforma:** MetaTrader 4 (MT4) ou MetaTrader 5 (MT5). + * *Dica:* Use o **TradingView** para análise gráfica (dados da OANDA ou FXCM são próximos) e o MT4/MT5 apenas para executar a ordem (boleta). +* **Conta Recomendada:** "Pro Account" (Spreads baixos + Comissão fixa). Melhor para estratégias técnicas. +* **Moeda Base:** USD (Dólar). + +## 2. Seleção de Ativos e Correlações + +Não opere tudo ao mesmo tempo. Use a correlação a seu favor. + +| Mercado | Ativo Principal | Ativo Correlato (Monitorar) | Horário Nobre | +| :--- | :--- | :--- | :--- | +| **B3** | **WIN (Mini Índice)** | S&P 500 (Tickmill: US500) | 09:00 - 11:00 | +| **B3** | **WDO (Mini Dólar)** | DXY e EURUSD (Tickmill) | 09:00 - 11:00 | +| **Intl** | **EURUSD** | DXY (Índice Dólar) | 09:00 - 12:00 | +| **Intl** | **XAUUSD (Ouro)** | Juros US (US10Y) / Dólar | 10:30 - 12:00 | + +### Regra de Ouro da Correlação +* Se **S&P 500 (US500)** está caindo forte na Tickmill -> **Venda WIN** na Toro. +* Se **Dólar Global (DXY)** está subindo -> **Venda EURUSD** na Tickmill e **Compre WDO** na Toro. + +### Meus Ativos na B3 (Carteira de Trabalho) +* **Futuros (Day Trade/Hedge):** + * `WINFUT` (Mini Índice) + * `WDOFUT` (Mini Dólar) + * `WSPFUT` (Micro S&P 500 - Correlação direta com US500) + * `BITFUT` (Futuro de Bitcoin - Correlação com Crypto Global) +* **Ações (Blue Chips):** + * `VALE3` (Vale - Correlação com Minério/China) + * `PETR4` (Petrobras - Correlação com Petróleo WTI/Brent) + * `ITUB4` (Itaú - Setor Financeiro) +* **BDRs (Tech/Growth):** + * `ROXO34` (Nubank) + * `AMAZO34` (Amazon) + +## 3. Rotina Operacional (O "Turno de Trabalho") + +* **08:30 - 09:00 (Pré-Market):** + * Abra o TradingView/MT4. + * Verifique como fechou a Ásia e como está a Europa. + * **Calendário Econômico:** Liste os horários de notícias de 3 estrelas/touros (Investing/ForexFactory). Defina alarmes. + * Marque suportes e resistências no **US500** e **XAUUSD**. +* **09:00 - 10:00 (Abertura B3):** + * Foco total na **Toro (Profit)**. + * O mercado internacional serve apenas como "bússola" (direção). +* **10:00 - 10:15 (Abertura Ações BR - O "Samba do Crioulo Doido"):** + * **Alerta Vermelho:** Abertura do mercado à vista (Ibovespa). + * **WIN:** Alta volatilidade devido à arbitragem com as ações. Muitas violinadas. + * **WDO:** Primeira janela de Ptax (briga de taxas). + * **Ação:** Evite abrir novas posições exatamente às 10:00. Espere a poeira baixar (10:15). +* **10:30 - 12:00 (Abertura NYSE + Prime Time):** + * Abertura de NY (considerando horário de verão). Se for inverno lá, é 11:30. + * Melhor horário para operar **Tickmill** (Forex/Ouro) e **B3** simultaneamente. Volume máximo. +* **12:00 - 13:00 (Almoço):** + * Reduza a mão ou encerre o dia. Liquidez cai drasticamente. + +## 4. Gestão de Risco Unificada + +* **Capital B3 (Toro):** Risco em Reais (R$). Meta de pagar contas do mês. +* **Capital Intl (Tickmill):** Risco em Dólar (USD). Meta de crescimento patrimonial (Juros Compostos). +* **Stop Loss Diário:** Defina um limite global. + * *Exemplo:* Se perder $50 na Tickmill, reduza o risco na B3 para não ter um "dia de fúria" duplo. + +## 5. Aspectos Tributários (Resumo Prático) + +* **Toro (Brasil):** + * Apuração Mensal. + * DARF: 20% sobre lucro Day Trade. + * Compensação de prejuízos permitida. +* **Tickmill (Exterior):** + * Apuração Anual (Lei 14.754 - Novas regras 2024). + * Alíquota única de **15%** sobre o lucro (ganho de capital + variação cambial). + * Não precisa pagar DARF mensalmente (apenas na declaração anual de ajuste), mas recomenda-se reservar o valor. + * *Atenção:* Diferente da B3, prejuízos lá fora não compensam lucros no Brasil (são caixas separadas). + +## 6. Checklist de Instalação + +1. [ ] Instalar **ProfitChart** (Toro). +2. [ ] Instalar **MetaTrader 5** (Tickmill) ou conectar conta no TradingView (se disponível). +3. [ ] Configurar tela com gráficos lado a lado (B3 na esquerda, Intl na direita). +4. [ ] Criar planilha de controle separada (uma aba BRL, uma aba USD). + +## 7. Estratégia de Paraíso Fiscal (Offshore Prática) + +Para maximizar a eficiência no internacional, a escolha da "filial" da corretora é crucial. + +* **Escolha da Jurisdição (Entidade):** Ao abrir conta na Tickmill, escolha a entidade regulada em **Seychelles (FSA)**. + * **O que é:** Seychelles é um paraíso fiscal clássico. + * **Vantagem:** **Imposto Zero na Fonte.** A corretora não retém nada sobre seus lucros. Todo o resultado líquido fica na sua conta para reinvestimento (Juros Compostos). + * **Diferença:** Se abrir na Tickmill UK (Reino Unido), você estaria sujeito a regulações europeias (ESMA) que limitam a alavancagem (máx 1:30) e podem ter regras tributárias locais mais rígidas. +* **Alavancagem:** Em paraísos fiscais, a alavancagem permitida é maior (1:500), o que exige gestão de risco profissional, mas permite operar com menos capital travado em margem. + +Na B3 opero: +ROXO34 +AMAZO34 +VALE3 +PETR4 +ITUB4 +BITFUTV +WDOFUTV +WSPFUT +WINFUT \ No newline at end of file diff --git a/organizacao_B3_Internacional_horarios.md b/organizacao_B3_Internacional_horarios.md new file mode 100644 index 0000000..c57d5cc --- /dev/null +++ b/organizacao_B3_Internacional_horarios.md @@ -0,0 +1,44 @@ +# Fusos Horários e Top Ativos Globais + +## 1. Sessões de Negociação (Horário de Brasília - GMT-3) + +**Diferença Chave:** Enquanto o Brasil opera ~9h por dia, o mercado global é "Electronic" (Globex) e opera ~23h por dia. +O mercado global opera 24h (nos futuros), mas a liquidez se concentra nestas janelas: + +| Sessão | Principais Centros | Horário Aprox. (BRT) | Característica | +| :--- | :--- | :--- | :--- | +| **Asiática** | Tóquio, Sydney, Hong Kong | 20:00 - 05:00 | Menor volatilidade (exceto no Yen e AUD). Bom para scalps técnicos e range trading. | +| **Europeia** | Londres (LSE), Frankfurt | 04:00 - 13:30 | Alta volatilidade na abertura (04:00-06:00). Define o tom do dia antes dos EUA abrirem. | +| **Americana** | Nova York (NYSE/Nasdaq) | 11:30 - 18:00 | **Máxima Liquidez**. Onde ocorrem os grandes movimentos, reversões e "agulhadas". | + +*Nota: Os horários de abertura dos EUA (Cash Market) variam entre 10:30 e 11:30 dependendo do horário de verão.* + +## 2. Top 10 Ativos e Índices para Operar + +Lista baseada em liquidez (facilidade de entrar/sair) e volatilidade (oportunidade de lucro). + +### Índices Futuros (Equity Futures) +1. **E-mini S&P 500 (ES):** O "Rei" do mercado. Respeita muito Price Action. **(Pregão: 23h/dia - Pausa 18:00-19:00 BRT)** +2. **Nasdaq 100 (NQ):** Setor de Tecnologia. Mais volátil e agressivo. **(Pregão: 23h/dia)** +3. **DAX 40 (FDAX):** Índice Alemão. Principal da Europa. **(Pregão: ~14h com alta liquidez, mas futuro roda estendido)** +4. **Nikkei 225 (NK):** Índice Japonês. Principal da Ásia. **(Pregão: Aberto durante nossa madrugada)** + +### Commodities +5. **Crude Oil WTI (CL):** Petróleo. Tendências longas. **(Pregão: 23h/dia)** +6. **Gold (GC / XAUUSD):** Ouro. Ativo de proteção. **(Pregão: 23h/dia)** + +### Moedas (Forex Futures ou Spot) +7. **EUR/USD (6E):** O par mais negociado. **(Pregão: 24h - Abre Dom 18:00, Fecha Sex 18:00)** +8. **USD/JPY (6J):** Dólar vs Yen. Volátil na Ásia. **(Pregão: 24h)** +9. **GBP/USD (6B):** Libra. Movimentos explosivos. **(Pregão: 24h)** + +### Cripto (24/7) +10. **Bitcoin (BTC):** O único mercado que nunca fecha. **(Pregão: 24 horas / 7 dias por semana)** + +## 3. Dicas para quem opera B3 (WIN/WDO) + +* **Duração B3:** O pregão de futuros (WIN/WDO) dura cerca de **9 horas** (09:00 às 18:00). É um tiro curto comparado ao resto do mundo. +* **Abertura de Londres (04:00 - 05:00):** Se o mercado europeu estiver muito negativo, o WIN já tende a abrir com Gap de Baixa. +* **Pré-Market EUA (09:00):** Observe o **ES (S&P Futuro)**. Ele dita a direção da abertura do WIN às 09:00. +* **Abertura NYSE (11:30):** É o momento de maior volume no WIN. Cuidado com a "briga" nos primeiros 15 minutos. +* **Petax (10:00 - 13:00):** Janelas onde o Banco Central mede o câmbio. Gera volatilidade artificial no **WDO**. \ No newline at end of file diff --git a/tabela_confluencias.md b/tabela_confluencias.md new file mode 100644 index 0000000..92481b9 --- /dev/null +++ b/tabela_confluencias.md @@ -0,0 +1,74 @@ +# Tabela Mestra de Confluências e Prioridades + +Este documento centraliza a hierarquia de decisão do Trade System. Ele deve ser atualizado sempre que uma nova teoria for estudada. + +**Regra Fundamental:** Sinais de hierarquia superior (Peso 5) **anulam** ou **validam** sinais de hierarquia inferior. Nunca opere contra um Peso 5. + +## Ranking de Importância (Atualizado: Fev/2026) + +| Rank | Peso | Categoria | Script / Arquivo | O que observar? (O Sinal) | Ação Prática | +| :--- | :--- | :--- | :--- | :--- | :--- | +| **1** | 🟥 **5** | **Institucional** | `fev_VWAPsemanalDiario.ntfl` | O candle está Verde (Compra) ou Vermelho (Venda)? | **Filtro de Permissão.** Se estiver Cinza ou contra a cor, NÃO FAÇA NADA. | +| **2** | 🟧 **4** | **Estrutura** | `fevTendenciaPivoTeste.ntsl` | O preço rompeu a estrutura de 5-12 candles (Verde/Vermelho)? | **Confirmação de Fluxo.** Garante que não é um falso rompimento. | +| **3** | 🟨 **3** | **Gatilho** | `fev_PriceAction.ntsl` | Apareceu o **Gold Signal (Amarelo)** ou Barra de Força (Ciano/Fuchsia)? | **Sinal de Entrada.** É o momento do clique. | +| **4** | 🟦 **2** | **Refino** | `fev_PriceActionAnaliseSombra.ntsl` | Existe pavio contra a operação (Azul/Marrom)? | **Veto.** Se tiver muita sombra contra, aborte ou reduza a mão. | +| **5** | 🟪 **2** | **Fluxo (OBV)**| `fev_OBVvolumeVerdadeiro.ntsl` | O OBV está a favor do movimento (Verde/Vermelho)? | **Veto de Fluxo.** Se o OBV divergir, o movimento é falso. | +| **6** | ⬜ **1** | **Leitura** | `fev_PriceAction_Tipos.ntsl` | Qual o nome do padrão? (Engolfo, Martelo, Inside Bar) | **Contexto.** Ajuda a entender a psicologia. | + +--- + +## O Algoritmo de Execução (Ordem Exata) + +Siga esta sequência lógica de arquivos para cada operação. Se falhar em um passo, não avance para o próximo. + +### PASSO 0: Calendário Econômico (Segurança) +* **Verificação:** Há notícia de alto impacto (3 estrelas) nos próximos 10 minutos? + * *Sim:* **PARE.** Zere posições e aguarde. + * *Não:* Prossiga. + +### PASSO 1: O Porteiro (Institucional) +* **Arquivo:** `fev_VWAPsemanalDiario.ntfl` +* **Contexto:** `fev_MediasSetupSemana.ntsl` (no Diário). +* **Validação:** O preço está alinhado com a VWAP Diária e Semanal? + * *Sim (Verde/Vermelho):* Vá para o Passo 2. + * *Não (Cinza):* **PARE.** O mercado está indeciso. + +### PASSO 2: O Mapa (Estrutura) +* **Arquivo:** `fevTendenciaPivoTeste.ntsl` +* **Validação:** O preço rompeu uma estrutura de acumulação recente (> 5 candles)? + * *Sim (Mudou de Cinza para Cor):* O caminho está livre. Vá para o Passo 3. + * *Não (Ainda Cinza):* Você está dentro de uma lateralidade. Cuidado. + +### PASSO 3: O Gatilho (Execução) +* **Arquivo:** `fev_PriceActionCorpoSombraExecucao.ntsl` (Principal) +* **Validação:** Tenho um sinal claro? + * **🟡 Gold Signal (Amarelo):** Entrada de Alta Convicção (Mão Cheia). + * **🔵 Ciano / 🟣 Fuchsia:** Entrada de Momentum (Mão Normal). + * **🟢 Verde / 🔴 Vermelho:** Entrada Técnica (Mão Leve). + +### PASSO 4: O Detector de Mentiras (VSA + OBV) +* **VSA (Intensidade):** O volume do candle é maior que a média? (Evita rompimento sem força). +* **OBV (Direção):** O OBV está apontando para a mesma direção do trade? + * *Sim:* **CLIQUE.** + * *Não:* **ABORTAR.** Divergência de fluxo. + +--- + +## Matriz de Decisão (Exemplos Práticos) + +### Cenário A: O "Falso" Gold Signal +- **Passo 1 (VWAP):** Gráfico está Cinza (Preço entre VWAP Diária e Semanal). +- **Passo 3 (Gatilho):** Aparece um candle Amarelo (Gold Signal). +- **Decisão:** **NÃO OPERAR.** O sinal é bonito, mas o contexto institucional (Rank 1) não autorizou. Risco de violino. + +### Cenário B: A Entrada de Livro +- **Passo 1 (VWAP):** Gráfico Verde (Acima das duas VWAPs). +- **Passo 2 (Estrutura):** `fevTendenciaPivoTeste` ficou Verde (Rompeu máxima de 5 candles). +- **Passo 3 (Gatilho):** Candle Ciano (Barra de Força). +- **Decisão:** **COMPRA.** Alinhamento total de fluxo e momentum. + +### Cenário C: A Rejeição (Salvo pelo Gongo) +- **Passo 1 e 2:** Ok (Favoráveis). +- **Passo 3:** Candle Verde (Engolfo de Alta). +- **Passo 4 (Sombra):** O `AnaliseSombra` mostra uma cor Azul Royal (Pavio superior longo). +- **Decisão:** **CANCELAR.** O mercado tentou subir e foi rejeitado no mesmo candle. \ No newline at end of file diff --git a/teoria_ATR.txt b/teoria_ATR.txt new file mode 100644 index 0000000..26cb985 --- /dev/null +++ b/teoria_ATR.txt @@ -0,0 +1,108 @@ +# Teoria Operacional: Rompimento de Canais de Keltner (ATR) + +## 1. O Conceito +Em vez de olhar para um único candle isolado, esta abordagem utiliza o **ATR** para construir um canal de volatilidade em torno de uma Média Móvel. + +- **Linha Central:** Média Móvel Exponencial (Define a tendência média). +- **Banda Superior:** Média + (Volatilidade * Fator). +- **Banda Inferior:** Média - (Volatilidade * Fator). + +O espaço dentro do canal é considerado "ruído" ou "zona de equilíbrio". + +## 2. Lógica Operacional (Gatilhos) +O objetivo é identificar quando o preço tem força suficiente para escapar da "gravidade" da média e romper a barreira da volatilidade (ATR). + +### Parâmetros Sugeridos +- **Média:** 20 períodos (Exponencial). +- **ATR:** 14 períodos. +- **Fator (Desvio):** 1.3 (Ajustado para maior sensibilidade). + +## 3. Regra de Coloração (O Semáforo) + +### 🟢 VERDE = COMPRA (Força) +- **Cor:** Verde Vivo. +- **Condição:** Fechamento > Banda Superior **E** Candle Positivo (Verde). +- **Significado:** O preço rompeu o teto da volatilidade. Compradores no controle. + +### 🔴 VERMELHO = VENDA (Pânico) +- **Cor:** Vermelho Vivo. +- **Condição:** Fechamento < Banda Inferior **E** Candle Negativo (Vermelho). +- **Significado:** O preço perdeu o piso da volatilidade. Vendedores no controle. + +### ⚪ CINZA = NEUTRO (Aguardar) +- **Cor:** Cinza. +- **Condição:** O preço fecha DENTRO do canal. +- **Ação:** O mercado está de lado ou descansando. **Não operar.** + +## 4. Gerenciamento + +- **Entrada:** No fechamento do primeiro candle que pintar de Verde/Vermelho. +- **Stop Loss:** + - Conservador: Na média móvel central. + - Agressivo: Na mínima do candle de rompimento. +- **Saída:** Quando o candle voltar a fechar cinza (retornou para dentro do canal). + +--- +*Estratégia baseada em Keltner Channels* + +## 5. Expansão de Conhecimento: O Ecossistema ATR + +O ATR não serve apenas para canais. Ele é a base matemática para ferramentas de tendência e risco essenciais para sistemas quantitativos. + +### A. SuperTrend (O Rastreador de Tendência) +Enquanto o Keltner é um canal, o **SuperTrend** é uma linha única que funciona como um **Stop Móvel (Trailing Stop)**. +- **Cálculo:** `Preço Médio +/- (ATR * Multiplicador)`. +- **Uso:** Se o preço fecha acima, a linha fica verde (suporte). Se fecha abaixo, fica vermelha (resistência). +- **Diferença para Keltner:** O SuperTrend não "envelopa" o preço, ele persegue o preço. É excelente para carregar operações longas (Trend Following) sem ser violinado pelo ruído comum. + +### B. Position Sizing (Cálculo de Lote Profissional) +Grandes players e robôs não operam com "lote fixo" (ex: sempre 5 contratos). Eles operam com **Risco de Volatilidade Constante**. +- **Fórmula:** `Tamanho do Lote = (Capital em Risco $) / (ATR * Valor do Ponto)` +- **Lógica:** + - **Dia Volátil (ATR Alto):** O sistema reduz a mão (Lote Menor) para manter o mesmo risco financeiro, pois o Stop será mais longo. + - **Dia Calmo (ATR Baixo):** O sistema aumenta a mão (Lote Maior), pois o Stop é curto e técnico. +*Isso equaliza a curva de capital, evitando que um dia de "violinos" destrua os lucros de dias calmos.* + +### C. Ciclos de Volatilidade (O Pulso do Mercado) +O ATR é cíclico e previsível em seu comportamento de onda. +1. **Contração (Squeeze):** ATR caindo e em níveis baixos. O mercado está acumulando energia. As Bandas de Keltner se estreitam. **Melhor momento para preparar entradas.** +2. **Expansão (Breakout):** ATR subindo explosivamente. O movimento direcional acontece aqui. +3. **Exaustão:** Quando o ATR atinge picos históricos (muito acima da média), a probabilidade de reversão ou lateralização é altíssima. + +**Regra de Ouro:** +- ATR Baixo = Potencial de Lucro Alto (Início de movimento). +- ATR Muito Alto = Risco Alto (Fim de festa). + +### D. ATR vs. Desvio Padrão (A Diferença para Bollinger Bands) + +Muitos confundem Keltner Channels (baseados em ATR) com Bollinger Bands (baseadas em Desvio Padrão). A diferença é crucial. + +| Característica | **ATR (Keltner Channels)** | **Desvio Padrão (Bollinger Bands)** | +| :--- | :--- | :--- | +| **Cálculo** | Baseado no `True Range` (tamanho médio dos candles). | Baseado na distância dos preços em relação à média central. | +| **Sensibilidade** | Mais suave e estável. Reage de forma linear ao tamanho dos candles. | Mais reativo a movimentos bruscos (outliers). As bandas se expandem e contraem de forma mais agressiva. | +| **Melhor Uso** | **Identificação de Tendência e Breakouts.** Um rompimento de Keltner é um sinal mais claro de início de tendência. | **Identificação de Reversão à Média.** O preço tocando as bandas externas de Bollinger sugere um estado de "sobrecompra/sobrevenda" e possível retorno à média. | +| **Comportamento** | As bandas se movem de forma mais "paralela" ao preço. | As bandas "respiram" (contraem e expandem) muito mais. A contração é chamada de "Squeeze". | + +**Resumo Prático:** +- Quer pegar o **início de uma tendência forte**? Use **Keltner Channels (ATR)**. +- Quer operar **reversões em mercado lateral** ou identificar pontos de exaustão? Use **Bollinger Bands**. + +Com este último ponto, seu conhecimento sobre o ecossistema ATR está robusto e completo, cobrindo desde a aplicação em canais até a gestão de risco e a diferenciação para outras ferramentas de volatilidade. + +--- + +## 6. Alvos Máximos por Timeframe (Aplicação com ATR) + +Mesmo usando canal de volatilidade, manter um teto de objetivo por timeframe: + +- **2 min:** buscar no máximo **80 a 200 pontos** +- **5 min:** buscar no máximo **150 a 350 pontos** +- **15 min:** buscar no máximo **300 a 700 pontos** +- **30 min:** buscar no máximo **500 a 1.000 pontos** +- **45 min:** buscar no máximo **700 a 1.400 pontos** + +### Integração com ATR +- Se o ATR estiver em contração, priorizar alvos no **piso** da faixa. +- Se o ATR estiver em expansão direcional, pode buscar **meio/topo** da faixa. +- Após atingir alvo intermediário, proteger posição com stop técnico na média central ou trailing. \ No newline at end of file diff --git a/teoria_IFR.md b/teoria_IFR.md new file mode 100644 index 0000000..83081c8 --- /dev/null +++ b/teoria_IFR.md @@ -0,0 +1,63 @@ +# Teoria Operacional: IFR (Índice de Força Relativa) + +## 1. O Conceito (O Velocímetro) +O IFR (RSI em inglês) não mede o preço, mede a **velocidade** e a **mudança** do movimento. Imagine um carro subindo uma ladeira: ele pode continuar subindo (preço fazendo topos mais altos), mas se tirar o pé do acelerador (IFR caindo), logo ele vai parar e descer. + +* **Configuração Padrão:** 14 Períodos. +* **Natureza:** Oscilador de Momentum (varia de 0 a 100). + +## 2. Zonas de Operação (Sobrecompra e Sobrevenda) + +### A Zona de Exagero (70 e 30) +* **Sobrecompra (> 70):** O mercado subiu rápido demais. A probabilidade de uma correção ou pausa aumenta. + * *Atenção:* Em tendências muito fortes (Super Trends), o IFR pode ficar acima de 70 por muito tempo. Não venda apenas porque tocou no 70. +* **Sobrevenda (< 30):** O mercado caiu rápido demais. Pode haver um repique ("Dead Cat Bounce") ou reversão. + +### A Zona de Tendência (Nível 50) +* **Acima de 50:** Território dos Compradores. Procure compras. +* **Abaixo de 50:** Território dos Vendedores. Procure vendas. +* **O Cruzamento do 50:** Muitas vezes antecipa a virada da Média de 20. + +## 3. Divergências (O Sinal de Ouro do IFR) +É aqui que o IFR brilha no nosso Trade System. A divergência é quando o Preço e o IFR discordam. É um sinal poderoso de **Exaustão**. + +### Divergência de Baixa (Topo) +* **Cenário:** O Preço faz um **Topo Mais Alto**, mas o IFR faz um **Topo Mais Baixo**. +* **Significado:** O preço subiu por inércia, mas a força compradora acabou. É como o carro subindo a ladeira no ponto morto. +* **Ação:** + * **Não Comprar Rompimentos.** + * Apertar o Stop Loss de compras. + * Preparar para vender se aparecer um gatilho (Upthrust/Engolfo de Baixa). + * *No Código:* PlotText **"DIV BAIXA"** (Laranja). + +### Divergência de Alta (Fundo) +* **Cenário:** O Preço faz um **Fundo Mais Baixo**, mas o IFR faz um **Fundo Mais Alto**. +* **Significado:** Os vendedores estão cansados. A pressão de venda diminuiu mesmo com o preço caindo. +* **Ação:** + * **Não Vender Rompimentos de Fundo.** + * Procurar sinais de compra (Martelo/Gold Signal). + * *No Código:* PlotText **"DIV ALTA"** (Ciano). + +## 4. Reversão Positiva/Negativa (Hidden Divergence) +Diferente da divergência clássica (que indica reversão), esta indica **continuação**. + +* **Reversão Positiva (Continuação de Alta):** O Preço faz um fundo mais alto (correção saudável), mas o IFR cai muito e faz um fundo mais baixo (ficou "barato" rápido). É um setup de compra de pullback. +* **Reversão Negativa (Continuação de Baixa):** O Preço faz um topo mais baixo, mas o IFR sobe muito. É oportunidade de venda. + +## 5. Integração com o Trade System + +O IFR funciona como um **Veto (Filtro de Qualidade)**. + +| Cenário | IFR | Decisão | +| :--- | :--- | :--- | +| **Gold Signal de Compra** | IFR subindo, rompendo 50 ou 60 | **Aprovado (Força)** | +| **Gold Signal de Compra** | IFR acima de 80 (Esticado) | **Cuidado (Reduzir Mão)** | +| **Rompimento de Topo** | Divergência de Baixa (Topo IFR menor) | **VETO (Falso Rompimento)** | +| **Pullback na Média 20** | IFR tocando 40-50 e virando para cima | **Entrada Perfeita** | + +--- + +### Resumo Prático +1. Use o IFR para validar a força do rompimento. +2. Se o preço rompeu topo e o IFR não, é armadilha. +3. Nunca opere contra uma Divergência em timeframes maiores (15m/60m). \ No newline at end of file diff --git a/teoria_OCO.md b/teoria_OCO.md new file mode 100644 index 0000000..db04158 --- /dev/null +++ b/teoria_OCO.md @@ -0,0 +1,190 @@ +# Teoria Operacional: OCO (WIN) + +## 1. Objetivo +Este material define como configurar OCO no WIN com foco em consistência, controle de risco e execução objetiva. + +**OCO = Ordem com ganho (alvo) + perda (stop) já definidos na entrada.** + +--- + +## 2. Conversão prática (WIN) +Para mini índice (WIN), regra prática operacional: + +- **1 contrato = ~R$ 0,20 por ponto** +- **5 contratos = ~R$ 1,00 por ponto** + +### Fórmulas rápidas +- **Risco (R$)** = Stop (pts) × Quantidade × 0,20 +- **Alvo (R$)** = Alvo (pts) × Quantidade × 0,20 + +Para 5 contratos, fica simples: +- **Risco (R$) ≈ Stop (pts)** +- **Alvo (R$) ≈ Alvo (pts)** + +--- + +## 3. Presets OCO para 5 contratos + +### Tabela pronta (5 contratos) + +| Preset | Stop (pts) | Alvo (pts) | Risco aprox (R$) | Alvo aprox (R$) | R:R | Quando usar | +| :--- | :---: | :---: | :---: | :---: | :---: | :--- | +| **Conservador** | 140 | 240 | 140 | 240 | 1:1,71 | Mercado mais travado/irregular | +| **Equilibrado (Padrão)** | 100 | 160 | 100 | 160 | 1:1,60 | Dia normal de operação | +| **Agressivo (Scalp)** | 70 | 110 | 70 | 110 | 1:1,57 | Contexto muito limpo e rápido | + +**Configuração padrão sugerida para começar:** `Stop 100 pts / Alvo 160 pts / 5 contratos`. + +## 3.1 Preset Equilibrado (padrão recomendado) +- **Stop:** 100 pts +- **Alvo:** 160 pts +- **R:R:** 1:1,6 +- **Leitura:** bom para maioria dos dias normais. + +## 3.2 Preset Conservador +- **Stop:** 140 pts +- **Alvo:** 240 pts +- **R:R:** 1:1,7 +- **Leitura:** menos operações, mais seletivo, melhor para mercado irregular. + +## 3.3 Preset Agressivo (scalp) +- **Stop:** 70 pts +- **Alvo:** 110 pts +- **R:R:** 1:1,57 +- **Leitura:** exige timing fino e contexto muito limpo. + +--- + +## 4. Preset por horário (WIN intraday) + +| Janela | Condição comum | Stop (pts) | Alvo (pts) | R:R | +| :--- | :--- | :---: | :---: | :---: | +| **09:00–11:00** | Alta volatilidade e fluxo forte | 110 | 180 | 1:1,64 | +| **12:00–13:00** | Liquidez menor, mais ruído | 80 | 130 | 1:1,62 | +| **14:00–17:00** | Movimento mais direcional | 100 | 160 | 1:1,60 | + +--- + +## 5. Regras de uso (obrigatórias) + +1. **Não entrar sem contexto** (VWAP + estrutura + direção 20/50). +2. **Não usar OCO fixo em notícia relevante** (evitar ficar posicionado). +3. **Não aumentar lote para “recuperar” stop.** +4. **Manter R:R mínimo de 1:1,5.** +5. **Se o mercado estiver lateral/comprimido, reduzir agressividade ou não operar.** + +--- + +## 6. Gestão após entrada + +### Breakeven (proteção) +Mover para 0x0 quando: +- preço andar cerca de **60% a 70%** do alvo, **ou** +- romper nova estrutura a favor. + +### Parcial (opcional) +- Realizar 30% a 50% da posição no primeiro impulso. +- Deixar restante buscar alvo cheio com stop protegido. + +--- + +## 7. Erros comuns com OCO + +1. Definir stop/alvo só por “valor em R$” sem olhar estrutura. +2. Operar com stop curto demais em horário volátil. +3. Operar com alvo muito longo em horário morto. +4. Alterar OCO emocionalmente no meio do trade. +5. Ignorar custos operacionais e slippage. + +--- + +## 8. Checklist de execução (1 minuto) + +Antes de clicar: +1. Contexto está favorável (nível + estrutura + direção)? +2. Horário está limpo (fora da zona de notícia)? +3. Preset correto para o horário/regime? +4. R:R está >= 1:1,5? +5. Perda diária já foi respeitada? + +Se qualquer resposta for “não”, **não entrar**. + +--- + +## 9. Resumo de bolso + +- **Padrão 5 contratos:** `Stop 100 / Alvo 160` +- **R:R mínimo:** `1:1,5` +- **Sem confluência:** `sem trade` +- **Sem disciplina de risco:** `OCO não salva operação ruim` + +--- + +## 10. Três Estratégias OCO por Timeframe (Day Trade) + +As estratégias abaixo seguem seus tetos de alvo: +- **2 min:** máximo de **80 a 200 pontos** +- **5 min:** máximo de **150 a 350 pontos** +- **15 min:** máximo de **300 a 700 pontos** + +### Estratégia 1 — OCO 2 min (Scalp Estruturado) +**Objetivo:** capturar impulsos curtos com execução rápida e risco controlado. + +**Preset (5 contratos):** +- Stop: **70 pontos** +- Alvo: **130 pontos** +- R:R: **1:1,86** + +**Gestão:** +- Breakeven em **+70 a +85 pontos** (≈ 55% a 65% do alvo) +- Parcial opcional de 30% a 50% em **+80 a +100 pontos** +- Não estender além de **200 pontos** no 2m + +**Quando usar:** +- Abertura com fluxo, rompimento limpo, pullback curto em tendência. + +--- + +### Estratégia 2 — OCO 5 min (Padrão Operacional) +**Objetivo:** operar continuidade com menos ruído que o 2m. + +**Preset (5 contratos):** +- Stop: **120 pontos** +- Alvo: **220 pontos** +- R:R: **1:1,83** + +**Gestão:** +- Breakeven em **+120 a +145 pontos** +- Parcial opcional em **+150 a +180 pontos** +- Evitar alvo acima de **350 pontos** sem contexto de tendência forte + +**Quando usar:** +- Contexto direcional com 20/50 alinhadas e pullback validado. + +--- + +### Estratégia 3 — OCO 15 min (Tendência / Continuação) +**Objetivo:** capturar perna maior com menos frequência e maior qualidade. + +**Preset (5 contratos):** +- Stop: **220 pontos** +- Alvo: **420 pontos** +- R:R: **1:1,91** + +**Gestão:** +- Breakeven em **+220 a +270 pontos** +- Parcial opcional em **+300 pontos** +- Alvo entre **500 e 700 pontos** somente com tendência muito limpa + +**Quando usar:** +- Tendência estabelecida no intraday, rompimento de estrutura com sustentação. + +--- + +## 11. Regra de Seleção Rápida + +1. Se o mercado está rápido e com volatilidade curta: **Estratégia 1 (2m)**. +2. Se o mercado está direcional e com pullbacks limpos: **Estratégia 2 (5m)**. +3. Se o mercado está em tendência mais madura e limpa: **Estratégia 3 (15m)**. + +Se houver lateralidade/compressão, reduzir alvo para o piso da faixa ou não operar. diff --git a/teoria_VSA.md b/teoria_VSA.md new file mode 100644 index 0000000..17167a9 --- /dev/null +++ b/teoria_VSA.md @@ -0,0 +1,92 @@ +# Teoria Operacional: Análise de Volume e Spread (VSA) + +## 1. O Conceito +VSA (Volume Spread Analysis) é a arte de ler a intenção dos "Smart Money" (instituições) analisando a relação entre três variáveis em cada candle: +1. **Volume:** O "esforço" ou a "gasolina" do movimento. +2. **Spread (Range):** A distância entre a máxima e a mínima do candle, representando o "resultado" do esforço. +3. **Preço de Fechamento:** Onde o candle fecha em relação ao seu spread, indicando quem venceu a batalha. + +A lógica central do VSA é procurar por **anomalias**. Um esforço (volume) enorme que produz pouco resultado (spread curto) indica que uma força contrária está absorvendo o movimento. + +## 2. Lógica Operacional (Gatilhos) +O objetivo é identificar os sinais de acumulação (compra institucional) e distribuição (venda institucional). + +### Sinais de Força (Acumulação) +* **Shakeout (Sacudida):** Um candle com **volume ultra alto** que rompe um suporte, mas fecha **no terço superior**. Mostra que institucionais absorveram as vendas de pânico. +* **Teste de Oferta:** Após uma alta, um candle negativo com **volume muito baixo**. Confirma que os vendedores sumiram e o caminho está livre para subir. +* **Clímax de Venda (Selling Climax):** Um candle negativo com spread **muito largo** e **volume climático** (o maior em muito tempo). Representa a capitulação final do público vendedor, que é totalmente absorvida pelos institucionais. É um forte sinal de fundo. + +### Sinais de Fraqueza (Distribuição) +* **Upthrust:** Oposto do Shakeout. Um candle com **volume ultra alto** que rompe uma resistência, mas fecha **no terço inferior**. Mostra que institucionais venderam na euforia. +* **Sem Demanda:** Após uma queda, um candle positivo com **volume muito baixo**. Confirma que os compradores sumiram e o caminho está livre para cair. +* **Clímax de Compra (Buying Climax):** Um candle positivo com spread **muito largo** e **volume climático**. Representa a euforia final do público comprador, que é usada pelos institucionais para desovar suas posições. É um forte sinal de topo. + +## 3. Regra de Coloração (O Semáforo) +A regra de coloração `fev_VSAassinaturaInstitucional.ntsl` traduz os sinais mais fortes para o gráfico. + +### 🟡 OURO = CLÍMAX (Intervenção Extrema) +* **Cor:** Ouro (RGB 255, 215, 0). +* **Condição:** Qualquer rejeição (Shakeout ou Upthrust) com **Volume > 3.0x a média**. +* **Significado:** O "Sinal de Ouro" do VSA. Indica exaustão total e virada de mão institucional. Atenção máxima. + +### 🟢 VERDE / 🔴 VERMELHO = ATIVIDADE PROFISSIONAL +* **Verde:** Shakeout com Volume Alto (> 1.5x). Sinal de força. +* **Vermelho:** Upthrust com Volume Alto (> 1.5x). Sinal de fraqueza. + +### ⚫ CINZA = NEUTRO (Aguardar) +* **Cor:** Cinza Padrão. +* **Condição:** Ausência de sinais VSA de alto volume. +* **Ação:** O mercado está em equilíbrio ou sem a clara atuação dos grandes players. + +## 4. Gerenciamento +VSA é uma ferramenta de **confirmação de contexto**, não um gatilho isolado. + +* **Entrada:** Após um sinal VSA (ex: Shakeout verde) ocorrer em uma zona de suporte relevante (VWAP, Ajuste, Rank 5 da Tabela de Confluências). A entrada pode ser no rompimento da máxima do candle de sinal. +* **Stop Loss:** + * Agressivo: Abaixo da mínima do candle de Shakeout/Upthrust. + * Conservador: Abaixo da zona de suporte/resistência que o sinal defendeu. +* **Saída:** O surgimento de um sinal VSA contrário (ex: um Upthrust vermelho após uma longa alta) pode ser um excelente sinal para realizar lucros. + +--- +*Estratégia baseada em Análise de Volume e Spread* + +## 5. Expansão de Conhecimento: O Ecossistema VSA + +Com os sinais individuais dominados, o próximo passo é conectá-los em uma narrativa. + +### A. O Ciclo de Wyckoff: O Mapa Onde o VSA Opera +Os sinais de VSA não ocorrem ao acaso. Eles são eventos específicos dentro do ciclo de mercado dos grandes players. + +1. **Fase de Acumulação (Fundo):** Institucionais estão comprando barato, sem chamar atenção. + * **Sinais VSA Típicos:** `Shakeout`, `Teste de Oferta`, `Absorção`. O VSA confirma que a oferta está sendo retirada do mercado. +2. **Fase de Markup (Tendência de Alta):** O preço sobe com a participação do público. + * **Sinais VSA Típicos:** Pullbacks com `Teste de Oferta`, rompimentos com volume alto. +3. **Fase de Distribuição (Topo):** Institucionais estão vendendo caro para o público eufórico. + * **Sinais VSA Típicos:** `Upthrust`, `Clímax de Compra`, `Sem Demanda`. O VSA confirma que a demanda está "secando" e a oferta está aumentando. +4. **Fase de Markdown (Tendência de Baixa):** O preço desaba. + +**Moral da História:** Um `Shakeout` é muito mais poderoso se você identifica que o mercado está em uma potencial Fase de Acumulação. + +### B. A Força da Sequência: Um Sinal Confirma o Outro +Raramente um único sinal VSA define uma reversão. Procure por uma sequência lógica que conte uma história. + +* **Exemplo de Sequência de Topo Forte:** + 1. Ocorre um `Clímax de Compra` (euforia). + 2. O preço tenta subir de novo, mas forma um candle de `Sem Demanda` (volume baixo, desinteresse). + 3. Finalmente, o mercado faz um `Upthrust` para capturar a liquidez final antes de cair. + * **Decisão:** A venda após essa sequência é confirmada por múltiplos sinais de fraqueza. + +* **Exemplo de Sequência de Fundo Forte:** + 1. Ocorre um `Shakeout` (pânico e absorção). + 2. O preço sobe um pouco e depois volta a cair para testar a região do Shakeout, mas com volume muito baixo (`Teste de Oferta`). + * **Decisão:** O `Teste de Oferta` confirma o `Shakeout`, indicando que os vendedores não têm mais força. A compra aqui tem alta probabilidade. + +### C. A Confirmação no Candle Seguinte: O Veredito +Um sinal VSA é uma hipótese. O candle seguinte é o que a confirma ou nega. Esta é uma das regras mais importantes para evitar entradas falsas. + +* **Após um Sinal de Força (ex: Shakeout):** + * **Confirmação:** O candle seguinte deve ser **positivo** (fechar acima do fechamento do Shakeout). Isso valida a absorção. + * **Negação:** Se o candle seguinte for **negativo** e fechar abaixo da metade do Shakeout, o sinal falhou. A força vendedora ainda está presente. +* **Após um Sinal de Fraqueza (ex: Upthrust):** + * **Confirmação:** O candle seguinte deve ser **negativo**. Isso valida a distribuição. + * **Negação:** Se o candle seguinte for **positivo** e fechar acima da máxima do Upthrust, o sinal falhou. A força compradora absorveu a venda. \ No newline at end of file diff --git a/teoria_candlestick.md b/teoria_candlestick.md new file mode 100644 index 0000000..1c3a75f --- /dev/null +++ b/teoria_candlestick.md @@ -0,0 +1,132 @@ +# Teoria Operacional: Candlestick (A Linguagem do Mercado) + +## 1. O Conceito e a Origem +Os Candlesticks (Velas Japonesas) foram desenvolvidos no século 18 por Munehisa Homma para negociar contratos futuros de arroz. Diferente de um gráfico de linha simples que mostra apenas o fechamento, o Candlestick conta a **história completa** do período, revelando a emoção e a intensidade da batalha entre compradores e vendedores. + +## 2. Anatomia do Candle (Decodificando a Batalha) +Cada candle é composto por 4 preços (OHLC) e duas partes visuais: + +### O Corpo (Body) = A Convicção +* É a área entre a Abertura e o Fechamento. +* **Corpo Grande:** Indica forte convicção e fluxo direcional. Um lado dominou a sessão. +* **Corpo Pequeno:** Indica indecisão ou equilíbrio de forças. + +### As Sombras (Wicks/Shadows) = A Rejeição +* São as linhas finas acima e abaixo do corpo. +* **Sombra Superior:** Mostra até onde os compradores conseguiram levar o preço antes de serem esmagados pelos vendedores. (Rejeição de Alta). +* **Sombra Inferior:** Mostra até onde os vendedores conseguiram derrubar o preço antes de entrarem compras. (Rejeição de Baixa). + +--- + +## 3. A Psicologia por Trás dos Preços (OHLC) + +1. **Abertura (Open):** O sentimento inicial. Onde o mercado "acordou" ou iniciou o período. +2. **Máxima (High):** O ponto de euforia máxima dos touros. Se o fechamento for longe da máxima, houve falha dos compradores. +3. **Mínima (Low):** O ponto de pânico máximo dos ursos. Se o fechamento for longe da mínima, houve defesa dos compradores. +4. **Fechamento (Close):** **O dado mais importante.** É o veredito final da batalha. Profissionais operam baseados no fechamento; amadores operam durante a formação. + +--- + +## 4. Biblioteca de Padrões Essenciais + +Embora existam dezenas de padrões, focamos nos que mostram **Desequilíbrio** ou **Reversão**. + +### Padrões de Reversão (Mudança de Sentimento) +* **Martelo (Hammer):** Corpo pequeno no topo, sombra inferior longa. Indica que os vendedores tentaram romper o fundo e falharam. (Sinal de Fundo). +* **Estrela Cadente (Shooting Star):** Corpo pequeno no fundo, sombra superior longa. Indica que os compradores tentaram romper o topo e falharam. (Sinal de Topo). +* **Engolfo (Engulfing):** O corpo do candle atual "engole" totalmente o corpo do anterior. Mostra uma virada de mão violenta. +* **Estrela da Manhã/Noite (Morning/Evening Star):** Padrão de 3 candles. + 1. Movimento forte. + 2. Pausa/Indecisão (Doji ou corpo pequeno). + 3. Movimento forte contrário. + +### Padrões de Continuação (Fluxo) +* **Marubozu (Barra de Força):** Candle de corpo grande, praticamente sem sombras. Indica urgência e agressão. +* **Três Soldados Brancos:** Três candles de alta consecutivos, fechando perto das máximas. +* **Gift (Presente):** Um candle de força seguido por um candle pequeno de correção que não perde a mínima do anterior. + +### Padrões de Indecisão +* **Doji:** Abertura e Fechamento iguais. Empate técnico. +* **Spinning Top (Pião):** Corpo pequeno centralizado com sombras iguais para cima e para baixo. Briga intensa sem vencedor. + +--- + +## 5. A Regra do Contexto (Localização é Tudo) + +Um padrão de candlestick não tem poder sozinho. Onde ele aparece define sua função. + +| Padrão | Localização | Interpretação | Ação no Sistema | +| :--- | :--- | :--- | :--- | +| **Martelo** | Suporte / Média de 20 | Rejeição de Fundo | **Compra (Rank A)** | +| **Martelo** | Resistência | Enforcado (Hanging Man) | **Venda (Se perder a mínima)** | +| **Martelo** | Lateralidade (Meio) | Ruído | **Ignorar** | +| **Barra de Força** | Rompendo Pivô | Breakout | **Compra (Momentum)** | +| **Barra de Força** | Esticado (Longe da Média) | Exaustão Climática | **Aguardar/Realizar** | + +--- + +## 6. Integração com o Trade System Wesley + +Para facilitar a leitura em tempo real, utilizamos a regra de coloração `fev_PriceAction` para destacar automaticamente a psicologia do candle: + +* **Força/Fluxo:** Pintados de **Ciano** (Compra) ou **Fuchsia** (Venda). +* **Rejeição/Reversão:** Pintados de **Marrom** (Martelo) ou **Azul Royal** (Estrela). +* **Indecisão/Pausa:** Pintados de **Laranja** (Inside Bar) ou **Branco** (Doji). + +*Nota: Para detalhes técnicos da coloração, consulte `Teoria_PriceAction_TiposCandles.md`.* + +--- + +## 7. O Clímax (Euforia e Pânico) + +O Clímax é um movimento de **exaustão**. É o último suspiro de uma tendência, onde o desequilíbrio entre oferta e demanda atinge o extremo. + +* **Buying Climax (Clímax de Compra):** Ocorre no topo. O público entra comprando desesperado (FOMO) e os institucionais aproveitam a liquidez para vender (desovar posições). +* **Selling Climax (Clímax de Venda):** Ocorre no fundo. O público vende em pânico (Stop Loss em massa) e os institucionais aproveitam para comprar barato (absorção). + +### Anatomia Matemática (Como Identificar) +Profissionais não usam "olhômetro", usam métricas relativas. + +1. **Tamanho do Candle (Spread) vs. ATR:** + * Tem entre **200% a 300%** do tamanho do ATR ou da média dos últimos 10 candles. + * **Visual:** É aquela barra gigante que parece "esticar" o gráfico. + +2. **Volume (VSA):** + * O volume deve ser **Ultra Alto** (frequentemente o maior volume da sessão ou do dia). + * **Divergência:** Se o candle é gigante mas o volume é baixo, não é clímax, é "vácuo de liquidez" (trap). + +3. **Localização (Afastamento):** + * O preço deve estar totalmente fora das Bandas de Bollinger (2 Desvios) ou Keltner Channels. + * O preço está "esticado" da Média de 20 (Rubber Band Effect). + +### Padrões Clássicos de Clímax +* **A Barra de Exaustão (Blow-off):** Uma única barra gigantesca. Se a barra seguinte não conseguir renovar a máxima/mínima, a tendência acabou. +* **O Gap de Exaustão:** Gap enorme a favor da tendência após dias de alta. O preço não consegue continuar e fecha o gap. +* **A Rejeição de 50%:** Se o preço devolve (corrige) **mais de 50%** da barra gigante imediatamente, é Exaustão. + +### Como Operar (Setup de Reversão) +Operar contra a tendência é perigoso. Siga este protocolo: +1. **Identificação:** Candle Gigante (> 2x ATR) + Volume Climático + Longe da Média. +2. **Gatilho:** Aguarde o preço tentar renovar a máxima do Clímax e falhar (Padrão 2B). Venda na perda da mínima. +3. **Alvo:** Retorno à Média de 20 ou VWAP. + +### Integração com Trade System +* **Coloração PriceAction:** Candle **Ciano/Fuchsia** aparecendo longe da média após longa tendência. +* **Alerta:** Se uma Barra Elefante (Ciano) aparece no **início** do movimento, é COMPRA. Se aparece após 3 ondas de alta, longe da média, é VENDA (Clímax). + +--- + +## 8. Alvos Máximos por Timeframe (Execução de Day Trade) + +Para transformar leitura de candle em resultado, usar teto de alvo por timeframe: + +- **2 min:** buscar no máximo **80 a 200 pontos** +- **5 min:** buscar no máximo **150 a 350 pontos** +- **15 min:** buscar no máximo **300 a 700 pontos** +- **30 min:** buscar no máximo **500 a 1.000 pontos** +- **45 min:** buscar no máximo **700 a 1.400 pontos** + +### Regra de gestão +- Candle forte em contexto favorável: alvo no meio/topo da faixa. +- Candle de rejeição/indecisão: alvo no piso da faixa e gestão mais curta. +- Em 2 e 5 minutos, privilegiar parcial e stop no ponto de invalidação do setup. \ No newline at end of file diff --git a/teoria_medias.md b/teoria_medias.md new file mode 100644 index 0000000..8566a39 --- /dev/null +++ b/teoria_medias.md @@ -0,0 +1,754 @@ +# Teoria Operacional: Médias 50 e 200 (Contexto Macro) + +## 1. Objetivo +Este material define como usar a dupla 50 e 200 para classificar o regime de mercado em: +- Compra (macro de alta) +- Lateralização (transição/indecisão) +- Venda (macro de baixa) + +A lógica central: a 50 mostra tendência secundária e a 200 mostra o clima principal do mercado. + +--- + +## 2. Função de cada média + +### Média 50 +- Representa o comportamento institucional de médio prazo. +- Antecede mudanças de ciclo antes da 200. +- Funciona como suporte/resistência dinâmica relevante. + +### Média 200 +- É a referência macro mais respeitada. +- Define território comprador (preço acima) ou vendedor (preço abaixo). +- Age como barreira forte em reversões. + +--- + +## 3. Leitura correta da dupla 50/200 +Combinar sempre: + +1. Ordem entre 50 e 200 +2. Inclinação da 200 +3. Posição do preço frente às duas + +A dupla 50/200 é filtro de contexto, não gatilho de entrada curto. + +--- + +## 4. Estado de COMPRA (viés macro comprador) +Confluência de compra: + +- 50 acima da 200 +- 200 inclinada para cima +- Preço acima da 50 e da 200 + +### Interpretação +- Regime de alta mais estável +- Estratégias de compra tendem a ter maior probabilidade + +### Invalidar compra +- Preço perde 50 e 200 com continuidade +- 50 cruza para baixo da 200 +- 200 fica reta ou vira para baixo + +--- + +## 5. Estado de VENDA (viés macro vendedor) +Confluência de venda: + +- 50 abaixo da 200 +- 200 inclinada para baixo +- Preço abaixo da 50 e da 200 + +### Interpretação +- Regime de baixa dominante +- Estratégias de venda tendem a ter maior probabilidade + +### Invalidar venda +- Preço recupera 50 e 200 com continuidade +- 50 cruza para cima da 200 +- 200 fica reta ou vira para cima + +--- + +## 6. Estado de LATERALIZAÇÃO / TRANSIÇÃO +Tratar como lateral/transição quando: + +- 50 e 200 muito próximas +- 200 reta (sem inclinação clara) +- Preço cruza as duas repetidamente +- Fase de pré-cruzamento ou pós-cruzamento sem expansão + +### Regra prática +Nesse estado, reduzir mão e priorizar confirmação estrutural extra. + +--- + +## 7. Cruzamentos clássicos +- Golden Cross: 50 cruza 200 para cima (viés macro de alta) +- Death Cross: 50 cruza 200 para baixo (viés macro de baixa) + +Importante: cruzamento sozinho não basta; precisa de inclinação e sustentação de preço. + +--- + +## 8. Erros comuns com 50 e 200 +1. Usar 50/200 como gatilho de entrada rápida. +2. Operar apenas pelo cruzamento sem contexto de inclinação. +3. Ignorar distância do preço (esticamento extremo). +4. Operar contra a 200 em mercado tendencial forte. +5. Não separar transição de tendência confirmada. + +--- + +## 9. Checklist de contexto +1. 50 está do lado correto da 200? +2. 200 está inclinada na direção do viés? +3. Preço está do mesmo lado das duas? +4. Há confirmação estrutural no timeframe operacional? +5. Não está em transição/lateralização macro? + +Se falhar, reduzir agressividade ou não habilitar direção. + +--- + +## 10. Resumo executivo +- 50 = tendência secundária +- 200 = regime principal +- Compra macro: 50 > 200, 200 sobe, preço acima das duas +- Venda macro: 50 < 200, 200 cai, preço abaixo das duas +- Lateral/transição: 200 reta + preço sem sustentação + +A dupla 50/200 é o melhor filtro de regime para evitar operar contra o clima do mercado. + +# Teoria Operacional: Médias 20 e 50 (Day Trade e Swing Curto) + +## 1. Objetivo +Este material define como usar a dupla 20 e 50 para classificar o mercado em: +- Compra (tendência saudável) +- Lateralização (mercado em briga) +- Venda (tendência de baixa) + +A lógica central: a média 20 mostra a direção operacional e a média 50 mostra a defesa institucional de médio prazo. + +--- + +## 2. Função de cada média + +### Média 20 (MME) +- É o eixo da tendência operacional. +- Reage mais rápido e mostra aceleração/desaceleração. +- Serve como referência para pullback no intraday. + +### Média 50 (MMA ou MME) +- É a média de defesa institucional. +- Filtra ruído de curto prazo. +- Define se o movimento da 20 tem sustentação real. + +--- + +## 3. Leitura correta da dupla 20/50 +Não usar apenas cruzamento. Combinar: + +1. Ordem entre 20 e 50 +2. Inclinação da 50 (subindo, caindo ou reta) +3. Posição do preço em relação às duas + +Sem essa tríade, a chance de falso sinal aumenta. + +--- + +## 4. Estado de COMPRA (habilitar compra) +Confluência para compra: + +- 20 acima da 50 +- 50 inclinada para cima +- Preço acima da 20 e da 50 + +### Interpretação +- Tendência de alta com sustentação +- Pullback na 20 ou na faixa 20-50 pode ser entrada de continuidade + +### Invalidar compra +- Preço perde a 20 e falha ao retomar +- 20 cruza para baixo da 50 +- 50 perde inclinação e lateraliza + +--- + +## 5. Estado de VENDA (habilitar venda) +Confluência para venda: + +- 20 abaixo da 50 +- 50 inclinada para baixo +- Preço abaixo da 20 e da 50 + +### Interpretação +- Tendência de baixa sustentada +- Repique até 20/50 pode gerar continuação de venda + +### Invalidar venda +- Preço recupera a 20 com força +- 20 cruza para cima da 50 +- 50 perde inclinação e lateraliza + +--- + +## 6. Estado de LATERALIZAÇÃO +Lateral quando: + +- 20 cruza a 50 repetidamente +- 50 está reta +- Preço alterna acima/abaixo sem continuidade +- A distância entre 20 e 50 fica curta e sem expansão + +### Regra prática +Se a 50 estiver reta, priorize proteção de capital. Não forçar tendência. + +--- + +## 7. Semáforo operacional sugerido +- Verde: compra habilitada +- Vermelho: venda habilitada +- Cinza: lateralização / bloqueio + +--- + +## 8. Erros comuns com 20 e 50 +1. Operar cruzamento sem olhar inclinação da 50. +2. Entrar contra a 50 por impulso curto da 20. +3. Comprar/vender muito longe da 20 (esticado). +4. Confundir repique com reversão estrutural. +5. Forçar operação quando a 50 está reta. + +--- + +## 9. Checklist pré-operação +1. 20 está do lado correto da 50? +2. 50 está inclinada na direção do trade? +3. Preço está do mesmo lado das duas? +4. Há estrutura (rompimento/pivô) confirmando? +5. Não está lateral? + +Se falhar em qualquer item: não habilitar. + +--- + +## 10. Resumo executivo +- 20 = direção operacional +- 50 = sustentação institucional +- Compra: 20 > 50, 50 sobe, preço acima das duas +- Venda: 20 < 50, 50 cai, preço abaixo das duas +- Lateral: 50 reta + cruzamentos frequentes da 20 + +Essa dupla é excelente para reduzir ruído e manter operações a favor do fluxo dominante. + +# Teoria Operacional: MME 9 e MME 20 (Day Trade) + +## 1. Objetivo +Este material define como usar apenas as médias de 9 e 20 períodos para classificar o mercado em: +- Compra (fluxo comprador válido) +- Lateralização (sem vantagem estatística) +- Venda (fluxo vendedor válido) + +A lógica central é simples: a MME 9 representa velocidade de curto prazo e a MME 20 representa direção base do movimento intraday. + +--- + +## 2. Função de cada média + +### MME 9 (curto prazo) +- É a média mais rápida. +- Mostra aceleração imediata do preço. +- Reage primeiro às mudanças de momentum. + +### MME 20 (estrutura intraday) +- É a média de referência para tendência no day trade. +- Filtra ruído da 9. +- Funciona como eixo de "valor" do pregão: quando o preço afasta demais da 20, aumenta chance de correção. + +--- + +## 3. Leitura correta da dupla 9/20 +A leitura não deve usar só cruzamento. Deve combinar 3 fatores ao mesmo tempo: + +1. Ordem entre médias (9 acima ou abaixo da 20) +2. Inclinação da 20 (subindo, caindo ou reta) +3. Posição do preço (acima/abaixo das duas) + +Sem essa combinação, o sinal fica frágil e gera entradas em lateralidade. + +--- + +## 4. Estado de COMPRA (habilitar compra) +Considere compra habilitada quando houver confluência: + +- MME 9 acima da MME 20 +- MME 20 inclinada para cima +- Preço acima da MME 9 e da MME 20 + +### Interpretação +- Fluxo comprador dominante +- Pullbacks na região da 9/20 podem ser oportunidades de continuidade + +### Invalidar compra (desabilitar) +- Preço perde a MME 9 com sequência de fraqueza +- MME 9 cruza para baixo da 20 +- MME 20 perde inclinação e fica reta + +--- + +## 5. Estado de VENDA (habilitar venda) +Considere venda habilitada quando houver confluência: + +- MME 9 abaixo da MME 20 +- MME 20 inclinada para1 baixo +- Preço abaixo da MME 9 e da MME 20 + +### Interpretação +- Fluxo vendedor dominante +- Repique até 9/20 pode ser ponto de continuação de baixa + +### Invalidar venda (desabilitar) +- Preço recupera a MME 9 com força +- MME 9 cruza para cima da 20 +- MME 20 perde inclinação e fica reta + +--- + +## 6. Estado de LATERALIZAÇÃO (não habilitar compra nem venda) +Trate como lateral quando houver qualquer um destes cenários: + +- MME 9 cruzando a 20 repetidamente em poucos candles +- MME 20 com baixa inclinação (reta) +- Preço alternando acima/abaixo das médias sem continuidade +- Distância entre 9 e 20 muito curta e sem expansão + +### Regra prática +Quando lateralizar, a melhor decisão é reduzir agressividade ou não operar tendência. + +--- + +## 7. Regras objetivas para semáforo operacional +Você pode usar a classificação abaixo como padrão visual: + +- Verde: compra habilitada (confluência completa) +- Vermelho: venda habilitada (confluência completa) +- Cinza: lateralização/indefinição (sem habilitação) +- Dourado: continuação após pivô já validado + +Obs.: Dourado não substitui direção. Ele reforça continuidade depois que compra/venda já foi validada pelas médias e estrutura. + +--- + +## 8. Erros comuns com MME 9 e 20 + +1. Operar só porque houve cruzamento da 9 na 20. +2. Ignorar inclinação da MME 20. +3. Comprar/vender com preço esticado muito longe da 20. +4. Forçar operação em período de abertura com volatilidade desorganizada. +5. Não separar cenário de tendência de cenário de lateralização. + +--- + +## 9. Checklist pré-operação (rápido) +Antes de cada entrada, validar: + +1. 9 está do lado correto da 20? +2. 20 está inclinada na direção da operação? +3. Preço está do mesmo lado das duas médias? +4. Existe estrutura (rompimento/pivô) confirmando a direção? +5. Não é lateralização? + +Se qualquer item falhar, não habilitar operação. + +--- + +## 10. Resumo executivo +- MME 9 = velocidade +- MME 20 = direção +- Compra: 9 > 20, 20 sobe, preço acima das duas +- Venda: 9 < 20, 20 cai, preço abaixo das duas +- Lateralização: cruzamentos frequentes + 20 reta + preço sem continuidade + +A consistência no day trade vem mais de filtrar operações ruins do que de aumentar quantidade de entradas. + +# Teoria Operacional: Médias 9, 20 e 50 (Confluência de Direção + Sustentação) + +## 1. Objetivo +Este material define como usar a combinação 9/20/50 para classificar o mercado em: +- Compra habilitada +- Venda habilitada +- Lateralização / bloqueio + +A lógica da tripla: +- 9 = velocidade do movimento +- 20 = direção operacional +- 50 = sustentação institucional + +Quando as três convergem, a probabilidade de continuidade aumenta. Quando divergem, o risco de sinal falso sobe. + +--- + +## 2. Função de cada média na prática + +### MME 9 (timing) +- Mostra aceleração imediata. +- É sensível e rápida para gatilho. +- Sozinha gera muito ruído. + +### MME 20 (direção) +- Define o eixo da tendência intraday. +- Filtra parte dos ruídos da 9. +- É base para leitura de pullback. + +### Média 50 (filtro institucional) +- Mostra se o movimento tem sustentação. +- Evita operar impulsos curtos contra o fluxo maior. +- Funciona como suporte/resistência dinâmica de médio prazo. + +--- + +## 3. Leitura correta da combinação 9/20/50 +Não usar só cruzamento da 9 na 20. A leitura precisa combinar: + +1. Ordem das médias (9, 20 e 50) +2. Inclinação da 20 e da 50 +3. Posição do preço em relação às três +4. Estrutura de mercado (rompimento/pivô) + +Sem esses blocos, a qualidade do sinal cai. + +--- + +## 4. Estado de COMPRA (habilitar compra) +Confluência ideal de compra: + +- 9 acima da 20 +- 20 acima da 50 +- 20 e 50 inclinadas para cima +- Preço acima da 9, 20 e 50 +- Rompimento/pivô de alta confirmado + +### Interpretação +- Há aceleração (9), direção (20) e sustentação (50). +- Pullback na 9/20 ou na faixa 20-50 pode oferecer entrada de continuidade. + +### Invalidar compra +- Preço perde a 20 e falha em retomá-la +- 9 cruza para baixo da 20 com sequência de fraqueza +- 20 perde inclinação e aproxima da 50 +- Preço perde a 50 com continuidade + +--- + +## 5. Estado de VENDA (habilitar venda) +Confluência ideal de venda: + +- 9 abaixo da 20 +- 20 abaixo da 50 +- 20 e 50 inclinadas para baixo +- Preço abaixo da 9, 20 e 50 +- Rompimento/pivô de baixa confirmado + +### Interpretação +- Há aceleração vendedora (9), direção de baixa (20) e sustentação (50). +- Repique até 9/20 ou faixa 20-50 pode gerar continuação de venda. + +### Invalidar venda +- Preço recupera a 20 com força +- 9 cruza para cima da 20 +- 20 perde inclinação e aproxima da 50 +- Preço recupera a 50 com continuidade + +--- + +## 6. Estado de LATERALIZAÇÃO (não habilitar direção) +Tratar como lateralização quando houver: + +- Cruzamentos frequentes entre 9 e 20 +- 20 sem inclinação clara (reta) +- 50 sem inclinação clara +- Preço cruzando as três médias sem continuidade +- Distância curta entre 20 e 50 (compressão) + +### Regra prática +Sem expansão entre 20 e 50, reduzir agressividade. A chance de whipsaw aumenta. + +--- + +## 7. Semáforo operacional sugerido +- Verde: compra habilitada (confluência completa) +- Vermelho: venda habilitada (confluência completa) +- Cinza: lateralização/indefinição +- Dourado: continuidade após pivô já validado pela direção + +--- + +## 8. Erros comuns com 9/20/50 +1. Operar só o cruzamento da 9 na 20 sem filtro da 50. +2. Ignorar inclinação da 20 e da 50. +3. Comprar/vender muito longe da 20 (esticamento). +4. Confundir repique curto com reversão real. +5. Operar contra a 50 em tendência forte. +6. Não filtrar abertura turbulenta. + +--- + +## 9. Checklist pré-operação (objetivo) +Antes de habilitar compra/venda: + +1. 9 está do lado correto da 20? +2. 20 está do lado correto da 50? +3. 20 e 50 estão inclinadas na direção da operação? +4. Preço está do mesmo lado das três médias? +5. Existe estrutura (rompimento/pivô) confirmando? +6. Não é lateralização/compressão? + +Se qualquer item falhar, não habilitar direção. + +--- + +## 10. Resumo executivo +- 9 = timing +- 20 = direção +- 50 = sustentação +- Compra forte: 9 > 20 > 50 + inclinação positiva + preço acima das três +- Venda forte: 9 < 20 < 50 + inclinação negativa + preço abaixo das três +- Lateral: médias comprimidas, cruzamentos frequentes, preço sem sustentação + +A combinação 9/20/50 é uma das mais úteis para equilibrar rapidez de entrada e proteção contra sinais falsos. + +--- + +## 11. Alvos Máximos por Timeframe (Day Trade) + +Referência prática de objetivo máximo por operação: + +- **2 min:** buscar no máximo **80 a 200 pontos** +- **5 min:** buscar no máximo **150 a 350 pontos** +- **15 min:** buscar no máximo **300 a 700 pontos** +- **30 min:** buscar no máximo **500 a 1.000 pontos** +- **45 min:** buscar no máximo **700 a 1.400 pontos** + +### Regra de uso +- Em mercado lateral/baixo impulso, trabalhar no **piso** da faixa. +- Em mercado direcional com fluxo forte, trabalhar no **meio/topo** da faixa. +- Em timeframes menores (2 e 5), priorizar **parcial + proteção** ao atingir alvo intermediário. + +# Teoria Operacional: Médias Móveis (O GPS do Mercado) + +## Tabela de Contexto Operacional (Como Operar as Médias) + +Use esta tabela como decisão rápida antes de qualquer entrada. + +| Contexto | Alinhamento das Médias | Distância / Inclinação | Leitura | Ação Operacional | +| :--- | :--- | :--- | :--- | :--- | +| **Compra Forte (Tendência Saudável)** | `Preço > MME9 > MME20 > MMA50 > MMA200` | MME20 e MMA50 inclinadas para cima + separação crescente | Fluxo comprador consistente | **Habilitar compra.** Buscar pullback em 9/20 ou faixa 20-50 | +| **Compra Moderada** | `Preço > MME20 > MMA50` (9 pode oscilar) | Inclinação positiva, porém separação menor | Tendência de alta com menos impulso | **Compra seletiva.** Exigir candle gatilho e gestão curta | +| **Venda Forte (Tendência Saudável)** | `Preço < MME9 < MME20 < MMA50 < MMA200` | MME20 e MMA50 inclinadas para baixo + separação crescente | Fluxo vendedor consistente | **Habilitar venda.** Buscar repique para 9/20 | +| **Venda Moderada** | `Preço < MME20 < MMA50` (9 pode oscilar) | Inclinação negativa, porém separação menor | Tendência de baixa com menos impulso | **Venda seletiva.** Exigir confirmação estrutural | +| **Lateral (Médias Emboladas)** | Cruzamentos frequentes entre 9 e 20; 20 próxima da 50 | Inclinação fraca/flat | Sem vantagem estatística em tendência | **Não operar tendência.** Aguardar expansão das médias | +| **Esticado Acima da 20** | Preço muito distante da MME20 em alta | Distância excessiva da 20 (elástico tensionado) | Risco de regressão à média | **Evitar novas compras.** Priorizar realização/parcial | +| **Esticado Abaixo da 20** | Preço muito distante da MME20 em baixa | Distância excessiva da 20 | Risco de repique contra tendência | **Evitar novas vendas.** Proteger lucro | +| **Conflito com MMA200** | Curto prazo aponta compra, mas preço abaixo da 200 (ou inverso) | 200 contra a direção local | Regime misto / turbulência | **Reduzir mão ou aguardar.** Priorizar direção da 200 | +| **Pullback na Zona 20-50** | Tendência já definida e preço corrige para 20/50 | Inclinação ainda favorável | Reteste técnico de continuação | **Procurar gatilho de Price Action** (engolfo/martelo/estrela confirmada) | + +### Regras de habilitação (resumo prático) +- **Habilitar compra:** alinhamento de alta + inclinação positiva + sem esticamento + sem conflito relevante com 200. +- **Habilitar venda:** alinhamento de baixa + inclinação negativa + sem esticamento + sem conflito relevante com 200. +- **Bloquear operação:** médias comprimidas, 20 flat, distância extrema da 20 ou janela de notícia. + +### Distância mínima segura (referência prática) + +| Par de Médias | Distância mínima segura (%) | Referência em pts (WIN ~130.000) | Faixa ideal (%) | Faixa ideal em pts | +| :--- | :--- | :--- | :--- | :--- | +| **MME9 x MME20** | **0,02%** | ~**26 pts** | **0,03% a 0,05%** | ~**39 a 65 pts** | +| **MME20 x MMA50** | **0,05%** | ~**65 pts** | **0,05% a 0,35%** | ~**65 a 455 pts** | + +- **Leitura:** abaixo do mínimo, considerar mercado comprimido/lateral e reduzir agressividade. +- **Observação:** pontos variam com o preço do índice; usar a referência como guia prático. + +## 1. O Setup de Médias (A Família) +Cada média tem uma função específica e uma "personalidade". A combinação de Aritméticas (MMA) e Exponenciais (MME) equilibra a reação rápida com a estabilidade institucional. + +* **9 MME (Amarela):** *O Gatilho Rápido.* Aceleração imediata. Se o preço perde a 9, o momentum de curtíssimo prazo acabou. Usada para condução agressiva (Trailing Stop). +* **14 MME (Laranja):** *O Filtro.* Ajuda a evitar violinos da 9. Funciona como uma zona de respiro para a tendência rápida. +* **20 MME (Fuchsia):** *A Mestra.* A média mais importante para Swing Trade e Day Trade de tendência. É o "fio condutor" ou a "espinha dorsal" do movimento saudável. +* **50 MMA (Ciano):** *A Institucional.* Média Aritmética (Simples). Respeitada por fundos grandes e tesourarias. Funciona como suporte de tendência secundária e defesa de médio prazo. +* **200 MMA (Branca):** *O Rei.* Média Aritmética. Define se o mercado é de Alta (Bull) ou Baixa (Bear) no longo prazo. É um muro de concreto; difícil de romper no primeiro toque. + +## 2. O Espaço entre as Médias (Alinhamento e Leque) +A distância visual entre as linhas conta a história da força da tendência. + +* **Leque Aberto (Expansão):** Quando a 9, 20, 50 e 200 estão alinhadas na ordem correta e se afastando umas das outras. + * *Significado:* Tendência Forte e Saudável (Power Trend). + * *Ação:* Operar pesado a favor. Comprar qualquer pullback. +* **Médias Emboladas (Contração/Twist):** Quando as linhas se cruzam repetidamente, andam juntas na horizontal ou a 9 cruza a 20 para um lado e a 50 está do outro. + * *Significado:* Lateralidade / Acumulação / Briga. O mercado está sem direção clara. + * *Ação:* **Não operar tendência.** O sistema de médias falha aqui. Use osciladores ou opere extremos (suporte/resistência). + +## 3. O Espaço entre Preço e Média (Afastamento/Elástico) +O preço tem uma relação de "retorno à média". Ele foge (euforia/pânico), mas sempre volta para o preço justo. + +* **Esticado (Longe da Média):** Se o candle atual (seja no Diário ou 15m) está visualmente distante da Média de 20 (Fuchsia) ou 200 (Branca). + * *Risco:* Regressão à Média. O "elástico" pode estourar e o preço voltar violentamente contra você. + * *Ação:* **Proibido abrir novas posições a favor.** Realizar lucros parciais ou totais. +* **Zona de Valor (Perto da Média):** Quando o preço toca ou chega perto da região entre a 20 e a 50. + * *Oportunidade:* É o ponto de entrada com melhor Risco/Retorno. O Stop fica barato (protegido atrás da média). + +## 4. Cruzamento de Médias (Sinais de Fluxo) + +* **Cruzamento de Gatilho (9 x 20):** + * *Compra:* 9 (Amarela) cruza 20 (Fuchsia) para cima. Indica entrada de fluxo comprador rápido. + * *Venda:* 9 cruza 20 para baixo. +* **Cruzamento Estrutural (Golden/Death Cross - 50 x 200):** + * *Golden Cross:* 50 (Ciano) cruza 200 (Branca) para cima. Sinal clássico de Bull Market. + * *Death Cross:* 50 cruza 200 para baixo. Sinal de Bear Market. + +## 5. Médias sem Confluência (O Perigo) +Quando as médias curtas (9/20) apontam para um lado, mas as longas (50/200) apontam para outro ou estão flat (retas). +* *Cenário:* Preço sobe acima da 20, mas bate de frente na 200 que está caindo. +* *Ação:* Operar com mão leve ou aguardar. É uma zona de turbulência onde o preço fica "pingando" entre as médias até decidir um lado. + +## 5.1. O Calcanhar de Aquiles (Lateralidade) +* **O Problema:** Em fases de Acumulação (Fundo) ou Distribuição (Topo), a **MME 20** fica horizontal e a **VWAP** fica no meio do preço. +* **Sintoma:** O sistema gera sinais falsos de rompimento (Violinos) pois a média inclina levemente com qualquer candle de força e logo reverte. +* **Solução:** Se a MME 20 estiver "Flat" (sem inclinação clara visualmente) ou o preço estiver cruzando a VWAP repetidamente, **NÃO OPERE** setups de tendência. Aguarde o rompimento confirmado da estrutura (Pivô). + +## 6. Zonas de Suporte e Resistência Dinâmicos +Diferente de linhas horizontais fixas, as médias se movem com o preço, oferecendo pontos de entrada dinâmicos. + +* **A Defesa da 20 (Fuchsia):** Em tendências fortes, o preço bate na 20 e volta a subir imediatamente. É o "colchão" do mercado. +* **A Zona de Confluência (20-50):** A região entre a MME 20 e a MMA 50 é a "Zona de Compra Institucional" em tendências de alta. Se o preço entrar ali e deixar um candle de sinal (Martelo/Engolfo), é compra forte. +* **O Primeiro Toque na 200:** Estatisticamente, o primeiro toque na média de 200 após um longo tempo gera um repique contra o movimento. Funciona como uma barreira psicológica. + +## 7. Operacional por Timeframe + +### Gráfico Diário (Visão Macro - O Mapa) +* **Foco:** 20 (Fuchsia) e 200 (Branca). +* **Análise:** + * Onde está o preço em relação à 20? (Acima = Alta / Abaixo = Baixa). + * Qual a inclinação da 20? + * Qual a distância para a 200? (Espaço para o preço correr). +* **Regra:** Se o Diário está muito esticado da 20, evite rompimentos no 15m, pois o "elástico" diário pode puxar de volta. + +### Gráfico 15 Minutos (Execução - O Gatilho) +* **Foco:** 9 (Amarela), 20 (Fuchsia) e 50 (Ciano). +* **Setup de Power Breakout:** As médias de 9 e 20 colam no preço lateralizado, empurrando-o contra uma resistência, enquanto a 50 vem logo abaixo dando suporte. O rompimento aqui é explosivo. +* **Setup de Pullback (Gift):** + 1. Preço rompe e se afasta. + 2. Preço volta suavemente até a 20 (Fuchsia) ou a região entre 20 e 50. + 3. Deixa um candle de reversão (Price Action). + 4. Entrada na superação da máxima. + +--- +*Resumo da Hierarquia:* +1. **200 (Branca):** Define o Clima (Sol ou Chuva). +2. **50 (Ciano):** Define o Terreno (Suporte/Resistência Forte). +3. **20 (Fuchsia):** Define a Estrada (Tendência). +4. **9/14 (Amarela/Laranja):** Define o Acelerador (Timing). + +## 9. A Relação Preço vs. Média (Posição e Distância) + +### Acima ou Abaixo da Média? +A posição do preço em relação a uma média define o território de negociação. + +* **Preço Acima da Média:** Significa que o preço atual é mais caro que a média dos últimos N períodos. Isso caracteriza um **Território Comprador**. Os participantes estão aceitando pagar mais, indicando força e otimismo. +* **Preço Abaixo da Média:** Significa que o preço atual é mais barato que a média. Caracteriza um **Território Vendedor**. Indica fraqueza e pessimismo. + +### Qual a Distância até Ela? (O Efeito Elástico) +A distância entre o preço e a média mede a **exaustão** ou **oportunidade**. + +* **Longe da Média (Esticado):** O preço subiu ou caiu rápido demais, sem pausas. O "elástico" está tensionado. + * **Significado:** Risco altíssimo de **Regressão à Média**. Quem entrou cedo começa a realizar lucro, forçando o preço de volta. + * **Ação:** **Não entrar a favor do movimento.** É hora de realizar lucros ou esperar um pullback. +* **Perto da Média (Na Zona de Valor):** O preço retorna para "descansar" perto da média (principalmente a 20 MME). + * **Significado:** Oportunidade de entrar na tendência com **risco baixo**. O stop loss fica barato e tecnicamente bem posicionado. É o "preço justo" para os institucionais adicionarem posições. + +## 10. Análise de Pares (As Duplas Dinâmicas) +O poder das médias é revelado quando as analisamos em pares, observando a relação entre elas. + +### Par 1: Aceleração (9 MME vs. 20 MME) +* **O que significa:** Compara o **momentum imediato** (9) com a **tendência de curto prazo** (20). +* **Leitura:** + * **9 cruzando 20 para cima:** Sinal de entrada de fluxo comprador rápido. + * **9 se afastando da 20:** Aceleração forte, a tendência está ganhando força (Leque abrindo). + * **9 voltando para perto da 20:** O movimento está perdendo força, possível pausa ou pullback. + +### Par 2: Tendência vs. Institucional (20 MME vs. 50 MMA) +* **O que significa:** Compara a **tendência do trader** (20) com a **zona de defesa institucional** (50). +* **Leitura:** + * **Preço entre a 20 e a 50:** Esta é a **"Zona de Ouro" para Pullbacks**. O preço corrigiu na tendência de curto prazo e encontrou suporte institucional. É o local ideal para procurar por gatilhos de compra. + * **20 cruzando a 50:** Sinal de que a tendência de curto prazo está forte o suficiente para virar a tendência de médio prazo. + +### Par 3: Médio vs. Longo Prazo (50 MMA vs. 200 MMA) +* **O que significa:** Compara a **tendência secundária** (institucional) com a **tendência primária** (clima do mercado). É a visão macro. +* **Leitura:** + * **Golden Cross (Cruz de Ouro):** A 50 cruza a 200 para cima. Sinal clássico de início de um Bull Market de longo prazo. + * **Death Cross (Cruz da Morte):** A 50 cruza a 200 para baixo. Sinal de início de um Bear Market. + * **Preço entre a 50 e a 200:** Zona de forte indecisão. O preço está em tendência de baixa no médio prazo, mas ainda encontra suporte no longo prazo (ou vice-versa). Operar com cautela. + +## 8. Implementação Técnica (Arquivos e Cores) + +### Arquivos do Sistema +* **`fev_MediasSetupDiario.ntsl`:** Uso em **Day Trade** (5m, 15m). Foco em agilidade. +* **`fev_MediasSetupSemana.ntsl`:** Uso em **Swing Trade** (Diário, Semanal). Foco em macro tendências. + +### Legenda de Cores (Regra de Coloração) +Os scripts pintam os candles automaticamente baseados na qualidade do alinhamento das médias. + +| Cor do Candle | Significado | Condição Técnica (Alinhamento) | Ação Sugerida | +| :--- | :--- | :--- | :--- | +| **🔵 CIANO** | **Compra Forte** (Power Trend) | Leque Aberto de Alta:
Preço > 9 > 20 > 50 > 200 | **Acelerar.** Aumentar mão ou segurar o trade. Tendência explosiva. | +| **🟣 FUCHSIA** | **Venda Forte** (Power Trend) | Leque Aberto de Baixa:
Preço < 9 < 20 < 50 < 200 | **Acelerar.** Venda agressiva. O mercado está derretendo. | +| **🟢 VERDE** | **Compra Normal** | Tendência de Alta:
Preço > 20 > 50 | **Comprar.** Buscar pullbacks na média de 20. | +| **🔴 VERMELHO** | **Venda Normal** | Tendência de Baixa:
Preço < 20 < 50 | **Vender.** Buscar pullbacks na média de 20. | +| **⚪ CINZA** | **Neutro / Indecisão** | Médias Emboladas ou sem ordem clara. | **Aguardar.** O mercado está lateral ou em briga. Não operar tendência. | + +# Teoria Operacional: Afastamento Médio (Timing de Entrada) + +## 1. O Conceito do Elástico +O mercado funciona como um elástico preso a uma base móvel (a Média de 20 períodos). +* Você pode esticar o elástico (o preço se afasta da média com força). +* Mas eventualmente, a tensão fica insustentável e ele precisa relaxar (Retorno à Média). + +## 2. O que significa "Longe" (Esticado)? +É quando o preço subiu ou caiu muito rápido sem descansar. + +* **Visual:** Existe um grande espaço em branco ("vazio gráfico") entre o fechamento do candle e a linha da Média de 20. +* **O Problema do Stop:** O Stop Técnico correto deve ficar protegido atrás da média. Se o preço está longe, seu Stop fica financeiramente inviável (ex: 500 pontos no índice para buscar 100). +* **Psicologia:** Euforia (no topo) ou Pânico (no fundo). Quem comprou lá embaixo está com muito lucro e começa a vender para realizar, fazendo o preço cair. +* **Regra de Ouro:** **Jamais compre quando o preço estiver longe da média, mesmo que o candle seja bonito.** + +## 3. O que significa "Perto" (No Valor)? +É quando o preço está tocando, testando ou muito próximo da Média de 20 ou da região entre a 20 e a 50. + +* **Visual:** Os candles estão "beijando" ou perfurando levemente a linha da média. +* **A Vantagem:** O Stop Loss é curto, barato e técnico. +* **Institucional:** Grandes players não gostam de pagar caro. Eles esperam o preço voltar para a média (preço justo) para adicionar mais lotes. +* **Ação:** É aqui que procuramos o **Gatilho (Gold Signal / Price Action)**. + +## 4. Exemplo Prático (O Ciclo) + +1. **Rompimento (Longe):** O preço explode e sai da lateralidade. Fica "Longe". Não corra atrás do preço. +2. **Pullback (Aproximação):** O preço anda de lado ou cai lentamente. Os candles diminuem. O preço chega "Perto" da média. +3. **Gatilho (Perto):** Surge um candle de força (Ciano/Verde) apoiado na média. **COMPRA.** +4. **Expansão (Longe):** O preço explode novamente a favor da tendência e fica "Longe". **VENDA (Realize Lucro).** + +## 5. Como medir objetivamente? + +Embora o "olhômetro" funcione bem, existem ferramentas para medir isso: + +* **Keltner Channels:** Se o preço rompeu a banda superior, está "Longe". Se voltou para a linha central, está "Perto". +* **Oscilador de Afastamento:** Mede a distância percentual entre o fechamento e a média. + +--- + +### Resumo da Decisão + +| Estado do Preço | Distância da Média 20 | Ação Recomendada | +| :--- | :--- | :--- | +| **Esticado** | Grande espaço vazio | **Realizar Lucro / Não Entrar** | +| **No Valor** | Tocando ou próximo | **Procurar Entrada (Gatilho)** | +| **Cruzando** | Cruzando com força | **Atenção (Possível Reversão)** | \ No newline at end of file diff --git a/teoria_panorama_contexto.md b/teoria_panorama_contexto.md new file mode 100644 index 0000000..a650647 --- /dev/null +++ b/teoria_panorama_contexto.md @@ -0,0 +1,58 @@ +# Teoria Operacional: Análise Top-Down (Do Macro ao Micro) + +## 1. O Conceito +O mercado é fractal. O que acontece no Mensal domina o Semanal, que domina o Diário. Operar no intraday sem saber onde você está no mapa macro é como dirigir olhando apenas para o para-choque do carro da frente. + +## 2. Mensal (M1) - O Clima (Visão de Águia) +* **Horizonte de Tempo:** Olhar os últimos **2 a 5 anos**. +* **O que marcar:** + * **Topo Histórico e Fundo Histórico:** São ímãs de liquidez. O mercado sempre lembra deles. + * **Números Redondos (Psicológicos):** Ex: 100.000, 130.000 no Índice; 5.00, 6.00 no Dólar. + * **Grandes Zonas de Rejeição:** Procure por pavios longos onde o preço tocou e voltou violentamente. Essas regiões são "zonas de choque". +* **Objetivo:** Saber se estamos no "Verão" (Bull Market Secular) ou "Inverno" (Bear Market). + +## 3. Semanal (W1) - A Maré (Tendência Primária) +* **Horizonte de Tempo:** Olhar os últimos **1 a 2 anos**. +* **O que marcar:** + * **Pivôs Principais (Zig-Zag):** Marque o último Topo e o último Fundo confirmados. + * **Média de 200 (Branca):** Onde ela está? Se o preço está longe dela, cuidado com exaustão. + * **LTA / LTB Primária:** A linha diagonal que segura a tendência do ano. +* **Objetivo:** Definir a **Tendência Primária**. + * *Regra:* Se o Semanal está subindo, suas vendas no Day Trade serão curtas (contra-tendência/correção). Seus trades longos serão de compra. + +## 4. Diário (D1) - A Onda (Viés do Dia) +* **Horizonte de Tempo:** Olhar os últimos **3 a 6 meses**. +* **O que marcar:** + * **Gaps Abertos:** O mercado odeia vazios e tende a fechá-los. Marque o início e fim do gap. + * **Médias (20 e 50):** O preço está acima ou abaixo? Está "esticado" (longe) ou "no valor" (perto)? + VER: Teoria_Afastamento.md + * **Inside Bars / Engolfos Recentes:** Marque a máxima e mínima do candle de ontem e anteontem. +* **Objetivo:** Definir o **Viés Imediato**. "Hoje eu procuro compra ou venda?". + +## 5. Intraday (60m / 15m) - O Momento (Execução) +* **Horizonte de Tempo:** Olhar as últimas **1 a 2 semanas**. +* **O que marcar:** + * **Pontos do Dia Anterior:** Máxima, Mínima, Fechamento e Ajuste. + * **VWAP Semanal:** Onde está o preço médio da semana atual? + * **Pivôs Intraday:** A estrutura de alta/baixa imediata. +* **Objetivo:** **Timing.** É aqui que você aplica o `fev_PriceAction` e clica. + * **Regra de Horário:** Aguardar 10:00 AM (formação do primeiro canal de 15m). + * **Timing de Candles (Janelas de Fluxo):** + * *5m:* Candle 20 (Início), Candle 50 (Meio), Candle 80 (Fim). + * *15m:* Candle 10 (Início), Candle 25 (Fim). + * **Alvos:** Projetar Fibonacci do pivô ou candle de força. Parciais em 50% e 61.8%. Alvo final em 100%. + +## 6. Tabela de Validade das Linhas + +| Timeframe | Tipo de Linha | Cor Sugerida | Validade | +| :--- | :--- | :--- | :--- | +| **Mensal** | Suporte/Resistência Histórico | Vermelho Espesso | Anos | +| **Semanal** | LTA/LTB, Pivôs | Amarelo | Meses | +| **Diário** | Gaps, Máximas/Mínimas | Branco | Semanas | +| **60m/15m** | Ajuste, VWAP, Pivô Micro | Ciano/Verde | Dias (1-3 dias) | + +## 7. Regra de Ouro da Confluência + +1. **Alinhamento Total:** Se Mensal, Semanal e Diário apontam para cima -> **Mão Cheia na Compra.** +2. **Correção:** Se Semanal sobe, mas Diário cai -> **Mão Leve ou Aguardar** (Você está operando um pullback do semanal). +3. **O Muro:** Nunca opere um rompimento de pivô no 15m (compra) se logo acima tiver uma Resistência Mensal marcada. A chance de falhar é de 80%. \ No newline at end of file diff --git a/teoria_priceAction_primeirocandle.md b/teoria_priceAction_primeirocandle.md new file mode 100644 index 0000000..f7138d9 --- /dev/null +++ b/teoria_priceAction_primeirocandle.md @@ -0,0 +1,199 @@ +# Teoria Operacional: O Primeiro Candle e o Tom do Dia + +## 1. O Conceito: Emoção vs. Razão +A abertura do mercado é o momento de maior ineficiência e volatilidade do dia. + +* **O Leilão:** Antes do mercado abrir, ordens de compra e venda se acumulam. Quando o sino toca, essas ordens são executadas simultaneamente, gerando um "vácuo" de liquidez. +* **Quem opera a abertura?** + * **Amadores:** Operam na emoção (notícias da noite, ansiedade). + * **Robôs de HFT:** Operam arbitragem e fechamento de gaps. + * **Institucionais (Smart Money):** Geralmente **esperam** a poeira baixar (10:00 - 10:30) para definir a tendência real. + +**A Regra de Ouro:** "Abertura é Emoção, Fechamento é Convicção." + +--- + +## 2. O Gap (O Contexto Invisível) +O Primeiro Candle não nasce do nada. Ele nasce em relação ao fechamento de ontem. O espaço entre eles (Gap) define o sentimento inicial. + +### A. Gap de Fuga (Breakaway Gap) +* **Cenário:** O preço abre rompendo uma resistência forte ou suporte de ontem. +* **Comportamento:** O primeiro candle é uma Barra de Força na direção do Gap. +* **Significado:** Urgência. O mercado não vai voltar para fechar o gap tão cedo. Tendência forte. + +### B. Gap de Exaustão (Trap) +* **Cenário:** O preço abre com um gap gigante, muito longe das médias. +* **Comportamento:** O primeiro candle tenta seguir o gap, mas deixa um pavio enorme e fecha contra. +* **Significado:** O movimento esticou demais. Probabilidade alta de reversão para fechar o gap. + +### C. Gap de Área (Common Gap) +* **Cenário:** O preço abre dentro do range (máxima/mínima) do dia anterior. +* **Comportamento:** Candles pequenos, sobrepostos. +* **Significado:** Lateralidade. O mercado está sem direção. + +--- + +## 3. A Regra Operacional do Sistema (Por que ignoramos?) + +No nosso Trade System, implementamos uma regra de código (`if Date <> Date[1]`) para pintar o primeiro candle de forma neutra ou apenas direcional (Verde/Vermelho), **sem gerar sinais de entrada** (Gold/Ciano). + +### Motivos Técnicos: +1. **Distorção de Indicadores:** As Médias Móveis e o IFR são calculados com base nos candles anteriores. Um gap grande distorce a matemática, gerando sinais falsos de cruzamento ou sobrecompra/sobrevenda nos primeiros minutos. +2. **Spread Alto:** Nos primeiros minutos, o spread (diferença compra/venda) é maior, encarecendo o Stop Loss. +3. **Violinos:** É comum o primeiro candle romper um topo e o segundo candle devolver tudo (Armadilha de Abertura). + +### Ação Recomendada: +* **Observador:** Use o primeiro candle apenas para marcar **Suporte e Resistência** (Máxima e Mínima do dia). +* **Executor:** Só comece a clicar a partir do **segundo candle** ou após o primeiro pullback. + +--- + +## 4. Estratégias Derivadas (ORB - Opening Range Breakout) + +Embora não operemos *dentro* do primeiro candle, usamos seus limites como fronteiras. + +### O Setup de Rompimento da Primeira Hora (ou 15m) +Marque a Máxima e a Mínima do primeiro candle de 15 minutos ou 30 minutos. + +1. **Zona de Compra:** Se o mercado rompe e fecha **acima** da Máxima do primeiro candle. + * *Viés:* O dia tende a ser de Alta. +2. **Zona de Venda:** Se o mercado rompe e fecha **abaixo** da Mínima do primeiro candle. + * *Viés:* O dia tende a ser de Baixa. +3. **Zona de Armadilha (No Trade Zone):** Enquanto o preço estiver **dentro** do corpo do primeiro candle. + * *Viés:* Consolidação. Operar apenas nas extremidades (vender topo, comprar fundo). + +--- + +## 5. Integração com VSA (Volume) + +O primeiro candle quase sempre tem o **maior volume do dia**. A análise deve ser feita na relação Esforço vs. Resultado. + +* **Candle Pequeno com Volume Gigante:** + * *Diagnóstico:* Absorção. Muita briga, mas o preço não saiu do lugar. + * *Previsão:* O lado que for rompido vai gerar um movimento explosivo. + +* **Candle Gigante com Volume Gigante:** + * *Diagnóstico:* Iniciativa Profissional. + * *Previsão:* Continuação da tendência. + +* **Candle Gigante com Volume Baixo:** + * *Diagnóstico:* Vácuo de Liquidez (Fake). + * *Previsão:* O preço vai voltar facilmente, pois não houve barreira. + +--- + +## 6. O Setup de Iniciativa Profissional (A Exceção) + +Quando o primeiro candle é uma **Barra de Força (Corpo > 70%)** com **Volume Climático (> 2x Média)**, temos uma "Iniciativa Profissional". + +* **O que muda?** O dia ganha um **Viés Obrigatório**. +* **Regra de Influência:** + 1. **Se a Iniciativa for de COMPRA:** O sistema deve ignorar vendas de reversão. Procurar apenas por Pullbacks de compra (Gift, Bandeira) ou rompimentos a favor. + 2. **Se a Iniciativa for de VENDA:** O sistema deve ignorar compras. Foco total na venda. + 3. **Validade:** O viés dura até que a mínima (na compra) ou máxima (na venda) do primeiro candle seja violada. + +*Resumo: O Primeiro Candle define o campo de batalha, mas a guerra só começa depois.* + +--- + +## 7. VWAP Diária vs VWAP Semanal (Como usar sem overfitting) + +### Regra de Prioridade +1. **VWAP Diária:** Referência principal para o intraday (curto prazo). +2. **VWAP Semanal:** Filtro de contexto macro da semana. + +### Interpretação Prática +* **Preço acima da VWAP diária e semanal:** contexto comprador mais limpo. +* **Preço abaixo da VWAP diária e semanal:** contexto vendedor mais limpo. +* **Conflito (acima de uma e abaixo da outra):** reduzir agressividade, priorizar rompimento confirmado. + +### Regra Operacional +* **Não usar VWAP isolada como gatilho de entrada.** +* Usar VWAP para **confirmar viés** do que o primeiro candle já mostrou em preço + volume. + +--- + +## 8. O que o Primeiro Candle costuma respeitar + +Em ordem de relevância prática: + +1. **Fechamento do dia anterior** (ímã de preço em dias de gap). +2. **Máxima e mínima do dia anterior** (fronteiras institucionais). +3. **Faixa do próprio 1º candle** (opening range inicial). +4. **Preço de abertura do dia** (nível psicológico e de marcação de book). +5. **VWAP diária** (equilíbrio do pregão). +6. **VWAP semanal** (confluência direcional). + +> Quando o mercado ignora todos esses níveis com corpo forte e volume alto, aumenta a probabilidade de **iniciativa profissional**. + +--- + +## 9. Indicadores para analisar o Primeiro Candle + +### Núcleo obrigatório (sempre) +* **Price Action:** corpo, pavio, fechamento na máxima/mínima, relação corpo/range. +* **Volume Relativo:** volume do 1º candle vs candle anterior e vs média dos primeiros candles. +* **Gap:** distância da abertura vs fechamento anterior e posição dentro/fora do range de ontem. + +### Filtros de contexto (fortemente recomendados) +* **VWAP diária** (direção intraday). +* **VWAP semanal** (alinhamento da semana). +* **ATR** (se o 1º candle já consumiu parte grande do movimento típico). + +### Complementares (opcional) +* **Médias (9/20/50):** apenas como estrutura, não como gatilho imediato na abertura. +* **IFR:** evitar leitura isolada no 1º candle por distorção de gap. +* **Fluxo/Agressão:** excelente para confirmar iniciativa real quando disponível. + +--- + +## 10. Checklist Operacional de 60 segundos + +Antes de operar o segundo candle, responder: + +1. **Gap:** abriu fora do range de ontem ou dentro? +2. **Força:** corpo do 1º candle é > 70% do range? +3. **Volume:** houve volume climático (> 2x referência)? +4. **Localização:** preço está acima/abaixo da VWAP diária e semanal? +5. **Rejeição:** há pavio dominante indicando armadilha? + +### Leitura Final +* **4 ou 5 respostas alinhadas:** viés forte (buscar pullback e continuação). +* **2 ou 3 alinhadas:** viés moderado (reduzir mão e exigir confirmação). +* **0 ou 1 alinhada:** cenário de ruído (priorizar proteção e paciência). + +--- + +## 11. Mapa de Decisão (MVP) + +* **Primeiro candle forte + volume alto + alinhado com VWAP diária/semanal:** + *Viés obrigatório na direção do candle até perda da mínima/máxima dele.* + +* **Primeiro candle com pavio extremo e fechamento fraco contra o gap:** + *Tratar como possível trap; aguardar confirmação no 2º candle.* + +* **Primeiro candle pequeno + volume alto (absorção):** + *Não antecipar; operar apenas rompimento validado da máxima/mínima.* + +--- + +## 12. Erros mais comuns (e como evitar) + +1. **Confundir abertura com tendência do dia:** esperar confirmação do segundo candle. +2. **Operar contra volume climático:** se houver iniciativa, evitar reversão precoce. +3. **Ignorar contexto de gap:** gap define o "campo" do primeiro movimento. +4. **Usar muitos indicadores simultâneos:** priorizar preço + volume + VWAP. +5. **Aumentar risco na abertura:** spread e ruído são maiores nos primeiros minutos. + +--- + +## 13. Conclusão + +O primeiro candle não é, em geral, candle de execução. É candle de **diagnóstico**. + +Ele serve para responder três perguntas: +1. **Quem tomou iniciativa?** (comprador ou vendedor) +2. **A iniciativa é real?** (volume + corpo + contexto) +3. **Onde está a fronteira do dia?** (máxima/mínima do primeiro candle) + +Quando essas respostas estão claras, a execução do restante do pregão fica simples: operar a favor do viés até prova em contrário. \ No newline at end of file diff --git a/teoria_priceaction.md b/teoria_priceaction.md new file mode 100644 index 0000000..6e067be --- /dev/null +++ b/teoria_priceaction.md @@ -0,0 +1,222 @@ +# Teoria Operacional: Price Action Puro (Leitura de Candles) + +## 1. O Conceito +Price Action é a habilidade de ler a psicologia do mercado através da formação bruta dos preços, sem a necessidade de indicadores atrasados. Cada candle conta uma história de batalha entre compradores e vendedores. + +O foco aqui não é apenas o "desenho" do candle, mas **onde** ele aparece e **como** ele fecha. + +## 2. Lógica Operacional (Gatilhos) +Buscamos identificar desequilíbrios momentâneos que geram oportunidades de alta probabilidade. + +### Padrões de Continuação (Força) +* **Barra de Ignição (Elephant Bar):** Um candle com corpo grande, pouco pavio e fechamento próximo à máxima/mínima. Indica que um lado assumiu o controle total. +* **Gift (Presente):** Após uma barra de força, o mercado faz um pequeno recuo (pullback) que não perde a mínima da barra anterior. É um "presente" para entrar a favor da tendência. + +### Padrões de Reversão (Exaustão/Rejeição) +* **Pinbar (Martelo/Estrela):** Um candle com corpo pequeno e pavio longo. O pavio mostra que o preço foi até uma região e foi violentamente rejeitado. +* **Engolfo:** Um candle que "engole" completamente o corpo do candle anterior, mostrando uma virada de mão súbita dos participantes. + +## 3. Regra de Coloração (O Semáforo) +A regra `fev_PriceAction.ntsl` traduz a psicologia dos candles em cores visuais. + +### 🔵 CIANO / 🟣 FUCHSIA = FLUXO FORTE (Momentum) +* **Ciano (RGB 0, 255, 255):** Barra de Força Compradora (Marubozu/Elefante). Corpo grande (>70% do range), fechamento muito próximo à máxima (pavio superior < 20%). +* **Fuchsia (RGB 255, 0, 255):** Barra de Força Vendedora. Corpo grande (>70% do range), fechamento muito próximo à mínima (pavio inferior < 20%). +* **Significado:** Urgência e Agressão Pura. O mercado quer ir rápido para uma direção e não aceita rejeição. + +### 🔵 AZUL ROYAL / 🟤 MARROM = EXAUSTÃO (Rejeição) +* **Azul Royal (RGB 65, 105, 225):** Exaustão de Compra. Candle com pavio superior muito longo (Shooting Star/Estrela). +* **Marrom (RGB 165, 42, 42):** Exaustão de Venda. Candle com pavio inferior muito longo (Hammer/Martelo). +* **Significado:** Armadilha. O preço tentou romper e falhou. Possível reversão. + +### 🟢 VERDE / 🔴 VERMELHO = PADRÃO TÉCNICO +* **Verde (RGB 0, 255, 0):** Padrão clássico de compra (ex: Engolfo de Alta ou Rompimento de Inside Bar para cima). +* **Vermelho (RGB 255, 0, 0):** Padrão clássico de venda (ex: Engolfo de Baixa ou Rompimento de Inside Bar para baixo). + +### 🟡 AMARELO = GOLD SIGNAL (Confluência Total) +* **Cor:** Amarelo (RGB 255, 255, 0). +* **Condição:** Barra de Força Pura (Ciano/Fuchsia) + A favor da Média Móvel de 20 + **Continuação** (Candle anterior também foi a favor). +* **Significado:** O "Sinal de Ouro". Une a força do candle, a inércia da tendência e a confirmação de fluxo contínuo. + +### ⚫ CINZA = NEUTRO +* **Cor:** Cinza (RGB 105, 105, 105). +* **Condição:** Candles pequenos, dojis sem direção ou lateralidade. +* **Ação:** Não fazer nada. + +## 4. Gerenciamento + +* **Entrada:** + * **Agressiva:** No fechamento do candle de sinal (Ciano/Fuchsia/Amarelo). + * **Conservadora:** No rompimento da máxima (compra) ou mínima (venda) do candle de sinal. +* **Stop Loss:** + * Tecnicamente, na extremidade oposta do candle de sinal. +* **Alvo:** + * Projeção de 100% do tamanho do candle de sinal (Risco:Retorno 1:1) ou até a próxima zona de liquidez (Suporte/Resistência). + +--- +*Estratégia baseada em Leitura de Candles (Al Brooks / Steve Nison)* + +## 5. Expansão de Conhecimento: Contexto é Rei + +Um Martelo (Marrom) não significa compra automática. O contexto define a qualidade do sinal. + +### A. Localização +* Um **Martelo** em um **Suporte** é um sinal de compra (Rank 5). +* Um **Martelo** no meio de uma lateralidade é ruído (Rank 0). + +### B. Tamanho Relativo +* Candles muito pequenos em relação à média (ATR) indicam falta de interesse. +* Candles gigantescos (Climáticos) podem indicar exaustão final, não força. O ideal é a barra de força que sai de uma contração. + +### C. Inside Bars (Harami) +* Representam indecisão ou pausa. O rompimento de uma Inside Bar a favor da tendência prévia é um setup poderoso de continuidade. + +--- + +## 6. Alvos Máximos por Timeframe (Price Action) + +Para evitar devolução de lucro, usar teto de objetivo por timeframe: + +- **2 min:** buscar no máximo **80 a 200 pontos** +- **5 min:** buscar no máximo **150 a 350 pontos** +- **15 min:** buscar no máximo **300 a 700 pontos** +- **30 min:** buscar no máximo **500 a 1.000 pontos** +- **45 min:** buscar no máximo **700 a 1.400 pontos** + +### Aplicação prática +- Sinal de força (Ciano/Fuchsia) com contexto limpo: trabalhar no meio/topo da faixa. +- Sinal de exaustão/rejeição (Azul/Marrom): priorizar alvo curto (piso da faixa). +- Em 2m e 5m, após parcial, proteger com stop técnico para não devolver ganho. + +# Teoria Operacional: Tipos de Candles, Tamanhos e Nomes (Classificação Rigorosa) + +## 1. O Princípio da Validação pelo Anterior +Um candle sozinho não significa nada. Para um padrão ser válido, ele precisa interagir com o candle anterior. +* Um **Martelo** só é um sinal de reversão se aparecer após um movimento de **baixa**. +* Um **Engolfo** só existe se houver algo para ser engolido (um candle oposto anterior). + +Esta teoria classifica os candles em 4 famílias, cada uma com uma cor distinta para identificação imediata. + +## 2. Família de Reversão (Sinais de Exaustão) +Indicam que a força dominante anterior falhou. + +### 🟤 Martelo (Hammer) - Rejeição de Fundo +* **Cor:** **Marrom** (RGB 165, 42, 42). +* **Anatomia:** Corpo pequeno (no terço superior), pavio inferior longo (> 2x o corpo), pouco ou nenhum pavio superior. +* **Contexto Obrigatório:** O candle anterior deve ser **Negativo** (Vendedor). +* **Psicologia:** Os vendedores tentaram empurrar o preço para baixo (continuar a queda anterior), mas falharam e o preço fechou perto da máxima. + +### 🔵 Estrela Cadente (Shooting Star) - Rejeição de Topo +* **Cor:** **Azul Royal** (RGB 65, 105, 225). +* **Anatomia:** Corpo pequeno (no terço inferior), pavio superior longo (> 2x o corpo), pouco ou nenhum pavio inferior. +* **Contexto Obrigatório:** O candle anterior deve ser **Positivo** (Comprador). +* **Psicologia:** Os compradores tentaram romper o topo, mas foram rejeitados violentamente. + +## 3. Família de Força (Sinais de Ataque) +Indicam que um lado assumiu o controle absoluto. + +### 🟢 Engolfo de Alta (Bullish Engulfing) +* **Cor:** **Verde** (RGB 0, 255, 0). +* **Anatomia:** Corpo fecha acima da máxima do candle anterior e abre abaixo (ou igual) ao fechamento anterior. Envolve todo o corpo prévio. +* **Contexto Obrigatório:** O candle anterior deve ser **Negativo**. +* **Psicologia:** Virada de mão total. A força compradora anulou a venda anterior. + +### 🔴 Engolfo de Baixa (Bearish Engulfing) +* **Cor:** **Vermelho** (RGB 255, 0, 0). +* **Anatomia:** Corpo fecha abaixo da mínima do candle anterior. Envolve todo o corpo prévio. +* **Contexto Obrigatório:** O candle anterior deve ser **Positivo**. +* **Psicologia:** Virada de mão total. A força vendedora anulou a compra anterior. + +### 🔵 Ciano / 🟣 Fuchsia (Barras de Ignição) +* **Cor:** **Ciano** (Compra) / **Fuchsia** (Venda). +* **Anatomia:** Corpo grande (> 70% do range total). Fechamento na extremidade (sem pavio contra). +* **Contexto:** Rompe a máxima/mínima do anterior com deslocamento. + +## 4. Família de Indecisão (Pausas) +Indicam equilíbrio ou acumulação de energia. + +### 🟠 Inside Bar (Harami) +* **Cor:** **Laranja** (RGB 255, 140, 0). +* **Anatomia:** A máxima é menor que a máxima anterior E a mínima é maior que a mínima anterior. O candle está "grávido" (contido). +* **Contexto:** Qualquer. +* **Psicologia:** O mercado contraiu a volatilidade. Geralmente precede um movimento explosivo (Breakout). +* **Operação:** Marcar a máxima e mínima do candle "Mãe" (o anterior) e operar o rompimento. + +### ⚪ Doji (Incerteza Total) +* **Cor:** **Branco** (RGB 255, 255, 255). +* **Anatomia:** Abertura e Fechamento praticamente iguais (Corpo < 10% do range). +* **Contexto:** Qualquer. +* **Psicologia:** Empate técnico. Ninguém ganhou a batalha naquele período. + +## 5. Tabela Resumo de Tamanhos + +| Tipo | Tamanho do Corpo | Tamanho do Pavio | Direção Anterior | Cor | +| :--- | :--- | :--- | :--- | :--- | +| **Martelo** | Pequeno (< 40%) | Grande (Inferior) | Baixa (Vermelho) | 🟤 Marrom | +| **Estrela** | Pequeno (< 40%) | Grande (Superior) | Alta (Verde) | 🔵 Azul Royal | +| **Engolfo Alta** | Grande | Irrelevante | Baixa (Vermelho) | 🟢 Verde | +| **Engolfo Baixa** | Grande | Irrelevante | Alta (Verde) | 🔴 Vermelho | +| **Inside Bar** | Irrelevante | Irrelevante | N/A (Contido) | 🟠 Laranja | +| **Doji** | Nulo (< 10%) | Variável | N/A | ⚪ Branco | + +# Teoria Operacional: Price Action Avançado (Estrutura e Ciclos) + +## 1. Os 3 Ciclos do Mercado (Al Brooks) +O mercado não se move de forma aleatória. Ele alterna entre fases de desequilíbrio (tendência) e equilíbrio (lateralidade). Identificar o ciclo é mais importante que o candle. + +### Fase 1: Rompimento (Breakout / Spike) +* **Característica:** Movimento vertical forte. Candles grandes da mesma cor, poucos pavios, gaps abertos. +* **Psicologia:** Urgência. Todos concordam com o preço. +* **Ação:** Entrar a mercado ou em pullbacks curtos. **Não operar contra.** + +### Fase 2: Canal (Channel) +* **Característica:** A força diminui, mas a direção continua. O preço se move dentro de linhas paralelas. Aparecem correções mais profundas e sobreposições de barras. +* **Psicologia:** O consenso diminui, mas a inércia mantém o movimento. +* **Ação:** Comprar correções (Bandeiras) na tendência de alta. Começar a realizar lucros parciais. + +### Fase 3: Lateralidade (Trading Range) +* **Característica:** O preço anda de lado entre um suporte e uma resistência. O mercado "concorda" com um preço justo. +* **Psicologia:** Incerteza. Compradores acham barato no fundo, vendedores acham caro no topo. +* **Ação:** Comprar baixo, Vender alto. **Evitar rompimentos** (80% dos rompimentos de lateralidade falham). + +## 2. Contagem de Barras (Setup de Correção) +Uma técnica objetiva para cronometrar a entrada em tendências, evitando entrar na "faca caindo". + +* **Conceito:** Em uma tendência de alta, cada vez que o preço perde a mínima do candle anterior, inicia-se uma contagem de correção. +* **H1 (High 1):** A primeira vez que o mercado tenta retomar a alta (rompe a máxima de um candle anterior). Geralmente é uma armadilha em tendências fortes. +* **H2 (High 2):** A segunda tentativa de retomada. Se o mercado tentou cair duas vezes e falhou, a probabilidade de subir é alta. + * **Setup:** Em tendência de alta, ignore a primeira sinalização de compra (H1). Aguarde o preço tentar cair de novo e, se romper a máxima novamente (H2), entre comprando. + +## 3. Armadilhas de Rompimento (Traps) +O combustível dos movimentos fortes são os Stops dos traders presos. + +### Padrão 2B (Trader Vic) - A Falha de Topo/Fundo +Um dos setups mais poderosos de reversão. +1. **Setup:** O preço faz um Topo (T1). Corrige. Tenta romper o Topo anterior (T2). +2. **A Armadilha:** O preço supera a máxima de T1 por poucos ticks, mas perde força e **fecha abaixo** da máxima de T1. +3. **Gatilho:** Venda na perda da mínima do candle que tentou romper e falhou. +4. **Lógica:** Quem comprou o rompimento está preso e vai estopar (vender) assim que o preço virar, acelerando a queda. + +## 4. Movimentos Medidos (Measured Moves) +O mercado busca simetria geométrica. + +* **Leg 1 = Leg 2:** Em tendências saudáveis, a perna de alta após uma correção (Pivô) tende a ter o mesmo tamanho (amplitude) da perna anterior. +* **Projeção de Range:** Se o mercado rompe uma lateralidade de 500 pontos de altura, o alvo inicial é projetar esses 500 pontos na direção do rompimento. + +## 5. Fusão de Candles (Blended Candles) +Às vezes, um padrão não é óbvio em um único candle, mas somando dois, a verdade aparece. + +* **Como fazer:** + * Abertura = Abertura do 1º candle. + * Fechamento = Fechamento do 2º candle. + * Máxima = A maior máxima entre os dois. + * Mínima = A menor mínima entre os dois. + +* **Exemplo Prático:** + * Candle 1: Verde grande (Força). + * Candle 2: Vermelho grande que fecha abaixo da abertura do 1 (Engolfo de Baixa). + * **Resultado da Soma:** Um candle com corpo pequeno na parte inferior e um pavio superior enorme. Ou seja, um **Shooting Star (Estrela Cadente)**. + * **Conclusão:** Engolfo e Shooting Star são a mesma coisa, apenas em tempos gráficos diferentes. + +--- +*Expansão baseada em Al Brooks (Price Action Trends/Ranges) e Victor Sperandeo (Trader Vic)* \ No newline at end of file diff --git a/teoria_renko.md b/teoria_renko.md new file mode 100644 index 0000000..d59f82f --- /dev/null +++ b/teoria_renko.md @@ -0,0 +1,71 @@ +# Teoria Operacional: Renko (O Filtro de Ruído) + +## 1. O Conceito +O gráfico de Renko é atemporal. Ele ignora o tempo e foca exclusivamente na **variação do preço**. Um novo "tijolo" (brick) só fecha se o preço andar uma quantidade específica de ticks. + +* **Vantagem:** Elimina o "ruído" lateral e a ansiedade de candles pequenos que não vão a lugar nenhum. +* **Visual:** Mostra tendências e reversões de forma muito mais limpa e geométrica. + +## 2. Configuração (O Tamanho do Tijolo) +O segredo do Renko é o tamanho (R). +* **WIN (Índice):** + * **15R a 25R:** Para ver a Tendência Macro (substitui o 15m/60m). + * **10R a 12R:** Para Execução (substitui o 5m). +* **WDO (Dólar):** + * **6R a 8R:** Para Tendência. + * **4R a 5R:** Para Execução. + +## 3. O que procurar nas Zonas (Suporte e Resistência) + +No Renko, as zonas de suporte e resistência são muito mais óbvias. + +### A. Topos e Fundos Duplos (M e W) +* **O que é:** O preço sobe, faz um tijolo de reversão, cai, sobe de novo até o *mesmo nível exato* e reverte. +* **Sinal:** A geometria é perfeita. Se houver um pavio (sombra) no segundo toque rejeitando a zona, é venda confirmada. + +### B. O "Caixote" (Lateralidade) +* **Visual:** Tijolos alternando cores (Verde, Vermelho, Verde, Vermelho) lado a lado, sem deslocamento vertical. +* **Ação:** Não operar dentro. Marcar o teto e o chão do caixote e operar o rompimento (quando fechar 2 tijolos da mesma cor fora da zona). + +### C. Pullback na Média (O Setup de Ouro) +* **Configuração:** Média de 20 períodos (ou 9) inserida no gráfico Renko. +* **Cenário:** Tendência de alta (vários tijolos verdes). +* **O Gatilho:** O preço faz 1 ou 2 tijolos vermelhos (correção) que tocam na média. O próximo tijolo fecha verde. +* **Entrada:** Na superação desse tijolo de retomada. + +## 4. Renko com Pavio (Crucial) +No Profit, ative a opção de visualizar os pavios (sombras) dos tijolos. +* **Por que?** O tijolo mostra onde fechou, mas o pavio mostra até onde o preço foi e foi rejeitado. +* **Sinal de Exaustão:** Um tijolo verde em uma resistência com um pavio superior longo indica que compradores tentaram romper e falharam. É o equivalente ao "Shooting Star" no candle. + +## 5. Integração com o Setup (Confluência) + +Use o Renko para validar as zonas marcadas no `Teoria_AnaliseTopDown.md`. + +| Cenário | Gráfico de Candles (Tempo) | Gráfico de Renko (Preço) | Decisão | +| :--- | :--- | :--- | :--- | +| **Rompimento de Pivô** | Candle fecha acima da zona, mas com dúvida. | Tijolo fecha cheio e forte acima da zona. | **Confirmado.** | +| **Lateralidade** | Candles pequenos, pavios para todo lado. | Tijolos alternados (costura). | **Ficar de Fora.** | +| **Tendência** | Candles mistos (verdes e vermelhos). | Sequência de tijolos da mesma cor (Escada). | **Segurar a Operação.** | + +--- +*Dica:* O Renko é excelente para **Trailing Stop**. Enquanto os tijolos continuarem da mesma cor (ou fazendo fundos mais altos), você segura o trade. Sai apenas na inversão da cor. + +## 6. Renko em Timeframes Maiores (Swing e Position) + +O Renko é atemporal, mas podemos ajustar o tamanho do tijolo (R) para simular a visão de longo prazo (Diário, Semanal, Mensal). + +### Equivalência Aproximada (B3) + +| Visão (Timeframe) | Objetivo | WIN (Índice) | WDO (Dólar) | Ações (Ex: PETR4) | +| :--- | :--- | :--- | :--- | :--- | +| **Diário (1D)** | Swing Trade | **40R a 50R** | **12R a 15R** | ~0.5% a 1% do preço | +| **Semanal (1W)** | Position | **80R a 100R** | **25R a 30R** | ~2% a 3% do preço | +| **Mensal (1M)** | Investimento | **150R+** | **50R+** | ~5% a 10% do preço | + +### Como Operar (Setup Fractal) +1. **O Mapa (1W/1D):** Abra um gráfico com o Renko maior (ex: WIN 50R). + * Se os tijolos estão **Verdes**, a tendência macro é de alta. + * Se estão **Vermelhos**, é de baixa. +2. **A Execução (Intraday):** Vá para o seu gráfico operacional (ex: WIN 12R). + * Só aceite sinais (Gold Signal/Pivô) na direção do Renko Maior. \ No newline at end of file diff --git a/teoria_sentimentosTrade.rb b/teoria_sentimentosTrade.rb new file mode 100644 index 0000000..b881f37 --- /dev/null +++ b/teoria_sentimentosTrade.rb @@ -0,0 +1,65 @@ +# Teoria dos Sentimentos no Trade + +Este documento explora como os sentimentos podem influenciar as decisões de um trader e quais indicadores podem ajudar a identificar esses sentimentos de forma previsível. Abaixo está uma lista de sentimentos comuns e os indicadores que podem estar associados a eles, organizados em duas categorias: Sentimentos de Compra e Sentimentos de Venda. + +## Sentimentos de Compra + +### 1. Vontade +- **Indicadores Possíveis:** + - OBV (On-Balance Volume) indicando acumulação + - Cruzamento de Médias Móveis (indicando entrada de força compradora) + - Padrões de Price Action (como rompimentos de resistência) + +### 2. Confiança +- **Indicadores Possíveis:** + - ADX (Average Directional Index) indicando força de tendência + - Médias Móveis Exponenciais (EMA) alinhadas em direção à tendência + - Volume em Aumento Consistente + +### 3. Euforia +- **Indicadores Possíveis:** + - RSI (Índice de Força Relativa) em Sobrecompra + - Sequência de Candles de Alta sem Correção + - Expansão das Bandas de Bollinger + +### 4. Esperança +- **Indicadores Possíveis:** + - Divergência no IFR (Índice de Força Relativa) + - Redução no Volume de Venda + - Candles de Reversão (como Martelo) + +## Sentimentos de Venda + +### 1. Rejeição +- **Indicadores Possíveis:** + - Volume Anormal (indicando rejeição de preços em níveis específicos) + - Candles de Reversão (como Doji ou Martelo Invertido) + - Bandas de Bollinger (preço tocando ou ultrapassando as bandas externas) + +### 2. Cansaço +- **Indicadores Possíveis:** + - Divergência no IFR (Índice de Força Relativa) + - Redução no Volume de Negociação + - ATR (Average True Range) mostrando diminuição na volatilidade + +### 3. Medo +- **Indicadores Possíveis:** + - Índice de Volatilidade (VIX) em alta + - Candles de Forte Venda (como Marubozu de baixa) + - Aumento no Volume em Movimentos de Queda + +### 4. Frustração +- **Indicadores Possíveis:** + - Stop Loss Frequente em Movimentos Laterais + - Falha em Rompimentos (falsos rompimentos) + - RSI (Índice de Força Relativa) em zonas de sobrecompra ou sobrevenda sem continuidade + +### 5. Desespero +- **Indicadores Possíveis:** + - Aumento Repentino no Volume de Venda + - Candles com Sombras Longas de Baixa + - Queda Acentuada no Preço sem Suporte Visível + +## Conclusão + +Os sentimentos no trade podem ser difíceis de controlar, mas entender os indicadores que refletem esses sentimentos pode ajudar os traders a tomarem decisões mais racionais e menos emocionais. Este documento serve como um guia inicial para identificar padrões de comportamento emocional no mercado. \ No newline at end of file diff --git a/teoria_tendencia.md b/teoria_tendencia.md new file mode 100644 index 0000000..f47b8ea --- /dev/null +++ b/teoria_tendencia.md @@ -0,0 +1,151 @@ +# Teoria Operacional: Tendências (Seguindo o Fluxo) + +## 1. O Conceito +"A tendência é sua amiga até que ela acabe." +Uma tendência não é uma linha reta, é um ziguezague ordenado. Identificar a tendência é saber para qual lado a probabilidade está inclinada. + +* **Tendência de Alta:** O mercado faz Topos Mais Altos e Fundos Mais Altos. Os compradores estão dispostos a pagar cada vez mais caro. +* **Tendência de Baixa:** O mercado faz Topos Mais Baixos e Fundos Mais Baixos. Os vendedores aceitam vender cada vez mais barato. + +## 2. Identificação Objetiva (O Checklist) + +### A. Estrutura de Pivôs (Price Action Puro) +É a forma mais rápida de identificar. +* **Pivô de Alta:** O preço sobe, corrige (faz um fundo maior que o anterior) e rompe o topo anterior. +* **Pivô de Baixa:** O preço cai, repica (faz um topo menor que o anterior) e perde o fundo anterior. + +### B. A Média Mestra (MME 20) +No nosso sistema, a Média Móvel Exponencial de 20 períodos é o "Fio Condutor". +* **Inclinação:** Se a Média 20 está inclinada para cima, procure apenas compras. Se para baixo, apenas vendas. +* **Afastamento:** O preço tende a voltar para a média (imã). Comprar muito longe da média é perigoso (esticado). O ideal é comprar quando o preço "beija" a média. + +### C. Anatomia do Pivô Perfeito (Timing no 15m) +Um pivô precisa de tempo para convencer os players. + +* **Micro Pivô / Gift (1 a 3 candles de correção):** + * Geralmente ocorre em tendências muito fortes (Spike). É apenas uma pausa para respirar. Entrada agressiva. +* **Pivô Estrutural (5 a 12 candles de correção):** + * **O Ideal.** No 15m, isso representa de 1h a 3h de correção. Dá tempo da Média de 20 chegar no preço. É a estrutura mais confiável para Swing Trade ou Day Trade longo. +* **Pivô Complexo / Lateralidade (> 15 candles):** + * Se a correção demora demais, a tendência perdeu o "timing". O rompimento tende a falhar ou virar um rompimento de caixote (Power Breakout), que exige outra estratégia. + +## 3. Tipos de Tendência (A Força) + +### Tendência Forte (Spike and Channel) +* **Característica:** O preço sobe com força, quase sem correções. A Média de 20 serve como um suporte rígido. O preço mal toca nela e já explode. +* **Ação:** Não espere correções profundas. Entre em qualquer rompimento de máxima ou pequenas bandeiras. + +### Tendência Saudável (Escada) +* **Característica:** O preço sobe, corrige até a Média de 20 ou até o topo anterior rompido (Polaridade), e volta a subir. +* **Ação:** O melhor cenário para operar. Compre nos pullbacks (toques na média). É aqui que o **Gold Signal (Amarelo)** brilha. + +### Tendência Fraca (Canal Largo) +* **Característica:** Muita sobreposição de candles. O preço sobe, mas devolve quase tudo antes de subir de novo. Parece uma lateralidade inclinada. +* **Ação:** Cuidado. Prefira comprar apenas nos suportes do canal e realizar lucro rápido nas resistências. + +## 4. Sinais de Entrada a Favor da Tendência + +### O Setup de Correção (Pullback) +É a entrada clássica. +1. **Impulso:** O mercado faz uma perna de alta forte (Cores Ciano/Verde). +2. **Respiro:** O mercado corrige com candles pequenos/fracos (Cinza/Vermelho pequeno) em direção à Média de 20. +3. **Gatilho:** Surge um candle de retomada (Verde, Ciano ou Amarelo) que fecha acima da máxima do candle anterior. +4. **Stop:** Abaixo do fundo da correção. + +### O Setup de Rompimento (Breakout) +Para momentos de alta volatilidade. +1. **Acumulação:** O preço lateraliza ou faz uma flâmula após uma alta. +2. **Gatilho:** Uma Barra de Força (Ciano) rompe a resistência da flâmula. +3. **Ação:** Entrada no fechamento da barra ou na violação da máxima. + +## 5. Sinais de Fim de Tendência (Reversão) + +Como saber se a festa acabou? + +1. **Quebra da Linha de Tendência (LTA/LTB):** O primeiro sinal de alerta. A velocidade diminuiu. +2. **Falha de Topo (Padrão 2B):** Em uma alta, o preço tenta romper o topo anterior e falha, fechando abaixo. +3. **Clímax (Exaustão):** Após uma longa alta, aparece um candle gigantesco (muito maior que a média) longe das médias. Geralmente é o último suspiro dos compradores eufóricos antes da queda. + +## 6. Integração com as Cores (fev_PriceAction) + +* **🟡 Amarelo (Gold Signal):** É o sinal de **confirmação de tendência**. Ele só aparece se a média estiver a favor e houver continuidade. É o sinal mais seguro para aumentar posição. +* **🔵 Ciano / 🟣 Fuchsia:** São sinais de **impulso**. No início da tendência, são ótimos. Se aparecerem após uma alta prolongada (longe da média), podem ser clímax (exaustão). +* **⚫ Cinza:** Momento de **correção ou pausa**. Em uma tendência de alta, os candles de correção (vermelhos ou cinzas) devem ser pequenos e sem volume. + +--- +*Lembre-se: "Não tente adivinhar o topo. Deixe o mercado te tirar da tendência."* + +# Teoria Operacional: O Ciclo de Vida da Tendência (Anatomia da Reversão) + +## 1. O Conceito +Nenhum mercado sobe para sempre, nem cai para sempre. Entender a "idade" da tendência evita que você compre no topo (fase de morte) ou venda no fundo (fase de nascimento). + +Vamos mapear a transição de uma **Tendência de Alta** para uma **Tendência de Baixa** usando as cores do nosso sistema. + +--- + +## FASE 1: O Nascimento (A Quebra da Inércia) +O mercado estava parado (Lateralidade/Acumulação) e decide andar. + +* **O Cenário:** Baixa volatilidade. Médias emboladas. Muitos **Inside Bars (Laranja)** e **Dojis (Branco)**. +* **O Gatilho:** Surge uma **Barra de Ignição (Ciano)**. + * É um candle grande que rompe a resistência da lateralidade. + * Fecha na máxima. +* **Psicologia:** "Acordaram o gigante". Os institucionais decidiram levar o preço para cima. +* **Ação:** Comprar o rompimento ou o primeiro pullback. + +## FASE 2: A Vida Adulta (Inércia e Fluxo) +A tendência está saudável. O dinheiro entra fácil. + +* **O Cenário:** Topos e fundos ascendentes. O preço respeita a Média de 20. +* **Os Candles:** + * Maioria **Verde (Engolfo/Força)** ou candles normais positivos. + * As correções são pequenas, com candles **Cinzas** ou **Vermelhos pequenos**. +* **Psicologia:** Confiança. Quem compra ganha dinheiro. O medo de ficar de fora (FOMO) atrai o varejo. +* **Ação:** Comprar qualquer recuo (Pullback) que toque na média. + +## FASE 3: A Agonia (Sinais de Cansaço) +A tendência ainda é de alta, mas a "gasolina" está acabando. A volatilidade aumenta, mas o deslocamento diminui. + +* **Sinal 1: Encurtamento do Passo (Shortening of Thrust):** + * Os candles de alta ficam menores. + * Começam a aparecer muitos **Dojis (Branco)** no topo. +* **Sinal 2: A Rejeição (Avisos):** + * O preço tenta romper um topo e deixa uma **Estrela Cadente (Azul Royal)**. + * Isso mostra que, pela primeira vez, os vendedores bateram forte. +* **Psicologia:** Dúvida. "Será que sobe mais?". Os institucionais começam a realizar lucro (vender para o varejo atrasado). +* **Ação:** Apertar os Stops. Não abrir novas compras. + +## FASE 4: A Morte (O Evento de Reversão) +O momento exato onde o controle muda de mãos. + +* **O Gatilho:** Ocorre uma falha de topo (Tenta subir e não consegue) seguida de um golpe fatal. +* **O Candle Assassino:** Um **Engolfo de Baixa (Vermelho)** ou uma **Barra de Força Vendedora (Fuchsia)** que engole os últimos 2 ou 3 candles de alta. +* **Estrutura:** O preço perde o último fundo válido (Pivô de Baixa). +* **Psicologia:** Pânico. Quem comprou no topo está preso e começa a estopar (vender), acelerando a queda. +* **Ação:** Vender a perda da mínima do candle assassino. + +## FASE 5: O Renascimento (Tendência de Baixa) +Agora a inércia é de queda. O ciclo se inverte. + +* **O Cenário:** Topos e fundos descendentes. +* **Os Candles:** + * Barras de Força **Fuchsia** (Venda Agressiva). + * Correções (respiros) deixam **Martelos (Marrom)** que falham em reverter, servindo apenas como "bandeiras de baixa". +* **Ação:** Vender os repiques. + +--- + +## Resumo Visual da Transição (Alta -> Baixa) + +1. **Lateral:** ⚪ Doji / 🟠 Inside Bar +2. **Rompimento:** 🔵 Ciano (Barra Elefante) +3. **Tendência:** 🟢 Verde (Pullbacks pequenos) +4. **Topo/Exaustão:** 🔵 Azul Royal (Estrela) ou Clímax (Ciano gigante longe da média) +5. **Reversão:** 🔴 Vermelho (Engolfo de Baixa) +6. **Tendência de Baixa:** 🟣 Fuchsia (Aceleração) + +## Dica de Ouro: A Regra dos 3 Candles +Na dúvida se é apenas uma correção ou uma reversão, olhe para os próximos 3 candles após um sinal de topo: +* Se após uma **Estrela (Azul)**, o mercado faz um candle vermelho forte que fecha abaixo da mínima da Estrela -> **Reversão Confirmada**. +* Se após uma **Estrela (Azul)**, o mercado faz um candle cinza ou verde dentro da sombra da Estrela -> **Ainda é correção**. \ No newline at end of file diff --git a/teoria_tendencia_institucional.md b/teoria_tendencia_institucional.md new file mode 100644 index 0000000..d173167 --- /dev/null +++ b/teoria_tendencia_institucional.md @@ -0,0 +1,58 @@ +# Teoria Avançada: Suporte, Resistência, Tendências e Visão Institucional + +Este documento detalha a geometria do mercado e como alinhar a análise gráfica clássica com a atuação dos Grandes Players (Bancos e Fundos). + +## 1. Suporte e Resistência (A Memória do Mercado) + +O preço tem memória. Suportes e Resistências não são apenas linhas, são **zonas de interesse** onde compradores ou vendedores defenderam posições no passado. + +* **Princípio da Polaridade:** Uma resistência rompida vira suporte (e vice-versa). É o conceito mais confiável do Price Action. + * *Exemplo:* O preço bate em 100, cai, rompe o 100 e volta para testá-lo por cima. Se segurar, o 100 agora é "chão". +* **Números Redondos (Psicológicos):** Grandes instituições (como JP Morgan) tendem a colocar ordens em números cheios (ex: 100.000 no Índice, 5.00 no Dólar) para facilitar a execução de grandes lotes. +* **Validação:** Quanto mais toques em uma zona sem rompê-la, mais forte ela é. Porém, se tocada muitas vezes em curto espaço de tempo, ela enfraquece (a liquidez é consumida). + +## 2. Linhas de Tendência (LTA e LTB) + +As linhas de tendência mostram a **velocidade** e a **saúde** do movimento. + +* **Como traçar corretamente:** + * **LTA (Alta):** Conecte os **fundos** ascendentes. O mercado está sendo empurrado para cima. + * **LTB (Baixa):** Conecte os **topos** descendentes. O mercado está sendo empurrado para baixo. +* **Ângulo de Ataque:** + * *45 Graus:* Tendência saudável e sustentável. + * *Muito Inclinada (> 60º):* Exaustão (Clímax). Insustentável, geralmente corrige rápido. + * *Pouco Inclinada (< 30º):* Fraqueza ou acumulação. +* **Quebra da Linha:** O rompimento de uma LTA não significa reversão imediata, mas sim que a velocidade da tendência acabou. O preço costuma lateralizar antes de reverter. + +## 3. O Princípio do Retorno (Pullback e Regressão) + +O mercado respira. O "Retorno" é a oportunidade de entrar a favor da tendência com risco baixo. + +* **Pullback Clássico:** O preço rompe um nível (S&R) e volta para testá-lo (Polaridade). +* **Regressão à Média:** O preço se afasta demais da Média Móvel (elástico esticado) e tende a voltar para ela. + * *Regra:* Nunca compre longe da média em tendência de alta. Espere o preço voltar para perto dela ("Value Zone"). + +## 4. Visão Institucional ("O Jeito JP Morgan") + +Grandes bancos (JP Morgan, UBS, Goldman Sachs) não operam "padrões de candle". Eles operam **Liquidez** e **Preço Médio**. + +### A. VWAP (Volume Weighted Average Price) +É a "Média dos Tubarões". É o único indicador que todos os robôs institucionais respeitam. +* **Teoria:** Representa o preço médio ponderado por volume de todos os negócios do dia. +* **Uso Prático:** + * Se o preço está **acima** da VWAP, os compradores (institucionais) estão no controle e defendendo seus médios. Só pense em compra. + * Se o preço está **abaixo** da VWAP, os vendedores estão no controle. + * **Defesa:** Quando o preço volta na VWAP, é comum ver "absorção" (candles marrons/amarelos na nossa regra de coloração), pois os bancos defendem essa região para não ficarem no prejuízo. + +### B. Ptax (No Brasil) +É a taxa de câmbio oficial calculada pelo Banco Central. +* **Janelas de Briga:** Entre 10:00 e 13:10, o BC coleta taxas. Grandes players brigam para puxar o preço para cima ou para baixo nessas janelas para influenciar a taxa oficial. +* **Efeito:** Gera volatilidade artificial e pontos de suporte/resistência fortíssimos no Dólar (WDO). + +### C. Ajuste Diário (B3) +No mercado futuro, todos os players acertam as contas (pagam ou recebem) baseados no preço de Ajuste. +* **O Muro de Concreto:** O preço de Ajuste do dia anterior é o suporte/resistência mais forte do dia seguinte. É onde o dinheiro trocou de mão de verdade. + +--- +**Resumo Operacional:** +Use S&R e Linhas de Tendência para ver o desenho do mercado, mas use a **VWAP** e o **Ajuste** para saber onde os "Donos do Mercado" estão posicionados. \ No newline at end of file diff --git a/teoria_tendencia_pivots.md b/teoria_tendencia_pivots.md new file mode 100644 index 0000000..eaafc93 --- /dev/null +++ b/teoria_tendencia_pivots.md @@ -0,0 +1,81 @@ +# Teoria de Pivôs (Operacional Day Trade) + +## 1. Conceito Objetivo +Um pivô de continuação nasce quando o mercado: + +1. faz um **impulso** na direção principal, +2. entra em **retração** contra essa direção, +3. e depois **rompe o nível da retração** voltando ao sentido do impulso. + +A confirmação final vem quando o(s) candle(s) seguinte(s) fecham a favor do movimento. + +--- + +## 2. Estrutura Base do Pivô +Para aumentar assertividade, use esta sequência: + +- **Tendência prévia:** 2 candles no mesmo sentido. +- **Retração:** 2 candles contra a tendência. +- **Rompimento:** candle atual supera o topo/fundo da retração. +- **Confirmação:** 1 ou 2 candles após o rompimento fechando a favor. + +--- + +## 3. Quantidade de Candles por Timeframe +Referência prática para fortalecer pivô: + +| Timeframe | Perna (impulso/retração) | Confirmação pós-rompimento | +| :--- | :--- | :--- | +| **2 min** | 3 a 5 candles | 1 candle | +| **5 min** | 4 a 7 candles | 1 a 2 candles | +| **15 min** | 5 a 10 candles | 2 candles | + +Regra simples: +- Timeframe menor = mais ruído = confirmação mais rápida, porém menos robusta. +- Timeframe maior = menos ruído = confirmação mais lenta, porém mais confiável. + +--- + +## 4. Leitura Direcional + +### Pivô de Alta +- Tendência prévia de alta. +- Retração de baixa. +- Rompimento da máxima da retração. +- Fechamento(s) de confirmação acima do candle anterior. + +### Pivô de Baixa +- Tendência prévia de baixa. +- Retração de alta. +- Rompimento da mínima da retração. +- Fechamento(s) de confirmação abaixo do candle anterior. + +--- + +## 5. Hierarquia Visual (Setup Atual) +No operacional: + +- **Verde/Vermelho:** candle de confirmação do pivô (rompimento). +- **Dourado:** confirmação de sequência após o pivô (1 ou 2 candles, conforme parâmetro). +- **Cinza:** sem confirmação estrutural. + +--- + +## 6. Erros Comuns +- Operar pivô sem tendência prévia clara. +- Considerar qualquer pullback curto como retração válida. +- Entrar no primeiro rompimento sem confirmação. +- Ignorar contexto de horário e fluxo (abertura, PTAX, baixa liquidez). + +--- + +## 7. Regra de Ouro +Sem estrutura + rompimento + confirmação, não é pivô operacional. + +**Estrutura considerada no setup:** +- **Estrutura de Alta:** `Close > Highest(High[1], PeriodoEstrutura)` +- **Estrutura de Baixa:** `Close < Lowest(Low[1], PeriodoEstrutura)` + +Sem uma dessas duas condições, o pivô não é validado e o candle permanece **cinza**. + +No seu setup: **sem dourado, sem entrada** (quando estiver no modo mais seletivo). \ No newline at end of file diff --git a/teoria_volume.md b/teoria_volume.md new file mode 100644 index 0000000..ad11d03 --- /dev/null +++ b/teoria_volume.md @@ -0,0 +1,172 @@ +# Teoria Operacional: Volume Avançado (Além do VSA) + +## 1. As Duas Dimensões do Volume +Enquanto o VSA analisa o volume no **Tempo** (barra a barra), existem outras formas de ler a liquidez que revelam onde os grandes players estão posicionados. + +1. **Volume no Tempo (Vertical):** "Quanto" foi negociado naquele horário. (Foco do VSA). +2. **Volume no Preço (Horizontal):** "Onde" foi negociado o maior lote. (Foco do Volume Profile). + +--- + +## 2. VWAP (O Preço Justo Institucional) +A **VWAP (Volume Weighted Average Price)** não é uma média móvel comum. É a média de preço ponderada pelo volume financeiro de todos os negócios do dia. + +* **Por que importa?** Tesourarias e Robôs de execução usam a VWAP como benchmark. Se eles compram abaixo da VWAP, fizeram um bom negócio. Se compram acima, pagaram caro. +* **A Regra do Ímã:** O preço tende a voltar para a VWAP durante o dia, pois é o "valor justo" da sessão. +* **A Regra da Tendência:** + * Preço **ACIMA** da VWAP = Viés Comprador (Institucionais defendendo preço médio). + * Preço **ABAIXO** da VWAP = Viés Vendedor. + +### Setup: Pullback na VWAP +1. O preço rompe a VWAP com força (Barra de Ignição). +2. Volta suavemente para testar a linha da VWAP. +3. Deixa um gatilho de Price Action (Martelo/Engolfo) exatamente na VWAP. +4. **Entrada:** Na superação da máxima. + +--- + +## 3. Volume Profile (O Mapa de Liquidez) +Ferramenta que plota o volume no eixo vertical (preço), criando um histograma lateral. + +### Conceitos Chave: +* **POC (Point of Control):** A linha vermelha no Profile. É o nível de preço exato onde houve o maior volume de negociação do dia. + * **Função:** Atua como o suporte/resistência mais forte do dia. O preço costuma travar ali. +* **Value Area (VA):** A região onde ocorreram 70% dos negócios. É a zona de aceitação. +* **Vazios de Volume (Low Volume Nodes):** Regiões do gráfico onde o histograma é fino. + * **Efeito Escorregadio:** O preço passa muito rápido por essas zonas porque não há liquidez (barreiras) para segurá-lo. + +### Como Operar: +* **Defesa de POC:** Se o preço volta para a POC após se afastar, espere uma defesa (rejeição). +* **Fuga de Caixote:** Se o preço sai da Área de Valor (Value Area), ele tende a acelerar (entrou em descoberta de preço). + +--- + +## 4. OBV (On Balance Volume) - O Detector de Mentiras +O OBV soma o volume em dias de alta e subtrai em dias de baixa. Ele mostra o saldo acumulado da pressão. + +### A Divergência (O Grande Sinal) +O preço pode mentir, o volume não. + +* **Divergência de Alta:** O Preço está caindo ou lateral (fazendo fundos mais baixos), mas o OBV já começou a subir (fazendo fundos mais altos). + * *Tradução:* Estão acumulando silenciosamente na queda. A explosão para cima é iminente. +* **Divergência de Baixa:** O Preço continua subindo (fazendo topos mais altos), mas o OBV já começou a cair (fazendo topos mais baixos). + * *Tradução:* Estão distribuindo no topo. A alta é falsa (sem combustível). + +--- + +## 5. Delta e Agressão (Visão de Fluxo/Tape Reading) +Se você usa ferramentas de fluxo no Profit (como o indicador "Saldo de Agressão" ou "Weis Wave"): + +* **Volume Total** = Agressão de Compra + Agressão de Venda. +* **Delta** = Agressão de Compra - Agressão de Venda. + +### O Fenômeno da Absorção (Iceberg) +É uma das anomalias mais lucrativas. + +* **Cenário:** O preço chega em um suporte. +* **Delta:** Mostra **Delta Vendedor Forte** (vermelho intenso). Muita gente batendo na venda. +* **Preço:** O candle **NÃO DESLOCA** para baixo. Fica parado ou deixa pavio. +* **Interpretação:** Tem um "Iceberg" (Lote Escondido) de compra absorvendo todas as vendas a mercado. Quando os vendedores cansarem, o preço vai explodir para cima. + +--- + +## 6. Resumo: Qual Ferramenta Usar? + +| Ferramenta | Pergunta que ela responde | Melhor Uso | +| :--- | :--- | :--- | +| **VSA (Candles)** | "Houve esforço vs resultado nesta barra?" | Gatilho de Entrada (Timing). | +| **VWAP** | "Quem está ganhando o dia: Touros ou Ursos?" | Direção e Alvo de Pullback. | +| **Volume Profile** | "Onde está a barreira de concreto?" | Definir Alvos e Suportes Fortes. | +| **OBV** | "O movimento é verdadeiro ou falso?" | Antecipar Reversões (Divergência). | + +## 7. Integração com Trade System Wesley + +* **Regra de Ouro:** Nunca opere contra a VWAP em tendência forte. +* **Confluência:** Um **Shakeout (VSA Verde)** que ocorre exatamente em cima da **VWAP** ou da **POC** é um trade de probabilidade extrema (Rank S). +* **Alvo:** Se você comprou no fundo, a POC do dia anterior é um excelente alvo de saída, pois a liquidez costuma travar lá. + +# Teoria Operacional: OBV (On Balance Volume) - O Detector de Mentiras + +## 1. O Conceito Fundamental +O OBV (On Balance Volume) foi desenvolvido por Joe Granville na década de 60 com uma premissa simples e poderosa: **"O Volume precede o Preço"**. + +Imagine o volume como o combustível e o preço como o carro. Se você pisa no acelerador (volume sobe), o carro eventualmente vai acelerar. Se você tira o pé (volume cai), o carro vai parar, mesmo que continue andando um pouco por inércia. + +### Como é calculado? +* Se o candle fecha **positivo** (acima do fechamento anterior), todo o volume do dia é **somado** ao OBV. +* Se o candle fecha **negativo** (abaixo do fechamento anterior), todo o volume do dia é **subtraído** do OBV. +* O resultado é uma linha acumulativa que mostra o saldo real da pressão de compra vs. venda. + +--- + +## 2. A Lógica do "Smart Money" +Grandes instituições não conseguem esconder o volume. Para montar uma posição gigante, eles precisam comprar muitos lotes. +* O preço pode ficar lateral (escondido) enquanto eles acumulam. +* Mas o OBV vai subir, pois o volume nos dias de alta será maior que nos dias de baixa. +* **Conclusão:** O OBV revela a "pegada" dos grandes players antes do movimento acontecer no gráfico de preço. + +--- + +## 3. Sinais Operacionais Clássicos + +### A. Confirmação de Tendência (Sinal de Saúde) +* **Tendência de Alta Saudável:** O Preço faz Topos e Fundos ascendentes E o OBV também faz Topos e Fundos ascendentes. +* **Tendência de Baixa Saudável:** O Preço cai E o OBV cai. +* **Ação:** Mantenha a operação. O fluxo está confirmando o movimento. + +### B. Divergência (O Grande Alerta) +É o sinal mais lucrativo do OBV. Ocorre quando o Preço e o Volume discordam. + +1. **Divergência de Baixa (Topo):** + * O Preço faz um **Topo Mais Alto** (rompe resistência). + * O OBV faz um **Topo Mais Baixo** (não consegue romper). + * **Tradução:** O preço subiu por inércia ou manipulação, mas não tem combustível (dinheiro novo) sustentando. A queda é iminente. + * **Ação:** Não compre rompimentos. Prepare vendas. + +2. **Divergência de Alta (Fundo):** + * O Preço faz um **Fundo Mais Baixo** (perde suporte). + * O OBV faz um **Fundo Mais Alto**. + * **Tradução:** Os vendedores pararam de agredir. Estão acumulando silenciosamente na queda. + * **Ação:** Não venda rompimentos. Prepare compras. + +### C. Breakout Antecipado +Muitas vezes, o OBV rompe uma resistência (LTB do OBV ou Topo do OBV) **antes** do preço romper a resistência no gráfico. +* **Sinal:** Se o OBV rompeu, o preço tende a seguir logo depois. É um sinal de antecipação de rompimento. + +--- + +## 4. O Indicador `fev_OBVvolumeVerdadeiro` + +No nosso Trade System atual, utilizamos o **OBV Puro** com comparação barra a barra para identificar o fluxo imediato. + +### Regra de Coloração e Interpretação + +#### 🟢 VERDE = PRESSÃO COMPRADORA +* **Condição:** O OBV atual é **MAIOR** que o OBV do candle anterior. +* **Significado:** Entrou volume comprador neste candle. +* **Operacional:** + * **Permissão:** Autoriza compras imediatas. + * **Atenção:** Se o preço cair mas o OBV subir (ficar verde), é divergência de alta (acumulação). + +#### 🔴 VERMELHO = PRESSÃO VENDEDORA +* **Condição:** O OBV atual é **MENOR** que o OBV do candle anterior. +* **Significado:** Saiu volume (venda) neste candle. +* **Operacional:** + * **Permissão:** Autoriza vendas imediatas. + * **Atenção:** Se o preço subir mas o OBV cair (ficar vermelho), é divergência de baixa (distribuição). + +--- + +## 5. Estratégia de "Veto de Fluxo" (Passo 5 do Setup) + +O OBV não serve para dar o "clique" de entrada (timing), ele serve para **evitar entradas ruins**. + +| Cenário Gráfico | Status do OBV | Decisão | +| :--- | :--- | :--- | +| **Pivô de Alta (Compra)** | **Verde (Subindo)** | **✅ APROVADO** | +| **Pivô de Alta (Compra)** | **Vermelho (Caindo)** | **❌ VETADO (Sem fluxo)** | +| **Pivô de Baixa (Venda)** | **Vermelho (Caindo)** | **✅ APROVADO** | +| **Pivô de Baixa (Venda)** | **Verde (Subindo)** | **❌ VETADO (Absorção)** | + +### Dica de Ouro: +Se o preço está lateral (consolidado), o OBV costuma ficar "trançando" a média (mudando de cor toda hora). Nesse caso, ignore o OBV e espere o preço sair da lateralidade com força (Barra de Ignição) E o OBV confirmar a cor. \ No newline at end of file diff --git a/teoria_vwap.md b/teoria_vwap.md new file mode 100644 index 0000000..5c78726 --- /dev/null +++ b/teoria_vwap.md @@ -0,0 +1,93 @@ +t# Teoria Operacional: VWAP (Volume Weighted Average Price) + +## 1. O Conceito +A VWAP (Preço Médio Ponderado pelo Volume) não é apenas um indicador, é uma **referência econômica**. Ela representa o preço médio exato que foi negociado em um ativo durante o dia, levando em conta o volume de cada negócio. + +Diferente de uma Média Móvel simples (que trata todos os candles com o mesmo peso), a VWAP dá mais peso para onde o "dinheiro grande" trocou de mãos. + +**Por que é o "Santo Graal" Institucional?** +Grandes fundos e tesourarias são cobrados por execução. Se um trader institucional compra um lote enorme acima da VWAP do dia, ele pagou "caro" (pior que a média do mercado). Se comprou abaixo, pagou "barato". Por isso, eles defendem essa linha com robôs de alta frequência. + +## 2. Lógica Operacional (O Filtro Supremo) + +A VWAP divide o dia em dois territórios. + +### Território de Compra (Touros) +* **Preço > VWAP:** O mercado está aceitando pagar cada vez mais caro. Os comprados estão no lucro e defendem suas posições. +* **Atitude:** Procurar apenas por COMPRAS (Pullbacks). Ignorar sinais de venda (são contra-tendência e perigosos). + +### Território de Venda (Ursos) +* **Preço < VWAP:** O mercado está pressionando o preço para baixo. Os vendidos estão no lucro. +* **Atitude:** Procurar apenas por VENDAS. + +## 3. Estratégias de Trade com VWAP +A regra de coloração `fev_VWAPreferenciaPreco.ntsl` funciona como um filtro visual do território institucional. + +### 🟢 VERDE = TERRITÓRIO DE COMPRA (Com Força) +* **Cor:** Verde Padrão. +* **Condição:** Preço fechou **acima** da VWAP **E** o candle foi positivo. +* **Significado:** Os compradores estão no controle do território e mostrando força. Cenário ideal para procurar por pullbacks ou continuações de alta. + +### 🔴 VERMELHO = TERRITÓRIO DE VENDA (Com Força) +* **Cor:** Vermelho Padrão. +* **Condição:** Preço fechou **abaixo** da VWAP **E** o candle foi negativo. +* **Significado:** Os vendedores estão no controle do território e mostrando força. Cenário ideal para procurar por pullbacks ou continuações de baixa. + +### ⚫ CINZA = ZONA DE CONFLITO (Aguardar) +* **Cor:** Cinza Padrão. +* **Condição:** Qualquer outra situação (ex: candle negativo acima da VWAP ou candle positivo abaixo da VWAP). +* **Ação:** O movimento do candle está contra o território dominante. Indica um pullback, um repique ou indecisão. É um sinal para ter cautela. + +## 4. Estratégias de Trade com VWAP + +### A. O Pullback Institucional (A "Defesa") +É a estratégia mais clássica e confiável. +1. **Cenário:** O preço se afasta da VWAP (tendência definida). +2. **Gatilho:** O preço retorna suavemente até tocar (ou chegar muito perto) da VWAP. +3. **Ação:** Observar um sinal de Price Action (Martelo, VSA Shakeout) exatamente na VWAP. +4. **Lógica:** Os institucionais que não entraram no início do movimento aproveitam o retorno ao "preço justo" para montar posição, e os que já estão posicionados defendem o médio. + +### B. Rompimento com Volume (A "Virada de Mão") +Quando o preço cruza a VWAP com violência. +1. **Cenário:** O preço estava abaixo da VWAP, mas cruza para cima com um candle de força e volume alto. +2. **Confirmação:** O preço não volta mais para baixo da VWAP nos candles seguintes. +3. **Lógica:** O fluxo mudou. Quem estava vendido agora está "no calor" (prejuízo) e começa a estopar, alimentando a alta. + +### C. VWAP Bands (Desvio Padrão) +Assim como nas Bandas de Bollinger, podemos projetar desvios padrões a partir da VWAP. +* **Uso:** Identificar exaustão. +* **Regra:** Se o preço toca a 2ª ou 3ª banda de desvio padrão da VWAP, ele está estatisticamente "caro demais" ou "barato demais" para o dia. A chance de retorno à média (VWAP) é alta. + +## 5. Gerenciamento + +* **Stop Loss:** + * Em operações de Pullback: O Stop deve ficar logo atrás da VWAP. Se a VWAP for perdida, a premissa do trade acabou. +* **Alvo:** + * Em tendências: Topos/Fundos anteriores ou projeções de Fibonacci. + * Em reversões (Bands): O alvo é a própria linha central da VWAP. + +--- +*Estratégia baseada em Fluxo e Preço Médio* + +## 6. Expansão de Conhecimento: O Ecossistema VWAP + +A VWAP tradicional reinicia a cada dia. Mas e se quisermos saber o preço médio de um movimento específico (ex: pós-Payroll, pós-Eleição)? + +### A. Anchored VWAP (VWAP Ancorada) +Esta ferramenta permite que você clique em um topo ou fundo importante e trace a VWAP a partir dali. +* **Aplicação:** Se o mercado fez um fundo relevante há 3 dias, ancore uma VWAP nesse fundo. Essa linha mostrará o preço médio de quem comprou naquele fundo. +* **Poder:** Quando o preço voltar nessa linha dias depois, ela funcionará como um suporte fortíssimo, muitas vezes invisível para quem usa apenas a VWAP diária. + +### B. VWAP Semanal e Mensal (O Contexto Macro) +A VWAP diária mostra o "preço justo" do dia. As VWAPs de períodos maiores mostram o preço justo dos players de longo prazo. +* **VWAP Semanal:** O preço médio negociado na semana. Funciona como um ímã para o preço. Se o preço se afasta muito, tende a retornar a ela. +* **VWAP Mensal:** O preço médio do mês. É um suporte/resistência extremamente forte. +* **Confluência de VWAPs:** Quando a VWAP diária, semanal e mensal estão no mesmo lugar, essa região se torna uma "parede" de suporte ou resistência, pois players de todos os os timeframes estão posicionados ali. + +### C. A Relação VWAP vs. Ajuste (A Faixa de Valor) +O Ajuste é o preço de fechamento "oficial" do dia anterior. A VWAP é o preço médio do dia atual. A relação entre eles define o sentimento do mercado. +* **Preço acima da VWAP e do Ajuste:** Forte viés de alta. O mercado está rejeitando o preço justo de ontem e estabelecendo um novo valor mais alto. +* **Preço abaixo da VWAP e do Ajuste:** Forte viés de baixa. +* **Preço entre a VWAP e o Ajuste:** Mercado em equilíbrio ou "range". A área entre a VWAP e o Ajuste é chamada de **Faixa de Valor**. O preço tende a ficar "preso" nessa região até que uma força (compradora ou vendedora) consiga empurrá-lo para fora com convicção. + +**Dica de Ouro:** A melhor operação de Pullback na VWAP diária acontece quando o preço também está acima da VWAP Semanal, alinhando o micro com o macro. diff --git a/teoria_wyckoff.md b/teoria_wyckoff.md new file mode 100644 index 0000000..d39b9d3 --- /dev/null +++ b/teoria_wyckoff.md @@ -0,0 +1,94 @@ +# Teoria Operacional: O Método Wyckoff (O Jogo dos Grandes) + +## 1. O "Composite Man" (O Homem Composto) +Richard Wyckoff propôs que o mercado deve ser visto como se fosse controlado por uma única entidade mestre: o "Composite Man" (Institucional). +* **A Regra:** Ele senta nos bastidores e manipula o preço para desvantagem do público. +* **O Objetivo:** Comprar barato do público em pânico (Acumulação) e vender caro para o público eufórico (Distribuição). +* **A Lição:** Não tente vencer o mercado. Tente identificar as pegadas desse gigante e andar na sombra dele. + +## 2. As 3 Leis de Wyckoff + +### Lei 1: Oferta e Demanda +Determina a direção do preço. +* **Demanda > Oferta:** Preço sobe. +* **Oferta > Demanda:** Preço cai. +* **Oferta = Demanda:** Preço lateraliza (preparação). +* *No Gráfico:* Olhe para os candles de força e o deslocamento. + +### Lei 2: Causa e Efeito +Para todo movimento grande (Efeito), deve haver uma preparação proporcional (Causa). +* **Causa:** A lateralidade (Acumulação/Distribuição). Quanto mais tempo o preço fica lateral, maior será a explosão. +* **Efeito:** A tendência subsequente. +* *Aplicação:* Não espere um alvo de 1000 pontos se a acumulação durou apenas 5 candles. + +### Lei 3: Esforço vs Resultado +A lei da divergência (VSA). +* **Convergência:** Volume alto (Esforço) gera candle grande (Resultado). Normal. +* **Divergência:** Volume alto (Esforço) gera candle pequeno ou com muito pavio (Pouco Resultado). +* *Sinal:* Se o "Composite Man" aplicou muita força e o preço não andou, há uma barreira oculta (Absorção). Reversão iminente. + +## 3. Anatomia da Acumulação (O Fundo) +O processo de tirar ativos das "Mãos Fracas" para as "Mãos Fortes". + +### Fase A: Parar a Queda +1. **PS (Preliminary Support):** Primeira tentativa de parar a queda. Volume aumenta. +2. **SC (Selling Climax):** Pânico total. Volume extremo, spreads largos. O público vende tudo. +3. **AR (Automatic Rally):** Repique natural por falta de vendedores. Define o teto da lateralidade. +4. **ST (Secondary Test):** Teste da mínima do SC com volume menor. + +### Fase B: Construção da Causa +* O preço oscila dentro do range. O "Composite Man" absorve a oferta silenciosamente. + +### Fase C: O Teste Final (A Armadilha) +* **Spring (Mola):** O preço perde o suporte do range (SC/ST) para estopar quem comprou cedo e induzir venda. +* **Shakeout:** Versão violenta do Spring. +* **Test:** O preço volta para testar o Spring com volume baixo (Ninguém mais quer vender). **PONTO DE ENTRADA 1.** + +### Fase D: O Salto (Markup dentro do Range) +* **SOS (Sign of Strength):** Candle de força que rompe resistências internas. +* **LPS (Last Point of Support):** Pullback raso após o SOS. **PONTO DE ENTRADA 2.** + +### Fase E: A Tendência +* O preço rompe o range definitivamente. Ocorre o **Back Up (BU)** ou Pullback no topo do range. **PONTO DE ENTRADA 3.** + +## 4. Anatomia da Distribuição (O Topo) +O processo de desovar ativos para o público eufórico. + +### Fase A: Parar a Alta +1. **PSY (Preliminary Supply):** Primeira venda forte. +2. **BC (Buying Climax):** Euforia máxima. Notícias boas. Volume extremo. +3. **AR (Automatic Reaction):** Queda natural. Define o piso do range. +4. **ST (Secondary Test):** Teste do topo do BC. + +### Fase B: Construção +* O preço lateraliza. Institucionais vendem lotes fracionados para não derrubar o preço. + +### Fase C: A Armadilha (Upthrust) +* **UT (Upthrust):** Rompimento falso do topo. Captura stops dos vendidos e atrai compradores de rompimento. +* **UTAD (Upthrust After Distribution):** O último suspiro. Um rompimento maior que falha miseravelmente. + +### Fase D: O Declínio +* **MSOW (Major Sign of Weakness):** Candle vermelho forte que quebra a estrutura. +* **LPSY (Last Point of Supply):** Pullback de venda fraco. **PONTO DE VENDA.** + +## 5. Resumo Operacional (Setup Wyckoff) + +Como conectar essa teoria com nossos arquivos `.ntsl`: + +| Evento Wyckoff | O que procurar no Gráfico? | Arquivo de Validação | +| :--- | :--- | :--- | +| **Spring / Shakeout** | Rompimento de suporte + Retorno rápido + Volume Alto na queda e Baixo no retorno. | `Gatilhos.md` (Armadilha de Fundo)
`fev_VSAassinaturaInstitucional.ntsl` (Cor Verde) | +| **Upthrust (UT)** | Rompimento de resistência + Pavio superior longo + Fechamento baixo. | `fev_PriceActionAnaliseSombra.ntsl` (Cor Azul Royal)
`fev_VSAassinaturaInstitucional.ntsl` (Cor Vermelha) | +| **Teste (No Supply)** | Candle pequeno (Inside Bar/Doji) na região do suporte com volume ridículo. | `fev_PriceAction_Tipos.ntsl` | +| **SOS / SOW** | Barra de Força (Ciano/Fuchsia) rompendo estrutura ou pivô. | `fev_PriceActionCorpoSombraExecucao.ntsl`
`fevTendenciaPivoTeste.ntsl` | + +### Roteiro de Decisão +1. **Identifique a Fase:** Use o `fev_DetectorFasesMercado.ntsl`. + * Se estiver em "Acumulação" (Fase 1), procure por **Springs**. + * Se estiver em "Distribuição" (Fase 3), procure por **Upthrusts**. +2. **Valide com Volume:** + * Um rompimento de topo sem volume (Lei Esforço vs Resultado) é um provável Upthrust. + * Um rompimento de fundo com volume climático que não continua caindo é um provável Spring. + +--- +*Nota: Wyckoff não é um setup mecânico, é um mapa de contexto. Ele diz ONDE procurar o trade, o Price Action diz QUANDO entrar.* \ No newline at end of file From f33b7197c9f4575d8730fecf93ab76998f25f77d Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Mon, 23 Feb 2026 21:40:48 -0300 Subject: [PATCH 02/63] =?UTF-8?q?adequa=C3=A7=C3=A3o=20de=20branchs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- teoria_sentimentosTrade.rb => teoria_sentimentosTrade.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename teoria_sentimentosTrade.rb => teoria_sentimentosTrade.md (100%) diff --git a/teoria_sentimentosTrade.rb b/teoria_sentimentosTrade.md similarity index 100% rename from teoria_sentimentosTrade.rb rename to teoria_sentimentosTrade.md From 66ca9b70e1aec244c11105663bf824d82d9f7556 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:45:58 -0300 Subject: [PATCH 03/63] ... --- .vscode/settings.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ea39066 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "chat.tools.terminal.autoApprove": { + "/^git pull origin main$/": { + "approve": true, + "matchCommandLine": true + } + } +} \ No newline at end of file From 1fb2997a53af2e72db6312950a42c1bad5783833 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:52:30 -0300 Subject: [PATCH 04/63] =?UTF-8?q?ajustes=20de=20nomes=20e=20organiza=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 8 -------- teoria_ATR.txt => teoria_ATR.md | 0 2 files changed, 8 deletions(-) delete mode 100644 .vscode/settings.json rename teoria_ATR.txt => teoria_ATR.md (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ea39066..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "chat.tools.terminal.autoApprove": { - "/^git pull origin main$/": { - "approve": true, - "matchCommandLine": true - } - } -} \ No newline at end of file diff --git a/teoria_ATR.txt b/teoria_ATR.md similarity index 100% rename from teoria_ATR.txt rename to teoria_ATR.md From e74182c8c6131ecfe99b90ca3ae7dd747e22ca34 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:55:56 -0300 Subject: [PATCH 05/63] =?UTF-8?q?reorganiza=C3=A7=C3=A3o=20para=20que=20a?= =?UTF-8?q?=20nova=20branch=20fique=20em=20ordem=20do=20que=20j=C3=A1=20fo?= =?UTF-8?q?i=20estudado.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caracteristicas_WIN_mini_indice.md | 0 .../caracteristicas_ativos_tecnicos.md | 0 correlacao_ativos.md => estudo_teorias_cores/correlacao_ativos.md | 0 .../eficiencia_tributaria.md | 0 .../gerenciamento_risco.md | 0 .../organizacao_B3_Internacional.md | 0 .../organizacao_B3_Internacional_horarios.md | 0 .../tabela_confluencias.md | 0 teoria_ATR.md => estudo_teorias_cores/teoria_ATR.md | 0 teoria_IFR.md => estudo_teorias_cores/teoria_IFR.md | 0 teoria_OCO.md => estudo_teorias_cores/teoria_OCO.md | 0 teoria_VSA.md => estudo_teorias_cores/teoria_VSA.md | 0 .../teoria_candlestick.md | 0 teoria_medias.md => estudo_teorias_cores/teoria_medias.md | 0 .../teoria_panorama_contexto.md | 0 .../teoria_priceAction_primeirocandle.md | 0 .../teoria_priceaction.md | 0 teoria_renko.md => estudo_teorias_cores/teoria_renko.md | 0 .../teoria_sentimentosTrade.md | 0 teoria_tendencia.md => estudo_teorias_cores/teoria_tendencia.md | 0 .../teoria_tendencia_institucional.md | 0 .../teoria_tendencia_pivots.md | 0 teoria_volume.md => estudo_teorias_cores/teoria_volume.md | 0 teoria_vwap.md => estudo_teorias_cores/teoria_vwap.md | 0 teoria_wyckoff.md => estudo_teorias_cores/teoria_wyckoff.md | 0 .../fev_2minReversaoComVolumeWIN.txt | 0 .../fev_ATRmovimentoDoPrecoComVontade.txt | 0 .../fev_ContadorCruzamentosMedias.txt | 0 .../fev_DetectorFasesMercado.txt | 0 fev_DivergenciaIFR.txt => profit_estudos/fev_DivergenciaIFR.txt | 0 .../fev_HorarioTurbulencia.txt | 0 .../fev_MediasSetupDiario.txt | 0 .../fev_MediasSetupSemana.txt | 0 .../fev_OBVvolumeVerdadeiro.txt | 0 fev_PainelDecisao.txt => profit_estudos/fev_PainelDecisao.txt | 0 .../fev_PainelDecisaoAlarme.ntsl.txt | 0 .../fev_PriceActionAnaliseCorpo.txt | 0 .../fev_PriceActionAnaliseSombra.txt | 0 .../fev_PriceActionCorpoSombraExecucao.txt | 0 .../fev_PriceActionNewton.txt | 0 .../fev_PriceActionTiposCandlesLeitura.txt | 0 .../fev_PriceActionVSA_OBV.txt | 0 .../fev_RegraDeDow_Rompimento.txt | 0 .../fev_TendenciaLongoPrazo.txt | 0 .../fev_TendenciaPivoTesteDeOuro.txt | 0 .../fev_VSAassinaturaInstitucional.txt | 0 .../fev_VWAPreferenciaPreco.txt | 0 .../fev_VWAPsemanalDiario.txt | 0 fev_direcaoDoDia.txt => profit_estudos/fev_direcaoDoDia.txt | 0 .../fev_mediasTrend9_20_50_200.txt | 0 fev_panorama920.txt => profit_estudos/fev_panorama920.txt | 0 .../fev_panoramaMedias9_20_50_200.txt | 0 .../fev_priceActionPrimeiroCandle.txt | 0 53 files changed, 0 insertions(+), 0 deletions(-) rename caracteristicas_WIN_mini_indice.md => estudo_teorias_cores/caracteristicas_WIN_mini_indice.md (100%) rename caracteristicas_ativos_tecnicos.md => estudo_teorias_cores/caracteristicas_ativos_tecnicos.md (100%) rename correlacao_ativos.md => estudo_teorias_cores/correlacao_ativos.md (100%) rename eficiencia_tributaria.md => estudo_teorias_cores/eficiencia_tributaria.md (100%) rename gerenciamento_risco.md => estudo_teorias_cores/gerenciamento_risco.md (100%) rename organizacao_B3_Internacional.md => estudo_teorias_cores/organizacao_B3_Internacional.md (100%) rename organizacao_B3_Internacional_horarios.md => estudo_teorias_cores/organizacao_B3_Internacional_horarios.md (100%) rename tabela_confluencias.md => estudo_teorias_cores/tabela_confluencias.md (100%) rename teoria_ATR.md => estudo_teorias_cores/teoria_ATR.md (100%) rename teoria_IFR.md => estudo_teorias_cores/teoria_IFR.md (100%) rename teoria_OCO.md => estudo_teorias_cores/teoria_OCO.md (100%) rename teoria_VSA.md => estudo_teorias_cores/teoria_VSA.md (100%) rename teoria_candlestick.md => estudo_teorias_cores/teoria_candlestick.md (100%) rename teoria_medias.md => estudo_teorias_cores/teoria_medias.md (100%) rename teoria_panorama_contexto.md => estudo_teorias_cores/teoria_panorama_contexto.md (100%) rename teoria_priceAction_primeirocandle.md => estudo_teorias_cores/teoria_priceAction_primeirocandle.md (100%) rename teoria_priceaction.md => estudo_teorias_cores/teoria_priceaction.md (100%) rename teoria_renko.md => estudo_teorias_cores/teoria_renko.md (100%) rename teoria_sentimentosTrade.md => estudo_teorias_cores/teoria_sentimentosTrade.md (100%) rename teoria_tendencia.md => estudo_teorias_cores/teoria_tendencia.md (100%) rename teoria_tendencia_institucional.md => estudo_teorias_cores/teoria_tendencia_institucional.md (100%) rename teoria_tendencia_pivots.md => estudo_teorias_cores/teoria_tendencia_pivots.md (100%) rename teoria_volume.md => estudo_teorias_cores/teoria_volume.md (100%) rename teoria_vwap.md => estudo_teorias_cores/teoria_vwap.md (100%) rename teoria_wyckoff.md => estudo_teorias_cores/teoria_wyckoff.md (100%) rename fev_2minReversaoComVolumeWIN.txt => profit_estudos/fev_2minReversaoComVolumeWIN.txt (100%) rename fev_ATRmovimentoDoPrecoComVontade.txt => profit_estudos/fev_ATRmovimentoDoPrecoComVontade.txt (100%) rename fev_ContadorCruzamentosMedias.txt => profit_estudos/fev_ContadorCruzamentosMedias.txt (100%) rename fev_DetectorFasesMercado.txt => profit_estudos/fev_DetectorFasesMercado.txt (100%) rename fev_DivergenciaIFR.txt => profit_estudos/fev_DivergenciaIFR.txt (100%) rename fev_HorarioTurbulencia.txt => profit_estudos/fev_HorarioTurbulencia.txt (100%) rename fev_MediasSetupDiario.txt => profit_estudos/fev_MediasSetupDiario.txt (100%) rename fev_MediasSetupSemana.txt => profit_estudos/fev_MediasSetupSemana.txt (100%) rename fev_OBVvolumeVerdadeiro.txt => profit_estudos/fev_OBVvolumeVerdadeiro.txt (100%) rename fev_PainelDecisao.txt => profit_estudos/fev_PainelDecisao.txt (100%) rename fev_PainelDecisaoAlarme.ntsl.txt => profit_estudos/fev_PainelDecisaoAlarme.ntsl.txt (100%) rename fev_PriceActionAnaliseCorpo.txt => profit_estudos/fev_PriceActionAnaliseCorpo.txt (100%) rename fev_PriceActionAnaliseSombra.txt => profit_estudos/fev_PriceActionAnaliseSombra.txt (100%) rename fev_PriceActionCorpoSombraExecucao.txt => profit_estudos/fev_PriceActionCorpoSombraExecucao.txt (100%) rename fev_PriceActionNewton.txt => profit_estudos/fev_PriceActionNewton.txt (100%) rename fev_PriceActionTiposCandlesLeitura.txt => profit_estudos/fev_PriceActionTiposCandlesLeitura.txt (100%) rename fev_PriceActionVSA_OBV.txt => profit_estudos/fev_PriceActionVSA_OBV.txt (100%) rename fev_RegraDeDow_Rompimento.txt => profit_estudos/fev_RegraDeDow_Rompimento.txt (100%) rename fev_TendenciaLongoPrazo.txt => profit_estudos/fev_TendenciaLongoPrazo.txt (100%) rename fev_TendenciaPivoTesteDeOuro.txt => profit_estudos/fev_TendenciaPivoTesteDeOuro.txt (100%) rename fev_VSAassinaturaInstitucional.txt => profit_estudos/fev_VSAassinaturaInstitucional.txt (100%) rename fev_VWAPreferenciaPreco.txt => profit_estudos/fev_VWAPreferenciaPreco.txt (100%) rename fev_VWAPsemanalDiario.txt => profit_estudos/fev_VWAPsemanalDiario.txt (100%) rename fev_direcaoDoDia.txt => profit_estudos/fev_direcaoDoDia.txt (100%) rename fev_mediasTrend9_20_50_200.txt => profit_estudos/fev_mediasTrend9_20_50_200.txt (100%) rename fev_panorama920.txt => profit_estudos/fev_panorama920.txt (100%) rename fev_panoramaMedias9_20_50_200.txt => profit_estudos/fev_panoramaMedias9_20_50_200.txt (100%) rename fev_priceActionPrimeiroCandle.txt => profit_estudos/fev_priceActionPrimeiroCandle.txt (100%) diff --git a/caracteristicas_WIN_mini_indice.md b/estudo_teorias_cores/caracteristicas_WIN_mini_indice.md similarity index 100% rename from caracteristicas_WIN_mini_indice.md rename to estudo_teorias_cores/caracteristicas_WIN_mini_indice.md diff --git a/caracteristicas_ativos_tecnicos.md b/estudo_teorias_cores/caracteristicas_ativos_tecnicos.md similarity index 100% rename from caracteristicas_ativos_tecnicos.md rename to estudo_teorias_cores/caracteristicas_ativos_tecnicos.md diff --git a/correlacao_ativos.md b/estudo_teorias_cores/correlacao_ativos.md similarity index 100% rename from correlacao_ativos.md rename to estudo_teorias_cores/correlacao_ativos.md diff --git a/eficiencia_tributaria.md b/estudo_teorias_cores/eficiencia_tributaria.md similarity index 100% rename from eficiencia_tributaria.md rename to estudo_teorias_cores/eficiencia_tributaria.md diff --git a/gerenciamento_risco.md b/estudo_teorias_cores/gerenciamento_risco.md similarity index 100% rename from gerenciamento_risco.md rename to estudo_teorias_cores/gerenciamento_risco.md diff --git a/organizacao_B3_Internacional.md b/estudo_teorias_cores/organizacao_B3_Internacional.md similarity index 100% rename from organizacao_B3_Internacional.md rename to estudo_teorias_cores/organizacao_B3_Internacional.md diff --git a/organizacao_B3_Internacional_horarios.md b/estudo_teorias_cores/organizacao_B3_Internacional_horarios.md similarity index 100% rename from organizacao_B3_Internacional_horarios.md rename to estudo_teorias_cores/organizacao_B3_Internacional_horarios.md diff --git a/tabela_confluencias.md b/estudo_teorias_cores/tabela_confluencias.md similarity index 100% rename from tabela_confluencias.md rename to estudo_teorias_cores/tabela_confluencias.md diff --git a/teoria_ATR.md b/estudo_teorias_cores/teoria_ATR.md similarity index 100% rename from teoria_ATR.md rename to estudo_teorias_cores/teoria_ATR.md diff --git a/teoria_IFR.md b/estudo_teorias_cores/teoria_IFR.md similarity index 100% rename from teoria_IFR.md rename to estudo_teorias_cores/teoria_IFR.md diff --git a/teoria_OCO.md b/estudo_teorias_cores/teoria_OCO.md similarity index 100% rename from teoria_OCO.md rename to estudo_teorias_cores/teoria_OCO.md diff --git a/teoria_VSA.md b/estudo_teorias_cores/teoria_VSA.md similarity index 100% rename from teoria_VSA.md rename to estudo_teorias_cores/teoria_VSA.md diff --git a/teoria_candlestick.md b/estudo_teorias_cores/teoria_candlestick.md similarity index 100% rename from teoria_candlestick.md rename to estudo_teorias_cores/teoria_candlestick.md diff --git a/teoria_medias.md b/estudo_teorias_cores/teoria_medias.md similarity index 100% rename from teoria_medias.md rename to estudo_teorias_cores/teoria_medias.md diff --git a/teoria_panorama_contexto.md b/estudo_teorias_cores/teoria_panorama_contexto.md similarity index 100% rename from teoria_panorama_contexto.md rename to estudo_teorias_cores/teoria_panorama_contexto.md diff --git a/teoria_priceAction_primeirocandle.md b/estudo_teorias_cores/teoria_priceAction_primeirocandle.md similarity index 100% rename from teoria_priceAction_primeirocandle.md rename to estudo_teorias_cores/teoria_priceAction_primeirocandle.md diff --git a/teoria_priceaction.md b/estudo_teorias_cores/teoria_priceaction.md similarity index 100% rename from teoria_priceaction.md rename to estudo_teorias_cores/teoria_priceaction.md diff --git a/teoria_renko.md b/estudo_teorias_cores/teoria_renko.md similarity index 100% rename from teoria_renko.md rename to estudo_teorias_cores/teoria_renko.md diff --git a/teoria_sentimentosTrade.md b/estudo_teorias_cores/teoria_sentimentosTrade.md similarity index 100% rename from teoria_sentimentosTrade.md rename to estudo_teorias_cores/teoria_sentimentosTrade.md diff --git a/teoria_tendencia.md b/estudo_teorias_cores/teoria_tendencia.md similarity index 100% rename from teoria_tendencia.md rename to estudo_teorias_cores/teoria_tendencia.md diff --git a/teoria_tendencia_institucional.md b/estudo_teorias_cores/teoria_tendencia_institucional.md similarity index 100% rename from teoria_tendencia_institucional.md rename to estudo_teorias_cores/teoria_tendencia_institucional.md diff --git a/teoria_tendencia_pivots.md b/estudo_teorias_cores/teoria_tendencia_pivots.md similarity index 100% rename from teoria_tendencia_pivots.md rename to estudo_teorias_cores/teoria_tendencia_pivots.md diff --git a/teoria_volume.md b/estudo_teorias_cores/teoria_volume.md similarity index 100% rename from teoria_volume.md rename to estudo_teorias_cores/teoria_volume.md diff --git a/teoria_vwap.md b/estudo_teorias_cores/teoria_vwap.md similarity index 100% rename from teoria_vwap.md rename to estudo_teorias_cores/teoria_vwap.md diff --git a/teoria_wyckoff.md b/estudo_teorias_cores/teoria_wyckoff.md similarity index 100% rename from teoria_wyckoff.md rename to estudo_teorias_cores/teoria_wyckoff.md diff --git a/fev_2minReversaoComVolumeWIN.txt b/profit_estudos/fev_2minReversaoComVolumeWIN.txt similarity index 100% rename from fev_2minReversaoComVolumeWIN.txt rename to profit_estudos/fev_2minReversaoComVolumeWIN.txt diff --git a/fev_ATRmovimentoDoPrecoComVontade.txt b/profit_estudos/fev_ATRmovimentoDoPrecoComVontade.txt similarity index 100% rename from fev_ATRmovimentoDoPrecoComVontade.txt rename to profit_estudos/fev_ATRmovimentoDoPrecoComVontade.txt diff --git a/fev_ContadorCruzamentosMedias.txt b/profit_estudos/fev_ContadorCruzamentosMedias.txt similarity index 100% rename from fev_ContadorCruzamentosMedias.txt rename to profit_estudos/fev_ContadorCruzamentosMedias.txt diff --git a/fev_DetectorFasesMercado.txt b/profit_estudos/fev_DetectorFasesMercado.txt similarity index 100% rename from fev_DetectorFasesMercado.txt rename to profit_estudos/fev_DetectorFasesMercado.txt diff --git a/fev_DivergenciaIFR.txt b/profit_estudos/fev_DivergenciaIFR.txt similarity index 100% rename from fev_DivergenciaIFR.txt rename to profit_estudos/fev_DivergenciaIFR.txt diff --git a/fev_HorarioTurbulencia.txt b/profit_estudos/fev_HorarioTurbulencia.txt similarity index 100% rename from fev_HorarioTurbulencia.txt rename to profit_estudos/fev_HorarioTurbulencia.txt diff --git a/fev_MediasSetupDiario.txt b/profit_estudos/fev_MediasSetupDiario.txt similarity index 100% rename from fev_MediasSetupDiario.txt rename to profit_estudos/fev_MediasSetupDiario.txt diff --git a/fev_MediasSetupSemana.txt b/profit_estudos/fev_MediasSetupSemana.txt similarity index 100% rename from fev_MediasSetupSemana.txt rename to profit_estudos/fev_MediasSetupSemana.txt diff --git a/fev_OBVvolumeVerdadeiro.txt b/profit_estudos/fev_OBVvolumeVerdadeiro.txt similarity index 100% rename from fev_OBVvolumeVerdadeiro.txt rename to profit_estudos/fev_OBVvolumeVerdadeiro.txt diff --git a/fev_PainelDecisao.txt b/profit_estudos/fev_PainelDecisao.txt similarity index 100% rename from fev_PainelDecisao.txt rename to profit_estudos/fev_PainelDecisao.txt diff --git a/fev_PainelDecisaoAlarme.ntsl.txt b/profit_estudos/fev_PainelDecisaoAlarme.ntsl.txt similarity index 100% rename from fev_PainelDecisaoAlarme.ntsl.txt rename to profit_estudos/fev_PainelDecisaoAlarme.ntsl.txt diff --git a/fev_PriceActionAnaliseCorpo.txt b/profit_estudos/fev_PriceActionAnaliseCorpo.txt similarity index 100% rename from fev_PriceActionAnaliseCorpo.txt rename to profit_estudos/fev_PriceActionAnaliseCorpo.txt diff --git a/fev_PriceActionAnaliseSombra.txt b/profit_estudos/fev_PriceActionAnaliseSombra.txt similarity index 100% rename from fev_PriceActionAnaliseSombra.txt rename to profit_estudos/fev_PriceActionAnaliseSombra.txt diff --git a/fev_PriceActionCorpoSombraExecucao.txt b/profit_estudos/fev_PriceActionCorpoSombraExecucao.txt similarity index 100% rename from fev_PriceActionCorpoSombraExecucao.txt rename to profit_estudos/fev_PriceActionCorpoSombraExecucao.txt diff --git a/fev_PriceActionNewton.txt b/profit_estudos/fev_PriceActionNewton.txt similarity index 100% rename from fev_PriceActionNewton.txt rename to profit_estudos/fev_PriceActionNewton.txt diff --git a/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos/fev_PriceActionTiposCandlesLeitura.txt similarity index 100% rename from fev_PriceActionTiposCandlesLeitura.txt rename to profit_estudos/fev_PriceActionTiposCandlesLeitura.txt diff --git a/fev_PriceActionVSA_OBV.txt b/profit_estudos/fev_PriceActionVSA_OBV.txt similarity index 100% rename from fev_PriceActionVSA_OBV.txt rename to profit_estudos/fev_PriceActionVSA_OBV.txt diff --git a/fev_RegraDeDow_Rompimento.txt b/profit_estudos/fev_RegraDeDow_Rompimento.txt similarity index 100% rename from fev_RegraDeDow_Rompimento.txt rename to profit_estudos/fev_RegraDeDow_Rompimento.txt diff --git a/fev_TendenciaLongoPrazo.txt b/profit_estudos/fev_TendenciaLongoPrazo.txt similarity index 100% rename from fev_TendenciaLongoPrazo.txt rename to profit_estudos/fev_TendenciaLongoPrazo.txt diff --git a/fev_TendenciaPivoTesteDeOuro.txt b/profit_estudos/fev_TendenciaPivoTesteDeOuro.txt similarity index 100% rename from fev_TendenciaPivoTesteDeOuro.txt rename to profit_estudos/fev_TendenciaPivoTesteDeOuro.txt diff --git a/fev_VSAassinaturaInstitucional.txt b/profit_estudos/fev_VSAassinaturaInstitucional.txt similarity index 100% rename from fev_VSAassinaturaInstitucional.txt rename to profit_estudos/fev_VSAassinaturaInstitucional.txt diff --git a/fev_VWAPreferenciaPreco.txt b/profit_estudos/fev_VWAPreferenciaPreco.txt similarity index 100% rename from fev_VWAPreferenciaPreco.txt rename to profit_estudos/fev_VWAPreferenciaPreco.txt diff --git a/fev_VWAPsemanalDiario.txt b/profit_estudos/fev_VWAPsemanalDiario.txt similarity index 100% rename from fev_VWAPsemanalDiario.txt rename to profit_estudos/fev_VWAPsemanalDiario.txt diff --git a/fev_direcaoDoDia.txt b/profit_estudos/fev_direcaoDoDia.txt similarity index 100% rename from fev_direcaoDoDia.txt rename to profit_estudos/fev_direcaoDoDia.txt diff --git a/fev_mediasTrend9_20_50_200.txt b/profit_estudos/fev_mediasTrend9_20_50_200.txt similarity index 100% rename from fev_mediasTrend9_20_50_200.txt rename to profit_estudos/fev_mediasTrend9_20_50_200.txt diff --git a/fev_panorama920.txt b/profit_estudos/fev_panorama920.txt similarity index 100% rename from fev_panorama920.txt rename to profit_estudos/fev_panorama920.txt diff --git a/fev_panoramaMedias9_20_50_200.txt b/profit_estudos/fev_panoramaMedias9_20_50_200.txt similarity index 100% rename from fev_panoramaMedias9_20_50_200.txt rename to profit_estudos/fev_panoramaMedias9_20_50_200.txt diff --git a/fev_priceActionPrimeiroCandle.txt b/profit_estudos/fev_priceActionPrimeiroCandle.txt similarity index 100% rename from fev_priceActionPrimeiroCandle.txt rename to profit_estudos/fev_priceActionPrimeiroCandle.txt From 83c70b62f60674d76e1a009756006c12e4387e4d Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:57:34 -0300 Subject: [PATCH 06/63] =?UTF-8?q?reorganiza=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caracteristicas_WIN_mini_indice.md | 0 .../caracteristicas_ativos_tecnicos.md | 0 {estudo_teorias_cores => estudo_teorias}/correlacao_ativos.md | 0 {estudo_teorias_cores => estudo_teorias}/eficiencia_tributaria.md | 0 {estudo_teorias_cores => estudo_teorias}/gerenciamento_risco.md | 0 .../organizacao_B3_Internacional.md | 0 .../organizacao_B3_Internacional_horarios.md | 0 {estudo_teorias_cores => estudo_teorias}/tabela_confluencias.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_ATR.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_IFR.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_OCO.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_VSA.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_candlestick.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_medias.md | 0 .../teoria_panorama_contexto.md | 0 .../teoria_priceAction_primeirocandle.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_priceaction.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_renko.md | 0 .../teoria_sentimentosTrade.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_tendencia.md | 0 .../teoria_tendencia_institucional.md | 0 .../teoria_tendencia_pivots.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_volume.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_vwap.md | 0 {estudo_teorias_cores => estudo_teorias}/teoria_wyckoff.md | 0 .../fev_2minReversaoComVolumeWIN.txt | 0 .../fev_ATRmovimentoDoPrecoComVontade.txt | 0 .../fev_ContadorCruzamentosMedias.txt | 0 .../fev_DetectorFasesMercado.txt | 0 {profit_estudos => profit_estudos_cores}/fev_DivergenciaIFR.txt | 0 .../fev_HorarioTurbulencia.txt | 0 .../fev_MediasSetupDiario.txt | 0 .../fev_MediasSetupSemana.txt | 0 .../fev_OBVvolumeVerdadeiro.txt | 0 {profit_estudos => profit_estudos_cores}/fev_PainelDecisao.txt | 0 .../fev_PainelDecisaoAlarme.ntsl.txt | 0 .../fev_PriceActionAnaliseCorpo.txt | 0 .../fev_PriceActionAnaliseSombra.txt | 0 .../fev_PriceActionCorpoSombraExecucao.txt | 0 .../fev_PriceActionNewton.txt | 0 .../fev_PriceActionTiposCandlesLeitura.txt | 0 .../fev_PriceActionVSA_OBV.txt | 0 .../fev_RegraDeDow_Rompimento.txt | 0 .../fev_TendenciaLongoPrazo.txt | 0 .../fev_TendenciaPivoTesteDeOuro.txt | 0 .../fev_VSAassinaturaInstitucional.txt | 0 .../fev_VWAPreferenciaPreco.txt | 0 .../fev_VWAPsemanalDiario.txt | 0 {profit_estudos => profit_estudos_cores}/fev_direcaoDoDia.txt | 0 .../fev_mediasTrend9_20_50_200.txt | 0 {profit_estudos => profit_estudos_cores}/fev_panorama920.txt | 0 .../fev_panoramaMedias9_20_50_200.txt | 0 .../fev_priceActionPrimeiroCandle.txt | 0 53 files changed, 0 insertions(+), 0 deletions(-) rename {estudo_teorias_cores => estudo_teorias}/caracteristicas_WIN_mini_indice.md (100%) rename {estudo_teorias_cores => estudo_teorias}/caracteristicas_ativos_tecnicos.md (100%) rename {estudo_teorias_cores => estudo_teorias}/correlacao_ativos.md (100%) rename {estudo_teorias_cores => estudo_teorias}/eficiencia_tributaria.md (100%) rename {estudo_teorias_cores => estudo_teorias}/gerenciamento_risco.md (100%) rename {estudo_teorias_cores => estudo_teorias}/organizacao_B3_Internacional.md (100%) rename {estudo_teorias_cores => estudo_teorias}/organizacao_B3_Internacional_horarios.md (100%) rename {estudo_teorias_cores => estudo_teorias}/tabela_confluencias.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_ATR.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_IFR.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_OCO.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_VSA.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_candlestick.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_medias.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_panorama_contexto.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_priceAction_primeirocandle.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_priceaction.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_renko.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_sentimentosTrade.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_tendencia.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_tendencia_institucional.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_tendencia_pivots.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_volume.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_vwap.md (100%) rename {estudo_teorias_cores => estudo_teorias}/teoria_wyckoff.md (100%) rename {profit_estudos => profit_estudos_cores}/fev_2minReversaoComVolumeWIN.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_ATRmovimentoDoPrecoComVontade.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_ContadorCruzamentosMedias.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_DetectorFasesMercado.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_DivergenciaIFR.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_HorarioTurbulencia.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_MediasSetupDiario.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_MediasSetupSemana.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_OBVvolumeVerdadeiro.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PainelDecisao.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PainelDecisaoAlarme.ntsl.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionAnaliseCorpo.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionAnaliseSombra.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionCorpoSombraExecucao.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionNewton.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionTiposCandlesLeitura.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_PriceActionVSA_OBV.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_RegraDeDow_Rompimento.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_TendenciaLongoPrazo.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_TendenciaPivoTesteDeOuro.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_VSAassinaturaInstitucional.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_VWAPreferenciaPreco.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_VWAPsemanalDiario.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_direcaoDoDia.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_mediasTrend9_20_50_200.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_panorama920.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_panoramaMedias9_20_50_200.txt (100%) rename {profit_estudos => profit_estudos_cores}/fev_priceActionPrimeiroCandle.txt (100%) diff --git a/estudo_teorias_cores/caracteristicas_WIN_mini_indice.md b/estudo_teorias/caracteristicas_WIN_mini_indice.md similarity index 100% rename from estudo_teorias_cores/caracteristicas_WIN_mini_indice.md rename to estudo_teorias/caracteristicas_WIN_mini_indice.md diff --git a/estudo_teorias_cores/caracteristicas_ativos_tecnicos.md b/estudo_teorias/caracteristicas_ativos_tecnicos.md similarity index 100% rename from estudo_teorias_cores/caracteristicas_ativos_tecnicos.md rename to estudo_teorias/caracteristicas_ativos_tecnicos.md diff --git a/estudo_teorias_cores/correlacao_ativos.md b/estudo_teorias/correlacao_ativos.md similarity index 100% rename from estudo_teorias_cores/correlacao_ativos.md rename to estudo_teorias/correlacao_ativos.md diff --git a/estudo_teorias_cores/eficiencia_tributaria.md b/estudo_teorias/eficiencia_tributaria.md similarity index 100% rename from estudo_teorias_cores/eficiencia_tributaria.md rename to estudo_teorias/eficiencia_tributaria.md diff --git a/estudo_teorias_cores/gerenciamento_risco.md b/estudo_teorias/gerenciamento_risco.md similarity index 100% rename from estudo_teorias_cores/gerenciamento_risco.md rename to estudo_teorias/gerenciamento_risco.md diff --git a/estudo_teorias_cores/organizacao_B3_Internacional.md b/estudo_teorias/organizacao_B3_Internacional.md similarity index 100% rename from estudo_teorias_cores/organizacao_B3_Internacional.md rename to estudo_teorias/organizacao_B3_Internacional.md diff --git a/estudo_teorias_cores/organizacao_B3_Internacional_horarios.md b/estudo_teorias/organizacao_B3_Internacional_horarios.md similarity index 100% rename from estudo_teorias_cores/organizacao_B3_Internacional_horarios.md rename to estudo_teorias/organizacao_B3_Internacional_horarios.md diff --git a/estudo_teorias_cores/tabela_confluencias.md b/estudo_teorias/tabela_confluencias.md similarity index 100% rename from estudo_teorias_cores/tabela_confluencias.md rename to estudo_teorias/tabela_confluencias.md diff --git a/estudo_teorias_cores/teoria_ATR.md b/estudo_teorias/teoria_ATR.md similarity index 100% rename from estudo_teorias_cores/teoria_ATR.md rename to estudo_teorias/teoria_ATR.md diff --git a/estudo_teorias_cores/teoria_IFR.md b/estudo_teorias/teoria_IFR.md similarity index 100% rename from estudo_teorias_cores/teoria_IFR.md rename to estudo_teorias/teoria_IFR.md diff --git a/estudo_teorias_cores/teoria_OCO.md b/estudo_teorias/teoria_OCO.md similarity index 100% rename from estudo_teorias_cores/teoria_OCO.md rename to estudo_teorias/teoria_OCO.md diff --git a/estudo_teorias_cores/teoria_VSA.md b/estudo_teorias/teoria_VSA.md similarity index 100% rename from estudo_teorias_cores/teoria_VSA.md rename to estudo_teorias/teoria_VSA.md diff --git a/estudo_teorias_cores/teoria_candlestick.md b/estudo_teorias/teoria_candlestick.md similarity index 100% rename from estudo_teorias_cores/teoria_candlestick.md rename to estudo_teorias/teoria_candlestick.md diff --git a/estudo_teorias_cores/teoria_medias.md b/estudo_teorias/teoria_medias.md similarity index 100% rename from estudo_teorias_cores/teoria_medias.md rename to estudo_teorias/teoria_medias.md diff --git a/estudo_teorias_cores/teoria_panorama_contexto.md b/estudo_teorias/teoria_panorama_contexto.md similarity index 100% rename from estudo_teorias_cores/teoria_panorama_contexto.md rename to estudo_teorias/teoria_panorama_contexto.md diff --git a/estudo_teorias_cores/teoria_priceAction_primeirocandle.md b/estudo_teorias/teoria_priceAction_primeirocandle.md similarity index 100% rename from estudo_teorias_cores/teoria_priceAction_primeirocandle.md rename to estudo_teorias/teoria_priceAction_primeirocandle.md diff --git a/estudo_teorias_cores/teoria_priceaction.md b/estudo_teorias/teoria_priceaction.md similarity index 100% rename from estudo_teorias_cores/teoria_priceaction.md rename to estudo_teorias/teoria_priceaction.md diff --git a/estudo_teorias_cores/teoria_renko.md b/estudo_teorias/teoria_renko.md similarity index 100% rename from estudo_teorias_cores/teoria_renko.md rename to estudo_teorias/teoria_renko.md diff --git a/estudo_teorias_cores/teoria_sentimentosTrade.md b/estudo_teorias/teoria_sentimentosTrade.md similarity index 100% rename from estudo_teorias_cores/teoria_sentimentosTrade.md rename to estudo_teorias/teoria_sentimentosTrade.md diff --git a/estudo_teorias_cores/teoria_tendencia.md b/estudo_teorias/teoria_tendencia.md similarity index 100% rename from estudo_teorias_cores/teoria_tendencia.md rename to estudo_teorias/teoria_tendencia.md diff --git a/estudo_teorias_cores/teoria_tendencia_institucional.md b/estudo_teorias/teoria_tendencia_institucional.md similarity index 100% rename from estudo_teorias_cores/teoria_tendencia_institucional.md rename to estudo_teorias/teoria_tendencia_institucional.md diff --git a/estudo_teorias_cores/teoria_tendencia_pivots.md b/estudo_teorias/teoria_tendencia_pivots.md similarity index 100% rename from estudo_teorias_cores/teoria_tendencia_pivots.md rename to estudo_teorias/teoria_tendencia_pivots.md diff --git a/estudo_teorias_cores/teoria_volume.md b/estudo_teorias/teoria_volume.md similarity index 100% rename from estudo_teorias_cores/teoria_volume.md rename to estudo_teorias/teoria_volume.md diff --git a/estudo_teorias_cores/teoria_vwap.md b/estudo_teorias/teoria_vwap.md similarity index 100% rename from estudo_teorias_cores/teoria_vwap.md rename to estudo_teorias/teoria_vwap.md diff --git a/estudo_teorias_cores/teoria_wyckoff.md b/estudo_teorias/teoria_wyckoff.md similarity index 100% rename from estudo_teorias_cores/teoria_wyckoff.md rename to estudo_teorias/teoria_wyckoff.md diff --git a/profit_estudos/fev_2minReversaoComVolumeWIN.txt b/profit_estudos_cores/fev_2minReversaoComVolumeWIN.txt similarity index 100% rename from profit_estudos/fev_2minReversaoComVolumeWIN.txt rename to profit_estudos_cores/fev_2minReversaoComVolumeWIN.txt diff --git a/profit_estudos/fev_ATRmovimentoDoPrecoComVontade.txt b/profit_estudos_cores/fev_ATRmovimentoDoPrecoComVontade.txt similarity index 100% rename from profit_estudos/fev_ATRmovimentoDoPrecoComVontade.txt rename to profit_estudos_cores/fev_ATRmovimentoDoPrecoComVontade.txt diff --git a/profit_estudos/fev_ContadorCruzamentosMedias.txt b/profit_estudos_cores/fev_ContadorCruzamentosMedias.txt similarity index 100% rename from profit_estudos/fev_ContadorCruzamentosMedias.txt rename to profit_estudos_cores/fev_ContadorCruzamentosMedias.txt diff --git a/profit_estudos/fev_DetectorFasesMercado.txt b/profit_estudos_cores/fev_DetectorFasesMercado.txt similarity index 100% rename from profit_estudos/fev_DetectorFasesMercado.txt rename to profit_estudos_cores/fev_DetectorFasesMercado.txt diff --git a/profit_estudos/fev_DivergenciaIFR.txt b/profit_estudos_cores/fev_DivergenciaIFR.txt similarity index 100% rename from profit_estudos/fev_DivergenciaIFR.txt rename to profit_estudos_cores/fev_DivergenciaIFR.txt diff --git a/profit_estudos/fev_HorarioTurbulencia.txt b/profit_estudos_cores/fev_HorarioTurbulencia.txt similarity index 100% rename from profit_estudos/fev_HorarioTurbulencia.txt rename to profit_estudos_cores/fev_HorarioTurbulencia.txt diff --git a/profit_estudos/fev_MediasSetupDiario.txt b/profit_estudos_cores/fev_MediasSetupDiario.txt similarity index 100% rename from profit_estudos/fev_MediasSetupDiario.txt rename to profit_estudos_cores/fev_MediasSetupDiario.txt diff --git a/profit_estudos/fev_MediasSetupSemana.txt b/profit_estudos_cores/fev_MediasSetupSemana.txt similarity index 100% rename from profit_estudos/fev_MediasSetupSemana.txt rename to profit_estudos_cores/fev_MediasSetupSemana.txt diff --git a/profit_estudos/fev_OBVvolumeVerdadeiro.txt b/profit_estudos_cores/fev_OBVvolumeVerdadeiro.txt similarity index 100% rename from profit_estudos/fev_OBVvolumeVerdadeiro.txt rename to profit_estudos_cores/fev_OBVvolumeVerdadeiro.txt diff --git a/profit_estudos/fev_PainelDecisao.txt b/profit_estudos_cores/fev_PainelDecisao.txt similarity index 100% rename from profit_estudos/fev_PainelDecisao.txt rename to profit_estudos_cores/fev_PainelDecisao.txt diff --git a/profit_estudos/fev_PainelDecisaoAlarme.ntsl.txt b/profit_estudos_cores/fev_PainelDecisaoAlarme.ntsl.txt similarity index 100% rename from profit_estudos/fev_PainelDecisaoAlarme.ntsl.txt rename to profit_estudos_cores/fev_PainelDecisaoAlarme.ntsl.txt diff --git a/profit_estudos/fev_PriceActionAnaliseCorpo.txt b/profit_estudos_cores/fev_PriceActionAnaliseCorpo.txt similarity index 100% rename from profit_estudos/fev_PriceActionAnaliseCorpo.txt rename to profit_estudos_cores/fev_PriceActionAnaliseCorpo.txt diff --git a/profit_estudos/fev_PriceActionAnaliseSombra.txt b/profit_estudos_cores/fev_PriceActionAnaliseSombra.txt similarity index 100% rename from profit_estudos/fev_PriceActionAnaliseSombra.txt rename to profit_estudos_cores/fev_PriceActionAnaliseSombra.txt diff --git a/profit_estudos/fev_PriceActionCorpoSombraExecucao.txt b/profit_estudos_cores/fev_PriceActionCorpoSombraExecucao.txt similarity index 100% rename from profit_estudos/fev_PriceActionCorpoSombraExecucao.txt rename to profit_estudos_cores/fev_PriceActionCorpoSombraExecucao.txt diff --git a/profit_estudos/fev_PriceActionNewton.txt b/profit_estudos_cores/fev_PriceActionNewton.txt similarity index 100% rename from profit_estudos/fev_PriceActionNewton.txt rename to profit_estudos_cores/fev_PriceActionNewton.txt diff --git a/profit_estudos/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt similarity index 100% rename from profit_estudos/fev_PriceActionTiposCandlesLeitura.txt rename to profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt diff --git a/profit_estudos/fev_PriceActionVSA_OBV.txt b/profit_estudos_cores/fev_PriceActionVSA_OBV.txt similarity index 100% rename from profit_estudos/fev_PriceActionVSA_OBV.txt rename to profit_estudos_cores/fev_PriceActionVSA_OBV.txt diff --git a/profit_estudos/fev_RegraDeDow_Rompimento.txt b/profit_estudos_cores/fev_RegraDeDow_Rompimento.txt similarity index 100% rename from profit_estudos/fev_RegraDeDow_Rompimento.txt rename to profit_estudos_cores/fev_RegraDeDow_Rompimento.txt diff --git a/profit_estudos/fev_TendenciaLongoPrazo.txt b/profit_estudos_cores/fev_TendenciaLongoPrazo.txt similarity index 100% rename from profit_estudos/fev_TendenciaLongoPrazo.txt rename to profit_estudos_cores/fev_TendenciaLongoPrazo.txt diff --git a/profit_estudos/fev_TendenciaPivoTesteDeOuro.txt b/profit_estudos_cores/fev_TendenciaPivoTesteDeOuro.txt similarity index 100% rename from profit_estudos/fev_TendenciaPivoTesteDeOuro.txt rename to profit_estudos_cores/fev_TendenciaPivoTesteDeOuro.txt diff --git a/profit_estudos/fev_VSAassinaturaInstitucional.txt b/profit_estudos_cores/fev_VSAassinaturaInstitucional.txt similarity index 100% rename from profit_estudos/fev_VSAassinaturaInstitucional.txt rename to profit_estudos_cores/fev_VSAassinaturaInstitucional.txt diff --git a/profit_estudos/fev_VWAPreferenciaPreco.txt b/profit_estudos_cores/fev_VWAPreferenciaPreco.txt similarity index 100% rename from profit_estudos/fev_VWAPreferenciaPreco.txt rename to profit_estudos_cores/fev_VWAPreferenciaPreco.txt diff --git a/profit_estudos/fev_VWAPsemanalDiario.txt b/profit_estudos_cores/fev_VWAPsemanalDiario.txt similarity index 100% rename from profit_estudos/fev_VWAPsemanalDiario.txt rename to profit_estudos_cores/fev_VWAPsemanalDiario.txt diff --git a/profit_estudos/fev_direcaoDoDia.txt b/profit_estudos_cores/fev_direcaoDoDia.txt similarity index 100% rename from profit_estudos/fev_direcaoDoDia.txt rename to profit_estudos_cores/fev_direcaoDoDia.txt diff --git a/profit_estudos/fev_mediasTrend9_20_50_200.txt b/profit_estudos_cores/fev_mediasTrend9_20_50_200.txt similarity index 100% rename from profit_estudos/fev_mediasTrend9_20_50_200.txt rename to profit_estudos_cores/fev_mediasTrend9_20_50_200.txt diff --git a/profit_estudos/fev_panorama920.txt b/profit_estudos_cores/fev_panorama920.txt similarity index 100% rename from profit_estudos/fev_panorama920.txt rename to profit_estudos_cores/fev_panorama920.txt diff --git a/profit_estudos/fev_panoramaMedias9_20_50_200.txt b/profit_estudos_cores/fev_panoramaMedias9_20_50_200.txt similarity index 100% rename from profit_estudos/fev_panoramaMedias9_20_50_200.txt rename to profit_estudos_cores/fev_panoramaMedias9_20_50_200.txt diff --git a/profit_estudos/fev_priceActionPrimeiroCandle.txt b/profit_estudos_cores/fev_priceActionPrimeiroCandle.txt similarity index 100% rename from profit_estudos/fev_priceActionPrimeiroCandle.txt rename to profit_estudos_cores/fev_priceActionPrimeiroCandle.txt From d507e23d6f74b0c7e02111516413bf682025b9a4 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:01:22 -0300 Subject: [PATCH 07/63] =?UTF-8?q?Ajustes=20de=20candles=20de=20rejei=C3=A7?= =?UTF-8?q?=C3=A3o=20e=20zonas=20de=20rejei=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- estudo_teorias/mapa_de_uso_operacional.md | 159 +++++++ .../fev_DetectorFasesMercado.txt | 2 +- .../fev_PriceActionNewton.txt | 10 +- .../fev_PriceActionNewtonIFR.txt | 411 ++++++++++++++++++ .../fev_PriceActionTiposCandlesLeitura.txt | 41 +- 5 files changed, 615 insertions(+), 8 deletions(-) create mode 100644 estudo_teorias/mapa_de_uso_operacional.md create mode 100644 profit_estudos_cores/fev_PriceActionNewtonIFR.txt diff --git a/estudo_teorias/mapa_de_uso_operacional.md b/estudo_teorias/mapa_de_uso_operacional.md new file mode 100644 index 0000000..814bd66 --- /dev/null +++ b/estudo_teorias/mapa_de_uso_operacional.md @@ -0,0 +1,159 @@ +# Mapa de Uso Operacional (Branch fevereiro_tradeOperador) + +Este mapa organiza, em ordem prática, como usar os materiais da branch durante o dia de trade. + +## 1) Pré-mercado (planejamento) + +### Objetivo +Definir viés do dia e cenários de risco antes de procurar entrada. + +### Ler/consultar +- `estudo_teorias/teoria_panorama_contexto.md` +- `estudo_teorias/teoria_tendencia.md` +- `estudo_teorias/teoria_tendencia_institucional.md` +- `estudo_teorias/organizacao_B3_Internacional_horarios.md` +- `estudo_teorias/gerenciamento_risco.md` + +### Resultado esperado +- Viés inicial (comprador, vendedor ou neutro). +- Janelas de maior atenção (abertura, horários turbulentos, eventos). +- Limite de risco do dia definido. + +--- + +## 2) Leitura de contexto no gráfico (filtro de permissão) + +### Objetivo +Só operar quando houver contexto institucional e estrutura favoráveis. + +### Aplicar no Profit +- `profit_estudos_cores/fev_VWAPsemanalDiario.txt` +- `profit_estudos_cores/fev_VWAPreferenciaPreco.txt` +- `profit_estudos_cores/fev_DetectorFasesMercado.txt` +- `profit_estudos_cores/fev_panorama920.txt` +- `profit_estudos_cores/fev_panoramaMedias9_20_50_200.txt` + +### Regra prática +- Se VWAP/estrutura/fase estiverem indefinidas ou conflitantes: **não clicar**. +- Se houver alinhamento de tendência/fase: avançar para gatilho. + +--- + +## 3) Estrutura e confirmação de direção + +### Objetivo +Confirmar que não é apenas ruído/lateral curta. + +### Aplicar no Profit +- `profit_estudos_cores/fev_TendenciaPivoTesteDeOuro.txt` +- `profit_estudos_cores/fev_TendenciaLongoPrazo.txt` +- `profit_estudos_cores/fev_mediasTrend9_20_50_200.txt` +- `profit_estudos_cores/fev_MediasSetupDiario.txt` +- `profit_estudos_cores/fev_MediasSetupSemana.txt` + +### Regra prática +- Só buscar entrada quando pivô/rompimento e tendência estiverem coerentes entre si. +- Se sinais forem mistos, reduzir frequência (esperar nova barra de confirmação). + +--- + +## 4) Gatilho de entrada (execução) + +### Objetivo +Executar entrada apenas com candle/gatilho qualificado. + +### Aplicar no Profit +- `profit_estudos_cores/fev_PriceActionCorpoSombraExecucao.txt` +- `profit_estudos_cores/fev_PriceActionAnaliseCorpo.txt` +- `profit_estudos_cores/fev_PriceActionAnaliseSombra.txt` +- `profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt` +- `profit_estudos_cores/fev_priceActionPrimeiroCandle.txt` + +### Regra prática +- Contexto bom + gatilho ruim = **sem entrada**. +- Contexto bom + gatilho limpo = entrada com risco previamente definido. + +--- + +## 5) Confirmação de fluxo/força + +### Objetivo +Evitar entrada em rompimento fraco ou divergente. + +### Aplicar no Profit +- `profit_estudos_cores/fev_OBVvolumeVerdadeiro.txt` +- `profit_estudos_cores/fev_VSAassinaturaInstitucional.txt` +- `profit_estudos_cores/fev_PriceActionVSA_OBV.txt` +- `profit_estudos_cores/fev_DivergenciaIFR.txt` +- `profit_estudos_cores/fev_ATRmovimentoDoPrecoComVontade.txt` + +### Regra prática +- Se fluxo divergir da direção da operação: abortar ou reduzir exposição. +- Priorizar operações com confluência de força (VSA/OBV/ATR). + +--- + +## 6) Tomada de decisão unificada (checklist final) + +### Objetivo +Consolidar os filtros em uma decisão única e repetível. + +### Aplicar no Profit +- `profit_estudos_cores/fev_PainelDecisao.txt` +- `profit_estudos_cores/fev_PainelDecisaoAlarme.ntsl.txt` + +### Regra prática +- Usar o painel como “porteiro” final: só operar em confluência. +- Sem confluência completa: aguardar, sem forçar trade. + +--- + +## 7) Gestão intraday + +### Objetivo +Gerenciar ritmo operacional e proteger capital durante o pregão. + +### Aplicar no Profit +- `profit_estudos_cores/fev_direcaoDoDia.txt` +- `profit_estudos_cores/fev_HorarioTurbulencia.txt` +- `profit_estudos_cores/fev_2minReversaoComVolumeWIN.txt` +- `profit_estudos_cores/fev_RegraDeDow_Rompimento.txt` + +### Regra prática +- Em horário turbulento: exigir confirmação extra. +- Se perder contexto do dia: parar, reavaliar, só depois voltar. + +--- + +## 8) Pós-mercado (revisão) + +### Objetivo +Evoluir processo e reduzir erro repetido. + +### Revisar com base em +- `estudo_teorias/tabela_confluencias.md` +- `estudo_teorias/teoria_sentimentosTrade.md` +- `estudo_teorias/teoria_wyckoff.md` +- `estudo_teorias/teoria_volume.md` +- `estudo_teorias/eficiencia_tributaria.md` + +### Checklist de revisão +- A entrada respeitou contexto institucional? +- O gatilho foi limpo ou antecipado? +- Havia confluência de fluxo/força? +- O risco do plano foi respeitado? +- Houve overtrade por emoção? + +--- + +## Ordem rápida (resumo de bolso) + +1. Contexto (VWAP + fase + panorama) +2. Estrutura (tendência/pivô/médias) +3. Gatilho (price action corpo/sombra) +4. Fluxo (OBV/VSA/ATR) +5. Painel final (autoriza ou não) +6. Gestão intraday (horário e risco) +7. Revisão pós-mercado + +Se qualquer etapa falhar, não avançar para a próxima. \ No newline at end of file diff --git a/profit_estudos_cores/fev_DetectorFasesMercado.txt b/profit_estudos_cores/fev_DetectorFasesMercado.txt index 95e658d..5f29044 100644 --- a/profit_estudos_cores/fev_DetectorFasesMercado.txt +++ b/profit_estudos_cores/fev_DetectorFasesMercado.txt @@ -11,7 +11,7 @@ var faseMercado : string; corFundo : integer; limiarFlat : float; - + begin // --- 1. CÁLCULOS --- mme20 := MediaExp(20, Close); diff --git a/profit_estudos_cores/fev_PriceActionNewton.txt b/profit_estudos_cores/fev_PriceActionNewton.txt index f553459..5d205a7 100644 --- a/profit_estudos_cores/fev_PriceActionNewton.txt +++ b/profit_estudos_cores/fev_PriceActionNewton.txt @@ -231,8 +231,14 @@ begin fPavioInfPrimeiro := Close - Low; end; - bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioSupPrimeiro > fPavioInfPrimeiro); - bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioInfPrimeiro > fPavioSupPrimeiro); + bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioSupPrimeiro > (fRangePrimeiro * 0.45)) + and (Close <= (Low + (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * 1.10)); + bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioInfPrimeiro > (fRangePrimeiro * 0.45)) + and (Close >= (High - (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * 1.10)); bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt new file mode 100644 index 0000000..b52c027 --- /dev/null +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -0,0 +1,411 @@ +{ + Indicador: fev_PriceActionNewtonIFR + Autor: Wesley (Gemini Code Assist) + Descrição: Versão do Price Action Newton com filtro de IFR para reduzir falso sinal. + Mantém lógica de Força/Massa/Aceleração e adiciona veto por momentum (IFR). +} + +input + // Configuração de Visualização + iModoVisualizacao(0); // 0: Força, 1: Massa, 2: Aceleração + bVisualizarAltaIntensidade(true); // true: Alta Volatilidade/Força, false: Baixa (Consolidação) + iPeriodoSuavizacao(3); // 1 = Sem suavização (Cru). 3 a 5 = Ideal para WINFUT (Filtra ruído) + + // Módulo ATR + UsarModuloATR(true); + NormalizarForcaPorATR(true); + PeriodoATR(14); + PeriodoMediaATR(50); + FatorMinATR(0.90); + FatorMaxATR(2.50); + + // Módulo IFR (novo) + UsarFiltroIFR(true); + PeriodoIFR(14); + IFRMinCompra(52); // Acima disto, compra ganha permissão + IFRMaxVenda(48); // Abaixo disto, venda ganha permissão + UsarVetoExtremosIFR(true); + IFRSobrecompra(75); // Evita compra esticada + IFRSobrevenda(25); // Evita venda esticada + + // Zonas de atenção para sinais de rejeição (novo) + IFRZonaRejeicaoTopoMin(70); + IFRZonaRejeicaoTopoMax(80); + IFRZonaRejeicaoFundoMin(20); + IFRZonaRejeicaoFundoMax(30); + + // Primeiro candle + AtivarAnalisePrimeiroCandle(true); + pFatorVolumePrimeiroCandle(1.5); + pCorpoMinPrimeiroCandle(0.60); + + // Parâmetros configuráveis na tela + pFatorVelocidadeAltaManha(2.5); + pFatorVelocidadeBaixaManha(0.4); + pFatorForcaAltaManha(2.5); + pFatorForcaBaixaManha(0.4); + pFatorMassaAltaManha(2.0); + pFatorMassaBaixaManha(0.7); + pFatorConsolidacaoManha(0.4); + + pFatorVelocidadeAltaTarde(1.8); + pFatorVelocidadeBaixaTarde(0.6); + pFatorForcaAltaTarde(1.8); + pFatorForcaBaixaTarde(0.6); + pFatorMassaAltaTarde(1.5); + pFatorMassaBaixaTarde(0.8); + pFatorConsolidacaoTarde(0.6); + +var + // Cores + cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco, cLaranja : Integer; + nR, nG, nB, j : Integer; + + // Variáveis de Price Action Newton + fVelocidade, fAceleracao, fMassa, fForca, fMaxForca, fIntensidade : float; + fForcaBase, fATRAtual, fATRMedio : float; + fVelocidadeAnt, fAceleracaoAnt, fMassaAnt, fForcaAnt : float; + fPrecoBase, fPrecoBaseAnt, fPrecoBaseAnt2, fPrecoBaseAnt3 : float; + + // Variáveis IFR + fIFR : float; + bIFRCompraOK, bIFRVendaOK : boolean; + bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; + + // Price Action nas zonas IFR + fRangeAtual, fCorpoAtual, fPavioSupAtual, fPavioInfAtual, fMediaVolumePA : float; + bAltaAtual, bBaixaAtual, bDojiForteZona : boolean; + bPinBarTopoZona, bPinBarFundoZona : boolean; + bEngolfoBaixaZona, bEngolfoAltaZona : boolean; + bInsideBarZona, bRejectionSpikeTopoZona, bRejectionSpikeFundoZona : boolean; + bReversaoBaixaZona, bReversaoAltaZona : boolean; + + // Primeiro candle + fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : float; + bPrimeiroCandleDia, bPrimeiroAlta, bPrimeiroBaixa, bDojiPrimeiro, bAbsorcaoPrimeiro : boolean; + bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + bIFRZonaRejeicaoTopo, bIFRZonaRejeicaoFundo : boolean; + + // Contexto + bATRRegimeOK : boolean; + bPeriodoManha : boolean; + +begin + // 1. Definição de Cores + cVerde := RGB(0, 255, 0); + cVermelho := RGB(255, 0, 0); + cCiano := RGB(0, 255, 255); + cFucsia := RGB(255, 0, 255); + cMarrom := RGB(139, 69, 19); + cCinza := RGB(169, 169, 169); + cBranco := RGB(255, 255, 255); + cLaranja := RGB(255, 140, 0); + + // 2. Identificação do Período (Manhã ou Tarde) + bPeriodoManha := (Time < 120000); + + // 3. Cálculos Físicos (Newton) + if iPeriodoSuavizacao > 1 then + fPrecoBase := MediaExp(iPeriodoSuavizacao, Close) + else + fPrecoBase := Close; + + fPrecoBaseAnt := fPrecoBase[1]; + fPrecoBaseAnt2 := fPrecoBase[2]; + fPrecoBaseAnt3 := fPrecoBase[3]; + + fVelocidade := fPrecoBase - fPrecoBaseAnt; + fVelocidadeAnt := fPrecoBaseAnt - fPrecoBaseAnt2; + + fAceleracao := fVelocidade - fVelocidadeAnt; + fAceleracaoAnt := fVelocidadeAnt - (fPrecoBaseAnt2 - fPrecoBaseAnt3); + + fMassa := Volume; + fMassaAnt := Volume[1]; + + fForca := fMassa * fAceleracao; + fForcaAnt := fMassaAnt * fAceleracaoAnt; + + // 4. Módulo ATR + fATRAtual := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoMediaATR, fATRAtual); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bATRRegimeOK := (not UsarModuloATR) + or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); + + fForcaBase := fForca; + if NormalizarForcaPorATR then + begin + if fATRAtual > 0 then + fForcaBase := fForca / fATRAtual + else + fForcaBase := fForca; + end; + + // 5. Módulo IFR (veto de direção) + fIFR := IFR(PeriodoIFR); + + bIFRCompraOK := (not UsarFiltroIFR) + or ((fIFR >= IFRMinCompra) + and ((not UsarVetoExtremosIFR) or (fIFR <= IFRSobrecompra))); + + bIFRVendaOK := (not UsarFiltroIFR) + or ((fIFR <= IFRMaxVenda) + and ((not UsarVetoExtremosIFR) or (fIFR >= IFRSobrevenda))); + + bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); + bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + + // 6. Lógica de Coloração Dinâmica + PaintBar(cCinza); + + // Modo 0: FORÇA (F = M * A) + if iModoVisualizacao = 0 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else + begin + fMaxForca := 0.0001; + for j := 0 to 20 do + begin + if Abs(fForcaBase[j]) > fMaxForca then fMaxForca := Abs(fForcaBase[j]); + end; + + fIntensidade := Abs(fForcaBase) / fMaxForca; + if fIntensidade > 1.0 then fIntensidade := 1.0; + + if (fForcaBase > 0) and bIFRCompraOK then + begin + nR := 255 - Round(255 * fIntensidade); + nG := 255; + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end + else if (fForcaBase < 0) and bIFRVendaOK then + begin + nR := 255; + nG := 255 - Round(255 * fIntensidade); + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end + else if fForcaBase = 0 then + PaintBar(cBranco) + else + PaintBar(cCinza); + end; + end + + // Modo 1: MASSA (Volume) + else if iModoVisualizacao = 1 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaManha)) or + ((not bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaTarde)) then + begin + if (Close >= Open) and bIFRCompraOK then + PaintBar(cCiano) + else if (Close < Open) and bIFRVendaOK then + PaintBar(cFucsia) + else + PaintBar(cCinza); + end; + end + else + begin + if ((bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaManha)) or + ((not bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaTarde)) then + PaintBar(cCinza); + end; + end + + // Modo 2: ACELERAÇÃO + else if iModoVisualizacao = 2 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaTarde)) then + begin + if (fAceleracao > 0) and bIFRCompraOK then + PaintBar(cCiano) + else if (fAceleracao < 0) and bIFRVendaOK then + PaintBar(cFucsia) + else + PaintBar(cCinza); + end; + end + else + begin + if ((bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaTarde)) then + PaintBar(cCinza); + end; + end; + + // 6.1 Override: Price Action nas zonas IFR de rejeição (qualquer candle) + if bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal then + begin + fRangeAtual := High - Low; + if fRangeAtual <= 0 then + fRangeAtual := 0.01; + + fCorpoAtual := Abs(Close - Open); + fMediaVolumePA := Media(20, Volume); + if fMediaVolumePA <= 0 then + fMediaVolumePA := 1; + + if Close >= Open then + begin + fPavioSupAtual := High - Close; + fPavioInfAtual := Open - Low; + bAltaAtual := True; + bBaixaAtual := False; + end + else + begin + fPavioSupAtual := High - Open; + fPavioInfAtual := Close - Low; + bAltaAtual := False; + bBaixaAtual := True; + end; + + bPinBarTopoZona := bIFRZonaRejeicaoTopoGlobal + and (fPavioSupAtual > (fCorpoAtual * 2.0)) + and (Close <= (Low + (fRangeAtual * 0.35))); + + bPinBarFundoZona := bIFRZonaRejeicaoFundoGlobal + and (fPavioInfAtual > (fCorpoAtual * 2.0)) + and (Close >= (High - (fRangeAtual * 0.35))); + + bEngolfoBaixaZona := bIFRZonaRejeicaoTopoGlobal + and bBaixaAtual + and (Close[1] > Open[1]) + and (Open >= Close[1]) + and (Close <= Open[1]); + + bEngolfoAltaZona := bIFRZonaRejeicaoFundoGlobal + and bAltaAtual + and (Close[1] < Open[1]) + and (Open <= Close[1]) + and (Close >= Open[1]); + + bInsideBarZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) + and (High < High[1]) + and (Low > Low[1]); + + bRejectionSpikeTopoZona := bIFRZonaRejeicaoTopoGlobal + and (fPavioSupAtual > (fRangeAtual * 0.60)) + and (fCorpoAtual < (fRangeAtual * 0.25)); + + bRejectionSpikeFundoZona := bIFRZonaRejeicaoFundoGlobal + and (fPavioInfAtual > (fRangeAtual * 0.60)) + and (fCorpoAtual < (fRangeAtual * 0.25)); + + bReversaoBaixaZona := bIFRZonaRejeicaoTopoGlobal + and bBaixaAtual + and (High >= High[1]) + and (Close < ((Open[1] + Close[1]) * 0.5)); + + bReversaoAltaZona := bIFRZonaRejeicaoFundoGlobal + and bAltaAtual + and (Low <= Low[1]) + and (Close > ((Open[1] + Close[1]) * 0.5)); + + bDojiForteZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) + and (fCorpoAtual <= (fRangeAtual * 0.10)) + and (Volume >= (fMediaVolumePA * 1.20)); + + if bEngolfoBaixaZona or bPinBarTopoZona or bRejectionSpikeTopoZona or bReversaoBaixaZona then + PaintBar(cLaranja) + else if bEngolfoAltaZona or bPinBarFundoZona or bRejectionSpikeFundoZona or bReversaoAltaZona then + PaintBar(cLaranja) + else if bInsideBarZona then + PaintBar(cLaranja) + else if bDojiForteZona then + PaintBar(cLaranja); + end; + + // 7. Override opcional: análise específica do primeiro candle + bPrimeiroCandleDia := (Date <> Date[1]); + if bPrimeiroCandleDia and AtivarAnalisePrimeiroCandle then + begin + fRangePrimeiro := High - Low; + if fRangePrimeiro <= 0 then + fRangePrimeiro := 0.01; + + fCorpoPrimeiro := Abs(Close - Open); + fMediaVolumePrimeiro := Media(20, Volume); + if fMediaVolumePrimeiro <= 0 then + fMediaVolumePrimeiro := 1; + + bPrimeiroAlta := (Close > Open); + bPrimeiroBaixa := (Close < Open); + bDojiPrimeiro := (fCorpoPrimeiro <= (fRangePrimeiro * 0.10)); + + if (Close >= Open) then + begin + fPavioSupPrimeiro := High - Close; + fPavioInfPrimeiro := Open - Low; + end + else + begin + fPavioSupPrimeiro := High - Open; + fPavioInfPrimeiro := Close - Low; + end; + + bIFRZonaRejeicaoTopo := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); + bIFRZonaRejeicaoFundo := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + + bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioSupPrimeiro > (fRangePrimeiro * 0.45)) + and (Close <= (Low + (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * 1.10)) + and bIFRZonaRejeicaoTopo; + + bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioInfPrimeiro > (fRangePrimeiro * 0.45)) + and (Close >= (High - (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * 1.10)) + and bIFRZonaRejeicaoFundo; + + bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); + bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) + or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); + + if bArmadilhaPrimeiro then + PaintBar(cMarrom) + else if bRejeicaoTopoPrimeiro and bIFRVendaOK then + PaintBar(cLaranja) + else if bRejeicaoFundoPrimeiro and bIFRCompraOK then + PaintBar(cLaranja) + else if bIniciativaAltaPrimeiro and bIFRCompraOK then + PaintBar(cCiano) + else if bIniciativaBaixaPrimeiro and bIFRVendaOK then + PaintBar(cFucsia) + else if bDojiPrimeiro and (bIFRZonaRejeicaoTopo or bIFRZonaRejeicaoFundo) then + PaintBar(cLaranja) + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(cBranco) + else if bPrimeiroAlta and bIFRCompraOK then + PaintBar(cVerde) + else if bPrimeiroBaixa and bIFRVendaOK then + PaintBar(cVermelho) + else + PaintBar(cCinza); + end; + +end; \ No newline at end of file diff --git a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt index 5449399..214dc94 100644 --- a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt +++ b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt @@ -2,6 +2,12 @@ input AtivarAnalisePrimeiroCandle(true); FatorVolumePrimeiroCandle(1.5); CorpoMinPrimeiroCandle(0.60); + PeriodoATRRejeicao(14); + FatorRangeMinATRRejeicao(0.80); + FatorPavioRejeicao(2.2); + FracaoFechamentoRejeicao(0.35); + FatorVolumeMinRejeicao(1.20); + PeriodoExtremoRejeicao(20); var // Cores @@ -25,8 +31,10 @@ var bPrimeiroCandle, bAbsorcaoPrimeiro : boolean; bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro : boolean; + bExtremoTopoPrimeiro, bExtremoFundoPrimeiro : boolean; bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; - fMediaVolumePrimeiro : float; + fMediaVolumePrimeiro, fATRRejeicao : float; + fTopoExtremoRef, fFundoExtremoRef, fCloseAnteriorRef : float; begin // 1. Definição de Cores @@ -106,6 +114,11 @@ begin bSinalCompraContextual := bEngolfoAltaValido or bMarteloConfirmado; bSinalVendaContextual := bEngolfoBaixaValido or bEstrelaConfirmada; + // Referências de extremos calculadas fora de escopos condicionais + fTopoExtremoRef := Highest(High, PeriodoExtremoRejeicao)[1]; + fFundoExtremoRef := Lowest(Low, PeriodoExtremoRejeicao)[1]; + fCloseAnteriorRef := Close[1]; + // 4. Lógica de Coloração (Hierarquia de Prioridade) // Default @@ -133,14 +146,32 @@ begin if fMediaVolumePrimeiro <= 0 then fMediaVolumePrimeiro := 1; - bRejeicaoTopoPrimeiro := (fPavioSup > (fCorpo * 1.8)) and (fPavioSup > fPavioInf); - bRejeicaoFundoPrimeiro := (fPavioInf > (fCorpo * 1.8)) and (fPavioInf > fPavioSup); + fATRRejeicao := Media(PeriodoATRRejeicao, Range); + if fATRRejeicao <= 0 then + fATRRejeicao := 0.01; + + bExtremoTopoPrimeiro := (High >= fTopoExtremoRef); + bExtremoFundoPrimeiro := (Low <= fFundoExtremoRef); + + bRejeicaoTopoPrimeiro := (fPavioSup > (fCorpo * FatorPavioRejeicao)) + and (fPavioSup > fPavioInf) + and (Close <= (Low + (fRange * FracaoFechamentoRejeicao))) + and (fRange >= (fATRRejeicao * FatorRangeMinATRRejeicao)) + and (Volume >= (fMediaVolumePrimeiro * FatorVolumeMinRejeicao)) + and bExtremoTopoPrimeiro; + + bRejeicaoFundoPrimeiro := (fPavioInf > (fCorpo * FatorPavioRejeicao)) + and (fPavioInf > fPavioSup) + and (Close >= (High - (fRange * FracaoFechamentoRejeicao))) + and (fRange >= (fATRRejeicao * FatorRangeMinATRRejeicao)) + and (Volume >= (fMediaVolumePrimeiro * FatorVolumeMinRejeicao)) + and bExtremoFundoPrimeiro; bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)) and (fCorpo <= (fRange * 0.35)); bIniciativaAltaPrimeiro := bAlta and (fCorpo >= (fRange * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); bIniciativaBaixaPrimeiro := bBaixa and (fCorpo >= (fRange * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); - bGapAltaPrimeiro := (Open > Close[1]); - bGapBaixaPrimeiro := (Open < Close[1]); + bGapAltaPrimeiro := (Open > fCloseAnteriorRef); + bGapBaixaPrimeiro := (Open < fCloseAnteriorRef); bArmadilhaPrimeiro := (bGapAltaPrimeiro and bBaixa and bRejeicaoTopoPrimeiro) or (bGapBaixaPrimeiro and bAlta and bRejeicaoFundoPrimeiro); From 361bfcf08b9ef71ac9c1943771b7ef697d7fc0a3 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Tue, 24 Feb 2026 17:30:22 -0300 Subject: [PATCH 08/63] =?UTF-8?q?Ajustes=20de=20volatilidade=20por=20horar?= =?UTF-8?q?io=20durante=20o=20preg=C3=A3o=20B3=20WIN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- estudo_teorias/teoria_MACD.md | 101 ++++++++++++ .../fev_PriceActionNewtonIFR.txt | 152 +++++++++++++++--- .../fev_PriceActionTiposCandlesLeitura.txt | 79 ++++++++- 3 files changed, 304 insertions(+), 28 deletions(-) create mode 100644 estudo_teorias/teoria_MACD.md diff --git a/estudo_teorias/teoria_MACD.md b/estudo_teorias/teoria_MACD.md new file mode 100644 index 0000000..84b2c79 --- /dev/null +++ b/estudo_teorias/teoria_MACD.md @@ -0,0 +1,101 @@ +# Teoria Operacional: MACD (Moving Average Convergence Divergence) + +## 1. O que é o MACD? +O **MACD** é um indicador de **momentum e tendência**. Ele mede a diferença entre duas médias móveis exponenciais para mostrar se a força do movimento está acelerando ou perdendo intensidade. + +### Estrutura do indicador +- **Linha MACD:** diferença entre EMA rápida e EMA lenta. +- **Linha de Sinal:** média da linha MACD (suavização). +- **Histograma:** distância entre MACD e Linha de Sinal (força do impulso). + +Configuração mais usada: +- **Rápida:** 12 +- **Lenta:** 26 +- **Sinal:** 9 + +--- + +## 2. Para que serve? +O MACD serve para responder 3 perguntas principais: + +1. **O movimento tem força real?** + - Histograma aumentando = impulso ganhando força. + - Histograma diminuindo = impulso perdendo força. + +2. **Há possível mudança de direção?** + - Cruzamento MACD acima da linha de sinal = viés de alta. + - Cruzamento MACD abaixo da linha de sinal = viés de baixa. + +3. **A tendência está saudável ou cansada?** + - MACD acima de zero = ambiente comprador. + - MACD abaixo de zero = ambiente vendedor. + - Divergência preço vs MACD = alerta de exaustão. + +--- + +## 3. Leitura prática (sem complicar) + +### A. Cruzamento de linhas +- **Compra:** MACD cruza para cima da linha de sinal. +- **Venda:** MACD cruza para baixo da linha de sinal. + +> Uso correto: cruzamento com contexto (tendência, estrutura, volume). Sozinho gera ruído. + +### B. Linha zero +- **Acima de zero:** força compradora predominante. +- **Abaixo de zero:** força vendedora predominante. + +> O cruzamento da linha zero costuma ser mais atrasado, porém mais confiável para confirmar regime. + +### C. Histograma +- Barras crescendo: aceleração do movimento. +- Barras encolhendo: desaceleração (cansaço). + +> Muito útil para evitar entrada tardia no “fim da perna”. + +--- + +## 4. Sinais de atenção (erros comuns) +- Operar todo cruzamento em mercado lateral. +- Ignorar direção de contexto (VWAP, médias, estrutura). +- Comprar com histograma enfraquecendo forte perto de resistência. +- Vender com histograma enfraquecendo perto de suporte. + +--- + +## 5. Divergência no MACD (sinal de exaustão) + +### Divergência de baixa +- Preço faz topo mais alto, mas MACD/histograma faz topo mais baixo. +- Indica perda de força da alta. + +### Divergência de alta +- Preço faz fundo mais baixo, mas MACD/histograma faz fundo mais alto. +- Indica perda de força da baixa. + +> Divergência é **alerta**, não entrada automática. Precisa confirmação por price action/estrutura. + +--- + +## 6. Integração com seu Trade System +Use o MACD como **filtro de qualidade**, não como gatilho isolado: + +- **Contexto:** tendência + fase do mercado + VWAP. +- **Gatilho:** price action (rejeição, engolfo, rompimento válido). +- **Confirmação:** MACD alinhado (cruzamento + histograma favorável). +- **Veto:** se MACD divergir fortemente do movimento, reduzir mão ou evitar entrada. + +Fluxo simples: +1. Ver contexto (estrutura + VWAP) +2. Ver gatilho no candle +3. Confirmar força no MACD +4. Executar com risco definido + +--- + +## 7. Resumo direto +- **O que é:** indicador de tendência + momentum. +- **Para que serve:** confirmar direção, medir força e detectar cansaço. +- **Como usar melhor:** em confluência com price action, volume e estrutura. + +O MACD melhora a assertividade quando atua como “validador de força” do seu setup, e não como único motivo da entrada. \ No newline at end of file diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index b52c027..db733c9 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -34,6 +34,28 @@ input IFRZonaRejeicaoFundoMin(20); IFRZonaRejeicaoFundoMax(30); + // Rejeição robusta (score + confirmação) + UsarScoreRejeicao(true); + PontuacaoMinRejeicao(70); + PesoPavioRejeicao(30); + PesoFechamentoRejeicao(25); + PesoVolumeRejeicao(20); + PesoExtremoRejeicao(15); + PesoRangeATRRejeicao(10); + PesoCansacoRejeicao(10); + UsarFiltroCansacoRejeicao(true); + PeriodoATRRejeicao(14); + FatorRangeMinATRRejeicao(0.80); + FatorVolumeMinRejeicao(1.20); + UsarFatorVolumePorHorario(true); + HoraFimManha(113000); + HoraFimMiolo(163000); + FatorVolumeMinRejeicaoManha(1.30); + FatorVolumeMinRejeicaoMiolo(1.00); + FatorVolumeMinRejeicaoFechamento(1.15); + PeriodoExtremoRejeicao(20); + ConfirmarRejeicaoNoCandleSeguinte(true); + // Primeiro candle AtivarAnalisePrimeiroCandle(true); pFatorVolumePrimeiroCandle(1.5); @@ -79,6 +101,15 @@ var bEngolfoBaixaZona, bEngolfoAltaZona : boolean; bInsideBarZona, bRejectionSpikeTopoZona, bRejectionSpikeFundoZona : boolean; bReversaoBaixaZona, bReversaoAltaZona : boolean; + bCondPavioTopo, bCondPavioFundo : boolean; + bCondFechamentoTopo, bCondFechamentoFundo : boolean; + bCondVolumeRejeicao, bCondRangeATRRejeicao : boolean; + bCondExtremoTopo, bCondExtremoFundo : boolean; + bCondCansacoTopo, bCondCansacoFundo : boolean; + bRejeicaoTopoScoreRaw, bRejeicaoFundoScoreRaw : boolean; + bRejeicaoTopoScoreRawPrev, bRejeicaoFundoScoreRawPrev : boolean; + bRejeicaoTopoScoreFinal, bRejeicaoFundoScoreFinal : boolean; + iScoreRejeicaoTopo, iScoreRejeicaoFundo : Integer; // Primeiro candle fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : float; @@ -86,6 +117,11 @@ var bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; bIFRZonaRejeicaoTopo, bIFRZonaRejeicaoFundo : boolean; + fATRRejeicaoZona, fMediaVolumeRejeicaoZona : float; + fTopoExtremoRefZona, fFundoExtremoRefZona, fCloseAnteriorRefZona : float; + fOpenAnteriorRefZona, fHighAnteriorRefZona, fLowAnteriorRefZona : float; + fForcaBaseAnteriorZona : float; + fFatorVolumeMinRejeicaoDinamico : float; // Contexto bATRRegimeOK : boolean; @@ -105,6 +141,16 @@ begin // 2. Identificação do Período (Manhã ou Tarde) bPeriodoManha := (Time < 120000); + // 2.1 Fator dinâmico de volume por horário (curva intraday B3) + if not UsarFatorVolumePorHorario then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicao + else if Time <= HoraFimManha then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoManha + else if Time <= HoraFimMiolo then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoMiolo + else + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoFechamento; + // 3. Cálculos Físicos (Newton) if iPeriodoSuavizacao > 1 then fPrecoBase := MediaExp(iPeriodoSuavizacao, Close) @@ -159,6 +205,25 @@ begin bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + // Referências robustas fora de escopos condicionais + fATRRejeicaoZona := Media(PeriodoATRRejeicao, Range); + if fATRRejeicaoZona <= 0 then + fATRRejeicaoZona := 0.01; + + fMediaVolumeRejeicaoZona := Media(20, Volume); + if fMediaVolumeRejeicaoZona <= 0 then + fMediaVolumeRejeicaoZona := 1; + + fTopoExtremoRefZona := Highest(High, PeriodoExtremoRejeicao)[1]; + fFundoExtremoRefZona := Lowest(Low, PeriodoExtremoRejeicao)[1]; + fCloseAnteriorRefZona := Close[1]; + fOpenAnteriorRefZona := Open[1]; + fHighAnteriorRefZona := High[1]; + fLowAnteriorRefZona := Low[1]; + fForcaBaseAnteriorZona := fForcaBase[1]; + bRejeicaoTopoScoreRawPrev := bRejeicaoTopoScoreRaw[1]; + bRejeicaoFundoScoreRawPrev := bRejeicaoFundoScoreRaw[1]; + // 6. Lógica de Coloração Dinâmica PaintBar(cCinza); @@ -259,9 +324,7 @@ begin fRangeAtual := 0.01; fCorpoAtual := Abs(Close - Open); - fMediaVolumePA := Media(20, Volume); - if fMediaVolumePA <= 0 then - fMediaVolumePA := 1; + fMediaVolumePA := fMediaVolumeRejeicaoZona; if Close >= Open then begin @@ -288,19 +351,19 @@ begin bEngolfoBaixaZona := bIFRZonaRejeicaoTopoGlobal and bBaixaAtual - and (Close[1] > Open[1]) - and (Open >= Close[1]) - and (Close <= Open[1]); + and (fCloseAnteriorRefZona > fOpenAnteriorRefZona) + and (Open >= fCloseAnteriorRefZona) + and (Close <= fOpenAnteriorRefZona); bEngolfoAltaZona := bIFRZonaRejeicaoFundoGlobal and bAltaAtual - and (Close[1] < Open[1]) - and (Open <= Close[1]) - and (Close >= Open[1]); + and (fCloseAnteriorRefZona < fOpenAnteriorRefZona) + and (Open <= fCloseAnteriorRefZona) + and (Close >= fOpenAnteriorRefZona); bInsideBarZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) - and (High < High[1]) - and (Low > Low[1]); + and (High < fHighAnteriorRefZona) + and (Low > fLowAnteriorRefZona); bRejectionSpikeTopoZona := bIFRZonaRejeicaoTopoGlobal and (fPavioSupAtual > (fRangeAtual * 0.60)) @@ -312,25 +375,68 @@ begin bReversaoBaixaZona := bIFRZonaRejeicaoTopoGlobal and bBaixaAtual - and (High >= High[1]) - and (Close < ((Open[1] + Close[1]) * 0.5)); + and (High >= fHighAnteriorRefZona) + and (Close < ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); bReversaoAltaZona := bIFRZonaRejeicaoFundoGlobal and bAltaAtual - and (Low <= Low[1]) - and (Close > ((Open[1] + Close[1]) * 0.5)); + and (Low <= fLowAnteriorRefZona) + and (Close > ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); bDojiForteZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) and (fCorpoAtual <= (fRangeAtual * 0.10)) and (Volume >= (fMediaVolumePA * 1.20)); - if bEngolfoBaixaZona or bPinBarTopoZona or bRejectionSpikeTopoZona or bReversaoBaixaZona then + // Score de rejeição (qualidade do sinal) + bCondPavioTopo := (fPavioSupAtual > (fCorpoAtual * 2.0)) and (fPavioSupAtual > fPavioInfAtual); + bCondPavioFundo := (fPavioInfAtual > (fCorpoAtual * 2.0)) and (fPavioInfAtual > fPavioSupAtual); + + bCondFechamentoTopo := (Close <= (Low + (fRangeAtual * 0.35))); + bCondFechamentoFundo := (Close >= (High - (fRangeAtual * 0.35))); + + bCondVolumeRejeicao := (Volume >= (fMediaVolumeRejeicaoZona * fFatorVolumeMinRejeicaoDinamico)); + bCondRangeATRRejeicao := (fRangeAtual >= (fATRRejeicaoZona * FatorRangeMinATRRejeicao)); + bCondExtremoTopo := (High >= fTopoExtremoRefZona); + bCondExtremoFundo := (Low <= fFundoExtremoRefZona); + bCondCansacoTopo := (fAceleracao <= 0) or (fForcaBase < 0) or (fForcaBase < fForcaBaseAnteriorZona); + bCondCansacoFundo := (fAceleracao >= 0) or (fForcaBase > 0) or (fForcaBase > fForcaBaseAnteriorZona); + + iScoreRejeicaoTopo := 0; + if bCondPavioTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoPavioRejeicao; + if bCondFechamentoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoFechamentoRejeicao; + if bCondVolumeRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoVolumeRejeicao; + if bCondExtremoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoExtremoRejeicao; + if bCondRangeATRRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoRangeATRRejeicao; + if (not UsarFiltroCansacoRejeicao) or bCondCansacoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoCansacoRejeicao; + + iScoreRejeicaoFundo := 0; + if bCondPavioFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoPavioRejeicao; + if bCondFechamentoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoFechamentoRejeicao; + if bCondVolumeRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoVolumeRejeicao; + if bCondExtremoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoExtremoRejeicao; + if bCondRangeATRRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoRangeATRRejeicao; + if (not UsarFiltroCansacoRejeicao) or bCondCansacoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoCansacoRejeicao; + + bRejeicaoTopoScoreRaw := bIFRZonaRejeicaoTopoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoTopo >= PontuacaoMinRejeicao)); + bRejeicaoFundoScoreRaw := bIFRZonaRejeicaoFundoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoFundo >= PontuacaoMinRejeicao)); + if ConfirmarRejeicaoNoCandleSeguinte then + begin + bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRawPrev and (Close < fLowAnteriorRefZona); + bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRawPrev and (Close > fHighAnteriorRefZona); + end + else + begin + bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRaw; + bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRaw; + end; + + if (bEngolfoBaixaZona or bPinBarTopoZona or bRejectionSpikeTopoZona or bReversaoBaixaZona) and bRejeicaoTopoScoreFinal then PaintBar(cLaranja) - else if bEngolfoAltaZona or bPinBarFundoZona or bRejectionSpikeFundoZona or bReversaoAltaZona then + else if (bEngolfoAltaZona or bPinBarFundoZona or bRejectionSpikeFundoZona or bReversaoAltaZona) and bRejeicaoFundoScoreFinal then PaintBar(cLaranja) - else if bInsideBarZona then + else if bInsideBarZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then PaintBar(cLaranja) - else if bDojiForteZona then + else if bDojiForteZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then PaintBar(cLaranja); end; @@ -368,21 +474,21 @@ begin bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioSupPrimeiro > (fRangePrimeiro * 0.45)) and (Close <= (Low + (fRangePrimeiro * 0.35))) - and (Volume >= (fMediaVolumePrimeiro * 1.10)) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) and bIFRZonaRejeicaoTopo; bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) and (fPavioInfPrimeiro > (fRangePrimeiro * 0.45)) and (Close >= (High - (fRangePrimeiro * 0.35))) - and (Volume >= (fMediaVolumePrimeiro * 1.10)) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) and bIFRZonaRejeicaoFundo; bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); - bGapAltaPrimeiro := (Open > Close[1]); - bGapBaixaPrimeiro := (Open < Close[1]); + bGapAltaPrimeiro := (Open > fCloseAnteriorRefZona); + bGapBaixaPrimeiro := (Open < fCloseAnteriorRefZona); bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); diff --git a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt index 214dc94..dc8b1c4 100644 --- a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt +++ b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt @@ -1,5 +1,7 @@ input AtivarAnalisePrimeiroCandle(true); + AtivarRejeicaoRobustaGeral(true); + ConfirmarRejeicaoNoCandleSeguinte(true); FatorVolumePrimeiroCandle(1.5); CorpoMinPrimeiroCandle(0.60); PeriodoATRRejeicao(14); @@ -7,6 +9,12 @@ input FatorPavioRejeicao(2.2); FracaoFechamentoRejeicao(0.35); FatorVolumeMinRejeicao(1.20); + UsarFatorVolumePorHorario(true); + HoraFimManha(113000); + HoraFimMiolo(163000); + FatorVolumeMinRejeicaoManha(1.30); + FatorVolumeMinRejeicaoMiolo(1.00); + FatorVolumeMinRejeicaoFechamento(1.15); PeriodoExtremoRejeicao(20); var @@ -28,13 +36,18 @@ var bInsideBarValido, bDojiRealValido : boolean; bContextoAlta, bContextoBaixa : boolean; bSinalCompraContextual, bSinalVendaContextual : boolean; + bRejeicaoTopoAtual, bRejeicaoFundoAtual : boolean; + bRejeicaoTopoAtualPrev, bRejeicaoFundoAtualPrev : boolean; + bRejeicaoTopoConfirmada, bRejeicaoFundoConfirmada : boolean; bPrimeiroCandle, bAbsorcaoPrimeiro : boolean; bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro : boolean; + bExtremoTopoAtual, bExtremoFundoAtual : boolean; bExtremoTopoPrimeiro, bExtremoFundoPrimeiro : boolean; bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; - fMediaVolumePrimeiro, fATRRejeicao : float; - fTopoExtremoRef, fFundoExtremoRef, fCloseAnteriorRef : float; + fMediaVolumePrimeiro, fATRRejeicao, fMediaVolumeAtual, fATRRejeicaoAtual : float; + fTopoExtremoRef, fFundoExtremoRef, fCloseAnteriorRef, fHighAnteriorRef, fLowAnteriorRef : float; + fFatorVolumeMinRejeicaoDinamico : float; begin // 1. Definição de Cores @@ -55,6 +68,16 @@ begin fAnt2Min := Low[2]; bPrimeiroCandle := (Date <> Date[1]); + // Fator dinâmico de volume por horário (curva intraday B3) + if not UsarFatorVolumePorHorario then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicao + else if Time <= HoraFimManha then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoManha + else if Time <= HoraFimMiolo then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoMiolo + else + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoFechamento; + // 3. Cálculos do Candle Atual fRange := Range; fCorpo := Abs(Close - Open); @@ -118,6 +141,48 @@ begin fTopoExtremoRef := Highest(High, PeriodoExtremoRejeicao)[1]; fFundoExtremoRef := Lowest(Low, PeriodoExtremoRejeicao)[1]; fCloseAnteriorRef := Close[1]; + fHighAnteriorRef := High[1]; + fLowAnteriorRef := Low[1]; + + // Rejeição robusta para qualquer candle + fMediaVolumeAtual := Media(20, Volume); + if fMediaVolumeAtual <= 0 then + fMediaVolumeAtual := 1; + + fATRRejeicaoAtual := Media(PeriodoATRRejeicao, Range); + if fATRRejeicaoAtual <= 0 then + fATRRejeicaoAtual := 0.01; + + bExtremoTopoAtual := (High >= fTopoExtremoRef); + bExtremoFundoAtual := (Low <= fFundoExtremoRef); + + bRejeicaoTopoAtual := (fPavioSup > (fCorpo * FatorPavioRejeicao)) + and (fPavioSup > fPavioInf) + and (Close <= (Low + (fRange * FracaoFechamentoRejeicao))) + and (fRange >= (fATRRejeicaoAtual * FatorRangeMinATRRejeicao)) + and (Volume >= (fMediaVolumeAtual * fFatorVolumeMinRejeicaoDinamico)) + and bExtremoTopoAtual; + + bRejeicaoFundoAtual := (fPavioInf > (fCorpo * FatorPavioRejeicao)) + and (fPavioInf > fPavioSup) + and (Close >= (High - (fRange * FracaoFechamentoRejeicao))) + and (fRange >= (fATRRejeicaoAtual * FatorRangeMinATRRejeicao)) + and (Volume >= (fMediaVolumeAtual * fFatorVolumeMinRejeicaoDinamico)) + and bExtremoFundoAtual; + + bRejeicaoTopoAtualPrev := bRejeicaoTopoAtual[1]; + bRejeicaoFundoAtualPrev := bRejeicaoFundoAtual[1]; + + if ConfirmarRejeicaoNoCandleSeguinte then + begin + bRejeicaoTopoConfirmada := bRejeicaoTopoAtualPrev and (Close < fLowAnteriorRef); + bRejeicaoFundoConfirmada := bRejeicaoFundoAtualPrev and (Close > fHighAnteriorRef); + end + else + begin + bRejeicaoTopoConfirmada := bRejeicaoTopoAtual; + bRejeicaoFundoConfirmada := bRejeicaoFundoAtual; + end; // 4. Lógica de Coloração (Hierarquia de Prioridade) @@ -126,7 +191,11 @@ begin // --- NÍVEL 3: SINAL CONTEXTUALIZADO (PRIORIDADE MÁXIMA) --- // Sequência: contexto validado -> padrão validado -> cor - if bSinalCompraContextual then + if AtivarRejeicaoRobustaGeral and bRejeicaoTopoConfirmada then + PaintBar(cVermelho) + else if AtivarRejeicaoRobustaGeral and bRejeicaoFundoConfirmada then + PaintBar(cVerde) + else if bSinalCompraContextual then PaintBar(cVerde) else if bSinalVendaContextual then PaintBar(cVermelho) @@ -157,14 +226,14 @@ begin and (fPavioSup > fPavioInf) and (Close <= (Low + (fRange * FracaoFechamentoRejeicao))) and (fRange >= (fATRRejeicao * FatorRangeMinATRRejeicao)) - and (Volume >= (fMediaVolumePrimeiro * FatorVolumeMinRejeicao)) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) and bExtremoTopoPrimeiro; bRejeicaoFundoPrimeiro := (fPavioInf > (fCorpo * FatorPavioRejeicao)) and (fPavioInf > fPavioSup) and (Close >= (High - (fRange * FracaoFechamentoRejeicao))) and (fRange >= (fATRRejeicao * FatorRangeMinATRRejeicao)) - and (Volume >= (fMediaVolumePrimeiro * FatorVolumeMinRejeicao)) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) and bExtremoFundoPrimeiro; bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)) and (fCorpo <= (fRange * 0.35)); bIniciativaAltaPrimeiro := bAlta and (fCorpo >= (fRange * CorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * FatorVolumePrimeiroCandle)); From 5f1b0f0fd435d424e22aef713e8deb651de2b00c Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Tue, 24 Feb 2026 17:43:04 -0300 Subject: [PATCH 09/63] =?UTF-8?q?Ajustes=20de=20corte=20de=20horario=20de?= =?UTF-8?q?=20opera=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fev_PriceActionNewtonIFR.txt | 33 ++++++++++++++++--- .../fev_PriceActionTiposCandlesLeitura.txt | 9 ++++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index db733c9..56fe4d8 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -10,6 +10,8 @@ input iModoVisualizacao(0); // 0: Força, 1: Massa, 2: Aceleração bVisualizarAltaIntensidade(true); // true: Alta Volatilidade/Força, false: Baixa (Consolidação) iPeriodoSuavizacao(3); // 1 = Sem suavização (Cru). 3 a 5 = Ideal para WINFUT (Filtra ruído) + AtivarCorteHorarioVisual(true); + HoraCorteVisual(150000); // Após 15:00, pintar preto // Módulo ATR UsarModuloATR(true); @@ -80,7 +82,7 @@ input var // Cores - cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco, cLaranja : Integer; + cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco, cLaranja, cPreto : Integer; nR, nG, nB, j : Integer; // Variáveis de Price Action Newton @@ -126,6 +128,7 @@ var // Contexto bATRRegimeOK : boolean; bPeriodoManha : boolean; + iHoraAtualHHMM, iHoraFimManhaHHMM, iHoraFimMioloHHMM, iHoraCorteVisualHHMM : Integer; begin // 1. Definição de Cores @@ -137,16 +140,34 @@ begin cCinza := RGB(169, 169, 169); cBranco := RGB(255, 255, 255); cLaranja := RGB(255, 140, 0); + cPreto := RGB(0, 0, 0); // 2. Identificação do Período (Manhã ou Tarde) - bPeriodoManha := (Time < 120000); + // Normaliza horário para HHMM (funciona se Time vier em HHMM ou HHMMSS) + iHoraAtualHHMM := Time; + if iHoraAtualHHMM > 2400 then + iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); + + iHoraFimManhaHHMM := HoraFimManha; + if iHoraFimManhaHHMM > 2400 then + iHoraFimManhaHHMM := Round(iHoraFimManhaHHMM / 100); + + iHoraFimMioloHHMM := HoraFimMiolo; + if iHoraFimMioloHHMM > 2400 then + iHoraFimMioloHHMM := Round(iHoraFimMioloHHMM / 100); + + iHoraCorteVisualHHMM := HoraCorteVisual; + if iHoraCorteVisualHHMM > 2400 then + iHoraCorteVisualHHMM := Round(iHoraCorteVisualHHMM / 100); + + bPeriodoManha := (iHoraAtualHHMM < 1200); // 2.1 Fator dinâmico de volume por horário (curva intraday B3) if not UsarFatorVolumePorHorario then fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicao - else if Time <= HoraFimManha then + else if iHoraAtualHHMM <= iHoraFimManhaHHMM then fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoManha - else if Time <= HoraFimMiolo then + else if iHoraAtualHHMM <= iHoraFimMioloHHMM then fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoMiolo else fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoFechamento; @@ -514,4 +535,8 @@ begin PaintBar(cCinza); end; + // 8. Corte visual por horário (prioridade máxima) + if AtivarCorteHorarioVisual and (iHoraAtualHHMM >= iHoraCorteVisualHHMM) then + PaintBar(cPreto); + end; \ No newline at end of file diff --git a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt index dc8b1c4..5e74581 100644 --- a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt +++ b/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt @@ -1,5 +1,7 @@ input AtivarAnalisePrimeiroCandle(true); + AtivarCorteHorarioVisual(true); + HoraCorteVisual(150000); // Após 15:00, pintar preto AtivarRejeicaoRobustaGeral(true); ConfirmarRejeicaoNoCandleSeguinte(true); FatorVolumePrimeiroCandle(1.5); @@ -19,7 +21,7 @@ input var // Cores - cVerde, cVermelho, cLaranja, cBranco, cCinza : Integer; + cVerde, cVermelho, cLaranja, cBranco, cCinza, cPreto : Integer; // Variáveis de Anatomia fCorpo, fPavioSup, fPavioInf, fRange : float; @@ -56,6 +58,7 @@ begin cLaranja := RGB(255, 140, 0); // Inside Bar cBranco := RGB(255, 255, 255); // Doji cCinza := RGB(105, 105, 105); // Neutro + cPreto := RGB(0, 0, 0); // Bloqueio após horário de corte // 2. Cálculos do Contexto (Candle Anterior) bAntAlta := Close[1] > Open[1]; @@ -267,4 +270,8 @@ begin PaintBar(cCinza); end; + // Corte visual por horário (prioridade máxima) + if AtivarCorteHorarioVisual and (Time > HoraCorteVisual) then + PaintBar(cPreto); + end; \ No newline at end of file From b3e4fee6b430a77718cada6ba38090d754ff54ab Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:23:05 -0300 Subject: [PATCH 10/63] =?UTF-8?q?Ajsutes=20para=20identifica=C3=A7ao=20de?= =?UTF-8?q?=20For=C3=A7a=20de=20ATR=20entre=2030=20e=2070?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fev_PriceActionNewtonIFR.txt | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index 56fe4d8..082af31 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -29,12 +29,14 @@ input UsarVetoExtremosIFR(true); IFRSobrecompra(75); // Evita compra esticada IFRSobrevenda(25); // Evita venda esticada + IFRFaixaNeutraMin(30); // Entre 30 e 70 prioriza sinais de Força/Massa/Aceleração + IFRFaixaNeutraMax(70); // Zonas de atenção para sinais de rejeição (novo) - IFRZonaRejeicaoTopoMin(70); + IFRZonaRejeicaoTopoMin(60); IFRZonaRejeicaoTopoMax(80); IFRZonaRejeicaoFundoMin(20); - IFRZonaRejeicaoFundoMax(30); + IFRZonaRejeicaoFundoMax(40); // Rejeição robusta (score + confirmação) UsarScoreRejeicao(true); @@ -93,7 +95,7 @@ var // Variáveis IFR fIFR : float; - bIFRCompraOK, bIFRVendaOK : boolean; + bIFRCompraOK, bIFRVendaOK, bIFRFaixaNeutraGlobal : boolean; bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; // Price Action nas zonas IFR @@ -215,13 +217,24 @@ begin // 5. Módulo IFR (veto de direção) fIFR := IFR(PeriodoIFR); - bIFRCompraOK := (not UsarFiltroIFR) - or ((fIFR >= IFRMinCompra) - and ((not UsarVetoExtremosIFR) or (fIFR <= IFRSobrecompra))); + bIFRFaixaNeutraGlobal := (fIFR >= IFRFaixaNeutraMin) and (fIFR <= IFRFaixaNeutraMax); - bIFRVendaOK := (not UsarFiltroIFR) - or ((fIFR <= IFRMaxVenda) - and ((not UsarVetoExtremosIFR) or (fIFR >= IFRSobrevenda))); + if bIFRFaixaNeutraGlobal then + begin + bIFRCompraOK := True; + bIFRVendaOK := True; + bATRRegimeOK := True; + end + else + begin + bIFRCompraOK := (not UsarFiltroIFR) + or ((fIFR >= IFRMinCompra) + and ((not UsarVetoExtremosIFR) or (fIFR <= IFRSobrecompra))); + + bIFRVendaOK := (not UsarFiltroIFR) + or ((fIFR <= IFRMaxVenda) + and ((not UsarVetoExtremosIFR) or (fIFR >= IFRSobrevenda))); + end; bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); From 71caf2d6a387de12fcde0667b3be8ffa571fc201 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Thu, 26 Feb 2026 13:13:02 -0300 Subject: [PATCH 11/63] =?UTF-8?q?ajuste=20de=20for=C3=A7as=20em=20zona=20d?= =?UTF-8?q?e=20IFR=20para=20oper=C3=A7a=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- profit_estudos_cores/fev_PriceActionNewtonIFR.txt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index 082af31..d084f63 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -29,8 +29,8 @@ input UsarVetoExtremosIFR(true); IFRSobrecompra(75); // Evita compra esticada IFRSobrevenda(25); // Evita venda esticada - IFRFaixaNeutraMin(30); // Entre 30 e 70 prioriza sinais de Força/Massa/Aceleração - IFRFaixaNeutraMax(70); + IFRFaixaNeutraMin(35); // Faixa neutra do IFR para bloquear sinais de Força + IFRFaixaNeutraMax(65); // Zonas de atenção para sinais de rejeição (novo) IFRZonaRejeicaoTopoMin(60); @@ -277,7 +277,9 @@ begin fIntensidade := Abs(fForcaBase) / fMaxForca; if fIntensidade > 1.0 then fIntensidade := 1.0; - if (fForcaBase > 0) and bIFRCompraOK then + if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) + else if (fForcaBase > 0) and bIFRCompraOK then begin nR := 255 - Round(255 * fIntensidade); nG := 255; @@ -303,6 +305,8 @@ begin begin if not bATRRegimeOK then PaintBar(cCinza) + else if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) else if bVisualizarAltaIntensidade then begin if ((bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaManha)) or @@ -329,6 +333,8 @@ begin begin if not bATRRegimeOK then PaintBar(cCinza) + else if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) else if bVisualizarAltaIntensidade then begin if ((bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaManha)) or From 67bf9757eccbb5977c035b0bc6a1c2e4f014cf4d Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Thu, 26 Feb 2026 14:25:40 -0300 Subject: [PATCH 12/63] ajustes --- profit_estudos_cores/fev_PriceActionNewtonIFR.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index d084f63..35947c8 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -30,7 +30,7 @@ input IFRSobrecompra(75); // Evita compra esticada IFRSobrevenda(25); // Evita venda esticada IFRFaixaNeutraMin(35); // Faixa neutra do IFR para bloquear sinais de Força - IFRFaixaNeutraMax(65); + IFRFaixaNeutraMax(60); // Zonas de atenção para sinais de rejeição (novo) IFRZonaRejeicaoTopoMin(60); @@ -279,14 +279,14 @@ begin if bIFRFaixaNeutraGlobal then PaintBar(cCinza) - else if (fForcaBase > 0) and bIFRCompraOK then + else if (fForcaBase > 0) then begin nR := 255 - Round(255 * fIntensidade); nG := 255; nB := 255 - Round(255 * fIntensidade); PaintBar(RGB(nR, nG, nB)); end - else if (fForcaBase < 0) and bIFRVendaOK then + else if (fForcaBase < 0) then begin nR := 255; nG := 255 - Round(255 * fIntensidade); From cbb158161754b0be9f40081136ed73fa881a1f10 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 10:59:38 -0300 Subject: [PATCH 13/63] Adiciona alarmes IFR em 10, 50 e 90 --- .../fev_PriceActionNewtonIFR.txt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index 35947c8..ad20ae8 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -32,6 +32,12 @@ input IFRFaixaNeutraMin(35); // Faixa neutra do IFR para bloquear sinais de Força IFRFaixaNeutraMax(60); + // Alarmes IFR (pontos de atuação e saída) + AtivarAlarmeIFR(true); + IFRAlvoCompra(10); + IFRAlvoSaida(50); + IFRAlvoVenda(90); + // Zonas de atenção para sinais de rejeição (novo) IFRZonaRejeicaoTopoMin(60); IFRZonaRejeicaoTopoMax(80); @@ -97,6 +103,7 @@ var fIFR : float; bIFRCompraOK, bIFRVendaOK, bIFRFaixaNeutraGlobal : boolean; bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; + bAlertaIFRCompra, bAlertaIFRSaida, bAlertaIFRVenda : boolean; // Price Action nas zonas IFR fRangeAtual, fCorpoAtual, fPavioSupAtual, fPavioInfAtual, fMediaVolumePA : float; @@ -239,6 +246,26 @@ begin bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + // 5.1 Alarmes IFR (disparo por cruzamento dos níveis) + bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) + or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); + + bAlertaIFRSaida := ((fIFR[1] > IFRAlvoSaida) and (fIFR <= IFRAlvoSaida)) + or ((fIFR[1] < IFRAlvoSaida) and (fIFR >= IFRAlvoSaida)); + + bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) + or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); + + if AtivarAlarmeIFR then + begin + if bAlertaIFRCompra then + Alert(cCiano) + else if bAlertaIFRSaida then + Alert(cLaranja) + else if bAlertaIFRVenda then + Alert(cFucsia); + end; + // Referências robustas fora de escopos condicionais fATRRejeicaoZona := Media(PeriodoATRRejeicao, Range); if fATRRejeicaoZona <= 0 then From 2f69303196dcde31ff423080c733f76be57a51c3 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 12:02:06 -0300 Subject: [PATCH 14/63] Cria indicador mar_IFR_reversaoComVolume com alertas IFR --- .../mar_IFR_reversaoComVolume.txt | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 profit_estudos_cores/mar_IFR_reversaoComVolume.txt diff --git a/profit_estudos_cores/mar_IFR_reversaoComVolume.txt b/profit_estudos_cores/mar_IFR_reversaoComVolume.txt new file mode 100644 index 0000000..3ce48dc --- /dev/null +++ b/profit_estudos_cores/mar_IFR_reversaoComVolume.txt @@ -0,0 +1,264 @@ +{ + Indicador: mar_IFR_reversaoComVolume + Autor: Wesley (Gemini Code Assist) + Descrição: Identifica velas de reversão (Martelo/Estrela) validadas por + Volume acima da média (Lei de Esforço vs Resultado) + e adiciona módulo IFR com alertas em 10, 20, 50, 80 e 90. +} + +input + UsarPresetRegime(true); + RegimePreset(1); // 1=Manhã Forte, 2=Almoço, 3=Pós-14h, 0=Manual + AtivarAnalisePrimeiroCandle(true); + FatorVolume(1.5); // No WIN 2min, 1.5x tende a capturar melhor absorção relevante + PeriodoMedia(20); + MultiplicadorPavio(1.5); // Pavio principal em relação ao corpo + MaxPavioOpostoCorpo(1.2); // Limite do pavio oposto em relação ao corpo + UsarFiltroProximidadeMME20(false); + DistanciaMaxMME20Perc(0.35); // Distância máxima (%) do fechamento para a MME20 + + // Módulo IFR + Alarmes por nível + AtivarModuloIFR(true); + PeriodoIFR(14); + AtivarAlarmeIFR(true); + IFRAlvoCompra(10); + IFRAlvoCompra2(20); + IFRAlvoSaida(50); + IFRAlvoVenda2(80); + IFRAlvoVenda(90); + +var + vMediaVol, fMME20, fDistanciaMME20Perc : float; + fFatorVolumeEfetivo, fMultiplicadorPavioEfetivo, fMaxPavioOpostoEfetivo, fDistMaxMME20Efetiva : float; + fIFR : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bRejeicaoForteAlta, bRejeicaoForteBaixa : boolean; + bDojiPrimeiro, bAbsorcaoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + bAlertaIFRCompra, bAlertaIFRCompra2, bAlertaIFRSaida, bAlertaIFRVenda2, bAlertaIFRVenda : boolean; + fMaxAnterior, fMinAnterior : float; + TamCorpo, TamPavioSup, TamPavioInf, Range, fFechamentoPosicao : float; + CorAbsorcaoFundo, CorAbsorcaoTopo, CorNeutra, CorRejeicaoContexto, CorIndefinicao : integer; + bMesmoDia, bProximoMME20, bUsarFiltroProxEfetivo : boolean; + iRegimeEfetivo : integer; + +begin + // --- 1. CONFIGURAÇÃO --- + CorAbsorcaoFundo := RGB(0, 255, 0); // Verde (Sentido de Alta) + CorAbsorcaoTopo := RGB(255, 0, 0); // Vermelho (Sentido de Baixa) + CorNeutra := RGB(105, 105, 105); // Cinza Escuro + CorRejeicaoContexto := RGB(255, 140, 0); // Laranja (Rejeição forte por contexto) + CorIndefinicao := RGB(255, 255, 255); // Branco + + // --- 1.1 PRESET DE REGIME (PARTE PRINCIPAL) --- + iRegimeEfetivo := RegimePreset; + if (iRegimeEfetivo < 0) then + iRegimeEfetivo := 0; + if (iRegimeEfetivo > 3) then + iRegimeEfetivo := 3; + + // Fallback manual + fFatorVolumeEfetivo := FatorVolume; + fMultiplicadorPavioEfetivo := MultiplicadorPavio; + fMaxPavioOpostoEfetivo := MaxPavioOpostoCorpo; + bUsarFiltroProxEfetivo := UsarFiltroProximidadeMME20; + fDistMaxMME20Efetiva := DistanciaMaxMME20Perc; + + if UsarPresetRegime then + begin + // 1 = Manhã forte (09:00-11:00) + if (iRegimeEfetivo = 1) then + begin + fFatorVolumeEfetivo := 1.7; + fMultiplicadorPavioEfetivo := 1.6; + fMaxPavioOpostoEfetivo := 1.0; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.30; + end + // 2 = Almoço (12:00-13:00) + else if (iRegimeEfetivo = 2) then + begin + fFatorVolumeEfetivo := 1.9; + fMultiplicadorPavioEfetivo := 1.8; + fMaxPavioOpostoEfetivo := 0.9; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.25; + end + // 3 = Pós-14h (14:00-17:00) + else if (iRegimeEfetivo = 3) then + begin + fFatorVolumeEfetivo := 1.5; + fMultiplicadorPavioEfetivo := 1.5; + fMaxPavioOpostoEfetivo := 1.2; + bUsarFiltroProxEfetivo := True; + fDistMaxMME20Efetiva := 0.35; + end; + end; + + // --- PINTURA PADRÃO --- + PaintBar(CorNeutra); // Pinta tudo de cinza antes de verificar os sinais + + // --- 2. ANÁLISE DE VOLUME (O ESFORÇO) --- + vMediaVol := Media(PeriodoMedia, Volume); + fMME20 := MediaExp(20, Close); + // Verifica se o volume atual é relevante (ex: > 1.5x a média) + bVolumeAlto := Volume >= (vMediaVol * fFatorVolumeEfetivo); + + // --- 2.1 FILTRO OPCIONAL: PROXIMIDADE DA MME20 --- + if (fMME20 > 0) then + fDistanciaMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 + else + fDistanciaMME20Perc := 999; + + bProximoMME20 := (fDistanciaMME20Perc <= fDistMaxMME20Efetiva); + + // --- 2.2 MÓDULO IFR + ALERTAS --- + if AtivarModuloIFR then + fIFR := IFR(PeriodoIFR) + else + fIFR := 50; + + bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) + or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); + + bAlertaIFRCompra2 := ((fIFR[1] > IFRAlvoCompra2) and (fIFR <= IFRAlvoCompra2)) + or ((fIFR[1] < IFRAlvoCompra2) and (fIFR >= IFRAlvoCompra2)); + + bAlertaIFRSaida := ((fIFR[1] > IFRAlvoSaida) and (fIFR <= IFRAlvoSaida)) + or ((fIFR[1] < IFRAlvoSaida) and (fIFR >= IFRAlvoSaida)); + + bAlertaIFRVenda2 := ((fIFR[1] > IFRAlvoVenda2) and (fIFR <= IFRAlvoVenda2)) + or ((fIFR[1] < IFRAlvoVenda2) and (fIFR >= IFRAlvoVenda2)); + + bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) + or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); + + if AtivarModuloIFR and AtivarAlarmeIFR then + begin + if bAlertaIFRCompra or bAlertaIFRCompra2 then + Alert(CorAbsorcaoFundo) + else if bAlertaIFRSaida then + Alert(CorRejeicaoContexto) + else if bAlertaIFRVenda2 or bAlertaIFRVenda then + Alert(CorAbsorcaoTopo); + end; + + // --- 3. ANATOMIA DO CANDLE (O RESULTADO) --- + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + if (Range > 0) then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + fMaxAnterior := High[1]; + fMinAnterior := Low[1]; + bMesmoDia := (Date = Date[1]); + + // Análise dedicada do primeiro candle do dia + if (Range > 0) and (not bMesmoDia) and AtivarAnalisePrimeiroCandle then + begin + bDojiPrimeiro := (TamCorpo <= (Range * 0.10)); + bAbsorcaoPrimeiro := bVolumeAlto and (TamCorpo <= (Range * 0.35)); + + bIniciativaAltaPrimeiro := (Close > Open) + and bVolumeAlto + and (TamCorpo >= (Range * 0.60)) + and (fFechamentoPosicao >= 0.75); + + bIniciativaBaixaPrimeiro := (Close < Open) + and bVolumeAlto + and (TamCorpo >= (Range * 0.60)) + and (fFechamentoPosicao <= 0.25); + + bGapAltaPrimeiro := (Open > Close[1]); + bGapBaixaPrimeiro := (Open < Close[1]); + + bArmadilhaPrimeiro := (bGapAltaPrimeiro and (Close < Open) and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))) + or (bGapBaixaPrimeiro and (Close > Open) and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))); + + if bArmadilhaPrimeiro then + begin + PaintBar(CorRejeicaoContexto); + PlotText("1C_TRAP", CorRejeicaoContexto, 8, 0, Close); + end + else if bIniciativaAltaPrimeiro then + begin + PaintBar(CorAbsorcaoFundo); + PlotText("1C_UP", CorAbsorcaoFundo, 8, 0, Low * 0.999); + end + else if bIniciativaBaixaPrimeiro then + begin + PaintBar(CorAbsorcaoTopo); + PlotText("1C_DN", CorAbsorcaoTopo, 8, 0, High * 1.001); + end + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(CorIndefinicao) + else if (Close > Open) then + PaintBar(CorAbsorcaoFundo) + else if (Close < Open) then + PaintBar(CorAbsorcaoTopo) + else + PaintBar(CorIndefinicao); + end; + + // Proteção contra divisão por zero + // Ignora o primeiro candle do dia para evitar sinal falso na abertura + if (Range > 0) and bMesmoDia then + begin + // Definição de Martelo (Força Compradora) + // Pavio inferior dominante e pavio superior controlado + bMartelo := (TamPavioInf >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioSup <= (TamCorpo * fMaxPavioOpostoEfetivo)); + + // Definição de Estrela (Força Vendedora) + // Pavio superior dominante e pavio inferior controlado + bEstrela := (TamPavioSup >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioInf <= (TamCorpo * fMaxPavioOpostoEfetivo)); + + // Rejeição forte por contexto (pinta laranja mesmo sem volume) + // Alta: varre mínima anterior e fecha recuperando com pavio inferior dominante + bRejeicaoForteAlta := (Low < fMinAnterior) + and (Close > Open) + and (Close >= (Low + (Range * 0.55))) + and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); + + // Baixa: varre máxima anterior e fecha rejeitando com pavio superior dominante + bRejeicaoForteBaixa := (High > fMaxAnterior) + and (Close < Open) + and (Close <= (High - (Range * 0.55))) + and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); + + // --- 4. SINALIZAÇÃO --- + + // 4.1 Contexto de rejeição forte (prioridade, independente de volume) + if (bRejeicaoForteAlta or bRejeicaoForteBaixa) then + begin + PaintBar(CorRejeicaoContexto); + PlotText("RJ", CorRejeicaoContexto, 8, 0, Close); + end + else + begin + + // Só sinaliza se tiver Volume Alto + Padrão de Reversão + // e, opcionalmente, preço perto da MME20 para reduzir ruído de lateral + if bVolumeAlto and ((not bUsarFiltroProxEfetivo) or bProximoMME20) then + begin + if bMartelo then + begin + PaintBar(CorAbsorcaoFundo); // Pinta o candle atual + PaintBar(CorAbsorcaoFundo); // Reforça coloração no candle de sinal + PlotText("ABS", CorAbsorcaoFundo, 8, 0, Low * 0.999); + Alert(CorAbsorcaoFundo); + end; + + if bEstrela then + begin + PaintBar(CorAbsorcaoTopo); // Pinta o candle atual + PaintBar(CorAbsorcaoTopo); // Reforça coloração no candle de sinal + PlotText("ABS", CorAbsorcaoTopo, 8, 0, High * 1.001); + Alert(CorAbsorcaoTopo); + end; + end; + end; + end; +end; \ No newline at end of file From 39804be65a1262e922be416d850ebba1a18b161b Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 13:20:52 -0300 Subject: [PATCH 15/63] Adiciona pasta automacao_backtests na raiz --- automacao_backtests/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 automacao_backtests/.gitkeep diff --git a/automacao_backtests/.gitkeep b/automacao_backtests/.gitkeep new file mode 100644 index 0000000..e69de29 From 9d2e9d4355f91b9b2606a537c3b33ebc3d65a531 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 13:27:03 -0300 Subject: [PATCH 16/63] Remove alarme de IFR 50 dos indicadores --- profit_estudos_cores/fev_PriceActionNewtonIFR.txt | 8 +------- profit_estudos_cores/mar_IFR_reversaoComVolume.txt | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt index ad20ae8..53ba2fa 100644 --- a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev_PriceActionNewtonIFR.txt @@ -35,7 +35,6 @@ input // Alarmes IFR (pontos de atuação e saída) AtivarAlarmeIFR(true); IFRAlvoCompra(10); - IFRAlvoSaida(50); IFRAlvoVenda(90); // Zonas de atenção para sinais de rejeição (novo) @@ -103,7 +102,7 @@ var fIFR : float; bIFRCompraOK, bIFRVendaOK, bIFRFaixaNeutraGlobal : boolean; bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; - bAlertaIFRCompra, bAlertaIFRSaida, bAlertaIFRVenda : boolean; + bAlertaIFRCompra, bAlertaIFRVenda : boolean; // Price Action nas zonas IFR fRangeAtual, fCorpoAtual, fPavioSupAtual, fPavioInfAtual, fMediaVolumePA : float; @@ -250,9 +249,6 @@ begin bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); - bAlertaIFRSaida := ((fIFR[1] > IFRAlvoSaida) and (fIFR <= IFRAlvoSaida)) - or ((fIFR[1] < IFRAlvoSaida) and (fIFR >= IFRAlvoSaida)); - bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); @@ -260,8 +256,6 @@ begin begin if bAlertaIFRCompra then Alert(cCiano) - else if bAlertaIFRSaida then - Alert(cLaranja) else if bAlertaIFRVenda then Alert(cFucsia); end; diff --git a/profit_estudos_cores/mar_IFR_reversaoComVolume.txt b/profit_estudos_cores/mar_IFR_reversaoComVolume.txt index 3ce48dc..b9da2d4 100644 --- a/profit_estudos_cores/mar_IFR_reversaoComVolume.txt +++ b/profit_estudos_cores/mar_IFR_reversaoComVolume.txt @@ -23,7 +23,6 @@ input AtivarAlarmeIFR(true); IFRAlvoCompra(10); IFRAlvoCompra2(20); - IFRAlvoSaida(50); IFRAlvoVenda2(80); IFRAlvoVenda(90); @@ -35,7 +34,7 @@ var bMartelo, bEstrela, bRejeicaoForteAlta, bRejeicaoForteBaixa : boolean; bDojiPrimeiro, bAbsorcaoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; - bAlertaIFRCompra, bAlertaIFRCompra2, bAlertaIFRSaida, bAlertaIFRVenda2, bAlertaIFRVenda : boolean; + bAlertaIFRCompra, bAlertaIFRCompra2, bAlertaIFRVenda2, bAlertaIFRVenda : boolean; fMaxAnterior, fMinAnterior : float; TamCorpo, TamPavioSup, TamPavioInf, Range, fFechamentoPosicao : float; CorAbsorcaoFundo, CorAbsorcaoTopo, CorNeutra, CorRejeicaoContexto, CorIndefinicao : integer; @@ -124,9 +123,6 @@ begin bAlertaIFRCompra2 := ((fIFR[1] > IFRAlvoCompra2) and (fIFR <= IFRAlvoCompra2)) or ((fIFR[1] < IFRAlvoCompra2) and (fIFR >= IFRAlvoCompra2)); - bAlertaIFRSaida := ((fIFR[1] > IFRAlvoSaida) and (fIFR <= IFRAlvoSaida)) - or ((fIFR[1] < IFRAlvoSaida) and (fIFR >= IFRAlvoSaida)); - bAlertaIFRVenda2 := ((fIFR[1] > IFRAlvoVenda2) and (fIFR <= IFRAlvoVenda2)) or ((fIFR[1] < IFRAlvoVenda2) and (fIFR >= IFRAlvoVenda2)); @@ -137,8 +133,6 @@ begin begin if bAlertaIFRCompra or bAlertaIFRCompra2 then Alert(CorAbsorcaoFundo) - else if bAlertaIFRSaida then - Alert(CorRejeicaoContexto) else if bAlertaIFRVenda2 or bAlertaIFRVenda then Alert(CorAbsorcaoTopo); end; From e907bd6c24ff26597eb64aee97cebec6bb77e006 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva <55301153+wesleyzilva@users.noreply.github.com> Date: Mon, 2 Mar 2026 18:33:21 -0300 Subject: [PATCH 17/63] Analise de 50 possiveis robos via IFR e seus resultados em diferentes timeframes. --- .vscode/settings.json | 3 + ...r_v12_multitimeframe_alinhadoREPROVADO.txt | 53 + ...ifr_v13_divergencia_estruturaREPROVADO.txt | 55 ++ ...fr_v15_saida_estagio_trailingREPROVADO.txt | 66 ++ .../robo_ifr_v16_slope_cooldownREPROVADO.txt | 62 ++ .../robo_ifr_v17_failure_swingREPROVADO.txt | 49 + ...obo_ifr_v19_ifr_vwap_contextoREPROVADO.txt | 53 + .../robo_ifr_v21_ifr_atr_faixaREPROVADO.txt | 54 ++ .../robo_ifr_v22_tendencia_forteREPROVADO.txt | 59 ++ .../robo_ifr_v26_janela_pivoREPROVADO.txt | 57 ++ ..._ifr_v29_ifr_direcao_aberturaREPROVADO.txt | 58 ++ .../robo_ifr_v2_retorno_zonaREPROVADO.txt | 54 ++ ...30_ifr_circuit_breaker_diarioREPROVADO.txt | 70 ++ .../robo_ifr_v32_retorno_pivo3REPROVADO.txt | 50 + .../robo_ifr_v34_no_trade_zoneREPROVADO.txt | 47 + .../robo_ifr_v35_cooldown_diarioREPROVADO.txt | 63 ++ ...bo_ifr_v37_adx_faixa_operavelREPROVADO.txt | 53 + ...bo_ifr_v38_vwap_distancia_maxREPROVADO.txt | 53 + .../robo_ifr_v39_orb_ifrREPROVADO.txt | 66 ++ ...obo_ifr_v3_tendencia_pullbackREPROVADO.txt | 56 ++ ..._ifr_v40_stop_estrutura_tempoREPROVADO.txt | 48 + .../robo_ifr_v41_percentil_20_80REPROVADO.txt | 52 + ...ifr_v42_parametros_por_sessaoREPROVADO.txt | 67 ++ .../robo_ifr_v43_vwap_direcionalREPROVADO.txt | 52 + ..._ifr_v44_vwap_distancia_duplaREPROVADO.txt | 54 ++ ...v46_direcao_abertura_refinadaREPROVADO.txt | 58 ++ ...ifr_v48_circuit_breaker_tempoREPROVADO.txt | 64 ++ ...v49_limite_trades_progressivoREPROVADO.txt | 60 ++ ...robo_ifr_v50_meta_perda_proxyREPROVADO.txt | 73 ++ ...o_ifr_v8_resgate_breakout_ifrREPROVADO.txt | 63 ++ ...o_ifr_v9_conservador_contextoREPROVADO.txt | 62 ++ .../analise_aprovados_timeframes_IFR.txt | 110 +++ .../IFR_RSI/catalogo_50_opcoes_IFR.txt | 74 ++ .../analise_robo_ifr_v1_reversao_extremos.txt | 54 ++ ...ise_robo_ifr_v4_divergencia_confirmada.txt | 50 + .../ranking_melhores_ate_momento.txt | 65 ++ .../robo_ifr_v10_balanceado_regime02min.csv | 253 +++++ .../robo_ifr_v10_balanceado_regime05min.csv | 154 +++ .../robo_ifr_v10_balanceado_regime15min.csv | 73 ++ .../robo_ifr_v10_balanceado_regime30min.csv | 42 + .../robo_ifr_v10_balanceado_regime60min.csv | 25 + .../robo_ifr_v11_agressivo_reentrada02min.csv | 109 +++ .../robo_ifr_v11_agressivo_reentrada05min.csv | 69 ++ .../robo_ifr_v11_agressivo_reentrada15min.csv | 40 + .../robo_ifr_v11_agressivo_reentrada30min.csv | 18 + .../robo_ifr_v11_agressivo_reentrada60min.csv | 16 + .../robo_ifr_v18_bandas_dinamicas02min.csv | 912 ++++++++++++++++++ .../robo_ifr_v18_bandas_dinamicas05min.csv | 506 ++++++++++ .../robo_ifr_v18_bandas_dinamicas15min.csv | 214 ++++ .../robo_ifr_v18_bandas_dinamicas30min.csv | 123 +++ .../robo_ifr_v18_bandas_dinamicas60min.csv | 79 ++ .../robo_ifr_v1_reversao_extremos02min64%.csv | 82 ++ .../robo_ifr_v1_reversao_extremos05min47%.csv | 54 ++ .../robo_ifr_v1_reversao_extremos15min68%.csv | 35 + .../robo_ifr_v1_reversao_extremos30min81%.csv | 22 + .../robo_ifr_v1_reversao_extremos60min71%.csv | 16 + ...robo_ifr_v20_ifr_assimetrico_lado02min.csv | 309 ++++++ ...robo_ifr_v20_ifr_assimetrico_lado05min.csv | 171 ++++ ...robo_ifr_v20_ifr_assimetrico_lado15min.csv | 82 ++ ...robo_ifr_v20_ifr_assimetrico_lado30min.csv | 46 + ...robo_ifr_v20_ifr_assimetrico_lado60min.csv | 31 + .../robo_ifr_v23_dupla_confirmacao02min.csv | 43 + .../robo_ifr_v23_dupla_confirmacao05min.csv | 29 + .../robo_ifr_v23_dupla_confirmacao15min.csv | 22 + .../robo_ifr_v23_dupla_confirmacao30min.csv | 10 + .../robo_ifr_v23_dupla_confirmacao60min.csv | 10 + ...robo_ifr_v24_controle_risco_diario1min.csv | 64 ++ .../robo_ifr_v24_controle_risco_diario60m.csv | 10 + .../robo_ifr_v25_ifr_mme200_contexto01min.csv | 96 ++ .../robo_ifr_v25_ifr_mme200_contexto02min.csv | 100 ++ .../robo_ifr_v25_ifr_mme200_contexto05min.csv | 43 + .../robo_ifr_v25_ifr_mme200_contexto15min.csv | 22 + .../robo_ifr_v25_ifr_mme200_contexto30min.csv | 18 + .../robo_ifr_v25_ifr_mme200_contexto60min.csv | 12 + ...robo_ifr_v27_um_trade_por_direcao02min.csv | 98 ++ ...robo_ifr_v27_um_trade_por_direcao05min.csv | 122 +++ ...robo_ifr_v27_um_trade_por_direcao15min.csv | 76 ++ ...robo_ifr_v27_um_trade_por_direcao30min.csv | 50 + ...robo_ifr_v27_um_trade_por_direcao60min.csv | 30 + .../robo_ifr_v28_ifr_adx_filtro02min.csv | 252 +++++ .../robo_ifr_v28_ifr_adx_filtro05min.csv | 145 +++ .../robo_ifr_v28_ifr_adx_filtro15min.csv | 64 ++ .../robo_ifr_v28_ifr_adx_filtro30min.csv | 41 + .../robo_ifr_v28_ifr_adx_filtro60min.csv | 25 + .../robo_ifr_v33_pullback_mme20002min.csv | 510 ++++++++++ .../robo_ifr_v33_pullback_mme20005min.csv | 293 ++++++ .../robo_ifr_v33_pullback_mme20015min.csv | 131 +++ .../robo_ifr_v33_pullback_mme20030min.csv | 67 ++ .../robo_ifr_v33_pullback_mme20060min.csv | 49 + ..._ifr_v36_divergencia_regular_pivo02min.csv | 299 ++++++ ..._ifr_v36_divergencia_regular_pivo05min.csv | 176 ++++ ..._ifr_v36_divergencia_regular_pivo15min.csv | 73 ++ ..._ifr_v36_divergencia_regular_pivo30min.csv | 44 + ..._ifr_v36_divergencia_regular_pivo60min.csv | 35 + .../robo_ifr_v45_volume_por_horario02min.csv | 135 +++ .../robo_ifr_v45_volume_por_horario05min.csv | 78 ++ .../robo_ifr_v45_volume_por_horario15min.csv | 46 + .../robo_ifr_v45_volume_por_horario30min.csv | 26 + .../robo_ifr_v45_volume_por_horario60min.csv | 18 + ...obo_ifr_v47_orb_confirmacao_dupla02min.csv | 18 + ...obo_ifr_v47_orb_confirmacao_dupla05min.csv | 8 + ...obo_ifr_v47_orb_confirmacao_dupla15min.csv | 8 + ...obo_ifr_v47_orb_confirmacao_dupla60min.csv | 9 + ..._ifr_v4_divergencia_confirmada02min64%.csv | 190 ++++ ...obo_ifr_v4_divergencia_confirmada05min.csv | 103 ++ ...obo_ifr_v4_divergencia_confirmada15min.csv | 37 + ...obo_ifr_v4_divergencia_confirmada30min.csv | 25 + ...obo_ifr_v4_divergencia_confirmada60min.csv | 16 + .../robo_ifr_v5_regime_volatilidade02min.csv | 124 +++ .../robo_ifr_v5_regime_volatilidade05min.csv | 68 ++ .../robo_ifr_v5_regime_volatilidade15min.csv | 31 + .../robo_ifr_v5_regime_volatilidade30min.csv | 28 + .../robo_ifr_v5_regime_volatilidade60min.csv | 17 + .../robo_ifr_v6_saida_hibrida02min.csv | 159 +++ .../robo_ifr_v6_saida_hibrida05min.csv | 113 +++ .../robo_ifr_v6_saida_hibrida15min.csv | 59 ++ .../robo_ifr_v6_saida_hibrida30min.csv | 33 + .../robo_ifr_v6_saida_hibrida60min.csv | 24 + .../robo_ifr_v7_resgate_contexto02min.csv | 16 + .../robo_ifr_v7_resgate_contexto05min.csv | 18 + .../robo_ifr_v7_resgate_contexto15min.csv | 13 + .../robo_ifr_v7_resgate_contexto30min.csv | 13 + .../robo_ifr_v7_resgate_contexto60min.csv | 10 + ...robo_ifr_v10_balanceado_regime60min63%.txt | 71 ++ ...bo_ifr_v11_agressivo_reentrada30min58%.txt | 52 + .../robo_ifr_v18_bandas_dinamicas60min60%.txt | 52 + .../robo_ifr_v1_reversao_extremos60min71%.txt | 73 ++ ...o_ifr_v20_ifr_assimetrico_lado30min62%.txt | 47 + ...robo_ifr_v23_dupla_confirmacao15min87%.txt | 54 ++ ...o_ifr_v24_controle_risco_diario1min67%.txt | 70 ++ ...obo_ifr_v25_ifr_mme200_contexto2min69%.txt | 53 + ...o_ifr_v27_um_trade_por_direcao60min54%.txt | 59 ++ .../robo_ifr_v28_ifr_adx_filtro30min57%.txt | 52 + ...r_v31_reversao_volume_relativo60min72%.txt | 48 + .../robo_ifr_v33_pullback_mme20060min67%.txt | 47 + ...r_v36_divergencia_regular_pivo60min62%.txt | 52 + ...obo_ifr_v45_volume_por_horario60min75%.txt | 60 ++ ..._ifr_v47_orb_confirmacao_dupla60min66%.txt | 66 ++ ..._ifr_v4_divergencia_confirmada60min90%.txt | 58 ++ ...obo_ifr_v5_regime_volatilidade60min90%.txt | 78 ++ .../robo_ifr_v6_saida_hibrida60min77%.txt | 95 ++ .../robo_ifr_v7_resgate_contexto30min84%.txt | 152 +++ automacao_backtests/IFR_RSI/robos_IFR.txt | 278 ++++++ .../NeologicaProfitAPIbacktest.txt | 1 + estudo_teorias/0326_diarioDeBordo.md | 18 + .../mar_IFR_reversaoComVolume.txt | 258 ----- 146 files changed, 11606 insertions(+), 258 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt create mode 100644 automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt create mode 100644 automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv create mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt create mode 100644 automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt create mode 100644 automacao_backtests/IFR_RSI/robos_IFR.txt create mode 100644 automacao_backtests/NeologicaProfitAPIbacktest.txt create mode 100644 estudo_teorias/0326_diarioDeBordo.md delete mode 100644 profit_estudos_cores/mar_IFR_reversaoComVolume.txt diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..609a404 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.defaultInterpreterPath": "C:/Users/zilva/AppData/Local/Programs/Python/Python312/python.exe" +} diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt new file mode 100644 index 0000000..871b060 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt @@ -0,0 +1,53 @@ +{ + Estrategia: robo_ifr_v12_multitimeframe_alinhado + Autor: Wesley + Descricao: Entrada no timeframe atual com filtro de contexto em timeframe maior. + Compra somente com IFR maior acima de 50 e venda com IFR maior abaixo de 50. +} + +input + PeriodoIFR(9); + PeriodoIFRContexto(21); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fIFRContexto : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fIFRContexto := IFR(PeriodoIFRContexto); + + bContextoCompra := (fIFRContexto > 50); + bContextoVenda := (fIFRContexto < 50); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt new file mode 100644 index 0000000..b21f056 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt @@ -0,0 +1,55 @@ +{ + Estrategia: robo_ifr_v13_divergencia_estrutura + Autor: Wesley + Descricao: Busca divergencia simples de IFR com confirmação por quebra de estrutura curta. + Compra em fundo mais baixo no preco com IFR mais alto; venda no oposto. +} + +input + PeriodoIFR(9); + LookbackEstrutura(5); + DeltaIFRMinimo(2.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fIFRAnterior, fMinLookback, fMaxLookback : float; + bDivergenciaCompra, bDivergenciaVenda, bQuebraAlta, bQuebraBaixa : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fIFRAnterior := IFR(PeriodoIFR)[1]; + fMinLookback := Lowest(Low, LookbackEstrutura); + fMaxLookback := Highest(High, LookbackEstrutura); + + bDivergenciaCompra := (Low < Low[1]) and (fIFR > (fIFRAnterior + DeltaIFRMinimo)); + bDivergenciaVenda := (High > High[1]) and (fIFR < (fIFRAnterior - DeltaIFRMinimo)); + + bQuebraAlta := (Close > High[1]) and (Low <= fMinLookback); + bQuebraBaixa := (Close < Low[1]) and (High >= fMaxLookback); + + if (not IsBought) and (not IsSold) then + begin + if bDivergenciaCompra and bQuebraAlta then + begin + BuyAtMarket; + end + else if bDivergenciaVenda and bQuebraBaixa then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt new file mode 100644 index 0000000..25ab6ef --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt @@ -0,0 +1,66 @@ +{ + Estrategia: robo_ifr_v15_saida_estagio_trailing + Autor: Wesley + Descricao: Entrada por retorno de IFR e saída em dois estágios simulados. + Primeiro estágio em IFR 50; depois trailing simples por mínima/máxima anterior. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + UsarSaidaTempo(true); + MaxBarrasPosicao(18); + +var + iBarrasEmPosicao, iEstagioSaida : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + iEstagioSaida := 0; + + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought then + begin + if (iEstagioSaida = 0) and (fIFR >= 50) then + iEstagioSaida := 1; + + if (iEstagioSaida = 1) and (Close < Low[1]) then + ClosePosition; + + if UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; + + if IsSold then + begin + if (iEstagioSaida = 0) and (fIFR <= 50) then + iEstagioSaida := 1; + + if (iEstagioSaida = 1) and (Close > High[1]) then + ClosePosition; + + if UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt new file mode 100644 index 0000000..293d5e4 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt @@ -0,0 +1,62 @@ +{ + Estrategia: robo_ifr_v16_slope_cooldown + Autor: Wesley + Descricao: IFR com filtro de inclinacao (slope) e cooldown pos-stop/saida. + Objetivo: reduzir entradas em ruido e evitar overtrade sequencial. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(36); + IFRExtremoVenda(70); + IFREtornoVenda(64); + SlopeMinimo(1.5); + CooldownBarras(3); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao, iCooldown : integer; + fIFR, fSlope : float; + bPodeEntrar : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fSlope := fIFR - fIFR[1]; + + if iCooldown > 0 then + iCooldown := iCooldown - 1; + + bPodeEntrar := (iCooldown = 0); + + if (not IsBought) and (not IsSold) and bPodeEntrar then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and (fSlope >= SlopeMinimo) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and (fSlope <= -SlopeMinimo) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + begin + ClosePosition; + iCooldown := CooldownBarras; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + begin + ClosePosition; + iCooldown := CooldownBarras; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt new file mode 100644 index 0000000..08e6e1a --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt @@ -0,0 +1,49 @@ +{ + Estrategia: robo_ifr_v17_failure_swing + Autor: Wesley + Descricao: Entrada por padrao Failure Swing no IFR com confirmacao de preco. + Objetivo: capturar reversao com pivoteamento do proprio IFR. +} + +input + PeriodoIFR(9); + NivelSobrevendido(30); + NivelSobrecomprado(70); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR : float; + bFailureSwingCompra, bFailureSwingVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + bFailureSwingCompra := (fIFR[3] < NivelSobrevendido) and (fIFR[2] > fIFR[3]) and (fIFR[1] > fIFR[2]) and (Close > High[1]); + bFailureSwingVenda := (fIFR[3] > NivelSobrecomprado) and (fIFR[2] < fIFR[3]) and (fIFR[1] < fIFR[2]) and (Close < Low[1]); + + if (not IsBought) and (not IsSold) then + begin + if bFailureSwingCompra then + begin + BuyAtMarket; + end + else if bFailureSwingVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt new file mode 100644 index 0000000..d1b3981 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt @@ -0,0 +1,53 @@ +{ + Estrategia: robo_ifr_v19_ifr_vwap_contexto + Autor: Wesley + Descricao: IFR com filtro de contexto por VWAP aproximada (preco ponderado por volume). + Compra apenas acima da VWAP e venda apenas abaixo da VWAP. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoVWAP(20); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fVWAPAprox : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fVWAPAprox := Media(PeriodoVWAP, Close * Volume) / Media(PeriodoVWAP, Volume); + + bContextoCompra := (Close > fVWAPAprox); + bContextoVenda := (Close < fVWAPAprox); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt new file mode 100644 index 0000000..fd2d011 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt @@ -0,0 +1,54 @@ +{ + Estrategia: robo_ifr_v21_ifr_atr_faixa + Autor: Wesley + Descricao: IFR com filtro de faixa de volatilidade baseado em range medio (proxy de ATR). + Opera apenas quando a volatilidade esta em faixa operavel. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoVolatilidade(14); + FaixaMinRange(35.0); + FaixaMaxRange(220.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fRangeMedio : float; + bVolatilidadeOperavel : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fRangeMedio := Media(PeriodoVolatilidade, High - Low); + + bVolatilidadeOperavel := (fRangeMedio >= FaixaMinRange) and (fRangeMedio <= FaixaMaxRange); + + if (not IsBought) and (not IsSold) and bVolatilidadeOperavel then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt new file mode 100644 index 0000000..8e2d5bb --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt @@ -0,0 +1,59 @@ +{ + Estrategia: robo_ifr_v22_tendencia_forte + Autor: Wesley + Descricao: IFR operando apenas com tendencia forte de medias. + Busca reduzir sinais em lateralizacao e priorizar continuidade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(36); + IFRExtremoVenda(70); + IFREtornoVenda(64); + PeriodoMMECurta(9); + PeriodoMMELonga(21); + SlopeMMELongaMin(2.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fMME9, fMME9Ant, fMME21, fMME21Ant, fSlopeMME21 : float; + bTendenciaForteCompra, bTendenciaForteVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME9 := MediaExp(PeriodoMMECurta, Close); + fMME9Ant := MediaExp(PeriodoMMECurta, Close)[1]; + fMME21 := MediaExp(PeriodoMMELonga, Close); + fMME21Ant := MediaExp(PeriodoMMELonga, Close)[1]; + fSlopeMME21 := fMME21 - fMME21Ant; + + bTendenciaForteCompra := (Close > fMME9) and (fMME9 > fMME21) and (fMME9 > fMME9Ant) and (fSlopeMME21 >= SlopeMMELongaMin); + bTendenciaForteVenda := (Close < fMME9) and (fMME9 < fMME21) and (fMME9 < fMME9Ant) and (fSlopeMME21 <= -SlopeMMELongaMin); + + if (not IsBought) and (not IsSold) then + begin + if bTendenciaForteCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bTendenciaForteVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt new file mode 100644 index 0000000..403b4bf --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt @@ -0,0 +1,57 @@ +{ + Estrategia: robo_ifr_v26_janela_pivo + Autor: Wesley + Descricao: IFR com janela horaria seletiva e confirmacao por rompimento de pivo curto. + Objetivo: reduzir ruido fora da janela de melhor desempenho. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraInicio(915); + HoraFim(1130); + LookbackPivo(3); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fPivoAlta, fPivoBaixa : float; + bJanelaAtiva, bConfirmacaoCompra, bConfirmacaoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fPivoAlta := Highest(High, LookbackPivo)[1]; + fPivoBaixa := Lowest(Low, LookbackPivo)[1]; + + bJanelaAtiva := (Time >= HoraInicio) and (Time <= HoraFim); + bConfirmacaoCompra := (Close > fPivoAlta); + bConfirmacaoVenda := (Close < fPivoBaixa); + + if (not IsBought) and (not IsSold) and bJanelaAtiva then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfirmacaoCompra then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfirmacaoVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt new file mode 100644 index 0000000..ab2b078 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt @@ -0,0 +1,58 @@ +{ + Estrategia: robo_ifr_v29_ifr_direcao_abertura + Autor: Wesley + Descricao: IFR com filtro de direcao pela abertura do dia. + Opera apenas a favor da direcao definida no inicio da sessao. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraReferencia(930); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR, fPrecoAberturaDia : float; + bDirecaoCompra, bDirecaoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + fPrecoAberturaDia := Open; + + if Time = HoraReferencia then + fPrecoAberturaDia := Close; + + bDirecaoCompra := (Close > fPrecoAberturaDia); + bDirecaoVenda := (Close < fPrecoAberturaDia); + + if (not IsBought) and (not IsSold) then + begin + if bDirecaoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bDirecaoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt new file mode 100644 index 0000000..af0e0f0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt @@ -0,0 +1,54 @@ +{ + Estrategia: robo_ifr_v2_retorno_zona + Autor: Wesley + Descricao: Entrada quando IFR retorna da zona extrema (reentrada de timing). + Exige candle de rejeicao + volume e cruzamento de volta do IFR. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFRExtremoVenda(70); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(true); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto, bMartelo, bEstrela : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + if (not IsBought) and (not IsSold) then + begin + if bVolumeAlto and bMartelo and (fIFR[1] < IFRExtremoCompra) and (fIFR >= IFRExtremoCompra) then + BuyAtMarket + else if bVolumeAlto and bEstrela and (fIFR[1] > IFRExtremoVenda) and (fIFR <= IFRExtremoVenda) then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 50) then + ClosePosition; + + if IsSold and (fIFR <= 50) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt new file mode 100644 index 0000000..6ff70d5 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt @@ -0,0 +1,70 @@ +{ + Estrategia: robo_ifr_v30_ifr_circuit_breaker_diario + Autor: Wesley + Descricao: IFR com circuit breaker diario por limite de operacoes negativas proxy. + Bloqueia novas entradas apos limite de saidas por tempo no dia. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MaxSaidasTempoDia(2); + MaxTradesDia(8); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + +var + iBarrasEmPosicao, iTradesDia, iSaidasTempoDia : integer; + fIFR : float; + bBloqueadoDia, bSaiuPorTempo : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iTradesDia := 0; + iSaidasTempoDia := 0; + end; + + bBloqueadoDia := (iSaidasTempoDia >= MaxSaidasTempoDia) or (iTradesDia >= MaxTradesDia); + + if (not IsBought) and (not IsSold) and (not bBloqueadoDia) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesDia := iTradesDia + 1; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesDia := iTradesDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt new file mode 100644 index 0000000..4237ef2 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt @@ -0,0 +1,50 @@ +{ + Estrategia: robo_ifr_v32_retorno_pivo3 + Autor: Wesley + Descricao: Retorno de IFR com confirmacao por rompimento de pivo de 3 barras. + Busca reduzir falso retorno sem continuidade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + LookbackPivo(3); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR, fPivoAlta, fPivoBaixa : float; + bConfCompra, bConfVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fPivoAlta := Highest(High, LookbackPivo)[1]; + fPivoBaixa := Lowest(Low, LookbackPivo)[1]; + + bConfCompra := (Close > fPivoAlta); + bConfVenda := (Close < fPivoBaixa); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfCompra then + BuyAtMarket + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfVenda then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt new file mode 100644 index 0000000..d7d079a --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt @@ -0,0 +1,47 @@ +{ + Estrategia: robo_ifr_v34_no_trade_zone + Autor: Wesley + Descricao: Reversao IFR com bloqueio de zona neutra 45-55. + Evita entradas em regiao de indefinicao do indicador. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(36); + IFRExtremoVenda(70); + IFREtornoVenda(64); + ZonaNeutraMin(45); + ZonaNeutraMax(55); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR : float; + bForaZonaNeutra : boolean; + +begin + fIFR := IFR(PeriodoIFR); + bForaZonaNeutra := (fIFR < ZonaNeutraMin) or (fIFR > ZonaNeutraMax); + + if (not IsBought) and (not IsSold) and bForaZonaNeutra then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + BuyAtMarket + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt new file mode 100644 index 0000000..7939f56 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt @@ -0,0 +1,63 @@ +{ + Estrategia: robo_ifr_v35_cooldown_diario + Autor: Wesley + Descricao: Reversao IFR com cooldown diario apos saida por tempo. + Reduz sequencia de entradas em dias de baixa qualidade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + CooldownBarras(5); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + +var + iBarrasEmPosicao, iCooldown : integer; + fIFR : float; + bSaiuPorTempo, bPodeEntrar : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + iCooldown := 0; + + if iCooldown > 0 then + iCooldown := iCooldown - 1; + + bPodeEntrar := (iCooldown = 0); + + if (not IsBought) and (not IsSold) and bPodeEntrar then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + BuyAtMarket + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iCooldown := CooldownBarras; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iCooldown := CooldownBarras; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt new file mode 100644 index 0000000..f4420ad --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt @@ -0,0 +1,53 @@ +{ + Estrategia: robo_ifr_v37_adx_faixa_operavel + Autor: Wesley + Descricao: IFR operando apenas quando ADX estiver dentro de faixa operavel. + Evita tendencia fraca e tambem extremo de ruido. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoADX(14); + ADXMin(18); + ADXMax(35); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fADX : float; + bRegimeValido : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fADX := ADX(PeriodoADX, PeriodoADX); + bRegimeValido := (fADX >= ADXMin) and (fADX <= ADXMax); + + if (not IsBought) and (not IsSold) and bRegimeValido then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt new file mode 100644 index 0000000..4565d82 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt @@ -0,0 +1,53 @@ +{ + Estrategia: robo_ifr_v38_vwap_distancia_max + Autor: Wesley + Descricao: IFR com filtro por distancia maxima da VWAP aproximada. + Evita entrar com preco muito esticado do equilibrio. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoVWAP(20); + DistanciaMaxPontos(180.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR, fVWAPAprox, fDistancia : float; + bDistanciaValida : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fVWAPAprox := Media(PeriodoVWAP, Close * Volume) / Media(PeriodoVWAP, Volume); + fDistancia := Abs(Close - fVWAPAprox); + bDistanciaValida := (fDistancia <= DistanciaMaxPontos); + + if (not IsBought) and (not IsSold) and bDistanciaValida then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt new file mode 100644 index 0000000..9c699c8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt @@ -0,0 +1,66 @@ +{ + Estrategia: robo_ifr_v39_orb_ifr + Autor: Wesley + Descricao: IFR com confirmacao por rompimento de Opening Range (ORB). + Opera retorno de IFR apenas com quebra da faixa inicial do dia. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraFimORB(930); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fORBHigh, fORBLow : float; + bORBCompra, bORBVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + fORBHigh := High; + fORBLow := Low; + end; + + if Time <= HoraFimORB then + begin + if High > fORBHigh then + fORBHigh := High; + if Low < fORBLow then + fORBLow := Low; + end; + + bORBCompra := (Close > fORBHigh); + bORBVenda := (Close < fORBLow); + + if (not IsBought) and (not IsSold) and (Time > HoraFimORB) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bORBCompra then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bORBVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt new file mode 100644 index 0000000..5110b38 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt @@ -0,0 +1,56 @@ +{ + Estrategia: robo_ifr_v3_tendencia_pullback + Autor: Wesley + Descricao: Opera pullback a favor da tendencia com IFR e candle de retomada. + Compra em pullback de alta e venda em pullback de baixa. +} + +input + PeriodoIFR(9); + NivelTendencia(50); + ZonaPullbackCompra(40); + ZonaPullbackVenda(60); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(false); + MultiplicadorPavio(1.4); + MaxPavioOpostoCorpo(1.3); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto : boolean; + bRetomadaCompra, bRetomadaVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bRetomadaCompra := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bRetomadaVenda := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR > NivelTendencia) and (fIFR <= ZonaPullbackCompra) and bRetomadaCompra and bVolumeAlto then + BuyAtMarket + else if (fIFR < NivelTendencia) and (fIFR >= ZonaPullbackVenda) and bRetomadaVenda and bVolumeAlto then + SellShortAtMarket; + end; + + if IsBought and ((fIFR >= 60) or bRetomadaVenda) then + ClosePosition; + + if IsSold and ((fIFR <= 40) or bRetomadaCompra) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt new file mode 100644 index 0000000..aebc537 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt @@ -0,0 +1,48 @@ +{ + Estrategia: robo_ifr_v40_stop_estrutura_tempo + Autor: Wesley + Descricao: IFR com saida por estrutura curta e limite de tempo. + Fecha compra se perder minima anterior e venda se perder maxima anterior. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + UsarSaidaIFR50(true); + UsarSaidaEstrutura(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + +var + iBarrasEmPosicao : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaEstrutura and (Close < Low[1])) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaEstrutura and (Close > High[1])) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt new file mode 100644 index 0000000..d38b585 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v41_percentil_20_80 + Autor: Wesley + Descricao: IFR com bandas dinamicas por percentis 20/80 no lookback. + Retorno para dentro da banda aciona entrada. +} + +input + PeriodoIFR(9); + LookbackBandas(50); + PercentilCompra(0.20); + PercentilVenda(0.80); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fMinIFR, fMaxIFR, fRangeIFR, fNivelCompra, fNivelVenda : float; + +begin + fIFR := IFR(PeriodoIFR); + fMinIFR := Lowest(IFR(PeriodoIFR), LookbackBandas); + fMaxIFR := Highest(IFR(PeriodoIFR), LookbackBandas); + fRangeIFR := fMaxIFR - fMinIFR; + + fNivelCompra := fMinIFR + (fRangeIFR * PercentilCompra); + fNivelVenda := fMinIFR + (fRangeIFR * PercentilVenda); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= fNivelCompra) and (fIFR > fNivelCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= fNivelVenda) and (fIFR < fNivelVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt new file mode 100644 index 0000000..0a084c5 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt @@ -0,0 +1,67 @@ +{ + Estrategia: robo_ifr_v42_parametros_por_sessao + Autor: Wesley + Descricao: IFR com parametros diferentes por bloco horario da sessao. + Abertura mais agressiva e meio do periodo mais conservador. +} + +input + PeriodoIFR(9); + HoraAberturaFim(1030); + ExtremoCompraAbertura(32); + RetornoCompraAbertura(38); + ExtremoVendaAbertura(68); + RetornoVendaAbertura(62); + ExtremoCompraMeio(28); + RetornoCompraMeio(34); + ExtremoVendaMeio(72); + RetornoVendaMeio(66); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, eCompra, rCompra, eVenda, rVenda : float; + +begin + fIFR := IFR(PeriodoIFR); + + if Time <= HoraAberturaFim then + begin + eCompra := ExtremoCompraAbertura; + rCompra := RetornoCompraAbertura; + eVenda := ExtremoVendaAbertura; + rVenda := RetornoVendaAbertura; + end + else + begin + eCompra := ExtremoCompraMeio; + rCompra := RetornoCompraMeio; + eVenda := ExtremoVendaMeio; + rVenda := RetornoVendaMeio; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= eCompra) and (fIFR >= rCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= eVenda) and (fIFR <= rVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt new file mode 100644 index 0000000..09cc942 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v43_vwap_direcional + Autor: Wesley + Descricao: IFR com direcao obrigatoria pela VWAP aproximada. + Compra acima da VWAP e venda abaixo. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoVWAP(30); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fVWAPAprox : float; + bCompraContexto, bVendaContexto : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fVWAPAprox := Media(PeriodoVWAP, Close * Volume) / Media(PeriodoVWAP, Volume); + bCompraContexto := (Close > fVWAPAprox); + bVendaContexto := (Close < fVWAPAprox); + + if (not IsBought) and (not IsSold) then + begin + if bCompraContexto and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bVendaContexto and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt new file mode 100644 index 0000000..ad510d4 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt @@ -0,0 +1,54 @@ +{ + Estrategia: robo_ifr_v44_vwap_distancia_dupla + Autor: Wesley + Descricao: IFR com filtro de distancia minima e maxima da VWAP. + Evita operar muito colado ou muito esticado da VWAP. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoVWAP(20); + DistanciaMin(30.0); + DistanciaMax(180.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR, fVWAPAprox, fDistancia : float; + bDistanciaValida : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fVWAPAprox := Media(PeriodoVWAP, Close * Volume) / Media(PeriodoVWAP, Volume); + fDistancia := Abs(Close - fVWAPAprox); + bDistanciaValida := (fDistancia >= DistanciaMin) and (fDistancia <= DistanciaMax); + + if (not IsBought) and (not IsSold) and bDistanciaValida then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt new file mode 100644 index 0000000..07b0c2a --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt @@ -0,0 +1,58 @@ +{ + Estrategia: robo_ifr_v46_direcao_abertura_refinada + Autor: Wesley + Descricao: IFR operando com viés da abertura e bloqueio contra-direcao. + Define direcao com referencia da primeira meia hora. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraReferencia(930); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR, fPrecoRef : float; + bViésCompra, bViésVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + fPrecoRef := Open; + + if Time = HoraReferencia then + fPrecoRef := Close; + + bViésCompra := (Close > fPrecoRef); + bViésVenda := (Close < fPrecoRef); + + if (not IsBought) and (not IsSold) then + begin + if bViésCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bViésVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt new file mode 100644 index 0000000..f4a7114 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt @@ -0,0 +1,64 @@ +{ + Estrategia: robo_ifr_v48_circuit_breaker_tempo + Autor: Wesley + Descricao: IFR com circuit breaker por excesso de saidas por tempo no dia. + Se exceder limite, bloqueia novas entradas ate o dia seguinte. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MaxSaidasTempoDia(2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + +var + iBarrasEmPosicao, iSaidasTempoDia : integer; + fIFR : float; + bBloqueadoDia, bSaiuPorTempo : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + iSaidasTempoDia := 0; + + bBloqueadoDia := (iSaidasTempoDia >= MaxSaidasTempoDia); + + if (not IsBought) and (not IsSold) and (not bBloqueadoDia) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt new file mode 100644 index 0000000..8f98bd3 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt @@ -0,0 +1,60 @@ +{ + Estrategia: robo_ifr_v49_limite_trades_progressivo + Autor: Wesley + Descricao: IFR com limite progressivo de trades diarios. + Ao atingir metade do limite, exige filtro extra por volume. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MaxTradesDia(8); + PeriodoMediaVolume(20); + FatorVolumeExtra(1.2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao, iTradesDia : integer; + fIFR, vMediaVol : float; + bBloqueadoDia, bFiltroExtra : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + + if Date <> Date[1] then + iTradesDia := 0; + + bBloqueadoDia := (iTradesDia >= MaxTradesDia); + bFiltroExtra := (iTradesDia < (MaxTradesDia / 2)) or (Volume >= (vMediaVol * FatorVolumeExtra)); + + if (not IsBought) and (not IsSold) and (not bBloqueadoDia) and bFiltroExtra then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesDia := iTradesDia + 1; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesDia := iTradesDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt new file mode 100644 index 0000000..56bea45 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt @@ -0,0 +1,73 @@ +{ + Estrategia: robo_ifr_v50_meta_perda_proxy + Autor: Wesley + Descricao: IFR com pausa diaria por meta/perda proxy operacional. + Meta: numero de saidas em IFR50; Perda: numero de saidas por tempo. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MetaSaidasIFR50Dia(3); + LimiteSaidasTempoDia(2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + +var + iBarrasEmPosicao, iSaidasIFR50Dia, iSaidasTempoDia : integer; + fIFR : float; + bPausaDia, bSaiuIFR50, bSaiuTempo : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iSaidasIFR50Dia := 0; + iSaidasTempoDia := 0; + end; + + bPausaDia := (iSaidasIFR50Dia >= MetaSaidasIFR50Dia) or (iSaidasTempoDia >= LimiteSaidasTempoDia); + + if (not IsBought) and (not IsSold) and (not bPausaDia) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuIFR50 := UsarSaidaIFR50 and ((IsBought and (fIFR >= 50)) or (IsSold and (fIFR <= 50))); + bSaiuTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and (bSaiuIFR50 or bSaiuTempo) then + begin + ClosePosition; + if bSaiuIFR50 then + iSaidasIFR50Dia := iSaidasIFR50Dia + 1; + if bSaiuTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; + + if IsSold and (bSaiuIFR50 or bSaiuTempo) then + begin + ClosePosition; + if bSaiuIFR50 then + iSaidasIFR50Dia := iSaidasIFR50Dia + 1; + if bSaiuTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt new file mode 100644 index 0000000..4eec448 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt @@ -0,0 +1,63 @@ +{ + Estrategia: robo_ifr_v8_resgate_breakout_ifr + Autor: Wesley + Descricao: Versao de resgate por breakout apos alivio do extremo IFR. + Entrada na retomada direcional com IFR cruzando nivel de retorno. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + FatorVolume(1.0); + UsarFiltroVolume(false); + PeriodoMMECurta(9); + UsarFiltroMME(true); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, vMediaVol, fMME9, fMME9Anterior : float; + bVolumeAlto, bPermiteCompra, bPermiteVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME9 := MediaExp(PeriodoMMECurta, Close); + fMME9Anterior := MediaExp(PeriodoMMECurta, Close)[1]; + vMediaVol := Media(PeriodoMediaVolume, Volume); + + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + bPermiteCompra := (not UsarFiltroMME) or ((Close > fMME9) and (fMME9 > fMME9Anterior)); + bPermiteVenda := (not UsarFiltroMME) or ((Close < fMME9) and (fMME9 < fMME9Anterior)); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + // Compra: IFR sai da zona extrema e cruza de volta para cima + if bPermiteCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + // Venda: IFR sai da zona extrema e cruza de volta para baixo + else if bPermiteVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt new file mode 100644 index 0000000..22313f4 --- /dev/null +++ b/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt @@ -0,0 +1,62 @@ +{ + Estrategia: robo_ifr_v9_conservador_contexto + Autor: Wesley + Descricao: Abordagem conservadora com filtro de tendencia e volume. + Entrada em retorno do IFR com contexto direcional. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMMERapida(9); + PeriodoMMELenta(21); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarFiltroVolume(true); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fMME9, fMME21, fMME21Anterior, vMediaVol : float; + bVolumeAlto, bTendenciaCompra, bTendenciaVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME9 := MediaExp(PeriodoMMERapida, Close); + fMME21 := MediaExp(PeriodoMMELenta, Close); + fMME21Anterior := MediaExp(PeriodoMMELenta, Close)[1]; + vMediaVol := Media(PeriodoMediaVolume, Volume); + + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + bTendenciaCompra := (Close > fMME9) and (fMME9 > fMME21) and (fMME21 > fMME21Anterior); + bTendenciaVenda := (Close < fMME9) and (fMME9 < fMME21) and (fMME21 < fMME21Anterior); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + if bTendenciaCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bTendenciaVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt b/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt new file mode 100644 index 0000000..b553777 --- /dev/null +++ b/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt @@ -0,0 +1,110 @@ +ANÁLISE DOS APROVADOS IFR POR TIMEFRAME (META >= 60% VENCEDORAS) + +Objetivo +- Priorizar robôs aprovados por timeframe em 60, 30, 15, 5 e 2 minutos. +- Manter foco em estratégias com percentual de operações vencedoras >= 60%. + +Regras de filtro (triagem rápida) +1) Aprovado para carteira: % vencedoras >= 60. +2) Em observação: % vencedoras entre 58 e 59 (retestar com ajuste leve). +3) Rebaixar para revisão: % vencedoras < 58. +4) Exigir amostra mínima de trades antes da decisão final. + +---------------------------------------- +TIMEFRAME 60 MIN +---------------------------------------- +Aprovados >= 60% +- robo_ifr_v1_reversao_extremos60min71%.txt +- robo_ifr_v4_divergencia_confirmada60min90%.txt +- robo_ifr_v5_regime_volatilidade60min90%.txt +- robo_ifr_v6_saida_hibrida60min77%.txt +- robo_ifr_v10_balanceado_regime60min63%.txt +- robo_ifr_v18_bandas_dinamicas60min60%.txt +- robo_ifr_v31_reversao_volume_relativo60min72%.txt +- robo_ifr_v33_pullback_mme20060min67%.txt +- robo_ifr_v36_divergencia_regular_pivo60min62%.txt +- robo_ifr_v45_volume_por_horario60min75%.txt +- robo_ifr_v47_orb_confirmacao_dupla60min66%.txt + +Abaixo da meta +- robo_ifr_v27_um_trade_por_direcao60min54%.txt + +Resumo 60m +- 11 de 12 acima ou igual a 60%. + +---------------------------------------- +TIMEFRAME 30 MIN +---------------------------------------- +Aprovados >= 60% +- robo_ifr_v7_resgate_contexto30min84%.txt +- robo_ifr_v20_ifr_assimetrico_lado30min62%.txt + +Abaixo da meta +- robo_ifr_v11_agressivo_reentrada30min58%.txt +- robo_ifr_v28_ifr_adx_filtro30min57%.txt + +Resumo 30m +- 2 de 4 acima ou igual a 60%. + +---------------------------------------- +TIMEFRAME 15 MIN +---------------------------------------- +Aprovados >= 60% +- robo_ifr_v23_dupla_confirmacao15min87%.txt + +Resumo 15m +- 1 de 1 acima ou igual a 60%. + +---------------------------------------- +TIMEFRAME 5 MIN +---------------------------------------- +- Sem aprovados catalogados no nome de arquivo até o momento. + +Ação +- Rodar os melhores de 30m/15m também em 5m para preencher a lacuna. + +---------------------------------------- +TIMEFRAME 2 MIN +---------------------------------------- +Aprovados >= 60% +- robo_ifr_v25_ifr_mme200_contexto2min69%.txt + +Resumo 2m +- 1 de 1 acima ou igual a 60%. + +---------------------------------------- +OBSERVAÇÃO EXTRA (fora do escopo pedido) +---------------------------------------- +- 1m: robo_ifr_v24_controle_risco_diario1min67%.txt + +---------------------------------------- +TOP LISTA INICIAL PARA ANÁLISE PROFUNDA +---------------------------------------- +Carteira principal (meta >=60 atendida e boa leitura) +- 60m: v4, v5, v45, v31 +- 30m: v7, v20 +- 15m: v23 +- 2m: v25 + +Em observação (próximos da meta) +- v11 (58%), v28 (57%) + +Rebaixar/revisar +- v27 (54%) + +---------------------------------------- +CHECKLIST DE ERROS QUE DERRUBAM % VENCEDORAS +---------------------------------------- +1) Overtrade em lateralização (falta filtro de regime). +2) Entrada sem confirmação de candle/pivô. +3) Saída por tempo curta demais em tendência limpa. +4) Timeframe incompatível com a lógica (ex.: setup de tendência em 1m sem filtro). +5) Falta de filtro de volume em horários fracos. +6) Janelas de horário sem liquidez misturadas com horários fortes. +7) Assimetria compra/venda ignorada. +8) Excesso de filtros (poucos trades, resultado instável). + +Próximo passo sugerido +- Rodar nova bateria apenas nos aprovados >=60 em 60/30/15/2. +- Replicar top 4 em 5m para fechar todos os timeframes alvo. +- Aplicar decisão final por: % vencedoras, fator de lucro, drawdown e número de trades. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt b/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt new file mode 100644 index 0000000..42d4949 --- /dev/null +++ b/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt @@ -0,0 +1,74 @@ +CATÁLOGO - 50 OPÇÕES DE ESTRATÉGIAS IFR (RSI) + +Objetivo +- Listar 50 variações de estratégia com IFR para priorização antes da fase de otimização. +- Estrutura: ideia -> gatilho base -> filtro opcional -> saída padrão (IFR50/tempo/estrutura). + +1) REVERSÃO CLÁSSICA (1-10) +1. Extremo 30/70 + retorno 35/65. +2. Extremo 25/75 + retorno 32/68. +3. Extremo 20/80 + retorno 30/70. +4. Extremo 15/85 + retorno 25/75. +5. Reversão 30/70 com confirmação de candle (close > high[1] / < low[1]). +6. Reversão 30/70 com filtro de volume acima da média. +7. Reversão 30/70 com cooldown de 2 barras após saída. +8. Reversão 30/70 com no-trade-zone 45-55. +9. Reversão assimétrica (compra 32->38, venda 68->62). +10. Reversão com 1 reentrada por direção. + +2) RETORNO DE ZONA E CRUZAMENTOS (11-20) +11. Compra quando IFR cruza 40 para cima após sobrevendido. +12. Venda quando IFR cruza 60 para baixo após sobrecomprado. +13. Compra em sequência: IFR < 30 e depois 2 closes crescentes. +14. Venda em sequência: IFR > 70 e depois 2 closes decrescentes. +15. Retorno 35/65 com confirmação por rompimento de pivô 3 barras. +16. Retorno 35/65 com confirmação por pivô 5 barras. +17. Cruzamento de IFR50 com filtro de tendência por MME9. +18. Cruzamento de IFR50 com filtro de tendência por MME21. +19. Cruzamento IFR45/55 em regime lateral detectado. +20. Cruzamento IFR45/55 em regime de tendência detectado. + +3) TENDÊNCIA E PULLBACK (21-30) +21. Pullback IFR para 45 em tendência de alta (MME9>MME21). +22. Pullback IFR para 55 em tendência de baixa (MME9 20. +38. IFR ativo apenas com ADX entre 18 e 35. +39. IFR ativo apenas com range médio em faixa mínima/máxima. +40. IFR com bandas dinâmicas por percentil (25/75 do lookback). +41. IFR com bandas dinâmicas por percentil (20/80 do lookback). +42. IFR por sessão: parâmetros diferentes abertura/meio/fim. + +6) CONTEXTO DE PREÇO E VOLUME (43-47) +43. IFR + VWAP (só compra acima, só venda abaixo). +44. IFR + VWAP com filtro de distância máxima (evitar esticamento). +45. IFR + volume relativo por horário (comparar com mesma faixa horária). +46. IFR + direção da abertura do dia (viés inicial). +47. IFR + rompimento de ORB (opening range breakout) com gatilho IFR. + +7) GESTÃO E CONTROLE DE RISCO (48-50) +48. IFR com circuit breaker diário (limite de saídas por tempo). +49. IFR com limite diário de trades e bloqueio progressivo. +50. IFR com meta diária/limite de perda diária e pausa automática. + +Próxima etapa recomendada +- Escolher 10 opções do catálogo (misturando 4 reversão, 3 tendência, 2 regime, 1 gestão). +- Implementar em lotes de 3-5 robôs por rodada para evitar dispersão. +- Só depois partir para otimização dos vencedores. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt new file mode 100644 index 0000000..2c7786a --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt @@ -0,0 +1,54 @@ +ANÁLISE - ROBO IFR V1 REVERSAO EXTREMOS + +Período analisado +- 02/03/2025 a 02/03/2026 + +Resumo por timeframe +1) 2min +- Arquivo: robo_ifr_v1_reversao_extremos02min64%.csv +- % vencedoras (nome): 64% +- Número de operações: 76 +- Resultado final acumulado: 612 +- Status: APROVADO (meta >= 60% e resultado positivo) + +2) 5min +- Arquivo: robo_ifr_v1_reversao_extremos05min47%.csv +- % vencedoras (nome): 47% +- Número de operações: 48 +- Resultado final acumulado: -3.787 +- Status: REPROVADO (abaixo de 60% e resultado negativo) + +3) 15min +- Arquivo: robo_ifr_v1_reversao_extremos15min68%.csv +- % vencedoras (nome): 68% +- Número de operações: 29 +- Resultado final acumulado: -1.157 +- Status: EM ALERTA (acerto alto, mas resultado negativo) + +4) 30min +- Arquivo: robo_ifr_v1_reversao_extremos30min81%.csv +- % vencedoras (nome): 81% +- Número de operações: 16 +- Resultado final acumulado: 512 +- Status: APROVADO + +5) 60min +- Arquivo: robo_ifr_v1_reversao_extremos60min71%.csv +- % vencedoras (nome): 71% +- Número de operações: 10 +- Resultado final acumulado: 1.304 +- Status: APROVADO (com amostra ainda pequena) + +Diagnóstico rápido de erro (principal) +- Há operações muito longas para alguns timeframes (manutenção por muitas horas/dias), o que amplia perdas pontuais e pode destruir a curva mesmo com taxa de acerto alta. +- O caso mais claro é 15min: % vencedoras alta, porém payoff assimétrico negativo (perdas maiores que ganhos). + +Ajustes recomendados para próxima iteração do v1 +- Adicionar limite de tempo de posição por timeframe (hard stop temporal). +- Incluir stop estrutural (perda de pivô ou máxima/mínima anterior) para cortar cauda de perda. +- Separar parâmetros de saída por timeframe (2/5/15/30/60), evitando usar mesma lógica para todos. + +Decisão atual do v1 +- Manter em carteira: 2min, 30min, 60min. +- Revisar com prioridade: 15min. +- Reprovar no estado atual: 5min. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt new file mode 100644 index 0000000..9634140 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt @@ -0,0 +1,50 @@ +ANÁLISE - ROBO IFR V4 DIVERGENCIA CONFIRMADA + +Período analisado +- 02/03/2025 a 02/03/2026 + +Resumo por timeframe +1) 2min +- Arquivo: robo_ifr_v4_divergencia_confirmada02min64%.csv +- % vencedoras (nome): 64% +- Número de operações: 184 +- Resultado final acumulado: -2.223 +- Status: EM ALERTA (acerto > 60, porém resultado líquido negativo) + +2) 5min +- Arquivo: robo_ifr_v4_divergencia_confirmada05min.csv +- Número de operações: 48 +- Resultado final acumulado: -3.787 +- Status: REPROVADO + +3) 15min +- Arquivo: robo_ifr_v4_divergencia_confirmada15min.csv +- Número de operações: 97 +- Resultado final acumulado: -1.813 +- Status: REPROVADO + +4) 30min +- Arquivo: robo_ifr_v4_divergencia_confirmada30min.csv +- Número de operações: 31 +- Resultado final acumulado: -1.144 +- Status: REPROVADO + +5) 60min +- Arquivo: robo_ifr_v4_divergencia_confirmada60min.csv +- Número de operações: 10 +- Resultado final acumulado: 988 +- Status: APROVADO (amostra menor) + +Diagnóstico rápido +- O v4 apresenta forte assimetria de payoff fora do 60min: várias perdas grandes e operações longas derrubam o resultado total. +- Em 2min, mesmo com 64% de vencedoras, o saldo final ficou negativo: indica que perda média está maior que ganho médio. + +Ajustes recomendados para manter >60% e saldo positivo +- Adicionar stop estrutural obrigatório (não depender só de IFR50/tempo). +- Limitar tempo máximo de posição por timeframe (especialmente 2/5/15). +- Reduzir exposição em dias de alta volatilidade adversa (circuit breaker por perda/tempo). + +Decisão atual do v4 +- Manter em carteira: 60min. +- Revisar com prioridade: 2min (boa taxa de acerto, porém payoff ruim). +- Reprovar no estado atual: 5min, 15min e 30min. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt new file mode 100644 index 0000000..2949086 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt @@ -0,0 +1,65 @@ +RANKING DOS MELHORES ROBÔS IFR (ATÉ O MOMENTO) + +Base considerada +- Robôs consolidados: v1, v4, v5, v6 e v7. +- Critério principal: resultado líquido positivo por timeframe. +- Critério secundário: % de vencedoras >= 60%. +- Classificação por timeframe: + - APROVADO = saldo > 0 e winrate >= 60% + - ALERTA = winrate >= 60% e saldo <= 0 + - REPROVADO = demais casos + +======================================== +RANKING GERAL DE ROBÔS (ATÉ AGORA) +======================================== +1º) v1_reversao_extremos +- Placar: 3 aprovados / 1 alerta / 1 reprovado +- Aprovados: 2min, 30min, 60min + +2º) v5_regime_volatilidade +- Placar: 2 aprovados / 3 alertas / 0 reprovados +- Aprovados: 30min, 60min + +3º) v7_resgate_contexto +- Placar: 2 aprovados / 1 alerta / 2 reprovados +- Aprovados: 2min, 30min + +4º) v6_saida_hibrida +- Placar: 2 aprovados / 0 alertas / 3 reprovados +- Aprovados: 30min, 60min + +5º) v4_divergencia_confirmada +- Placar: 1 aprovado / 1 alerta / 3 reprovados +- Aprovado: 60min + +======================================== +MÉTRICAS NOVAS (V5, V6, V7) +======================================== +v5_regime_volatilidade +- 2min: saldo -1450.00 | winrate 60.17% | 118 ops | ALERTA +- 5min: saldo -2077.00 | winrate 68.85% | 62 ops | ALERTA +- 15min: saldo -1163.00 | winrate 68.00% | 25 ops | ALERTA +- 30min: saldo +451.00 | winrate 81.82% | 22 ops | APROVADO +- 60min: saldo +1563.00 | winrate 90.91% | 11 ops | APROVADO + +v6_saida_hibrida +- 2min: saldo +186.00 | winrate 50.98% | 153 ops | REPROVADO +- 5min: saldo -1967.00 | winrate 47.66% | 107 ops | REPROVADO +- 15min: saldo -894.00 | winrate 54.72% | 53 ops | REPROVADO +- 30min: saldo +2254.00 | winrate 81.48% | 27 ops | APROVADO +- 60min: saldo +2315.00 | winrate 77.78% | 18 ops | APROVADO + +v7_resgate_contexto +- 2min: saldo +664.00 | winrate 80.00% | 10 ops | APROVADO +- 5min: saldo -1354.00 | winrate 33.33% | 12 ops | REPROVADO +- 15min: saldo +44.00 | winrate 57.14% | 7 ops | REPROVADO +- 30min: saldo +1291.00 | winrate 85.71% | 7 ops | APROVADO +- 60min: saldo -449.00 | winrate 75.00% | 4 ops | ALERTA + +======================================== +CONCLUSÃO PRÁTICA +======================================== +- Melhor robô até o momento: v1_reversao_extremos. +- Melhor combinação de consistência sem reprovados: v5 (mas com 3 alertas). +- Melhor potencial de tendência (30/60): v6. +- Melhor estratégia curta (2/30): v7. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv new file mode 100644 index 0000000..ffd44ec --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv @@ -0,0 +1,253 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:50:00;22min;1;1;C;165.120,00;165.130,00;192.315,00;No;2,00;10,00;1;2,00;10,00;0,00;0,00;0,00; - ;2,00 +WINJ26;19/12/2025 16:32:00;19/12/2025 16:36:00;4min;1;1;V;165.055,00;165.005,00;192.315,00;No;-10,00;-50,00;2;-10,00;-50,00;0,00;0,00;0,00;1h4min;-8,00 +WINJ26;19/12/2025 16:50:00;19/12/2025 16:52:00;2min;1;1;V;164.965,00;164.975,00;192.315,00;No;2,00;10,00;3;2,00;10,00;0,00;0,00;0,00;18min;-6,00 +WINJ26;19/12/2025 17:04:00;19/12/2025 17:06:00;2min;1;1;V;165.010,00;165.025,00;192.315,00;Sim;3,00;15,00;4;3,00;15,00;0,00;0,00;0,00;14min;-3,00 +WINJ26;22/12/2025 09:12:00;22/12/2025 09:20:00;8min;1;1;V;164.925,00;165.200,00;192.315,00;Sim;55,00;275,00;5;55,00;275,00;0,00;0,00;0,00;2d16h;52,00 +WINJ26;22/12/2025 11:10:00;22/12/2025 11:12:00;2min;1;1;V;164.220,00;164.300,00;192.315,00;No;16,00;80,00;6;16,00;80,00;0,00;0,00;0,00;1h58min;68,00 +WINJ26;22/12/2025 13:38:00;22/12/2025 13:40:00;2min;1;1;C;164.275,00;164.370,00;192.315,00;Sim;19,00;95,00;7;19,00;95,00;0,00;0,00;0,00;2h28min;87,00 +WINJ26;22/12/2025 17:58:00;22/12/2025 18:00:00;2min;1;1;V;164.315,00;164.315,00;192.315,00;Sim;0;0;8;0;0;0,00;0,00;0,00;4h20min;87,00 +WINJ26;23/12/2025 10:24:00;23/12/2025 10:28:00;4min;1;1;V;165.360,00;165.370,00;192.315,00;Sim;2,00;10,00;9;2,00;10,00;0,00;0,00;0,00;16h26min;89,00 +WINJ26;23/12/2025 10:40:00;23/12/2025 10:42:00;2min;1;1;C;165.380,00;165.385,00;192.315,00;No;1,00;5,00;10;1,00;5,00;0,00;0,00;0,00;16min;90,00 +WINJ26;23/12/2025 12:24:00;23/12/2025 12:46:00;22min;1;1;V;166.300,00;166.325,00;192.315,00;Sim;5,00;25,00;11;5,00;25,00;0,00;0,00;0,00;1h44min;95,00 +WINJ26;23/12/2025 13:32:00;23/12/2025 13:36:00;4min;1;1;C;166.450,00;166.480,00;192.315,00;No;6,00;30,00;12;6,00;30,00;0,00;0,00;0,00;1h8min;101,00 +WINJ26;23/12/2025 14:10:00;23/12/2025 14:12:00;2min;1;1;C;166.475,00;166.530,00;192.315,00;No;11,00;55,00;13;11,00;55,00;0,00;0,00;0,00;38min;112,00 +WINJ26;23/12/2025 14:36:00;23/12/2025 14:38:00;2min;1;1;C;166.570,00;166.585,00;192.315,00;No;3,00;15,00;14;3,00;15,00;0,00;0,00;0,00;26min;115,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:24:00;4min;1;1;C;166.425,00;166.425,00;192.315,00;Sim;0;0;15;0;0;0,00;0,00;0,00;44min;115,00 +WINJ26;23/12/2025 16:36:00;23/12/2025 16:38:00;2min;1;1;C;166.480,00;166.530,00;192.315,00;No;10,00;50,00;16;10,00;50,00;0,00;0,00;0,00;1h16min;125,00 +WINJ26;23/12/2025 17:12:00;23/12/2025 17:26:00;14min;1;1;C;166.415,00;166.465,00;192.315,00;Sim;10,00;50,00;17;10,00;50,00;0,00;0,00;0,00;36min;135,00 +WINJ26;23/12/2025 17:54:00;23/12/2025 17:56:00;2min;1;1;C;166.520,00;166.575,00;192.315,00;No;11,00;55,00;18;11,00;55,00;0,00;0,00;0,00;42min;146,00 +WINJ26;26/12/2025 11:44:00;26/12/2025 11:56:00;12min;1;1;V;165.880,00;166.015,00;192.315,00;No;27,00;135,00;19;27,00;135,00;0,00;0,00;0,00;2d17h;173,00 +WINJ26;26/12/2025 12:58:00;26/12/2025 13:02:00;4min;1;1;C;166.420,00;166.420,00;192.315,00;Sim;0;0;20;0;0;0,00;0,00;0,00;1h14min;173,00 +WINJ26;26/12/2025 14:22:00;26/12/2025 14:36:00;14min;1;1;V;166.375,00;166.355,00;192.315,00;Sim;-4,00;-20,00;21;-4,00;-20,00;0,00;0,00;0,00;1h24min;169,00 +WINJ26;29/12/2025 09:02:00;29/12/2025 09:16:00;14min;1;1;V;167.000,00;167.230,00;192.315,00;Sim;46,00;230,00;22;46,00;230,00;0,00;0,00;0,00;2d18h;215,00 +WINJ26;29/12/2025 09:20:00;29/12/2025 09:22:00;2min;1;1;C;167.240,00;167.330,00;192.315,00;No;18,00;90,00;23;18,00;90,00;0,00;0,00;0,00;18min;233,00 +WINJ26;29/12/2025 11:38:00;29/12/2025 11:40:00;2min;1;1;V;166.350,00;166.500,00;192.315,00;No;30,00;150,00;24;30,00;150,00;0,00;0,00;0,00;2h18min;263,00 +WINJ26;29/12/2025 12:10:00;29/12/2025 12:12:00;2min;1;1;V;166.225,00;166.200,00;192.315,00;No;-5,00;-25,00;25;-5,00;-25,00;0,00;0,00;0,00;32min;258,00 +WINJ26;29/12/2025 13:04:00;29/12/2025 13:06:00;2min;1;1;V;165.990,00;166.045,00;192.315,00;No;11,00;55,00;26;11,00;55,00;0,00;0,00;0,00;54min;269,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.315,00;Sim;5,00;25,00;27;5,00;25,00;0,00;0,00;0,00;1h46min;274,00 +WINJ26;29/12/2025 16:06:00;29/12/2025 16:12:00;6min;1;1;C;165.845,00;165.920,00;192.315,00;Sim;15,00;75,00;28;15,00;75,00;0,00;0,00;0,00;1h16min;289,00 +WINJ26;30/12/2025 09:44:00;30/12/2025 10:02:00;18min;1;1;V;167.550,00;167.635,00;192.315,00;Sim;17,00;85,00;29;17,00;85,00;0,00;0,00;0,00;17h38min;306,00 +WINJ26;30/12/2025 10:08:00;30/12/2025 10:16:00;8min;1;1;C;167.630,00;167.895,00;192.315,00;No;53,00;265,00;30;53,00;265,00;0,00;0,00;0,00;24min;359,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.315,00;Sim;26,00;130,00;31;26,00;130,00;0,00;0,00;0,00;56min;385,00 +WINJ26;30/12/2025 11:26:00;30/12/2025 11:28:00;2min;1;1;V;167.375,00;167.425,00;192.315,00;No;10,00;50,00;32;10,00;50,00;0,00;0,00;0,00;22min;395,00 +WINJ26;30/12/2025 12:30:00;30/12/2025 12:32:00;2min;1;1;V;167.200,00;167.160,00;192.315,00;No;-8,00;-40,00;33;-8,00;-40,00;0,00;0,00;0,00;1h4min;387,00 +WINJ26;30/12/2025 13:54:00;30/12/2025 14:10:00;16min;1;1;C;167.680,00;167.715,00;192.315,00;No;7,00;35,00;34;7,00;35,00;0,00;0,00;0,00;1h24min;394,00 +WINJ26;30/12/2025 14:14:00;30/12/2025 14:18:00;4min;1;1;V;167.640,00;167.600,00;192.315,00;Sim;-8,00;-40,00;35;-8,00;-40,00;0,00;0,00;0,00;20min;386,00 +WINJ26;30/12/2025 16:50:00;30/12/2025 16:54:00;4min;1;1;V;167.705,00;167.630,00;192.315,00;Sim;-15,00;-75,00;36;-15,00;-75,00;0,00;0,00;0,00;2h36min;371,00 +WINJ26;30/12/2025 17:58:00;02/01/2026 09:00:00;2d15h;1;1;C;167.470,00;167.265,00;192.315,00;Sim;-41,00;-205,00;37;-41,00;-205,00;0,00;0,00;0,00;1h8min;330,00 +WINJ26;02/01/2026 10:08:00;02/01/2026 10:10:00;2min;1;1;V;167.810,00;167.975,00;192.315,00;Sim;33,00;165,00;38;33,00;165,00;0,00;0,00;0,00;2d16h;363,00 +WINJ26;02/01/2026 11:20:00;02/01/2026 11:22:00;2min;1;1;V;166.975,00;166.910,00;192.315,00;No;-13,00;-65,00;39;-13,00;-65,00;0,00;0,00;0,00;1h12min;350,00 +WINJ26;02/01/2026 12:08:00;02/01/2026 12:12:00;4min;1;1;V;166.570,00;166.640,00;192.315,00;No;14,00;70,00;40;14,00;70,00;0,00;0,00;0,00;48min;364,00 +WINJ26;02/01/2026 17:52:00;02/01/2026 17:54:00;2min;1;1;V;166.010,00;166.160,00;192.315,00;No;30,00;150,00;41;30,00;150,00;0,00;0,00;0,00;5h44min;394,00 +WINJ26;05/01/2026 11:44:00;05/01/2026 12:04:00;20min;1;1;C;166.465,00;166.270,00;192.315,00;Sim;-39,00;-195,00;42;-39,00;-195,00;0,00;0,00;0,00;2d17h;355,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:10:00;4min;1;1;V;167.030,00;167.080,00;192.315,00;Sim;10,00;50,00;43;10,00;50,00;0,00;0,00;0,00;1h22min;365,00 +WINJ26;05/01/2026 15:48:00;05/01/2026 15:50:00;2min;1;1;C;167.685,00;167.705,00;192.315,00;No;4,00;20,00;44;4,00;20,00;0,00;0,00;0,00;2h42min;369,00 +WINJ26;06/01/2026 09:58:00;06/01/2026 10:26:00;28min;1;1;V;169.380,00;168.775,00;192.315,00;Sim;-121,00;-605,00;45;-121,00;-605,00;0,00;0,00;0,00;18h10min;248,00 +WINJ26;06/01/2026 11:04:00;06/01/2026 11:06:00;2min;1;1;C;169.625,00;169.735,00;192.315,00;No;22,00;110,00;46;22,00;110,00;0,00;0,00;0,00;1h6min;270,00 +WINJ26;06/01/2026 15:40:00;06/01/2026 15:42:00;2min;1;1;V;169.380,00;169.380,00;192.315,00;Sim;0;0;47;0;0;0,00;0,00;0,00;4h36min;270,00 +WINJ26;06/01/2026 17:32:00;06/01/2026 17:34:00;2min;1;1;V;169.175,00;169.170,00;192.315,00;No;-1,00;-5,00;48;-1,00;-5,00;0,00;0,00;0,00;1h52min;269,00 +WINJ26;06/01/2026 18:00:00;06/01/2026 18:08:00;8min;1;1;C;169.220,00;169.365,00;192.315,00;Sim;29,00;145,00;49;29,00;145,00;0,00;0,00;0,00;28min;298,00 +WINJ26;07/01/2026 09:04:00;07/01/2026 09:06:00;2min;1;1;V;169.030,00;169.100,00;192.315,00;No;14,00;70,00;50;14,00;70,00;0,00;0,00;0,00;15h4min;312,00 +WINJ26;07/01/2026 09:24:00;07/01/2026 09:26:00;2min;1;1;V;169.150,00;169.115,00;192.315,00;Sim;-7,00;-35,00;51;-7,00;-35,00;0,00;0,00;0,00;20min;305,00 +WINJ26;07/01/2026 11:48:00;07/01/2026 12:16:00;28min;1;1;C;167.845,00;167.500,00;192.315,00;Sim;-69,00;-345,00;52;-69,00;-345,00;0,00;0,00;0,00;2h24min;236,00 +WINJ26;07/01/2026 14:00:00;07/01/2026 14:02:00;2min;1;1;C;167.750,00;167.730,00;192.315,00;Sim;-4,00;-20,00;53;-4,00;-20,00;0,00;0,00;0,00;2h12min;232,00 +WINJ26;07/01/2026 14:26:00;07/01/2026 14:50:00;24min;1;1;V;167.620,00;167.645,00;192.315,00;No;5,00;25,00;54;5,00;25,00;0,00;0,00;0,00;26min;237,00 +WINJ26;08/01/2026 09:22:00;08/01/2026 09:32:00;10min;1;1;V;167.330,00;167.400,00;192.315,00;No;14,00;70,00;55;14,00;70,00;0,00;0,00;0,00;18h56min;251,00 +WINJ26;08/01/2026 11:46:00;08/01/2026 11:50:00;4min;1;1;V;167.880,00;167.960,00;192.315,00;Sim;16,00;80,00;56;16,00;80,00;0,00;0,00;0,00;2h24min;267,00 +WINJ26;08/01/2026 11:54:00;08/01/2026 12:04:00;10min;1;1;C;167.925,00;167.860,00;192.315,00;No;-13,00;-65,00;57;-13,00;-65,00;0,00;0,00;0,00;8min;254,00 +WINJ26;08/01/2026 13:06:00;08/01/2026 13:08:00;2min;1;1;V;167.935,00;167.895,00;192.315,00;No;-8,00;-40,00;58;-8,00;-40,00;0,00;0,00;0,00;1h12min;246,00 +WINJ26;08/01/2026 13:20:00;08/01/2026 13:22:00;2min;1;1;V;167.820,00;167.845,00;192.315,00;No;5,00;25,00;59;5,00;25,00;0,00;0,00;0,00;14min;251,00 +WINJ26;08/01/2026 15:48:00;08/01/2026 15:50:00;2min;1;1;C;167.960,00;167.970,00;192.315,00;No;2,00;10,00;60;2,00;10,00;0,00;0,00;0,00;2h28min;253,00 +WINJ26;09/01/2026 12:30:00;09/01/2026 12:32:00;2min;1;1;C;169.360,00;169.415,00;192.315,00;No;11,00;55,00;61;11,00;55,00;0,00;0,00;0,00;20h42min;264,00 +WINJ26;09/01/2026 13:26:00;09/01/2026 13:32:00;6min;1;1;V;169.300,00;169.180,00;192.315,00;Sim;-24,00;-120,00;62;-24,00;-120,00;0,00;0,00;0,00;56min;240,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:42:00;32min;1;1;V;169.555,00;169.550,00;192.315,00;Sim;-1,00;-5,00;63;-1,00;-5,00;0,00;0,00;0,00;44min;239,00 +WINJ26;12/01/2026 09:06:00;12/01/2026 09:08:00;2min;1;1;V;168.485,00;168.555,00;192.315,00;No;14,00;70,00;64;14,00;70,00;0,00;0,00;0,00;2d18h;253,00 +WINJ26;12/01/2026 13:34:00;12/01/2026 13:36:00;2min;1;1;C;168.765,00;168.800,00;192.315,00;Sim;7,00;35,00;65;7,00;35,00;0,00;0,00;0,00;4h28min;260,00 +WINJ26;13/01/2026 09:56:00;13/01/2026 10:22:00;26min;1;1;C;167.785,00;167.625,00;192.315,00;Sim;-32,00;-160,00;66;-32,00;-160,00;0,00;0,00;0,00;20h22min;228,00 +WINJ26;13/01/2026 12:54:00;13/01/2026 12:56:00;2min;1;1;V;167.180,00;167.190,00;192.315,00;No;2,00;10,00;67;2,00;10,00;0,00;0,00;0,00;2h58min;230,00 +WINJ26;13/01/2026 14:44:00;13/01/2026 14:46:00;2min;1;1;C;167.335,00;167.370,00;192.315,00;Sim;7,00;35,00;68;7,00;35,00;0,00;0,00;0,00;1h50min;237,00 +WINJ26;14/01/2026 10:04:00;14/01/2026 10:32:00;28min;1;1;V;168.545,00;168.100,00;192.315,00;Sim;-89,00;-445,00;69;-89,00;-445,00;0,00;0,00;0,00;19h20min;148,00 +WINJ26;14/01/2026 13:20:00;14/01/2026 13:48:00;28min;1;1;V;168.770,00;168.730,00;192.315,00;Sim;-8,00;-40,00;70;-8,00;-40,00;0,00;0,00;0,00;3h16min;140,00 +WINJ26;14/01/2026 15:02:00;14/01/2026 15:04:00;2min;1;1;C;168.930,00;168.980,00;192.315,00;No;10,00;50,00;71;10,00;50,00;0,00;0,00;0,00;1h42min;150,00 +WINJ26;15/01/2026 09:02:00;15/01/2026 09:04:00;2min;1;1;V;170.250,00;170.355,00;192.315,00;Sim;21,00;105,00;72;21,00;105,00;0,00;0,00;0,00;18h;171,00 +WINJ26;15/01/2026 09:08:00;15/01/2026 09:10:00;2min;1;1;C;170.615,00;170.620,00;192.315,00;No;1,00;5,00;73;1,00;5,00;0,00;0,00;0,00;6min;172,00 +WINJ26;15/01/2026 09:24:00;15/01/2026 09:32:00;8min;1;1;C;170.415,00;170.440,00;192.315,00;Sim;5,00;25,00;74;5,00;25,00;0,00;0,00;0,00;16min;177,00 +WINJ26;15/01/2026 13:16:00;15/01/2026 13:18:00;2min;1;1;C;170.545,00;170.595,00;192.315,00;No;10,00;50,00;75;10,00;50,00;0,00;0,00;0,00;3h52min;187,00 +WINJ26;15/01/2026 14:30:00;15/01/2026 14:34:00;4min;1;1;C;170.760,00;170.785,00;192.315,00;No;5,00;25,00;76;5,00;25,00;0,00;0,00;0,00;1h14min;192,00 +WINJ26;15/01/2026 16:08:00;15/01/2026 16:40:00;32min;1;1;C;171.200,00;171.025,00;192.315,00;No;-35,00;-175,00;77;-35,00;-175,00;0,00;0,00;0,00;1h38min;157,00 +WINJ26;15/01/2026 17:58:00;15/01/2026 18:02:00;4min;1;1;C;170.600,00;170.700,00;192.315,00;Sim;20,00;100,00;78;20,00;100,00;0,00;0,00;0,00;1h50min;177,00 +WINJ26;16/01/2026 11:12:00;16/01/2026 11:40:00;28min;1;1;C;170.050,00;169.650,00;192.315,00;Sim;-80,00;-400,00;79;-80,00;-400,00;0,00;0,00;0,00;17h14min;97,00 +WINJ26;16/01/2026 12:46:00;16/01/2026 12:50:00;4min;1;1;C;169.385,00;169.500,00;192.315,00;Sim;23,00;115,00;80;23,00;115,00;0,00;0,00;0,00;1h34min;120,00 +WINJ26;16/01/2026 14:58:00;16/01/2026 15:06:00;8min;1;1;V;169.530,00;169.485,00;192.315,00;No;-9,00;-45,00;81;-9,00;-45,00;0,00;0,00;0,00;2h12min;111,00 +WINJ26;16/01/2026 15:12:00;16/01/2026 15:16:00;4min;1;1;C;169.620,00;169.570,00;192.315,00;No;-10,00;-50,00;82;-10,00;-50,00;0,00;0,00;0,00;14min;101,00 +WINJ26;16/01/2026 16:16:00;16/01/2026 16:18:00;2min;1;1;C;169.610,00;169.655,00;192.315,00;Sim;9,00;45,00;83;9,00;45,00;0,00;0,00;0,00;1h4min;110,00 +WINJ26;19/01/2026 09:02:00;19/01/2026 09:04:00;2min;1;1;V;169.150,00;169.210,00;192.315,00;No;12,00;60,00;84;12,00;60,00;0,00;0,00;0,00;2d16h;122,00 +WINJ26;19/01/2026 10:00:00;19/01/2026 10:02:00;2min;1;1;C;169.685,00;169.570,00;192.315,00;No;-23,00;-115,00;85;-23,00;-115,00;0,00;0,00;0,00;58min;99,00 +WINJ26;19/01/2026 15:06:00;19/01/2026 15:12:00;6min;1;1;V;169.715,00;169.770,00;192.315,00;Sim;11,00;55,00;86;11,00;55,00;0,00;0,00;0,00;5h6min;110,00 +WINJ26;19/01/2026 15:56:00;19/01/2026 16:04:00;8min;1;1;V;169.660,00;169.660,00;192.315,00;No;0;0;87;0;0;0,00;0,00;0,00;50min;110,00 +WINJ26;19/01/2026 16:22:00;19/01/2026 16:26:00;4min;1;1;V;169.655,00;169.650,00;192.315,00;No;-1,00;-5,00;88;-1,00;-5,00;0,00;0,00;0,00;26min;109,00 +WINJ26;19/01/2026 17:10:00;19/01/2026 17:26:00;16min;1;1;V;169.640,00;169.630,00;192.315,00;No;-2,00;-10,00;89;-2,00;-10,00;0,00;0,00;0,00;48min;107,00 +WINJ26;20/01/2026 09:02:00;20/01/2026 09:04:00;2min;1;1;V;169.150,00;168.775,00;192.315,00;No;-75,00;-375,00;90;-75,00;-375,00;0,00;0,00;0,00;15h52min;32,00 +WINJ26;20/01/2026 09:36:00;20/01/2026 09:46:00;10min;1;1;C;168.420,00;168.535,00;192.315,00;Sim;23,00;115,00;91;23,00;115,00;0,00;0,00;0,00;34min;55,00 +WINJ26;20/01/2026 10:18:00;20/01/2026 10:20:00;2min;1;1;C;168.935,00;169.085,00;192.315,00;No;30,00;150,00;92;30,00;150,00;0,00;0,00;0,00;42min;85,00 +WINJ26;20/01/2026 16:32:00;20/01/2026 17:02:00;30min;1;1;V;170.800,00;170.710,00;192.315,00;Sim;-18,00;-90,00;93;-18,00;-90,00;0,00;0,00;0,00;6h14min;67,00 +WINJ26;20/01/2026 18:08:00;20/01/2026 18:22:00;14min;1;1;V;171.015,00;171.080,00;192.315,00;Sim;13,00;65,00;94;13,00;65,00;0,00;0,00;0,00;1h36min;80,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.315,00;No;-6,00;-30,00;95;-6,00;-30,00;0,00;0,00;0,00;14h54min;74,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 10:44:00;12min;1;1;V;173.400,00;173.430,00;192.315,00;Sim;6,00;30,00;96;6,00;30,00;0,00;0,00;0,00;1h30min;80,00 +WINJ26;21/01/2026 14:00:00;21/01/2026 14:02:00;2min;1;1;C;175.010,00;175.065,00;192.315,00;No;11,00;55,00;97;11,00;55,00;0,00;0,00;0,00;3h28min;91,00 +WINJ26;21/01/2026 17:18:00;21/01/2026 17:46:00;28min;1;1;V;176.930,00;176.620,00;192.315,00;Sim;-62,00;-310,00;98;-62,00;-310,00;0,00;0,00;0,00;3h18min;29,00 +WINJ26;22/01/2026 09:04:00;22/01/2026 09:06:00;2min;1;1;C;177.340,00;177.305,00;192.315,00;No;-7,00;-35,00;99;-7,00;-35,00;0,00;0,00;0,00;15h46min;22,00 +WINJ26;22/01/2026 10:04:00;22/01/2026 10:06:00;2min;1;1;V;177.800,00;177.870,00;192.315,00;Sim;14,00;70,00;100;14,00;70,00;0,00;0,00;0,00;1h;36,00 +WINJ26;22/01/2026 10:40:00;22/01/2026 10:42:00;2min;1;1;C;178.100,00;178.085,00;192.315,00;No;-3,00;-15,00;101;-3,00;-15,00;0,00;0,00;0,00;36min;33,00 +WINJ26;22/01/2026 14:04:00;22/01/2026 14:06:00;2min;1;1;C;182.020,00;181.940,00;192.315,00;No;-16,00;-80,00;102;-16,00;-80,00;0,00;0,00;0,00;3h24min;17,00 +WINJ26;22/01/2026 14:12:00;22/01/2026 14:32:00;20min;1;1;C;181.885,00;181.780,00;192.315,00;Sim;-21,00;-105,00;103;-21,00;-105,00;0,00;0,00;0,00;8min;-4,00 +WINJ26;22/01/2026 17:54:00;22/01/2026 18:04:00;10min;1;1;V;180.810,00;180.810,00;192.315,00;Sim;0;0;104;0;0;0,00;0,00;0,00;3h42min;-4,00 +WINJ26;23/01/2026 10:04:00;23/01/2026 10:06:00;2min;1;1;V;181.400,00;181.310,00;192.315,00;Sim;-18,00;-90,00;105;-18,00;-90,00;0,00;0,00;0,00;16h10min;-22,00 +WINJ26;23/01/2026 12:54:00;23/01/2026 12:56:00;2min;1;1;C;182.395,00;182.320,00;192.315,00;No;-15,00;-75,00;106;-15,00;-75,00;0,00;0,00;0,00;2h50min;-37,00 +WINJ26;23/01/2026 13:52:00;23/01/2026 14:18:00;26min;1;1;C;182.315,00;182.160,00;192.315,00;Sim;-31,00;-155,00;107;-31,00;-155,00;0,00;0,00;0,00;58min;-68,00 +WINJ26;23/01/2026 15:56:00;23/01/2026 16:24:00;28min;1;1;V;183.155,00;182.600,00;192.315,00;Sim;-111,00;-555,00;108;-111,00;-555,00;0,00;0,00;0,00;2h4min;-179,00 +WINJ26;23/01/2026 17:32:00;23/01/2026 17:34:00;2min;1;1;V;184.350,00;184.505,00;192.315,00;Sim;31,00;155,00;109;31,00;155,00;0,00;0,00;0,00;1h36min;-148,00 +WINJ26;26/01/2026 12:52:00;26/01/2026 13:02:00;10min;1;1;V;183.585,00;183.560,00;192.315,00;No;-5,00;-25,00;110;-5,00;-25,00;0,00;0,00;0,00;2d19h;-153,00 +WINJ26;26/01/2026 15:42:00;26/01/2026 16:02:00;20min;1;1;V;183.455,00;183.530,00;192.315,00;No;15,00;75,00;111;15,00;75,00;0,00;0,00;0,00;2h50min;-138,00 +WINJ26;27/01/2026 09:02:00;27/01/2026 09:04:00;2min;1;1;C;185.465,00;185.405,00;192.315,00;No;-12,00;-60,00;112;-12,00;-60,00;0,00;0,00;0,00;17h20min;-150,00 +WINJ26;27/01/2026 09:22:00;27/01/2026 09:52:00;30min;1;1;V;186.130,00;185.210,00;192.315,00;Sim;-184,00;-920,00;113;-184,00;-920,00;0,00;0,00;0,00;20min;-334,00 +WINJ26;27/01/2026 10:08:00;27/01/2026 10:12:00;4min;1;1;C;185.900,00;186.105,00;192.315,00;No;41,00;205,00;114;41,00;205,00;0,00;0,00;0,00;46min;-293,00 +WINJ26;27/01/2026 10:28:00;27/01/2026 10:32:00;4min;1;1;C;185.970,00;186.115,00;192.315,00;No;29,00;145,00;115;29,00;145,00;0,00;0,00;0,00;20min;-264,00 +WINJ26;27/01/2026 12:42:00;27/01/2026 12:48:00;6min;1;1;C;187.600,00;187.645,00;192.315,00;No;9,00;45,00;116;9,00;45,00;0,00;0,00;0,00;2h14min;-255,00 +WINJ26;27/01/2026 17:42:00;27/01/2026 17:44:00;2min;1;1;V;187.020,00;187.280,00;192.315,00;Sim;52,00;260,00;117;52,00;260,00;0,00;0,00;0,00;5h;-203,00 +WINJ26;28/01/2026 09:04:00;28/01/2026 09:34:00;30min;1;1;V;187.425,00;187.440,00;192.315,00;Sim;3,00;15,00;118;3,00;15,00;0,00;0,00;0,00;15h22min;-200,00 +WINJ26;28/01/2026 11:14:00;28/01/2026 11:16:00;2min;1;1;C;189.110,00;189.160,00;192.315,00;No;10,00;50,00;119;10,00;50,00;0,00;0,00;0,00;2h10min;-190,00 +WINJ26;28/01/2026 11:28:00;28/01/2026 11:30:00;2min;1;1;C;189.100,00;189.210,00;192.315,00;Sim;22,00;110,00;120;22,00;110,00;0,00;0,00;0,00;14min;-168,00 +WINJ26;28/01/2026 13:00:00;28/01/2026 13:12:00;12min;1;1;V;188.675,00;188.670,00;192.315,00;Sim;-1,00;-5,00;121;-1,00;-5,00;0,00;0,00;0,00;1h32min;-169,00 +WINJ26;28/01/2026 15:04:00;28/01/2026 15:06:00;2min;1;1;C;188.550,00;188.550,00;192.315,00;Sim;0;0;122;0;0;0,00;0,00;0,00;2h4min;-169,00 +WINJ26;28/01/2026 15:36:00;28/01/2026 15:38:00;2min;1;1;V;188.470,00;188.420,00;192.315,00;No;-10,00;-50,00;123;-10,00;-50,00;0,00;0,00;0,00;32min;-179,00 +WINJ26;28/01/2026 16:30:00;28/01/2026 16:32:00;2min;1;1;V;188.115,00;188.035,00;192.315,00;No;-16,00;-80,00;124;-16,00;-80,00;0,00;0,00;0,00;54min;-195,00 +WINJ26;28/01/2026 17:20:00;28/01/2026 17:50:00;30min;1;1;V;189.510,00;188.875,00;192.315,00;Sim;-127,00;-635,00;125;-127,00;-635,00;0,00;0,00;0,00;50min;-322,00 +WINJ26;29/01/2026 09:42:00;29/01/2026 09:44:00;2min;1;1;C;191.265,00;191.450,00;192.315,00;No;37,00;185,00;126;37,00;185,00;0,00;0,00;0,00;16h22min;-285,00 +WINJ26;29/01/2026 10:06:00;29/01/2026 10:32:00;26min;1;1;C;191.170,00;191.025,00;192.315,00;Sim;-29,00;-145,00;127;-29,00;-145,00;0,00;0,00;0,00;24min;-314,00 +WINJ26;29/01/2026 10:50:00;29/01/2026 10:58:00;8min;1;1;C;191.080,00;190.980,00;192.315,00;Sim;-20,00;-100,00;128;-20,00;-100,00;0,00;0,00;0,00;44min;-334,00 +WINJ26;29/01/2026 11:28:00;29/01/2026 11:30:00;2min;1;1;V;190.745,00;190.945,00;192.315,00;Sim;40,00;200,00;129;40,00;200,00;0,00;0,00;0,00;38min;-294,00 +WINJ26;29/01/2026 13:24:00;29/01/2026 13:38:00;14min;1;1;V;187.475,00;187.390,00;192.315,00;No;-17,00;-85,00;130;-17,00;-85,00;0,00;0,00;0,00;1h56min;-311,00 +WINJ26;29/01/2026 15:30:00;29/01/2026 15:42:00;12min;1;1;C;188.075,00;187.940,00;192.315,00;Sim;-27,00;-135,00;131;-27,00;-135,00;0,00;0,00;0,00;2h6min;-338,00 +WINJ26;30/01/2026 10:08:00;30/01/2026 10:38:00;30min;1;1;V;187.860,00;187.290,00;192.315,00;No;-114,00;-570,00;132;-114,00;-570,00;0,00;0,00;0,00;18h38min;-452,00 +WINJ26;30/01/2026 10:48:00;30/01/2026 11:04:00;16min;1;1;C;187.700,00;187.500,00;192.315,00;Sim;-40,00;-200,00;133;-40,00;-200,00;0,00;0,00;0,00;40min;-492,00 +WINJ26;30/01/2026 12:32:00;30/01/2026 12:36:00;4min;1;1;C;187.855,00;187.945,00;192.315,00;No;18,00;90,00;134;18,00;90,00;0,00;0,00;0,00;1h44min;-474,00 +WINJ26;30/01/2026 15:44:00;30/01/2026 15:46:00;2min;1;1;C;185.275,00;185.350,00;192.315,00;Sim;15,00;75,00;135;15,00;75,00;0,00;0,00;0,00;3h12min;-459,00 +WINJ26;30/01/2026 17:38:00;30/01/2026 17:40:00;2min;1;1;V;185.810,00;185.700,00;192.315,00;No;-22,00;-110,00;136;-22,00;-110,00;0,00;0,00;0,00;1h54min;-481,00 +WINJ26;02/02/2026 11:42:00;02/02/2026 11:44:00;2min;1;1;V;186.680,00;186.795,00;192.315,00;Sim;23,00;115,00;137;23,00;115,00;0,00;0,00;0,00;2d18h;-458,00 +WINJ26;02/02/2026 12:14:00;02/02/2026 12:16:00;2min;1;1;V;186.485,00;186.495,00;192.315,00;No;2,00;10,00;138;2,00;10,00;0,00;0,00;0,00;32min;-456,00 +WINJ26;02/02/2026 14:28:00;02/02/2026 14:30:00;2min;1;1;C;187.130,00;187.140,00;192.315,00;No;2,00;10,00;139;2,00;10,00;0,00;0,00;0,00;2h14min;-454,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:40:00;28min;1;1;C;186.555,00;186.490,00;192.315,00;Sim;-13,00;-65,00;140;-13,00;-65,00;0,00;0,00;0,00;1h44min;-467,00 +WINJ26;02/02/2026 18:02:00;03/02/2026 09:04:00;15h2min;1;1;V;188.610,00;187.400,00;192.315,00;Sim;-242,00;-1.210,00;141;-242,00;-1.210,00;0,00;0,00;0,00;1h50min;-709,00 +WINJ26;03/02/2026 10:28:00;03/02/2026 10:56:00;28min;1;1;V;190.580,00;189.465,00;192.315,00;Sim;-223,00;-1.115,00;142;-223,00;-1.115,00;0,00;0,00;0,00;16h26min;-932,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:56:00;28min;1;1;V;191.605,00;191.120,00;192.315,00;Sim;-97,00;-485,00;143;-97,00;-485,00;0,00;0,00;0,00;1h;-1.029,00 +WINJ26;03/02/2026 12:54:00;03/02/2026 12:56:00;2min;1;1;V;191.120,00;191.100,00;192.315,00;No;-4,00;-20,00;144;-4,00;-20,00;0,00;0,00;0,00;1h26min;-1.033,00 +WINJ26;03/02/2026 16:00:00;03/02/2026 16:02:00;2min;1;1;V;189.620,00;189.645,00;192.315,00;No;5,00;25,00;145;5,00;25,00;0,00;0,00;0,00;3h6min;-1.028,00 +WINJ26;04/02/2026 09:02:00;04/02/2026 09:30:00;28min;1;1;C;190.645,00;189.150,00;192.315,00;No;-299,00;-1.495,00;146;-299,00;-1.495,00;0,00;0,00;0,00;17h2min;-1.327,00 +WINJ26;04/02/2026 09:56:00;04/02/2026 09:58:00;2min;1;1;V;189.215,00;189.210,00;192.315,00;No;-1,00;-5,00;147;-1,00;-5,00;0,00;0,00;0,00;54min;-1.328,00 +WINJ26;04/02/2026 10:54:00;04/02/2026 10:56:00;2min;1;1;V;188.840,00;188.930,00;192.315,00;No;18,00;90,00;148;18,00;90,00;0,00;0,00;0,00;58min;-1.310,00 +WINJ26;04/02/2026 12:14:00;04/02/2026 12:32:00;18min;1;1;V;187.745,00;187.660,00;192.315,00;No;-17,00;-85,00;149;-17,00;-85,00;0,00;0,00;0,00;1h20min;-1.327,00 +WINJ26;04/02/2026 14:14:00;04/02/2026 14:16:00;2min;1;1;C;186.230,00;186.350,00;192.315,00;Sim;24,00;120,00;150;24,00;120,00;0,00;0,00;0,00;2h;-1.303,00 +WINJ26;04/02/2026 17:36:00;04/02/2026 17:38:00;2min;1;1;C;185.730,00;185.825,00;192.315,00;Sim;19,00;95,00;151;19,00;95,00;0,00;0,00;0,00;3h22min;-1.284,00 +WINJ26;04/02/2026 18:02:00;04/02/2026 18:04:00;2min;1;1;C;185.950,00;186.010,00;192.315,00;No;12,00;60,00;152;12,00;60,00;0,00;0,00;0,00;26min;-1.272,00 +WINJ26;05/02/2026 09:24:00;05/02/2026 09:26:00;2min;1;1;C;186.355,00;186.400,00;192.315,00;No;9,00;45,00;153;9,00;45,00;0,00;0,00;0,00;15h22min;-1.263,00 +WINJ26;05/02/2026 09:56:00;05/02/2026 10:06:00;10min;1;1;V;186.335,00;186.270,00;192.315,00;No;-13,00;-65,00;154;-13,00;-65,00;0,00;0,00;0,00;32min;-1.276,00 +WINJ26;05/02/2026 11:02:00;05/02/2026 11:04:00;2min;1;1;C;187.300,00;187.500,00;192.315,00;No;40,00;200,00;155;40,00;200,00;0,00;0,00;0,00;1h6min;-1.236,00 +WINJ26;05/02/2026 11:38:00;05/02/2026 11:40:00;2min;1;1;C;187.525,00;187.890,00;192.315,00;No;73,00;365,00;156;73,00;365,00;0,00;0,00;0,00;36min;-1.163,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.315,00;Sim;41,00;205,00;157;41,00;205,00;0,00;0,00;0,00;54min;-1.122,00 +WINJ26;05/02/2026 12:48:00;05/02/2026 12:50:00;2min;1;1;V;186.800,00;186.530,00;192.315,00;Sim;-54,00;-270,00;158;-54,00;-270,00;0,00;0,00;0,00;16min;-1.176,00 +WINJ26;05/02/2026 15:26:00;05/02/2026 15:28:00;2min;1;1;C;187.705,00;187.625,00;192.315,00;No;-16,00;-80,00;159;-16,00;-80,00;0,00;0,00;0,00;2h38min;-1.192,00 +WINJ26;05/02/2026 16:56:00;05/02/2026 17:00:00;4min;1;1;C;187.225,00;187.375,00;192.315,00;Sim;30,00;150,00;160;30,00;150,00;0,00;0,00;0,00;1h30min;-1.162,00 +WINJ26;05/02/2026 17:14:00;05/02/2026 17:16:00;2min;1;1;V;187.260,00;187.380,00;192.315,00;Sim;24,00;120,00;161;24,00;120,00;0,00;0,00;0,00;18min;-1.138,00 +WINJ26;05/02/2026 18:16:00;05/02/2026 18:20:00;4min;1;1;V;186.525,00;186.445,00;192.315,00;No;-16,00;-80,00;162;-16,00;-80,00;0,00;0,00;0,00;1h2min;-1.154,00 +WINJ26;06/02/2026 10:24:00;06/02/2026 10:26:00;2min;1;1;V;186.160,00;186.405,00;192.315,00;No;49,00;245,00;163;49,00;245,00;0,00;0,00;0,00;16h8min;-1.105,00 +WINJ26;06/02/2026 11:44:00;06/02/2026 11:52:00;8min;1;1;C;186.520,00;186.660,00;192.315,00;Sim;28,00;140,00;164;28,00;140,00;0,00;0,00;0,00;1h20min;-1.077,00 +WINJ26;06/02/2026 14:20:00;06/02/2026 14:22:00;2min;1;1;C;187.015,00;187.070,00;192.315,00;No;11,00;55,00;165;11,00;55,00;0,00;0,00;0,00;2h36min;-1.066,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:46:00;30min;1;1;C;186.525,00;186.430,00;192.315,00;Sim;-19,00;-95,00;166;-19,00;-95,00;0,00;0,00;0,00;56min;-1.085,00 +WINJ26;06/02/2026 17:36:00;06/02/2026 17:40:00;4min;1;1;V;187.165,00;187.305,00;192.315,00;Sim;28,00;140,00;167;28,00;140,00;0,00;0,00;0,00;2h20min;-1.057,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:02:00;2min;1;1;C;187.805,00;187.735,00;192.315,00;No;-14,00;-70,00;168;-14,00;-70,00;0,00;0,00;0,00;2d15h;-1.071,00 +WINJ26;09/02/2026 10:00:00;09/02/2026 10:28:00;28min;1;1;C;188.045,00;187.640,00;192.315,00;No;-81,00;-405,00;169;-81,00;-405,00;0,00;0,00;0,00;1h;-1.152,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:10:00;20min;1;1;V;188.225,00;188.185,00;192.315,00;Sim;-8,00;-40,00;170;-8,00;-40,00;0,00;0,00;0,00;1h50min;-1.160,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:12:00;2min;1;1;C;187.925,00;187.965,00;192.315,00;Sim;8,00;40,00;171;8,00;40,00;0,00;0,00;0,00;1h20min;-1.152,00 +WINJ26;09/02/2026 14:44:00;09/02/2026 14:54:00;10min;1;1;V;189.485,00;189.525,00;192.315,00;Sim;8,00;40,00;172;8,00;40,00;0,00;0,00;0,00;1h34min;-1.144,00 +WINJ26;09/02/2026 15:24:00;09/02/2026 15:26:00;2min;1;1;C;189.755,00;189.880,00;192.315,00;No;25,00;125,00;173;25,00;125,00;0,00;0,00;0,00;40min;-1.119,00 +WINJ26;09/02/2026 16:36:00;09/02/2026 16:46:00;10min;1;1;V;190.320,00;190.395,00;192.315,00;Sim;15,00;75,00;174;15,00;75,00;0,00;0,00;0,00;1h12min;-1.104,00 +WINJ26;10/02/2026 09:28:00;10/02/2026 09:30:00;2min;1;1;V;189.915,00;189.925,00;192.315,00;No;2,00;10,00;175;2,00;10,00;0,00;0,00;0,00;16h52min;-1.102,00 +WINJ26;10/02/2026 09:46:00;10/02/2026 09:48:00;2min;1;1;V;189.660,00;189.400,00;192.315,00;No;-52,00;-260,00;176;-52,00;-260,00;0,00;0,00;0,00;18min;-1.154,00 +WINJ26;10/02/2026 10:10:00;10/02/2026 10:12:00;2min;1;1;V;189.760,00;189.800,00;192.315,00;Sim;8,00;40,00;177;8,00;40,00;0,00;0,00;0,00;24min;-1.146,00 +WINJ26;10/02/2026 10:30:00;10/02/2026 10:32:00;2min;1;1;V;189.680,00;189.555,00;192.315,00;No;-25,00;-125,00;178;-25,00;-125,00;0,00;0,00;0,00;20min;-1.171,00 +WINJ26;10/02/2026 11:42:00;10/02/2026 11:44:00;2min;1;1;C;189.950,00;190.065,00;192.315,00;No;23,00;115,00;179;23,00;115,00;0,00;0,00;0,00;1h12min;-1.148,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 13:00:00;22min;1;1;V;190.815,00;190.860,00;192.315,00;Sim;9,00;45,00;180;9,00;45,00;0,00;0,00;0,00;56min;-1.139,00 +WINJ26;10/02/2026 15:12:00;10/02/2026 15:40:00;28min;1;1;C;190.045,00;189.580,00;192.315,00;No;-93,00;-465,00;181;-93,00;-465,00;0,00;0,00;0,00;2h34min;-1.232,00 +WINJ26;10/02/2026 16:12:00;10/02/2026 16:14:00;2min;1;1;V;189.630,00;189.605,00;192.315,00;No;-5,00;-25,00;182;-5,00;-25,00;0,00;0,00;0,00;1h;-1.237,00 +WINJ26;10/02/2026 16:32:00;10/02/2026 17:00:00;28min;1;1;V;189.975,00;189.610,00;192.315,00;Sim;-73,00;-365,00;183;-73,00;-365,00;0,00;0,00;0,00;20min;-1.310,00 +WINJ26;11/02/2026 09:00:00;11/02/2026 09:28:00;28min;1;1;V;191.860,00;190.595,00;192.315,00;Sim;-253,00;-1.265,00;184;-253,00;-1.265,00;0,00;0,00;0,00;16h28min;-1.563,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 09:58:00;28min;1;1;V;192.405,00;191.540,00;192.315,00;Sim;-173,00;-865,00;185;-173,00;-865,00;0,00;0,00;0,00;30min;-1.736,00 +WINJ26;11/02/2026 13:26:00;11/02/2026 13:54:00;28min;1;1;V;194.740,00;193.950,00;192.315,00;Sim;-158,00;-790,00;186;-158,00;-790,00;0,00;0,00;0,00;3h56min;-1.894,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.315,00;No;-16,00;-80,00;187;-16,00;-80,00;0,00;0,00;0,00;19h38min;-1.910,00 +WINJ26;12/02/2026 10:08:00;12/02/2026 10:10:00;2min;1;1;V;193.005,00;193.015,00;192.315,00;No;2,00;10,00;188;2,00;10,00;0,00;0,00;0,00;1h4min;-1.908,00 +WINJ26;12/02/2026 10:48:00;12/02/2026 10:50:00;2min;1;1;C;193.435,00;193.440,00;192.315,00;No;1,00;5,00;189;1,00;5,00;0,00;0,00;0,00;40min;-1.907,00 +WINJ26;12/02/2026 11:48:00;12/02/2026 12:00:00;12min;1;1;C;193.525,00;193.430,00;192.315,00;No;-19,00;-95,00;190;-19,00;-95,00;0,00;0,00;0,00;1h;-1.926,00 +WINJ26;12/02/2026 12:20:00;12/02/2026 12:22:00;2min;1;1;V;193.620,00;193.765,00;192.315,00;Sim;29,00;145,00;191;29,00;145,00;0,00;0,00;0,00;32min;-1.897,00 +WINJ26;12/02/2026 16:34:00;12/02/2026 16:36:00;2min;1;1;C;191.965,00;192.105,00;192.315,00;Sim;28,00;140,00;192;28,00;140,00;0,00;0,00;0,00;4h14min;-1.869,00 +WINJ26;12/02/2026 16:46:00;12/02/2026 16:48:00;2min;1;1;C;192.045,00;191.960,00;192.315,00;No;-17,00;-85,00;193;-17,00;-85,00;0,00;0,00;0,00;12min;-1.886,00 +WINJ26;13/02/2026 09:42:00;13/02/2026 09:46:00;4min;1;1;C;189.325,00;189.585,00;192.315,00;Sim;52,00;260,00;194;52,00;260,00;0,00;0,00;0,00;16h56min;-1.834,00 +WINJ26;13/02/2026 10:38:00;13/02/2026 10:40:00;2min;1;1;V;188.955,00;188.995,00;192.315,00;No;8,00;40,00;195;8,00;40,00;0,00;0,00;0,00;56min;-1.826,00 +WINJ26;13/02/2026 13:04:00;13/02/2026 13:06:00;2min;1;1;C;188.895,00;188.880,00;192.315,00;Sim;-3,00;-15,00;196;-3,00;-15,00;0,00;0,00;0,00;2h26min;-1.829,00 +WINJ26;13/02/2026 16:46:00;13/02/2026 16:48:00;2min;1;1;C;190.125,00;190.140,00;192.315,00;No;3,00;15,00;197;3,00;15,00;0,00;0,00;0,00;3h42min;-1.826,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.315,00;Sim;14,00;70,00;198;14,00;70,00;0,00;0,00;0,00;4d20h;-1.812,00 +WINJ26;18/02/2026 16:04:00;18/02/2026 16:06:00;2min;1;1;V;189.400,00;189.400,00;192.315,00;No;0;0;199;0;0;0,00;0,00;0,00;3h4min;-1.812,00 +WINJ26;18/02/2026 16:50:00;18/02/2026 16:52:00;2min;1;1;V;188.930,00;188.880,00;192.315,00;No;-10,00;-50,00;200;-10,00;-50,00;0,00;0,00;0,00;46min;-1.822,00 +WINJ26;19/02/2026 09:42:00;19/02/2026 09:44:00;2min;1;1;C;190.280,00;190.630,00;192.315,00;No;70,00;350,00;201;70,00;350,00;0,00;0,00;0,00;16h52min;-1.752,00 +WINJ26;19/02/2026 10:22:00;19/02/2026 10:28:00;6min;1;1;V;190.030,00;190.075,00;192.315,00;Sim;9,00;45,00;202;9,00;45,00;0,00;0,00;0,00;40min;-1.743,00 +WINJ26;19/02/2026 12:22:00;19/02/2026 12:50:00;28min;1;1;V;192.050,00;191.225,00;192.315,00;Sim;-165,00;-825,00;203;-165,00;-825,00;0,00;0,00;0,00;2h;-1.908,00 +WINJ26;19/02/2026 13:58:00;19/02/2026 14:00:00;2min;1;1;V;192.160,00;192.150,00;192.315,00;Sim;-2,00;-10,00;204;-2,00;-10,00;0,00;0,00;0,00;1h36min;-1.910,00 +WINJ26;19/02/2026 15:14:00;19/02/2026 15:16:00;2min;1;1;C;192.155,00;192.185,00;192.315,00;No;6,00;30,00;205;6,00;30,00;0,00;0,00;0,00;1h16min;-1.904,00 +WINJ26;19/02/2026 15:58:00;19/02/2026 16:00:00;2min;1;1;V;191.990,00;191.940,00;192.315,00;No;-10,00;-50,00;206;-10,00;-50,00;0,00;0,00;0,00;44min;-1.914,00 +WINJ26;20/02/2026 09:04:00;20/02/2026 09:32:00;28min;1;1;C;192.245,00;190.890,00;192.315,00;No;-271,00;-1.355,00;207;-271,00;-1.355,00;0,00;0,00;0,00;17h6min;-2.185,00 +WINJ26;20/02/2026 10:24:00;20/02/2026 10:26:00;2min;1;1;V;190.710,00;190.630,00;192.315,00;No;-16,00;-80,00;208;-16,00;-80,00;0,00;0,00;0,00;1h20min;-2.201,00 +WINJ26;20/02/2026 10:32:00;20/02/2026 10:34:00;2min;1;1;V;190.470,00;190.610,00;192.315,00;No;28,00;140,00;209;28,00;140,00;0,00;0,00;0,00;8min;-2.173,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:06:00;28min;1;1;V;191.810,00;190.995,00;192.315,00;Sim;-163,00;-815,00;210;-163,00;-815,00;0,00;0,00;0,00;1h6min;-2.336,00 +WINJ26;20/02/2026 12:38:00;20/02/2026 12:40:00;2min;1;1;C;192.050,00;192.040,00;192.315,00;Sim;-2,00;-10,00;211;-2,00;-10,00;0,00;0,00;0,00;1h;-2.338,00 +WINJ26;20/02/2026 13:12:00;20/02/2026 13:14:00;2min;1;1;C;192.175,00;192.110,00;192.315,00;No;-13,00;-65,00;212;-13,00;-65,00;0,00;0,00;0,00;34min;-2.351,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.315,00;Sim;35,00;175,00;213;35,00;175,00;0,00;0,00;0,00;1h22min;-2.316,00 +WINJ26;20/02/2026 15:36:00;20/02/2026 16:00:00;24min;1;1;V;192.960,00;192.815,00;192.315,00;Sim;-29,00;-145,00;214;-29,00;-145,00;0,00;0,00;0,00;1h2min;-2.345,00 +WINJ26;23/02/2026 10:54:00;23/02/2026 10:56:00;2min;1;1;V;192.715,00;192.700,00;192.315,00;No;-3,00;-15,00;215;-3,00;-15,00;0,00;0,00;0,00;2d19h;-2.348,00 +WINJ26;23/02/2026 11:32:00;23/02/2026 11:34:00;2min;1;1;C;193.415,00;193.755,00;192.315,00;No;68,00;340,00;216;68,00;340,00;0,00;0,00;0,00;38min;-2.280,00 +WINJ26;23/02/2026 12:04:00;23/02/2026 12:06:00;2min;1;1;V;193.950,00;194.250,00;192.315,00;Sim;60,00;300,00;217;60,00;300,00;0,00;0,00;0,00;32min;-2.220,00 +WINJ26;23/02/2026 14:36:00;23/02/2026 14:38:00;2min;1;1;V;192.175,00;192.235,00;192.315,00;No;12,00;60,00;218;12,00;60,00;0,00;0,00;0,00;2h32min;-2.208,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.315,00;Sim;6,00;30,00;219;6,00;30,00;0,00;0,00;0,00;58min;-2.202,00 +WINJ26;23/02/2026 15:48:00;23/02/2026 15:50:00;2min;1;1;C;192.810,00;192.860,00;192.315,00;Sim;10,00;50,00;220;10,00;50,00;0,00;0,00;0,00;14min;-2.192,00 +WINJ26;24/02/2026 12:34:00;24/02/2026 13:02:00;28min;1;1;V;194.740,00;194.520,00;192.315,00;Sim;-44,00;-220,00;221;-44,00;-220,00;0,00;0,00;0,00;20h46min;-2.236,00 +WINJ26;24/02/2026 13:34:00;24/02/2026 13:44:00;10min;1;1;V;194.955,00;195.030,00;192.315,00;Sim;15,00;75,00;222;15,00;75,00;0,00;0,00;0,00;1h;-2.221,00 +WINJ26;24/02/2026 15:36:00;24/02/2026 15:38:00;2min;1;1;V;194.955,00;194.955,00;192.315,00;No;0;0;223;0;0;0,00;0,00;0,00;2h2min;-2.221,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.315,00;No;9,00;45,00;224;9,00;45,00;0,00;0,00;0,00;52min;-2.212,00 +WINJ26;25/02/2026 13:38:00;25/02/2026 13:40:00;2min;1;1;C;194.605,00;194.605,00;192.315,00;Sim;0;0;225;0;0;0,00;0,00;0,00;21h10min;-2.212,00 +WINJ26;25/02/2026 15:22:00;25/02/2026 15:28:00;6min;1;1;C;194.895,00;194.900,00;192.315,00;No;1,00;5,00;226;1,00;5,00;0,00;0,00;0,00;1h44min;-2.211,00 +WINJ26;25/02/2026 16:16:00;25/02/2026 16:20:00;4min;1;1;C;194.015,00;194.200,00;192.315,00;Sim;37,00;185,00;227;37,00;185,00;0,00;0,00;0,00;54min;-2.174,00 +WINJ26;25/02/2026 16:58:00;25/02/2026 17:10:00;12min;1;1;V;194.040,00;194.055,00;192.315,00;No;3,00;15,00;228;3,00;15,00;0,00;0,00;0,00;42min;-2.171,00 +WINJ26;26/02/2026 09:20:00;26/02/2026 09:22:00;2min;1;1;V;194.245,00;194.220,00;192.315,00;Sim;-5,00;-25,00;229;-5,00;-25,00;0,00;0,00;0,00;16h22min;-2.176,00 +WINJ26;26/02/2026 10:16:00;26/02/2026 10:18:00;2min;1;1;V;194.510,00;194.640,00;192.315,00;Sim;26,00;130,00;230;26,00;130,00;0,00;0,00;0,00;56min;-2.150,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 12:38:00;8min;1;1;C;192.665,00;192.840,00;192.315,00;Sim;35,00;175,00;231;35,00;175,00;0,00;0,00;0,00;2h14min;-2.115,00 +WINJ26;26/02/2026 12:48:00;26/02/2026 13:16:00;28min;1;1;V;193.605,00;192.895,00;192.315,00;No;-142,00;-710,00;232;-142,00;-710,00;0,00;0,00;0,00;18min;-2.257,00 +WINJ26;26/02/2026 14:34:00;26/02/2026 14:36:00;2min;1;1;C;193.475,00;193.425,00;192.315,00;No;-10,00;-50,00;233;-10,00;-50,00;0,00;0,00;0,00;1h46min;-2.267,00 +WINJ26;26/02/2026 17:26:00;26/02/2026 17:28:00;2min;1;1;C;194.295,00;194.320,00;192.315,00;No;5,00;25,00;234;5,00;25,00;0,00;0,00;0,00;2h52min;-2.262,00 +WINJ26;27/02/2026 09:38:00;27/02/2026 09:42:00;4min;1;1;V;193.450,00;193.355,00;192.315,00;Sim;-19,00;-95,00;235;-19,00;-95,00;0,00;0,00;0,00;16h12min;-2.281,00 +WINJ26;27/02/2026 10:02:00;27/02/2026 10:14:00;12min;1;1;V;193.360,00;193.325,00;192.315,00;No;-7,00;-35,00;236;-7,00;-35,00;0,00;0,00;0,00;24min;-2.288,00 +WINJ26;27/02/2026 10:18:00;27/02/2026 10:20:00;2min;1;1;C;193.465,00;193.590,00;192.315,00;Sim;25,00;125,00;237;25,00;125,00;0,00;0,00;0,00;16min;-2.263,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.315,00;No;-5,00;-25,00;238;-5,00;-25,00;0,00;0,00;0,00;1h;-2.268,00 +WINJ26;27/02/2026 15:28:00;27/02/2026 15:30:00;2min;1;1;C;192.710,00;192.715,00;192.315,00;Sim;1,00;5,00;239;1,00;5,00;0,00;0,00;0,00;4h10min;-2.267,00 +WINJ26;02/03/2026 10:02:00;02/03/2026 10:08:00;6min;1;1;C;190.215,00;190.380,00;192.315,00;Sim;33,00;165,00;240;33,00;165,00;0,00;0,00;0,00;2d18h;-2.234,00 +WINJ26;02/03/2026 10:14:00;02/03/2026 10:42:00;28min;1;1;V;190.900,00;190.085,00;192.315,00;No;-163,00;-815,00;241;-163,00;-815,00;0,00;0,00;0,00;12min;-2.397,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.315,00;Sim;41,00;205,00;242;41,00;205,00;0,00;0,00;0,00;52min;-2.356,00 +WINJ26;02/03/2026 13:52:00;02/03/2026 13:58:00;6min;1;1;V;191.425,00;191.540,00;192.315,00;Sim;23,00;115,00;243;23,00;115,00;0,00;0,00;0,00;2h46min;-2.333,00 +WINJ26;02/03/2026 14:42:00;02/03/2026 14:44:00;2min;1;1;C;191.785,00;191.725,00;192.315,00;No;-12,00;-60,00;244;-12,00;-60,00;0,00;0,00;0,00;50min;-2.345,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:08:00;4min;1;1;V;191.885,00;191.895,00;192.315,00;Sim;2,00;10,00;245;2,00;10,00;0,00;0,00;0,00;22min;-2.343,00 +WINJ26;02/03/2026 15:28:00;02/03/2026 15:30:00;2min;1;1;C;192.030,00;192.075,00;192.315,00;No;9,00;45,00;246;9,00;45,00;0,00;0,00;0,00;24min;-2.334,00 +WINJ26;02/03/2026 17:32:00;02/03/2026 17:38:00;6min;1;1;C;192.240,00;192.310,00;192.315,00;No;14,00;70,00;247;14,00;70,00;0,00;0,00;0,00;2h4min;-2.320,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv new file mode 100644 index 0000000..6eae39a --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv @@ -0,0 +1,154 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:20:00;27/08/2025 09:10:00;14h50min;1;1;C;149.050,00;148.200,00;192.320,00;No;-170,00;-850,00;1;-170,00;-850,00;0,00;0,00;0,00; - ;-170,00 +WINJ26;28/08/2025 09:10:00;28/08/2025 09:15:00;5min;1;1;C;151.000,00;150.940,00;192.320,00;No;-12,00;-60,00;2;-12,00;-60,00;0,00;0,00;0,00;1d14h;-182,00 +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.320,00;No;-50,00;-250,00;3;-50,00;-250,00;0,00;0,00;0,00;11d23h;-232,00 +WINJ26;11/09/2025 09:35:00;11/09/2025 10:00:00;25min;1;1;C;153.500,00;153.500,00;192.320,00;No;0;0;4;0;0;0,00;0,00;0,00;2d;-232,00 +WINJ26;15/09/2025 17:10:00;15/09/2025 17:15:00;5min;1;1;C;154.130,00;154.080,00;192.320,00;No;-10,00;-50,00;5;-10,00;-50,00;0,00;0,00;0,00;4d7h;-242,00 +WINJ26;16/09/2025 10:40:00;16/09/2025 14:10:00;3h30min;1;1;C;155.000,00;154.120,00;192.320,00;No;-176,00;-880,00;6;-176,00;-880,00;0,00;0,00;0,00;17h30min;-418,00 +WINJ26;16/09/2025 15:50:00;18/09/2025 09:50:00;1d18h;1;1;V;155.900,00;154.450,00;192.320,00;Sim;-290,00;-1.450,00;7;-290,00;-1.450,00;0,00;0,00;0,00;5h10min;-708,00 +WINJ26;29/09/2025 13:35:00;29/09/2025 14:00:00;25min;1;1;V;156.650,00;156.400,00;192.320,00;Sim;-50,00;-250,00;8;-50,00;-250,00;0,00;0,00;0,00;12d21h;-758,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:20:00;5min;1;1;V;156.550,00;156.550,00;192.320,00;Sim;0;0;9;0;0;0,00;0,00;0,00;21h40min;-758,00 +WINJ26;01/10/2025 09:10:00;01/10/2025 09:15:00;5min;1;1;V;156.500,00;156.000,00;192.320,00;No;-100,00;-500,00;10;-100,00;-500,00;0,00;0,00;0,00;21h55min;-858,00 +WINJ26;13/10/2025 10:20:00;13/10/2025 10:25:00;5min;1;1;C;151.100,00;151.100,00;192.320,00;Sim;0;0;11;0;0;0,00;0,00;0,00;12d1h;-858,00 +WINJ26;14/10/2025 10:40:00;14/10/2025 11:15:00;35min;1;1;V;151.165,00;150.805,00;192.320,00;No;-72,00;-360,00;12;-72,00;-360,00;0,00;0,00;0,00;1d;-930,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 11:20:00;5min;1;1;C;151.200,00;151.050,00;192.320,00;No;-30,00;-150,00;13;-30,00;-150,00;0,00;0,00;0,00;1d;-960,00 +WINJ26;16/10/2025 13:55:00;16/10/2025 14:35:00;40min;1;1;C;151.280,00;151.250,00;192.320,00;No;-6,00;-30,00;14;-6,00;-30,00;0,00;0,00;0,00;1d2h;-966,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.320,00;No;-50,00;-250,00;15;-50,00;-250,00;0,00;0,00;0,00;4d19h;-1.016,00 +WINJ26;24/10/2025 09:05:00;24/10/2025 09:15:00;10min;1;1;C;154.690,00;154.700,00;192.320,00;No;2,00;10,00;16;2,00;10,00;0,00;0,00;0,00;2d23h;-1.014,00 +WINJ26;27/10/2025 09:10:00;27/10/2025 09:25:00;15min;1;1;C;156.000,00;156.050,00;192.320,00;No;10,00;50,00;17;10,00;50,00;0,00;0,00;0,00;3d;-1.004,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:20:00;1h5min;1;1;V;155.480,00;155.660,00;192.320,00;Sim;36,00;180,00;18;36,00;180,00;0,00;0,00;0,00;3h5min;-968,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.320,00;No;17,00;85,00;19;17,00;85,00;0,00;0,00;0,00;2d22h;-951,00 +WINJ26;31/10/2025 11:40:00;31/10/2025 13:30:00;1h50min;1;1;V;157.700,00;157.700,00;192.320,00;Sim;0;0;20;0;0;0,00;0,00;0,00;1d;-951,00 +WINJ26;03/11/2025 12:40:00;03/11/2025 16:10:00;3h30min;1;1;V;158.640,00;158.680,00;192.320,00;Sim;8,00;40,00;21;8,00;40,00;0,00;0,00;0,00;3d1h;-943,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.320,00;No;-4,00;-20,00;22;-4,00;-20,00;0,00;0,00;0,00;21h35min;-947,00 +WINJ26;06/11/2025 09:20:00;06/11/2025 15:25:00;6h5min;1;1;V;161.800,00;161.900,00;192.320,00;Sim;20,00;100,00;23;20,00;100,00;0,00;0,00;0,00;1d23h;-927,00 +WINJ26;12/11/2025 10:10:00;12/11/2025 10:15:00;5min;1;1;C;166.270,00;166.220,00;192.320,00;No;-10,00;-50,00;24;-10,00;-50,00;0,00;0,00;0,00;6d;-937,00 +WINJ26;14/11/2025 18:10:00;14/11/2025 18:20:00;10min;1;1;V;165.850,00;165.915,00;192.320,00;Sim;13,00;65,00;25;13,00;65,00;0,00;0,00;0,00;2d8h;-924,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.320,00;Sim;60,00;300,00;26;60,00;300,00;0,00;0,00;0,00;3d16h;-864,00 +WINJ26;18/11/2025 11:45:00;18/11/2025 13:15:00;1h30min;1;1;V;164.630,00;164.500,00;192.320,00;No;-26,00;-130,00;27;-26,00;-130,00;0,00;0,00;0,00;1h25min;-890,00 +WINJ26;21/11/2025 15:35:00;24/11/2025 10:35:00;2d19h;1;1;V;163.120,00;162.400,00;192.320,00;No;-144,00;-720,00;28;-144,00;-720,00;0,00;0,00;0,00;3d3h;-1.034,00 +WINJ26;26/11/2025 13:00:00;26/11/2025 16:35:00;3h35min;1;1;V;166.200,00;165.405,00;192.320,00;Sim;-159,00;-795,00;29;-159,00;-795,00;0,00;0,00;0,00;4d21h;-1.193,00 +WINJ26;27/11/2025 18:15:00;28/11/2025 10:05:00;15h50min;1;1;C;166.010,00;166.235,00;192.320,00;No;45,00;225,00;30;45,00;225,00;0,00;0,00;0,00;1d5h;-1.148,00 +WINJ26;04/12/2025 12:15:00;04/12/2025 17:15:00;5h;1;1;V;171.815,00;171.435,00;192.320,00;Sim;-76,00;-380,00;31;-76,00;-380,00;0,00;0,00;0,00;6d18h;-1.224,00 +WINJ26;05/12/2025 11:45:00;05/12/2025 11:50:00;5min;1;1;C;171.805,00;172.000,00;192.320,00;No;39,00;195,00;32;39,00;195,00;0,00;0,00;0,00;23h30min;-1.185,00 +WINJ26;08/12/2025 11:25:00;08/12/2025 11:45:00;20min;1;1;V;165.450,00;165.950,00;192.320,00;No;100,00;500,00;33;100,00;500,00;0,00;0,00;0,00;2d23h;-1.085,00 +WINJ26;08/12/2025 17:20:00;08/12/2025 17:45:00;25min;1;1;V;165.000,00;165.630,00;192.320,00;No;126,00;630,00;34;126,00;630,00;0,00;0,00;0,00;5h55min;-959,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.320,00;Sim;171,00;855,00;35;171,00;855,00;0,00;0,00;0,00;1d16h;-788,00 +WINJ26;10/12/2025 11:35:00;10/12/2025 11:45:00;10min;1;1;C;165.525,00;165.510,00;192.320,00;Sim;-3,00;-15,00;36;-3,00;-15,00;0,00;0,00;0,00;2h;-791,00 +WINJ26;10/12/2025 17:05:00;10/12/2025 17:10:00;5min;1;1;C;166.440,00;166.500,00;192.320,00;No;12,00;60,00;37;12,00;60,00;0,00;0,00;0,00;5h30min;-779,00 +WINJ26;12/12/2025 12:05:00;12/12/2025 12:15:00;10min;1;1;V;166.900,00;167.300,00;192.320,00;Sim;80,00;400,00;38;80,00;400,00;0,00;0,00;0,00;1d19h;-699,00 +WINJ26;15/12/2025 10:40:00;15/12/2025 13:45:00;3h5min;1;1;V;169.565,00;168.650,00;192.320,00;Sim;-183,00;-915,00;39;-183,00;-915,00;0,00;0,00;0,00;2d22h;-882,00 +WINJ26;16/12/2025 09:05:00;16/12/2025 09:10:00;5min;1;1;V;167.030,00;167.400,00;192.320,00;No;74,00;370,00;40;74,00;370,00;0,00;0,00;0,00;22h25min;-808,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:35:00;1h20min;1;1;C;164.810,00;163.000,00;192.320,00;Sim;-362,00;-1.810,00;41;-362,00;-1.810,00;0,00;0,00;0,00;1d;-1.170,00 +WINJ26;17/12/2025 18:05:00;17/12/2025 18:10:00;5min;1;1;C;163.845,00;163.900,00;192.320,00;Sim;11,00;55,00;42;11,00;55,00;0,00;0,00;0,00;8h50min;-1.159,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.320,00;No;7,00;35,00;43;7,00;35,00;0,00;0,00;0,00;23h;-1.152,00 +WINJ26;19/12/2025 09:50:00;19/12/2025 09:55:00;5min;1;1;C;164.625,00;164.480,00;192.320,00;No;-29,00;-145,00;44;-29,00;-145,00;0,00;0,00;0,00;16h45min;-1.181,00 +WINJ26;19/12/2025 14:00:00;19/12/2025 14:05:00;5min;1;1;C;165.495,00;165.510,00;192.320,00;No;3,00;15,00;45;3,00;15,00;0,00;0,00;0,00;4h10min;-1.178,00 +WINJ26;19/12/2025 14:25:00;19/12/2025 14:30:00;5min;1;1;V;165.175,00;165.360,00;192.320,00;No;37,00;185,00;46;37,00;185,00;0,00;0,00;0,00;25min;-1.141,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.320,00;Sim;2,00;10,00;47;2,00;10,00;0,00;0,00;0,00;3d18h;-1.139,00 +WINJ26;23/12/2025 16:40:00;23/12/2025 16:45:00;5min;1;1;C;166.540,00;166.470,00;192.320,00;No;-14,00;-70,00;48;-14,00;-70,00;0,00;0,00;0,00;7h35min;-1.153,00 +WINJ26;26/12/2025 15:15:00;26/12/2025 15:20:00;5min;1;1;V;166.480,00;166.500,00;192.320,00;Sim;4,00;20,00;49;4,00;20,00;0,00;0,00;0,00;2d22h;-1.149,00 +WINJ26;29/12/2025 17:55:00;29/12/2025 18:00:00;5min;1;1;C;166.220,00;166.210,00;192.320,00;Sim;-2,00;-10,00;50;-2,00;-10,00;0,00;0,00;0,00;3d2h;-1.151,00 +WINJ26;30/12/2025 10:05:00;30/12/2025 10:45:00;40min;1;1;V;167.570,00;167.540,00;192.320,00;Sim;-6,00;-30,00;51;-6,00;-30,00;0,00;0,00;0,00;16h10min;-1.157,00 +WINJ26;30/12/2025 11:10:00;30/12/2025 11:15:00;5min;1;1;C;167.635,00;167.420,00;192.320,00;No;-43,00;-215,00;52;-43,00;-215,00;0,00;0,00;0,00;1h5min;-1.200,00 +WINJ26;30/12/2025 15:25:00;30/12/2025 15:30:00;5min;1;1;C;167.770,00;167.815,00;192.320,00;No;9,00;45,00;53;9,00;45,00;0,00;0,00;0,00;4h15min;-1.191,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.320,00;No;-65,00;-325,00;54;-65,00;-325,00;0,00;0,00;0,00;2d17h;-1.256,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.320,00;Sim;-9,00;-45,00;55;-9,00;-45,00;0,00;0,00;0,00;1h5min;-1.265,00 +WINJ26;05/01/2026 09:05:00;05/01/2026 09:10:00;5min;1;1;C;166.535,00;166.395,00;192.320,00;Sim;-28,00;-140,00;56;-28,00;-140,00;0,00;0,00;0,00;2d22h;-1.293,00 +WINJ26;06/01/2026 11:40:00;06/01/2026 11:45:00;5min;1;1;C;169.420,00;169.430,00;192.320,00;No;2,00;10,00;57;2,00;10,00;0,00;0,00;0,00;1d2h;-1.291,00 +WINJ26;06/01/2026 14:30:00;06/01/2026 14:35:00;5min;1;1;C;169.470,00;169.500,00;192.320,00;No;6,00;30,00;58;6,00;30,00;0,00;0,00;0,00;2h50min;-1.285,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:50:00;1h10min;1;1;C;168.780,00;167.855,00;192.320,00;Sim;-185,00;-925,00;59;-185,00;-925,00;0,00;0,00;0,00;20h10min;-1.470,00 +WINJ26;07/01/2026 12:35:00;07/01/2026 12:50:00;15min;1;1;C;167.595,00;167.725,00;192.320,00;Sim;26,00;130,00;60;26,00;130,00;0,00;0,00;0,00;1h55min;-1.444,00 +WINJ26;07/01/2026 13:40:00;07/01/2026 13:45:00;5min;1;1;V;167.740,00;167.665,00;192.320,00;No;-15,00;-75,00;61;-15,00;-75,00;0,00;0,00;0,00;1h5min;-1.459,00 +WINJ26;07/01/2026 17:00:00;07/01/2026 17:05:00;5min;1;1;C;167.690,00;167.725,00;192.320,00;No;7,00;35,00;62;7,00;35,00;0,00;0,00;0,00;3h20min;-1.452,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:35:00;5min;1;1;V;167.410,00;167.460,00;192.320,00;No;10,00;50,00;63;10,00;50,00;0,00;0,00;0,00;16h30min;-1.442,00 +WINJ26;08/01/2026 10:25:00;08/01/2026 10:30:00;5min;1;1;C;167.580,00;167.945,00;192.320,00;Sim;73,00;365,00;64;73,00;365,00;0,00;0,00;0,00;55min;-1.369,00 +WINJ26;08/01/2026 13:30:00;08/01/2026 13:35:00;5min;1;1;C;167.950,00;168.030,00;192.320,00;No;16,00;80,00;65;16,00;80,00;0,00;0,00;0,00;3h5min;-1.353,00 +WINJ26;08/01/2026 14:35:00;08/01/2026 15:30:00;55min;1;1;C;167.970,00;167.920,00;192.320,00;No;-10,00;-50,00;66;-10,00;-50,00;0,00;0,00;0,00;1h5min;-1.363,00 +WINJ26;08/01/2026 17:35:00;08/01/2026 17:40:00;5min;1;1;C;168.130,00;168.170,00;192.320,00;No;8,00;40,00;67;8,00;40,00;0,00;0,00;0,00;3h;-1.355,00 +WINJ26;12/01/2026 09:45:00;12/01/2026 09:50:00;5min;1;1;V;168.560,00;168.590,00;192.320,00;Sim;6,00;30,00;68;6,00;30,00;0,00;0,00;0,00;3d16h;-1.349,00 +WINJ26;13/01/2026 09:10:00;13/01/2026 09:15:00;5min;1;1;V;168.290,00;168.430,00;192.320,00;No;28,00;140,00;69;28,00;140,00;0,00;0,00;0,00;23h25min;-1.321,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.320,00;Sim;20,00;100,00;70;20,00;100,00;0,00;0,00;0,00;1h25min;-1.301,00 +WINJ26;13/01/2026 10:50:00;13/01/2026 10:55:00;5min;1;1;V;167.490,00;167.700,00;192.320,00;No;42,00;210,00;71;42,00;210,00;0,00;0,00;0,00;15min;-1.259,00 +WINJ26;13/01/2026 14:00:00;13/01/2026 14:40:00;40min;1;1;V;167.260,00;167.175,00;192.320,00;No;-17,00;-85,00;72;-17,00;-85,00;0,00;0,00;0,00;3h10min;-1.276,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 11:25:00;10min;1;1;C;167.705,00;168.105,00;192.320,00;Sim;80,00;400,00;73;80,00;400,00;0,00;0,00;0,00;21h15min;-1.196,00 +WINJ26;14/01/2026 17:05:00;14/01/2026 17:10:00;5min;1;1;V;169.685,00;169.760,00;192.320,00;Sim;15,00;75,00;74;15,00;75,00;0,00;0,00;0,00;5h50min;-1.181,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.320,00;Sim;0;0;75;0;0;0,00;0,00;0,00;16h;-1.181,00 +WINJ26;15/01/2026 12:30:00;15/01/2026 13:10:00;40min;1;1;V;170.415,00;170.380,00;192.320,00;Sim;-7,00;-35,00;76;-7,00;-35,00;0,00;0,00;0,00;3h25min;-1.188,00 +WINJ26;15/01/2026 14:25:00;15/01/2026 15:35:00;1h10min;1;1;V;171.180,00;170.715,00;192.320,00;Sim;-93,00;-465,00;77;-93,00;-465,00;0,00;0,00;0,00;1h55min;-1.281,00 +WINJ26;16/01/2026 11:50:00;16/01/2026 13:00:00;1h10min;1;1;C;169.850,00;169.280,00;192.320,00;No;-114,00;-570,00;78;-114,00;-570,00;0,00;0,00;0,00;21h25min;-1.395,00 +WINJ26;19/01/2026 09:05:00;19/01/2026 09:10:00;5min;1;1;V;169.120,00;168.975,00;192.320,00;No;-29,00;-145,00;79;-29,00;-145,00;0,00;0,00;0,00;2d21h;-1.424,00 +WINJ26;19/01/2026 09:55:00;19/01/2026 10:25:00;30min;1;1;V;169.355,00;169.515,00;192.320,00;Sim;32,00;160,00;80;32,00;160,00;0,00;0,00;0,00;50min;-1.392,00 +WINJ26;19/01/2026 14:00:00;19/01/2026 14:05:00;5min;1;1;C;169.845,00;169.895,00;192.320,00;Sim;10,00;50,00;81;10,00;50,00;0,00;0,00;0,00;4h5min;-1.382,00 +WINJ26;19/01/2026 16:25:00;19/01/2026 16:35:00;10min;1;1;V;169.650,00;169.655,00;192.320,00;Sim;1,00;5,00;82;1,00;5,00;0,00;0,00;0,00;2h25min;-1.381,00 +WINJ26;19/01/2026 17:05:00;19/01/2026 17:15:00;10min;1;1;C;169.650,00;169.655,00;192.320,00;Sim;1,00;5,00;83;1,00;5,00;0,00;0,00;0,00;40min;-1.380,00 +WINJ26;19/01/2026 17:25:00;20/01/2026 09:05:00;15h40min;1;1;V;169.245,00;169.640,00;192.320,00;No;79,00;395,00;84;79,00;395,00;0,00;0,00;0,00;20min;-1.301,00 +WINJ26;20/01/2026 10:30:00;20/01/2026 10:35:00;5min;1;1;V;168.385,00;168.895,00;192.320,00;No;102,00;510,00;85;102,00;510,00;0,00;0,00;0,00;17h5min;-1.199,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:25:00;40min;1;1;V;171.100,00;171.135,00;192.320,00;Sim;7,00;35,00;86;7,00;35,00;0,00;0,00;0,00;3h15min;-1.192,00 +WINJ26;20/01/2026 17:05:00;20/01/2026 17:15:00;10min;1;1;V;170.755,00;170.780,00;192.320,00;No;5,00;25,00;87;5,00;25,00;0,00;0,00;0,00;3h20min;-1.187,00 +WINJ26;21/01/2026 09:05:00;21/01/2026 09:10:00;5min;1;1;C;171.985,00;172.225,00;192.320,00;No;48,00;240,00;88;48,00;240,00;0,00;0,00;0,00;16h;-1.139,00 +WINJ26;21/01/2026 12:25:00;21/01/2026 13:35:00;1h10min;1;1;V;175.100,00;174.455,00;192.320,00;Sim;-129,00;-645,00;89;-129,00;-645,00;0,00;0,00;0,00;3h20min;-1.268,00 +WINJ26;22/01/2026 17:55:00;22/01/2026 18:00:00;5min;1;1;V;180.810,00;180.930,00;192.320,00;Sim;24,00;120,00;90;24,00;120,00;0,00;0,00;0,00;1d5h;-1.244,00 +WINJ26;26/01/2026 11:50:00;26/01/2026 11:55:00;5min;1;1;V;183.330,00;183.435,00;192.320,00;Sim;21,00;105,00;91;21,00;105,00;0,00;0,00;0,00;3d17h;-1.223,00 +WINJ26;26/01/2026 12:15:00;26/01/2026 12:20:00;5min;1;1;V;183.345,00;183.530,00;192.320,00;Sim;37,00;185,00;92;37,00;185,00;0,00;0,00;0,00;25min;-1.186,00 +WINJ26;26/01/2026 16:05:00;26/01/2026 16:10:00;5min;1;1;V;183.170,00;183.330,00;192.320,00;No;32,00;160,00;93;32,00;160,00;0,00;0,00;0,00;3h50min;-1.154,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:30:00;5min;1;1;C;183.140,00;183.430,00;192.320,00;No;58,00;290,00;94;58,00;290,00;0,00;0,00;0,00;20min;-1.096,00 +WINJ26;27/01/2026 09:05:00;27/01/2026 09:10:00;5min;1;1;C;185.380,00;185.260,00;192.320,00;No;-24,00;-120,00;95;-24,00;-120,00;0,00;0,00;0,00;16h40min;-1.120,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 11:30:00;1h10min;1;1;V;187.470,00;185.930,00;192.320,00;Sim;-308,00;-1.540,00;96;-308,00;-1.540,00;0,00;0,00;0,00;1h15min;-1.428,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.320,00;No;-22,00;-110,00;97;-22,00;-110,00;0,00;0,00;0,00;5h;-1.450,00 +WINJ26;27/01/2026 17:40:00;27/01/2026 17:50:00;10min;1;1;C;187.280,00;187.165,00;192.320,00;Sim;-23,00;-115,00;98;-23,00;-115,00;0,00;0,00;0,00;2h20min;-1.473,00 +WINJ26;28/01/2026 11:10:00;28/01/2026 12:10:00;1h;1;1;V;189.125,00;188.900,00;192.320,00;Sim;-45,00;-225,00;99;-45,00;-225,00;0,00;0,00;0,00;17h30min;-1.518,00 +WINJ26;28/01/2026 13:15:00;28/01/2026 13:20:00;5min;1;1;V;188.820,00;188.700,00;192.320,00;No;-24,00;-120,00;100;-24,00;-120,00;0,00;0,00;0,00;2h5min;-1.542,00 +WINJ26;28/01/2026 13:55:00;28/01/2026 14:00:00;5min;1;1;V;188.675,00;188.620,00;192.320,00;No;-11,00;-55,00;101;-11,00;-55,00;0,00;0,00;0,00;40min;-1.553,00 +WINJ26;28/01/2026 15:00:00;28/01/2026 15:05:00;5min;1;1;V;188.550,00;188.575,00;192.320,00;No;5,00;25,00;102;5,00;25,00;0,00;0,00;0,00;1h5min;-1.548,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.320,00;Sim;28,00;140,00;103;28,00;140,00;0,00;0,00;0,00;18h30min;-1.520,00 +WINJ26;29/01/2026 11:20:00;29/01/2026 11:45:00;25min;1;1;C;190.960,00;191.235,00;192.320,00;No;55,00;275,00;104;55,00;275,00;0,00;0,00;0,00;1h50min;-1.465,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 14:10:00;55min;1;1;C;187.605,00;187.775,00;192.320,00;Sim;34,00;170,00;105;34,00;170,00;0,00;0,00;0,00;1h55min;-1.431,00 +WINJ26;30/01/2026 11:40:00;30/01/2026 12:00:00;20min;1;1;V;187.670,00;187.400,00;192.320,00;No;-54,00;-270,00;106;-54,00;-270,00;0,00;0,00;0,00;22h25min;-1.485,00 +WINJ26;30/01/2026 12:10:00;30/01/2026 12:15:00;5min;1;1;C;187.685,00;187.825,00;192.320,00;No;28,00;140,00;107;28,00;140,00;0,00;0,00;0,00;30min;-1.457,00 +WINJ26;02/02/2026 12:30:00;02/02/2026 12:45:00;15min;1;1;V;186.685,00;186.680,00;192.320,00;No;-1,00;-5,00;108;-1,00;-5,00;0,00;0,00;0,00;3d;-1.458,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 12:15:00;15min;1;1;V;190.975,00;191.565,00;192.320,00;Sim;118,00;590,00;109;118,00;590,00;0,00;0,00;0,00;23h30min;-1.340,00 +WINJ26;03/02/2026 13:25:00;03/02/2026 13:40:00;15min;1;1;C;191.045,00;191.070,00;192.320,00;No;5,00;25,00;110;5,00;25,00;0,00;0,00;0,00;1h25min;-1.335,00 +WINJ26;04/02/2026 12:10:00;04/02/2026 13:20:00;1h10min;1;1;C;187.700,00;186.480,00;192.320,00;Sim;-244,00;-1.220,00;111;-244,00;-1.220,00;0,00;0,00;0,00;22h45min;-1.579,00 +WINJ26;04/02/2026 14:15:00;04/02/2026 15:25:00;1h10min;1;1;C;186.330,00;185.475,00;192.320,00;Sim;-171,00;-855,00;112;-171,00;-855,00;0,00;0,00;0,00;2h5min;-1.750,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.320,00;No;36,00;180,00;113;36,00;180,00;0,00;0,00;0,00;19h25min;-1.714,00 +WINJ26;05/02/2026 14:20:00;05/02/2026 14:25:00;5min;1;1;C;187.260,00;187.545,00;192.320,00;No;57,00;285,00;114;57,00;285,00;0,00;0,00;0,00;4h40min;-1.657,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 18:10:00;1h10min;1;1;C;187.375,00;186.610,00;192.320,00;No;-153,00;-765,00;115;-153,00;-765,00;0,00;0,00;0,00;2h40min;-1.810,00 +WINJ26;06/02/2026 14:45:00;06/02/2026 14:50:00;5min;1;1;C;186.970,00;187.010,00;192.320,00;Sim;8,00;40,00;116;8,00;40,00;0,00;0,00;0,00;21h45min;-1.802,00 +WINJ26;06/02/2026 16:40:00;06/02/2026 16:45:00;5min;1;1;V;186.435,00;186.465,00;192.320,00;Sim;6,00;30,00;117;6,00;30,00;0,00;0,00;0,00;1h55min;-1.796,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:05:00;5min;1;1;C;187.805,00;187.560,00;192.320,00;No;-49,00;-245,00;118;-49,00;-245,00;0,00;0,00;0,00;2d16h;-1.845,00 +WINJ26;09/02/2026 10:45:00;09/02/2026 10:50:00;5min;1;1;C;187.740,00;187.730,00;192.320,00;Sim;-2,00;-10,00;119;-2,00;-10,00;0,00;0,00;0,00;1h45min;-1.847,00 +WINJ26;09/02/2026 14:55:00;09/02/2026 16:05:00;1h10min;1;1;V;190.135,00;189.400,00;192.320,00;Sim;-147,00;-735,00;120;-147,00;-735,00;0,00;0,00;0,00;4h10min;-1.994,00 +WINJ26;09/02/2026 17:20:00;09/02/2026 18:20:00;1h;1;1;V;190.475,00;190.445,00;192.320,00;Sim;-6,00;-30,00;121;-6,00;-30,00;0,00;0,00;0,00;2h25min;-2.000,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.320,00;No;41,00;205,00;122;41,00;205,00;0,00;0,00;0,00;22h50min;-1.959,00 +WINJ26;11/02/2026 09:05:00;11/02/2026 09:10:00;5min;1;1;C;191.960,00;191.905,00;192.320,00;No;-11,00;-55,00;123;-11,00;-55,00;0,00;0,00;0,00;16h55min;-1.970,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:05:00;35min;1;1;V;194.340,00;194.525,00;192.320,00;Sim;37,00;185,00;124;37,00;185,00;0,00;0,00;0,00;5h25min;-1.933,00 +WINJ26;12/02/2026 10:45:00;12/02/2026 10:55:00;10min;1;1;V;192.915,00;193.210,00;192.320,00;No;59,00;295,00;125;59,00;295,00;0,00;0,00;0,00;20h15min;-1.874,00 +WINJ26;12/02/2026 12:00:00;12/02/2026 12:05:00;5min;1;1;C;193.430,00;193.655,00;192.320,00;No;45,00;225,00;126;45,00;225,00;0,00;0,00;0,00;1h15min;-1.829,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.320,00;Sim;54,00;270,00;127;54,00;270,00;0,00;0,00;0,00;3h45min;-1.775,00 +WINJ26;12/02/2026 16:30:00;12/02/2026 16:45:00;15min;1;1;V;191.855,00;191.710,00;192.320,00;No;-29,00;-145,00;128;-29,00;-145,00;0,00;0,00;0,00;45min;-1.804,00 +WINJ26;12/02/2026 17:40:00;12/02/2026 17:45:00;5min;1;1;C;192.230,00;192.210,00;192.320,00;No;-4,00;-20,00;129;-4,00;-20,00;0,00;0,00;0,00;1h10min;-1.808,00 +WINJ26;13/02/2026 10:25:00;13/02/2026 11:35:00;1h10min;1;1;C;189.085,00;188.415,00;192.320,00;Sim;-134,00;-670,00;130;-134,00;-670,00;0,00;0,00;0,00;16h45min;-1.942,00 +WINJ26;13/02/2026 16:35:00;13/02/2026 16:40:00;5min;1;1;C;190.220,00;190.075,00;192.320,00;No;-29,00;-145,00;131;-29,00;-145,00;0,00;0,00;0,00;6h10min;-1.971,00 +WINJ26;18/02/2026 13:35:00;18/02/2026 14:20:00;45min;1;1;C;190.450,00;190.220,00;192.320,00;No;-46,00;-230,00;132;-46,00;-230,00;0,00;0,00;0,00;4d21h;-2.017,00 +WINJ26;19/02/2026 10:20:00;19/02/2026 10:35:00;15min;1;1;C;190.265,00;190.330,00;192.320,00;Sim;13,00;65,00;133;13,00;65,00;0,00;0,00;0,00;20h45min;-2.004,00 +WINJ26;19/02/2026 15:15:00;19/02/2026 15:20:00;5min;1;1;C;192.230,00;192.150,00;192.320,00;No;-16,00;-80,00;134;-16,00;-80,00;0,00;0,00;0,00;4h55min;-2.020,00 +WINJ26;20/02/2026 10:55:00;20/02/2026 11:20:00;25min;1;1;C;190.655,00;190.745,00;192.320,00;Sim;18,00;90,00;135;18,00;90,00;0,00;0,00;0,00;19h40min;-2.002,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.320,00;No;48,00;240,00;136;48,00;240,00;0,00;0,00;0,00;2d23h;-1.954,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.320,00;Sim;67,00;335,00;137;67,00;335,00;0,00;0,00;0,00;1d23h;-1.887,00 +WINJ26;25/02/2026 13:30:00;25/02/2026 13:35:00;5min;1;1;V;194.570,00;194.580,00;192.320,00;No;2,00;10,00;138;2,00;10,00;0,00;0,00;0,00;4h;-1.885,00 +WINJ26;26/02/2026 09:10:00;26/02/2026 09:15:00;5min;1;1;C;194.385,00;194.495,00;192.320,00;No;22,00;110,00;139;22,00;110,00;0,00;0,00;0,00;19h40min;-1.863,00 +WINJ26;26/02/2026 09:35:00;26/02/2026 09:40:00;5min;1;1;V;194.040,00;193.975,00;192.320,00;No;-13,00;-65,00;140;-13,00;-65,00;0,00;0,00;0,00;25min;-1.876,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.320,00;Sim;11,00;55,00;141;11,00;55,00;0,00;0,00;0,00;8h20min;-1.865,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 10:00:00;1h;1;1;C;194.155,00;193.615,00;192.320,00;Sim;-108,00;-540,00;142;-108,00;-540,00;0,00;0,00;0,00;15h5min;-1.973,00 +WINJ26;27/02/2026 11:20:00;27/02/2026 11:25:00;5min;1;1;V;193.100,00;193.015,00;192.320,00;No;-17,00;-85,00;143;-17,00;-85,00;0,00;0,00;0,00;2h20min;-1.990,00 +WINJ26;27/02/2026 15:45:00;27/02/2026 15:50:00;5min;1;1;V;192.620,00;192.670,00;192.320,00;No;10,00;50,00;144;10,00;50,00;0,00;0,00;0,00;4h25min;-1.980,00 +WINJ26;27/02/2026 16:10:00;27/02/2026 16:15:00;5min;1;1;V;192.620,00;192.660,00;192.320,00;No;8,00;40,00;145;8,00;40,00;0,00;0,00;0,00;25min;-1.972,00 +WINJ26;27/02/2026 17:20:00;27/02/2026 17:25:00;5min;1;1;C;192.075,00;192.145,00;192.320,00;Sim;14,00;70,00;146;14,00;70,00;0,00;0,00;0,00;1h10min;-1.958,00 +WINJ26;27/02/2026 17:40:00;27/02/2026 17:45:00;5min;1;1;V;192.090,00;192.065,00;192.320,00;No;-5,00;-25,00;147;-5,00;-25,00;0,00;0,00;0,00;20min;-1.963,00 +WINJ26;02/03/2026 10:45:00;02/03/2026 10:50:00;5min;1;1;V;190.155,00;190.680,00;192.320,00;No;105,00;525,00;148;105,00;525,00;0,00;0,00;0,00;2d17h;-1.858,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv new file mode 100644 index 0000000..0c3c71e --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv @@ -0,0 +1,73 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;28/08/2025 09:00:00;28/08/2025 09:15:00;15min;1;1;C;151.000,00;150.940,00;192.310,00;No;-12,00;-60,00;1;-12,00;-60,00;0,00;0,00;0,00; - ;-12,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.310,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;12d;-52,00 +WINJ26;16/09/2025 10:30:00;16/09/2025 14:00:00;3h30min;1;1;C;155.000,00;154.120,00;192.310,00;No;-176,00;-880,00;3;-176,00;-880,00;0,00;0,00;0,00;7d1h;-228,00 +WINJ26;16/09/2025 15:45:00;18/09/2025 11:45:00;1d20h;1;1;V;155.790,00;154.450,00;192.310,00;Sim;-268,00;-1.340,00;4;-268,00;-1.340,00;0,00;0,00;0,00;5h15min;-496,00 +WINJ26;22/09/2025 14:45:00;22/09/2025 15:30:00;45min;1;1;C;155.650,00;155.640,00;192.310,00;No;-2,00;-10,00;5;-2,00;-10,00;0,00;0,00;0,00;5d23h;-498,00 +WINJ26;01/10/2025 12:00:00;01/10/2025 12:15:00;15min;1;1;V;155.450,00;155.510,00;192.310,00;Sim;12,00;60,00;6;12,00;60,00;0,00;0,00;0,00;8d21h;-486,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 11:30:00;1h15min;1;1;C;151.100,00;151.130,00;192.310,00;Sim;6,00;30,00;7;6,00;30,00;0,00;0,00;0,00;11d22h;-480,00 +WINJ26;14/10/2025 10:30:00;14/10/2025 11:15:00;45min;1;1;V;151.165,00;150.805,00;192.310,00;No;-72,00;-360,00;8;-72,00;-360,00;0,00;0,00;0,00;1d;-552,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 13:00:00;1h45min;1;1;C;151.200,00;151.200,00;192.310,00;No;0;0;9;0;0;0,00;0,00;0,00;1d;-552,00 +WINJ26;16/10/2025 14:30:00;17/10/2025 09:15:00;18h45min;1;1;C;151.250,00;151.210,00;192.310,00;No;-8,00;-40,00;10;-8,00;-40,00;0,00;0,00;0,00;1d3h;-560,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 11:15:00;1h45min;1;1;C;153.200,00;153.200,00;192.310,00;No;0;0;11;0;0;0,00;0,00;0,00;4d19h;-560,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.310,00;No;17,00;85,00;12;17,00;85,00;0,00;0,00;0,00;9d1h;-543,00 +WINJ26;31/10/2025 11:30:00;31/10/2025 13:30:00;2h;1;1;V;157.700,00;157.700,00;192.310,00;Sim;0;0;13;0;0;0,00;0,00;0,00;1d;-543,00 +WINJ26;03/11/2025 12:30:00;04/11/2025 10:00:00;21h30min;1;1;V;158.430,00;158.680,00;192.310,00;Sim;50,00;250,00;14;50,00;250,00;0,00;0,00;0,00;3d1h;-493,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 11:00:00;30min;1;1;C;164.740,00;164.500,00;192.310,00;No;-48,00;-240,00;15;-48,00;-240,00;0,00;0,00;0,00;14d22h;-541,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.310,00;Sim;26,00;130,00;16;26,00;130,00;0,00;0,00;0,00;9d;-515,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 13:00:00;1h;1;1;V;166.500,00;166.300,00;192.310,00;Sim;-40,00;-200,00;17;-40,00;-200,00;0,00;0,00;0,00;1d;-555,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.310,00;Sim;147,00;735,00;18;147,00;735,00;0,00;0,00;0,00;6d23h;-408,00 +WINJ26;05/12/2025 13:15:00;05/12/2025 17:00:00;3h45min;1;1;C;170.450,00;165.730,00;192.310,00;No;-944,00;-4.720,00;19;-944,00;-4.720,00;0,00;0,00;0,00;1h45min;-1.352,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 15:30:00;6h15min;1;1;C;166.300,00;165.630,00;192.310,00;Sim;-134,00;-670,00;20;-134,00;-670,00;0,00;0,00;0,00;2d20h;-1.486,00 +WINJ26;08/12/2025 17:15:00;08/12/2025 17:45:00;30min;1;1;V;165.000,00;165.630,00;192.310,00;No;126,00;630,00;21;126,00;630,00;0,00;0,00;0,00;8h;-1.360,00 +WINJ26;10/12/2025 17:15:00;10/12/2025 17:30:00;15min;1;1;C;166.605,00;166.200,00;192.310,00;No;-81,00;-405,00;22;-81,00;-405,00;0,00;0,00;0,00;2d;-1.441,00 +WINJ26;11/12/2025 11:15:00;11/12/2025 11:45:00;30min;1;1;C;165.580,00;166.000,00;192.310,00;Sim;84,00;420,00;23;84,00;420,00;0,00;0,00;0,00;18h;-1.357,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.310,00;Sim;120,00;600,00;24;120,00;600,00;0,00;0,00;0,00;1d1h;-1.237,00 +WINJ26;16/12/2025 09:15:00;16/12/2025 09:30:00;15min;1;1;V;166.840,00;166.960,00;192.310,00;Sim;24,00;120,00;25;24,00;120,00;0,00;0,00;0,00;3d21h;-1.213,00 +WINJ26;17/12/2025 18:00:00;18/12/2025 09:15:00;15h15min;1;1;V;163.555,00;163.850,00;192.310,00;No;59,00;295,00;26;59,00;295,00;0,00;0,00;0,00;1d8h;-1.154,00 +WINJ26;18/12/2025 14:45:00;18/12/2025 15:00:00;15min;1;1;C;164.745,00;164.735,00;192.310,00;Sim;-2,00;-10,00;27;-2,00;-10,00;0,00;0,00;0,00;20h45min;-1.156,00 +WINJ26;22/12/2025 09:15:00;22/12/2025 09:30:00;15min;1;1;V;164.980,00;165.050,00;192.310,00;Sim;14,00;70,00;28;14,00;70,00;0,00;0,00;0,00;3d18h;-1.142,00 +WINJ26;23/12/2025 09:15:00;23/12/2025 09:30:00;15min;1;1;C;164.800,00;164.900,00;192.310,00;No;20,00;100,00;29;20,00;100,00;0,00;0,00;0,00;1d;-1.122,00 +WINJ26;23/12/2025 15:15:00;26/12/2025 09:15:00;2d18h;1;1;V;165.980,00;166.230,00;192.310,00;Sim;50,00;250,00;30;50,00;250,00;0,00;0,00;0,00;6h;-1.072,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.310,00;Sim;60,00;300,00;31;60,00;300,00;0,00;0,00;0,00;5d18h;-1.012,00 +WINJ26;29/12/2025 17:45:00;30/12/2025 11:45:00;18h;1;1;V;167.450,00;166.070,00;192.310,00;No;-276,00;-1.380,00;32;-276,00;-1.380,00;0,00;0,00;0,00;8h15min;-1.288,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.310,00;No;-21,00;-105,00;33;-21,00;-105,00;0,00;0,00;0,00;3d15h;-1.309,00 +WINJ26;02/01/2026 16:15:00;02/01/2026 16:30:00;15min;1;1;C;166.245,00;166.230,00;192.310,00;Sim;-3,00;-15,00;34;-3,00;-15,00;0,00;0,00;0,00;7h;-1.312,00 +WINJ26;05/01/2026 12:15:00;05/01/2026 12:30:00;15min;1;1;C;166.525,00;166.940,00;192.310,00;No;83,00;415,00;35;83,00;415,00;0,00;0,00;0,00;2d20h;-1.229,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 17:00:00;3h30min;1;1;C;167.830,00;167.690,00;192.310,00;No;-28,00;-140,00;36;-28,00;-140,00;0,00;0,00;0,00;2d1h;-1.257,00 +WINJ26;08/01/2026 11:00:00;08/01/2026 11:15:00;15min;1;1;V;167.550,00;167.590,00;192.310,00;Sim;8,00;40,00;37;8,00;40,00;0,00;0,00;0,00;21h30min;-1.249,00 +WINJ26;09/01/2026 10:00:00;09/01/2026 10:15:00;15min;1;1;C;168.245,00;168.110,00;192.310,00;No;-27,00;-135,00;38;-27,00;-135,00;0,00;0,00;0,00;23h;-1.276,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.310,00;No;-87,00;-435,00;39;-87,00;-435,00;0,00;0,00;0,00;2d23h;-1.363,00 +WINJ26;12/01/2026 14:00:00;12/01/2026 14:15:00;15min;1;1;V;168.595,00;168.540,00;192.310,00;Sim;-11,00;-55,00;40;-11,00;-55,00;0,00;0,00;0,00;4h45min;-1.374,00 +WINJ26;13/01/2026 10:45:00;13/01/2026 14:15:00;3h30min;1;1;C;167.910,00;167.355,00;192.310,00;Sim;-111,00;-555,00;41;-111,00;-555,00;0,00;0,00;0,00;20h45min;-1.485,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.310,00;Sim;59,00;295,00;42;59,00;295,00;0,00;0,00;0,00;2d;-1.426,00 +WINJ26;15/01/2026 18:15:00;16/01/2026 09:00:00;14h45min;1;1;C;170.845,00;171.100,00;192.310,00;No;51,00;255,00;43;51,00;255,00;0,00;0,00;0,00;7h30min;-1.375,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:30:00;15min;1;1;V;169.525,00;169.330,00;192.310,00;No;-39,00;-195,00;44;-39,00;-195,00;0,00;0,00;0,00;3d15h;-1.414,00 +WINJ26;19/01/2026 10:30:00;19/01/2026 10:45:00;15min;1;1;V;169.490,00;169.420,00;192.310,00;Sim;-14,00;-70,00;45;-14,00;-70,00;0,00;0,00;0,00;1h15min;-1.428,00 +WINJ26;19/01/2026 12:30:00;19/01/2026 14:30:00;2h;1;1;V;169.740,00;169.540,00;192.310,00;Sim;-40,00;-200,00;46;-40,00;-200,00;0,00;0,00;0,00;2h;-1.468,00 +WINJ26;20/01/2026 09:15:00;20/01/2026 09:30:00;15min;1;1;V;168.260,00;168.485,00;192.310,00;No;45,00;225,00;47;45,00;225,00;0,00;0,00;0,00;20h45min;-1.423,00 +WINJ26;26/01/2026 11:45:00;26/01/2026 13:00:00;1h15min;1;1;C;184.000,00;183.600,00;192.310,00;No;-80,00;-400,00;48;-80,00;-400,00;0,00;0,00;0,00;6d2h;-1.503,00 +WINJ26;26/01/2026 15:00:00;26/01/2026 15:15:00;15min;1;1;V;183.365,00;183.500,00;192.310,00;Sim;27,00;135,00;49;27,00;135,00;0,00;0,00;0,00;3h15min;-1.476,00 +WINJ26;28/01/2026 09:15:00;28/01/2026 09:30:00;15min;1;1;C;187.655,00;187.510,00;192.310,00;No;-29,00;-145,00;50;-29,00;-145,00;0,00;0,00;0,00;1d18h;-1.505,00 +WINJ26;30/01/2026 13:00:00;30/01/2026 13:15:00;15min;1;1;V;187.300,00;187.775,00;192.310,00;Sim;95,00;475,00;51;95,00;475,00;0,00;0,00;0,00;2d3h;-1.410,00 +WINJ26;02/02/2026 10:15:00;02/02/2026 11:30:00;1h15min;1;1;V;186.240,00;186.300,00;192.310,00;No;12,00;60,00;52;12,00;60,00;0,00;0,00;0,00;2d21h;-1.398,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.310,00;Sim;132,00;660,00;53;132,00;660,00;0,00;0,00;0,00;2d6h;-1.266,00 +WINJ26;06/02/2026 09:30:00;06/02/2026 09:45:00;15min;1;1;V;186.650,00;186.690,00;192.310,00;Sim;8,00;40,00;54;8,00;40,00;0,00;0,00;0,00;1d16h;-1.258,00 +WINJ26;10/02/2026 10:15:00;10/02/2026 11:15:00;1h;1;1;C;190.000,00;189.890,00;192.310,00;No;-22,00;-110,00;55;-22,00;-110,00;0,00;0,00;0,00;4d;-1.280,00 +WINJ26;11/02/2026 15:15:00;11/02/2026 15:45:00;30min;1;1;V;193.700,00;193.940,00;192.310,00;Sim;48,00;240,00;56;48,00;240,00;0,00;0,00;0,00;1d5h;-1.232,00 +WINJ26;12/02/2026 11:45:00;12/02/2026 12:00:00;15min;1;1;V;193.430,00;193.305,00;192.310,00;No;-25,00;-125,00;57;-25,00;-125,00;0,00;0,00;0,00;20h30min;-1.257,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.310,00;Sim;106,00;530,00;58;106,00;530,00;0,00;0,00;0,00;1d;-1.151,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:00:00;30min;1;1;V;189.975,00;190.075,00;192.310,00;No;20,00;100,00;59;20,00;100,00;0,00;0,00;0,00;5d1h;-1.131,00 +WINJ26;18/02/2026 14:30:00;18/02/2026 14:45:00;15min;1;1;C;190.575,00;190.405,00;192.310,00;No;-34,00;-170,00;60;-34,00;-170,00;0,00;0,00;0,00;1h;-1.165,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.310,00;No;-36,00;-180,00;61;-36,00;-180,00;0,00;0,00;0,00;19h45min;-1.201,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.310,00;No;42,00;210,00;62;42,00;210,00;0,00;0,00;0,00;1d1h;-1.159,00 +WINJ26;20/02/2026 14:45:00;20/02/2026 15:00:00;15min;1;1;C;191.865,00;192.435,00;192.310,00;No;114,00;570,00;63;114,00;570,00;0,00;0,00;0,00;3h15min;-1.045,00 +WINJ26;23/02/2026 09:00:00;23/02/2026 09:15:00;15min;1;1;V;193.390,00;193.590,00;192.310,00;Sim;40,00;200,00;64;40,00;200,00;0,00;0,00;0,00;2d18h;-1.005,00 +WINJ26;25/02/2026 10:15:00;25/02/2026 10:45:00;30min;1;1;V;195.155,00;195.870,00;192.310,00;Sim;143,00;715,00;65;143,00;715,00;0,00;0,00;0,00;2d1h;-862,00 +WINJ26;26/02/2026 10:30:00;26/02/2026 10:45:00;15min;1;1;V;194.155,00;194.045,00;192.310,00;No;-22,00;-110,00;66;-22,00;-110,00;0,00;0,00;0,00;1d;-884,00 +WINJ26;27/02/2026 13:30:00;27/02/2026 13:45:00;15min;1;1;V;192.980,00;192.980,00;192.310,00;No;0;0;67;0;0;0,00;0,00;0,00;1d3h;-884,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv new file mode 100644 index 0000000..6988cfa --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv @@ -0,0 +1,42 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.285,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.285,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;13d;520,00 +WINJ26;22/09/2025 15:00:00;22/09/2025 15:30:00;30min;1;1;C;155.850,00;155.640,00;192.285,00;No;-42,00;-210,00;3;-42,00;-210,00;0,00;0,00;0,00;13d6h;478,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 10:30:00;30min;1;1;V;156.000,00;156.250,00;192.285,00;Sim;50,00;250,00;4;50,00;250,00;0,00;0,00;0,00;2d19h;528,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:30:00;1h30min;1;1;C;156.680,00;155.750,00;192.285,00;No;-186,00;-930,00;5;-186,00;-930,00;0,00;0,00;0,00;3h;342,00 +WINJ26;26/09/2025 10:30:00;29/09/2025 09:30:00;2d23h;1;1;C;155.500,00;156.700,00;192.285,00;Sim;240,00;1.200,00;6;240,00;1.200,00;0,00;0,00;0,00;21h30min;582,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 13:30:00;3h30min;1;1;C;151.100,00;151.240,00;192.285,00;Sim;28,00;140,00;7;28,00;140,00;0,00;0,00;0,00;16d23h;610,00 +WINJ26;17/10/2025 11:00:00;17/10/2025 11:30:00;30min;1;1;C;151.365,00;151.850,00;192.285,00;No;97,00;485,00;8;97,00;485,00;0,00;0,00;0,00;4d1h;707,00 +WINJ26;21/10/2025 11:30:00;21/10/2025 12:00:00;30min;1;1;C;153.000,00;153.100,00;192.285,00;No;20,00;100,00;9;20,00;100,00;0,00;0,00;0,00;4d;727,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.285,00;Sim;-40,00;-200,00;10;-40,00;-200,00;0,00;0,00;0,00;4h30min;687,00 +WINJ26;30/10/2025 11:30:00;30/10/2025 12:00:00;30min;1;1;C;157.335,00;157.460,00;192.285,00;No;25,00;125,00;11;25,00;125,00;0,00;0,00;0,00;8d19h;712,00 +WINJ26;04/11/2025 10:00:00;04/11/2025 16:00:00;6h;1;1;V;158.520,00;158.430,00;192.285,00;Sim;-18,00;-90,00;12;-18,00;-90,00;0,00;0,00;0,00;4d22h;694,00 +WINJ26;12/11/2025 17:30:00;12/11/2025 18:00:00;30min;1;1;C;166.000,00;166.100,00;192.285,00;No;20,00;100,00;13;20,00;100,00;0,00;0,00;0,00;8d7h;714,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.285,00;Sim;32,00;160,00;14;32,00;160,00;0,00;0,00;0,00;5d17h;746,00 +WINJ26;28/11/2025 12:00:00;01/12/2025 10:30:00;2d22h;1;1;V;165.625,00;166.300,00;192.285,00;Sim;135,00;675,00;15;135,00;675,00;0,00;0,00;0,00;10d1h;881,00 +WINJ26;01/12/2025 11:00:00;01/12/2025 12:00:00;1h;1;1;C;165.945,00;166.560,00;192.285,00;No;123,00;615,00;16;123,00;615,00;0,00;0,00;0,00;2d23h;1.004,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 16:30:00;23h30min;1;1;V;171.680,00;169.165,00;192.285,00;Sim;-503,00;-2.515,00;17;-503,00;-2.515,00;0,00;0,00;0,00;2d6h;501,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.285,00;Sim;544,00;2.720,00;18;544,00;2.720,00;0,00;0,00;0,00;1d20h;1.045,00 +WINJ26;08/12/2025 09:30:00;08/12/2025 15:30:00;6h;1;1;C;166.180,00;165.630,00;192.285,00;No;-110,00;-550,00;19;-110,00;-550,00;0,00;0,00;0,00;2d20h;935,00 +WINJ26;10/12/2025 09:00:00;10/12/2025 10:30:00;1h30min;1;1;V;164.850,00;165.750,00;192.285,00;No;180,00;900,00;20;180,00;900,00;0,00;0,00;0,00;1d23h;1.115,00 +WINJ26;11/12/2025 10:30:00;11/12/2025 11:30:00;1h;1;1;C;165.040,00;165.750,00;192.285,00;Sim;142,00;710,00;21;142,00;710,00;0,00;0,00;0,00;1d1h;1.257,00 +WINJ26;22/12/2025 09:00:00;22/12/2025 14:00:00;5h;1;1;C;165.430,00;164.520,00;192.285,00;No;-182,00;-910,00;22;-182,00;-910,00;0,00;0,00;0,00;10d22h;1.075,00 +WINJ26;02/01/2026 09:30:00;02/01/2026 10:00:00;30min;1;1;C;167.610,00;168.095,00;192.285,00;No;97,00;485,00;23;97,00;485,00;0,00;0,00;0,00;11d;1.172,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.285,00;Sim;85,00;425,00;24;85,00;425,00;0,00;0,00;0,00;7h;1.257,00 +WINJ26;05/01/2026 12:00:00;06/01/2026 09:30:00;21h30min;1;1;V;168.485,00;166.200,00;192.285,00;Sim;-457,00;-2.285,00;25;-457,00;-2.285,00;0,00;0,00;0,00;2d19h;800,00 +WINJ26;06/01/2026 16:30:00;07/01/2026 10:00:00;17h30min;1;1;V;168.900,00;169.185,00;192.285,00;Sim;57,00;285,00;26;57,00;285,00;0,00;0,00;0,00;1d4h;857,00 +WINJ26;20/01/2026 09:30:00;20/01/2026 10:00:00;30min;1;1;V;169.010,00;168.260,00;192.285,00;No;-150,00;-750,00;27;-150,00;-750,00;0,00;0,00;0,00;13d17h;707,00 +WINJ26;22/01/2026 17:00:00;23/01/2026 14:30:00;21h30min;1;1;V;182.290,00;180.810,00;192.285,00;Sim;-296,00;-1.480,00;28;-296,00;-1.480,00;0,00;0,00;0,00;2d7h;411,00 +WINJ26;27/01/2026 15:00:00;28/01/2026 09:00:00;18h;1;1;V;187.620,00;187.170,00;192.285,00;Sim;-90,00;-450,00;29;-90,00;-450,00;0,00;0,00;0,00;4d22h;321,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.285,00;Sim;104,00;520,00;30;104,00;520,00;0,00;0,00;0,00;21h30min;425,00 +WINJ26;02/02/2026 11:30:00;02/02/2026 12:00:00;30min;1;1;V;186.230,00;186.240,00;192.285,00;No;2,00;10,00;31;2,00;10,00;0,00;0,00;0,00;4d23h;427,00 +WINJ26;05/02/2026 12:30:00;05/02/2026 17:30:00;5h;1;1;V;186.370,00;186.695,00;192.285,00;Sim;65,00;325,00;32;65,00;325,00;0,00;0,00;0,00;3d1h;492,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 15:30:00;6h;1;1;V;189.705,00;189.915,00;192.285,00;Sim;42,00;210,00;33;42,00;210,00;0,00;0,00;0,00;4d21h;534,00 +WINJ26;10/02/2026 17:00:00;10/02/2026 17:30:00;30min;1;1;C;189.975,00;190.565,00;192.285,00;No;118,00;590,00;34;118,00;590,00;0,00;0,00;0,00;7h30min;652,00 +WINJ26;12/02/2026 11:30:00;12/02/2026 12:00:00;30min;1;1;C;193.715,00;193.430,00;192.285,00;No;-57,00;-285,00;35;-57,00;-285,00;0,00;0,00;0,00;1d18h;595,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 10:00:00;30min;1;1;V;193.615,00;193.430,00;192.285,00;Sim;-37,00;-185,00;36;-37,00;-185,00;0,00;0,00;0,00;14d22h;558,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv new file mode 100644 index 0000000..9fe44d0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv @@ -0,0 +1,25 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.195,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.195,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;13d;520,00 +WINJ26;22/09/2025 15:00:00;22/09/2025 16:00:00;1h;1;1;C;155.850,00;155.510,00;192.195,00;No;-68,00;-340,00;3;-68,00;-340,00;0,00;0,00;0,00;13d6h;452,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 11:00:00;1h;1;1;V;155.750,00;156.250,00;192.195,00;Sim;100,00;500,00;4;100,00;500,00;0,00;0,00;0,00;2d19h;552,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:00:00;1h;1;1;C;156.680,00;155.750,00;192.195,00;No;-186,00;-930,00;5;-186,00;-930,00;0,00;0,00;0,00;3h;366,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 14:00:00;1d4h;1;1;C;151.100,00;151.180,00;192.195,00;Sim;16,00;80,00;6;16,00;80,00;0,00;0,00;0,00;17d21h;382,00 +WINJ26;17/10/2025 11:00:00;17/10/2025 12:00:00;1h;1;1;C;151.365,00;151.925,00;192.195,00;No;112,00;560,00;7;112,00;560,00;0,00;0,00;0,00;4d1h;494,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.195,00;No;-40,00;-200,00;8;-40,00;-200,00;0,00;0,00;0,00;4d5h;454,00 +WINJ26;30/10/2025 11:00:00;30/10/2025 12:00:00;1h;1;1;C;157.335,00;157.460,00;192.195,00;No;25,00;125,00;9;25,00;125,00;0,00;0,00;0,00;8d19h;479,00 +WINJ26;04/11/2025 10:00:00;05/11/2025 16:00:00;1d6h;1;1;V;161.425,00;158.430,00;192.195,00;Sim;-599,00;-2.995,00;10;-599,00;-2.995,00;0,00;0,00;0,00;4d23h;-120,00 +WINJ26;01/12/2025 12:00:00;02/12/2025 10:00:00;22h;1;1;C;166.560,00;166.390,00;192.195,00;No;-34,00;-170,00;11;-34,00;-170,00;0,00;0,00;0,00;27d2h;-154,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.195,00;Sim;387,00;1.935,00;12;387,00;1.935,00;0,00;0,00;0,00;4d1h;233,00 +WINJ26;11/12/2025 10:00:00;11/12/2025 11:00:00;1h;1;1;V;165.500,00;165.615,00;192.195,00;No;23,00;115,00;13;23,00;115,00;0,00;0,00;0,00;5d21h;256,00 +WINJ26;26/12/2025 12:00:00;26/12/2025 13:00:00;1h;1;1;C;166.005,00;166.420,00;192.195,00;Sim;83,00;415,00;14;83,00;415,00;0,00;0,00;0,00;15d2h;339,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.195,00;Sim;114,00;570,00;15;114,00;570,00;0,00;0,00;0,00;11d22h;453,00 +WINJ26;26/01/2026 11:00:00;27/01/2026 15:00:00;1d4h;1;1;V;187.170,00;183.135,00;192.195,00;Sim;-807,00;-4.035,00;16;-807,00;-4.035,00;0,00;0,00;0,00;19d1h;-354,00 +WINJ26;29/01/2026 12:00:00;29/01/2026 13:00:00;1h;1;1;V;186.785,00;189.110,00;192.195,00;Sim;465,00;2.325,00;17;465,00;2.325,00;0,00;0,00;0,00;3d1h;111,00 +WINJ26;20/02/2026 12:00:00;20/02/2026 13:00:00;1h;1;1;C;191.405,00;192.250,00;192.195,00;No;169,00;845,00;18;169,00;845,00;0,00;0,00;0,00;22d;280,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.195,00;Sim;131,00;655,00;19;131,00;655,00;0,00;0,00;0,00;4d23h;411,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv new file mode 100644 index 0000000..8573e6b --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv @@ -0,0 +1,109 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:46:00;18min;1;1;C;165.120,00;165.000,00;192.275,00;No;-24,00;-120,00;1;-24,00;-120,00;0,00;0,00;0,00; - ;-24,00 +WINJ26;22/12/2025 09:12:00;22/12/2025 09:20:00;8min;1;1;V;164.925,00;165.200,00;192.275,00;No;55,00;275,00;2;55,00;275,00;0,00;0,00;0,00;2d17h;31,00 +WINJ26;22/12/2025 13:22:00;22/12/2025 13:34:00;12min;1;1;V;164.075,00;164.240,00;192.275,00;No;33,00;165,00;3;33,00;165,00;0,00;0,00;0,00;4h10min;64,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:24:00;4min;1;1;C;166.425,00;166.425,00;192.275,00;No;0;0;4;0;0;0,00;0,00;0,00;1d1h;64,00 +WINJ26;23/12/2025 17:12:00;23/12/2025 17:26:00;14min;1;1;C;166.415,00;166.465,00;192.275,00;Sim;10,00;50,00;5;10,00;50,00;0,00;0,00;0,00;1h52min;74,00 +WINJ26;26/12/2025 11:44:00;26/12/2025 11:56:00;12min;1;1;V;165.880,00;166.015,00;192.275,00;Sim;27,00;135,00;6;27,00;135,00;0,00;0,00;0,00;2d18h;101,00 +WINJ26;26/12/2025 14:22:00;26/12/2025 14:36:00;14min;1;1;V;166.375,00;166.355,00;192.275,00;Sim;-4,00;-20,00;7;-4,00;-20,00;0,00;0,00;0,00;2h38min;97,00 +WINJ26;29/12/2025 16:06:00;29/12/2025 16:12:00;6min;1;1;C;165.845,00;165.920,00;192.275,00;Sim;15,00;75,00;8;15,00;75,00;0,00;0,00;0,00;3d1h;112,00 +WINJ26;30/12/2025 09:44:00;30/12/2025 10:02:00;18min;1;1;V;167.550,00;167.635,00;192.275,00;Sim;17,00;85,00;9;17,00;85,00;0,00;0,00;0,00;17h38min;129,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.275,00;No;26,00;130,00;10;26,00;130,00;0,00;0,00;0,00;1h20min;155,00 +WINJ26;30/12/2025 11:36:00;30/12/2025 11:40:00;4min;1;1;C;167.405,00;167.345,00;192.275,00;No;-12,00;-60,00;11;-12,00;-60,00;0,00;0,00;0,00;32min;143,00 +WINJ26;02/01/2026 10:08:00;02/01/2026 10:10:00;2min;1;1;V;167.810,00;167.975,00;192.275,00;Sim;33,00;165,00;12;33,00;165,00;0,00;0,00;0,00;2d22h;176,00 +WINJ26;02/01/2026 13:56:00;02/01/2026 14:18:00;22min;1;1;C;166.130,00;166.115,00;192.275,00;Sim;-3,00;-15,00;13;-3,00;-15,00;0,00;0,00;0,00;3h48min;173,00 +WINJ26;02/01/2026 17:32:00;02/01/2026 17:44:00;12min;1;1;C;166.120,00;166.150,00;192.275,00;Sim;6,00;30,00;14;6,00;30,00;0,00;0,00;0,00;3h36min;179,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:10:00;4min;1;1;V;167.030,00;167.080,00;192.275,00;No;10,00;50,00;15;10,00;50,00;0,00;0,00;0,00;2d19h;189,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:30:00;20min;1;1;C;167.545,00;167.580,00;192.275,00;No;7,00;35,00;16;7,00;35,00;0,00;0,00;0,00;4h4min;196,00 +WINJ26;05/01/2026 17:38:00;05/01/2026 18:02:00;24min;1;1;V;167.645,00;167.665,00;192.275,00;Sim;4,00;20,00;17;4,00;20,00;0,00;0,00;0,00;28min;200,00 +WINJ26;06/01/2026 09:58:00;06/01/2026 10:16:00;18min;1;1;V;169.475,00;168.775,00;192.275,00;Sim;-140,00;-700,00;18;-140,00;-700,00;0,00;0,00;0,00;16h20min;60,00 +WINJ26;07/01/2026 11:48:00;07/01/2026 12:06:00;18min;1;1;C;167.845,00;167.400,00;192.275,00;No;-89,00;-445,00;19;-89,00;-445,00;0,00;0,00;0,00;1d1h;-29,00 +WINJ26;07/01/2026 13:32:00;07/01/2026 13:38:00;6min;1;1;V;167.650,00;167.760,00;192.275,00;No;22,00;110,00;20;22,00;110,00;0,00;0,00;0,00;1h44min;-7,00 +WINJ26;07/01/2026 16:00:00;07/01/2026 16:12:00;12min;1;1;V;167.600,00;167.710,00;192.275,00;No;22,00;110,00;21;22,00;110,00;0,00;0,00;0,00;2h28min;15,00 +WINJ26;09/01/2026 09:26:00;09/01/2026 09:44:00;18min;1;1;C;168.045,00;167.820,00;192.275,00;No;-45,00;-225,00;22;-45,00;-225,00;0,00;0,00;0,00;1d17h;-30,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:30:00;20min;1;1;V;169.675,00;169.550,00;192.275,00;Sim;-25,00;-125,00;23;-25,00;-125,00;0,00;0,00;0,00;4h44min;-55,00 +WINJ26;09/01/2026 14:38:00;09/01/2026 14:42:00;4min;1;1;V;169.555,00;169.615,00;192.275,00;Sim;12,00;60,00;24;12,00;60,00;0,00;0,00;0,00;28min;-43,00 +WINJ26;09/01/2026 14:58:00;09/01/2026 15:20:00;22min;1;1;C;169.505,00;169.395,00;192.275,00;No;-22,00;-110,00;25;-22,00;-110,00;0,00;0,00;0,00;20min;-65,00 +WINJ26;12/01/2026 10:18:00;12/01/2026 10:20:00;2min;1;1;C;168.235,00;168.475,00;192.275,00;Sim;48,00;240,00;26;48,00;240,00;0,00;0,00;0,00;2d19h;-17,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.275,00;No;29,00;145,00;27;29,00;145,00;0,00;0,00;0,00;1d;12,00 +WINJ26;13/01/2026 12:18:00;13/01/2026 12:36:00;18min;1;1;C;167.265,00;167.120,00;192.275,00;Sim;-29,00;-145,00;28;-29,00;-145,00;0,00;0,00;0,00;1h4min;-17,00 +WINJ26;13/01/2026 17:16:00;13/01/2026 17:22:00;6min;1;1;V;167.145,00;167.250,00;192.275,00;No;21,00;105,00;29;21,00;105,00;0,00;0,00;0,00;4h58min;4,00 +WINJ26;14/01/2026 10:04:00;14/01/2026 10:22:00;18min;1;1;V;168.185,00;168.100,00;192.275,00;Sim;-17,00;-85,00;30;-17,00;-85,00;0,00;0,00;0,00;16h48min;-13,00 +WINJ26;15/01/2026 17:58:00;15/01/2026 18:02:00;4min;1;1;C;170.600,00;170.700,00;192.275,00;No;20,00;100,00;31;20,00;100,00;0,00;0,00;0,00;1d7h;7,00 +WINJ26;16/01/2026 12:46:00;16/01/2026 12:50:00;4min;1;1;C;169.385,00;169.500,00;192.275,00;Sim;23,00;115,00;32;23,00;115,00;0,00;0,00;0,00;18h48min;30,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.275,00;Sim;48,00;240,00;33;48,00;240,00;0,00;0,00;0,00;3d21h;78,00 +WINJ26;20/01/2026 11:28:00;20/01/2026 11:46:00;18min;1;1;V;170.700,00;169.395,00;192.275,00;Sim;-261,00;-1.305,00;34;-261,00;-1.305,00;0,00;0,00;0,00;1h2min;-183,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.275,00;No;-6,00;-30,00;35;-6,00;-30,00;0,00;0,00;0,00;21h34min;-189,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 10:44:00;12min;1;1;V;173.400,00;173.430,00;192.275,00;Sim;6,00;30,00;36;6,00;30,00;0,00;0,00;0,00;1h30min;-183,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.275,00;Sim;9,00;45,00;37;9,00;45,00;0,00;0,00;0,00;3h6min;-174,00 +WINJ26;22/01/2026 15:34:00;22/01/2026 15:54:00;20min;1;1;C;181.375,00;181.200,00;192.275,00;No;-35,00;-175,00;38;-35,00;-175,00;0,00;0,00;0,00;1d1h;-209,00 +WINJ26;22/01/2026 17:54:00;22/01/2026 18:04:00;10min;1;1;V;180.810,00;180.810,00;192.275,00;Sim;0;0;39;0;0;0,00;0,00;0,00;2h20min;-209,00 +WINJ26;23/01/2026 13:04:00;23/01/2026 13:12:00;8min;1;1;V;182.350,00;182.505,00;192.275,00;Sim;31,00;155,00;40;31,00;155,00;0,00;0,00;0,00;19h10min;-178,00 +WINJ26;26/01/2026 11:28:00;26/01/2026 11:30:00;2min;1;1;C;182.940,00;183.185,00;192.275,00;No;49,00;245,00;41;49,00;245,00;0,00;0,00;0,00;2d22h;-129,00 +WINJ26;27/01/2026 09:22:00;27/01/2026 09:42:00;20min;1;1;V;186.350,00;185.210,00;192.275,00;Sim;-228,00;-1.140,00;42;-228,00;-1.140,00;0,00;0,00;0,00;21h54min;-357,00 +WINJ26;28/01/2026 16:06:00;28/01/2026 16:10:00;4min;1;1;C;187.940,00;188.025,00;192.275,00;No;17,00;85,00;43;17,00;85,00;0,00;0,00;0,00;1d6h;-340,00 +WINJ26;28/01/2026 16:56:00;28/01/2026 17:14:00;18min;1;1;V;189.020,00;188.595,00;192.275,00;Sim;-85,00;-425,00;44;-85,00;-425,00;0,00;0,00;0,00;50min;-425,00 +WINJ26;28/01/2026 17:20:00;28/01/2026 17:40:00;20min;1;1;V;189.340,00;188.875,00;192.275,00;Sim;-93,00;-465,00;45;-93,00;-465,00;0,00;0,00;0,00;24min;-518,00 +WINJ26;29/01/2026 17:02:00;29/01/2026 17:06:00;4min;1;1;C;188.105,00;188.230,00;192.275,00;No;25,00;125,00;46;25,00;125,00;0,00;0,00;0,00;23h42min;-493,00 +WINJ26;30/01/2026 09:14:00;30/01/2026 09:18:00;4min;1;1;C;187.180,00;187.520,00;192.275,00;Sim;68,00;340,00;47;68,00;340,00;0,00;0,00;0,00;16h12min;-425,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:44:00;18min;1;1;V;186.550,00;186.370,00;192.275,00;No;-36,00;-180,00;48;-36,00;-180,00;0,00;0,00;0,00;3d;-461,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.275,00;Sim;40,00;200,00;49;40,00;200,00;0,00;0,00;0,00;2h6min;-421,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:30:00;18min;1;1;C;186.555,00;186.335,00;192.275,00;Sim;-44,00;-220,00;50;-44,00;-220,00;0,00;0,00;0,00;4h40min;-465,00 +WINJ26;02/02/2026 18:02:00;02/02/2026 18:20:00;18min;1;1;V;187.500,00;187.400,00;192.275,00;Sim;-20,00;-100,00;51;-20,00;-100,00;0,00;0,00;0,00;1h50min;-485,00 +WINJ26;03/02/2026 09:52:00;03/02/2026 10:10:00;18min;1;1;V;189.820,00;189.560,00;192.275,00;Sim;-52,00;-260,00;52;-52,00;-260,00;0,00;0,00;0,00;15h50min;-537,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 14:38:00;18min;1;1;C;190.335,00;190.280,00;192.275,00;No;-11,00;-55,00;53;-11,00;-55,00;0,00;0,00;0,00;4h28min;-548,00 +WINJ26;04/02/2026 09:04:00;04/02/2026 09:06:00;2min;1;1;V;189.785,00;190.090,00;192.275,00;Sim;61,00;305,00;54;61,00;305,00;0,00;0,00;0,00;18h44min;-487,00 +WINJ26;04/02/2026 12:28:00;04/02/2026 12:32:00;4min;1;1;V;187.745,00;187.850,00;192.275,00;No;21,00;105,00;55;21,00;105,00;0,00;0,00;0,00;3h24min;-466,00 +WINJ26;04/02/2026 12:56:00;04/02/2026 13:14:00;18min;1;1;C;187.335,00;186.845,00;192.275,00;Sim;-98,00;-490,00;56;-98,00;-490,00;0,00;0,00;0,00;28min;-564,00 +WINJ26;04/02/2026 14:14:00;04/02/2026 14:16:00;2min;1;1;C;186.230,00;186.350,00;192.275,00;Sim;24,00;120,00;57;24,00;120,00;0,00;0,00;0,00;1h18min;-540,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.275,00;No;-3,00;-15,00;58;-3,00;-15,00;0,00;0,00;0,00;18h52min;-543,00 +WINJ26;05/02/2026 11:06:00;05/02/2026 11:24:00;18min;1;1;V;187.665,00;187.320,00;192.275,00;Sim;-69,00;-345,00;59;-69,00;-345,00;0,00;0,00;0,00;2h;-612,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.275,00;No;41,00;205,00;60;41,00;205,00;0,00;0,00;0,00;1h26min;-571,00 +WINJ26;05/02/2026 15:54:00;05/02/2026 16:00:00;6min;1;1;C;187.440,00;187.450,00;192.275,00;No;2,00;10,00;61;2,00;10,00;0,00;0,00;0,00;3h22min;-569,00 +WINJ26;06/02/2026 13:24:00;06/02/2026 13:28:00;4min;1;1;V;186.600,00;186.730,00;192.275,00;No;26,00;130,00;62;26,00;130,00;0,00;0,00;0,00;21h30min;-543,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:34:00;18min;1;1;C;186.525,00;186.440,00;192.275,00;Sim;-17,00;-85,00;63;-17,00;-85,00;0,00;0,00;0,00;1h52min;-560,00 +WINJ26;06/02/2026 17:26:00;06/02/2026 17:40:00;14min;1;1;V;187.165,00;187.180,00;192.275,00;Sim;3,00;15,00;64;3,00;15,00;0,00;0,00;0,00;2h10min;-557,00 +WINJ26;09/02/2026 09:08:00;09/02/2026 09:26:00;18min;1;1;V;187.800,00;187.495,00;192.275,00;Sim;-61,00;-305,00;65;-61,00;-305,00;0,00;0,00;0,00;2d15h;-618,00 +WINJ26;09/02/2026 10:26:00;09/02/2026 10:32:00;6min;1;1;C;187.640,00;187.680,00;192.275,00;No;8,00;40,00;66;8,00;40,00;0,00;0,00;0,00;1h18min;-610,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:08:00;18min;1;1;V;188.350,00;188.185,00;192.275,00;Sim;-33,00;-165,00;67;-33,00;-165,00;0,00;0,00;0,00;1h24min;-643,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:12:00;2min;1;1;C;187.925,00;187.965,00;192.275,00;No;8,00;40,00;68;8,00;40,00;0,00;0,00;0,00;1h20min;-635,00 +WINJ26;09/02/2026 14:44:00;09/02/2026 14:54:00;10min;1;1;V;189.485,00;189.525,00;192.275,00;Sim;8,00;40,00;69;8,00;40,00;0,00;0,00;0,00;1h34min;-627,00 +WINJ26;09/02/2026 16:36:00;09/02/2026 16:46:00;10min;1;1;V;190.320,00;190.395,00;192.275,00;Sim;15,00;75,00;70;15,00;75,00;0,00;0,00;0,00;1h52min;-612,00 +WINJ26;10/02/2026 13:46:00;10/02/2026 14:04:00;18min;1;1;C;190.440,00;190.300,00;192.275,00;No;-28,00;-140,00;71;-28,00;-140,00;0,00;0,00;0,00;21h10min;-640,00 +WINJ26;10/02/2026 15:12:00;10/02/2026 15:30:00;18min;1;1;C;190.045,00;189.705,00;192.275,00;Sim;-68,00;-340,00;72;-68,00;-340,00;0,00;0,00;0,00;1h26min;-708,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 09:48:00;18min;1;1;V;192.290,00;191.540,00;192.275,00;Sim;-150,00;-750,00;73;-150,00;-750,00;0,00;0,00;0,00;18h18min;-858,00 +WINJ26;11/02/2026 10:00:00;11/02/2026 10:08:00;8min;1;1;V;192.100,00;192.235,00;192.275,00;Sim;27,00;135,00;74;27,00;135,00;0,00;0,00;0,00;30min;-831,00 +WINJ26;12/02/2026 09:54:00;12/02/2026 10:02:00;8min;1;1;C;192.885,00;192.980,00;192.275,00;No;19,00;95,00;75;19,00;95,00;0,00;0,00;0,00;23h54min;-812,00 +WINJ26;12/02/2026 11:02:00;12/02/2026 11:10:00;8min;1;1;C;192.990,00;193.220,00;192.275,00;No;46,00;230,00;76;46,00;230,00;0,00;0,00;0,00;1h8min;-766,00 +WINJ26;12/02/2026 12:20:00;12/02/2026 12:22:00;2min;1;1;V;193.620,00;193.765,00;192.275,00;Sim;29,00;145,00;77;29,00;145,00;0,00;0,00;0,00;1h18min;-737,00 +WINJ26;13/02/2026 10:22:00;13/02/2026 10:24:00;2min;1;1;C;188.785,00;189.060,00;192.275,00;Sim;55,00;275,00;78;55,00;275,00;0,00;0,00;0,00;22h2min;-682,00 +WINJ26;13/02/2026 16:26:00;13/02/2026 16:32:00;6min;1;1;C;189.705,00;189.895,00;192.275,00;No;38,00;190,00;79;38,00;190,00;0,00;0,00;0,00;6h4min;-644,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.275,00;No;14,00;70,00;80;14,00;70,00;0,00;0,00;0,00;4d20h;-630,00 +WINJ26;19/02/2026 09:06:00;19/02/2026 09:22:00;16min;1;1;V;190.145,00;190.155,00;192.275,00;No;2,00;10,00;81;2,00;10,00;0,00;0,00;0,00;20h6min;-628,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.275,00;No;36,00;180,00;82;36,00;180,00;0,00;0,00;0,00;4h48min;-592,00 +WINJ26;19/02/2026 15:14:00;19/02/2026 15:16:00;2min;1;1;C;192.155,00;192.185,00;192.275,00;No;6,00;30,00;83;6,00;30,00;0,00;0,00;0,00;1h20min;-586,00 +WINJ26;19/02/2026 17:42:00;19/02/2026 18:00:00;18min;1;1;V;192.130,00;191.920,00;192.275,00;Sim;-42,00;-210,00;84;-42,00;-210,00;0,00;0,00;0,00;2h28min;-628,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 11:56:00;18min;1;1;V;191.445,00;190.995,00;192.275,00;No;-90,00;-450,00;85;-90,00;-450,00;0,00;0,00;0,00;17h56min;-718,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.275,00;Sim;35,00;175,00;86;35,00;175,00;0,00;0,00;0,00;2h56min;-683,00 +WINJ26;20/02/2026 15:36:00;20/02/2026 15:54:00;18min;1;1;V;193.090,00;192.815,00;192.275,00;Sim;-55,00;-275,00;87;-55,00;-275,00;0,00;0,00;0,00;1h2min;-738,00 +WINJ26;23/02/2026 12:04:00;23/02/2026 12:06:00;2min;1;1;V;193.950,00;194.250,00;192.275,00;Sim;60,00;300,00;88;60,00;300,00;0,00;0,00;0,00;2d20h;-678,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:20:00;18min;1;1;C;195.005,00;194.885,00;192.275,00;No;-24,00;-120,00;89;-24,00;-120,00;0,00;0,00;0,00;1d2h;-702,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.275,00;Sim;9,00;45,00;90;9,00;45,00;0,00;0,00;0,00;1h26min;-693,00 +WINJ26;25/02/2026 15:04:00;25/02/2026 15:10:00;6min;1;1;V;194.875,00;194.960,00;192.275,00;Sim;17,00;85,00;91;17,00;85,00;0,00;0,00;0,00;22h36min;-676,00 +WINJ26;25/02/2026 16:16:00;25/02/2026 16:20:00;4min;1;1;C;194.015,00;194.200,00;192.275,00;Sim;37,00;185,00;92;37,00;185,00;0,00;0,00;0,00;1h12min;-639,00 +WINJ26;26/02/2026 10:16:00;26/02/2026 10:18:00;2min;1;1;V;194.510,00;194.640,00;192.275,00;No;26,00;130,00;93;26,00;130,00;0,00;0,00;0,00;18h;-613,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 12:38:00;8min;1;1;C;192.665,00;192.840,00;192.275,00;Sim;35,00;175,00;94;35,00;175,00;0,00;0,00;0,00;2h14min;-578,00 +WINJ26;26/02/2026 14:34:00;26/02/2026 14:36:00;2min;1;1;C;193.475,00;193.425,00;192.275,00;No;-10,00;-50,00;95;-10,00;-50,00;0,00;0,00;0,00;2h4min;-588,00 +WINJ26;26/02/2026 15:56:00;26/02/2026 16:14:00;18min;1;1;V;194.105,00;193.825,00;192.275,00;No;-56,00;-280,00;96;-56,00;-280,00;0,00;0,00;0,00;1h22min;-644,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.275,00;No;-5,00;-25,00;97;-5,00;-25,00;0,00;0,00;0,00;19h22min;-649,00 +WINJ26;02/03/2026 10:02:00;02/03/2026 10:08:00;6min;1;1;C;190.215,00;190.380,00;192.275,00;Sim;33,00;165,00;98;33,00;165,00;0,00;0,00;0,00;2d22h;-616,00 +WINJ26;02/03/2026 10:28:00;02/03/2026 10:44:00;16min;1;1;V;190.760,00;190.795,00;192.275,00;No;7,00;35,00;99;7,00;35,00;0,00;0,00;0,00;26min;-609,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.275,00;Sim;41,00;205,00;100;41,00;205,00;0,00;0,00;0,00;38min;-568,00 +WINJ26;02/03/2026 13:52:00;02/03/2026 13:58:00;6min;1;1;V;191.425,00;191.540,00;192.275,00;Sim;23,00;115,00;101;23,00;115,00;0,00;0,00;0,00;2h46min;-545,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:08:00;4min;1;1;V;191.885,00;191.895,00;192.275,00;Sim;2,00;10,00;102;2,00;10,00;0,00;0,00;0,00;1h12min;-543,00 +WINJ26;02/03/2026 17:32:00;02/03/2026 17:38:00;6min;1;1;C;192.240,00;192.310,00;192.275,00;No;14,00;70,00;103;14,00;70,00;0,00;0,00;0,00;2h28min;-529,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv new file mode 100644 index 0000000..fed7f23 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv @@ -0,0 +1,69 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.265,00;No;-50,00;-250,00;1;-50,00;-250,00;0,00;0,00;0,00; - ;-50,00 +WINJ26;16/09/2025 15:50:00;17/09/2025 14:10:00;22h20min;1;1;V;156.000,00;154.450,00;192.265,00;Sim;-310,00;-1.550,00;2;-310,00;-1.550,00;0,00;0,00;0,00;7d6h;-360,00 +WINJ26;13/10/2025 10:20:00;13/10/2025 10:25:00;5min;1;1;C;151.100,00;151.100,00;192.265,00;No;0;0;3;0;0;0,00;0,00;0,00;26d18h;-360,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 11:20:00;5min;1;1;C;151.200,00;151.050,00;192.265,00;No;-30,00;-150,00;4;-30,00;-150,00;0,00;0,00;0,00;2d;-390,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:20:00;1h5min;1;1;V;155.480,00;155.660,00;192.265,00;Sim;36,00;180,00;5;36,00;180,00;0,00;0,00;0,00;12d1h;-354,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.265,00;No;17,00;85,00;6;17,00;85,00;0,00;0,00;0,00;2d22h;-337,00 +WINJ26;31/10/2025 11:40:00;31/10/2025 13:30:00;1h50min;1;1;V;157.700,00;157.700,00;192.265,00;Sim;0;0;7;0;0;0,00;0,00;0,00;1d;-337,00 +WINJ26;03/11/2025 12:40:00;03/11/2025 16:10:00;3h30min;1;1;V;158.640,00;158.680,00;192.265,00;Sim;8,00;40,00;8;8,00;40,00;0,00;0,00;0,00;3d1h;-329,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.265,00;No;-4,00;-20,00;9;-4,00;-20,00;0,00;0,00;0,00;21h35min;-333,00 +WINJ26;14/11/2025 18:10:00;14/11/2025 18:20:00;10min;1;1;V;165.850,00;165.915,00;192.265,00;Sim;13,00;65,00;10;13,00;65,00;0,00;0,00;0,00;10d7h;-320,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.265,00;No;60,00;300,00;11;60,00;300,00;0,00;0,00;0,00;3d16h;-260,00 +WINJ26;26/11/2025 13:00:00;26/11/2025 15:35:00;2h35min;1;1;V;165.785,00;165.405,00;192.265,00;No;-76,00;-380,00;12;-76,00;-380,00;0,00;0,00;0,00;8d2h;-336,00 +WINJ26;09/12/2025 13:45:00;09/12/2025 17:40:00;3h55min;1;1;V;165.175,00;164.500,00;192.265,00;No;-135,00;-675,00;13;-135,00;-675,00;0,00;0,00;0,00;13d;-471,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:00:00;45min;1;1;C;164.810,00;164.285,00;192.265,00;No;-105,00;-525,00;14;-105,00;-525,00;0,00;0,00;0,00;7d19h;-576,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.265,00;Sim;7,00;35,00;15;7,00;35,00;0,00;0,00;0,00;1d7h;-569,00 +WINJ26;22/12/2025 09:10:00;22/12/2025 09:15:00;5min;1;1;V;165.050,00;165.200,00;192.265,00;Sim;30,00;150,00;16;30,00;150,00;0,00;0,00;0,00;3d16h;-539,00 +WINJ26;22/12/2025 15:35:00;22/12/2025 15:40:00;5min;1;1;C;164.200,00;164.315,00;192.265,00;Sim;23,00;115,00;17;23,00;115,00;0,00;0,00;0,00;6h25min;-516,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.265,00;No;2,00;10,00;18;2,00;10,00;0,00;0,00;0,00;17h30min;-514,00 +WINJ26;26/12/2025 15:15:00;26/12/2025 15:20:00;5min;1;1;V;166.480,00;166.500,00;192.265,00;Sim;4,00;20,00;19;4,00;20,00;0,00;0,00;0,00;3d6h;-510,00 +WINJ26;29/12/2025 11:25:00;29/12/2025 11:45:00;20min;1;1;C;166.370,00;166.635,00;192.265,00;No;53,00;265,00;20;53,00;265,00;0,00;0,00;0,00;2d20h;-457,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.265,00;No;-65,00;-325,00;21;-65,00;-325,00;0,00;0,00;0,00;3d21h;-522,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.265,00;Sim;-9,00;-45,00;22;-9,00;-45,00;0,00;0,00;0,00;1h5min;-531,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.265,00;No;39,00;195,00;23;39,00;195,00;0,00;0,00;0,00;2d23h;-492,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:25:00;45min;1;1;C;168.780,00;168.050,00;192.265,00;No;-146,00;-730,00;24;-146,00;-730,00;0,00;0,00;0,00;2d;-638,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:50:00;10min;1;1;V;167.665,00;167.855,00;192.265,00;Sim;38,00;190,00;25;38,00;190,00;0,00;0,00;0,00;1d;-600,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.265,00;Sim;10,00;50,00;26;10,00;50,00;0,00;0,00;0,00;22h50min;-590,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:50:00;40min;1;1;V;169.215,00;169.350,00;192.265,00;Sim;27,00;135,00;27;27,00;135,00;0,00;0,00;0,00;2h40min;-563,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.265,00;Sim;20,00;100,00;28;20,00;100,00;0,00;0,00;0,00;3d22h;-543,00 +WINJ26;14/01/2026 17:05:00;14/01/2026 17:10:00;5min;1;1;V;169.685,00;169.760,00;192.265,00;Sim;15,00;75,00;29;15,00;75,00;0,00;0,00;0,00;1d6h;-528,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.265,00;Sim;0;0;30;0;0;0,00;0,00;0,00;16h;-528,00 +WINJ26;16/01/2026 11:50:00;16/01/2026 12:35:00;45min;1;1;C;169.850,00;169.315,00;192.265,00;No;-107,00;-535,00;31;-107,00;-535,00;0,00;0,00;0,00;1d2h;-635,00 +WINJ26;16/01/2026 12:50:00;16/01/2026 13:30:00;40min;1;1;C;169.500,00;169.625,00;192.265,00;Sim;25,00;125,00;32;25,00;125,00;0,00;0,00;0,00;1h;-610,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:25:00;40min;1;1;V;171.100,00;171.135,00;192.265,00;Sim;7,00;35,00;33;7,00;35,00;0,00;0,00;0,00;4d;-603,00 +WINJ26;23/01/2026 09:20:00;23/01/2026 10:05:00;45min;1;1;V;181.300,00;181.440,00;192.265,00;Sim;28,00;140,00;34;28,00;140,00;0,00;0,00;0,00;2d19h;-575,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:30:00;5min;1;1;C;183.140,00;183.430,00;192.265,00;No;58,00;290,00;35;58,00;290,00;0,00;0,00;0,00;3d7h;-517,00 +WINJ26;26/01/2026 17:50:00;26/01/2026 18:10:00;20min;1;1;V;183.605,00;183.860,00;192.265,00;Sim;51,00;255,00;36;51,00;255,00;0,00;0,00;0,00;1h25min;-466,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 11:05:00;45min;1;1;V;187.145,00;185.930,00;192.265,00;Sim;-243,00;-1.215,00;37;-243,00;-1.215,00;0,00;0,00;0,00;16h30min;-709,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:05:00;45min;1;1;C;187.310,00;187.100,00;192.265,00;No;-42,00;-210,00;38;-42,00;-210,00;0,00;0,00;0,00;5h;-751,00 +WINJ26;28/01/2026 11:10:00;28/01/2026 11:55:00;45min;1;1;V;189.605,00;188.900,00;192.265,00;Sim;-141,00;-705,00;39;-141,00;-705,00;0,00;0,00;0,00;19h50min;-892,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.265,00;No;47,00;235,00;40;47,00;235,00;0,00;0,00;0,00;5h;-845,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.265,00;Sim;28,00;140,00;41;28,00;140,00;0,00;0,00;0,00;17h20min;-817,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 10:05:00;45min;1;1;C;187.580,00;187.490,00;192.265,00;Sim;-18,00;-90,00;42;-18,00;-90,00;0,00;0,00;0,00;23h50min;-835,00 +WINJ26;02/02/2026 11:10:00;02/02/2026 11:20:00;10min;1;1;V;186.650,00;187.205,00;192.265,00;No;111,00;555,00;43;111,00;555,00;0,00;0,00;0,00;3d1h;-724,00 +WINJ26;04/02/2026 14:15:00;04/02/2026 15:00:00;45min;1;1;C;186.330,00;185.470,00;192.265,00;Sim;-172,00;-860,00;44;-172,00;-860,00;0,00;0,00;0,00;2d3h;-896,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.265,00;No;36,00;180,00;45;36,00;180,00;0,00;0,00;0,00;19h25min;-860,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 11:15:00;45min;1;1;V;187.300,00;186.885,00;192.265,00;Sim;-83,00;-415,00;46;-83,00;-415,00;0,00;0,00;0,00;50min;-943,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 17:45:00;45min;1;1;C;187.375,00;186.300,00;192.265,00;No;-215,00;-1.075,00;47;-215,00;-1.075,00;0,00;0,00;0,00;6h30min;-1.158,00 +WINJ26;06/02/2026 17:40:00;06/02/2026 18:15:00;35min;1;1;V;187.040,00;187.165,00;192.265,00;Sim;25,00;125,00;48;25,00;125,00;0,00;0,00;0,00;1d;-1.133,00 +WINJ26;09/02/2026 17:20:00;09/02/2026 18:05:00;45min;1;1;V;190.585,00;190.445,00;192.265,00;Sim;-28,00;-140,00;49;-28,00;-140,00;0,00;0,00;0,00;2d23h;-1.161,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.265,00;No;41,00;205,00;50;41,00;205,00;0,00;0,00;0,00;22h50min;-1.120,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:05:00;35min;1;1;V;194.340,00;194.525,00;192.265,00;Sim;37,00;185,00;51;37,00;185,00;0,00;0,00;0,00;22h20min;-1.083,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.265,00;No;54,00;270,00;52;54,00;270,00;0,00;0,00;0,00;1d1h;-1.029,00 +WINJ26;13/02/2026 10:25:00;13/02/2026 11:10:00;45min;1;1;C;189.085,00;188.980,00;192.265,00;Sim;-21,00;-105,00;53;-21,00;-105,00;0,00;0,00;0,00;18h40min;-1.050,00 +WINJ26;13/02/2026 14:00:00;13/02/2026 14:45:00;45min;1;1;V;189.990,00;189.405,00;192.265,00;No;-117,00;-585,00;54;-117,00;-585,00;0,00;0,00;0,00;3h35min;-1.167,00 +WINJ26;20/02/2026 10:40:00;20/02/2026 11:20:00;40min;1;1;C;190.755,00;190.745,00;192.265,00;No;-2,00;-10,00;55;-2,00;-10,00;0,00;0,00;0,00;6d20h;-1.169,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.265,00;No;48,00;240,00;56;48,00;240,00;0,00;0,00;0,00;2d23h;-1.121,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.265,00;Sim;112,00;560,00;57;112,00;560,00;0,00;0,00;0,00;2h;-1.009,00 +WINJ26;23/02/2026 16:25:00;23/02/2026 17:10:00;45min;1;1;C;192.470,00;192.485,00;192.265,00;Sim;3,00;15,00;58;3,00;15,00;0,00;0,00;0,00;4h20min;-1.006,00 +WINJ26;24/02/2026 10:40:00;24/02/2026 10:50:00;10min;1;1;V;193.260,00;193.690,00;192.265,00;No;86,00;430,00;59;86,00;430,00;0,00;0,00;0,00;18h15min;-920,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.265,00;Sim;67,00;335,00;60;67,00;335,00;0,00;0,00;0,00;22h50min;-853,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:05:00;45min;1;1;C;194.200,00;194.120,00;192.265,00;No;-16,00;-80,00;61;-16,00;-80,00;0,00;0,00;0,00;6h50min;-869,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.265,00;No;11,00;55,00;62;11,00;55,00;0,00;0,00;0,00;1d1h;-858,00 +WINJ26;27/02/2026 17:20:00;27/02/2026 17:25:00;5min;1;1;C;192.075,00;192.145,00;192.265,00;Sim;14,00;70,00;63;14,00;70,00;0,00;0,00;0,00;23h25min;-844,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv new file mode 100644 index 0000000..94441a8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv @@ -0,0 +1,40 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.280,00;No;-40,00;-200,00;1;-40,00;-200,00;0,00;0,00;0,00; - ;-40,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 09:45:00;15min;1;1;V;152.750,00;152.500,00;192.280,00;Sim;-50,00;-250,00;2;-50,00;-250,00;0,00;0,00;0,00;3d;-90,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 11:30:00;1h15min;1;1;C;151.100,00;151.130,00;192.280,00;No;6,00;30,00;3;6,00;30,00;0,00;0,00;0,00;1m;-84,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 13:00:00;1h45min;1;1;C;151.200,00;151.200,00;192.280,00;No;0;0;4;0;0;0,00;0,00;0,00;2d1h;-84,00 +WINJ26;23/10/2025 12:15:00;23/10/2025 12:45:00;30min;1;1;V;153.950,00;153.700,00;192.280,00;Sim;-50,00;-250,00;5;-50,00;-250,00;0,00;0,00;0,00;8d1h;-134,00 +WINJ26;27/10/2025 12:15:00;28/10/2025 09:15:00;21h;1;1;V;155.400,00;155.660,00;192.280,00;Sim;52,00;260,00;6;52,00;260,00;0,00;0,00;0,00;4d;-82,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.280,00;No;17,00;85,00;7;17,00;85,00;0,00;0,00;0,00;2d22h;-65,00 +WINJ26;31/10/2025 11:30:00;31/10/2025 13:30:00;2h;1;1;V;157.700,00;157.700,00;192.280,00;Sim;0;0;8;0;0;0,00;0,00;0,00;1d;-65,00 +WINJ26;03/11/2025 12:30:00;04/11/2025 09:00:00;20h30min;1;1;V;158.500,00;158.680,00;192.280,00;Sim;36,00;180,00;9;36,00;180,00;0,00;0,00;0,00;3d1h;-29,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 11:00:00;30min;1;1;C;164.740,00;164.500,00;192.280,00;No;-48,00;-240,00;10;-48,00;-240,00;0,00;0,00;0,00;14d22h;-77,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 13:00:00;1h;1;1;V;166.500,00;166.300,00;192.280,00;Sim;-40,00;-200,00;11;-40,00;-200,00;0,00;0,00;0,00;10d1h;-117,00 +WINJ26;02/12/2025 11:45:00;02/12/2025 17:15:00;5h30min;1;1;V;168.250,00;167.500,00;192.280,00;Sim;-150,00;-750,00;12;-150,00;-750,00;0,00;0,00;0,00;3d23h;-267,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 13:30:00;4h15min;1;1;C;166.300,00;165.600,00;192.280,00;No;-140,00;-700,00;13;-140,00;-700,00;0,00;0,00;0,00;5d21h;-407,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.280,00;No;36,00;180,00;14;36,00;180,00;0,00;0,00;0,00;2d1h;-371,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.280,00;Sim;120,00;600,00;15;120,00;600,00;0,00;0,00;0,00;2d2h;-251,00 +WINJ26;19/12/2025 18:15:00;22/12/2025 09:00:00;2d14h;1;1;C;164.910,00;165.430,00;192.280,00;Sim;104,00;520,00;16;104,00;520,00;0,00;0,00;0,00;7d6h;-147,00 +WINJ26;23/12/2025 15:15:00;23/12/2025 17:30:00;2h15min;1;1;V;166.420,00;166.230,00;192.280,00;No;-38,00;-190,00;17;-38,00;-190,00;0,00;0,00;0,00;3d21h;-185,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.280,00;No;8,00;40,00;18;8,00;40,00;0,00;0,00;0,00;2d19h;-177,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.280,00;Sim;60,00;300,00;19;60,00;300,00;0,00;0,00;0,00;2d23h;-117,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.280,00;No;-21,00;-105,00;20;-21,00;-105,00;0,00;0,00;0,00;3d23h;-138,00 +WINJ26;02/01/2026 16:15:00;02/01/2026 16:30:00;15min;1;1;C;166.245,00;166.230,00;192.280,00;Sim;-3,00;-15,00;21;-3,00;-15,00;0,00;0,00;0,00;7h;-141,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.280,00;Sim;59,00;295,00;22;59,00;295,00;0,00;0,00;0,00;12d18h;-82,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.280,00;No;60,00;300,00;23;60,00;300,00;0,00;0,00;0,00;4d23h;-22,00 +WINJ26;23/01/2026 09:30:00;23/01/2026 11:00:00;1h30min;1;1;V;181.250,00;181.450,00;192.280,00;Sim;40,00;200,00;24;40,00;200,00;0,00;0,00;0,00;2d23h;18,00 +WINJ26;30/01/2026 16:00:00;30/01/2026 18:15:00;2h15min;1;1;C;186.180,00;186.155,00;192.280,00;No;-5,00;-25,00;25;-5,00;-25,00;0,00;0,00;0,00;7d6h;13,00 +WINJ26;11/02/2026 15:15:00;11/02/2026 15:45:00;30min;1;1;V;193.700,00;193.940,00;192.280,00;Sim;48,00;240,00;26;48,00;240,00;0,00;0,00;0,00;11d23h;61,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.280,00;No;106,00;530,00;27;106,00;530,00;0,00;0,00;0,00;1d21h;167,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:00:00;30min;1;1;V;189.975,00;190.075,00;192.280,00;No;20,00;100,00;28;20,00;100,00;0,00;0,00;0,00;5d1h;187,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.280,00;No;-36,00;-180,00;29;-36,00;-180,00;0,00;0,00;0,00;20h45min;151,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.280,00;No;42,00;210,00;30;42,00;210,00;0,00;0,00;0,00;1d1h;193,00 +WINJ26;23/02/2026 09:00:00;23/02/2026 09:15:00;15min;1;1;V;193.390,00;193.590,00;192.280,00;Sim;40,00;200,00;31;40,00;200,00;0,00;0,00;0,00;2d21h;233,00 +WINJ26;24/02/2026 09:30:00;24/02/2026 11:45:00;2h15min;1;1;V;193.630,00;193.240,00;192.280,00;No;-78,00;-390,00;32;-78,00;-390,00;0,00;0,00;0,00;1d;155,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 11:45:00;2h15min;1;1;C;193.430,00;193.250,00;192.280,00;No;-36,00;-180,00;33;-36,00;-180,00;0,00;0,00;0,00;3d;119,00 +WINJ26;27/02/2026 17:30:00;02/03/2026 10:15:00;2d16h;1;1;C;192.145,00;190.225,00;192.280,00;Sim;-384,00;-1.920,00;34;-384,00;-1.920,00;0,00;0,00;0,00;8h;-265,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv new file mode 100644 index 0000000..57cd18e --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv @@ -0,0 +1,18 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.240,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.240,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;13d;520,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 11:00:00;1h30min;1;1;V;153.400,00;152.500,00;192.240,00;Sim;-180,00;-900,00;3;-180,00;-900,00;0,00;0,00;0,00;3d;340,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 13:30:00;3h30min;1;1;C;151.100,00;151.240,00;192.240,00;No;28,00;140,00;4;28,00;140,00;0,00;0,00;0,00;1m;368,00 +WINJ26;04/11/2025 10:00:00;04/11/2025 16:00:00;6h;1;1;V;158.520,00;158.430,00;192.240,00;Sim;-18,00;-90,00;5;-18,00;-90,00;0,00;0,00;0,00;22d;350,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.240,00;No;32,00;160,00;6;32,00;160,00;0,00;0,00;0,00;14d;382,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 18:00:00;6h;1;1;V;166.670,00;166.300,00;192.240,00;Sim;-74,00;-370,00;7;-74,00;-370,00;0,00;0,00;0,00;10d1h;308,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.240,00;Sim;544,00;2.720,00;8;544,00;2.720,00;0,00;0,00;0,00;7d1h;852,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.240,00;No;85,00;425,00;9;85,00;425,00;0,00;0,00;0,00;1m3h;937,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.240,00;No;302,00;1.510,00;10;302,00;1.510,00;0,00;0,00;0,00;17d17h;1.239,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.240,00;Sim;104,00;520,00;11;104,00;520,00;0,00;0,00;0,00;8d2h;1.343,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 14:00:00;4h30min;1;1;V;190.405,00;189.915,00;192.240,00;Sim;-98,00;-490,00;12;-98,00;-490,00;0,00;0,00;0,00;12d21h;1.245,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv new file mode 100644 index 0000000..687510b --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv @@ -0,0 +1,16 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.285,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.285,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;13d;520,00 +WINJ26;12/09/2025 09:00:00;12/09/2025 11:00:00;2h;1;1;V;153.400,00;152.500,00;192.285,00;Sim;-180,00;-900,00;3;-180,00;-900,00;0,00;0,00;0,00;3d;340,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 13:00:00;1d3h;1;1;C;151.100,00;151.080,00;192.285,00;No;-4,00;-20,00;4;-4,00;-20,00;0,00;0,00;0,00;1m1h;336,00 +WINJ26;23/10/2025 18:00:00;27/10/2025 16:00:00;3d22h;1;1;V;155.550,00;154.600,00;192.285,00;Sim;-190,00;-950,00;5;-190,00;-950,00;0,00;0,00;0,00;10d8h;146,00 +WINJ26;04/11/2025 10:00:00;05/11/2025 10:00:00;1d;1;1;V;158.820,00;158.430,00;192.285,00;Sim;-78,00;-390,00;6;-78,00;-390,00;0,00;0,00;0,00;11d16h;68,00 +WINJ26;18/11/2025 11:00:00;19/11/2025 16:00:00;1d5h;1;1;C;164.500,00;163.435,00;192.285,00;No;-213,00;-1.065,00;7;-213,00;-1.065,00;0,00;0,00;0,00;14d1h;-145,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.285,00;Sim;387,00;1.935,00;8;387,00;1.935,00;0,00;0,00;0,00;17d2h;242,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.285,00;No;114,00;570,00;9;114,00;570,00;0,00;0,00;0,00;1m1d21h;356,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.285,00;No;133,00;665,00;10;133,00;665,00;0,00;0,00;0,00;1m23d2h;489,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv new file mode 100644 index 0000000..78a8fba --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv @@ -0,0 +1,912 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:50:00;22min;1;1;C;165.120,00;165.130,00;192.325,00;No;2,00;10,00;1;2,00;10,00;0,00;0,00;0,00; - ;2,00 +WINJ26;19/12/2025 15:56:00;19/12/2025 15:58:00;2min;1;1;V;165.040,00;165.025,00;192.325,00;No;-3,00;-15,00;2;-3,00;-15,00;0,00;0,00;0,00;28min;-1,00 +WINJ26;19/12/2025 16:20:00;19/12/2025 16:22:00;2min;1;1;V;165.055,00;165.000,00;192.325,00;No;-11,00;-55,00;3;-11,00;-55,00;0,00;0,00;0,00;24min;-12,00 +WINJ26;19/12/2025 16:32:00;19/12/2025 16:36:00;4min;1;1;V;165.055,00;165.005,00;192.325,00;Sim;-10,00;-50,00;4;-10,00;-50,00;0,00;0,00;0,00;12min;-22,00 +WINJ26;19/12/2025 16:40:00;19/12/2025 16:42:00;2min;1;1;V;165.070,00;165.020,00;192.325,00;Sim;-10,00;-50,00;5;-10,00;-50,00;0,00;0,00;0,00;8min;-32,00 +WINJ26;19/12/2025 16:50:00;19/12/2025 16:52:00;2min;1;1;V;164.965,00;164.975,00;192.325,00;No;2,00;10,00;6;2,00;10,00;0,00;0,00;0,00;10min;-30,00 +WINJ26;19/12/2025 17:14:00;19/12/2025 17:16:00;2min;1;1;V;165.005,00;164.975,00;192.325,00;No;-6,00;-30,00;7;-6,00;-30,00;0,00;0,00;0,00;24min;-36,00 +WINJ26;19/12/2025 17:20:00;19/12/2025 17:22:00;2min;1;1;V;165.070,00;165.005,00;192.325,00;Sim;-13,00;-65,00;8;-13,00;-65,00;0,00;0,00;0,00;6min;-49,00 +WINJ26;19/12/2025 17:26:00;19/12/2025 17:28:00;2min;1;1;V;165.025,00;165.010,00;192.325,00;Sim;-3,00;-15,00;9;-3,00;-15,00;0,00;0,00;0,00;6min;-52,00 +WINJ26;19/12/2025 17:48:00;19/12/2025 18:06:00;18min;1;1;C;164.730,00;164.800,00;192.325,00;Sim;14,00;70,00;10;14,00;70,00;0,00;0,00;0,00;22min;-38,00 +WINJ26;19/12/2025 18:20:00;22/12/2025 09:20:00;2d15h;1;1;V;164.925,00;164.890,00;192.325,00;No;-7,00;-35,00;11;-7,00;-35,00;0,00;0,00;0,00;32min;-45,00 +WINJ26;22/12/2025 10:18:00;22/12/2025 10:46:00;28min;1;1;C;164.385,00;164.295,00;192.325,00;Sim;-18,00;-90,00;12;-18,00;-90,00;0,00;0,00;0,00;2d15h;-63,00 +WINJ26;22/12/2025 10:58:00;22/12/2025 11:00:00;2min;1;1;C;164.195,00;164.250,00;192.325,00;Sim;11,00;55,00;13;11,00;55,00;0,00;0,00;0,00;40min;-52,00 +WINJ26;22/12/2025 11:10:00;22/12/2025 11:12:00;2min;1;1;V;164.220,00;164.300,00;192.325,00;No;16,00;80,00;14;16,00;80,00;0,00;0,00;0,00;12min;-36,00 +WINJ26;22/12/2025 11:16:00;22/12/2025 11:18:00;2min;1;1;V;164.120,00;164.235,00;192.325,00;No;23,00;115,00;15;23,00;115,00;0,00;0,00;0,00;6min;-13,00 +WINJ26;22/12/2025 11:32:00;22/12/2025 11:46:00;14min;1;1;C;163.570,00;163.840,00;192.325,00;Sim;54,00;270,00;16;54,00;270,00;0,00;0,00;0,00;16min;41,00 +WINJ26;22/12/2025 11:50:00;22/12/2025 11:52:00;2min;1;1;V;163.785,00;163.730,00;192.325,00;No;-11,00;-55,00;17;-11,00;-55,00;0,00;0,00;0,00;18min;30,00 +WINJ26;22/12/2025 12:02:00;22/12/2025 12:06:00;4min;1;1;V;163.790,00;163.795,00;192.325,00;Sim;1,00;5,00;18;1,00;5,00;0,00;0,00;0,00;12min;31,00 +WINJ26;22/12/2025 12:14:00;22/12/2025 12:16:00;2min;1;1;V;163.815,00;163.845,00;192.325,00;Sim;6,00;30,00;19;6,00;30,00;0,00;0,00;0,00;12min;37,00 +WINJ26;22/12/2025 12:40:00;22/12/2025 12:44:00;4min;1;1;V;163.825,00;163.850,00;192.325,00;Sim;5,00;25,00;20;5,00;25,00;0,00;0,00;0,00;26min;42,00 +WINJ26;22/12/2025 13:00:00;22/12/2025 13:28:00;28min;1;1;V;164.310,00;164.135,00;192.325,00;Sim;-35,00;-175,00;21;-35,00;-175,00;0,00;0,00;0,00;20min;7,00 +WINJ26;22/12/2025 13:38:00;22/12/2025 13:40:00;2min;1;1;C;164.275,00;164.370,00;192.325,00;No;19,00;95,00;22;19,00;95,00;0,00;0,00;0,00;38min;26,00 +WINJ26;22/12/2025 13:56:00;22/12/2025 14:16:00;20min;1;1;V;164.405,00;164.490,00;192.325,00;Sim;17,00;85,00;23;17,00;85,00;0,00;0,00;0,00;18min;43,00 +WINJ26;22/12/2025 14:18:00;22/12/2025 14:32:00;14min;1;1;C;164.435,00;164.400,00;192.325,00;No;-7,00;-35,00;24;-7,00;-35,00;0,00;0,00;0,00;22min;36,00 +WINJ26;22/12/2025 14:38:00;22/12/2025 14:40:00;2min;1;1;C;164.420,00;164.495,00;192.325,00;Sim;15,00;75,00;25;15,00;75,00;0,00;0,00;0,00;20min;51,00 +WINJ26;22/12/2025 14:54:00;22/12/2025 15:00:00;6min;1;1;C;164.310,00;164.350,00;192.325,00;Sim;8,00;40,00;26;8,00;40,00;0,00;0,00;0,00;16min;59,00 +WINJ26;22/12/2025 15:14:00;22/12/2025 15:36:00;22min;1;1;C;164.210,00;164.255,00;192.325,00;Sim;9,00;45,00;27;9,00;45,00;0,00;0,00;0,00;20min;68,00 +WINJ26;22/12/2025 15:58:00;22/12/2025 16:16:00;18min;1;1;V;164.300,00;164.420,00;192.325,00;No;24,00;120,00;28;24,00;120,00;0,00;0,00;0,00;44min;92,00 +WINJ26;22/12/2025 16:22:00;22/12/2025 16:38:00;16min;1;1;C;164.300,00;164.200,00;192.325,00;No;-20,00;-100,00;29;-20,00;-100,00;0,00;0,00;0,00;24min;72,00 +WINJ26;22/12/2025 16:46:00;22/12/2025 16:48:00;2min;1;1;C;164.275,00;164.345,00;192.325,00;Sim;14,00;70,00;30;14,00;70,00;0,00;0,00;0,00;24min;86,00 +WINJ26;22/12/2025 16:56:00;22/12/2025 17:32:00;36min;1;1;V;164.295,00;164.325,00;192.325,00;No;6,00;30,00;31;6,00;30,00;0,00;0,00;0,00;10min;92,00 +WINJ26;22/12/2025 17:40:00;22/12/2025 17:50:00;10min;1;1;C;164.300,00;164.405,00;192.325,00;No;21,00;105,00;32;21,00;105,00;0,00;0,00;0,00;44min;113,00 +WINJ26;22/12/2025 17:58:00;22/12/2025 18:00:00;2min;1;1;V;164.315,00;164.315,00;192.325,00;No;0;0;33;0;0;0,00;0,00;0,00;18min;113,00 +WINJ26;22/12/2025 18:18:00;23/12/2025 09:04:00;14h46min;1;1;C;164.245,00;164.465,00;192.325,00;Sim;44,00;220,00;34;44,00;220,00;0,00;0,00;0,00;20min;157,00 +WINJ26;23/12/2025 09:12:00;23/12/2025 09:42:00;30min;1;1;V;165.080,00;164.515,00;192.325,00;Sim;-113,00;-565,00;35;-113,00;-565,00;0,00;0,00;0,00;14h54min;44,00 +WINJ26;23/12/2025 09:48:00;23/12/2025 10:00:00;12min;1;1;V;165.025,00;165.205,00;192.325,00;Sim;36,00;180,00;36;36,00;180,00;0,00;0,00;0,00;36min;80,00 +WINJ26;23/12/2025 10:24:00;23/12/2025 10:28:00;4min;1;1;V;165.360,00;165.370,00;192.325,00;Sim;2,00;10,00;37;2,00;10,00;0,00;0,00;0,00;36min;82,00 +WINJ26;23/12/2025 10:40:00;23/12/2025 10:42:00;2min;1;1;C;165.380,00;165.385,00;192.325,00;No;1,00;5,00;38;1,00;5,00;0,00;0,00;0,00;16min;83,00 +WINJ26;23/12/2025 10:46:00;23/12/2025 10:48:00;2min;1;1;C;165.455,00;165.460,00;192.325,00;No;1,00;5,00;39;1,00;5,00;0,00;0,00;0,00;6min;84,00 +WINJ26;23/12/2025 11:10:00;23/12/2025 11:18:00;8min;1;1;V;165.675,00;165.960,00;192.325,00;Sim;57,00;285,00;40;57,00;285,00;0,00;0,00;0,00;24min;141,00 +WINJ26;23/12/2025 11:30:00;23/12/2025 11:34:00;4min;1;1;C;165.435,00;165.550,00;192.325,00;Sim;23,00;115,00;41;23,00;115,00;0,00;0,00;0,00;20min;164,00 +WINJ26;23/12/2025 11:44:00;23/12/2025 12:12:00;28min;1;1;V;166.410,00;165.765,00;192.325,00;No;-129,00;-645,00;42;-129,00;-645,00;0,00;0,00;0,00;14min;35,00 +WINJ26;23/12/2025 12:24:00;23/12/2025 12:46:00;22min;1;1;V;166.300,00;166.325,00;192.325,00;Sim;5,00;25,00;43;5,00;25,00;0,00;0,00;0,00;40min;40,00 +WINJ26;23/12/2025 13:06:00;23/12/2025 13:08:00;2min;1;1;C;166.360,00;166.470,00;192.325,00;No;22,00;110,00;44;22,00;110,00;0,00;0,00;0,00;42min;62,00 +WINJ26;23/12/2025 13:32:00;23/12/2025 13:36:00;4min;1;1;C;166.450,00;166.480,00;192.325,00;No;6,00;30,00;45;6,00;30,00;0,00;0,00;0,00;26min;68,00 +WINJ26;23/12/2025 13:58:00;23/12/2025 14:00:00;2min;1;1;C;166.505,00;166.500,00;192.325,00;No;-1,00;-5,00;46;-1,00;-5,00;0,00;0,00;0,00;26min;67,00 +WINJ26;23/12/2025 14:10:00;23/12/2025 14:12:00;2min;1;1;C;166.475,00;166.530,00;192.325,00;Sim;11,00;55,00;47;11,00;55,00;0,00;0,00;0,00;12min;78,00 +WINJ26;23/12/2025 14:24:00;23/12/2025 14:26:00;2min;1;1;V;166.480,00;166.480,00;192.325,00;Sim;0;0;48;0;0;0,00;0,00;0,00;14min;78,00 +WINJ26;23/12/2025 14:30:00;23/12/2025 14:36:00;6min;1;1;C;166.450,00;166.570,00;192.325,00;Sim;24,00;120,00;49;24,00;120,00;0,00;0,00;0,00;6min;102,00 +WINJ26;23/12/2025 14:38:00;23/12/2025 15:06:00;28min;1;1;V;166.520,00;166.585,00;192.325,00;Sim;13,00;65,00;50;13,00;65,00;0,00;0,00;0,00;8min;115,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:24:00;4min;1;1;C;166.425,00;166.425,00;192.325,00;Sim;0;0;51;0;0;0,00;0,00;0,00;42min;115,00 +WINJ26;23/12/2025 15:54:00;23/12/2025 16:08:00;14min;1;1;V;166.435,00;166.490,00;192.325,00;No;11,00;55,00;52;11,00;55,00;0,00;0,00;0,00;34min;126,00 +WINJ26;23/12/2025 16:18:00;23/12/2025 16:32:00;14min;1;1;V;166.440,00;166.545,00;192.325,00;Sim;21,00;105,00;53;21,00;105,00;0,00;0,00;0,00;24min;147,00 +WINJ26;23/12/2025 17:02:00;23/12/2025 17:26:00;24min;1;1;C;166.425,00;166.465,00;192.325,00;No;8,00;40,00;54;8,00;40,00;0,00;0,00;0,00;44min;155,00 +WINJ26;23/12/2025 17:36:00;23/12/2025 17:52:00;16min;1;1;V;166.410,00;166.460,00;192.325,00;No;10,00;50,00;55;10,00;50,00;0,00;0,00;0,00;34min;165,00 +WINJ26;23/12/2025 18:18:00;23/12/2025 18:20:00;2min;1;1;V;166.530,00;166.635,00;192.325,00;Sim;21,00;105,00;56;21,00;105,00;0,00;0,00;0,00;42min;186,00 +WINJ26;26/12/2025 09:10:00;26/12/2025 09:38:00;28min;1;1;C;165.870,00;165.695,00;192.325,00;Sim;-35,00;-175,00;57;-35,00;-175,00;0,00;0,00;0,00;2d14h;151,00 +WINJ26;26/12/2025 10:12:00;26/12/2025 10:20:00;8min;1;1;V;165.715,00;165.930,00;192.325,00;No;43,00;215,00;58;43,00;215,00;0,00;0,00;0,00;1h2min;194,00 +WINJ26;26/12/2025 10:40:00;26/12/2025 10:42:00;2min;1;1;V;165.610,00;165.655,00;192.325,00;No;9,00;45,00;59;9,00;45,00;0,00;0,00;0,00;28min;203,00 +WINJ26;26/12/2025 10:48:00;26/12/2025 11:06:00;18min;1;1;C;165.535,00;165.655,00;192.325,00;Sim;24,00;120,00;60;24,00;120,00;0,00;0,00;0,00;8min;227,00 +WINJ26;26/12/2025 11:14:00;26/12/2025 11:24:00;10min;1;1;V;165.630,00;165.700,00;192.325,00;Sim;14,00;70,00;61;14,00;70,00;0,00;0,00;0,00;26min;241,00 +WINJ26;26/12/2025 11:38:00;26/12/2025 11:56:00;18min;1;1;V;165.880,00;166.195,00;192.325,00;Sim;63,00;315,00;62;63,00;315,00;0,00;0,00;0,00;24min;304,00 +WINJ26;26/12/2025 12:16:00;26/12/2025 12:46:00;30min;1;1;V;166.335,00;166.460,00;192.325,00;Sim;25,00;125,00;63;25,00;125,00;0,00;0,00;0,00;38min;329,00 +WINJ26;26/12/2025 12:58:00;26/12/2025 13:02:00;4min;1;1;C;166.420,00;166.420,00;192.325,00;No;0;0;64;0;0;0,00;0,00;0,00;42min;329,00 +WINJ26;26/12/2025 13:58:00;26/12/2025 14:02:00;4min;1;1;C;166.085,00;166.145,00;192.325,00;Sim;12,00;60,00;65;12,00;60,00;0,00;0,00;0,00;1h;341,00 +WINJ26;26/12/2025 14:22:00;26/12/2025 14:36:00;14min;1;1;V;166.375,00;166.355,00;192.325,00;No;-4,00;-20,00;66;-4,00;-20,00;0,00;0,00;0,00;24min;337,00 +WINJ26;26/12/2025 15:06:00;26/12/2025 15:14:00;8min;1;1;V;166.535,00;166.625,00;192.325,00;Sim;18,00;90,00;67;18,00;90,00;0,00;0,00;0,00;44min;355,00 +WINJ26;26/12/2025 16:38:00;26/12/2025 16:58:00;20min;1;1;C;166.650,00;166.705,00;192.325,00;No;11,00;55,00;68;11,00;55,00;0,00;0,00;0,00;1h32min;366,00 +WINJ26;26/12/2025 17:18:00;26/12/2025 17:20:00;2min;1;1;C;166.775,00;166.810,00;192.325,00;No;7,00;35,00;69;7,00;35,00;0,00;0,00;0,00;40min;373,00 +WINJ26;26/12/2025 17:28:00;26/12/2025 18:02:00;34min;1;1;V;167.100,00;166.880,00;192.325,00;Sim;-44,00;-220,00;70;-44,00;-220,00;0,00;0,00;0,00;10min;329,00 +WINJ26;26/12/2025 18:16:00;29/12/2025 09:02:00;2d14h;1;1;V;167.230,00;167.250,00;192.325,00;Sim;4,00;20,00;71;4,00;20,00;0,00;0,00;0,00;48min;333,00 +WINJ26;29/12/2025 09:04:00;29/12/2025 09:06:00;2min;1;1;C;167.370,00;167.395,00;192.325,00;No;5,00;25,00;72;5,00;25,00;0,00;0,00;0,00;2d14h;338,00 +WINJ26;29/12/2025 09:20:00;29/12/2025 09:22:00;2min;1;1;C;167.240,00;167.330,00;192.325,00;Sim;18,00;90,00;73;18,00;90,00;0,00;0,00;0,00;16min;356,00 +WINJ26;29/12/2025 09:36:00;29/12/2025 09:54:00;18min;1;1;C;167.130,00;167.115,00;192.325,00;Sim;-3,00;-15,00;74;-3,00;-15,00;0,00;0,00;0,00;16min;353,00 +WINJ26;29/12/2025 10:08:00;29/12/2025 10:38:00;30min;1;1;C;167.040,00;166.650,00;192.325,00;Sim;-78,00;-390,00;75;-78,00;-390,00;0,00;0,00;0,00;32min;275,00 +WINJ26;29/12/2025 11:06:00;29/12/2025 11:08:00;2min;1;1;V;166.380,00;166.510,00;192.325,00;No;26,00;130,00;76;26,00;130,00;0,00;0,00;0,00;58min;301,00 +WINJ26;29/12/2025 11:14:00;29/12/2025 11:16:00;2min;1;1;V;166.350,00;166.365,00;192.325,00;No;3,00;15,00;77;3,00;15,00;0,00;0,00;0,00;8min;304,00 +WINJ26;29/12/2025 11:26:00;29/12/2025 11:28:00;2min;1;1;V;166.330,00;166.350,00;192.325,00;No;4,00;20,00;78;4,00;20,00;0,00;0,00;0,00;12min;308,00 +WINJ26;29/12/2025 11:38:00;29/12/2025 11:40:00;2min;1;1;V;166.350,00;166.500,00;192.325,00;Sim;30,00;150,00;79;30,00;150,00;0,00;0,00;0,00;12min;338,00 +WINJ26;29/12/2025 11:52:00;29/12/2025 11:54:00;2min;1;1;V;166.390,00;166.400,00;192.325,00;No;2,00;10,00;80;2,00;10,00;0,00;0,00;0,00;14min;340,00 +WINJ26;29/12/2025 12:26:00;29/12/2025 12:58:00;32min;1;1;C;166.195,00;166.200,00;192.325,00;Sim;1,00;5,00;81;1,00;5,00;0,00;0,00;0,00;34min;341,00 +WINJ26;29/12/2025 13:04:00;29/12/2025 13:06:00;2min;1;1;V;165.990,00;166.045,00;192.325,00;No;11,00;55,00;82;11,00;55,00;0,00;0,00;0,00;38min;352,00 +WINJ26;29/12/2025 13:36:00;29/12/2025 13:38:00;2min;1;1;V;166.070,00;166.070,00;192.325,00;Sim;0;0;83;0;0;0,00;0,00;0,00;32min;352,00 +WINJ26;29/12/2025 14:02:00;29/12/2025 14:06:00;4min;1;1;V;166.080,00;166.120,00;192.325,00;Sim;8,00;40,00;84;8,00;40,00;0,00;0,00;0,00;26min;360,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.325,00;Sim;5,00;25,00;85;5,00;25,00;0,00;0,00;0,00;48min;365,00 +WINJ26;29/12/2025 15:02:00;29/12/2025 15:08:00;6min;1;1;C;166.200,00;166.250,00;192.325,00;No;10,00;50,00;86;10,00;50,00;0,00;0,00;0,00;12min;375,00 +WINJ26;29/12/2025 15:34:00;29/12/2025 16:04:00;30min;1;1;C;166.130,00;165.745,00;192.325,00;Sim;-77,00;-385,00;87;-77,00;-385,00;0,00;0,00;0,00;32min;298,00 +WINJ26;29/12/2025 16:06:00;29/12/2025 16:12:00;6min;1;1;C;165.845,00;165.920,00;192.325,00;Sim;15,00;75,00;88;15,00;75,00;0,00;0,00;0,00;32min;313,00 +WINJ26;29/12/2025 16:48:00;29/12/2025 17:20:00;32min;1;1;V;166.300,00;166.010,00;192.325,00;No;-58,00;-290,00;89;-58,00;-290,00;0,00;0,00;0,00;42min;255,00 +WINJ26;29/12/2025 17:22:00;29/12/2025 17:36:00;14min;1;1;V;166.185,00;166.305,00;192.325,00;Sim;24,00;120,00;90;24,00;120,00;0,00;0,00;0,00;34min;279,00 +WINJ26;29/12/2025 17:48:00;29/12/2025 17:56:00;8min;1;1;C;166.050,00;166.220,00;192.325,00;No;34,00;170,00;91;34,00;170,00;0,00;0,00;0,00;26min;313,00 +WINJ26;29/12/2025 18:24:00;30/12/2025 09:26:00;15h2min;1;1;V;167.520,00;166.340,00;192.325,00;Sim;-236,00;-1.180,00;92;-236,00;-1.180,00;0,00;0,00;0,00;36min;77,00 +WINJ26;30/12/2025 09:40:00;30/12/2025 10:02:00;22min;1;1;V;167.550,00;167.780,00;192.325,00;Sim;46,00;230,00;93;46,00;230,00;0,00;0,00;0,00;15h16min;123,00 +WINJ26;30/12/2025 10:08:00;30/12/2025 10:16:00;8min;1;1;C;167.630,00;167.895,00;192.325,00;No;53,00;265,00;94;53,00;265,00;0,00;0,00;0,00;28min;176,00 +WINJ26;30/12/2025 10:30:00;30/12/2025 10:32:00;2min;1;1;C;167.820,00;167.920,00;192.325,00;No;20,00;100,00;95;20,00;100,00;0,00;0,00;0,00;22min;196,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.325,00;Sim;26,00;130,00;96;26,00;130,00;0,00;0,00;0,00;34min;222,00 +WINJ26;30/12/2025 11:26:00;30/12/2025 11:28:00;2min;1;1;V;167.375,00;167.425,00;192.325,00;No;10,00;50,00;97;10,00;50,00;0,00;0,00;0,00;22min;232,00 +WINJ26;30/12/2025 11:36:00;30/12/2025 11:40:00;4min;1;1;C;167.405,00;167.345,00;192.325,00;No;-12,00;-60,00;98;-12,00;-60,00;0,00;0,00;0,00;10min;220,00 +WINJ26;30/12/2025 12:08:00;30/12/2025 12:14:00;6min;1;1;C;167.105,00;167.220,00;192.325,00;Sim;23,00;115,00;99;23,00;115,00;0,00;0,00;0,00;32min;243,00 +WINJ26;30/12/2025 12:26:00;30/12/2025 12:30:00;4min;1;1;V;167.160,00;167.250,00;192.325,00;No;18,00;90,00;100;18,00;90,00;0,00;0,00;0,00;18min;261,00 +WINJ26;30/12/2025 12:44:00;30/12/2025 13:12:00;28min;1;1;V;167.630,00;167.405,00;192.325,00;Sim;-45,00;-225,00;101;-45,00;-225,00;0,00;0,00;0,00;18min;216,00 +WINJ26;30/12/2025 13:28:00;30/12/2025 13:48:00;20min;1;1;V;167.610,00;167.640,00;192.325,00;Sim;6,00;30,00;102;6,00;30,00;0,00;0,00;0,00;44min;222,00 +WINJ26;30/12/2025 13:54:00;30/12/2025 14:10:00;16min;1;1;C;167.680,00;167.715,00;192.325,00;No;7,00;35,00;103;7,00;35,00;0,00;0,00;0,00;26min;229,00 +WINJ26;30/12/2025 14:34:00;30/12/2025 15:12:00;38min;1;1;V;167.815,00;167.825,00;192.325,00;Sim;2,00;10,00;104;2,00;10,00;0,00;0,00;0,00;40min;231,00 +WINJ26;30/12/2025 15:22:00;30/12/2025 15:26:00;4min;1;1;C;167.750,00;167.770,00;192.325,00;No;4,00;20,00;105;4,00;20,00;0,00;0,00;0,00;48min;235,00 +WINJ26;30/12/2025 15:46:00;30/12/2025 16:08:00;22min;1;1;C;167.650,00;167.780,00;192.325,00;Sim;26,00;130,00;106;26,00;130,00;0,00;0,00;0,00;24min;261,00 +WINJ26;30/12/2025 16:16:00;30/12/2025 16:24:00;8min;1;1;V;167.700,00;167.695,00;192.325,00;No;-1,00;-5,00;107;-1,00;-5,00;0,00;0,00;0,00;30min;260,00 +WINJ26;30/12/2025 16:42:00;30/12/2025 16:46:00;4min;1;1;C;167.685,00;167.710,00;192.325,00;No;5,00;25,00;108;5,00;25,00;0,00;0,00;0,00;26min;265,00 +WINJ26;30/12/2025 17:08:00;30/12/2025 17:16:00;8min;1;1;C;167.575,00;167.665,00;192.325,00;Sim;18,00;90,00;109;18,00;90,00;0,00;0,00;0,00;26min;283,00 +WINJ26;30/12/2025 17:26:00;30/12/2025 17:32:00;6min;1;1;V;167.655,00;167.690,00;192.325,00;No;7,00;35,00;110;7,00;35,00;0,00;0,00;0,00;18min;290,00 +WINJ26;30/12/2025 17:58:00;02/01/2026 09:00:00;2d15h;1;1;C;167.470,00;167.265,00;192.325,00;Sim;-41,00;-205,00;111;-41,00;-205,00;0,00;0,00;0,00;32min;249,00 +WINJ26;02/01/2026 09:02:00;02/01/2026 09:04:00;2min;1;1;C;167.900,00;167.880,00;192.325,00;No;-4,00;-20,00;112;-4,00;-20,00;0,00;0,00;0,00;2d15h;245,00 +WINJ26;02/01/2026 09:08:00;02/01/2026 09:32:00;24min;1;1;V;167.525,00;167.740,00;192.325,00;Sim;43,00;215,00;113;43,00;215,00;0,00;0,00;0,00;6min;288,00 +WINJ26;02/01/2026 09:56:00;02/01/2026 10:10:00;14min;1;1;V;167.810,00;167.965,00;192.325,00;Sim;31,00;155,00;114;31,00;155,00;0,00;0,00;0,00;48min;319,00 +WINJ26;02/01/2026 10:24:00;02/01/2026 10:52:00;28min;1;1;C;167.695,00;167.325,00;192.325,00;Sim;-74,00;-370,00;115;-74,00;-370,00;0,00;0,00;0,00;28min;245,00 +WINJ26;02/01/2026 11:10:00;02/01/2026 11:14:00;4min;1;1;C;166.870,00;167.125,00;192.325,00;Sim;51,00;255,00;116;51,00;255,00;0,00;0,00;0,00;46min;296,00 +WINJ26;02/01/2026 11:38:00;02/01/2026 11:56:00;18min;1;1;C;166.715,00;166.895,00;192.325,00;Sim;36,00;180,00;117;36,00;180,00;0,00;0,00;0,00;28min;332,00 +WINJ26;02/01/2026 12:00:00;02/01/2026 12:08:00;8min;1;1;V;166.640,00;166.845,00;192.325,00;No;41,00;205,00;118;41,00;205,00;0,00;0,00;0,00;22min;373,00 +WINJ26;02/01/2026 12:26:00;02/01/2026 12:34:00;8min;1;1;C;166.380,00;166.525,00;192.325,00;Sim;29,00;145,00;119;29,00;145,00;0,00;0,00;0,00;26min;402,00 +WINJ26;02/01/2026 12:36:00;02/01/2026 12:46:00;10min;1;1;V;166.400,00;166.560,00;192.325,00;No;32,00;160,00;120;32,00;160,00;0,00;0,00;0,00;10min;434,00 +WINJ26;02/01/2026 13:30:00;02/01/2026 14:04:00;34min;1;1;C;166.185,00;166.125,00;192.325,00;Sim;-12,00;-60,00;121;-12,00;-60,00;0,00;0,00;0,00;54min;422,00 +WINJ26;02/01/2026 14:12:00;02/01/2026 14:48:00;36min;1;1;C;166.070,00;166.050,00;192.325,00;Sim;-4,00;-20,00;122;-4,00;-20,00;0,00;0,00;0,00;42min;418,00 +WINJ26;02/01/2026 14:52:00;02/01/2026 14:54:00;2min;1;1;V;165.950,00;166.020,00;192.325,00;No;14,00;70,00;123;14,00;70,00;0,00;0,00;0,00;40min;432,00 +WINJ26;02/01/2026 15:06:00;02/01/2026 15:12:00;6min;1;1;C;165.905,00;165.995,00;192.325,00;Sim;18,00;90,00;124;18,00;90,00;0,00;0,00;0,00;14min;450,00 +WINJ26;02/01/2026 15:16:00;02/01/2026 15:18:00;2min;1;1;V;165.970,00;165.950,00;192.325,00;No;-4,00;-20,00;125;-4,00;-20,00;0,00;0,00;0,00;10min;446,00 +WINJ26;02/01/2026 15:28:00;02/01/2026 15:42:00;14min;1;1;V;166.025,00;166.070,00;192.325,00;Sim;9,00;45,00;126;9,00;45,00;0,00;0,00;0,00;12min;455,00 +WINJ26;02/01/2026 16:06:00;02/01/2026 16:08:00;2min;1;1;C;166.070,00;166.100,00;192.325,00;No;6,00;30,00;127;6,00;30,00;0,00;0,00;0,00;38min;461,00 +WINJ26;02/01/2026 16:28:00;02/01/2026 16:52:00;24min;1;1;V;166.220,00;166.295,00;192.325,00;Sim;15,00;75,00;128;15,00;75,00;0,00;0,00;0,00;22min;476,00 +WINJ26;02/01/2026 17:18:00;02/01/2026 17:44:00;26min;1;1;C;166.225,00;166.150,00;192.325,00;No;-15,00;-75,00;129;-15,00;-75,00;0,00;0,00;0,00;50min;461,00 +WINJ26;02/01/2026 18:00:00;02/01/2026 18:06:00;6min;1;1;C;166.080,00;166.200,00;192.325,00;Sim;24,00;120,00;130;24,00;120,00;0,00;0,00;0,00;42min;485,00 +WINJ26;05/01/2026 09:02:00;05/01/2026 09:04:00;2min;1;1;C;166.350,00;166.505,00;192.325,00;No;31,00;155,00;131;31,00;155,00;0,00;0,00;0,00;2d15h;516,00 +WINJ26;05/01/2026 09:10:00;05/01/2026 09:14:00;4min;1;1;V;166.300,00;166.395,00;192.325,00;Sim;19,00;95,00;132;19,00;95,00;0,00;0,00;0,00;8min;535,00 +WINJ26;05/01/2026 09:42:00;05/01/2026 09:46:00;4min;1;1;V;166.465,00;166.675,00;192.325,00;Sim;42,00;210,00;133;42,00;210,00;0,00;0,00;0,00;32min;577,00 +WINJ26;05/01/2026 10:16:00;05/01/2026 10:40:00;24min;1;1;C;166.250,00;166.075,00;192.325,00;Sim;-35,00;-175,00;134;-35,00;-175,00;0,00;0,00;0,00;34min;542,00 +WINJ26;05/01/2026 11:02:00;05/01/2026 11:32:00;30min;1;1;V;166.630,00;166.395,00;192.325,00;No;-47,00;-235,00;135;-47,00;-235,00;0,00;0,00;0,00;46min;495,00 +WINJ26;05/01/2026 12:04:00;05/01/2026 12:10:00;6min;1;1;C;166.270,00;166.355,00;192.325,00;No;17,00;85,00;136;17,00;85,00;0,00;0,00;0,00;1h2min;512,00 +WINJ26;05/01/2026 12:32:00;05/01/2026 13:00:00;28min;1;1;V;167.270,00;166.880,00;192.325,00;Sim;-78,00;-390,00;137;-78,00;-390,00;0,00;0,00;0,00;28min;434,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:10:00;4min;1;1;V;167.030,00;167.080,00;192.325,00;Sim;10,00;50,00;138;10,00;50,00;0,00;0,00;0,00;34min;444,00 +WINJ26;05/01/2026 13:44:00;05/01/2026 14:22:00;38min;1;1;V;167.440,00;167.300,00;192.325,00;Sim;-28,00;-140,00;139;-28,00;-140,00;0,00;0,00;0,00;38min;416,00 +WINJ26;05/01/2026 14:30:00;05/01/2026 14:32:00;2min;1;1;C;167.400,00;167.385,00;192.325,00;No;-3,00;-15,00;140;-3,00;-15,00;0,00;0,00;0,00;46min;413,00 +WINJ26;05/01/2026 14:36:00;05/01/2026 14:38:00;2min;1;1;C;167.465,00;167.515,00;192.325,00;No;10,00;50,00;141;10,00;50,00;0,00;0,00;0,00;6min;423,00 +WINJ26;05/01/2026 14:56:00;05/01/2026 15:28:00;32min;1;1;V;167.750,00;167.605,00;192.325,00;Sim;-29,00;-145,00;142;-29,00;-145,00;0,00;0,00;0,00;20min;394,00 +WINJ26;05/01/2026 15:34:00;05/01/2026 15:36:00;2min;1;1;C;167.705,00;167.675,00;192.325,00;No;-6,00;-30,00;143;-6,00;-30,00;0,00;0,00;0,00;38min;388,00 +WINJ26;05/01/2026 15:48:00;05/01/2026 15:50:00;2min;1;1;C;167.685,00;167.705,00;192.325,00;Sim;4,00;20,00;144;4,00;20,00;0,00;0,00;0,00;14min;392,00 +WINJ26;05/01/2026 16:08:00;05/01/2026 16:22:00;14min;1;1;V;167.745,00;167.720,00;192.325,00;Sim;-5,00;-25,00;145;-5,00;-25,00;0,00;0,00;0,00;20min;387,00 +WINJ26;05/01/2026 16:32:00;05/01/2026 16:42:00;10min;1;1;C;167.700,00;167.740,00;192.325,00;No;8,00;40,00;146;8,00;40,00;0,00;0,00;0,00;24min;395,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:30:00;20min;1;1;C;167.545,00;167.580,00;192.325,00;Sim;7,00;35,00;147;7,00;35,00;0,00;0,00;0,00;38min;402,00 +WINJ26;05/01/2026 17:44:00;05/01/2026 18:02:00;18min;1;1;V;167.645,00;167.630,00;192.325,00;No;-3,00;-15,00;148;-3,00;-15,00;0,00;0,00;0,00;34min;399,00 +WINJ26;05/01/2026 18:10:00;05/01/2026 18:12:00;2min;1;1;V;167.615,00;167.665,00;192.325,00;Sim;10,00;50,00;149;10,00;50,00;0,00;0,00;0,00;26min;409,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 09:58:00;28min;1;1;V;168.775,00;168.485,00;192.325,00;Sim;-58,00;-290,00;150;-58,00;-290,00;0,00;0,00;0,00;15h20min;351,00 +WINJ26;06/01/2026 10:20:00;06/01/2026 10:48:00;28min;1;1;V;169.595,00;169.390,00;192.325,00;Sim;-41,00;-205,00;151;-41,00;-205,00;0,00;0,00;0,00;50min;310,00 +WINJ26;06/01/2026 10:54:00;06/01/2026 10:58:00;4min;1;1;C;169.600,00;169.550,00;192.325,00;No;-10,00;-50,00;152;-10,00;-50,00;0,00;0,00;0,00;34min;300,00 +WINJ26;06/01/2026 11:04:00;06/01/2026 11:06:00;2min;1;1;C;169.625,00;169.735,00;192.325,00;No;22,00;110,00;153;22,00;110,00;0,00;0,00;0,00;10min;322,00 +WINJ26;06/01/2026 11:38:00;06/01/2026 11:40:00;2min;1;1;C;169.445,00;169.420,00;192.325,00;Sim;-5,00;-25,00;154;-5,00;-25,00;0,00;0,00;0,00;34min;317,00 +WINJ26;06/01/2026 12:12:00;06/01/2026 12:20:00;8min;1;1;V;169.505,00;169.645,00;192.325,00;Sim;28,00;140,00;155;28,00;140,00;0,00;0,00;0,00;34min;345,00 +WINJ26;06/01/2026 12:38:00;06/01/2026 12:44:00;6min;1;1;C;169.305,00;169.410,00;192.325,00;Sim;21,00;105,00;156;21,00;105,00;0,00;0,00;0,00;26min;366,00 +WINJ26;06/01/2026 13:00:00;06/01/2026 13:04:00;4min;1;1;V;169.400,00;169.475,00;192.325,00;No;15,00;75,00;157;15,00;75,00;0,00;0,00;0,00;22min;381,00 +WINJ26;06/01/2026 13:28:00;06/01/2026 13:30:00;2min;1;1;C;169.255,00;169.405,00;192.325,00;Sim;30,00;150,00;158;30,00;150,00;0,00;0,00;0,00;28min;411,00 +WINJ26;06/01/2026 13:36:00;06/01/2026 14:14:00;38min;1;1;V;169.460,00;169.425,00;192.325,00;No;-7,00;-35,00;159;-7,00;-35,00;0,00;0,00;0,00;8min;404,00 +WINJ26;06/01/2026 14:26:00;06/01/2026 14:34:00;8min;1;1;C;169.430,00;169.465,00;192.325,00;No;7,00;35,00;160;7,00;35,00;0,00;0,00;0,00;50min;411,00 +WINJ26;06/01/2026 14:42:00;06/01/2026 14:58:00;16min;1;1;V;169.470,00;169.490,00;192.325,00;Sim;4,00;20,00;161;4,00;20,00;0,00;0,00;0,00;16min;415,00 +WINJ26;06/01/2026 15:10:00;06/01/2026 15:18:00;8min;1;1;V;169.380,00;169.500,00;192.325,00;Sim;24,00;120,00;162;24,00;120,00;0,00;0,00;0,00;28min;439,00 +WINJ26;06/01/2026 15:36:00;06/01/2026 15:38:00;2min;1;1;C;169.410,00;169.365,00;192.325,00;Sim;-9,00;-45,00;163;-9,00;-45,00;0,00;0,00;0,00;26min;430,00 +WINJ26;06/01/2026 16:06:00;06/01/2026 16:14:00;8min;1;1;V;169.405,00;169.480,00;192.325,00;No;15,00;75,00;164;15,00;75,00;0,00;0,00;0,00;30min;445,00 +WINJ26;06/01/2026 16:38:00;06/01/2026 17:12:00;34min;1;1;C;169.210,00;169.195,00;192.325,00;Sim;-3,00;-15,00;165;-3,00;-15,00;0,00;0,00;0,00;32min;442,00 +WINJ26;06/01/2026 17:24:00;06/01/2026 17:32:00;8min;1;1;V;169.170,00;169.205,00;192.325,00;No;7,00;35,00;166;7,00;35,00;0,00;0,00;0,00;46min;449,00 +WINJ26;06/01/2026 17:58:00;06/01/2026 18:06:00;8min;1;1;V;169.320,00;169.285,00;192.325,00;Sim;-7,00;-35,00;167;-7,00;-35,00;0,00;0,00;0,00;34min;442,00 +WINJ26;07/01/2026 09:04:00;07/01/2026 09:06:00;2min;1;1;V;169.030,00;169.100,00;192.325,00;No;14,00;70,00;168;14,00;70,00;0,00;0,00;0,00;15h6min;456,00 +WINJ26;07/01/2026 09:08:00;07/01/2026 09:18:00;10min;1;1;C;169.210,00;169.280,00;192.325,00;No;14,00;70,00;169;14,00;70,00;0,00;0,00;0,00;4min;470,00 +WINJ26;07/01/2026 09:44:00;07/01/2026 09:50:00;6min;1;1;C;169.125,00;169.150,00;192.325,00;Sim;5,00;25,00;170;5,00;25,00;0,00;0,00;0,00;36min;475,00 +WINJ26;07/01/2026 09:58:00;07/01/2026 10:28:00;30min;1;1;C;169.010,00;168.510,00;192.325,00;Sim;-100,00;-500,00;171;-100,00;-500,00;0,00;0,00;0,00;14min;375,00 +WINJ26;07/01/2026 10:36:00;07/01/2026 10:38:00;2min;1;1;C;168.605,00;168.765,00;192.325,00;Sim;32,00;160,00;172;32,00;160,00;0,00;0,00;0,00;38min;407,00 +WINJ26;07/01/2026 10:46:00;07/01/2026 10:48:00;2min;1;1;V;168.675,00;168.650,00;192.325,00;No;-5,00;-25,00;173;-5,00;-25,00;0,00;0,00;0,00;10min;402,00 +WINJ26;07/01/2026 11:02:00;07/01/2026 11:30:00;28min;1;1;C;168.320,00;168.020,00;192.325,00;Sim;-60,00;-300,00;174;-60,00;-300,00;0,00;0,00;0,00;16min;342,00 +WINJ26;07/01/2026 11:42:00;07/01/2026 12:10:00;28min;1;1;C;167.765,00;167.475,00;192.325,00;Sim;-58,00;-290,00;175;-58,00;-290,00;0,00;0,00;0,00;40min;284,00 +WINJ26;07/01/2026 12:46:00;07/01/2026 13:08:00;22min;1;1;V;167.650,00;167.570,00;192.325,00;No;-16,00;-80,00;176;-16,00;-80,00;0,00;0,00;0,00;1h4min;268,00 +WINJ26;07/01/2026 13:28:00;07/01/2026 13:38:00;10min;1;1;V;167.650,00;167.785,00;192.325,00;Sim;27,00;135,00;177;27,00;135,00;0,00;0,00;0,00;42min;295,00 +WINJ26;07/01/2026 14:22:00;07/01/2026 14:24:00;2min;1;1;C;167.680,00;167.575,00;192.325,00;Sim;-21,00;-105,00;178;-21,00;-105,00;0,00;0,00;0,00;54min;274,00 +WINJ26;07/01/2026 14:30:00;07/01/2026 14:40:00;10min;1;1;C;167.680,00;167.685,00;192.325,00;No;1,00;5,00;179;1,00;5,00;0,00;0,00;0,00;8min;275,00 +WINJ26;07/01/2026 14:50:00;07/01/2026 14:52:00;2min;1;1;V;167.545,00;167.620,00;192.325,00;No;15,00;75,00;180;15,00;75,00;0,00;0,00;0,00;20min;290,00 +WINJ26;07/01/2026 15:10:00;07/01/2026 15:16:00;6min;1;1;C;167.655,00;167.530,00;192.325,00;Sim;-25,00;-125,00;181;-25,00;-125,00;0,00;0,00;0,00;20min;265,00 +WINJ26;07/01/2026 15:30:00;07/01/2026 15:34:00;4min;1;1;C;167.515,00;167.625,00;192.325,00;Sim;22,00;110,00;182;22,00;110,00;0,00;0,00;0,00;20min;287,00 +WINJ26;07/01/2026 15:44:00;07/01/2026 16:12:00;28min;1;1;V;167.600,00;167.670,00;192.325,00;Sim;14,00;70,00;183;14,00;70,00;0,00;0,00;0,00;14min;301,00 +WINJ26;07/01/2026 16:58:00;07/01/2026 17:00:00;2min;1;1;C;167.675,00;167.690,00;192.325,00;No;3,00;15,00;184;3,00;15,00;0,00;0,00;0,00;1h14min;304,00 +WINJ26;07/01/2026 17:32:00;07/01/2026 17:34:00;2min;1;1;C;167.660,00;167.650,00;192.325,00;Sim;-2,00;-10,00;185;-2,00;-10,00;0,00;0,00;0,00;34min;302,00 +WINJ26;07/01/2026 17:42:00;07/01/2026 18:12:00;30min;1;1;C;167.660,00;167.470,00;192.325,00;No;-38,00;-190,00;186;-38,00;-190,00;0,00;0,00;0,00;10min;264,00 +WINJ26;07/01/2026 18:18:00;08/01/2026 09:12:00;14h54min;1;1;C;167.460,00;167.445,00;192.325,00;Sim;-3,00;-15,00;187;-3,00;-15,00;0,00;0,00;0,00;36min;261,00 +WINJ26;08/01/2026 09:14:00;08/01/2026 09:22:00;8min;1;1;V;167.400,00;167.265,00;192.325,00;No;-27,00;-135,00;188;-27,00;-135,00;0,00;0,00;0,00;14h56min;234,00 +WINJ26;08/01/2026 09:32:00;08/01/2026 09:34:00;2min;1;1;V;167.400,00;167.330,00;192.325,00;Sim;-14,00;-70,00;189;-14,00;-70,00;0,00;0,00;0,00;18min;220,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 10:02:00;2min;1;1;V;167.415,00;167.525,00;192.325,00;Sim;22,00;110,00;190;22,00;110,00;0,00;0,00;0,00;28min;242,00 +WINJ26;08/01/2026 10:14:00;08/01/2026 10:16:00;2min;1;1;V;167.540,00;167.680,00;192.325,00;Sim;28,00;140,00;191;28,00;140,00;0,00;0,00;0,00;14min;270,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:48:00;8min;1;1;V;167.795,00;167.855,00;192.325,00;Sim;12,00;60,00;192;12,00;60,00;0,00;0,00;0,00;26min;282,00 +WINJ26;08/01/2026 11:00:00;08/01/2026 11:04:00;4min;1;1;C;167.590,00;167.750,00;192.325,00;No;32,00;160,00;193;32,00;160,00;0,00;0,00;0,00;20min;314,00 +WINJ26;08/01/2026 11:18:00;08/01/2026 11:20:00;2min;1;1;C;167.585,00;167.750,00;192.325,00;Sim;33,00;165,00;194;33,00;165,00;0,00;0,00;0,00;18min;347,00 +WINJ26;08/01/2026 11:32:00;08/01/2026 11:50:00;18min;1;1;V;167.880,00;167.920,00;192.325,00;Sim;8,00;40,00;195;8,00;40,00;0,00;0,00;0,00;14min;355,00 +WINJ26;08/01/2026 11:54:00;08/01/2026 12:04:00;10min;1;1;C;167.925,00;167.860,00;192.325,00;No;-13,00;-65,00;196;-13,00;-65,00;0,00;0,00;0,00;22min;342,00 +WINJ26;08/01/2026 12:32:00;08/01/2026 12:36:00;4min;1;1;C;167.990,00;168.005,00;192.325,00;No;3,00;15,00;197;3,00;15,00;0,00;0,00;0,00;38min;345,00 +WINJ26;08/01/2026 12:40:00;08/01/2026 12:54:00;14min;1;1;C;168.030,00;167.925,00;192.325,00;No;-21,00;-105,00;198;-21,00;-105,00;0,00;0,00;0,00;8min;324,00 +WINJ26;08/01/2026 13:18:00;08/01/2026 13:28:00;10min;1;1;C;167.875,00;167.940,00;192.325,00;Sim;13,00;65,00;199;13,00;65,00;0,00;0,00;0,00;38min;337,00 +WINJ26;08/01/2026 13:42:00;08/01/2026 13:50:00;8min;1;1;V;168.100,00;168.000,00;192.325,00;Sim;-20,00;-100,00;200;-20,00;-100,00;0,00;0,00;0,00;24min;317,00 +WINJ26;08/01/2026 13:56:00;08/01/2026 14:12:00;16min;1;1;V;168.005,00;167.995,00;192.325,00;No;-2,00;-10,00;201;-2,00;-10,00;0,00;0,00;0,00;14min;315,00 +WINJ26;08/01/2026 14:20:00;08/01/2026 14:34:00;14min;1;1;C;168.030,00;167.970,00;192.325,00;No;-12,00;-60,00;202;-12,00;-60,00;0,00;0,00;0,00;24min;303,00 +WINJ26;08/01/2026 15:04:00;08/01/2026 15:28:00;24min;1;1;C;167.855,00;167.900,00;192.325,00;Sim;9,00;45,00;203;9,00;45,00;0,00;0,00;0,00;44min;312,00 +WINJ26;08/01/2026 15:40:00;08/01/2026 15:42:00;2min;1;1;V;167.870,00;167.865,00;192.325,00;No;-1,00;-5,00;204;-1,00;-5,00;0,00;0,00;0,00;36min;311,00 +WINJ26;08/01/2026 15:56:00;08/01/2026 15:58:00;2min;1;1;V;167.895,00;168.010,00;192.325,00;Sim;23,00;115,00;205;23,00;115,00;0,00;0,00;0,00;16min;334,00 +WINJ26;08/01/2026 16:46:00;08/01/2026 16:54:00;8min;1;1;V;168.020,00;168.115,00;192.325,00;Sim;19,00;95,00;206;19,00;95,00;0,00;0,00;0,00;50min;353,00 +WINJ26;08/01/2026 17:00:00;08/01/2026 17:34:00;34min;1;1;C;168.055,00;168.130,00;192.325,00;No;15,00;75,00;207;15,00;75,00;0,00;0,00;0,00;14min;368,00 +WINJ26;08/01/2026 17:44:00;08/01/2026 18:24:00;40min;1;1;V;168.200,00;168.140,00;192.325,00;Sim;-12,00;-60,00;208;-12,00;-60,00;0,00;0,00;0,00;44min;356,00 +WINJ26;09/01/2026 09:04:00;09/01/2026 09:12:00;8min;1;1;V;168.140,00;168.305,00;192.325,00;Sim;33,00;165,00;209;33,00;165,00;0,00;0,00;0,00;15h20min;389,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:52:00;22min;1;1;C;168.050,00;168.010,00;192.325,00;Sim;-8,00;-40,00;210;-8,00;-40,00;0,00;0,00;0,00;26min;381,00 +WINJ26;09/01/2026 10:02:00;09/01/2026 10:16:00;14min;1;1;V;168.200,00;168.100,00;192.325,00;No;-20,00;-100,00;211;-20,00;-100,00;0,00;0,00;0,00;32min;361,00 +WINJ26;09/01/2026 10:56:00;09/01/2026 11:02:00;6min;1;1;V;169.045,00;169.290,00;192.325,00;Sim;49,00;245,00;212;49,00;245,00;0,00;0,00;0,00;54min;410,00 +WINJ26;09/01/2026 11:08:00;09/01/2026 11:32:00;24min;1;1;C;169.100,00;169.005,00;192.325,00;No;-19,00;-95,00;213;-19,00;-95,00;0,00;0,00;0,00;12min;391,00 +WINJ26;09/01/2026 11:38:00;09/01/2026 12:06:00;28min;1;1;V;169.465,00;169.280,00;192.325,00;No;-37,00;-185,00;214;-37,00;-185,00;0,00;0,00;0,00;30min;354,00 +WINJ26;09/01/2026 12:20:00;09/01/2026 12:24:00;4min;1;1;C;169.285,00;169.350,00;192.325,00;No;13,00;65,00;215;13,00;65,00;0,00;0,00;0,00;42min;367,00 +WINJ26;09/01/2026 12:58:00;09/01/2026 13:10:00;12min;1;1;C;169.250,00;169.270,00;192.325,00;Sim;4,00;20,00;216;4,00;20,00;0,00;0,00;0,00;38min;371,00 +WINJ26;09/01/2026 13:42:00;09/01/2026 14:10:00;28min;1;1;V;169.550,00;169.350,00;192.325,00;Sim;-40,00;-200,00;217;-40,00;-200,00;0,00;0,00;0,00;44min;331,00 +WINJ26;09/01/2026 14:38:00;09/01/2026 14:42:00;4min;1;1;V;169.555,00;169.615,00;192.325,00;Sim;12,00;60,00;218;12,00;60,00;0,00;0,00;0,00;56min;343,00 +WINJ26;09/01/2026 14:58:00;09/01/2026 15:32:00;34min;1;1;C;169.505,00;169.345,00;192.325,00;No;-32,00;-160,00;219;-32,00;-160,00;0,00;0,00;0,00;20min;311,00 +WINJ26;09/01/2026 15:34:00;09/01/2026 15:42:00;8min;1;1;C;169.295,00;169.355,00;192.325,00;Sim;12,00;60,00;220;12,00;60,00;0,00;0,00;0,00;36min;323,00 +WINJ26;09/01/2026 16:22:00;09/01/2026 16:52:00;30min;1;1;C;169.035,00;169.085,00;192.325,00;Sim;10,00;50,00;221;10,00;50,00;0,00;0,00;0,00;48min;333,00 +WINJ26;09/01/2026 16:58:00;09/01/2026 17:00:00;2min;1;1;V;169.045,00;169.015,00;192.325,00;No;-6,00;-30,00;222;-6,00;-30,00;0,00;0,00;0,00;36min;327,00 +WINJ26;09/01/2026 17:08:00;09/01/2026 17:12:00;4min;1;1;V;169.020,00;169.040,00;192.325,00;Sim;4,00;20,00;223;4,00;20,00;0,00;0,00;0,00;10min;331,00 +WINJ26;09/01/2026 17:34:00;09/01/2026 17:38:00;4min;1;1;V;168.980,00;168.990,00;192.325,00;No;2,00;10,00;224;2,00;10,00;0,00;0,00;0,00;26min;333,00 +WINJ26;09/01/2026 17:46:00;09/01/2026 18:18:00;32min;1;1;C;168.800,00;168.525,00;192.325,00;Sim;-55,00;-275,00;225;-55,00;-275,00;0,00;0,00;0,00;12min;278,00 +WINJ26;12/01/2026 09:00:00;12/01/2026 09:02:00;2min;1;1;C;168.590,00;168.705,00;192.325,00;Sim;23,00;115,00;226;23,00;115,00;0,00;0,00;0,00;2d15h;301,00 +WINJ26;12/01/2026 09:06:00;12/01/2026 09:08:00;2min;1;1;V;168.485,00;168.555,00;192.325,00;No;14,00;70,00;227;14,00;70,00;0,00;0,00;0,00;6min;315,00 +WINJ26;12/01/2026 09:26:00;12/01/2026 09:28:00;2min;1;1;V;168.835,00;168.825,00;192.325,00;Sim;-2,00;-10,00;228;-2,00;-10,00;0,00;0,00;0,00;20min;313,00 +WINJ26;12/01/2026 09:50:00;12/01/2026 10:20:00;30min;1;1;C;168.560,00;168.475,00;192.325,00;Sim;-17,00;-85,00;229;-17,00;-85,00;0,00;0,00;0,00;24min;296,00 +WINJ26;12/01/2026 10:56:00;12/01/2026 11:20:00;24min;1;1;C;168.040,00;167.960,00;192.325,00;Sim;-16,00;-80,00;230;-16,00;-80,00;0,00;0,00;0,00;1h6min;280,00 +WINJ26;12/01/2026 11:44:00;12/01/2026 12:12:00;28min;1;1;V;168.565,00;168.525,00;192.325,00;No;-8,00;-40,00;231;-8,00;-40,00;0,00;0,00;0,00;48min;272,00 +WINJ26;12/01/2026 12:26:00;12/01/2026 12:50:00;24min;1;1;V;168.700,00;168.715,00;192.325,00;Sim;3,00;15,00;232;3,00;15,00;0,00;0,00;0,00;42min;275,00 +WINJ26;12/01/2026 13:00:00;12/01/2026 13:02:00;2min;1;1;C;168.755,00;168.690,00;192.325,00;No;-13,00;-65,00;233;-13,00;-65,00;0,00;0,00;0,00;34min;262,00 +WINJ26;12/01/2026 13:34:00;12/01/2026 13:36:00;2min;1;1;C;168.765,00;168.800,00;192.325,00;No;7,00;35,00;234;7,00;35,00;0,00;0,00;0,00;34min;269,00 +WINJ26;12/01/2026 14:04:00;12/01/2026 14:30:00;26min;1;1;C;168.615,00;168.625,00;192.325,00;Sim;2,00;10,00;235;2,00;10,00;0,00;0,00;0,00;30min;271,00 +WINJ26;12/01/2026 15:12:00;12/01/2026 15:26:00;14min;1;1;V;168.675,00;168.725,00;192.325,00;Sim;10,00;50,00;236;10,00;50,00;0,00;0,00;0,00;1h8min;281,00 +WINJ26;12/01/2026 15:48:00;12/01/2026 16:22:00;34min;1;1;C;168.600,00;168.565,00;192.325,00;Sim;-7,00;-35,00;237;-7,00;-35,00;0,00;0,00;0,00;36min;274,00 +WINJ26;12/01/2026 16:40:00;12/01/2026 16:42:00;2min;1;1;V;168.575,00;168.620,00;192.325,00;No;9,00;45,00;238;9,00;45,00;0,00;0,00;0,00;52min;283,00 +WINJ26;12/01/2026 17:38:00;12/01/2026 17:56:00;18min;1;1;C;168.490,00;168.460,00;192.325,00;Sim;-6,00;-30,00;239;-6,00;-30,00;0,00;0,00;0,00;58min;277,00 +WINJ26;12/01/2026 18:18:00;13/01/2026 09:08:00;14h50min;1;1;V;168.400,00;168.505,00;192.325,00;No;21,00;105,00;240;21,00;105,00;0,00;0,00;0,00;40min;298,00 +WINJ26;13/01/2026 09:56:00;13/01/2026 10:22:00;26min;1;1;C;167.785,00;167.625,00;192.325,00;Sim;-32,00;-160,00;241;-32,00;-160,00;0,00;0,00;0,00;15h38min;266,00 +WINJ26;13/01/2026 10:46:00;13/01/2026 10:50:00;4min;1;1;V;167.700,00;167.705,00;192.325,00;No;1,00;5,00;242;1,00;5,00;0,00;0,00;0,00;50min;267,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.325,00;Sim;29,00;145,00;243;29,00;145,00;0,00;0,00;0,00;28min;296,00 +WINJ26;13/01/2026 11:46:00;13/01/2026 12:16:00;30min;1;1;C;167.675,00;167.265,00;192.325,00;Sim;-82,00;-410,00;244;-82,00;-410,00;0,00;0,00;0,00;32min;214,00 +WINJ26;13/01/2026 12:18:00;13/01/2026 12:42:00;24min;1;1;C;167.265,00;167.210,00;192.325,00;Sim;-11,00;-55,00;245;-11,00;-55,00;0,00;0,00;0,00;32min;203,00 +WINJ26;13/01/2026 13:18:00;13/01/2026 13:30:00;12min;1;1;C;167.045,00;167.085,00;192.325,00;Sim;8,00;40,00;246;8,00;40,00;0,00;0,00;0,00;1h;211,00 +WINJ26;13/01/2026 13:58:00;13/01/2026 14:00:00;2min;1;1;V;167.175,00;167.220,00;192.325,00;No;9,00;45,00;247;9,00;45,00;0,00;0,00;0,00;40min;220,00 +WINJ26;13/01/2026 14:20:00;13/01/2026 14:40:00;20min;1;1;V;167.260,00;167.375,00;192.325,00;Sim;23,00;115,00;248;23,00;115,00;0,00;0,00;0,00;22min;243,00 +WINJ26;13/01/2026 14:42:00;13/01/2026 14:44:00;2min;1;1;C;167.280,00;167.335,00;192.325,00;No;11,00;55,00;249;11,00;55,00;0,00;0,00;0,00;22min;254,00 +WINJ26;13/01/2026 14:54:00;13/01/2026 15:00:00;6min;1;1;V;167.295,00;167.375,00;192.325,00;No;16,00;80,00;250;16,00;80,00;0,00;0,00;0,00;12min;270,00 +WINJ26;13/01/2026 15:14:00;13/01/2026 15:16:00;2min;1;1;C;167.325,00;167.325,00;192.325,00;No;0;0;251;0;0;0,00;0,00;0,00;20min;270,00 +WINJ26;13/01/2026 15:24:00;13/01/2026 15:26:00;2min;1;1;V;167.215,00;167.290,00;192.325,00;No;15,00;75,00;252;15,00;75,00;0,00;0,00;0,00;10min;285,00 +WINJ26;13/01/2026 16:22:00;13/01/2026 16:38:00;16min;1;1;C;167.065,00;167.200,00;192.325,00;Sim;27,00;135,00;253;27,00;135,00;0,00;0,00;0,00;58min;312,00 +WINJ26;13/01/2026 17:16:00;13/01/2026 17:22:00;6min;1;1;V;167.145,00;167.250,00;192.325,00;No;21,00;105,00;254;21,00;105,00;0,00;0,00;0,00;54min;333,00 +WINJ26;13/01/2026 17:42:00;13/01/2026 18:18:00;36min;1;1;C;167.170,00;167.020,00;192.325,00;No;-30,00;-150,00;255;-30,00;-150,00;0,00;0,00;0,00;26min;303,00 +WINJ26;14/01/2026 09:00:00;14/01/2026 09:02:00;2min;1;1;C;167.305,00;167.260,00;192.325,00;No;-9,00;-45,00;256;-9,00;-45,00;0,00;0,00;0,00;15h18min;294,00 +WINJ26;14/01/2026 09:30:00;14/01/2026 09:58:00;28min;1;1;V;168.135,00;167.920,00;192.325,00;Sim;-43,00;-215,00;257;-43,00;-215,00;0,00;0,00;0,00;30min;251,00 +WINJ26;14/01/2026 10:04:00;14/01/2026 10:32:00;28min;1;1;V;168.545,00;168.100,00;192.325,00;Sim;-89,00;-445,00;258;-89,00;-445,00;0,00;0,00;0,00;34min;162,00 +WINJ26;14/01/2026 10:40:00;14/01/2026 10:42:00;2min;1;1;C;168.545,00;168.590,00;192.325,00;No;9,00;45,00;259;9,00;45,00;0,00;0,00;0,00;36min;171,00 +WINJ26;14/01/2026 10:44:00;14/01/2026 10:46:00;2min;1;1;C;168.650,00;168.640,00;192.325,00;No;-2,00;-10,00;260;-2,00;-10,00;0,00;0,00;0,00;4min;169,00 +WINJ26;14/01/2026 11:14:00;14/01/2026 11:22:00;8min;1;1;C;167.760,00;168.170,00;192.325,00;Sim;82,00;410,00;261;82,00;410,00;0,00;0,00;0,00;30min;251,00 +WINJ26;14/01/2026 11:52:00;14/01/2026 12:22:00;30min;1;1;V;168.985,00;168.520,00;192.325,00;Sim;-93,00;-465,00;262;-93,00;-465,00;0,00;0,00;0,00;38min;158,00 +WINJ26;14/01/2026 12:30:00;14/01/2026 12:32:00;2min;1;1;V;168.815,00;168.865,00;192.325,00;Sim;10,00;50,00;263;10,00;50,00;0,00;0,00;0,00;38min;168,00 +WINJ26;14/01/2026 12:44:00;14/01/2026 12:46:00;2min;1;1;V;168.740,00;168.770,00;192.325,00;No;6,00;30,00;264;6,00;30,00;0,00;0,00;0,00;14min;174,00 +WINJ26;14/01/2026 12:56:00;14/01/2026 13:04:00;8min;1;1;C;168.600,00;168.695,00;192.325,00;No;19,00;95,00;265;19,00;95,00;0,00;0,00;0,00;12min;193,00 +WINJ26;14/01/2026 13:36:00;14/01/2026 13:48:00;12min;1;1;V;168.770,00;168.820,00;192.325,00;Sim;10,00;50,00;266;10,00;50,00;0,00;0,00;0,00;40min;203,00 +WINJ26;14/01/2026 13:58:00;14/01/2026 14:00:00;2min;1;1;V;168.745,00;168.750,00;192.325,00;No;1,00;5,00;267;1,00;5,00;0,00;0,00;0,00;22min;204,00 +WINJ26;14/01/2026 14:22:00;14/01/2026 14:38:00;16min;1;1;V;168.870,00;168.905,00;192.325,00;Sim;7,00;35,00;268;7,00;35,00;0,00;0,00;0,00;24min;211,00 +WINJ26;14/01/2026 14:50:00;14/01/2026 15:02:00;12min;1;1;C;168.900,00;168.930,00;192.325,00;No;6,00;30,00;269;6,00;30,00;0,00;0,00;0,00;28min;217,00 +WINJ26;14/01/2026 15:08:00;14/01/2026 15:12:00;4min;1;1;V;168.980,00;168.985,00;192.325,00;Sim;1,00;5,00;270;1,00;5,00;0,00;0,00;0,00;18min;218,00 +WINJ26;14/01/2026 15:34:00;14/01/2026 16:02:00;28min;1;1;V;169.625,00;169.300,00;192.325,00;Sim;-65,00;-325,00;271;-65,00;-325,00;0,00;0,00;0,00;26min;153,00 +WINJ26;14/01/2026 16:10:00;14/01/2026 16:38:00;28min;1;1;V;169.865,00;169.600,00;192.325,00;Sim;-53,00;-265,00;272;-53,00;-265,00;0,00;0,00;0,00;36min;100,00 +WINJ26;14/01/2026 16:44:00;14/01/2026 17:02:00;18min;1;1;V;169.750,00;169.855,00;192.325,00;Sim;21,00;105,00;273;21,00;105,00;0,00;0,00;0,00;34min;121,00 +WINJ26;14/01/2026 17:20:00;14/01/2026 17:22:00;2min;1;1;C;169.815,00;169.785,00;192.325,00;No;-6,00;-30,00;274;-6,00;-30,00;0,00;0,00;0,00;36min;115,00 +WINJ26;14/01/2026 17:48:00;14/01/2026 18:16:00;28min;1;1;V;170.485,00;170.220,00;192.325,00;Sim;-53,00;-265,00;275;-53,00;-265,00;0,00;0,00;0,00;28min;62,00 +WINJ26;14/01/2026 18:18:00;15/01/2026 09:02:00;14h44min;1;1;V;170.355,00;170.465,00;192.325,00;Sim;22,00;110,00;276;22,00;110,00;0,00;0,00;0,00;30min;84,00 +WINJ26;15/01/2026 09:08:00;15/01/2026 09:10:00;2min;1;1;C;170.615,00;170.620,00;192.325,00;No;1,00;5,00;277;1,00;5,00;0,00;0,00;0,00;14h50min;85,00 +WINJ26;15/01/2026 09:24:00;15/01/2026 09:32:00;8min;1;1;C;170.415,00;170.440,00;192.325,00;Sim;5,00;25,00;278;5,00;25,00;0,00;0,00;0,00;16min;90,00 +WINJ26;15/01/2026 09:42:00;15/01/2026 09:44:00;2min;1;1;C;170.475,00;170.525,00;192.325,00;No;10,00;50,00;279;10,00;50,00;0,00;0,00;0,00;18min;100,00 +WINJ26;15/01/2026 10:06:00;15/01/2026 10:08:00;2min;1;1;V;170.600,00;170.840,00;192.325,00;Sim;48,00;240,00;280;48,00;240,00;0,00;0,00;0,00;24min;148,00 +WINJ26;15/01/2026 10:18:00;15/01/2026 10:20:00;2min;1;1;C;170.755,00;170.555,00;192.325,00;No;-40,00;-200,00;281;-40,00;-200,00;0,00;0,00;0,00;12min;108,00 +WINJ26;15/01/2026 10:28:00;15/01/2026 10:36:00;8min;1;1;C;170.610,00;170.575,00;192.325,00;Sim;-7,00;-35,00;282;-7,00;-35,00;0,00;0,00;0,00;10min;101,00 +WINJ26;15/01/2026 10:54:00;15/01/2026 11:22:00;28min;1;1;C;170.290,00;170.195,00;192.325,00;Sim;-19,00;-95,00;283;-19,00;-95,00;0,00;0,00;0,00;26min;82,00 +WINJ26;15/01/2026 11:26:00;15/01/2026 11:28:00;2min;1;1;C;170.210,00;170.280,00;192.325,00;Sim;14,00;70,00;284;14,00;70,00;0,00;0,00;0,00;32min;96,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 12:00:00;16min;1;1;C;170.070,00;170.120,00;192.325,00;Sim;10,00;50,00;285;10,00;50,00;0,00;0,00;0,00;18min;106,00 +WINJ26;15/01/2026 12:20:00;15/01/2026 12:26:00;6min;1;1;V;170.265,00;170.305,00;192.325,00;No;8,00;40,00;286;8,00;40,00;0,00;0,00;0,00;36min;114,00 +WINJ26;15/01/2026 12:40:00;15/01/2026 13:00:00;20min;1;1;V;170.500,00;170.470,00;192.325,00;Sim;-6,00;-30,00;287;-6,00;-30,00;0,00;0,00;0,00;20min;108,00 +WINJ26;15/01/2026 13:06:00;15/01/2026 13:16:00;10min;1;1;C;170.405,00;170.545,00;192.325,00;No;28,00;140,00;288;28,00;140,00;0,00;0,00;0,00;26min;136,00 +WINJ26;15/01/2026 13:32:00;15/01/2026 13:58:00;26min;1;1;V;170.640,00;170.560,00;192.325,00;Sim;-16,00;-80,00;289;-16,00;-80,00;0,00;0,00;0,00;26min;120,00 +WINJ26;15/01/2026 14:10:00;15/01/2026 14:24:00;14min;1;1;V;170.730,00;170.755,00;192.325,00;Sim;5,00;25,00;290;5,00;25,00;0,00;0,00;0,00;38min;125,00 +WINJ26;15/01/2026 14:30:00;15/01/2026 14:34:00;4min;1;1;C;170.760,00;170.785,00;192.325,00;No;5,00;25,00;291;5,00;25,00;0,00;0,00;0,00;20min;130,00 +WINJ26;15/01/2026 14:50:00;15/01/2026 14:54:00;4min;1;1;V;170.800,00;170.760,00;192.325,00;Sim;-8,00;-40,00;292;-8,00;-40,00;0,00;0,00;0,00;20min;122,00 +WINJ26;15/01/2026 15:12:00;15/01/2026 15:40:00;28min;1;1;V;171.195,00;171.175,00;192.325,00;Sim;-4,00;-20,00;293;-4,00;-20,00;0,00;0,00;0,00;22min;118,00 +WINJ26;15/01/2026 15:44:00;15/01/2026 15:46:00;2min;1;1;C;171.260,00;171.240,00;192.325,00;No;-4,00;-20,00;294;-4,00;-20,00;0,00;0,00;0,00;32min;114,00 +WINJ26;15/01/2026 15:54:00;15/01/2026 15:58:00;4min;1;1;C;171.250,00;171.265,00;192.325,00;Sim;3,00;15,00;295;3,00;15,00;0,00;0,00;0,00;10min;117,00 +WINJ26;15/01/2026 16:04:00;15/01/2026 16:08:00;4min;1;1;C;171.180,00;171.200,00;192.325,00;Sim;4,00;20,00;296;4,00;20,00;0,00;0,00;0,00;10min;121,00 +WINJ26;15/01/2026 16:20:00;15/01/2026 16:56:00;36min;1;1;C;171.110,00;170.815,00;192.325,00;Sim;-59,00;-295,00;297;-59,00;-295,00;0,00;0,00;0,00;16min;62,00 +WINJ26;15/01/2026 17:36:00;15/01/2026 18:02:00;26min;1;1;C;170.600,00;170.700,00;192.325,00;Sim;20,00;100,00;298;20,00;100,00;0,00;0,00;0,00;1h16min;82,00 +WINJ26;16/01/2026 09:22:00;16/01/2026 09:28:00;6min;1;1;V;171.005,00;171.150,00;192.325,00;No;29,00;145,00;299;29,00;145,00;0,00;0,00;0,00;15h46min;111,00 +WINJ26;16/01/2026 10:16:00;16/01/2026 10:46:00;30min;1;1;C;170.715,00;170.300,00;192.325,00;No;-83,00;-415,00;300;-83,00;-415,00;0,00;0,00;0,00;54min;28,00 +WINJ26;16/01/2026 10:54:00;16/01/2026 11:22:00;28min;1;1;C;170.335,00;169.615,00;192.325,00;Sim;-144,00;-720,00;301;-144,00;-720,00;0,00;0,00;0,00;38min;-116,00 +WINJ26;16/01/2026 11:26:00;16/01/2026 11:48:00;22min;1;1;C;169.595,00;169.830,00;192.325,00;Sim;47,00;235,00;302;47,00;235,00;0,00;0,00;0,00;32min;-69,00 +WINJ26;16/01/2026 12:02:00;16/01/2026 12:16:00;14min;1;1;V;169.780,00;169.880,00;192.325,00;No;20,00;100,00;303;20,00;100,00;0,00;0,00;0,00;36min;-49,00 +WINJ26;16/01/2026 12:38:00;16/01/2026 12:50:00;12min;1;1;C;169.335,00;169.500,00;192.325,00;Sim;33,00;165,00;304;33,00;165,00;0,00;0,00;0,00;36min;-16,00 +WINJ26;16/01/2026 12:54:00;16/01/2026 12:56:00;2min;1;1;V;169.285,00;169.360,00;192.325,00;No;15,00;75,00;305;15,00;75,00;0,00;0,00;0,00;16min;-1,00 +WINJ26;16/01/2026 13:20:00;16/01/2026 13:52:00;32min;1;1;V;169.605,00;169.505,00;192.325,00;Sim;-20,00;-100,00;306;-20,00;-100,00;0,00;0,00;0,00;26min;-21,00 +WINJ26;16/01/2026 13:54:00;16/01/2026 13:58:00;4min;1;1;V;169.505,00;169.650,00;192.325,00;Sim;29,00;145,00;307;29,00;145,00;0,00;0,00;0,00;34min;8,00 +WINJ26;16/01/2026 14:16:00;16/01/2026 14:18:00;2min;1;1;V;169.495,00;169.490,00;192.325,00;No;-1,00;-5,00;308;-1,00;-5,00;0,00;0,00;0,00;22min;7,00 +WINJ26;16/01/2026 14:30:00;16/01/2026 14:32:00;2min;1;1;C;169.540,00;169.555,00;192.325,00;No;3,00;15,00;309;3,00;15,00;0,00;0,00;0,00;14min;10,00 +WINJ26;16/01/2026 15:18:00;16/01/2026 15:38:00;20min;1;1;V;169.645,00;169.595,00;192.325,00;Sim;-10,00;-50,00;310;-10,00;-50,00;0,00;0,00;0,00;48min;0,00 +WINJ26;16/01/2026 15:46:00;16/01/2026 15:48:00;2min;1;1;V;169.600,00;169.580,00;192.325,00;No;-4,00;-20,00;311;-4,00;-20,00;0,00;0,00;0,00;28min;-4,00 +WINJ26;16/01/2026 15:58:00;16/01/2026 16:02:00;4min;1;1;V;169.665,00;169.670,00;192.325,00;Sim;1,00;5,00;312;1,00;5,00;0,00;0,00;0,00;12min;-3,00 +WINJ26;16/01/2026 16:50:00;16/01/2026 16:52:00;2min;1;1;C;169.695,00;169.655,00;192.325,00;No;-8,00;-40,00;313;-8,00;-40,00;0,00;0,00;0,00;52min;-11,00 +WINJ26;16/01/2026 16:56:00;16/01/2026 17:00:00;4min;1;1;V;169.665,00;169.670,00;192.325,00;No;1,00;5,00;314;1,00;5,00;0,00;0,00;0,00;6min;-10,00 +WINJ26;16/01/2026 17:06:00;16/01/2026 17:12:00;6min;1;1;V;169.695,00;169.735,00;192.325,00;Sim;8,00;40,00;315;8,00;40,00;0,00;0,00;0,00;10min;-2,00 +WINJ26;16/01/2026 17:56:00;16/01/2026 18:06:00;10min;1;1;C;169.580,00;169.630,00;192.325,00;Sim;10,00;50,00;316;10,00;50,00;0,00;0,00;0,00;50min;8,00 +WINJ26;16/01/2026 18:12:00;19/01/2026 09:02:00;2d14h;1;1;V;169.210,00;169.700,00;192.325,00;No;98,00;490,00;317;98,00;490,00;0,00;0,00;0,00;16min;106,00 +WINJ26;19/01/2026 09:14:00;19/01/2026 09:16:00;2min;1;1;C;169.230,00;169.400,00;192.325,00;Sim;34,00;170,00;318;34,00;170,00;0,00;0,00;0,00;2d15h;140,00 +WINJ26;19/01/2026 09:52:00;19/01/2026 09:54:00;2min;1;1;V;169.485,00;169.500,00;192.325,00;No;3,00;15,00;319;3,00;15,00;0,00;0,00;0,00;38min;143,00 +WINJ26;19/01/2026 10:02:00;19/01/2026 10:20:00;18min;1;1;V;169.640,00;169.570,00;192.325,00;Sim;-14,00;-70,00;320;-14,00;-70,00;0,00;0,00;0,00;10min;129,00 +WINJ26;19/01/2026 10:30:00;19/01/2026 10:38:00;8min;1;1;C;169.420,00;169.615,00;192.325,00;No;39,00;195,00;321;39,00;195,00;0,00;0,00;0,00;28min;168,00 +WINJ26;19/01/2026 11:22:00;19/01/2026 11:34:00;12min;1;1;C;169.435,00;169.525,00;192.325,00;No;18,00;90,00;322;18,00;90,00;0,00;0,00;0,00;52min;186,00 +WINJ26;19/01/2026 11:44:00;19/01/2026 12:06:00;22min;1;1;V;169.640,00;169.475,00;192.325,00;No;-33,00;-165,00;323;-33,00;-165,00;0,00;0,00;0,00;22min;153,00 +WINJ26;19/01/2026 12:20:00;19/01/2026 12:32:00;12min;1;1;C;169.540,00;169.560,00;192.325,00;No;4,00;20,00;324;4,00;20,00;0,00;0,00;0,00;36min;157,00 +WINJ26;19/01/2026 12:36:00;19/01/2026 13:04:00;28min;1;1;V;169.775,00;169.680,00;192.325,00;Sim;-19,00;-95,00;325;-19,00;-95,00;0,00;0,00;0,00;16min;138,00 +WINJ26;19/01/2026 13:18:00;19/01/2026 13:26:00;8min;1;1;V;169.900,00;169.975,00;192.325,00;Sim;15,00;75,00;326;15,00;75,00;0,00;0,00;0,00;42min;153,00 +WINJ26;19/01/2026 13:58:00;19/01/2026 14:00:00;2min;1;1;C;169.805,00;169.845,00;192.325,00;No;8,00;40,00;327;8,00;40,00;0,00;0,00;0,00;40min;161,00 +WINJ26;19/01/2026 14:42:00;19/01/2026 14:48:00;6min;1;1;C;169.630,00;169.715,00;192.325,00;Sim;17,00;85,00;328;17,00;85,00;0,00;0,00;0,00;44min;178,00 +WINJ26;19/01/2026 15:06:00;19/01/2026 15:12:00;6min;1;1;V;169.715,00;169.770,00;192.325,00;No;11,00;55,00;329;11,00;55,00;0,00;0,00;0,00;24min;189,00 +WINJ26;19/01/2026 15:22:00;19/01/2026 15:26:00;4min;1;1;V;169.675,00;169.695,00;192.325,00;No;4,00;20,00;330;4,00;20,00;0,00;0,00;0,00;16min;193,00 +WINJ26;19/01/2026 15:56:00;19/01/2026 16:04:00;8min;1;1;V;169.660,00;169.660,00;192.325,00;No;0;0;331;0;0;0,00;0,00;0,00;34min;193,00 +WINJ26;19/01/2026 16:22:00;19/01/2026 16:26:00;4min;1;1;V;169.655,00;169.650,00;192.325,00;No;-1,00;-5,00;332;-1,00;-5,00;0,00;0,00;0,00;26min;192,00 +WINJ26;19/01/2026 16:32:00;19/01/2026 16:38:00;6min;1;1;V;169.655,00;169.675,00;192.325,00;Sim;4,00;20,00;333;4,00;20,00;0,00;0,00;0,00;10min;196,00 +WINJ26;19/01/2026 17:04:00;19/01/2026 17:06:00;2min;1;1;C;169.645,00;169.655,00;192.325,00;No;2,00;10,00;334;2,00;10,00;0,00;0,00;0,00;32min;198,00 +WINJ26;19/01/2026 17:10:00;19/01/2026 17:26:00;16min;1;1;V;169.640,00;169.630,00;192.325,00;No;-2,00;-10,00;335;-2,00;-10,00;0,00;0,00;0,00;6min;196,00 +WINJ26;19/01/2026 17:46:00;19/01/2026 18:00:00;14min;1;1;V;169.780,00;169.750,00;192.325,00;Sim;-6,00;-30,00;336;-6,00;-30,00;0,00;0,00;0,00;36min;190,00 +WINJ26;19/01/2026 18:08:00;20/01/2026 09:02:00;14h54min;1;1;V;168.775,00;169.795,00;192.325,00;Sim;204,00;1.020,00;337;204,00;1.020,00;0,00;0,00;0,00;22min;394,00 +WINJ26;20/01/2026 09:04:00;20/01/2026 09:32:00;28min;1;1;C;169.150,00;168.235,00;192.325,00;Sim;-183,00;-915,00;338;-183,00;-915,00;0,00;0,00;0,00;14h56min;211,00 +WINJ26;20/01/2026 09:34:00;20/01/2026 09:46:00;12min;1;1;C;168.265,00;168.535,00;192.325,00;Sim;54,00;270,00;339;54,00;270,00;0,00;0,00;0,00;30min;265,00 +WINJ26;20/01/2026 10:04:00;20/01/2026 10:16:00;12min;1;1;V;168.660,00;168.775,00;192.325,00;No;23,00;115,00;340;23,00;115,00;0,00;0,00;0,00;30min;288,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.325,00;Sim;48,00;240,00;341;48,00;240,00;0,00;0,00;0,00;22min;336,00 +WINJ26;20/01/2026 11:00:00;20/01/2026 11:10:00;10min;1;1;V;169.015,00;169.105,00;192.325,00;No;18,00;90,00;342;18,00;90,00;0,00;0,00;0,00;34min;354,00 +WINJ26;20/01/2026 11:28:00;20/01/2026 11:56:00;28min;1;1;V;170.685,00;169.395,00;192.325,00;Sim;-258,00;-1.290,00;343;-258,00;-1.290,00;0,00;0,00;0,00;28min;96,00 +WINJ26;20/01/2026 12:06:00;20/01/2026 12:18:00;12min;1;1;C;170.325,00;170.410,00;192.325,00;No;17,00;85,00;344;17,00;85,00;0,00;0,00;0,00;38min;113,00 +WINJ26;20/01/2026 12:22:00;20/01/2026 12:24:00;2min;1;1;C;170.550,00;170.490,00;192.325,00;No;-12,00;-60,00;345;-12,00;-60,00;0,00;0,00;0,00;16min;101,00 +WINJ26;20/01/2026 12:36:00;20/01/2026 13:04:00;28min;1;1;V;171.090,00;170.880,00;192.325,00;Sim;-42,00;-210,00;346;-42,00;-210,00;0,00;0,00;0,00;14min;59,00 +WINJ26;20/01/2026 13:58:00;20/01/2026 14:00:00;2min;1;1;C;171.255,00;171.180,00;192.325,00;No;-15,00;-75,00;347;-15,00;-75,00;0,00;0,00;0,00;1h22min;44,00 +WINJ26;20/01/2026 14:42:00;20/01/2026 15:12:00;30min;1;1;C;170.980,00;170.835,00;192.325,00;Sim;-29,00;-145,00;348;-29,00;-145,00;0,00;0,00;0,00;44min;15,00 +WINJ26;20/01/2026 15:44:00;20/01/2026 15:46:00;2min;1;1;V;170.830,00;170.900,00;192.325,00;Sim;14,00;70,00;349;14,00;70,00;0,00;0,00;0,00;1h2min;29,00 +WINJ26;20/01/2026 16:00:00;20/01/2026 16:28:00;28min;1;1;C;170.615,00;170.715,00;192.325,00;Sim;20,00;100,00;350;20,00;100,00;0,00;0,00;0,00;16min;49,00 +WINJ26;20/01/2026 16:32:00;20/01/2026 17:02:00;30min;1;1;V;170.800,00;170.710,00;192.325,00;No;-18,00;-90,00;351;-18,00;-90,00;0,00;0,00;0,00;32min;31,00 +WINJ26;20/01/2026 17:14:00;20/01/2026 17:16:00;2min;1;1;V;170.755,00;170.765,00;192.325,00;Sim;2,00;10,00;352;2,00;10,00;0,00;0,00;0,00;42min;33,00 +WINJ26;20/01/2026 17:32:00;20/01/2026 18:02:00;30min;1;1;V;171.135,00;170.870,00;192.325,00;Sim;-53,00;-265,00;353;-53,00;-265,00;0,00;0,00;0,00;18min;-20,00 +WINJ26;20/01/2026 18:08:00;20/01/2026 18:22:00;14min;1;1;V;171.015,00;171.080,00;192.325,00;Sim;13,00;65,00;354;13,00;65,00;0,00;0,00;0,00;36min;-7,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.325,00;No;-6,00;-30,00;355;-6,00;-30,00;0,00;0,00;0,00;14h54min;-13,00 +WINJ26;21/01/2026 09:28:00;21/01/2026 09:56:00;28min;1;1;V;173.095,00;172.550,00;192.325,00;Sim;-109,00;-545,00;356;-109,00;-545,00;0,00;0,00;0,00;26min;-122,00 +WINJ26;21/01/2026 10:00:00;21/01/2026 10:28:00;28min;1;1;V;173.640,00;173.065,00;192.325,00;Sim;-115,00;-575,00;357;-115,00;-575,00;0,00;0,00;0,00;32min;-237,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 10:44:00;12min;1;1;V;173.400,00;173.430,00;192.325,00;Sim;6,00;30,00;358;6,00;30,00;0,00;0,00;0,00;32min;-231,00 +WINJ26;21/01/2026 10:54:00;21/01/2026 10:56:00;2min;1;1;C;173.575,00;173.670,00;192.325,00;No;19,00;95,00;359;19,00;95,00;0,00;0,00;0,00;22min;-212,00 +WINJ26;21/01/2026 11:10:00;21/01/2026 11:20:00;10min;1;1;V;173.820,00;174.045,00;192.325,00;Sim;45,00;225,00;360;45,00;225,00;0,00;0,00;0,00;16min;-167,00 +WINJ26;21/01/2026 11:32:00;21/01/2026 11:34:00;2min;1;1;C;173.995,00;174.080,00;192.325,00;No;17,00;85,00;361;17,00;85,00;0,00;0,00;0,00;22min;-150,00 +WINJ26;21/01/2026 11:54:00;21/01/2026 12:22:00;28min;1;1;V;174.505,00;174.600,00;192.325,00;Sim;19,00;95,00;362;19,00;95,00;0,00;0,00;0,00;22min;-131,00 +WINJ26;21/01/2026 12:48:00;21/01/2026 12:50:00;2min;1;1;C;174.435,00;174.465,00;192.325,00;No;6,00;30,00;363;6,00;30,00;0,00;0,00;0,00;54min;-125,00 +WINJ26;21/01/2026 13:04:00;21/01/2026 13:32:00;28min;1;1;V;175.080,00;174.815,00;192.325,00;Sim;-53,00;-265,00;364;-53,00;-265,00;0,00;0,00;0,00;16min;-178,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.325,00;Sim;9,00;45,00;365;9,00;45,00;0,00;0,00;0,00;34min;-169,00 +WINJ26;21/01/2026 14:00:00;21/01/2026 14:02:00;2min;1;1;C;175.010,00;175.065,00;192.325,00;No;11,00;55,00;366;11,00;55,00;0,00;0,00;0,00;22min;-158,00 +WINJ26;21/01/2026 14:40:00;21/01/2026 14:42:00;2min;1;1;C;174.890,00;174.900,00;192.325,00;Sim;2,00;10,00;367;2,00;10,00;0,00;0,00;0,00;40min;-156,00 +WINJ26;21/01/2026 14:58:00;21/01/2026 15:04:00;6min;1;1;V;174.925,00;174.965,00;192.325,00;No;8,00;40,00;368;8,00;40,00;0,00;0,00;0,00;18min;-148,00 +WINJ26;21/01/2026 15:38:00;21/01/2026 16:06:00;28min;1;1;V;175.725,00;175.425,00;192.325,00;Sim;-60,00;-300,00;369;-60,00;-300,00;0,00;0,00;0,00;40min;-208,00 +WINJ26;21/01/2026 16:28:00;21/01/2026 16:30:00;2min;1;1;C;175.850,00;176.065,00;192.325,00;No;43,00;215,00;370;43,00;215,00;0,00;0,00;0,00;50min;-165,00 +WINJ26;21/01/2026 16:34:00;21/01/2026 16:40:00;6min;1;1;V;175.920,00;176.180,00;192.325,00;Sim;52,00;260,00;371;52,00;260,00;0,00;0,00;0,00;6min;-113,00 +WINJ26;21/01/2026 16:42:00;21/01/2026 16:44:00;2min;1;1;C;176.025,00;176.060,00;192.325,00;No;7,00;35,00;372;7,00;35,00;0,00;0,00;0,00;8min;-106,00 +WINJ26;21/01/2026 17:06:00;21/01/2026 17:36:00;30min;1;1;V;176.815,00;176.685,00;192.325,00;Sim;-26,00;-130,00;373;-26,00;-130,00;0,00;0,00;0,00;24min;-132,00 +WINJ26;21/01/2026 18:02:00;21/01/2026 18:12:00;10min;1;1;V;176.820,00;177.100,00;192.325,00;Sim;56,00;280,00;374;56,00;280,00;0,00;0,00;0,00;56min;-76,00 +WINJ26;21/01/2026 18:20:00;21/01/2026 18:22:00;2min;1;1;C;177.000,00;177.040,00;192.325,00;No;8,00;40,00;375;8,00;40,00;0,00;0,00;0,00;18min;-68,00 +WINJ26;21/01/2026 18:24:00;22/01/2026 09:00:00;14h36min;1;1;C;177.020,00;177.250,00;192.325,00;No;46,00;230,00;376;46,00;230,00;0,00;0,00;0,00;4min;-22,00 +WINJ26;22/01/2026 09:04:00;22/01/2026 09:06:00;2min;1;1;C;177.340,00;177.305,00;192.325,00;No;-7,00;-35,00;377;-7,00;-35,00;0,00;0,00;0,00;14h40min;-29,00 +WINJ26;22/01/2026 09:20:00;22/01/2026 09:48:00;28min;1;1;V;177.980,00;177.720,00;192.325,00;Sim;-52,00;-260,00;378;-52,00;-260,00;0,00;0,00;0,00;16min;-81,00 +WINJ26;22/01/2026 10:16:00;22/01/2026 10:18:00;2min;1;1;C;177.890,00;177.995,00;192.325,00;No;21,00;105,00;379;21,00;105,00;0,00;0,00;0,00;56min;-60,00 +WINJ26;22/01/2026 10:22:00;22/01/2026 10:34:00;12min;1;1;V;177.825,00;178.095,00;192.325,00;Sim;54,00;270,00;380;54,00;270,00;0,00;0,00;0,00;6min;-6,00 +WINJ26;22/01/2026 10:40:00;22/01/2026 10:42:00;2min;1;1;C;178.100,00;178.085,00;192.325,00;No;-3,00;-15,00;381;-3,00;-15,00;0,00;0,00;0,00;18min;-9,00 +WINJ26;22/01/2026 10:54:00;22/01/2026 10:56:00;2min;1;1;C;177.975,00;178.035,00;192.325,00;Sim;12,00;60,00;382;12,00;60,00;0,00;0,00;0,00;14min;3,00 +WINJ26;22/01/2026 11:28:00;22/01/2026 11:56:00;28min;1;1;V;180.055,00;179.650,00;192.325,00;Sim;-81,00;-405,00;383;-81,00;-405,00;0,00;0,00;0,00;34min;-78,00 +WINJ26;22/01/2026 12:10:00;22/01/2026 12:14:00;4min;1;1;C;179.860,00;179.825,00;192.325,00;No;-7,00;-35,00;384;-7,00;-35,00;0,00;0,00;0,00;42min;-85,00 +WINJ26;22/01/2026 12:16:00;22/01/2026 12:18:00;2min;1;1;C;180.050,00;180.235,00;192.325,00;No;37,00;185,00;385;37,00;185,00;0,00;0,00;0,00;6min;-48,00 +WINJ26;22/01/2026 12:36:00;22/01/2026 13:04:00;28min;1;1;V;181.875,00;181.790,00;192.325,00;Sim;-17,00;-85,00;386;-17,00;-85,00;0,00;0,00;0,00;20min;-65,00 +WINJ26;22/01/2026 13:18:00;22/01/2026 13:20:00;2min;1;1;C;182.060,00;182.270,00;192.325,00;No;42,00;210,00;387;42,00;210,00;0,00;0,00;0,00;42min;-23,00 +WINJ26;22/01/2026 13:28:00;22/01/2026 13:30:00;2min;1;1;C;182.135,00;182.030,00;192.325,00;No;-21,00;-105,00;388;-21,00;-105,00;0,00;0,00;0,00;10min;-44,00 +WINJ26;22/01/2026 13:48:00;22/01/2026 13:50:00;2min;1;1;C;181.810,00;182.005,00;192.325,00;Sim;39,00;195,00;389;39,00;195,00;0,00;0,00;0,00;20min;-5,00 +WINJ26;22/01/2026 14:04:00;22/01/2026 14:06:00;2min;1;1;C;182.020,00;181.940,00;192.325,00;No;-16,00;-80,00;390;-16,00;-80,00;0,00;0,00;0,00;16min;-21,00 +WINJ26;22/01/2026 14:12:00;22/01/2026 14:32:00;20min;1;1;C;181.885,00;181.780,00;192.325,00;Sim;-21,00;-105,00;391;-21,00;-105,00;0,00;0,00;0,00;8min;-42,00 +WINJ26;22/01/2026 14:34:00;22/01/2026 14:44:00;10min;1;1;V;181.570,00;181.705,00;192.325,00;No;27,00;135,00;392;27,00;135,00;0,00;0,00;0,00;22min;-15,00 +WINJ26;22/01/2026 15:12:00;22/01/2026 15:18:00;6min;1;1;V;181.700,00;181.840,00;192.325,00;Sim;28,00;140,00;393;28,00;140,00;0,00;0,00;0,00;38min;13,00 +WINJ26;22/01/2026 15:34:00;22/01/2026 16:02:00;28min;1;1;C;181.375,00;181.220,00;192.325,00;Sim;-31,00;-155,00;394;-31,00;-155,00;0,00;0,00;0,00;22min;-18,00 +WINJ26;22/01/2026 16:14:00;22/01/2026 16:30:00;16min;1;1;C;181.050,00;181.150,00;192.325,00;Sim;20,00;100,00;395;20,00;100,00;0,00;0,00;0,00;40min;2,00 +WINJ26;22/01/2026 16:38:00;22/01/2026 16:42:00;4min;1;1;V;181.000,00;181.150,00;192.325,00;No;30,00;150,00;396;30,00;150,00;0,00;0,00;0,00;24min;32,00 +WINJ26;22/01/2026 16:52:00;22/01/2026 17:20:00;28min;1;1;C;181.020,00;180.470,00;192.325,00;Sim;-110,00;-550,00;397;-110,00;-550,00;0,00;0,00;0,00;14min;-78,00 +WINJ26;22/01/2026 17:26:00;22/01/2026 17:28:00;2min;1;1;V;180.700,00;180.650,00;192.325,00;No;-10,00;-50,00;398;-10,00;-50,00;0,00;0,00;0,00;34min;-88,00 +WINJ26;22/01/2026 17:54:00;22/01/2026 18:04:00;10min;1;1;V;180.810,00;180.810,00;192.325,00;Sim;0;0;399;0;0;0,00;0,00;0,00;28min;-88,00 +WINJ26;22/01/2026 18:20:00;23/01/2026 09:00:00;14h40min;1;1;V;182.000,00;181.090,00;192.325,00;Sim;-182,00;-910,00;400;-182,00;-910,00;0,00;0,00;0,00;26min;-270,00 +WINJ26;23/01/2026 09:16:00;23/01/2026 09:18:00;2min;1;1;V;181.370,00;181.800,00;192.325,00;Sim;86,00;430,00;401;86,00;430,00;0,00;0,00;0,00;14h56min;-184,00 +WINJ26;23/01/2026 09:28:00;23/01/2026 09:30:00;2min;1;1;C;181.430,00;181.450,00;192.325,00;No;4,00;20,00;402;4,00;20,00;0,00;0,00;0,00;12min;-180,00 +WINJ26;23/01/2026 09:58:00;23/01/2026 10:00:00;2min;1;1;C;181.460,00;181.620,00;192.325,00;No;32,00;160,00;403;32,00;160,00;0,00;0,00;0,00;30min;-148,00 +WINJ26;23/01/2026 10:08:00;23/01/2026 10:14:00;6min;1;1;C;181.480,00;181.490,00;192.325,00;No;2,00;10,00;404;2,00;10,00;0,00;0,00;0,00;10min;-146,00 +WINJ26;23/01/2026 10:36:00;23/01/2026 10:38:00;2min;1;1;C;181.590,00;181.630,00;192.325,00;No;8,00;40,00;405;8,00;40,00;0,00;0,00;0,00;28min;-138,00 +WINJ26;23/01/2026 10:54:00;23/01/2026 11:12:00;18min;1;1;C;181.410,00;181.480,00;192.325,00;Sim;14,00;70,00;406;14,00;70,00;0,00;0,00;0,00;18min;-124,00 +WINJ26;23/01/2026 11:26:00;23/01/2026 11:28:00;2min;1;1;C;181.030,00;181.325,00;192.325,00;Sim;59,00;295,00;407;59,00;295,00;0,00;0,00;0,00;32min;-65,00 +WINJ26;23/01/2026 11:32:00;23/01/2026 11:34:00;2min;1;1;V;181.140,00;181.145,00;192.325,00;No;1,00;5,00;408;1,00;5,00;0,00;0,00;0,00;6min;-64,00 +WINJ26;23/01/2026 12:38:00;23/01/2026 12:46:00;8min;1;1;V;182.000,00;182.350,00;192.325,00;Sim;70,00;350,00;409;70,00;350,00;0,00;0,00;0,00;1h6min;6,00 +WINJ26;23/01/2026 13:20:00;23/01/2026 13:22:00;2min;1;1;C;182.355,00;182.355,00;192.325,00;No;0;0;410;0;0;0,00;0,00;0,00;42min;6,00 +WINJ26;23/01/2026 13:30:00;23/01/2026 13:36:00;6min;1;1;C;182.360,00;182.405,00;192.325,00;No;9,00;45,00;411;9,00;45,00;0,00;0,00;0,00;10min;15,00 +WINJ26;23/01/2026 13:48:00;23/01/2026 13:52:00;4min;1;1;C;182.325,00;182.315,00;192.325,00;Sim;-2,00;-10,00;412;-2,00;-10,00;0,00;0,00;0,00;18min;13,00 +WINJ26;23/01/2026 14:18:00;23/01/2026 14:22:00;4min;1;1;C;182.160,00;182.250,00;192.325,00;Sim;18,00;90,00;413;18,00;90,00;0,00;0,00;0,00;30min;31,00 +WINJ26;23/01/2026 14:34:00;23/01/2026 14:36:00;2min;1;1;V;182.235,00;182.210,00;192.325,00;No;-5,00;-25,00;414;-5,00;-25,00;0,00;0,00;0,00;16min;26,00 +WINJ26;23/01/2026 15:14:00;23/01/2026 15:22:00;8min;1;1;C;181.845,00;182.150,00;192.325,00;Sim;61,00;305,00;415;61,00;305,00;0,00;0,00;0,00;40min;87,00 +WINJ26;23/01/2026 15:36:00;23/01/2026 16:04:00;28min;1;1;V;182.740,00;182.425,00;192.325,00;Sim;-63,00;-315,00;416;-63,00;-315,00;0,00;0,00;0,00;22min;24,00 +WINJ26;23/01/2026 16:10:00;23/01/2026 16:38:00;28min;1;1;V;183.140,00;182.870,00;192.325,00;Sim;-54,00;-270,00;417;-54,00;-270,00;0,00;0,00;0,00;34min;-30,00 +WINJ26;23/01/2026 16:48:00;23/01/2026 16:58:00;10min;1;1;V;183.170,00;183.275,00;192.325,00;Sim;21,00;105,00;418;21,00;105,00;0,00;0,00;0,00;38min;-9,00 +WINJ26;23/01/2026 17:02:00;23/01/2026 17:04:00;2min;1;1;C;183.310,00;183.375,00;192.325,00;No;13,00;65,00;419;13,00;65,00;0,00;0,00;0,00;14min;4,00 +WINJ26;23/01/2026 17:32:00;23/01/2026 17:34:00;2min;1;1;V;184.350,00;184.505,00;192.325,00;Sim;31,00;155,00;420;31,00;155,00;0,00;0,00;0,00;30min;35,00 +WINJ26;23/01/2026 17:38:00;23/01/2026 17:40:00;2min;1;1;C;184.690,00;185.045,00;192.325,00;No;71,00;355,00;421;71,00;355,00;0,00;0,00;0,00;6min;106,00 +WINJ26;23/01/2026 17:44:00;23/01/2026 17:46:00;2min;1;1;C;185.060,00;184.780,00;192.325,00;No;-56,00;-280,00;422;-56,00;-280,00;0,00;0,00;0,00;6min;50,00 +WINJ26;23/01/2026 18:14:00;23/01/2026 18:22:00;8min;1;1;C;184.185,00;184.300,00;192.325,00;Sim;23,00;115,00;423;23,00;115,00;0,00;0,00;0,00;30min;73,00 +WINJ26;26/01/2026 09:10:00;26/01/2026 09:26:00;16min;1;1;V;185.255,00;186.135,00;192.325,00;Sim;176,00;880,00;424;176,00;880,00;0,00;0,00;0,00;2d14h;249,00 +WINJ26;26/01/2026 09:44:00;26/01/2026 10:00:00;16min;1;1;C;185.040,00;184.825,00;192.325,00;No;-43,00;-215,00;425;-43,00;-215,00;0,00;0,00;0,00;34min;206,00 +WINJ26;26/01/2026 10:04:00;26/01/2026 10:32:00;28min;1;1;C;184.445,00;183.875,00;192.325,00;Sim;-114,00;-570,00;426;-114,00;-570,00;0,00;0,00;0,00;20min;92,00 +WINJ26;26/01/2026 10:40:00;26/01/2026 11:08:00;28min;1;1;C;183.930,00;183.095,00;192.325,00;Sim;-167,00;-835,00;427;-167,00;-835,00;0,00;0,00;0,00;36min;-75,00 +WINJ26;26/01/2026 11:34:00;26/01/2026 11:48:00;14min;1;1;V;183.390,00;184.025,00;192.325,00;No;127,00;635,00;428;127,00;635,00;0,00;0,00;0,00;54min;52,00 +WINJ26;26/01/2026 12:46:00;26/01/2026 12:48:00;2min;1;1;C;183.445,00;183.565,00;192.325,00;Sim;24,00;120,00;429;24,00;120,00;0,00;0,00;0,00;1h12min;76,00 +WINJ26;26/01/2026 13:22:00;26/01/2026 13:48:00;26min;1;1;C;183.445,00;183.200,00;192.325,00;No;-49,00;-245,00;430;-49,00;-245,00;0,00;0,00;0,00;36min;27,00 +WINJ26;26/01/2026 13:54:00;26/01/2026 13:56:00;2min;1;1;V;183.215,00;183.250,00;192.325,00;No;7,00;35,00;431;7,00;35,00;0,00;0,00;0,00;32min;34,00 +WINJ26;26/01/2026 14:04:00;26/01/2026 14:38:00;34min;1;1;V;184.230,00;183.530,00;192.325,00;Sim;-140,00;-700,00;432;-140,00;-700,00;0,00;0,00;0,00;10min;-106,00 +WINJ26;26/01/2026 14:40:00;26/01/2026 14:52:00;12min;1;1;V;183.835,00;184.030,00;192.325,00;Sim;39,00;195,00;433;39,00;195,00;0,00;0,00;0,00;36min;-67,00 +WINJ26;26/01/2026 15:14:00;26/01/2026 15:38:00;24min;1;1;C;183.365,00;183.780,00;192.325,00;Sim;83,00;415,00;434;83,00;415,00;0,00;0,00;0,00;34min;16,00 +WINJ26;26/01/2026 16:18:00;26/01/2026 16:26:00;8min;1;1;C;183.000,00;183.215,00;192.325,00;Sim;43,00;215,00;435;43,00;215,00;0,00;0,00;0,00;1h4min;59,00 +WINJ26;26/01/2026 16:54:00;26/01/2026 16:56:00;2min;1;1;V;183.250,00;183.155,00;192.325,00;No;-19,00;-95,00;436;-19,00;-95,00;0,00;0,00;0,00;36min;40,00 +WINJ26;26/01/2026 17:18:00;26/01/2026 17:48:00;30min;1;1;V;183.880,00;183.635,00;192.325,00;Sim;-49,00;-245,00;437;-49,00;-245,00;0,00;0,00;0,00;24min;-9,00 +WINJ26;26/01/2026 17:58:00;26/01/2026 18:02:00;4min;1;1;V;183.730,00;183.900,00;192.325,00;Sim;34,00;170,00;438;34,00;170,00;0,00;0,00;0,00;40min;25,00 +WINJ26;26/01/2026 18:14:00;27/01/2026 09:02:00;14h48min;1;1;C;183.665,00;185.465,00;192.325,00;No;360,00;1.800,00;439;360,00;1.800,00;0,00;0,00;0,00;16min;385,00 +WINJ26;27/01/2026 09:14:00;27/01/2026 09:44:00;30min;1;1;V;186.300,00;185.195,00;192.325,00;Sim;-221,00;-1.105,00;440;-221,00;-1.105,00;0,00;0,00;0,00;15h;164,00 +WINJ26;27/01/2026 09:48:00;27/01/2026 10:06:00;18min;1;1;V;185.825,00;186.350,00;192.325,00;Sim;105,00;525,00;441;105,00;525,00;0,00;0,00;0,00;34min;269,00 +WINJ26;27/01/2026 10:28:00;27/01/2026 10:32:00;4min;1;1;C;185.970,00;186.115,00;192.325,00;No;29,00;145,00;442;29,00;145,00;0,00;0,00;0,00;40min;298,00 +WINJ26;27/01/2026 11:20:00;27/01/2026 11:32:00;12min;1;1;V;187.240,00;187.480,00;192.325,00;Sim;48,00;240,00;443;48,00;240,00;0,00;0,00;0,00;52min;346,00 +WINJ26;27/01/2026 11:36:00;27/01/2026 11:38:00;2min;1;1;C;187.360,00;187.300,00;192.325,00;No;-12,00;-60,00;444;-12,00;-60,00;0,00;0,00;0,00;16min;334,00 +WINJ26;27/01/2026 12:00:00;27/01/2026 12:02:00;2min;1;1;C;187.580,00;187.620,00;192.325,00;No;8,00;40,00;445;8,00;40,00;0,00;0,00;0,00;24min;342,00 +WINJ26;27/01/2026 12:12:00;27/01/2026 12:14:00;2min;1;1;C;187.650,00;187.770,00;192.325,00;No;24,00;120,00;446;24,00;120,00;0,00;0,00;0,00;12min;366,00 +WINJ26;27/01/2026 12:22:00;27/01/2026 12:24:00;2min;1;1;C;187.925,00;188.100,00;192.325,00;No;35,00;175,00;447;35,00;175,00;0,00;0,00;0,00;10min;401,00 +WINJ26;27/01/2026 12:42:00;27/01/2026 12:48:00;6min;1;1;C;187.600,00;187.645,00;192.325,00;Sim;9,00;45,00;448;9,00;45,00;0,00;0,00;0,00;20min;410,00 +WINJ26;27/01/2026 12:54:00;27/01/2026 12:58:00;4min;1;1;C;187.705,00;187.575,00;192.325,00;No;-26,00;-130,00;449;-26,00;-130,00;0,00;0,00;0,00;12min;384,00 +WINJ26;27/01/2026 13:18:00;27/01/2026 13:20:00;2min;1;1;C;187.725,00;187.900,00;192.325,00;No;35,00;175,00;450;35,00;175,00;0,00;0,00;0,00;24min;419,00 +WINJ26;27/01/2026 13:22:00;27/01/2026 13:54:00;32min;1;1;V;188.200,00;187.810,00;192.325,00;Sim;-78,00;-390,00;451;-78,00;-390,00;0,00;0,00;0,00;4min;341,00 +WINJ26;27/01/2026 14:26:00;27/01/2026 14:56:00;30min;1;1;C;187.875,00;187.250,00;192.325,00;No;-125,00;-625,00;452;-125,00;-625,00;0,00;0,00;0,00;1h4min;216,00 +WINJ26;27/01/2026 15:12:00;27/01/2026 15:20:00;8min;1;1;C;187.025,00;187.310,00;192.325,00;Sim;57,00;285,00;453;57,00;285,00;0,00;0,00;0,00;46min;273,00 +WINJ26;27/01/2026 15:38:00;27/01/2026 15:42:00;4min;1;1;V;187.250,00;187.280,00;192.325,00;No;6,00;30,00;454;6,00;30,00;0,00;0,00;0,00;26min;279,00 +WINJ26;27/01/2026 15:54:00;27/01/2026 15:56:00;2min;1;1;V;187.000,00;187.030,00;192.325,00;No;6,00;30,00;455;6,00;30,00;0,00;0,00;0,00;16min;285,00 +WINJ26;27/01/2026 16:28:00;27/01/2026 16:30:00;2min;1;1;V;187.175,00;187.120,00;192.325,00;Sim;-11,00;-55,00;456;-11,00;-55,00;0,00;0,00;0,00;34min;274,00 +WINJ26;27/01/2026 16:40:00;27/01/2026 16:42:00;2min;1;1;V;186.965,00;187.050,00;192.325,00;No;17,00;85,00;457;17,00;85,00;0,00;0,00;0,00;12min;291,00 +WINJ26;27/01/2026 17:00:00;27/01/2026 17:26:00;26min;1;1;V;187.305,00;187.115,00;192.325,00;Sim;-38,00;-190,00;458;-38,00;-190,00;0,00;0,00;0,00;20min;253,00 +WINJ26;27/01/2026 17:36:00;27/01/2026 17:38:00;2min;1;1;C;187.270,00;187.450,00;192.325,00;No;36,00;180,00;459;36,00;180,00;0,00;0,00;0,00;36min;289,00 +WINJ26;27/01/2026 17:46:00;27/01/2026 17:48:00;2min;1;1;C;187.160,00;187.270,00;192.325,00;Sim;22,00;110,00;460;22,00;110,00;0,00;0,00;0,00;10min;311,00 +WINJ26;28/01/2026 09:02:00;28/01/2026 09:04:00;2min;1;1;C;187.500,00;187.440,00;192.325,00;No;-12,00;-60,00;461;-12,00;-60,00;0,00;0,00;0,00;15h16min;299,00 +WINJ26;28/01/2026 09:08:00;28/01/2026 09:38:00;30min;1;1;V;187.670,00;187.600,00;192.325,00;Sim;-14,00;-70,00;462;-14,00;-70,00;0,00;0,00;0,00;6min;285,00 +WINJ26;28/01/2026 09:58:00;28/01/2026 10:06:00;8min;1;1;V;187.800,00;187.885,00;192.325,00;Sim;17,00;85,00;463;17,00;85,00;0,00;0,00;0,00;50min;302,00 +WINJ26;28/01/2026 10:14:00;28/01/2026 10:42:00;28min;1;1;V;189.305,00;187.805,00;192.325,00;No;-300,00;-1.500,00;464;-300,00;-1.500,00;0,00;0,00;0,00;16min;2,00 +WINJ26;28/01/2026 10:54:00;28/01/2026 10:56:00;2min;1;1;C;189.100,00;189.245,00;192.325,00;No;29,00;145,00;465;29,00;145,00;0,00;0,00;0,00;40min;31,00 +WINJ26;28/01/2026 11:04:00;28/01/2026 11:06:00;2min;1;1;C;189.400,00;189.330,00;192.325,00;No;-14,00;-70,00;466;-14,00;-70,00;0,00;0,00;0,00;10min;17,00 +WINJ26;28/01/2026 11:14:00;28/01/2026 11:16:00;2min;1;1;C;189.110,00;189.160,00;192.325,00;Sim;10,00;50,00;467;10,00;50,00;0,00;0,00;0,00;10min;27,00 +WINJ26;28/01/2026 11:28:00;28/01/2026 11:30:00;2min;1;1;C;189.100,00;189.210,00;192.325,00;Sim;22,00;110,00;468;22,00;110,00;0,00;0,00;0,00;14min;49,00 +WINJ26;28/01/2026 11:38:00;28/01/2026 11:40:00;2min;1;1;C;189.075,00;189.220,00;192.325,00;Sim;29,00;145,00;469;29,00;145,00;0,00;0,00;0,00;10min;78,00 +WINJ26;28/01/2026 12:46:00;28/01/2026 12:48:00;2min;1;1;C;188.585,00;188.640,00;192.325,00;Sim;11,00;55,00;470;11,00;55,00;0,00;0,00;0,00;1h8min;89,00 +WINJ26;28/01/2026 13:12:00;28/01/2026 13:14:00;2min;1;1;V;188.715,00;188.675,00;192.325,00;Sim;-8,00;-40,00;471;-8,00;-40,00;0,00;0,00;0,00;26min;81,00 +WINJ26;28/01/2026 13:34:00;28/01/2026 13:36:00;2min;1;1;V;188.740,00;188.660,00;192.325,00;No;-16,00;-80,00;472;-16,00;-80,00;0,00;0,00;0,00;22min;65,00 +WINJ26;28/01/2026 13:52:00;28/01/2026 13:54:00;2min;1;1;V;188.730,00;188.860,00;192.325,00;Sim;26,00;130,00;473;26,00;130,00;0,00;0,00;0,00;18min;91,00 +WINJ26;28/01/2026 14:32:00;28/01/2026 14:44:00;12min;1;1;C;188.395,00;188.480,00;192.325,00;Sim;17,00;85,00;474;17,00;85,00;0,00;0,00;0,00;40min;108,00 +WINJ26;28/01/2026 15:00:00;28/01/2026 15:02:00;2min;1;1;V;188.460,00;188.575,00;192.325,00;No;23,00;115,00;475;23,00;115,00;0,00;0,00;0,00;28min;131,00 +WINJ26;28/01/2026 15:36:00;28/01/2026 15:38:00;2min;1;1;V;188.470,00;188.420,00;192.325,00;No;-10,00;-50,00;476;-10,00;-50,00;0,00;0,00;0,00;36min;121,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:10:00;10min;1;1;C;187.955,00;188.025,00;192.325,00;Sim;14,00;70,00;477;14,00;70,00;0,00;0,00;0,00;24min;135,00 +WINJ26;28/01/2026 16:30:00;28/01/2026 16:32:00;2min;1;1;V;188.115,00;188.035,00;192.325,00;No;-16,00;-80,00;478;-16,00;-80,00;0,00;0,00;0,00;30min;119,00 +WINJ26;28/01/2026 16:44:00;28/01/2026 17:12:00;28min;1;1;V;189.015,00;188.200,00;192.325,00;Sim;-163,00;-815,00;479;-163,00;-815,00;0,00;0,00;0,00;14min;-44,00 +WINJ26;28/01/2026 17:20:00;28/01/2026 17:50:00;30min;1;1;V;189.510,00;188.875,00;192.325,00;Sim;-127,00;-635,00;480;-127,00;-635,00;0,00;0,00;0,00;36min;-171,00 +WINJ26;28/01/2026 18:06:00;29/01/2026 09:08:00;15h2min;1;1;V;191.780,00;189.800,00;192.325,00;Sim;-396,00;-1.980,00;481;-396,00;-1.980,00;0,00;0,00;0,00;46min;-567,00 +WINJ26;29/01/2026 09:42:00;29/01/2026 09:44:00;2min;1;1;C;191.265,00;191.450,00;192.325,00;No;37,00;185,00;482;37,00;185,00;0,00;0,00;0,00;15h36min;-530,00 +WINJ26;29/01/2026 09:48:00;29/01/2026 09:52:00;4min;1;1;C;191.540,00;191.350,00;192.325,00;No;-38,00;-190,00;483;-38,00;-190,00;0,00;0,00;0,00;6min;-568,00 +WINJ26;29/01/2026 09:56:00;29/01/2026 09:58:00;2min;1;1;C;191.445,00;191.425,00;192.325,00;Sim;-4,00;-20,00;484;-4,00;-20,00;0,00;0,00;0,00;8min;-572,00 +WINJ26;29/01/2026 10:32:00;29/01/2026 10:34:00;2min;1;1;C;191.025,00;191.165,00;192.325,00;Sim;28,00;140,00;485;28,00;140,00;0,00;0,00;0,00;36min;-544,00 +WINJ26;29/01/2026 10:50:00;29/01/2026 10:58:00;8min;1;1;C;191.080,00;190.980,00;192.325,00;No;-20,00;-100,00;486;-20,00;-100,00;0,00;0,00;0,00;18min;-564,00 +WINJ26;29/01/2026 11:18:00;29/01/2026 11:20:00;2min;1;1;C;190.960,00;190.960,00;192.325,00;Sim;0;0;487;0;0;0,00;0,00;0,00;28min;-564,00 +WINJ26;29/01/2026 11:36:00;29/01/2026 11:38:00;2min;1;1;C;190.815,00;190.910,00;192.325,00;Sim;19,00;95,00;488;19,00;95,00;0,00;0,00;0,00;18min;-545,00 +WINJ26;29/01/2026 11:46:00;29/01/2026 11:48:00;2min;1;1;V;190.850,00;190.850,00;192.325,00;Sim;0;0;489;0;0;0,00;0,00;0,00;10min;-545,00 +WINJ26;29/01/2026 12:04:00;29/01/2026 12:32:00;28min;1;1;C;189.130,00;188.140,00;192.325,00;Sim;-198,00;-990,00;490;-198,00;-990,00;0,00;0,00;0,00;18min;-743,00 +WINJ26;29/01/2026 12:48:00;29/01/2026 13:14:00;26min;1;1;C;187.505,00;187.545,00;192.325,00;Sim;8,00;40,00;491;8,00;40,00;0,00;0,00;0,00;44min;-735,00 +WINJ26;29/01/2026 13:52:00;29/01/2026 13:54:00;2min;1;1;V;187.230,00;187.280,00;192.325,00;No;10,00;50,00;492;10,00;50,00;0,00;0,00;0,00;1h4min;-725,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:42:00;8min;1;1;V;188.215,00;188.415,00;192.325,00;Sim;40,00;200,00;493;40,00;200,00;0,00;0,00;0,00;42min;-685,00 +WINJ26;29/01/2026 14:50:00;29/01/2026 15:08:00;18min;1;1;C;188.170,00;187.935,00;192.325,00;No;-47,00;-235,00;494;-47,00;-235,00;0,00;0,00;0,00;16min;-732,00 +WINJ26;29/01/2026 15:30:00;29/01/2026 15:42:00;12min;1;1;C;188.075,00;187.940,00;192.325,00;Sim;-27,00;-135,00;495;-27,00;-135,00;0,00;0,00;0,00;40min;-759,00 +WINJ26;29/01/2026 16:04:00;29/01/2026 16:06:00;2min;1;1;C;188.015,00;188.130,00;192.325,00;Sim;23,00;115,00;496;23,00;115,00;0,00;0,00;0,00;34min;-736,00 +WINJ26;29/01/2026 16:16:00;29/01/2026 16:34:00;18min;1;1;V;188.195,00;188.075,00;192.325,00;No;-24,00;-120,00;497;-24,00;-120,00;0,00;0,00;0,00;12min;-760,00 +WINJ26;29/01/2026 17:02:00;29/01/2026 17:06:00;4min;1;1;C;188.105,00;188.230,00;192.325,00;No;25,00;125,00;498;25,00;125,00;0,00;0,00;0,00;46min;-735,00 +WINJ26;29/01/2026 17:14:00;29/01/2026 17:32:00;18min;1;1;V;188.360,00;188.430,00;192.325,00;Sim;14,00;70,00;499;14,00;70,00;0,00;0,00;0,00;12min;-721,00 +WINJ26;29/01/2026 17:38:00;29/01/2026 17:42:00;4min;1;1;V;188.320,00;188.360,00;192.325,00;No;8,00;40,00;500;8,00;40,00;0,00;0,00;0,00;24min;-713,00 +WINJ26;29/01/2026 17:52:00;29/01/2026 18:14:00;22min;1;1;C;188.200,00;187.970,00;192.325,00;No;-46,00;-230,00;501;-46,00;-230,00;0,00;0,00;0,00;14min;-759,00 +WINJ26;30/01/2026 09:04:00;30/01/2026 09:18:00;14min;1;1;C;187.200,00;187.520,00;192.325,00;Sim;64,00;320,00;502;64,00;320,00;0,00;0,00;0,00;15h12min;-695,00 +WINJ26;30/01/2026 09:22:00;30/01/2026 09:36:00;14min;1;1;V;187.595,00;187.560,00;192.325,00;No;-7,00;-35,00;503;-7,00;-35,00;0,00;0,00;0,00;18min;-702,00 +WINJ26;30/01/2026 09:42:00;30/01/2026 09:44:00;2min;1;1;V;187.560,00;187.685,00;192.325,00;Sim;25,00;125,00;504;25,00;125,00;0,00;0,00;0,00;20min;-677,00 +WINJ26;30/01/2026 09:58:00;30/01/2026 10:06:00;8min;1;1;C;186.945,00;187.490,00;192.325,00;Sim;109,00;545,00;505;109,00;545,00;0,00;0,00;0,00;16min;-568,00 +WINJ26;30/01/2026 10:08:00;30/01/2026 10:38:00;30min;1;1;V;187.860,00;187.290,00;192.325,00;No;-114,00;-570,00;506;-114,00;-570,00;0,00;0,00;0,00;10min;-682,00 +WINJ26;30/01/2026 11:20:00;30/01/2026 11:22:00;2min;1;1;V;187.540,00;187.575,00;192.325,00;Sim;7,00;35,00;507;7,00;35,00;0,00;0,00;0,00;1h12min;-675,00 +WINJ26;30/01/2026 11:36:00;30/01/2026 11:40:00;4min;1;1;V;187.400,00;187.740,00;192.325,00;Sim;68,00;340,00;508;68,00;340,00;0,00;0,00;0,00;16min;-607,00 +WINJ26;30/01/2026 11:44:00;30/01/2026 11:46:00;2min;1;1;C;187.635,00;187.655,00;192.325,00;No;4,00;20,00;509;4,00;20,00;0,00;0,00;0,00;8min;-603,00 +WINJ26;30/01/2026 11:56:00;30/01/2026 11:58:00;2min;1;1;V;187.690,00;187.775,00;192.325,00;Sim;17,00;85,00;510;17,00;85,00;0,00;0,00;0,00;12min;-586,00 +WINJ26;30/01/2026 12:02:00;30/01/2026 12:08:00;6min;1;1;C;187.790,00;187.800,00;192.325,00;No;2,00;10,00;511;2,00;10,00;0,00;0,00;0,00;6min;-584,00 +WINJ26;30/01/2026 12:26:00;30/01/2026 12:28:00;2min;1;1;V;187.695,00;187.890,00;192.325,00;Sim;39,00;195,00;512;39,00;195,00;0,00;0,00;0,00;24min;-545,00 +WINJ26;30/01/2026 12:32:00;30/01/2026 12:36:00;4min;1;1;C;187.855,00;187.945,00;192.325,00;No;18,00;90,00;513;18,00;90,00;0,00;0,00;0,00;6min;-527,00 +WINJ26;30/01/2026 12:52:00;30/01/2026 12:54:00;2min;1;1;V;188.070,00;188.300,00;192.325,00;Sim;46,00;230,00;514;46,00;230,00;0,00;0,00;0,00;20min;-481,00 +WINJ26;30/01/2026 13:10:00;30/01/2026 13:40:00;30min;1;1;C;187.560,00;187.375,00;192.325,00;Sim;-37,00;-185,00;515;-37,00;-185,00;0,00;0,00;0,00;18min;-518,00 +WINJ26;30/01/2026 13:58:00;30/01/2026 14:26:00;28min;1;1;C;187.105,00;186.485,00;192.325,00;Sim;-124,00;-620,00;516;-124,00;-620,00;0,00;0,00;0,00;48min;-642,00 +WINJ26;30/01/2026 14:46:00;30/01/2026 14:48:00;2min;1;1;V;186.380,00;186.500,00;192.325,00;No;24,00;120,00;517;24,00;120,00;0,00;0,00;0,00;48min;-618,00 +WINJ26;30/01/2026 15:06:00;30/01/2026 15:34:00;28min;1;1;C;185.900,00;185.275,00;192.325,00;Sim;-125,00;-625,00;518;-125,00;-625,00;0,00;0,00;0,00;20min;-743,00 +WINJ26;30/01/2026 16:30:00;30/01/2026 16:32:00;2min;1;1;V;186.000,00;186.345,00;192.325,00;No;69,00;345,00;519;69,00;345,00;0,00;0,00;0,00;1h24min;-674,00 +WINJ26;30/01/2026 17:00:00;30/01/2026 17:04:00;4min;1;1;V;186.190,00;186.250,00;192.325,00;No;12,00;60,00;520;12,00;60,00;0,00;0,00;0,00;30min;-662,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:26:00;6min;1;1;C;185.670,00;185.795,00;192.325,00;Sim;25,00;125,00;521;25,00;125,00;0,00;0,00;0,00;20min;-637,00 +WINJ26;30/01/2026 18:08:00;02/02/2026 09:02:00;2d14h;1;1;V;185.650,00;186.070,00;192.325,00;No;84,00;420,00;522;84,00;420,00;0,00;0,00;0,00;48min;-553,00 +WINJ26;02/02/2026 09:08:00;02/02/2026 09:12:00;4min;1;1;C;185.750,00;186.200,00;192.325,00;No;90,00;450,00;523;90,00;450,00;0,00;0,00;0,00;2d15h;-463,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:54:00;28min;1;1;V;186.635,00;186.370,00;192.325,00;Sim;-53,00;-265,00;524;-53,00;-265,00;0,00;0,00;0,00;18min;-516,00 +WINJ26;02/02/2026 10:04:00;02/02/2026 10:06:00;2min;1;1;V;186.300,00;186.405,00;192.325,00;Sim;21,00;105,00;525;21,00;105,00;0,00;0,00;0,00;38min;-495,00 +WINJ26;02/02/2026 10:08:00;02/02/2026 10:16:00;8min;1;1;C;186.470,00;186.470,00;192.325,00;No;0;0;526;0;0;0,00;0,00;0,00;4min;-495,00 +WINJ26;02/02/2026 10:44:00;02/02/2026 11:10:00;26min;1;1;V;187.205,00;187.300,00;192.325,00;Sim;19,00;95,00;527;19,00;95,00;0,00;0,00;0,00;36min;-476,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.325,00;No;40,00;200,00;528;40,00;200,00;0,00;0,00;0,00;48min;-436,00 +WINJ26;02/02/2026 12:06:00;02/02/2026 12:10:00;4min;1;1;C;186.490,00;186.810,00;192.325,00;Sim;64,00;320,00;529;64,00;320,00;0,00;0,00;0,00;34min;-372,00 +WINJ26;02/02/2026 12:12:00;02/02/2026 12:14:00;2min;1;1;V;186.495,00;186.850,00;192.325,00;No;71,00;355,00;530;71,00;355,00;0,00;0,00;0,00;6min;-301,00 +WINJ26;02/02/2026 12:28:00;02/02/2026 12:30:00;2min;1;1;V;186.680,00;186.750,00;192.325,00;No;14,00;70,00;531;14,00;70,00;0,00;0,00;0,00;16min;-287,00 +WINJ26;02/02/2026 12:42:00;02/02/2026 12:44:00;2min;1;1;V;186.685,00;186.795,00;192.325,00;Sim;22,00;110,00;532;22,00;110,00;0,00;0,00;0,00;14min;-265,00 +WINJ26;02/02/2026 13:14:00;02/02/2026 13:42:00;28min;1;1;V;187.100,00;186.700,00;192.325,00;No;-80,00;-400,00;533;-80,00;-400,00;0,00;0,00;0,00;32min;-345,00 +WINJ26;02/02/2026 13:56:00;02/02/2026 14:06:00;10min;1;1;V;187.120,00;187.150,00;192.325,00;Sim;6,00;30,00;534;6,00;30,00;0,00;0,00;0,00;42min;-339,00 +WINJ26;02/02/2026 14:28:00;02/02/2026 14:30:00;2min;1;1;C;187.130,00;187.140,00;192.325,00;No;2,00;10,00;535;2,00;10,00;0,00;0,00;0,00;32min;-337,00 +WINJ26;02/02/2026 14:36:00;02/02/2026 14:40:00;4min;1;1;V;187.005,00;187.180,00;192.325,00;Sim;35,00;175,00;536;35,00;175,00;0,00;0,00;0,00;8min;-302,00 +WINJ26;02/02/2026 14:46:00;02/02/2026 14:50:00;4min;1;1;C;187.100,00;187.170,00;192.325,00;Sim;14,00;70,00;537;14,00;70,00;0,00;0,00;0,00;10min;-288,00 +WINJ26;02/02/2026 15:16:00;02/02/2026 15:50:00;34min;1;1;C;186.845,00;186.805,00;192.325,00;Sim;-8,00;-40,00;538;-8,00;-40,00;0,00;0,00;0,00;30min;-296,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:40:00;28min;1;1;C;186.555,00;186.490,00;192.325,00;Sim;-13,00;-65,00;539;-13,00;-65,00;0,00;0,00;0,00;56min;-309,00 +WINJ26;02/02/2026 16:46:00;02/02/2026 16:50:00;4min;1;1;V;186.540,00;186.500,00;192.325,00;No;-8,00;-40,00;540;-8,00;-40,00;0,00;0,00;0,00;34min;-317,00 +WINJ26;02/02/2026 17:00:00;02/02/2026 17:30:00;30min;1;1;V;187.045,00;186.445,00;192.325,00;No;-120,00;-600,00;541;-120,00;-600,00;0,00;0,00;0,00;14min;-437,00 +WINJ26;02/02/2026 17:38:00;02/02/2026 18:06:00;28min;1;1;V;187.590,00;187.045,00;192.325,00;Sim;-109,00;-545,00;542;-109,00;-545,00;0,00;0,00;0,00;38min;-546,00 +WINJ26;02/02/2026 18:22:00;02/02/2026 18:24:00;2min;1;1;C;187.505,00;187.475,00;192.325,00;No;-6,00;-30,00;543;-6,00;-30,00;0,00;0,00;0,00;44min;-552,00 +WINJ26;03/02/2026 09:02:00;03/02/2026 09:04:00;2min;1;1;C;188.820,00;188.610,00;192.325,00;No;-42,00;-210,00;544;-42,00;-210,00;0,00;0,00;0,00;14h40min;-594,00 +WINJ26;03/02/2026 09:06:00;03/02/2026 09:34:00;28min;1;1;V;189.420,00;188.560,00;192.325,00;Sim;-172,00;-860,00;545;-172,00;-860,00;0,00;0,00;0,00;4min;-766,00 +WINJ26;03/02/2026 09:54:00;03/02/2026 09:56:00;2min;1;1;C;189.705,00;189.675,00;192.325,00;No;-6,00;-30,00;546;-6,00;-30,00;0,00;0,00;0,00;48min;-772,00 +WINJ26;03/02/2026 10:04:00;03/02/2026 10:06:00;2min;1;1;C;189.695,00;189.735,00;192.325,00;Sim;8,00;40,00;547;8,00;40,00;0,00;0,00;0,00;10min;-764,00 +WINJ26;03/02/2026 10:10:00;03/02/2026 10:12:00;2min;1;1;C;189.820,00;189.825,00;192.325,00;No;1,00;5,00;548;1,00;5,00;0,00;0,00;0,00;6min;-763,00 +WINJ26;03/02/2026 10:26:00;03/02/2026 10:30:00;4min;1;1;C;189.605,00;189.735,00;192.325,00;Sim;26,00;130,00;549;26,00;130,00;0,00;0,00;0,00;16min;-737,00 +WINJ26;03/02/2026 10:44:00;03/02/2026 11:12:00;28min;1;1;V;191.160,00;190.190,00;192.325,00;Sim;-194,00;-970,00;550;-194,00;-970,00;0,00;0,00;0,00;18min;-931,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:56:00;28min;1;1;V;191.605,00;191.120,00;192.325,00;Sim;-97,00;-485,00;551;-97,00;-485,00;0,00;0,00;0,00;44min;-1.028,00 +WINJ26;03/02/2026 12:20:00;03/02/2026 12:28:00;8min;1;1;C;191.170,00;191.170,00;192.325,00;No;0;0;552;0;0;0,00;0,00;0,00;52min;-1.028,00 +WINJ26;03/02/2026 12:32:00;03/02/2026 12:52:00;20min;1;1;C;191.145,00;191.105,00;192.325,00;Sim;-8,00;-40,00;553;-8,00;-40,00;0,00;0,00;0,00;12min;-1.036,00 +WINJ26;03/02/2026 13:38:00;03/02/2026 13:44:00;6min;1;1;V;191.075,00;191.025,00;192.325,00;No;-10,00;-50,00;554;-10,00;-50,00;0,00;0,00;0,00;1h6min;-1.046,00 +WINJ26;03/02/2026 14:12:00;03/02/2026 14:40:00;28min;1;1;C;190.520,00;190.180,00;192.325,00;Sim;-68,00;-340,00;555;-68,00;-340,00;0,00;0,00;0,00;34min;-1.114,00 +WINJ26;03/02/2026 14:48:00;03/02/2026 15:16:00;28min;1;1;C;189.870,00;189.710,00;192.325,00;Sim;-32,00;-160,00;556;-32,00;-160,00;0,00;0,00;0,00;36min;-1.146,00 +WINJ26;03/02/2026 15:46:00;03/02/2026 15:48:00;2min;1;1;V;189.580,00;189.600,00;192.325,00;No;4,00;20,00;557;4,00;20,00;0,00;0,00;0,00;58min;-1.142,00 +WINJ26;03/02/2026 16:00:00;03/02/2026 16:02:00;2min;1;1;V;189.620,00;189.645,00;192.325,00;Sim;5,00;25,00;558;5,00;25,00;0,00;0,00;0,00;14min;-1.137,00 +WINJ26;03/02/2026 16:08:00;03/02/2026 16:12:00;4min;1;1;C;189.430,00;189.720,00;192.325,00;Sim;58,00;290,00;559;58,00;290,00;0,00;0,00;0,00;8min;-1.079,00 +WINJ26;03/02/2026 16:26:00;03/02/2026 16:32:00;6min;1;1;V;189.840,00;189.940,00;192.325,00;Sim;20,00;100,00;560;20,00;100,00;0,00;0,00;0,00;18min;-1.059,00 +WINJ26;03/02/2026 16:56:00;03/02/2026 17:08:00;12min;1;1;C;189.840,00;189.980,00;192.325,00;No;28,00;140,00;561;28,00;140,00;0,00;0,00;0,00;30min;-1.031,00 +WINJ26;03/02/2026 17:48:00;03/02/2026 18:10:00;22min;1;1;V;190.315,00;190.370,00;192.325,00;Sim;11,00;55,00;562;11,00;55,00;0,00;0,00;0,00;52min;-1.020,00 +WINJ26;03/02/2026 18:22:00;04/02/2026 09:02:00;14h40min;1;1;C;190.170,00;190.645,00;192.325,00;No;95,00;475,00;563;95,00;475,00;0,00;0,00;0,00;34min;-925,00 +WINJ26;04/02/2026 09:04:00;04/02/2026 09:06:00;2min;1;1;V;189.785,00;190.090,00;192.325,00;No;61,00;305,00;564;61,00;305,00;0,00;0,00;0,00;14h42min;-864,00 +WINJ26;04/02/2026 09:14:00;04/02/2026 09:42:00;28min;1;1;C;189.710,00;189.190,00;192.325,00;Sim;-104,00;-520,00;565;-104,00;-520,00;0,00;0,00;0,00;10min;-968,00 +WINJ26;04/02/2026 09:48:00;04/02/2026 09:54:00;6min;1;1;C;189.350,00;189.580,00;192.325,00;Sim;46,00;230,00;566;46,00;230,00;0,00;0,00;0,00;34min;-922,00 +WINJ26;04/02/2026 10:04:00;04/02/2026 10:08:00;4min;1;1;C;189.135,00;189.240,00;192.325,00;Sim;21,00;105,00;567;21,00;105,00;0,00;0,00;0,00;16min;-901,00 +WINJ26;04/02/2026 10:16:00;04/02/2026 10:22:00;6min;1;1;C;189.100,00;189.195,00;192.325,00;Sim;19,00;95,00;568;19,00;95,00;0,00;0,00;0,00;12min;-882,00 +WINJ26;04/02/2026 10:54:00;04/02/2026 10:56:00;2min;1;1;V;188.840,00;188.930,00;192.325,00;No;18,00;90,00;569;18,00;90,00;0,00;0,00;0,00;38min;-864,00 +WINJ26;04/02/2026 11:12:00;04/02/2026 11:40:00;28min;1;1;C;188.295,00;187.620,00;192.325,00;Sim;-135,00;-675,00;570;-135,00;-675,00;0,00;0,00;0,00;18min;-999,00 +WINJ26;04/02/2026 11:46:00;04/02/2026 12:08:00;22min;1;1;C;187.480,00;187.655,00;192.325,00;Sim;35,00;175,00;571;35,00;175,00;0,00;0,00;0,00;34min;-964,00 +WINJ26;04/02/2026 12:14:00;04/02/2026 12:32:00;18min;1;1;V;187.745,00;187.660,00;192.325,00;No;-17,00;-85,00;572;-17,00;-85,00;0,00;0,00;0,00;28min;-981,00 +WINJ26;04/02/2026 12:38:00;04/02/2026 12:44:00;6min;1;1;C;187.540,00;187.775,00;192.325,00;No;47,00;235,00;573;47,00;235,00;0,00;0,00;0,00;24min;-934,00 +WINJ26;04/02/2026 12:50:00;04/02/2026 13:18:00;28min;1;1;C;187.555,00;186.640,00;192.325,00;No;-183,00;-915,00;574;-183,00;-915,00;0,00;0,00;0,00;12min;-1.117,00 +WINJ26;04/02/2026 13:28:00;04/02/2026 13:56:00;28min;1;1;C;186.670,00;186.255,00;192.325,00;Sim;-83,00;-415,00;575;-83,00;-415,00;0,00;0,00;0,00;38min;-1.200,00 +WINJ26;04/02/2026 14:20:00;04/02/2026 14:22:00;2min;1;1;V;186.120,00;186.185,00;192.325,00;No;13,00;65,00;576;13,00;65,00;0,00;0,00;0,00;52min;-1.187,00 +WINJ26;04/02/2026 14:38:00;04/02/2026 15:06:00;28min;1;1;C;185.500,00;185.500,00;192.325,00;Sim;0;0;577;0;0;0,00;0,00;0,00;18min;-1.187,00 +WINJ26;04/02/2026 15:34:00;04/02/2026 15:36:00;2min;1;1;V;185.355,00;185.330,00;192.325,00;No;-5,00;-25,00;578;-5,00;-25,00;0,00;0,00;0,00;56min;-1.192,00 +WINJ26;04/02/2026 15:58:00;04/02/2026 16:18:00;20min;1;1;C;184.935,00;185.015,00;192.325,00;Sim;16,00;80,00;579;16,00;80,00;0,00;0,00;0,00;24min;-1.176,00 +WINJ26;04/02/2026 16:22:00;04/02/2026 16:24:00;2min;1;1;V;184.930,00;185.000,00;192.325,00;No;14,00;70,00;580;14,00;70,00;0,00;0,00;0,00;24min;-1.162,00 +WINJ26;04/02/2026 17:14:00;04/02/2026 17:34:00;20min;1;1;V;185.535,00;185.705,00;192.325,00;Sim;34,00;170,00;581;34,00;170,00;0,00;0,00;0,00;52min;-1.128,00 +WINJ26;04/02/2026 17:36:00;04/02/2026 17:38:00;2min;1;1;C;185.730,00;185.825,00;192.325,00;No;19,00;95,00;582;19,00;95,00;0,00;0,00;0,00;22min;-1.109,00 +WINJ26;04/02/2026 17:56:00;04/02/2026 18:02:00;6min;1;1;C;185.745,00;185.950,00;192.325,00;No;41,00;205,00;583;41,00;205,00;0,00;0,00;0,00;20min;-1.068,00 +WINJ26;04/02/2026 18:24:00;05/02/2026 09:00:00;14h36min;1;1;C;186.015,00;186.000,00;192.325,00;No;-3,00;-15,00;584;-3,00;-15,00;0,00;0,00;0,00;28min;-1.071,00 +WINJ26;05/02/2026 09:16:00;05/02/2026 09:18:00;2min;1;1;C;186.265,00;186.420,00;192.325,00;No;31,00;155,00;585;31,00;155,00;0,00;0,00;0,00;14h52min;-1.040,00 +WINJ26;05/02/2026 09:24:00;05/02/2026 09:26:00;2min;1;1;C;186.355,00;186.400,00;192.325,00;No;9,00;45,00;586;9,00;45,00;0,00;0,00;0,00;8min;-1.031,00 +WINJ26;05/02/2026 09:36:00;05/02/2026 09:40:00;4min;1;1;V;186.285,00;186.670,00;192.325,00;Sim;77,00;385,00;587;77,00;385,00;0,00;0,00;0,00;12min;-954,00 +WINJ26;05/02/2026 09:52:00;05/02/2026 09:54:00;2min;1;1;C;186.360,00;186.445,00;192.325,00;No;17,00;85,00;588;17,00;85,00;0,00;0,00;0,00;16min;-937,00 +WINJ26;05/02/2026 10:04:00;05/02/2026 10:06:00;2min;1;1;V;186.335,00;186.525,00;192.325,00;No;38,00;190,00;589;38,00;190,00;0,00;0,00;0,00;12min;-899,00 +WINJ26;05/02/2026 10:28:00;05/02/2026 10:52:00;24min;1;1;V;186.915,00;186.920,00;192.325,00;Sim;1,00;5,00;590;1,00;5,00;0,00;0,00;0,00;24min;-898,00 +WINJ26;05/02/2026 11:02:00;05/02/2026 11:04:00;2min;1;1;C;187.300,00;187.500,00;192.325,00;No;40,00;200,00;591;40,00;200,00;0,00;0,00;0,00;34min;-858,00 +WINJ26;05/02/2026 11:06:00;05/02/2026 11:30:00;24min;1;1;V;187.300,00;187.320,00;192.325,00;Sim;4,00;20,00;592;4,00;20,00;0,00;0,00;0,00;4min;-854,00 +WINJ26;05/02/2026 11:38:00;05/02/2026 11:40:00;2min;1;1;C;187.525,00;187.890,00;192.325,00;No;73,00;365,00;593;73,00;365,00;0,00;0,00;0,00;32min;-781,00 +WINJ26;05/02/2026 11:50:00;05/02/2026 11:58:00;8min;1;1;V;187.715,00;188.260,00;192.325,00;Sim;109,00;545,00;594;109,00;545,00;0,00;0,00;0,00;12min;-672,00 +WINJ26;05/02/2026 12:26:00;05/02/2026 12:44:00;18min;1;1;C;186.895,00;187.100,00;192.325,00;Sim;41,00;205,00;595;41,00;205,00;0,00;0,00;0,00;36min;-631,00 +WINJ26;05/02/2026 13:32:00;05/02/2026 13:40:00;8min;1;1;V;187.220,00;187.245,00;192.325,00;No;5,00;25,00;596;5,00;25,00;0,00;0,00;0,00;1h6min;-626,00 +WINJ26;05/02/2026 13:58:00;05/02/2026 14:04:00;6min;1;1;V;187.255,00;187.400,00;192.325,00;Sim;29,00;145,00;597;29,00;145,00;0,00;0,00;0,00;26min;-597,00 +WINJ26;05/02/2026 14:16:00;05/02/2026 14:20:00;4min;1;1;C;187.030,00;187.260,00;192.325,00;No;46,00;230,00;598;46,00;230,00;0,00;0,00;0,00;18min;-551,00 +WINJ26;05/02/2026 14:50:00;05/02/2026 14:58:00;8min;1;1;V;187.560,00;187.585,00;192.325,00;Sim;5,00;25,00;599;5,00;25,00;0,00;0,00;0,00;34min;-546,00 +WINJ26;05/02/2026 15:16:00;05/02/2026 15:24:00;8min;1;1;V;187.545,00;187.635,00;192.325,00;Sim;18,00;90,00;600;18,00;90,00;0,00;0,00;0,00;26min;-528,00 +WINJ26;05/02/2026 15:54:00;05/02/2026 16:00:00;6min;1;1;C;187.440,00;187.450,00;192.325,00;No;2,00;10,00;601;2,00;10,00;0,00;0,00;0,00;38min;-526,00 +WINJ26;05/02/2026 16:14:00;05/02/2026 16:32:00;18min;1;1;V;187.610,00;187.655,00;192.325,00;Sim;9,00;45,00;602;9,00;45,00;0,00;0,00;0,00;20min;-517,00 +WINJ26;05/02/2026 16:38:00;05/02/2026 17:00:00;22min;1;1;C;187.590,00;187.375,00;192.325,00;No;-43,00;-215,00;603;-43,00;-215,00;0,00;0,00;0,00;24min;-560,00 +WINJ26;05/02/2026 17:06:00;05/02/2026 17:08:00;2min;1;1;V;187.445,00;187.350,00;192.325,00;No;-19,00;-95,00;604;-19,00;-95,00;0,00;0,00;0,00;28min;-579,00 +WINJ26;05/02/2026 17:14:00;05/02/2026 17:16:00;2min;1;1;V;187.260,00;187.380,00;192.325,00;Sim;24,00;120,00;605;24,00;120,00;0,00;0,00;0,00;8min;-555,00 +WINJ26;05/02/2026 17:32:00;05/02/2026 17:58:00;26min;1;1;C;186.520,00;186.505,00;192.325,00;Sim;-3,00;-15,00;606;-3,00;-15,00;0,00;0,00;0,00;18min;-558,00 +WINJ26;05/02/2026 18:00:00;05/02/2026 18:16:00;16min;1;1;V;186.445,00;186.585,00;192.325,00;No;28,00;140,00;607;28,00;140,00;0,00;0,00;0,00;28min;-530,00 +WINJ26;06/02/2026 09:08:00;06/02/2026 09:20:00;12min;1;1;V;186.900,00;187.700,00;192.325,00;Sim;160,00;800,00;608;160,00;800,00;0,00;0,00;0,00;15h8min;-370,00 +WINJ26;06/02/2026 09:30:00;06/02/2026 09:34:00;4min;1;1;C;186.690,00;186.970,00;192.325,00;No;56,00;280,00;609;56,00;280,00;0,00;0,00;0,00;22min;-314,00 +WINJ26;06/02/2026 09:52:00;06/02/2026 10:20:00;28min;1;1;C;186.710,00;186.590,00;192.325,00;No;-24,00;-120,00;610;-24,00;-120,00;0,00;0,00;0,00;22min;-338,00 +WINJ26;06/02/2026 10:44:00;06/02/2026 10:46:00;2min;1;1;C;186.175,00;186.270,00;192.325,00;Sim;19,00;95,00;611;19,00;95,00;0,00;0,00;0,00;52min;-319,00 +WINJ26;06/02/2026 10:58:00;06/02/2026 11:02:00;4min;1;1;C;186.125,00;186.540,00;192.325,00;Sim;83,00;415,00;612;83,00;415,00;0,00;0,00;0,00;14min;-236,00 +WINJ26;06/02/2026 11:12:00;06/02/2026 11:36:00;24min;1;1;V;186.570,00;186.620,00;192.325,00;No;10,00;50,00;613;10,00;50,00;0,00;0,00;0,00;14min;-226,00 +WINJ26;06/02/2026 11:44:00;06/02/2026 11:52:00;8min;1;1;C;186.520,00;186.660,00;192.325,00;No;28,00;140,00;614;28,00;140,00;0,00;0,00;0,00;32min;-198,00 +WINJ26;06/02/2026 12:10:00;06/02/2026 12:12:00;2min;1;1;C;186.085,00;186.170,00;192.325,00;Sim;17,00;85,00;615;17,00;85,00;0,00;0,00;0,00;26min;-181,00 +WINJ26;06/02/2026 12:46:00;06/02/2026 12:48:00;2min;1;1;C;186.330,00;186.300,00;192.325,00;No;-6,00;-30,00;616;-6,00;-30,00;0,00;0,00;0,00;36min;-187,00 +WINJ26;06/02/2026 13:00:00;06/02/2026 13:06:00;6min;1;1;C;186.225,00;186.350,00;192.325,00;Sim;25,00;125,00;617;25,00;125,00;0,00;0,00;0,00;14min;-162,00 +WINJ26;06/02/2026 13:08:00;06/02/2026 13:28:00;20min;1;1;V;186.600,00;186.375,00;192.325,00;No;-45,00;-225,00;618;-45,00;-225,00;0,00;0,00;0,00;8min;-207,00 +WINJ26;06/02/2026 13:44:00;06/02/2026 14:06:00;22min;1;1;V;186.955,00;187.115,00;192.325,00;Sim;32,00;160,00;619;32,00;160,00;0,00;0,00;0,00;36min;-175,00 +WINJ26;06/02/2026 14:08:00;06/02/2026 14:10:00;2min;1;1;C;186.995,00;187.180,00;192.325,00;No;37,00;185,00;620;37,00;185,00;0,00;0,00;0,00;24min;-138,00 +WINJ26;06/02/2026 14:20:00;06/02/2026 14:22:00;2min;1;1;C;187.015,00;187.070,00;192.325,00;No;11,00;55,00;621;11,00;55,00;0,00;0,00;0,00;12min;-127,00 +WINJ26;06/02/2026 14:42:00;06/02/2026 14:46:00;4min;1;1;C;186.975,00;187.005,00;192.325,00;Sim;6,00;30,00;622;6,00;30,00;0,00;0,00;0,00;22min;-121,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:46:00;30min;1;1;C;186.525,00;186.430,00;192.325,00;Sim;-19,00;-95,00;623;-19,00;-95,00;0,00;0,00;0,00;34min;-140,00 +WINJ26;06/02/2026 15:50:00;06/02/2026 15:54:00;4min;1;1;V;186.395,00;186.450,00;192.325,00;No;11,00;55,00;624;11,00;55,00;0,00;0,00;0,00;34min;-129,00 +WINJ26;06/02/2026 16:00:00;06/02/2026 16:28:00;28min;1;1;V;186.645,00;186.405,00;192.325,00;No;-48,00;-240,00;625;-48,00;-240,00;0,00;0,00;0,00;10min;-177,00 +WINJ26;06/02/2026 16:30:00;06/02/2026 16:40:00;10min;1;1;V;186.465,00;186.510,00;192.325,00;Sim;9,00;45,00;626;9,00;45,00;0,00;0,00;0,00;30min;-168,00 +WINJ26;06/02/2026 16:50:00;06/02/2026 16:54:00;4min;1;1;V;186.555,00;186.595,00;192.325,00;Sim;8,00;40,00;627;8,00;40,00;0,00;0,00;0,00;20min;-160,00 +WINJ26;06/02/2026 17:16:00;06/02/2026 17:40:00;24min;1;1;V;187.165,00;187.005,00;192.325,00;Sim;-32,00;-160,00;628;-32,00;-160,00;0,00;0,00;0,00;26min;-192,00 +WINJ26;06/02/2026 18:08:00;09/02/2026 09:00:00;2d14h;1;1;C;187.265,00;187.805,00;192.325,00;No;108,00;540,00;629;108,00;540,00;0,00;0,00;0,00;52min;-84,00 +WINJ26;09/02/2026 09:02:00;09/02/2026 09:30:00;28min;1;1;V;187.980,00;187.735,00;192.325,00;Sim;-49,00;-245,00;630;-49,00;-245,00;0,00;0,00;0,00;2d14h;-133,00 +WINJ26;09/02/2026 09:44:00;09/02/2026 09:50:00;6min;1;1;V;188.015,00;188.435,00;192.325,00;Sim;84,00;420,00;631;84,00;420,00;0,00;0,00;0,00;42min;-49,00 +WINJ26;09/02/2026 10:00:00;09/02/2026 10:28:00;28min;1;1;C;188.045,00;187.640,00;192.325,00;No;-81,00;-405,00;632;-81,00;-405,00;0,00;0,00;0,00;16min;-130,00 +WINJ26;09/02/2026 10:36:00;09/02/2026 10:44:00;8min;1;1;C;187.625,00;187.625,00;192.325,00;Sim;0;0;633;0;0;0,00;0,00;0,00;36min;-130,00 +WINJ26;09/02/2026 11:20:00;09/02/2026 11:22:00;2min;1;1;C;187.670,00;187.670,00;192.325,00;No;0;0;634;0;0;0,00;0,00;0,00;44min;-130,00 +WINJ26;09/02/2026 11:30:00;09/02/2026 11:36:00;6min;1;1;V;187.670,00;187.770,00;192.325,00;No;20,00;100,00;635;20,00;100,00;0,00;0,00;0,00;10min;-110,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:10:00;20min;1;1;V;188.225,00;188.185,00;192.325,00;Sim;-8,00;-40,00;636;-8,00;-40,00;0,00;0,00;0,00;20min;-118,00 +WINJ26;09/02/2026 12:12:00;09/02/2026 12:14:00;2min;1;1;C;188.260,00;188.360,00;192.325,00;No;20,00;100,00;637;20,00;100,00;0,00;0,00;0,00;22min;-98,00 +WINJ26;09/02/2026 12:26:00;09/02/2026 12:28:00;2min;1;1;C;188.220,00;188.140,00;192.325,00;Sim;-16,00;-80,00;638;-16,00;-80,00;0,00;0,00;0,00;14min;-114,00 +WINJ26;09/02/2026 12:40:00;09/02/2026 13:08:00;28min;1;1;C;188.215,00;187.805,00;192.325,00;Sim;-82,00;-410,00;639;-82,00;-410,00;0,00;0,00;0,00;14min;-196,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:12:00;2min;1;1;C;187.925,00;187.965,00;192.325,00;Sim;8,00;40,00;640;8,00;40,00;0,00;0,00;0,00;30min;-188,00 +WINJ26;09/02/2026 14:34:00;09/02/2026 14:54:00;20min;1;1;V;189.485,00;189.485,00;192.325,00;Sim;0;0;641;0;0;0,00;0,00;0,00;1h24min;-188,00 +WINJ26;09/02/2026 15:00:00;09/02/2026 15:02:00;2min;1;1;C;189.605,00;189.590,00;192.325,00;No;-3,00;-15,00;642;-3,00;-15,00;0,00;0,00;0,00;26min;-191,00 +WINJ26;09/02/2026 15:24:00;09/02/2026 15:26:00;2min;1;1;C;189.755,00;189.880,00;192.325,00;No;25,00;125,00;643;25,00;125,00;0,00;0,00;0,00;24min;-166,00 +WINJ26;09/02/2026 16:36:00;09/02/2026 16:46:00;10min;1;1;V;190.320,00;190.395,00;192.325,00;Sim;15,00;75,00;644;15,00;75,00;0,00;0,00;0,00;1h12min;-151,00 +WINJ26;09/02/2026 16:50:00;09/02/2026 16:52:00;2min;1;1;C;190.320,00;190.295,00;192.325,00;No;-5,00;-25,00;645;-5,00;-25,00;0,00;0,00;0,00;14min;-156,00 +WINJ26;09/02/2026 17:14:00;09/02/2026 17:18:00;4min;1;1;V;190.445,00;190.595,00;192.325,00;Sim;30,00;150,00;646;30,00;150,00;0,00;0,00;0,00;24min;-126,00 +WINJ26;09/02/2026 17:32:00;09/02/2026 17:40:00;8min;1;1;C;190.420,00;190.420,00;192.325,00;No;0;0;647;0;0;0,00;0,00;0,00;18min;-126,00 +WINJ26;09/02/2026 17:46:00;09/02/2026 17:48:00;2min;1;1;C;190.450,00;190.430,00;192.325,00;No;-4,00;-20,00;648;-4,00;-20,00;0,00;0,00;0,00;14min;-130,00 +WINJ26;09/02/2026 17:56:00;09/02/2026 18:02:00;6min;1;1;V;190.635,00;190.630,00;192.325,00;Sim;-1,00;-5,00;649;-1,00;-5,00;0,00;0,00;0,00;10min;-131,00 +WINJ26;10/02/2026 09:16:00;10/02/2026 09:22:00;6min;1;1;C;189.900,00;190.075,00;192.325,00;Sim;35,00;175,00;650;35,00;175,00;0,00;0,00;0,00;15h20min;-96,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 09:52:00;4min;1;1;C;189.660,00;189.775,00;192.325,00;Sim;23,00;115,00;651;23,00;115,00;0,00;0,00;0,00;32min;-73,00 +WINJ26;10/02/2026 10:10:00;10/02/2026 10:12:00;2min;1;1;V;189.760,00;189.800,00;192.325,00;No;8,00;40,00;652;8,00;40,00;0,00;0,00;0,00;22min;-65,00 +WINJ26;10/02/2026 10:22:00;10/02/2026 10:24:00;2min;1;1;V;189.890,00;189.680,00;192.325,00;No;-42,00;-210,00;653;-42,00;-210,00;0,00;0,00;0,00;12min;-107,00 +WINJ26;10/02/2026 10:30:00;10/02/2026 10:32:00;2min;1;1;V;189.680,00;189.555,00;192.325,00;No;-25,00;-125,00;654;-25,00;-125,00;0,00;0,00;0,00;8min;-132,00 +WINJ26;10/02/2026 11:00:00;10/02/2026 11:04:00;4min;1;1;V;189.480,00;189.640,00;192.325,00;Sim;32,00;160,00;655;32,00;160,00;0,00;0,00;0,00;30min;-100,00 +WINJ26;10/02/2026 11:42:00;10/02/2026 11:44:00;2min;1;1;C;189.950,00;190.065,00;192.325,00;No;23,00;115,00;656;23,00;115,00;0,00;0,00;0,00;42min;-77,00 +WINJ26;10/02/2026 11:52:00;10/02/2026 11:54:00;2min;1;1;C;189.930,00;190.045,00;192.325,00;Sim;23,00;115,00;657;23,00;115,00;0,00;0,00;0,00;10min;-54,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 13:00:00;22min;1;1;V;190.815,00;190.860,00;192.325,00;Sim;9,00;45,00;658;9,00;45,00;0,00;0,00;0,00;46min;-45,00 +WINJ26;10/02/2026 13:02:00;10/02/2026 13:04:00;2min;1;1;C;190.880,00;190.910,00;192.325,00;No;6,00;30,00;659;6,00;30,00;0,00;0,00;0,00;24min;-39,00 +WINJ26;10/02/2026 13:14:00;10/02/2026 13:16:00;2min;1;1;C;190.805,00;190.760,00;192.325,00;Sim;-9,00;-45,00;660;-9,00;-45,00;0,00;0,00;0,00;12min;-48,00 +WINJ26;10/02/2026 13:54:00;10/02/2026 14:10:00;16min;1;1;C;190.385,00;190.435,00;192.325,00;Sim;10,00;50,00;661;10,00;50,00;0,00;0,00;0,00;40min;-38,00 +WINJ26;10/02/2026 14:32:00;10/02/2026 14:34:00;2min;1;1;V;190.285,00;190.335,00;192.325,00;No;10,00;50,00;662;10,00;50,00;0,00;0,00;0,00;38min;-28,00 +WINJ26;10/02/2026 14:54:00;10/02/2026 15:22:00;28min;1;1;C;190.070,00;190.050,00;192.325,00;Sim;-4,00;-20,00;663;-4,00;-20,00;0,00;0,00;0,00;22min;-32,00 +WINJ26;10/02/2026 15:44:00;10/02/2026 16:08:00;24min;1;1;C;189.520,00;189.690,00;192.325,00;Sim;34,00;170,00;664;34,00;170,00;0,00;0,00;0,00;50min;2,00 +WINJ26;10/02/2026 16:12:00;10/02/2026 16:14:00;2min;1;1;V;189.630,00;189.605,00;192.325,00;No;-5,00;-25,00;665;-5,00;-25,00;0,00;0,00;0,00;28min;-3,00 +WINJ26;10/02/2026 16:32:00;10/02/2026 17:00:00;28min;1;1;V;189.975,00;189.610,00;192.325,00;Sim;-73,00;-365,00;666;-73,00;-365,00;0,00;0,00;0,00;20min;-76,00 +WINJ26;10/02/2026 17:34:00;10/02/2026 17:40:00;6min;1;1;V;190.420,00;190.590,00;192.325,00;Sim;34,00;170,00;667;34,00;170,00;0,00;0,00;0,00;1h2min;-42,00 +WINJ26;10/02/2026 17:52:00;10/02/2026 18:16:00;24min;1;1;C;190.140,00;190.145,00;192.325,00;No;1,00;5,00;668;1,00;5,00;0,00;0,00;0,00;18min;-41,00 +WINJ26;11/02/2026 09:02:00;11/02/2026 09:04:00;2min;1;1;C;191.405,00;191.925,00;192.325,00;No;104,00;520,00;669;104,00;520,00;0,00;0,00;0,00;15h10min;63,00 +WINJ26;11/02/2026 09:20:00;11/02/2026 09:48:00;28min;1;1;V;192.290,00;191.770,00;192.325,00;Sim;-104,00;-520,00;670;-104,00;-520,00;0,00;0,00;0,00;18min;-41,00 +WINJ26;11/02/2026 09:52:00;11/02/2026 10:08:00;16min;1;1;V;192.100,00;192.200,00;192.325,00;Sim;20,00;100,00;671;20,00;100,00;0,00;0,00;0,00;32min;-21,00 +WINJ26;11/02/2026 10:20:00;11/02/2026 10:24:00;4min;1;1;C;191.925,00;192.165,00;192.325,00;No;48,00;240,00;672;48,00;240,00;0,00;0,00;0,00;28min;27,00 +WINJ26;11/02/2026 10:52:00;11/02/2026 11:20:00;28min;1;1;V;193.285,00;192.590,00;192.325,00;Sim;-139,00;-695,00;673;-139,00;-695,00;0,00;0,00;0,00;32min;-112,00 +WINJ26;11/02/2026 11:34:00;11/02/2026 11:50:00;16min;1;1;V;193.275,00;193.275,00;192.325,00;Sim;0;0;674;0;0;0,00;0,00;0,00;42min;-112,00 +WINJ26;11/02/2026 12:32:00;11/02/2026 12:42:00;10min;1;1;C;192.590,00;192.680,00;192.325,00;No;18,00;90,00;675;18,00;90,00;0,00;0,00;0,00;58min;-94,00 +WINJ26;11/02/2026 13:22:00;11/02/2026 13:50:00;28min;1;1;V;194.545,00;194.115,00;192.325,00;Sim;-86,00;-430,00;676;-86,00;-430,00;0,00;0,00;0,00;50min;-180,00 +WINJ26;11/02/2026 14:48:00;11/02/2026 14:50:00;2min;1;1;C;194.530,00;194.540,00;192.325,00;No;2,00;10,00;677;2,00;10,00;0,00;0,00;0,00;1h26min;-178,00 +WINJ26;11/02/2026 15:00:00;11/02/2026 15:28:00;28min;1;1;C;194.505,00;193.890,00;192.325,00;Sim;-123,00;-615,00;678;-123,00;-615,00;0,00;0,00;0,00;12min;-301,00 +WINJ26;11/02/2026 15:40:00;11/02/2026 16:04:00;24min;1;1;C;193.780,00;193.870,00;192.325,00;Sim;18,00;90,00;679;18,00;90,00;0,00;0,00;0,00;40min;-283,00 +WINJ26;11/02/2026 16:32:00;11/02/2026 16:46:00;14min;1;1;V;194.190,00;194.435,00;192.325,00;Sim;49,00;245,00;680;49,00;245,00;0,00;0,00;0,00;52min;-234,00 +WINJ26;11/02/2026 17:28:00;11/02/2026 17:30:00;2min;1;1;C;194.025,00;193.995,00;192.325,00;No;-6,00;-30,00;681;-6,00;-30,00;0,00;0,00;0,00;56min;-240,00 +WINJ26;11/02/2026 17:46:00;11/02/2026 17:50:00;4min;1;1;V;194.075,00;194.275,00;192.325,00;No;40,00;200,00;682;40,00;200,00;0,00;0,00;0,00;18min;-200,00 +WINJ26;11/02/2026 18:08:00;12/02/2026 09:02:00;14h54min;1;1;C;194.025,00;194.380,00;192.325,00;No;71,00;355,00;683;71,00;355,00;0,00;0,00;0,00;22min;-129,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.325,00;No;-16,00;-80,00;684;-16,00;-80,00;0,00;0,00;0,00;14h56min;-145,00 +WINJ26;12/02/2026 09:30:00;12/02/2026 09:58:00;28min;1;1;C;193.200,00;192.965,00;192.325,00;Sim;-47,00;-235,00;685;-47,00;-235,00;0,00;0,00;0,00;26min;-192,00 +WINJ26;12/02/2026 10:08:00;12/02/2026 10:10:00;2min;1;1;V;193.005,00;193.015,00;192.325,00;No;2,00;10,00;686;2,00;10,00;0,00;0,00;0,00;38min;-190,00 +WINJ26;12/02/2026 10:18:00;12/02/2026 10:42:00;24min;1;1;V;193.365,00;193.180,00;192.325,00;Sim;-37,00;-185,00;687;-37,00;-185,00;0,00;0,00;0,00;10min;-227,00 +WINJ26;12/02/2026 11:02:00;12/02/2026 11:10:00;8min;1;1;C;192.990,00;193.220,00;192.325,00;Sim;46,00;230,00;688;46,00;230,00;0,00;0,00;0,00;44min;-181,00 +WINJ26;12/02/2026 11:28:00;12/02/2026 11:32:00;4min;1;1;V;193.405,00;193.735,00;192.325,00;Sim;66,00;330,00;689;66,00;330,00;0,00;0,00;0,00;26min;-115,00 +WINJ26;12/02/2026 11:56:00;12/02/2026 12:00:00;4min;1;1;C;193.305,00;193.430,00;192.325,00;No;25,00;125,00;690;25,00;125,00;0,00;0,00;0,00;28min;-90,00 +WINJ26;12/02/2026 12:20:00;12/02/2026 12:22:00;2min;1;1;V;193.620,00;193.765,00;192.325,00;Sim;29,00;145,00;691;29,00;145,00;0,00;0,00;0,00;24min;-61,00 +WINJ26;12/02/2026 12:36:00;12/02/2026 12:50:00;14min;1;1;C;193.575,00;193.670,00;192.325,00;No;19,00;95,00;692;19,00;95,00;0,00;0,00;0,00;16min;-42,00 +WINJ26;12/02/2026 13:06:00;12/02/2026 13:34:00;28min;1;1;C;193.430,00;192.545,00;192.325,00;Sim;-177,00;-885,00;693;-177,00;-885,00;0,00;0,00;0,00;30min;-219,00 +WINJ26;12/02/2026 14:30:00;12/02/2026 14:32:00;2min;1;1;V;192.520,00;192.535,00;192.325,00;No;3,00;15,00;694;3,00;15,00;0,00;0,00;0,00;1h24min;-216,00 +WINJ26;12/02/2026 14:54:00;12/02/2026 14:56:00;2min;1;1;V;192.540,00;192.530,00;192.325,00;No;-2,00;-10,00;695;-2,00;-10,00;0,00;0,00;0,00;24min;-218,00 +WINJ26;12/02/2026 15:34:00;12/02/2026 15:42:00;8min;1;1;C;191.240,00;191.430,00;192.325,00;Sim;38,00;190,00;696;38,00;190,00;0,00;0,00;0,00;40min;-180,00 +WINJ26;12/02/2026 16:28:00;12/02/2026 16:30:00;2min;1;1;V;191.710,00;191.795,00;192.325,00;No;17,00;85,00;697;17,00;85,00;0,00;0,00;0,00;54min;-163,00 +WINJ26;12/02/2026 17:00:00;12/02/2026 17:04:00;4min;1;1;V;192.010,00;192.050,00;192.325,00;Sim;8,00;40,00;698;8,00;40,00;0,00;0,00;0,00;32min;-155,00 +WINJ26;12/02/2026 17:10:00;12/02/2026 17:12:00;2min;1;1;V;192.035,00;192.305,00;192.325,00;Sim;54,00;270,00;699;54,00;270,00;0,00;0,00;0,00;10min;-101,00 +WINJ26;12/02/2026 17:20:00;12/02/2026 17:22:00;2min;1;1;C;192.050,00;192.095,00;192.325,00;No;9,00;45,00;700;9,00;45,00;0,00;0,00;0,00;10min;-92,00 +WINJ26;12/02/2026 17:36:00;12/02/2026 17:38:00;2min;1;1;C;192.135,00;192.140,00;192.325,00;No;1,00;5,00;701;1,00;5,00;0,00;0,00;0,00;16min;-91,00 +WINJ26;12/02/2026 17:58:00;13/02/2026 09:00:00;15h2min;1;1;C;192.020,00;191.245,00;192.325,00;Sim;-155,00;-775,00;702;-155,00;-775,00;0,00;0,00;0,00;22min;-246,00 +WINJ26;13/02/2026 09:16:00;13/02/2026 09:44:00;28min;1;1;C;189.905,00;189.400,00;192.325,00;Sim;-101,00;-505,00;703;-101,00;-505,00;0,00;0,00;0,00;15h18min;-347,00 +WINJ26;13/02/2026 09:48:00;13/02/2026 09:50:00;2min;1;1;V;189.190,00;189.350,00;192.325,00;No;32,00;160,00;704;32,00;160,00;0,00;0,00;0,00;32min;-315,00 +WINJ26;13/02/2026 10:02:00;13/02/2026 10:04:00;2min;1;1;V;188.925,00;188.995,00;192.325,00;No;14,00;70,00;705;14,00;70,00;0,00;0,00;0,00;14min;-301,00 +WINJ26;13/02/2026 10:14:00;13/02/2026 10:16:00;2min;1;1;V;188.805,00;188.980,00;192.325,00;No;35,00;175,00;706;35,00;175,00;0,00;0,00;0,00;12min;-266,00 +WINJ26;13/02/2026 10:32:00;13/02/2026 10:38:00;6min;1;1;V;188.995,00;188.830,00;192.325,00;No;-33,00;-165,00;707;-33,00;-165,00;0,00;0,00;0,00;18min;-299,00 +WINJ26;13/02/2026 10:58:00;13/02/2026 11:00:00;2min;1;1;V;188.945,00;188.995,00;192.325,00;Sim;10,00;50,00;708;10,00;50,00;0,00;0,00;0,00;26min;-289,00 +WINJ26;13/02/2026 11:08:00;13/02/2026 11:10:00;2min;1;1;V;188.980,00;189.035,00;192.325,00;Sim;11,00;55,00;709;11,00;55,00;0,00;0,00;0,00;10min;-278,00 +WINJ26;13/02/2026 11:44:00;13/02/2026 11:46:00;2min;1;1;C;188.130,00;188.625,00;192.325,00;Sim;99,00;495,00;710;99,00;495,00;0,00;0,00;0,00;36min;-179,00 +WINJ26;13/02/2026 11:50:00;13/02/2026 11:52:00;2min;1;1;V;188.070,00;188.260,00;192.325,00;No;38,00;190,00;711;38,00;190,00;0,00;0,00;0,00;6min;-141,00 +WINJ26;13/02/2026 12:16:00;13/02/2026 12:18:00;2min;1;1;V;187.915,00;188.070,00;192.325,00;No;31,00;155,00;712;31,00;155,00;0,00;0,00;0,00;26min;-110,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.325,00;Sim;68,00;340,00;713;68,00;340,00;0,00;0,00;0,00;28min;-42,00 +WINJ26;13/02/2026 13:34:00;13/02/2026 14:02:00;28min;1;1;V;189.495,00;189.300,00;192.325,00;Sim;-39,00;-195,00;714;-39,00;-195,00;0,00;0,00;0,00;50min;-81,00 +WINJ26;13/02/2026 14:22:00;13/02/2026 14:24:00;2min;1;1;C;189.435,00;189.480,00;192.325,00;No;9,00;45,00;715;9,00;45,00;0,00;0,00;0,00;48min;-72,00 +WINJ26;13/02/2026 14:36:00;13/02/2026 14:38:00;2min;1;1;C;189.605,00;189.625,00;192.325,00;No;4,00;20,00;716;4,00;20,00;0,00;0,00;0,00;14min;-68,00 +WINJ26;13/02/2026 14:48:00;13/02/2026 15:16:00;28min;1;1;V;190.025,00;189.890,00;192.325,00;Sim;-27,00;-135,00;717;-27,00;-135,00;0,00;0,00;0,00;12min;-95,00 +WINJ26;13/02/2026 15:24:00;13/02/2026 15:26:00;2min;1;1;C;189.940,00;189.875,00;192.325,00;No;-13,00;-65,00;718;-13,00;-65,00;0,00;0,00;0,00;36min;-108,00 +WINJ26;13/02/2026 15:38:00;13/02/2026 15:42:00;4min;1;1;V;190.025,00;190.205,00;192.325,00;Sim;36,00;180,00;719;36,00;180,00;0,00;0,00;0,00;14min;-72,00 +WINJ26;13/02/2026 16:06:00;13/02/2026 16:08:00;2min;1;1;C;190.130,00;190.155,00;192.325,00;No;5,00;25,00;720;5,00;25,00;0,00;0,00;0,00;28min;-67,00 +WINJ26;13/02/2026 16:26:00;13/02/2026 16:32:00;6min;1;1;C;189.705,00;189.895,00;192.325,00;Sim;38,00;190,00;721;38,00;190,00;0,00;0,00;0,00;20min;-29,00 +WINJ26;13/02/2026 16:40:00;13/02/2026 16:44:00;4min;1;1;V;189.850,00;190.075,00;192.325,00;No;45,00;225,00;722;45,00;225,00;0,00;0,00;0,00;14min;16,00 +WINJ26;13/02/2026 17:28:00;13/02/2026 17:50:00;22min;1;1;C;189.750,00;190.005,00;192.325,00;No;51,00;255,00;723;51,00;255,00;0,00;0,00;0,00;48min;67,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.325,00;Sim;14,00;70,00;724;14,00;70,00;0,00;0,00;0,00;4d19h;81,00 +WINJ26;18/02/2026 13:20:00;18/02/2026 13:42:00;22min;1;1;C;190.420,00;190.370,00;192.325,00;No;-10,00;-50,00;725;-10,00;-50,00;0,00;0,00;0,00;20min;71,00 +WINJ26;18/02/2026 13:54:00;18/02/2026 13:56:00;2min;1;1;C;190.200,00;190.255,00;192.325,00;Sim;11,00;55,00;726;11,00;55,00;0,00;0,00;0,00;34min;82,00 +WINJ26;18/02/2026 14:16:00;18/02/2026 14:18:00;2min;1;1;C;189.960,00;190.010,00;192.325,00;Sim;10,00;50,00;727;10,00;50,00;0,00;0,00;0,00;22min;92,00 +WINJ26;18/02/2026 14:58:00;18/02/2026 15:00:00;2min;1;1;V;190.185,00;190.390,00;192.325,00;No;41,00;205,00;728;41,00;205,00;0,00;0,00;0,00;42min;133,00 +WINJ26;18/02/2026 15:16:00;18/02/2026 15:30:00;14min;1;1;C;189.580,00;189.720,00;192.325,00;Sim;28,00;140,00;729;28,00;140,00;0,00;0,00;0,00;18min;161,00 +WINJ26;18/02/2026 16:24:00;18/02/2026 16:44:00;20min;1;1;C;189.070,00;189.045,00;192.325,00;Sim;-5,00;-25,00;730;-5,00;-25,00;0,00;0,00;0,00;1h8min;156,00 +WINJ26;18/02/2026 16:50:00;18/02/2026 16:52:00;2min;1;1;V;188.930,00;188.880,00;192.325,00;No;-10,00;-50,00;731;-10,00;-50,00;0,00;0,00;0,00;26min;146,00 +WINJ26;18/02/2026 16:58:00;18/02/2026 17:14:00;16min;1;1;V;189.055,00;188.935,00;192.325,00;Sim;-24,00;-120,00;732;-24,00;-120,00;0,00;0,00;0,00;8min;122,00 +WINJ26;18/02/2026 17:24:00;18/02/2026 17:32:00;8min;1;1;C;189.030,00;189.220,00;192.325,00;Sim;38,00;190,00;733;38,00;190,00;0,00;0,00;0,00;26min;160,00 +WINJ26;18/02/2026 17:34:00;18/02/2026 18:02:00;28min;1;1;V;190.075,00;189.210,00;192.325,00;Sim;-173,00;-865,00;734;-173,00;-865,00;0,00;0,00;0,00;10min;-13,00 +WINJ26;18/02/2026 18:16:00;19/02/2026 09:18:00;15h2min;1;1;V;190.345,00;189.995,00;192.325,00;Sim;-70,00;-350,00;735;-70,00;-350,00;0,00;0,00;0,00;42min;-83,00 +WINJ26;19/02/2026 09:24:00;19/02/2026 09:26:00;2min;1;1;C;190.190,00;190.305,00;192.325,00;No;23,00;115,00;736;23,00;115,00;0,00;0,00;0,00;15h8min;-60,00 +WINJ26;19/02/2026 09:42:00;19/02/2026 09:44:00;2min;1;1;C;190.280,00;190.630,00;192.325,00;No;70,00;350,00;737;70,00;350,00;0,00;0,00;0,00;18min;10,00 +WINJ26;19/02/2026 10:00:00;19/02/2026 10:18:00;18min;1;1;C;190.580,00;190.240,00;192.325,00;No;-68,00;-340,00;738;-68,00;-340,00;0,00;0,00;0,00;18min;-58,00 +WINJ26;19/02/2026 10:30:00;19/02/2026 10:32:00;2min;1;1;C;190.055,00;190.240,00;192.325,00;Sim;37,00;185,00;739;37,00;185,00;0,00;0,00;0,00;30min;-21,00 +WINJ26;19/02/2026 10:42:00;19/02/2026 10:44:00;2min;1;1;V;190.290,00;190.575,00;192.325,00;Sim;57,00;285,00;740;57,00;285,00;0,00;0,00;0,00;12min;36,00 +WINJ26;19/02/2026 10:52:00;19/02/2026 10:54:00;2min;1;1;C;190.235,00;190.410,00;192.325,00;No;35,00;175,00;741;35,00;175,00;0,00;0,00;0,00;10min;71,00 +WINJ26;19/02/2026 11:00:00;19/02/2026 11:18:00;18min;1;1;C;190.235,00;190.210,00;192.325,00;No;-5,00;-25,00;742;-5,00;-25,00;0,00;0,00;0,00;8min;66,00 +WINJ26;19/02/2026 11:26:00;19/02/2026 11:48:00;22min;1;1;C;190.115,00;190.060,00;192.325,00;Sim;-11,00;-55,00;743;-11,00;-55,00;0,00;0,00;0,00;26min;55,00 +WINJ26;19/02/2026 12:16:00;19/02/2026 12:44:00;28min;1;1;V;192.155,00;191.340,00;192.325,00;Sim;-163,00;-815,00;744;-163,00;-815,00;0,00;0,00;0,00;50min;-108,00 +WINJ26;19/02/2026 12:46:00;19/02/2026 13:14:00;28min;1;1;V;192.260,00;192.010,00;192.325,00;Sim;-50,00;-250,00;745;-50,00;-250,00;0,00;0,00;0,00;30min;-158,00 +WINJ26;19/02/2026 13:36:00;19/02/2026 13:38:00;2min;1;1;C;192.310,00;192.285,00;192.325,00;No;-5,00;-25,00;746;-5,00;-25,00;0,00;0,00;0,00;50min;-163,00 +WINJ26;19/02/2026 13:56:00;19/02/2026 14:12:00;16min;1;1;C;192.255,00;192.100,00;192.325,00;Sim;-31,00;-155,00;747;-31,00;-155,00;0,00;0,00;0,00;20min;-194,00 +WINJ26;19/02/2026 14:24:00;19/02/2026 14:38:00;14min;1;1;V;192.280,00;192.320,00;192.325,00;Sim;8,00;40,00;748;8,00;40,00;0,00;0,00;0,00;28min;-186,00 +WINJ26;19/02/2026 14:56:00;19/02/2026 15:14:00;18min;1;1;C;192.190,00;192.155,00;192.325,00;Sim;-7,00;-35,00;749;-7,00;-35,00;0,00;0,00;0,00;32min;-193,00 +WINJ26;19/02/2026 15:24:00;19/02/2026 15:48:00;24min;1;1;C;192.030,00;191.990,00;192.325,00;Sim;-8,00;-40,00;750;-8,00;-40,00;0,00;0,00;0,00;28min;-201,00 +WINJ26;19/02/2026 16:08:00;19/02/2026 16:14:00;6min;1;1;C;191.885,00;191.955,00;192.325,00;Sim;14,00;70,00;751;14,00;70,00;0,00;0,00;0,00;44min;-187,00 +WINJ26;19/02/2026 16:16:00;19/02/2026 16:18:00;2min;1;1;V;191.860,00;191.885,00;192.325,00;No;5,00;25,00;752;5,00;25,00;0,00;0,00;0,00;8min;-182,00 +WINJ26;19/02/2026 16:24:00;19/02/2026 16:30:00;6min;1;1;C;191.810,00;191.895,00;192.325,00;Sim;17,00;85,00;753;17,00;85,00;0,00;0,00;0,00;8min;-165,00 +WINJ26;19/02/2026 16:32:00;19/02/2026 16:40:00;8min;1;1;V;191.665,00;191.880,00;192.325,00;No;43,00;215,00;754;43,00;215,00;0,00;0,00;0,00;8min;-122,00 +WINJ26;19/02/2026 16:42:00;19/02/2026 17:02:00;20min;1;1;C;191.730,00;191.780,00;192.325,00;Sim;10,00;50,00;755;10,00;50,00;0,00;0,00;0,00;10min;-112,00 +WINJ26;19/02/2026 17:08:00;19/02/2026 17:10:00;2min;1;1;V;191.665,00;191.705,00;192.325,00;No;8,00;40,00;756;8,00;40,00;0,00;0,00;0,00;26min;-104,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:28:00;8min;1;1;C;191.630,00;191.690,00;192.325,00;Sim;12,00;60,00;757;12,00;60,00;0,00;0,00;0,00;12min;-92,00 +WINJ26;19/02/2026 17:42:00;19/02/2026 18:10:00;28min;1;1;V;192.300,00;191.920,00;192.325,00;Sim;-76,00;-380,00;758;-76,00;-380,00;0,00;0,00;0,00;22min;-168,00 +WINJ26;19/02/2026 18:18:00;19/02/2026 18:22:00;4min;1;1;V;192.155,00;192.180,00;192.325,00;Sim;5,00;25,00;759;5,00;25,00;0,00;0,00;0,00;36min;-163,00 +WINJ26;20/02/2026 09:04:00;20/02/2026 09:32:00;28min;1;1;C;192.245,00;190.890,00;192.325,00;No;-271,00;-1.355,00;760;-271,00;-1.355,00;0,00;0,00;0,00;14h46min;-434,00 +WINJ26;20/02/2026 09:40:00;20/02/2026 10:08:00;28min;1;1;C;190.975,00;190.715,00;192.325,00;Sim;-52,00;-260,00;761;-52,00;-260,00;0,00;0,00;0,00;36min;-486,00 +WINJ26;20/02/2026 10:20:00;20/02/2026 10:24:00;4min;1;1;V;190.630,00;190.810,00;192.325,00;No;36,00;180,00;762;36,00;180,00;0,00;0,00;0,00;40min;-450,00 +WINJ26;20/02/2026 10:32:00;20/02/2026 10:34:00;2min;1;1;V;190.470,00;190.610,00;192.325,00;No;28,00;140,00;763;28,00;140,00;0,00;0,00;0,00;12min;-422,00 +WINJ26;20/02/2026 10:42:00;20/02/2026 10:44:00;2min;1;1;V;190.615,00;190.540,00;192.325,00;No;-15,00;-75,00;764;-15,00;-75,00;0,00;0,00;0,00;10min;-437,00 +WINJ26;20/02/2026 11:04:00;20/02/2026 11:06:00;2min;1;1;V;190.530,00;190.525,00;192.325,00;No;-1,00;-5,00;765;-1,00;-5,00;0,00;0,00;0,00;22min;-438,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:06:00;28min;1;1;V;191.810,00;190.995,00;192.325,00;Sim;-163,00;-815,00;766;-163,00;-815,00;0,00;0,00;0,00;34min;-601,00 +WINJ26;20/02/2026 12:16:00;20/02/2026 12:34:00;18min;1;1;V;191.900,00;191.965,00;192.325,00;Sim;13,00;65,00;767;13,00;65,00;0,00;0,00;0,00;38min;-588,00 +WINJ26;20/02/2026 12:38:00;20/02/2026 12:40:00;2min;1;1;C;192.050,00;192.040,00;192.325,00;No;-2,00;-10,00;768;-2,00;-10,00;0,00;0,00;0,00;22min;-590,00 +WINJ26;20/02/2026 13:12:00;20/02/2026 13:14:00;2min;1;1;C;192.175,00;192.110,00;192.325,00;No;-13,00;-65,00;769;-13,00;-65,00;0,00;0,00;0,00;34min;-603,00 +WINJ26;20/02/2026 13:34:00;20/02/2026 13:36:00;2min;1;1;C;192.070,00;192.145,00;192.325,00;Sim;15,00;75,00;770;15,00;75,00;0,00;0,00;0,00;22min;-588,00 +WINJ26;20/02/2026 14:06:00;20/02/2026 14:10:00;4min;1;1;V;192.140,00;192.275,00;192.325,00;Sim;27,00;135,00;771;27,00;135,00;0,00;0,00;0,00;32min;-561,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.325,00;Sim;35,00;175,00;772;35,00;175,00;0,00;0,00;0,00;28min;-526,00 +WINJ26;20/02/2026 14:44:00;20/02/2026 15:12:00;28min;1;1;V;192.695,00;191.840,00;192.325,00;No;-171,00;-855,00;773;-171,00;-855,00;0,00;0,00;0,00;10min;-697,00 +WINJ26;20/02/2026 15:22:00;20/02/2026 15:50:00;28min;1;1;V;193.045,00;192.525,00;192.325,00;Sim;-104,00;-520,00;774;-104,00;-520,00;0,00;0,00;0,00;38min;-801,00 +WINJ26;20/02/2026 16:24:00;20/02/2026 16:26:00;2min;1;1;C;193.265,00;193.245,00;192.325,00;No;-4,00;-20,00;775;-4,00;-20,00;0,00;0,00;0,00;1h2min;-805,00 +WINJ26;20/02/2026 16:32:00;20/02/2026 16:34:00;2min;1;1;C;193.320,00;193.345,00;192.325,00;No;5,00;25,00;776;5,00;25,00;0,00;0,00;0,00;8min;-800,00 +WINJ26;20/02/2026 16:58:00;20/02/2026 17:26:00;28min;1;1;V;194.160,00;193.855,00;192.325,00;Sim;-61,00;-305,00;777;-61,00;-305,00;0,00;0,00;0,00;26min;-861,00 +WINJ26;20/02/2026 17:34:00;20/02/2026 17:36:00;2min;1;1;C;194.100,00;194.120,00;192.325,00;No;4,00;20,00;778;4,00;20,00;0,00;0,00;0,00;36min;-857,00 +WINJ26;20/02/2026 17:40:00;20/02/2026 17:42:00;2min;1;1;C;194.195,00;194.175,00;192.325,00;No;-4,00;-20,00;779;-4,00;-20,00;0,00;0,00;0,00;6min;-861,00 +WINJ26;20/02/2026 17:58:00;20/02/2026 18:00:00;2min;1;1;C;194.130,00;194.130,00;192.325,00;Sim;0;0;780;0;0;0,00;0,00;0,00;18min;-861,00 +WINJ26;23/02/2026 09:30:00;23/02/2026 09:58:00;28min;1;1;C;192.925,00;192.505,00;192.325,00;Sim;-84,00;-420,00;781;-84,00;-420,00;0,00;0,00;0,00;2d15h;-945,00 +WINJ26;23/02/2026 10:14:00;23/02/2026 10:18:00;4min;1;1;V;192.905,00;192.970,00;192.325,00;No;13,00;65,00;782;13,00;65,00;0,00;0,00;0,00;44min;-932,00 +WINJ26;23/02/2026 10:34:00;23/02/2026 10:36:00;2min;1;1;V;192.925,00;192.920,00;192.325,00;No;-1,00;-5,00;783;-1,00;-5,00;0,00;0,00;0,00;20min;-933,00 +WINJ26;23/02/2026 10:54:00;23/02/2026 10:56:00;2min;1;1;V;192.715,00;192.700,00;192.325,00;No;-3,00;-15,00;784;-3,00;-15,00;0,00;0,00;0,00;20min;-936,00 +WINJ26;23/02/2026 11:08:00;23/02/2026 11:28:00;20min;1;1;V;193.020,00;193.065,00;192.325,00;Sim;9,00;45,00;785;9,00;45,00;0,00;0,00;0,00;14min;-927,00 +WINJ26;23/02/2026 11:42:00;23/02/2026 12:06:00;24min;1;1;V;193.950,00;193.810,00;192.325,00;Sim;-28,00;-140,00;786;-28,00;-140,00;0,00;0,00;0,00;34min;-955,00 +WINJ26;23/02/2026 12:48:00;23/02/2026 13:16:00;28min;1;1;C;193.050,00;192.215,00;192.325,00;No;-167,00;-835,00;787;-167,00;-835,00;0,00;0,00;0,00;1h6min;-1.122,00 +WINJ26;23/02/2026 13:18:00;23/02/2026 13:34:00;16min;1;1;C;192.355,00;192.395,00;192.325,00;Sim;8,00;40,00;788;8,00;40,00;0,00;0,00;0,00;30min;-1.114,00 +WINJ26;23/02/2026 13:42:00;23/02/2026 13:46:00;4min;1;1;V;192.280,00;192.195,00;192.325,00;No;-17,00;-85,00;789;-17,00;-85,00;0,00;0,00;0,00;24min;-1.131,00 +WINJ26;23/02/2026 13:50:00;23/02/2026 13:52:00;2min;1;1;V;192.310,00;192.215,00;192.325,00;Sim;-19,00;-95,00;790;-19,00;-95,00;0,00;0,00;0,00;8min;-1.150,00 +WINJ26;23/02/2026 14:12:00;23/02/2026 14:14:00;2min;1;1;V;192.320,00;192.155,00;192.325,00;No;-33,00;-165,00;791;-33,00;-165,00;0,00;0,00;0,00;22min;-1.183,00 +WINJ26;23/02/2026 14:32:00;23/02/2026 14:36:00;4min;1;1;V;192.235,00;192.365,00;192.325,00;Sim;26,00;130,00;792;26,00;130,00;0,00;0,00;0,00;20min;-1.157,00 +WINJ26;23/02/2026 14:44:00;23/02/2026 14:46:00;2min;1;1;V;192.300,00;192.420,00;192.325,00;Sim;24,00;120,00;793;24,00;120,00;0,00;0,00;0,00;12min;-1.133,00 +WINJ26;23/02/2026 15:20:00;23/02/2026 15:38:00;18min;1;1;V;192.765,00;192.790,00;192.325,00;Sim;5,00;25,00;794;5,00;25,00;0,00;0,00;0,00;36min;-1.128,00 +WINJ26;23/02/2026 15:48:00;23/02/2026 15:50:00;2min;1;1;C;192.810,00;192.860,00;192.325,00;No;10,00;50,00;795;10,00;50,00;0,00;0,00;0,00;28min;-1.118,00 +WINJ26;23/02/2026 16:10:00;23/02/2026 16:28:00;18min;1;1;C;192.495,00;192.515,00;192.325,00;Sim;4,00;20,00;796;4,00;20,00;0,00;0,00;0,00;22min;-1.114,00 +WINJ26;23/02/2026 17:04:00;23/02/2026 17:14:00;10min;1;1;V;192.375,00;192.410,00;192.325,00;No;7,00;35,00;797;7,00;35,00;0,00;0,00;0,00;54min;-1.107,00 +WINJ26;23/02/2026 17:28:00;23/02/2026 17:48:00;20min;1;1;V;192.425,00;192.355,00;192.325,00;No;-14,00;-70,00;798;-14,00;-70,00;0,00;0,00;0,00;24min;-1.121,00 +WINJ26;24/02/2026 09:20:00;24/02/2026 09:30:00;10min;1;1;V;193.240,00;193.760,00;192.325,00;Sim;104,00;520,00;799;104,00;520,00;0,00;0,00;0,00;15h52min;-1.017,00 +WINJ26;24/02/2026 09:44:00;24/02/2026 09:46:00;2min;1;1;C;193.340,00;193.280,00;192.325,00;No;-12,00;-60,00;800;-12,00;-60,00;0,00;0,00;0,00;24min;-1.029,00 +WINJ26;24/02/2026 09:48:00;24/02/2026 09:50:00;2min;1;1;C;193.335,00;193.370,00;192.325,00;Sim;7,00;35,00;801;7,00;35,00;0,00;0,00;0,00;4min;-1.022,00 +WINJ26;24/02/2026 10:08:00;24/02/2026 10:10:00;2min;1;1;C;193.455,00;193.415,00;192.325,00;No;-8,00;-40,00;802;-8,00;-40,00;0,00;0,00;0,00;20min;-1.030,00 +WINJ26;24/02/2026 10:20:00;24/02/2026 10:22:00;2min;1;1;C;193.600,00;193.735,00;192.325,00;No;27,00;135,00;803;27,00;135,00;0,00;0,00;0,00;12min;-1.003,00 +WINJ26;24/02/2026 10:52:00;24/02/2026 11:00:00;8min;1;1;C;193.500,00;193.505,00;192.325,00;Sim;1,00;5,00;804;1,00;5,00;0,00;0,00;0,00;32min;-1.002,00 +WINJ26;24/02/2026 11:08:00;24/02/2026 11:12:00;4min;1;1;V;193.580,00;193.770,00;192.325,00;Sim;38,00;190,00;805;38,00;190,00;0,00;0,00;0,00;16min;-964,00 +WINJ26;24/02/2026 11:40:00;24/02/2026 11:42:00;2min;1;1;C;193.500,00;193.665,00;192.325,00;No;33,00;165,00;806;33,00;165,00;0,00;0,00;0,00;32min;-931,00 +WINJ26;24/02/2026 12:00:00;24/02/2026 12:28:00;28min;1;1;V;194.630,00;193.940,00;192.325,00;Sim;-138,00;-690,00;807;-138,00;-690,00;0,00;0,00;0,00;20min;-1.069,00 +WINJ26;24/02/2026 12:34:00;24/02/2026 13:02:00;28min;1;1;V;194.740,00;194.520,00;192.325,00;Sim;-44,00;-220,00;808;-44,00;-220,00;0,00;0,00;0,00;34min;-1.113,00 +WINJ26;24/02/2026 13:22:00;24/02/2026 13:24:00;2min;1;1;C;195.015,00;194.950,00;192.325,00;No;-13,00;-65,00;809;-13,00;-65,00;0,00;0,00;0,00;48min;-1.126,00 +WINJ26;24/02/2026 13:34:00;24/02/2026 13:44:00;10min;1;1;V;194.955,00;195.030,00;192.325,00;Sim;15,00;75,00;810;15,00;75,00;0,00;0,00;0,00;12min;-1.111,00 +WINJ26;24/02/2026 13:54:00;24/02/2026 14:04:00;10min;1;1;C;194.950,00;194.900,00;192.325,00;Sim;-10,00;-50,00;811;-10,00;-50,00;0,00;0,00;0,00;20min;-1.121,00 +WINJ26;24/02/2026 14:24:00;24/02/2026 14:44:00;20min;1;1;V;195.225,00;195.210,00;192.325,00;Sim;-3,00;-15,00;812;-3,00;-15,00;0,00;0,00;0,00;30min;-1.124,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:28:00;26min;1;1;C;195.005,00;194.955,00;192.325,00;No;-10,00;-50,00;813;-10,00;-50,00;0,00;0,00;0,00;38min;-1.134,00 +WINJ26;24/02/2026 15:44:00;24/02/2026 15:52:00;8min;1;1;V;194.960,00;195.115,00;192.325,00;No;31,00;155,00;814;31,00;155,00;0,00;0,00;0,00;42min;-1.103,00 +WINJ26;24/02/2026 16:12:00;24/02/2026 16:30:00;18min;1;1;C;194.780,00;194.815,00;192.325,00;Sim;7,00;35,00;815;7,00;35,00;0,00;0,00;0,00;28min;-1.096,00 +WINJ26;24/02/2026 16:54:00;24/02/2026 16:56:00;2min;1;1;V;194.830,00;194.985,00;192.325,00;No;31,00;155,00;816;31,00;155,00;0,00;0,00;0,00;42min;-1.065,00 +WINJ26;24/02/2026 17:40:00;24/02/2026 18:08:00;28min;1;1;V;195.070,00;194.845,00;192.325,00;No;-45,00;-225,00;817;-45,00;-225,00;0,00;0,00;0,00;46min;-1.110,00 +WINJ26;24/02/2026 18:24:00;25/02/2026 09:02:00;14h38min;1;1;C;195.085,00;196.325,00;192.325,00;No;248,00;1.240,00;818;248,00;1.240,00;0,00;0,00;0,00;44min;-862,00 +WINJ26;25/02/2026 09:14:00;25/02/2026 09:30:00;16min;1;1;V;196.370,00;197.240,00;192.325,00;Sim;174,00;870,00;819;174,00;870,00;0,00;0,00;0,00;14h50min;-688,00 +WINJ26;25/02/2026 09:58:00;25/02/2026 10:00:00;2min;1;1;C;196.570,00;196.660,00;192.325,00;No;18,00;90,00;820;18,00;90,00;0,00;0,00;0,00;44min;-670,00 +WINJ26;25/02/2026 10:32:00;25/02/2026 11:00:00;28min;1;1;C;195.735,00;194.965,00;192.325,00;Sim;-154,00;-770,00;821;-154,00;-770,00;0,00;0,00;0,00;34min;-824,00 +WINJ26;25/02/2026 11:08:00;25/02/2026 11:10:00;2min;1;1;V;195.090,00;194.985,00;192.325,00;No;-21,00;-105,00;822;-21,00;-105,00;0,00;0,00;0,00;36min;-845,00 +WINJ26;25/02/2026 11:18:00;25/02/2026 11:28:00;10min;1;1;V;195.260,00;195.230,00;192.325,00;Sim;-6,00;-30,00;823;-6,00;-30,00;0,00;0,00;0,00;10min;-851,00 +WINJ26;25/02/2026 11:34:00;25/02/2026 11:38:00;4min;1;1;V;195.265,00;195.235,00;192.325,00;Sim;-6,00;-30,00;824;-6,00;-30,00;0,00;0,00;0,00;16min;-857,00 +WINJ26;25/02/2026 12:06:00;25/02/2026 12:34:00;28min;1;1;C;194.570,00;194.175,00;192.325,00;Sim;-79,00;-395,00;825;-79,00;-395,00;0,00;0,00;0,00;32min;-936,00 +WINJ26;25/02/2026 12:38:00;25/02/2026 12:50:00;12min;1;1;C;194.240,00;194.385,00;192.325,00;Sim;29,00;145,00;826;29,00;145,00;0,00;0,00;0,00;32min;-907,00 +WINJ26;25/02/2026 12:58:00;25/02/2026 13:26:00;28min;1;1;V;194.670,00;194.460,00;192.325,00;No;-42,00;-210,00;827;-42,00;-210,00;0,00;0,00;0,00;20min;-949,00 +WINJ26;25/02/2026 13:28:00;25/02/2026 13:30:00;2min;1;1;V;194.580,00;194.570,00;192.325,00;Sim;-2,00;-10,00;828;-2,00;-10,00;0,00;0,00;0,00;30min;-951,00 +WINJ26;25/02/2026 13:50:00;25/02/2026 13:58:00;8min;1;1;C;194.485,00;194.605,00;192.325,00;No;24,00;120,00;829;24,00;120,00;0,00;0,00;0,00;22min;-927,00 +WINJ26;25/02/2026 14:04:00;25/02/2026 14:16:00;12min;1;1;V;194.565,00;194.665,00;192.325,00;Sim;20,00;100,00;830;20,00;100,00;0,00;0,00;0,00;14min;-907,00 +WINJ26;25/02/2026 14:18:00;25/02/2026 14:20:00;2min;1;1;C;194.600,00;194.640,00;192.325,00;No;8,00;40,00;831;8,00;40,00;0,00;0,00;0,00;14min;-899,00 +WINJ26;25/02/2026 14:26:00;25/02/2026 14:30:00;4min;1;1;C;194.660,00;194.640,00;192.325,00;No;-4,00;-20,00;832;-4,00;-20,00;0,00;0,00;0,00;8min;-903,00 +WINJ26;25/02/2026 14:46:00;25/02/2026 15:10:00;24min;1;1;V;194.875,00;194.840,00;192.325,00;Sim;-7,00;-35,00;833;-7,00;-35,00;0,00;0,00;0,00;20min;-910,00 +WINJ26;25/02/2026 15:18:00;25/02/2026 15:22:00;4min;1;1;C;194.860,00;194.895,00;192.325,00;No;7,00;35,00;834;7,00;35,00;0,00;0,00;0,00;32min;-903,00 +WINJ26;25/02/2026 15:26:00;25/02/2026 15:28:00;2min;1;1;C;194.870,00;194.900,00;192.325,00;No;6,00;30,00;835;6,00;30,00;0,00;0,00;0,00;8min;-897,00 +WINJ26;25/02/2026 15:32:00;25/02/2026 16:00:00;28min;1;1;C;194.890,00;194.310,00;192.325,00;No;-116,00;-580,00;836;-116,00;-580,00;0,00;0,00;0,00;6min;-1.013,00 +WINJ26;25/02/2026 16:16:00;25/02/2026 16:20:00;4min;1;1;C;194.015,00;194.200,00;192.325,00;Sim;37,00;185,00;837;37,00;185,00;0,00;0,00;0,00;44min;-976,00 +WINJ26;25/02/2026 16:42:00;25/02/2026 16:48:00;6min;1;1;V;194.065,00;194.005,00;192.325,00;No;-12,00;-60,00;838;-12,00;-60,00;0,00;0,00;0,00;26min;-988,00 +WINJ26;25/02/2026 17:10:00;25/02/2026 17:12:00;2min;1;1;V;193.995,00;194.040,00;192.325,00;Sim;9,00;45,00;839;9,00;45,00;0,00;0,00;0,00;28min;-979,00 +WINJ26;25/02/2026 17:22:00;25/02/2026 17:50:00;28min;1;1;V;194.565,00;193.995,00;192.325,00;No;-114,00;-570,00;840;-114,00;-570,00;0,00;0,00;0,00;12min;-1.093,00 +WINJ26;25/02/2026 18:12:00;25/02/2026 18:14:00;2min;1;1;V;194.455,00;194.420,00;192.325,00;Sim;-7,00;-35,00;841;-7,00;-35,00;0,00;0,00;0,00;50min;-1.100,00 +WINJ26;25/02/2026 18:22:00;26/02/2026 09:10:00;14h48min;1;1;C;194.405,00;194.385,00;192.325,00;No;-4,00;-20,00;842;-4,00;-20,00;0,00;0,00;0,00;10min;-1.104,00 +WINJ26;26/02/2026 09:40:00;26/02/2026 09:52:00;12min;1;1;C;194.040,00;194.185,00;192.325,00;Sim;29,00;145,00;843;29,00;145,00;0,00;0,00;0,00;15h18min;-1.075,00 +WINJ26;26/02/2026 10:16:00;26/02/2026 10:18:00;2min;1;1;V;194.510,00;194.640,00;192.325,00;Sim;26,00;130,00;844;26,00;130,00;0,00;0,00;0,00;36min;-1.049,00 +WINJ26;26/02/2026 10:36:00;26/02/2026 10:40:00;4min;1;1;C;193.890,00;194.175,00;192.325,00;Sim;57,00;285,00;845;57,00;285,00;0,00;0,00;0,00;20min;-992,00 +WINJ26;26/02/2026 11:08:00;26/02/2026 11:16:00;8min;1;1;V;194.240,00;194.275,00;192.325,00;No;7,00;35,00;846;7,00;35,00;0,00;0,00;0,00;32min;-985,00 +WINJ26;26/02/2026 11:36:00;26/02/2026 12:04:00;28min;1;1;C;194.100,00;193.135,00;192.325,00;No;-193,00;-965,00;847;-193,00;-965,00;0,00;0,00;0,00;28min;-1.178,00 +WINJ26;26/02/2026 12:06:00;26/02/2026 12:34:00;28min;1;1;C;193.195,00;192.785,00;192.325,00;Sim;-82,00;-410,00;848;-82,00;-410,00;0,00;0,00;0,00;30min;-1.260,00 +WINJ26;26/02/2026 12:48:00;26/02/2026 13:16:00;28min;1;1;V;193.605,00;192.895,00;192.325,00;No;-142,00;-710,00;849;-142,00;-710,00;0,00;0,00;0,00;42min;-1.402,00 +WINJ26;26/02/2026 13:38:00;26/02/2026 13:40:00;2min;1;1;V;193.685,00;193.815,00;192.325,00;Sim;26,00;130,00;850;26,00;130,00;0,00;0,00;0,00;50min;-1.376,00 +WINJ26;26/02/2026 13:50:00;26/02/2026 14:12:00;22min;1;1;C;193.460,00;193.560,00;192.325,00;No;20,00;100,00;851;20,00;100,00;0,00;0,00;0,00;12min;-1.356,00 +WINJ26;26/02/2026 14:18:00;26/02/2026 14:34:00;16min;1;1;C;193.430,00;193.475,00;192.325,00;Sim;9,00;45,00;852;9,00;45,00;0,00;0,00;0,00;28min;-1.347,00 +WINJ26;26/02/2026 14:44:00;26/02/2026 14:58:00;14min;1;1;C;193.340,00;193.315,00;192.325,00;Sim;-5,00;-25,00;853;-5,00;-25,00;0,00;0,00;0,00;26min;-1.352,00 +WINJ26;26/02/2026 15:22:00;26/02/2026 15:26:00;4min;1;1;V;193.400,00;193.460,00;192.325,00;No;12,00;60,00;854;12,00;60,00;0,00;0,00;0,00;38min;-1.340,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:16:00;28min;1;1;V;194.075,00;193.760,00;192.325,00;Sim;-63,00;-315,00;855;-63,00;-315,00;0,00;0,00;0,00;26min;-1.403,00 +WINJ26;26/02/2026 16:26:00;26/02/2026 16:30:00;4min;1;1;V;194.010,00;194.130,00;192.325,00;Sim;24,00;120,00;856;24,00;120,00;0,00;0,00;0,00;38min;-1.379,00 +WINJ26;26/02/2026 16:42:00;26/02/2026 16:44:00;2min;1;1;C;194.080,00;194.015,00;192.325,00;No;-13,00;-65,00;857;-13,00;-65,00;0,00;0,00;0,00;16min;-1.392,00 +WINJ26;26/02/2026 16:48:00;26/02/2026 16:50:00;2min;1;1;C;194.110,00;194.135,00;192.325,00;No;5,00;25,00;858;5,00;25,00;0,00;0,00;0,00;6min;-1.387,00 +WINJ26;26/02/2026 17:08:00;26/02/2026 17:24:00;16min;1;1;V;194.165,00;194.330,00;192.325,00;Sim;33,00;165,00;859;33,00;165,00;0,00;0,00;0,00;20min;-1.354,00 +WINJ26;26/02/2026 17:26:00;26/02/2026 17:28:00;2min;1;1;C;194.295,00;194.320,00;192.325,00;No;5,00;25,00;860;5,00;25,00;0,00;0,00;0,00;18min;-1.349,00 +WINJ26;26/02/2026 17:38:00;26/02/2026 17:52:00;14min;1;1;V;194.345,00;194.365,00;192.325,00;Sim;4,00;20,00;861;4,00;20,00;0,00;0,00;0,00;12min;-1.345,00 +WINJ26;26/02/2026 18:02:00;26/02/2026 18:04:00;2min;1;1;C;194.400,00;194.360,00;192.325,00;No;-8,00;-40,00;862;-8,00;-40,00;0,00;0,00;0,00;24min;-1.353,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 09:20:00;20min;1;1;C;194.155,00;193.550,00;192.325,00;Sim;-121,00;-605,00;863;-121,00;-605,00;0,00;0,00;0,00;14h58min;-1.474,00 +WINJ26;27/02/2026 09:26:00;27/02/2026 09:28:00;2min;1;1;V;193.320,00;193.500,00;192.325,00;No;36,00;180,00;864;36,00;180,00;0,00;0,00;0,00;26min;-1.438,00 +WINJ26;27/02/2026 09:38:00;27/02/2026 09:42:00;4min;1;1;V;193.450,00;193.355,00;192.325,00;No;-19,00;-95,00;865;-19,00;-95,00;0,00;0,00;0,00;12min;-1.457,00 +WINJ26;27/02/2026 10:02:00;27/02/2026 10:14:00;12min;1;1;V;193.360,00;193.325,00;192.325,00;No;-7,00;-35,00;866;-7,00;-35,00;0,00;0,00;0,00;24min;-1.464,00 +WINJ26;27/02/2026 10:24:00;27/02/2026 10:26:00;2min;1;1;V;193.045,00;193.195,00;192.325,00;No;30,00;150,00;867;30,00;150,00;0,00;0,00;0,00;22min;-1.434,00 +WINJ26;27/02/2026 10:54:00;27/02/2026 11:18:00;24min;1;1;V;192.990,00;192.970,00;192.325,00;No;-4,00;-20,00;868;-4,00;-20,00;0,00;0,00;0,00;30min;-1.438,00 +WINJ26;27/02/2026 11:38:00;27/02/2026 11:42:00;4min;1;1;V;193.335,00;193.610,00;192.325,00;Sim;55,00;275,00;869;55,00;275,00;0,00;0,00;0,00;44min;-1.383,00 +WINJ26;27/02/2026 11:50:00;27/02/2026 11:52:00;2min;1;1;C;193.195,00;193.360,00;192.325,00;Sim;33,00;165,00;870;33,00;165,00;0,00;0,00;0,00;12min;-1.350,00 +WINJ26;27/02/2026 12:00:00;27/02/2026 12:02:00;2min;1;1;C;193.065,00;193.350,00;192.325,00;Sim;57,00;285,00;871;57,00;285,00;0,00;0,00;0,00;10min;-1.293,00 +WINJ26;27/02/2026 12:20:00;27/02/2026 12:30:00;10min;1;1;C;193.145,00;193.275,00;192.325,00;No;26,00;130,00;872;26,00;130,00;0,00;0,00;0,00;20min;-1.267,00 +WINJ26;27/02/2026 12:38:00;27/02/2026 12:40:00;2min;1;1;C;193.290,00;193.395,00;192.325,00;No;21,00;105,00;873;21,00;105,00;0,00;0,00;0,00;18min;-1.246,00 +WINJ26;27/02/2026 12:54:00;27/02/2026 12:56:00;2min;1;1;C;193.415,00;193.535,00;192.325,00;No;24,00;120,00;874;24,00;120,00;0,00;0,00;0,00;16min;-1.222,00 +WINJ26;27/02/2026 13:20:00;27/02/2026 13:22:00;2min;1;1;V;193.275,00;193.490,00;192.325,00;No;43,00;215,00;875;43,00;215,00;0,00;0,00;0,00;26min;-1.179,00 +WINJ26;27/02/2026 13:34:00;27/02/2026 14:02:00;28min;1;1;C;193.100,00;193.035,00;192.325,00;Sim;-13,00;-65,00;876;-13,00;-65,00;0,00;0,00;0,00;14min;-1.192,00 +WINJ26;27/02/2026 14:16:00;27/02/2026 14:44:00;28min;1;1;C;192.795,00;192.460,00;192.325,00;Sim;-67,00;-335,00;877;-67,00;-335,00;0,00;0,00;0,00;42min;-1.259,00 +WINJ26;27/02/2026 15:14:00;27/02/2026 15:22:00;8min;1;1;V;192.620,00;192.685,00;192.325,00;No;13,00;65,00;878;13,00;65,00;0,00;0,00;0,00;58min;-1.246,00 +WINJ26;27/02/2026 15:38:00;27/02/2026 15:44:00;6min;1;1;V;192.685,00;192.715,00;192.325,00;Sim;6,00;30,00;879;6,00;30,00;0,00;0,00;0,00;24min;-1.240,00 +WINJ26;27/02/2026 16:06:00;27/02/2026 16:10:00;4min;1;1;V;192.660,00;192.765,00;192.325,00;Sim;21,00;105,00;880;21,00;105,00;0,00;0,00;0,00;28min;-1.219,00 +WINJ26;27/02/2026 16:14:00;27/02/2026 16:42:00;28min;1;1;C;192.665,00;191.720,00;192.325,00;Sim;-189,00;-945,00;881;-189,00;-945,00;0,00;0,00;0,00;8min;-1.408,00 +WINJ26;27/02/2026 16:46:00;27/02/2026 17:02:00;16min;1;1;C;191.815,00;191.940,00;192.325,00;Sim;25,00;125,00;882;25,00;125,00;0,00;0,00;0,00;32min;-1.383,00 +WINJ26;27/02/2026 17:38:00;27/02/2026 17:40:00;2min;1;1;V;192.065,00;192.205,00;192.325,00;No;28,00;140,00;883;28,00;140,00;0,00;0,00;0,00;52min;-1.355,00 +WINJ26;27/02/2026 18:12:00;02/03/2026 09:14:00;2d15h;1;1;C;191.770,00;191.025,00;192.325,00;Sim;-149,00;-745,00;884;-149,00;-745,00;0,00;0,00;0,00;34min;-1.504,00 +WINJ26;02/03/2026 10:14:00;02/03/2026 10:42:00;28min;1;1;V;190.900,00;190.085,00;192.325,00;No;-163,00;-815,00;885;-163,00;-815,00;0,00;0,00;0,00;2d16h;-1.667,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.325,00;Sim;41,00;205,00;886;41,00;205,00;0,00;0,00;0,00;52min;-1.626,00 +WINJ26;02/03/2026 11:12:00;02/03/2026 11:18:00;6min;1;1;V;190.090,00;190.355,00;192.325,00;Sim;53,00;265,00;887;53,00;265,00;0,00;0,00;0,00;6min;-1.573,00 +WINJ26;02/03/2026 11:30:00;02/03/2026 11:34:00;4min;1;1;V;190.355,00;190.460,00;192.325,00;Sim;21,00;105,00;888;21,00;105,00;0,00;0,00;0,00;18min;-1.552,00 +WINJ26;02/03/2026 11:40:00;02/03/2026 12:08:00;28min;1;1;V;191.645,00;190.595,00;192.325,00;Sim;-210,00;-1.050,00;889;-210,00;-1.050,00;0,00;0,00;0,00;10min;-1.762,00 +WINJ26;02/03/2026 12:20:00;02/03/2026 12:26:00;6min;1;1;V;191.390,00;191.680,00;192.325,00;Sim;58,00;290,00;890;58,00;290,00;0,00;0,00;0,00;40min;-1.704,00 +WINJ26;02/03/2026 12:40:00;02/03/2026 12:42:00;2min;1;1;C;191.370,00;191.400,00;192.325,00;No;6,00;30,00;891;6,00;30,00;0,00;0,00;0,00;20min;-1.698,00 +WINJ26;02/03/2026 12:52:00;02/03/2026 13:06:00;14min;1;1;C;191.240,00;191.245,00;192.325,00;Sim;1,00;5,00;892;1,00;5,00;0,00;0,00;0,00;12min;-1.697,00 +WINJ26;02/03/2026 13:14:00;02/03/2026 13:20:00;6min;1;1;V;191.265,00;191.470,00;192.325,00;No;41,00;205,00;893;41,00;205,00;0,00;0,00;0,00;22min;-1.656,00 +WINJ26;02/03/2026 13:36:00;02/03/2026 13:38:00;2min;1;1;C;191.365,00;191.395,00;192.325,00;No;6,00;30,00;894;6,00;30,00;0,00;0,00;0,00;22min;-1.650,00 +WINJ26;02/03/2026 13:52:00;02/03/2026 13:58:00;6min;1;1;V;191.425,00;191.540,00;192.325,00;Sim;23,00;115,00;895;23,00;115,00;0,00;0,00;0,00;16min;-1.627,00 +WINJ26;02/03/2026 14:02:00;02/03/2026 14:04:00;2min;1;1;C;191.375,00;191.470,00;192.325,00;No;19,00;95,00;896;19,00;95,00;0,00;0,00;0,00;10min;-1.608,00 +WINJ26;02/03/2026 14:18:00;02/03/2026 14:38:00;20min;1;1;V;191.635,00;191.755,00;192.325,00;Sim;24,00;120,00;897;24,00;120,00;0,00;0,00;0,00;16min;-1.584,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:08:00;4min;1;1;V;191.885,00;191.895,00;192.325,00;Sim;2,00;10,00;898;2,00;10,00;0,00;0,00;0,00;46min;-1.582,00 +WINJ26;02/03/2026 15:16:00;02/03/2026 15:22:00;6min;1;1;V;191.850,00;192.115,00;192.325,00;Sim;53,00;265,00;899;53,00;265,00;0,00;0,00;0,00;12min;-1.529,00 +WINJ26;02/03/2026 15:28:00;02/03/2026 15:30:00;2min;1;1;C;192.030,00;192.075,00;192.325,00;No;9,00;45,00;900;9,00;45,00;0,00;0,00;0,00;12min;-1.520,00 +WINJ26;02/03/2026 15:34:00;02/03/2026 15:36:00;2min;1;1;V;191.995,00;192.115,00;192.325,00;No;24,00;120,00;901;24,00;120,00;0,00;0,00;0,00;6min;-1.496,00 +WINJ26;02/03/2026 15:42:00;02/03/2026 15:50:00;8min;1;1;V;192.040,00;192.215,00;192.325,00;Sim;35,00;175,00;902;35,00;175,00;0,00;0,00;0,00;8min;-1.461,00 +WINJ26;02/03/2026 15:52:00;02/03/2026 15:54:00;2min;1;1;C;192.060,00;192.195,00;192.325,00;No;27,00;135,00;903;27,00;135,00;0,00;0,00;0,00;10min;-1.434,00 +WINJ26;02/03/2026 16:26:00;02/03/2026 16:46:00;20min;1;1;V;192.950,00;193.020,00;192.325,00;Sim;14,00;70,00;904;14,00;70,00;0,00;0,00;0,00;34min;-1.420,00 +WINJ26;02/03/2026 16:56:00;02/03/2026 17:24:00;28min;1;1;C;192.945,00;192.080,00;192.325,00;No;-173,00;-865,00;905;-173,00;-865,00;0,00;0,00;0,00;30min;-1.593,00 +WINJ26;02/03/2026 17:32:00;02/03/2026 17:38:00;6min;1;1;C;192.240,00;192.310,00;192.325,00;Sim;14,00;70,00;906;14,00;70,00;0,00;0,00;0,00;36min;-1.579,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv new file mode 100644 index 0000000..f3a31f9 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv @@ -0,0 +1,506 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 17:25:00;26/08/2025 18:20:00;55min;1;1;C;148.400,00;149.050,00;192.295,00;No;130,00;650,00;1;130,00;650,00;0,00;0,00;0,00; - ;130,00 +WINJ26;27/08/2025 09:20:00;27/08/2025 11:30:00;2h10min;1;1;V;148.300,00;148.500,00;192.295,00;No;40,00;200,00;2;40,00;200,00;0,00;0,00;0,00;15h55min;170,00 +WINJ26;01/09/2025 13:20:00;02/09/2025 09:05:00;19h45min;1;1;V;151.400,00;152.000,00;192.295,00;Sim;120,00;600,00;3;120,00;600,00;0,00;0,00;0,00;5d4h;290,00 +WINJ26;04/09/2025 11:50:00;04/09/2025 12:05:00;15min;1;1;C;151.100,00;151.100,00;192.295,00;No;0;0;4;0;0;0,00;0,00;0,00;2d22h;290,00 +WINJ26;04/09/2025 17:00:00;09/09/2025 09:00:00;4d16h;1;1;V;152.300,00;151.945,00;192.295,00;No;-71,00;-355,00;5;-71,00;-355,00;0,00;0,00;0,00;5h10min;219,00 +WINJ26;09/09/2025 17:00:00;10/09/2025 10:00:00;17h;1;1;C;152.300,00;152.350,00;192.295,00;No;10,00;50,00;6;10,00;50,00;0,00;0,00;0,00;5d;229,00 +WINJ26;11/09/2025 09:35:00;11/09/2025 10:00:00;25min;1;1;C;153.500,00;153.500,00;192.295,00;No;0;0;7;0;0;0,00;0,00;0,00;1d16h;229,00 +WINJ26;12/09/2025 15:30:00;15/09/2025 09:35:00;2d18h;1;1;C;153.200,00;153.200,00;192.295,00;Sim;0;0;8;0;0;0,00;0,00;0,00;1d5h;229,00 +WINJ26;15/09/2025 17:10:00;15/09/2025 17:15:00;5min;1;1;C;154.130,00;154.080,00;192.295,00;No;-10,00;-50,00;9;-10,00;-50,00;0,00;0,00;0,00;3d1h;219,00 +WINJ26;15/09/2025 17:50:00;16/09/2025 10:40:00;16h50min;1;1;C;154.080,00;155.000,00;192.295,00;Sim;184,00;920,00;10;184,00;920,00;0,00;0,00;0,00;40min;403,00 +WINJ26;16/09/2025 15:50:00;18/09/2025 09:50:00;1d18h;1;1;V;155.900,00;154.450,00;192.295,00;Sim;-290,00;-1.450,00;11;-290,00;-1.450,00;0,00;0,00;0,00;22h;113,00 +WINJ26;19/09/2025 10:35:00;22/09/2025 12:25:00;3d1h;1;1;V;154.750,00;156.150,00;192.295,00;Sim;280,00;1.400,00;12;280,00;1.400,00;0,00;0,00;0,00;2d18h;393,00 +WINJ26;22/09/2025 14:45:00;22/09/2025 15:05:00;20min;1;1;C;155.650,00;155.770,00;192.295,00;No;24,00;120,00;13;24,00;120,00;0,00;0,00;0,00;3d4h;417,00 +WINJ26;24/09/2025 09:00:00;25/09/2025 09:45:00;1d;1;1;V;156.850,00;156.500,00;192.295,00;Sim;-70,00;-350,00;14;-70,00;-350,00;0,00;0,00;0,00;1d18h;347,00 +WINJ26;25/09/2025 13:25:00;25/09/2025 14:30:00;1h5min;1;1;C;156.680,00;155.750,00;192.295,00;No;-186,00;-930,00;15;-186,00;-930,00;0,00;0,00;0,00;1d4h;161,00 +WINJ26;26/09/2025 10:30:00;29/09/2025 09:20:00;2d22h;1;1;C;155.500,00;156.500,00;192.295,00;Sim;200,00;1.000,00;16;200,00;1.000,00;0,00;0,00;0,00;21h5min;361,00 +WINJ26;29/09/2025 13:35:00;29/09/2025 14:00:00;25min;1;1;V;156.650,00;156.400,00;192.295,00;No;-50,00;-250,00;17;-50,00;-250,00;0,00;0,00;0,00;3d3h;311,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:20:00;5min;1;1;V;156.550,00;156.550,00;192.295,00;Sim;0;0;18;0;0;0,00;0,00;0,00;21h40min;311,00 +WINJ26;30/09/2025 11:50:00;01/10/2025 09:00:00;21h10min;1;1;C;156.150,00;156.500,00;192.295,00;No;70,00;350,00;19;70,00;350,00;0,00;0,00;0,00;35min;381,00 +WINJ26;01/10/2025 09:40:00;01/10/2025 10:05:00;25min;1;1;C;157.000,00;156.750,00;192.295,00;No;-50,00;-250,00;20;-50,00;-250,00;0,00;0,00;0,00;21h50min;331,00 +WINJ26;01/10/2025 15:45:00;02/10/2025 12:10:00;20h25min;1;1;C;155.450,00;153.880,00;192.295,00;Sim;-314,00;-1.570,00;21;-314,00;-1.570,00;0,00;0,00;0,00;6h5min;17,00 +WINJ26;03/10/2025 09:45:00;03/10/2025 11:15:00;1h30min;1;1;C;153.935,00;153.800,00;192.295,00;Sim;-27,00;-135,00;22;-27,00;-135,00;0,00;0,00;0,00;1d18h;-10,00 +WINJ26;06/10/2025 15:55:00;09/10/2025 16:45:00;3d;1;1;C;153.220,00;150.980,00;192.295,00;Sim;-448,00;-2.240,00;23;-448,00;-2.240,00;0,00;0,00;0,00;3d6h;-458,00 +WINJ26;10/10/2025 11:05:00;10/10/2025 12:05:00;1h;1;1;V;150.250,00;151.120,00;192.295,00;No;174,00;870,00;24;174,00;870,00;0,00;0,00;0,00;3d19h;-284,00 +WINJ26;14/10/2025 10:40:00;14/10/2025 11:15:00;35min;1;1;V;151.165,00;150.805,00;192.295,00;No;-72,00;-360,00;25;-72,00;-360,00;0,00;0,00;0,00;3d23h;-356,00 +WINJ26;14/10/2025 13:35:00;14/10/2025 15:15:00;1h40min;1;1;V;151.020,00;151.180,00;192.295,00;Sim;32,00;160,00;26;32,00;160,00;0,00;0,00;0,00;2h55min;-324,00 +WINJ26;14/10/2025 15:30:00;14/10/2025 15:40:00;10min;1;1;V;150.750,00;150.880,00;192.295,00;No;26,00;130,00;27;26,00;130,00;0,00;0,00;0,00;1h55min;-298,00 +WINJ26;14/10/2025 18:05:00;15/10/2025 09:25:00;15h20min;1;1;C;151.000,00;150.600,00;192.295,00;Sim;-80,00;-400,00;28;-80,00;-400,00;0,00;0,00;0,00;2h35min;-378,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 11:20:00;5min;1;1;C;151.200,00;151.050,00;192.295,00;No;-30,00;-150,00;29;-30,00;-150,00;0,00;0,00;0,00;17h10min;-408,00 +WINJ26;15/10/2025 14:25:00;15/10/2025 15:10:00;45min;1;1;V;151.500,00;151.195,00;192.295,00;Sim;-61,00;-305,00;30;-61,00;-305,00;0,00;0,00;0,00;3h10min;-469,00 +WINJ26;16/10/2025 09:00:00;16/10/2025 09:10:00;10min;1;1;V;151.260,00;151.600,00;192.295,00;Sim;68,00;340,00;31;68,00;340,00;0,00;0,00;0,00;18h35min;-401,00 +WINJ26;16/10/2025 11:10:00;16/10/2025 11:25:00;15min;1;1;C;150.965,00;150.750,00;192.295,00;Sim;-43,00;-215,00;32;-43,00;-215,00;0,00;0,00;0,00;2h10min;-444,00 +WINJ26;16/10/2025 13:30:00;16/10/2025 13:45:00;15min;1;1;V;151.210,00;150.875,00;192.295,00;No;-67,00;-335,00;33;-67,00;-335,00;0,00;0,00;0,00;2h20min;-511,00 +WINJ26;17/10/2025 09:20:00;17/10/2025 10:35:00;1h15min;1;1;V;150.800,00;151.210,00;192.295,00;Sim;82,00;410,00;34;82,00;410,00;0,00;0,00;0,00;19h50min;-429,00 +WINJ26;17/10/2025 11:20:00;20/10/2025 10:40:00;2d23h;1;1;V;152.750,00;151.340,00;192.295,00;Sim;-282,00;-1.410,00;35;-282,00;-1.410,00;0,00;0,00;0,00;2h;-711,00 +WINJ26;20/10/2025 16:45:00;21/10/2025 09:25:00;16h40min;1;1;V;153.250,00;153.300,00;192.295,00;Sim;10,00;50,00;36;10,00;50,00;0,00;0,00;0,00;3d5h;-701,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.295,00;No;-50,00;-250,00;37;-50,00;-250,00;0,00;0,00;0,00;16h45min;-751,00 +WINJ26;21/10/2025 16:00:00;21/10/2025 18:15:00;2h15min;1;1;C;152.700,00;153.000,00;192.295,00;Sim;60,00;300,00;38;60,00;300,00;0,00;0,00;0,00;6h30min;-691,00 +WINJ26;22/10/2025 09:30:00;22/10/2025 09:35:00;5min;1;1;C;152.900,00;152.970,00;192.295,00;No;14,00;70,00;39;14,00;70,00;0,00;0,00;0,00;17h30min;-677,00 +WINJ26;22/10/2025 10:05:00;22/10/2025 11:10:00;1h5min;1;1;V;153.000,00;153.100,00;192.295,00;No;20,00;100,00;40;20,00;100,00;0,00;0,00;0,00;35min;-657,00 +WINJ26;22/10/2025 12:30:00;23/10/2025 09:30:00;21h;1;1;V;154.700,00;153.500,00;192.295,00;Sim;-240,00;-1.200,00;41;-240,00;-1.200,00;0,00;0,00;0,00;2h25min;-897,00 +WINJ26;23/10/2025 10:05:00;23/10/2025 12:45:00;2h40min;1;1;V;153.950,00;154.795,00;192.295,00;Sim;169,00;845,00;42;169,00;845,00;0,00;0,00;0,00;21h35min;-728,00 +WINJ26;24/10/2025 09:05:00;24/10/2025 09:15:00;10min;1;1;C;154.690,00;154.700,00;192.295,00;No;2,00;10,00;43;2,00;10,00;0,00;0,00;0,00;23h;-726,00 +WINJ26;24/10/2025 09:50:00;24/10/2025 11:10:00;1h20min;1;1;V;154.860,00;155.500,00;192.295,00;Sim;128,00;640,00;44;128,00;640,00;0,00;0,00;0,00;45min;-598,00 +WINJ26;24/10/2025 11:35:00;24/10/2025 11:50:00;15min;1;1;C;155.000,00;154.825,00;192.295,00;No;-35,00;-175,00;45;-35,00;-175,00;0,00;0,00;0,00;1h45min;-633,00 +WINJ26;27/10/2025 09:10:00;27/10/2025 09:25:00;15min;1;1;C;156.000,00;156.050,00;192.295,00;No;10,00;50,00;46;10,00;50,00;0,00;0,00;0,00;2d21h;-623,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:20:00;1h5min;1;1;V;155.480,00;155.660,00;192.295,00;Sim;36,00;180,00;47;36,00;180,00;0,00;0,00;0,00;3h5min;-587,00 +WINJ26;28/10/2025 09:00:00;28/10/2025 11:15:00;2h15min;1;1;C;155.580,00;155.985,00;192.295,00;Sim;81,00;405,00;48;81,00;405,00;0,00;0,00;0,00;20h45min;-506,00 +WINJ26;29/10/2025 10:00:00;29/10/2025 15:00:00;5h;1;1;V;157.335,00;156.700,00;192.295,00;Sim;-127,00;-635,00;49;-127,00;-635,00;0,00;0,00;0,00;1d1h;-633,00 +WINJ26;29/10/2025 15:05:00;29/10/2025 15:45:00;40min;1;1;V;157.250,00;157.295,00;192.295,00;Sim;9,00;45,00;50;9,00;45,00;0,00;0,00;0,00;5h5min;-624,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.295,00;No;17,00;85,00;51;17,00;85,00;0,00;0,00;0,00;19h50min;-607,00 +WINJ26;30/10/2025 16:05:00;31/10/2025 13:30:00;21h25min;1;1;V;157.700,00;157.295,00;192.295,00;No;-81,00;-405,00;52;-81,00;-405,00;0,00;0,00;0,00;5h10min;-688,00 +WINJ26;03/11/2025 12:40:00;03/11/2025 16:10:00;3h30min;1;1;V;158.640,00;158.680,00;192.295,00;Sim;8,00;40,00;53;8,00;40,00;0,00;0,00;0,00;3d20h;-680,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.295,00;No;-4,00;-20,00;54;-4,00;-20,00;0,00;0,00;0,00;21h35min;-684,00 +WINJ26;04/11/2025 16:50:00;04/11/2025 17:35:00;45min;1;1;C;158.660,00;158.840,00;192.295,00;No;36,00;180,00;55;36,00;180,00;0,00;0,00;0,00;6h35min;-648,00 +WINJ26;05/11/2025 10:30:00;05/11/2025 10:40:00;10min;1;1;C;159.040,00;159.375,00;192.295,00;No;67,00;335,00;56;67,00;335,00;0,00;0,00;0,00;17h40min;-581,00 +WINJ26;05/11/2025 11:25:00;05/11/2025 13:55:00;2h30min;1;1;V;161.310,00;159.750,00;192.295,00;Sim;-312,00;-1.560,00;57;-312,00;-1.560,00;0,00;0,00;0,00;55min;-893,00 +WINJ26;05/11/2025 17:45:00;06/11/2025 14:20:00;20h35min;1;1;V;162.000,00;161.900,00;192.295,00;Sim;-20,00;-100,00;58;-20,00;-100,00;0,00;0,00;0,00;6h20min;-913,00 +WINJ26;06/11/2025 17:50:00;07/11/2025 09:20:00;15h30min;1;1;C;162.100,00;161.900,00;192.295,00;No;-40,00;-200,00;59;-40,00;-200,00;0,00;0,00;0,00;1d;-953,00 +WINJ26;07/11/2025 12:35:00;07/11/2025 14:15:00;1h40min;1;1;C;161.500,00;161.250,00;192.295,00;Sim;-50,00;-250,00;60;-50,00;-250,00;0,00;0,00;0,00;18h45min;-1.003,00 +WINJ26;10/11/2025 10:20:00;11/11/2025 09:00:00;22h40min;1;1;V;163.755,00;163.125,00;192.295,00;Sim;-126,00;-630,00;61;-126,00;-630,00;0,00;0,00;0,00;2d21h;-1.129,00 +WINJ26;11/11/2025 09:10:00;11/11/2025 11:20:00;2h10min;1;1;V;166.295,00;164.815,00;192.295,00;Sim;-296,00;-1.480,00;62;-296,00;-1.480,00;0,00;0,00;0,00;22h50min;-1.425,00 +WINJ26;11/11/2025 15:35:00;11/11/2025 16:55:00;1h20min;1;1;C;166.080,00;166.200,00;192.295,00;No;24,00;120,00;63;24,00;120,00;0,00;0,00;0,00;6h25min;-1.401,00 +WINJ26;11/11/2025 17:00:00;11/11/2025 17:10:00;10min;1;1;C;166.560,00;166.600,00;192.295,00;No;8,00;40,00;64;8,00;40,00;0,00;0,00;0,00;1h25min;-1.393,00 +WINJ26;11/11/2025 18:10:00;11/11/2025 18:20:00;10min;1;1;C;166.290,00;166.390,00;192.295,00;Sim;20,00;100,00;65;20,00;100,00;0,00;0,00;0,00;1h10min;-1.373,00 +WINJ26;12/11/2025 10:35:00;12/11/2025 10:45:00;10min;1;1;C;166.300,00;166.250,00;192.295,00;No;-10,00;-50,00;66;-10,00;-50,00;0,00;0,00;0,00;16h25min;-1.383,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:25:00;25min;1;1;C;165.750,00;165.800,00;192.295,00;Sim;10,00;50,00;67;10,00;50,00;0,00;0,00;0,00;6h25min;-1.373,00 +WINJ26;13/11/2025 09:05:00;13/11/2025 10:15:00;1h10min;1;1;V;166.350,00;166.000,00;192.295,00;Sim;-70,00;-350,00;68;-70,00;-350,00;0,00;0,00;0,00;16h5min;-1.443,00 +WINJ26;13/11/2025 11:15:00;13/11/2025 13:35:00;2h20min;1;1;V;165.800,00;165.920,00;192.295,00;No;24,00;120,00;69;24,00;120,00;0,00;0,00;0,00;2h10min;-1.419,00 +WINJ26;13/11/2025 16:30:00;13/11/2025 17:05:00;35min;1;1;C;165.250,00;165.500,00;192.295,00;Sim;50,00;250,00;70;50,00;250,00;0,00;0,00;0,00;5h15min;-1.369,00 +WINJ26;14/11/2025 09:15:00;14/11/2025 09:40:00;25min;1;1;C;164.780,00;165.050,00;192.295,00;Sim;54,00;270,00;71;54,00;270,00;0,00;0,00;0,00;16h45min;-1.315,00 +WINJ26;14/11/2025 18:10:00;14/11/2025 18:20:00;10min;1;1;V;165.850,00;165.915,00;192.295,00;No;13,00;65,00;72;13,00;65,00;0,00;0,00;0,00;8h55min;-1.302,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.295,00;No;69,00;345,00;73;69,00;345,00;0,00;0,00;0,00;2d17h;-1.233,00 +WINJ26;17/11/2025 18:10:00;18/11/2025 09:00:00;14h50min;1;1;C;165.150,00;164.750,00;192.295,00;Sim;-80,00;-400,00;74;-80,00;-400,00;0,00;0,00;0,00;6h25min;-1.313,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.295,00;Sim;60,00;300,00;75;60,00;300,00;0,00;0,00;0,00;16h10min;-1.253,00 +WINJ26;18/11/2025 17:25:00;19/11/2025 09:20:00;15h55min;1;1;V;164.060,00;164.800,00;192.295,00;No;148,00;740,00;76;148,00;740,00;0,00;0,00;0,00;7h5min;-1.105,00 +WINJ26;19/11/2025 17:20:00;21/11/2025 11:15:00;1d17h;1;1;C;163.590,00;161.780,00;192.295,00;Sim;-362,00;-1.810,00;77;-362,00;-1.810,00;0,00;0,00;0,00;23h55min;-1.467,00 +WINJ26;21/11/2025 15:35:00;24/11/2025 10:35:00;2d19h;1;1;V;163.120,00;162.400,00;192.295,00;No;-144,00;-720,00;78;-144,00;-720,00;0,00;0,00;0,00;1d22h;-1.611,00 +WINJ26;24/11/2025 12:20:00;24/11/2025 17:45:00;5h25min;1;1;V;162.900,00;163.240,00;192.295,00;Sim;68,00;340,00;79;68,00;340,00;0,00;0,00;0,00;2d20h;-1.543,00 +WINJ26;25/11/2025 09:25:00;25/11/2025 09:45:00;20min;1;1;V;163.025,00;162.850,00;192.295,00;No;-35,00;-175,00;80;-35,00;-175,00;0,00;0,00;0,00;21h5min;-1.578,00 +WINJ26;25/11/2025 10:50:00;25/11/2025 10:55:00;5min;1;1;V;162.935,00;163.000,00;192.295,00;Sim;13,00;65,00;81;13,00;65,00;0,00;0,00;0,00;1h25min;-1.565,00 +WINJ26;25/11/2025 12:50:00;25/11/2025 12:55:00;5min;1;1;C;163.150,00;162.950,00;192.295,00;Sim;-40,00;-200,00;82;-40,00;-200,00;0,00;0,00;0,00;2h;-1.605,00 +WINJ26;26/11/2025 10:15:00;26/11/2025 13:00:00;2h45min;1;1;V;165.405,00;164.250,00;192.295,00;Sim;-231,00;-1.155,00;83;-231,00;-1.155,00;0,00;0,00;0,00;21h25min;-1.836,00 +WINJ26;26/11/2025 15:25:00;26/11/2025 18:20:00;2h55min;1;1;V;166.415,00;165.935,00;192.295,00;Sim;-96,00;-480,00;84;-96,00;-480,00;0,00;0,00;0,00;5h10min;-1.932,00 +WINJ26;27/11/2025 09:55:00;27/11/2025 13:10:00;3h15min;1;1;V;166.020,00;166.195,00;192.295,00;Sim;35,00;175,00;85;35,00;175,00;0,00;0,00;0,00;18h30min;-1.897,00 +WINJ26;27/11/2025 18:15:00;28/11/2025 10:05:00;15h50min;1;1;C;166.010,00;166.235,00;192.295,00;No;45,00;225,00;86;45,00;225,00;0,00;0,00;0,00;8h20min;-1.852,00 +WINJ26;28/11/2025 12:05:00;28/11/2025 13:25:00;1h20min;1;1;C;166.100,00;166.360,00;192.295,00;No;52,00;260,00;87;52,00;260,00;0,00;0,00;0,00;17h50min;-1.800,00 +WINJ26;28/11/2025 14:00:00;28/11/2025 14:05:00;5min;1;1;C;166.700,00;166.900,00;192.295,00;No;40,00;200,00;88;40,00;200,00;0,00;0,00;0,00;1h55min;-1.760,00 +WINJ26;28/11/2025 16:25:00;28/11/2025 17:50:00;1h25min;1;1;V;166.915,00;167.100,00;192.295,00;Sim;37,00;185,00;89;37,00;185,00;0,00;0,00;0,00;2h25min;-1.723,00 +WINJ26;28/11/2025 18:20:00;01/12/2025 09:05:00;2d14h;1;1;C;166.785,00;166.630,00;192.295,00;No;-31,00;-155,00;90;-31,00;-155,00;0,00;0,00;0,00;1h55min;-1.754,00 +WINJ26;01/12/2025 09:40:00;01/12/2025 09:55:00;15min;1;1;C;166.780,00;166.780,00;192.295,00;Sim;0;0;91;0;0;0,00;0,00;0,00;2d15h;-1.754,00 +WINJ26;01/12/2025 11:20:00;01/12/2025 11:40:00;20min;1;1;C;165.740,00;166.410,00;192.295,00;Sim;134,00;670,00;92;134,00;670,00;0,00;0,00;0,00;1h40min;-1.620,00 +WINJ26;01/12/2025 12:25:00;01/12/2025 13:00:00;35min;1;1;V;166.100,00;166.280,00;192.295,00;No;36,00;180,00;93;36,00;180,00;0,00;0,00;0,00;1h5min;-1.584,00 +WINJ26;02/12/2025 10:10:00;02/12/2025 11:55:00;1h45min;1;1;V;167.500,00;166.580,00;192.295,00;Sim;-184,00;-920,00;94;-184,00;-920,00;0,00;0,00;0,00;21h45min;-1.768,00 +WINJ26;02/12/2025 17:15:00;03/12/2025 10:45:00;17h30min;1;1;V;169.170,00;168.250,00;192.295,00;Sim;-184,00;-920,00;95;-184,00;-920,00;0,00;0,00;0,00;7h5min;-1.952,00 +WINJ26;03/12/2025 11:35:00;04/12/2025 10:25:00;22h50min;1;1;V;170.650,00;169.000,00;192.295,00;Sim;-330,00;-1.650,00;96;-330,00;-1.650,00;0,00;0,00;0,00;18h20min;-2.282,00 +WINJ26;04/12/2025 12:15:00;04/12/2025 17:15:00;5h;1;1;V;171.815,00;171.435,00;192.295,00;Sim;-76,00;-380,00;97;-76,00;-380,00;0,00;0,00;0,00;1d;-2.358,00 +WINJ26;05/12/2025 09:05:00;05/12/2025 11:35:00;2h30min;1;1;V;171.570,00;172.000,00;192.295,00;Sim;86,00;430,00;98;86,00;430,00;0,00;0,00;0,00;20h50min;-2.272,00 +WINJ26;05/12/2025 11:45:00;05/12/2025 11:50:00;5min;1;1;C;171.805,00;172.000,00;192.295,00;No;39,00;195,00;99;39,00;195,00;0,00;0,00;0,00;2h40min;-2.233,00 +WINJ26;05/12/2025 12:35:00;05/12/2025 12:45:00;10min;1;1;C;172.450,00;172.375,00;192.295,00;No;-15,00;-75,00;100;-15,00;-75,00;0,00;0,00;0,00;50min;-2.248,00 +WINJ26;05/12/2025 14:15:00;05/12/2025 16:05:00;1h50min;1;1;C;169.300,00;165.005,00;192.295,00;Sim;-859,00;-4.295,00;101;-859,00;-4.295,00;0,00;0,00;0,00;1h40min;-3.107,00 +WINJ26;05/12/2025 16:50:00;08/12/2025 09:05:00;2d16h;1;1;C;165.565,00;166.250,00;192.295,00;Sim;137,00;685,00;102;137,00;685,00;0,00;0,00;0,00;2h35min;-2.970,00 +WINJ26;08/12/2025 11:25:00;08/12/2025 11:45:00;20min;1;1;V;165.450,00;165.950,00;192.295,00;No;100,00;500,00;103;100,00;500,00;0,00;0,00;0,00;2d18h;-2.870,00 +WINJ26;08/12/2025 17:20:00;08/12/2025 17:45:00;25min;1;1;V;165.000,00;165.630,00;192.295,00;No;126,00;630,00;104;126,00;630,00;0,00;0,00;0,00;5h55min;-2.744,00 +WINJ26;09/12/2025 10:30:00;09/12/2025 11:50:00;1h20min;1;1;C;163.300,00;163.750,00;192.295,00;Sim;90,00;450,00;105;90,00;450,00;0,00;0,00;0,00;17h10min;-2.654,00 +WINJ26;09/12/2025 12:05:00;09/12/2025 16:45:00;4h40min;1;1;V;165.225,00;163.800,00;192.295,00;No;-285,00;-1.425,00;106;-285,00;-1.425,00;0,00;0,00;0,00;1h35min;-2.939,00 +WINJ26;09/12/2025 17:40:00;09/12/2025 18:15:00;35min;1;1;V;164.700,00;165.175,00;192.295,00;Sim;95,00;475,00;107;95,00;475,00;0,00;0,00;0,00;5h35min;-2.844,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.295,00;Sim;171,00;855,00;108;171,00;855,00;0,00;0,00;0,00;15h55min;-2.673,00 +WINJ26;10/12/2025 17:05:00;10/12/2025 17:10:00;5min;1;1;C;166.440,00;166.500,00;192.295,00;No;12,00;60,00;109;12,00;60,00;0,00;0,00;0,00;7h30min;-2.661,00 +WINJ26;10/12/2025 17:30:00;11/12/2025 09:05:00;15h35min;1;1;V;165.195,00;166.200,00;192.295,00;Sim;201,00;1.005,00;110;201,00;1.005,00;0,00;0,00;0,00;25min;-2.460,00 +WINJ26;11/12/2025 10:30:00;11/12/2025 11:25:00;55min;1;1;C;165.040,00;165.580,00;192.295,00;Sim;108,00;540,00;111;108,00;540,00;0,00;0,00;0,00;17h;-2.352,00 +WINJ26;11/12/2025 14:55:00;11/12/2025 17:55:00;3h;1;1;V;166.200,00;166.400,00;192.295,00;Sim;40,00;200,00;112;40,00;200,00;0,00;0,00;0,00;4h25min;-2.312,00 +WINJ26;12/12/2025 12:05:00;12/12/2025 12:15:00;10min;1;1;V;166.900,00;167.300,00;192.295,00;Sim;80,00;400,00;113;80,00;400,00;0,00;0,00;0,00;21h10min;-2.232,00 +WINJ26;12/12/2025 14:05:00;12/12/2025 14:40:00;35min;1;1;C;166.800,00;167.350,00;192.295,00;No;110,00;550,00;114;110,00;550,00;0,00;0,00;0,00;2h;-2.122,00 +WINJ26;15/12/2025 10:40:00;15/12/2025 13:45:00;3h5min;1;1;V;169.565,00;168.650,00;192.295,00;Sim;-183,00;-915,00;115;-183,00;-915,00;0,00;0,00;0,00;2d20h;-2.305,00 +WINJ26;15/12/2025 15:25:00;16/12/2025 09:00:00;17h35min;1;1;C;169.020,00;168.995,00;192.295,00;No;-5,00;-25,00;116;-5,00;-25,00;0,00;0,00;0,00;4h45min;-2.310,00 +WINJ26;16/12/2025 09:45:00;16/12/2025 10:10:00;25min;1;1;C;167.150,00;167.515,00;192.295,00;Sim;73,00;365,00;117;73,00;365,00;0,00;0,00;0,00;18h20min;-2.237,00 +WINJ26;16/12/2025 10:55:00;16/12/2025 12:45:00;1h50min;1;1;C;167.045,00;166.200,00;192.295,00;Sim;-169,00;-845,00;118;-169,00;-845,00;0,00;0,00;0,00;1h10min;-2.406,00 +WINJ26;16/12/2025 13:10:00;16/12/2025 14:10:00;1h;1;1;C;166.450,00;166.990,00;192.295,00;Sim;108,00;540,00;119;108,00;540,00;0,00;0,00;0,00;2h15min;-2.298,00 +WINJ26;16/12/2025 14:45:00;16/12/2025 15:20:00;35min;1;1;V;166.655,00;166.800,00;192.295,00;No;29,00;145,00;120;29,00;145,00;0,00;0,00;0,00;1h35min;-2.269,00 +WINJ26;16/12/2025 17:45:00;17/12/2025 09:35:00;15h50min;1;1;C;165.700,00;164.530,00;192.295,00;Sim;-234,00;-1.170,00;121;-234,00;-1.170,00;0,00;0,00;0,00;3h;-2.503,00 +WINJ26;17/12/2025 10:40:00;17/12/2025 11:25:00;45min;1;1;C;163.165,00;163.815,00;192.295,00;Sim;130,00;650,00;122;130,00;650,00;0,00;0,00;0,00;16h55min;-2.373,00 +WINJ26;17/12/2025 11:50:00;17/12/2025 12:20:00;30min;1;1;V;163.790,00;164.140,00;192.295,00;No;70,00;350,00;123;70,00;350,00;0,00;0,00;0,00;1h10min;-2.303,00 +WINJ26;17/12/2025 12:45:00;17/12/2025 12:55:00;10min;1;1;V;163.450,00;163.685,00;192.295,00;No;47,00;235,00;124;47,00;235,00;0,00;0,00;0,00;55min;-2.256,00 +WINJ26;17/12/2025 14:50:00;17/12/2025 14:55:00;5min;1;1;V;163.600,00;163.460,00;192.295,00;No;-28,00;-140,00;125;-28,00;-140,00;0,00;0,00;0,00;2h5min;-2.284,00 +WINJ26;17/12/2025 16:25:00;17/12/2025 18:00:00;1h35min;1;1;V;163.850,00;163.655,00;192.295,00;Sim;-39,00;-195,00;126;-39,00;-195,00;0,00;0,00;0,00;1h35min;-2.323,00 +WINJ26;18/12/2025 09:15:00;18/12/2025 09:30:00;15min;1;1;C;163.555,00;163.750,00;192.295,00;No;39,00;195,00;127;39,00;195,00;0,00;0,00;0,00;16h50min;-2.284,00 +WINJ26;18/12/2025 09:55:00;18/12/2025 10:05:00;10min;1;1;C;163.435,00;163.520,00;192.295,00;Sim;17,00;85,00;128;17,00;85,00;0,00;0,00;0,00;40min;-2.267,00 +WINJ26;18/12/2025 10:30:00;18/12/2025 11:00:00;30min;1;1;V;163.735,00;163.835,00;192.295,00;Sim;20,00;100,00;129;20,00;100,00;0,00;0,00;0,00;35min;-2.247,00 +WINJ26;18/12/2025 11:55:00;18/12/2025 12:00:00;5min;1;1;C;163.845,00;164.050,00;192.295,00;No;41,00;205,00;130;41,00;205,00;0,00;0,00;0,00;1h25min;-2.206,00 +WINJ26;18/12/2025 12:20:00;18/12/2025 13:30:00;1h10min;1;1;V;164.800,00;164.115,00;192.295,00;Sim;-137,00;-685,00;131;-137,00;-685,00;0,00;0,00;0,00;25min;-2.343,00 +WINJ26;18/12/2025 13:50:00;18/12/2025 14:10:00;20min;1;1;V;164.585,00;164.890,00;192.295,00;Sim;61,00;305,00;132;61,00;305,00;0,00;0,00;0,00;1h30min;-2.282,00 +WINJ26;18/12/2025 14:35:00;18/12/2025 14:45:00;10min;1;1;C;164.475,00;164.745,00;192.295,00;No;54,00;270,00;133;54,00;270,00;0,00;0,00;0,00;45min;-2.228,00 +WINJ26;18/12/2025 15:25:00;18/12/2025 15:55:00;30min;1;1;V;164.710,00;164.900,00;192.295,00;Sim;38,00;190,00;134;38,00;190,00;0,00;0,00;0,00;50min;-2.190,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.295,00;Sim;7,00;35,00;135;7,00;35,00;0,00;0,00;0,00;1h40min;-2.183,00 +WINJ26;18/12/2025 18:00:00;18/12/2025 18:10:00;10min;1;1;V;164.565,00;164.480,00;192.295,00;No;-17,00;-85,00;136;-17,00;-85,00;0,00;0,00;0,00;55min;-2.200,00 +WINJ26;19/12/2025 09:00:00;19/12/2025 09:25:00;25min;1;1;V;164.540,00;164.250,00;192.295,00;No;-58,00;-290,00;137;-58,00;-290,00;0,00;0,00;0,00;15h;-2.258,00 +WINJ26;19/12/2025 10:45:00;19/12/2025 11:55:00;1h10min;1;1;V;165.760,00;164.835,00;192.295,00;Sim;-185,00;-925,00;138;-185,00;-925,00;0,00;0,00;0,00;1h45min;-2.443,00 +WINJ26;19/12/2025 12:10:00;19/12/2025 12:45:00;35min;1;1;V;165.475,00;165.645,00;192.295,00;Sim;34,00;170,00;139;34,00;170,00;0,00;0,00;0,00;1h25min;-2.409,00 +WINJ26;19/12/2025 12:50:00;19/12/2025 12:55:00;5min;1;1;C;165.550,00;165.560,00;192.295,00;No;2,00;10,00;140;2,00;10,00;0,00;0,00;0,00;40min;-2.407,00 +WINJ26;19/12/2025 13:05:00;19/12/2025 13:10:00;5min;1;1;C;165.600,00;165.605,00;192.295,00;No;1,00;5,00;141;1,00;5,00;0,00;0,00;0,00;15min;-2.406,00 +WINJ26;19/12/2025 13:30:00;19/12/2025 14:00:00;30min;1;1;C;165.525,00;165.495,00;192.295,00;Sim;-6,00;-30,00;142;-6,00;-30,00;0,00;0,00;0,00;25min;-2.412,00 +WINJ26;19/12/2025 14:20:00;19/12/2025 15:30:00;1h10min;1;1;C;165.450,00;165.130,00;192.295,00;Sim;-64,00;-320,00;143;-64,00;-320,00;0,00;0,00;0,00;50min;-2.476,00 +WINJ26;19/12/2025 15:50:00;19/12/2025 16:45:00;55min;1;1;C;165.130,00;165.020,00;192.295,00;Sim;-22,00;-110,00;144;-22,00;-110,00;0,00;0,00;0,00;1h30min;-2.498,00 +WINJ26;19/12/2025 16:50:00;19/12/2025 16:55:00;5min;1;1;V;165.015,00;164.975,00;192.295,00;No;-8,00;-40,00;145;-8,00;-40,00;0,00;0,00;0,00;1h;-2.506,00 +WINJ26;19/12/2025 17:05:00;19/12/2025 17:10:00;5min;1;1;V;165.060,00;165.020,00;192.295,00;Sim;-8,00;-40,00;146;-8,00;-40,00;0,00;0,00;0,00;15min;-2.514,00 +WINJ26;19/12/2025 17:15:00;19/12/2025 17:20:00;5min;1;1;V;165.005,00;164.995,00;192.295,00;No;-2,00;-10,00;147;-2,00;-10,00;0,00;0,00;0,00;10min;-2.516,00 +WINJ26;19/12/2025 17:35:00;19/12/2025 17:40:00;5min;1;1;V;164.775,00;164.990,00;192.295,00;No;43,00;215,00;148;43,00;215,00;0,00;0,00;0,00;20min;-2.473,00 +WINJ26;19/12/2025 17:50:00;19/12/2025 18:10:00;20min;1;1;C;164.775,00;164.905,00;192.295,00;Sim;26,00;130,00;149;26,00;130,00;0,00;0,00;0,00;15min;-2.447,00 +WINJ26;19/12/2025 18:20:00;22/12/2025 09:15:00;2d14h;1;1;V;165.050,00;164.890,00;192.295,00;No;-32,00;-160,00;150;-32,00;-160,00;0,00;0,00;0,00;30min;-2.479,00 +WINJ26;22/12/2025 10:00:00;22/12/2025 11:10:00;1h10min;1;1;C;164.740,00;164.300,00;192.295,00;Sim;-88,00;-440,00;151;-88,00;-440,00;0,00;0,00;0,00;2d15h;-2.567,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 12:10:00;25min;1;1;C;163.790,00;163.980,00;192.295,00;Sim;38,00;190,00;152;38,00;190,00;0,00;0,00;0,00;1h45min;-2.529,00 +WINJ26;22/12/2025 13:35:00;22/12/2025 14:25:00;50min;1;1;V;164.310,00;164.070,00;192.295,00;No;-48,00;-240,00;153;-48,00;-240,00;0,00;0,00;0,00;1h50min;-2.577,00 +WINJ26;22/12/2025 15:35:00;22/12/2025 15:40:00;5min;1;1;C;164.200,00;164.315,00;192.295,00;No;23,00;115,00;154;23,00;115,00;0,00;0,00;0,00;2h;-2.554,00 +WINJ26;22/12/2025 16:05:00;22/12/2025 16:20:00;15min;1;1;V;164.265,00;164.400,00;192.295,00;Sim;27,00;135,00;155;27,00;135,00;0,00;0,00;0,00;30min;-2.527,00 +WINJ26;22/12/2025 17:20:00;22/12/2025 17:35:00;15min;1;1;V;164.255,00;164.380,00;192.295,00;No;25,00;125,00;156;25,00;125,00;0,00;0,00;0,00;1h15min;-2.502,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.295,00;No;2,00;10,00;157;2,00;10,00;0,00;0,00;0,00;15h45min;-2.500,00 +WINJ26;23/12/2025 09:35:00;23/12/2025 10:45:00;1h10min;1;1;V;165.375,00;165.040,00;192.295,00;Sim;-67,00;-335,00;158;-67,00;-335,00;0,00;0,00;0,00;30min;-2.567,00 +WINJ26;23/12/2025 11:15:00;23/12/2025 11:25:00;10min;1;1;V;165.325,00;165.710,00;192.295,00;Sim;77,00;385,00;159;77,00;385,00;0,00;0,00;0,00;1h40min;-2.490,00 +WINJ26;23/12/2025 12:25:00;23/12/2025 13:30:00;1h5min;1;1;V;166.345,00;166.410,00;192.295,00;Sim;13,00;65,00;160;13,00;65,00;0,00;0,00;0,00;1h10min;-2.477,00 +WINJ26;23/12/2025 13:35:00;23/12/2025 13:40:00;5min;1;1;C;166.480,00;166.580,00;192.295,00;No;20,00;100,00;161;20,00;100,00;0,00;0,00;0,00;1h10min;-2.457,00 +WINJ26;23/12/2025 14:00:00;23/12/2025 14:05:00;5min;1;1;C;166.500,00;166.465,00;192.295,00;No;-7,00;-35,00;162;-7,00;-35,00;0,00;0,00;0,00;25min;-2.464,00 +WINJ26;23/12/2025 14:15:00;23/12/2025 14:20:00;5min;1;1;C;166.540,00;166.515,00;192.295,00;No;-5,00;-25,00;163;-5,00;-25,00;0,00;0,00;0,00;15min;-2.469,00 +WINJ26;23/12/2025 14:35:00;23/12/2025 14:40:00;5min;1;1;C;166.600,00;166.605,00;192.295,00;No;1,00;5,00;164;1,00;5,00;0,00;0,00;0,00;20min;-2.468,00 +WINJ26;23/12/2025 15:25:00;23/12/2025 15:50:00;25min;1;1;C;166.425,00;166.465,00;192.295,00;Sim;8,00;40,00;165;8,00;40,00;0,00;0,00;0,00;50min;-2.460,00 +WINJ26;23/12/2025 16:40:00;23/12/2025 16:45:00;5min;1;1;C;166.540,00;166.470,00;192.295,00;No;-14,00;-70,00;166;-14,00;-70,00;0,00;0,00;0,00;1h15min;-2.474,00 +WINJ26;23/12/2025 17:05:00;23/12/2025 17:25:00;20min;1;1;C;166.440,00;166.455,00;192.295,00;Sim;3,00;15,00;167;3,00;15,00;0,00;0,00;0,00;25min;-2.471,00 +WINJ26;23/12/2025 18:20:00;26/12/2025 09:00:00;2d14h;1;1;V;166.295,00;166.530,00;192.295,00;Sim;47,00;235,00;168;47,00;235,00;0,00;0,00;0,00;1h15min;-2.424,00 +WINJ26;26/12/2025 09:15:00;26/12/2025 10:10:00;55min;1;1;C;165.980,00;166.000,00;192.295,00;Sim;4,00;20,00;169;4,00;20,00;0,00;0,00;0,00;2d14h;-2.420,00 +WINJ26;26/12/2025 10:30:00;26/12/2025 11:15:00;45min;1;1;C;165.750,00;165.720,00;192.295,00;Sim;-6,00;-30,00;170;-6,00;-30,00;0,00;0,00;0,00;1h15min;-2.426,00 +WINJ26;26/12/2025 11:45:00;26/12/2025 12:55:00;1h10min;1;1;V;166.325,00;166.015,00;192.295,00;No;-62,00;-310,00;171;-62,00;-310,00;0,00;0,00;0,00;1h15min;-2.488,00 +WINJ26;26/12/2025 13:15:00;26/12/2025 13:20:00;5min;1;1;V;166.250,00;166.295,00;192.295,00;Sim;9,00;45,00;172;9,00;45,00;0,00;0,00;0,00;1h30min;-2.479,00 +WINJ26;26/12/2025 14:00:00;26/12/2025 14:05:00;5min;1;1;C;166.110,00;166.230,00;192.295,00;No;24,00;120,00;173;24,00;120,00;0,00;0,00;0,00;45min;-2.455,00 +WINJ26;26/12/2025 14:35:00;26/12/2025 15:20:00;45min;1;1;V;166.480,00;166.310,00;192.295,00;Sim;-34,00;-170,00;174;-34,00;-170,00;0,00;0,00;0,00;35min;-2.489,00 +WINJ26;26/12/2025 16:30:00;26/12/2025 17:55:00;1h25min;1;1;V;167.100,00;166.730,00;192.295,00;Sim;-74,00;-370,00;175;-74,00;-370,00;0,00;0,00;0,00;1h55min;-2.563,00 +WINJ26;29/12/2025 09:15:00;29/12/2025 09:30:00;15min;1;1;V;167.005,00;167.245,00;192.295,00;Sim;48,00;240,00;176;48,00;240,00;0,00;0,00;0,00;2d16h;-2.515,00 +WINJ26;29/12/2025 10:10:00;29/12/2025 11:20:00;1h10min;1;1;C;166.910,00;166.340,00;192.295,00;No;-114,00;-570,00;177;-114,00;-570,00;0,00;0,00;0,00;55min;-2.629,00 +WINJ26;29/12/2025 11:35:00;29/12/2025 11:45:00;10min;1;1;C;166.450,00;166.635,00;192.295,00;Sim;37,00;185,00;178;37,00;185,00;0,00;0,00;0,00;1h25min;-2.592,00 +WINJ26;29/12/2025 12:55:00;29/12/2025 13:30:00;35min;1;1;C;166.200,00;166.175,00;192.295,00;Sim;-5,00;-25,00;179;-5,00;-25,00;0,00;0,00;0,00;1h20min;-2.597,00 +WINJ26;29/12/2025 13:40:00;29/12/2025 13:45:00;5min;1;1;V;166.090,00;166.110,00;192.295,00;No;4,00;20,00;180;4,00;20,00;0,00;0,00;0,00;45min;-2.593,00 +WINJ26;29/12/2025 14:05:00;29/12/2025 14:10:00;5min;1;1;V;166.110,00;166.080,00;192.295,00;No;-6,00;-30,00;181;-6,00;-30,00;0,00;0,00;0,00;25min;-2.599,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:55:00;5min;1;1;V;166.150,00;166.290,00;192.295,00;Sim;28,00;140,00;182;28,00;140,00;0,00;0,00;0,00;45min;-2.571,00 +WINJ26;29/12/2025 15:35:00;29/12/2025 16:35:00;1h;1;1;C;166.130,00;166.015,00;192.295,00;Sim;-23,00;-115,00;183;-23,00;-115,00;0,00;0,00;0,00;45min;-2.594,00 +WINJ26;29/12/2025 17:35:00;29/12/2025 17:45:00;10min;1;1;V;166.070,00;166.155,00;192.295,00;No;17,00;85,00;184;17,00;85,00;0,00;0,00;0,00;2h;-2.577,00 +WINJ26;30/12/2025 10:05:00;30/12/2025 10:45:00;40min;1;1;V;167.570,00;167.540,00;192.295,00;Sim;-6,00;-30,00;185;-6,00;-30,00;0,00;0,00;0,00;16h30min;-2.583,00 +WINJ26;30/12/2025 11:10:00;30/12/2025 11:15:00;5min;1;1;C;167.635,00;167.420,00;192.295,00;No;-43,00;-215,00;186;-43,00;-215,00;0,00;0,00;0,00;1h5min;-2.626,00 +WINJ26;30/12/2025 12:20:00;30/12/2025 12:40:00;20min;1;1;C;167.295,00;167.405,00;192.295,00;Sim;22,00;110,00;187;22,00;110,00;0,00;0,00;0,00;1h10min;-2.604,00 +WINJ26;30/12/2025 13:45:00;30/12/2025 13:50:00;5min;1;1;V;167.565,00;167.760,00;192.295,00;Sim;39,00;195,00;188;39,00;195,00;0,00;0,00;0,00;1h25min;-2.565,00 +WINJ26;30/12/2025 14:40:00;30/12/2025 15:20:00;40min;1;1;V;167.735,00;167.760,00;192.295,00;No;5,00;25,00;189;5,00;25,00;0,00;0,00;0,00;55min;-2.560,00 +WINJ26;30/12/2025 16:10:00;30/12/2025 16:15:00;5min;1;1;C;167.780,00;167.735,00;192.295,00;No;-9,00;-45,00;190;-9,00;-45,00;0,00;0,00;0,00;1h30min;-2.569,00 +WINJ26;30/12/2025 16:45:00;30/12/2025 17:00:00;15min;1;1;C;167.710,00;167.660,00;192.295,00;Sim;-10,00;-50,00;191;-10,00;-50,00;0,00;0,00;0,00;35min;-2.579,00 +WINJ26;30/12/2025 17:15:00;30/12/2025 17:20:00;5min;1;1;C;167.630,00;167.675,00;192.295,00;Sim;9,00;45,00;192;9,00;45,00;0,00;0,00;0,00;30min;-2.570,00 +WINJ26;30/12/2025 18:20:00;02/01/2026 09:05:00;2d14h;1;1;C;167.180,00;167.910,00;192.295,00;Sim;146,00;730,00;193;146,00;730,00;0,00;0,00;0,00;1h5min;-2.424,00 +WINJ26;02/01/2026 09:35:00;02/01/2026 10:10:00;35min;1;1;V;167.810,00;167.485,00;192.295,00;No;-65,00;-325,00;194;-65,00;-325,00;0,00;0,00;0,00;2d15h;-2.489,00 +WINJ26;02/01/2026 11:10:00;02/01/2026 12:20:00;1h10min;1;1;C;166.870,00;166.535,00;192.295,00;Sim;-67,00;-335,00;195;-67,00;-335,00;0,00;0,00;0,00;1h35min;-2.556,00 +WINJ26;02/01/2026 14:00:00;02/01/2026 15:10:00;1h10min;1;1;C;166.220,00;165.980,00;192.295,00;Sim;-48,00;-240,00;196;-48,00;-240,00;0,00;0,00;0,00;2h50min;-2.604,00 +WINJ26;02/01/2026 15:30:00;02/01/2026 15:35:00;5min;1;1;V;166.050,00;166.055,00;192.295,00;No;1,00;5,00;197;1,00;5,00;0,00;0,00;0,00;1h30min;-2.603,00 +WINJ26;02/01/2026 15:45:00;02/01/2026 15:50:00;5min;1;1;V;165.910,00;165.975,00;192.295,00;No;13,00;65,00;198;13,00;65,00;0,00;0,00;0,00;15min;-2.590,00 +WINJ26;02/01/2026 16:35:00;02/01/2026 17:15:00;40min;1;1;V;166.165,00;166.265,00;192.295,00;Sim;20,00;100,00;199;20,00;100,00;0,00;0,00;0,00;50min;-2.570,00 +WINJ26;02/01/2026 17:35:00;02/01/2026 17:50:00;15min;1;1;C;166.105,00;166.155,00;192.295,00;Sim;10,00;50,00;200;10,00;50,00;0,00;0,00;0,00;1h;-2.560,00 +WINJ26;02/01/2026 18:05:00;02/01/2026 18:10:00;5min;1;1;C;166.190,00;166.170,00;192.295,00;No;-4,00;-20,00;201;-4,00;-20,00;0,00;0,00;0,00;30min;-2.564,00 +WINJ26;05/01/2026 09:05:00;05/01/2026 09:10:00;5min;1;1;C;166.535,00;166.395,00;192.295,00;No;-28,00;-140,00;202;-28,00;-140,00;0,00;0,00;0,00;2d15h;-2.592,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.295,00;Sim;39,00;195,00;203;39,00;195,00;0,00;0,00;0,00;40min;-2.553,00 +WINJ26;05/01/2026 10:15:00;05/01/2026 10:45:00;30min;1;1;C;166.290,00;166.125,00;192.295,00;Sim;-33,00;-165,00;204;-33,00;-165,00;0,00;0,00;0,00;30min;-2.586,00 +WINJ26;05/01/2026 11:05:00;05/01/2026 11:50:00;45min;1;1;V;166.170,00;166.450,00;192.295,00;No;56,00;280,00;205;56,00;280,00;0,00;0,00;0,00;50min;-2.530,00 +WINJ26;05/01/2026 12:05:00;05/01/2026 12:10:00;5min;1;1;C;166.230,00;166.355,00;192.295,00;Sim;25,00;125,00;206;25,00;125,00;0,00;0,00;0,00;1h;-2.505,00 +WINJ26;05/01/2026 12:40:00;05/01/2026 13:50:00;1h10min;1;1;V;167.360,00;166.820,00;192.295,00;Sim;-108,00;-540,00;207;-108,00;-540,00;0,00;0,00;0,00;35min;-2.613,00 +WINJ26;05/01/2026 14:30:00;05/01/2026 15:45:00;1h15min;1;1;V;167.675,00;167.400,00;192.295,00;Sim;-55,00;-275,00;208;-55,00;-275,00;0,00;0,00;0,00;1h50min;-2.668,00 +WINJ26;05/01/2026 16:10:00;05/01/2026 16:25:00;15min;1;1;V;167.710,00;167.750,00;192.295,00;Sim;8,00;40,00;209;8,00;40,00;0,00;0,00;0,00;1h40min;-2.660,00 +WINJ26;05/01/2026 17:30:00;05/01/2026 17:35:00;5min;1;1;C;167.580,00;167.650,00;192.295,00;No;14,00;70,00;210;14,00;70,00;0,00;0,00;0,00;1h20min;-2.646,00 +WINJ26;06/01/2026 09:00:00;06/01/2026 09:05:00;5min;1;1;C;167.640,00;167.890,00;192.295,00;No;50,00;250,00;211;50,00;250,00;0,00;0,00;0,00;15h30min;-2.596,00 +WINJ26;06/01/2026 10:00:00;06/01/2026 11:10:00;1h10min;1;1;V;169.760,00;168.740,00;192.295,00;Sim;-204,00;-1.020,00;212;-204,00;-1.020,00;0,00;0,00;0,00;1h;-2.800,00 +WINJ26;06/01/2026 11:15:00;06/01/2026 11:25:00;10min;1;1;V;169.295,00;169.740,00;192.295,00;Sim;89,00;445,00;213;89,00;445,00;0,00;0,00;0,00;1h15min;-2.711,00 +WINJ26;06/01/2026 11:40:00;06/01/2026 11:45:00;5min;1;1;C;169.420,00;169.430,00;192.295,00;No;2,00;10,00;214;2,00;10,00;0,00;0,00;0,00;25min;-2.709,00 +WINJ26;06/01/2026 12:05:00;06/01/2026 12:10:00;5min;1;1;C;169.520,00;169.690,00;192.295,00;No;34,00;170,00;215;34,00;170,00;0,00;0,00;0,00;25min;-2.675,00 +WINJ26;06/01/2026 12:50:00;06/01/2026 12:55:00;5min;1;1;C;169.505,00;169.445,00;192.295,00;Sim;-12,00;-60,00;216;-12,00;-60,00;0,00;0,00;0,00;45min;-2.687,00 +WINJ26;06/01/2026 13:30:00;06/01/2026 13:35:00;5min;1;1;C;169.405,00;169.425,00;192.295,00;Sim;4,00;20,00;217;4,00;20,00;0,00;0,00;0,00;40min;-2.683,00 +WINJ26;06/01/2026 14:35:00;06/01/2026 14:40:00;5min;1;1;C;169.500,00;169.490,00;192.295,00;No;-2,00;-10,00;218;-2,00;-10,00;0,00;0,00;0,00;1h5min;-2.685,00 +WINJ26;06/01/2026 15:05:00;06/01/2026 15:15:00;10min;1;1;C;169.550,00;169.445,00;192.295,00;No;-21,00;-105,00;219;-21,00;-105,00;0,00;0,00;0,00;30min;-2.706,00 +WINJ26;06/01/2026 15:40:00;06/01/2026 15:50:00;10min;1;1;C;169.380,00;169.500,00;192.295,00;Sim;24,00;120,00;220;24,00;120,00;0,00;0,00;0,00;35min;-2.682,00 +WINJ26;06/01/2026 16:05:00;06/01/2026 16:15:00;10min;1;1;V;169.415,00;169.505,00;192.295,00;No;18,00;90,00;221;18,00;90,00;0,00;0,00;0,00;25min;-2.664,00 +WINJ26;06/01/2026 17:10:00;06/01/2026 17:30:00;20min;1;1;C;169.190,00;169.210,00;192.295,00;Sim;4,00;20,00;222;4,00;20,00;0,00;0,00;0,00;1h5min;-2.660,00 +WINJ26;06/01/2026 17:35:00;06/01/2026 18:05:00;30min;1;1;V;169.320,00;169.190,00;192.295,00;No;-26,00;-130,00;223;-26,00;-130,00;0,00;0,00;0,00;25min;-2.686,00 +WINJ26;07/01/2026 09:05:00;07/01/2026 09:10:00;5min;1;1;V;169.250,00;169.045,00;192.295,00;No;-41,00;-205,00;224;-41,00;-205,00;0,00;0,00;0,00;15h30min;-2.727,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:50:00;1h10min;1;1;C;168.780,00;167.855,00;192.295,00;Sim;-185,00;-925,00;225;-185,00;-925,00;0,00;0,00;0,00;1h35min;-2.912,00 +WINJ26;07/01/2026 12:35:00;07/01/2026 12:50:00;15min;1;1;C;167.595,00;167.725,00;192.295,00;Sim;26,00;130,00;226;26,00;130,00;0,00;0,00;0,00;1h55min;-2.886,00 +WINJ26;07/01/2026 13:40:00;07/01/2026 13:45:00;5min;1;1;V;167.740,00;167.665,00;192.295,00;No;-15,00;-75,00;227;-15,00;-75,00;0,00;0,00;0,00;1h5min;-2.901,00 +WINJ26;07/01/2026 14:05:00;07/01/2026 14:10:00;5min;1;1;V;167.575,00;167.620,00;192.295,00;No;9,00;45,00;228;9,00;45,00;0,00;0,00;0,00;25min;-2.892,00 +WINJ26;07/01/2026 14:40:00;07/01/2026 14:55:00;15min;1;1;V;167.565,00;167.685,00;192.295,00;Sim;24,00;120,00;229;24,00;120,00;0,00;0,00;0,00;35min;-2.868,00 +WINJ26;07/01/2026 15:20:00;07/01/2026 15:25:00;5min;1;1;V;167.500,00;167.545,00;192.295,00;No;9,00;45,00;230;9,00;45,00;0,00;0,00;0,00;40min;-2.859,00 +WINJ26;07/01/2026 16:10:00;07/01/2026 16:25:00;15min;1;1;V;167.670,00;167.600,00;192.295,00;Sim;-14,00;-70,00;231;-14,00;-70,00;0,00;0,00;0,00;50min;-2.873,00 +WINJ26;07/01/2026 17:15:00;07/01/2026 17:25:00;10min;1;1;V;167.625,00;167.660,00;192.295,00;Sim;7,00;35,00;232;7,00;35,00;0,00;0,00;0,00;1h5min;-2.866,00 +WINJ26;07/01/2026 18:00:00;08/01/2026 09:20:00;15h20min;1;1;C;167.465,00;167.500,00;192.295,00;Sim;7,00;35,00;233;7,00;35,00;0,00;0,00;0,00;45min;-2.859,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:35:00;5min;1;1;V;167.410,00;167.460,00;192.295,00;No;10,00;50,00;234;10,00;50,00;0,00;0,00;0,00;15h30min;-2.849,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 10:05:00;5min;1;1;V;167.600,00;167.525,00;192.295,00;Sim;-15,00;-75,00;235;-15,00;-75,00;0,00;0,00;0,00;30min;-2.864,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:50:00;10min;1;1;V;167.665,00;167.855,00;192.295,00;Sim;38,00;190,00;236;38,00;190,00;0,00;0,00;0,00;40min;-2.826,00 +WINJ26;08/01/2026 11:50:00;08/01/2026 12:00:00;10min;1;1;V;167.765,00;167.880,00;192.295,00;Sim;23,00;115,00;237;23,00;115,00;0,00;0,00;0,00;1h10min;-2.803,00 +WINJ26;08/01/2026 12:30:00;08/01/2026 12:45:00;15min;1;1;V;167.820,00;167.865,00;192.295,00;No;9,00;45,00;238;9,00;45,00;0,00;0,00;0,00;40min;-2.794,00 +WINJ26;08/01/2026 13:30:00;08/01/2026 13:35:00;5min;1;1;C;167.950,00;168.030,00;192.295,00;No;16,00;80,00;239;16,00;80,00;0,00;0,00;0,00;1h;-2.778,00 +WINJ26;08/01/2026 14:35:00;08/01/2026 15:30:00;55min;1;1;C;167.970,00;167.920,00;192.295,00;No;-10,00;-50,00;240;-10,00;-50,00;0,00;0,00;0,00;1h5min;-2.788,00 +WINJ26;08/01/2026 16:00:00;08/01/2026 16:55:00;55min;1;1;V;168.020,00;167.910,00;192.295,00;Sim;-22,00;-110,00;241;-22,00;-110,00;0,00;0,00;0,00;1h25min;-2.810,00 +WINJ26;08/01/2026 17:35:00;08/01/2026 17:40:00;5min;1;1;C;168.130,00;168.170,00;192.295,00;No;8,00;40,00;242;8,00;40,00;0,00;0,00;0,00;1h35min;-2.802,00 +WINJ26;08/01/2026 18:05:00;09/01/2026 09:15:00;15h10min;1;1;V;168.115,00;168.165,00;192.295,00;Sim;10,00;50,00;243;10,00;50,00;0,00;0,00;0,00;30min;-2.792,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.295,00;Sim;10,00;50,00;244;10,00;50,00;0,00;0,00;0,00;15h25min;-2.782,00 +WINJ26;09/01/2026 10:10:00;09/01/2026 11:20:00;1h10min;1;1;V;168.890,00;168.295,00;192.295,00;Sim;-119,00;-595,00;245;-119,00;-595,00;0,00;0,00;0,00;40min;-2.901,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:50:00;40min;1;1;V;169.215,00;169.350,00;192.295,00;Sim;27,00;135,00;246;27,00;135,00;0,00;0,00;0,00;2h;-2.874,00 +WINJ26;09/01/2026 13:05:00;09/01/2026 13:10:00;5min;1;1;C;169.215,00;169.270,00;192.295,00;No;11,00;55,00;247;11,00;55,00;0,00;0,00;0,00;55min;-2.863,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:55:00;45min;1;1;V;169.405,00;169.550,00;192.295,00;Sim;29,00;145,00;248;29,00;145,00;0,00;0,00;0,00;1h5min;-2.834,00 +WINJ26;09/01/2026 15:40:00;09/01/2026 16:50:00;1h10min;1;1;C;169.355,00;169.075,00;192.295,00;No;-56,00;-280,00;249;-56,00;-280,00;0,00;0,00;0,00;1h30min;-2.890,00 +WINJ26;09/01/2026 17:55:00;12/01/2026 09:15:00;2d15h;1;1;C;168.760,00;168.975,00;192.295,00;Sim;43,00;215,00;250;43,00;215,00;0,00;0,00;0,00;2h15min;-2.847,00 +WINJ26;12/01/2026 09:25:00;12/01/2026 09:30:00;5min;1;1;V;168.765,00;168.805,00;192.295,00;No;8,00;40,00;251;8,00;40,00;0,00;0,00;0,00;2d15h;-2.839,00 +WINJ26;12/01/2026 09:45:00;12/01/2026 09:50:00;5min;1;1;V;168.560,00;168.590,00;192.295,00;No;6,00;30,00;252;6,00;30,00;0,00;0,00;0,00;20min;-2.833,00 +WINJ26;12/01/2026 10:10:00;12/01/2026 11:20:00;1h10min;1;1;C;168.265,00;167.960,00;192.295,00;Sim;-61,00;-305,00;253;-61,00;-305,00;0,00;0,00;0,00;25min;-2.894,00 +WINJ26;12/01/2026 11:50:00;12/01/2026 13:00:00;1h10min;1;1;V;168.755,00;168.400,00;192.295,00;No;-71,00;-355,00;254;-71,00;-355,00;0,00;0,00;0,00;1h40min;-2.965,00 +WINJ26;12/01/2026 13:10:00;12/01/2026 13:50:00;40min;1;1;V;168.620,00;168.670,00;192.295,00;Sim;10,00;50,00;255;10,00;50,00;0,00;0,00;0,00;1h20min;-2.955,00 +WINJ26;12/01/2026 15:25:00;12/01/2026 15:35:00;10min;1;1;V;168.700,00;168.650,00;192.295,00;No;-10,00;-50,00;256;-10,00;-50,00;0,00;0,00;0,00;2h15min;-2.965,00 +WINJ26;12/01/2026 16:30:00;12/01/2026 16:35:00;5min;1;1;C;168.625,00;168.690,00;192.295,00;No;13,00;65,00;257;13,00;65,00;0,00;0,00;0,00;1h5min;-2.952,00 +WINJ26;12/01/2026 17:00:00;12/01/2026 17:05:00;5min;1;1;C;168.610,00;168.670,00;192.295,00;Sim;12,00;60,00;258;12,00;60,00;0,00;0,00;0,00;30min;-2.940,00 +WINJ26;12/01/2026 18:00:00;12/01/2026 18:15:00;15min;1;1;C;168.450,00;168.505,00;192.295,00;Sim;11,00;55,00;259;11,00;55,00;0,00;0,00;0,00;1h;-2.929,00 +WINJ26;13/01/2026 09:10:00;13/01/2026 09:15:00;5min;1;1;V;168.290,00;168.430,00;192.295,00;No;28,00;140,00;260;28,00;140,00;0,00;0,00;0,00;15h10min;-2.901,00 +WINJ26;13/01/2026 10:25:00;13/01/2026 10:35:00;10min;1;1;C;167.520,00;167.805,00;192.295,00;Sim;57,00;285,00;261;57,00;285,00;0,00;0,00;0,00;1h15min;-2.844,00 +WINJ26;13/01/2026 10:50:00;13/01/2026 10:55:00;5min;1;1;V;167.490,00;167.700,00;192.295,00;No;42,00;210,00;262;42,00;210,00;0,00;0,00;0,00;25min;-2.802,00 +WINJ26;13/01/2026 11:15:00;13/01/2026 11:20:00;5min;1;1;V;167.790,00;167.920,00;192.295,00;Sim;26,00;130,00;263;26,00;130,00;0,00;0,00;0,00;25min;-2.776,00 +WINJ26;13/01/2026 12:35:00;13/01/2026 13:45:00;1h10min;1;1;C;167.160,00;167.250,00;192.295,00;Sim;18,00;90,00;264;18,00;90,00;0,00;0,00;0,00;1h20min;-2.758,00 +WINJ26;13/01/2026 14:00:00;13/01/2026 14:40:00;40min;1;1;V;167.260,00;167.175,00;192.295,00;No;-17,00;-85,00;265;-17,00;-85,00;0,00;0,00;0,00;1h25min;-2.775,00 +WINJ26;13/01/2026 15:00:00;13/01/2026 15:05:00;5min;1;1;V;167.215,00;167.295,00;192.295,00;Sim;16,00;80,00;266;16,00;80,00;0,00;0,00;0,00;1h;-2.759,00 +WINJ26;13/01/2026 15:30:00;13/01/2026 15:35:00;5min;1;1;V;167.290,00;167.200,00;192.295,00;No;-18,00;-90,00;267;-18,00;-90,00;0,00;0,00;0,00;30min;-2.777,00 +WINJ26;13/01/2026 16:10:00;13/01/2026 16:40:00;30min;1;1;C;167.125,00;167.250,00;192.295,00;Sim;25,00;125,00;268;25,00;125,00;0,00;0,00;0,00;40min;-2.752,00 +WINJ26;13/01/2026 17:20:00;13/01/2026 17:25:00;5min;1;1;V;167.160,00;167.180,00;192.295,00;No;4,00;20,00;269;4,00;20,00;0,00;0,00;0,00;1h10min;-2.748,00 +WINJ26;13/01/2026 17:45:00;14/01/2026 09:00:00;15h15min;1;1;C;167.140,00;167.305,00;192.295,00;No;33,00;165,00;270;33,00;165,00;0,00;0,00;0,00;25min;-2.715,00 +WINJ26;14/01/2026 09:50:00;14/01/2026 11:00:00;1h10min;1;1;V;168.220,00;167.935,00;192.295,00;Sim;-57,00;-285,00;271;-57,00;-285,00;0,00;0,00;0,00;16h5min;-2.772,00 +WINJ26;14/01/2026 11:25:00;14/01/2026 11:35:00;10min;1;1;C;168.105,00;168.225,00;192.295,00;No;24,00;120,00;272;24,00;120,00;0,00;0,00;0,00;1h35min;-2.748,00 +WINJ26;14/01/2026 17:00:00;14/01/2026 17:10:00;10min;1;1;V;169.685,00;169.900,00;192.295,00;Sim;43,00;215,00;273;43,00;215,00;0,00;0,00;0,00;5h35min;-2.705,00 +WINJ26;14/01/2026 17:20:00;14/01/2026 17:25:00;5min;1;1;C;169.815,00;169.800,00;192.295,00;No;-3,00;-15,00;274;-3,00;-15,00;0,00;0,00;0,00;20min;-2.708,00 +WINJ26;14/01/2026 17:30:00;14/01/2026 17:35:00;5min;1;1;C;170.025,00;170.200,00;192.295,00;No;35,00;175,00;275;35,00;175,00;0,00;0,00;0,00;10min;-2.673,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.295,00;Sim;0;0;276;0;0;0,00;0,00;0,00;15h35min;-2.673,00 +WINJ26;15/01/2026 09:55:00;15/01/2026 10:00:00;5min;1;1;C;170.660,00;170.605,00;192.295,00;No;-11,00;-55,00;277;-11,00;-55,00;0,00;0,00;0,00;50min;-2.684,00 +WINJ26;15/01/2026 12:05:00;15/01/2026 12:10:00;5min;1;1;C;170.320,00;170.370,00;192.295,00;Sim;10,00;50,00;278;10,00;50,00;0,00;0,00;0,00;2h10min;-2.674,00 +WINJ26;15/01/2026 13:35:00;15/01/2026 14:45:00;1h10min;1;1;V;170.850,00;170.565,00;192.295,00;Sim;-57,00;-285,00;279;-57,00;-285,00;0,00;0,00;0,00;1h30min;-2.731,00 +WINJ26;15/01/2026 14:50:00;15/01/2026 16:00:00;1h10min;1;1;V;171.200,00;170.760,00;192.295,00;Sim;-88,00;-440,00;280;-88,00;-440,00;0,00;0,00;0,00;1h15min;-2.819,00 +WINJ26;15/01/2026 18:05:00;15/01/2026 18:10:00;5min;1;1;C;170.680,00;170.785,00;192.295,00;No;21,00;105,00;281;21,00;105,00;0,00;0,00;0,00;3h15min;-2.798,00 +WINJ26;16/01/2026 09:25:00;16/01/2026 09:45:00;20min;1;1;V;170.975,00;171.100,00;192.295,00;Sim;25,00;125,00;282;25,00;125,00;0,00;0,00;0,00;15h20min;-2.773,00 +WINJ26;16/01/2026 10:30:00;16/01/2026 11:40:00;1h10min;1;1;C;170.625,00;169.650,00;192.295,00;Sim;-195,00;-975,00;283;-195,00;-975,00;0,00;0,00;0,00;1h5min;-2.968,00 +WINJ26;16/01/2026 11:50:00;16/01/2026 13:00:00;1h10min;1;1;C;169.850,00;169.280,00;192.295,00;Sim;-114,00;-570,00;284;-114,00;-570,00;0,00;0,00;0,00;1h20min;-3.082,00 +WINJ26;16/01/2026 14:00:00;16/01/2026 14:05:00;5min;1;1;V;169.585,00;169.535,00;192.295,00;No;-10,00;-50,00;285;-10,00;-50,00;0,00;0,00;0,00;2h10min;-3.092,00 +WINJ26;16/01/2026 14:20:00;16/01/2026 14:25:00;5min;1;1;V;169.440,00;169.485,00;192.295,00;No;9,00;45,00;286;9,00;45,00;0,00;0,00;0,00;20min;-3.083,00 +WINJ26;16/01/2026 14:50:00;16/01/2026 15:00:00;10min;1;1;V;169.550,00;169.515,00;192.295,00;Sim;-7,00;-35,00;287;-7,00;-35,00;0,00;0,00;0,00;30min;-3.090,00 +WINJ26;16/01/2026 15:05:00;16/01/2026 15:10:00;5min;1;1;V;169.560,00;169.530,00;192.295,00;Sim;-6,00;-30,00;288;-6,00;-30,00;0,00;0,00;0,00;15min;-3.096,00 +WINJ26;16/01/2026 15:50:00;16/01/2026 16:40:00;50min;1;1;V;169.620,00;169.640,00;192.295,00;Sim;4,00;20,00;289;4,00;20,00;0,00;0,00;0,00;45min;-3.092,00 +WINJ26;16/01/2026 17:15:00;16/01/2026 17:45:00;30min;1;1;V;169.550,00;169.725,00;192.295,00;Sim;35,00;175,00;290;35,00;175,00;0,00;0,00;0,00;1h25min;-3.057,00 +WINJ26;16/01/2026 18:05:00;16/01/2026 18:10:00;5min;1;1;C;169.630,00;169.690,00;192.295,00;Sim;12,00;60,00;291;12,00;60,00;0,00;0,00;0,00;50min;-3.045,00 +WINJ26;19/01/2026 09:05:00;19/01/2026 09:10:00;5min;1;1;V;169.120,00;168.975,00;192.295,00;No;-29,00;-145,00;292;-29,00;-145,00;0,00;0,00;0,00;2d15h;-3.074,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:25:00;10min;1;1;C;169.330,00;169.495,00;192.295,00;Sim;33,00;165,00;293;33,00;165,00;0,00;0,00;0,00;10min;-3.041,00 +WINJ26;19/01/2026 10:20:00;19/01/2026 10:25:00;5min;1;1;V;169.355,00;169.640,00;192.295,00;Sim;57,00;285,00;294;57,00;285,00;0,00;0,00;0,00;1h5min;-2.984,00 +WINJ26;19/01/2026 11:45:00;19/01/2026 12:20:00;35min;1;1;V;169.540,00;169.545,00;192.295,00;No;1,00;5,00;295;1,00;5,00;0,00;0,00;0,00;1h25min;-2.983,00 +WINJ26;19/01/2026 13:00:00;19/01/2026 13:50:00;50min;1;1;V;169.780,00;169.700,00;192.295,00;Sim;-16,00;-80,00;296;-16,00;-80,00;0,00;0,00;0,00;1h15min;-2.999,00 +WINJ26;19/01/2026 14:00:00;19/01/2026 14:05:00;5min;1;1;C;169.845,00;169.895,00;192.295,00;No;10,00;50,00;297;10,00;50,00;0,00;0,00;0,00;1h;-2.989,00 +WINJ26;19/01/2026 14:45:00;19/01/2026 15:55:00;1h10min;1;1;C;169.665,00;169.650,00;192.295,00;Sim;-3,00;-15,00;298;-3,00;-15,00;0,00;0,00;0,00;45min;-2.992,00 +WINJ26;19/01/2026 17:05:00;19/01/2026 17:15:00;10min;1;1;C;169.650,00;169.655,00;192.295,00;Sim;1,00;5,00;299;1,00;5,00;0,00;0,00;0,00;2h20min;-2.991,00 +WINJ26;19/01/2026 18:00:00;20/01/2026 09:05:00;15h5min;1;1;V;169.245,00;169.780,00;192.295,00;Sim;107,00;535,00;300;107,00;535,00;0,00;0,00;0,00;55min;-2.884,00 +WINJ26;20/01/2026 09:35:00;20/01/2026 10:00:00;25min;1;1;C;168.370,00;169.010,00;192.295,00;Sim;128,00;640,00;301;128,00;640,00;0,00;0,00;0,00;15h35min;-2.756,00 +WINJ26;20/01/2026 10:05:00;20/01/2026 10:10:00;5min;1;1;V;168.835,00;168.775,00;192.295,00;No;-12,00;-60,00;302;-12,00;-60,00;0,00;0,00;0,00;30min;-2.768,00 +WINJ26;20/01/2026 10:30:00;20/01/2026 10:35:00;5min;1;1;V;168.385,00;168.895,00;192.295,00;Sim;102,00;510,00;303;102,00;510,00;0,00;0,00;0,00;25min;-2.666,00 +WINJ26;20/01/2026 12:10:00;20/01/2026 13:20:00;1h10min;1;1;V;171.235,00;170.270,00;192.295,00;Sim;-193,00;-965,00;304;-193,00;-965,00;0,00;0,00;0,00;1h40min;-2.859,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:25:00;40min;1;1;V;171.100,00;171.135,00;192.295,00;Sim;7,00;35,00;305;7,00;35,00;0,00;0,00;0,00;1h35min;-2.852,00 +WINJ26;20/01/2026 15:20:00;20/01/2026 15:40:00;20min;1;1;C;170.875,00;170.940,00;192.295,00;No;13,00;65,00;306;13,00;65,00;0,00;0,00;0,00;1h35min;-2.839,00 +WINJ26;20/01/2026 16:30:00;20/01/2026 16:40:00;10min;1;1;C;170.720,00;170.725,00;192.295,00;Sim;1,00;5,00;307;1,00;5,00;0,00;0,00;0,00;1h10min;-2.838,00 +WINJ26;20/01/2026 17:00:00;20/01/2026 17:05:00;5min;1;1;V;170.780,00;170.795,00;192.295,00;No;3,00;15,00;308;3,00;15,00;0,00;0,00;0,00;30min;-2.835,00 +WINJ26;20/01/2026 18:10:00;21/01/2026 09:00:00;14h50min;1;1;V;170.910,00;171.060,00;192.295,00;Sim;30,00;150,00;309;30,00;150,00;0,00;0,00;0,00;1h10min;-2.805,00 +WINJ26;21/01/2026 10:45:00;21/01/2026 11:55:00;1h10min;1;1;V;174.575,00;173.520,00;192.295,00;Sim;-211,00;-1.055,00;310;-211,00;-1.055,00;0,00;0,00;0,00;16h35min;-3.016,00 +WINJ26;21/01/2026 12:50:00;21/01/2026 12:55:00;5min;1;1;C;174.465,00;174.610,00;192.295,00;No;29,00;145,00;311;29,00;145,00;0,00;0,00;0,00;2h5min;-2.987,00 +WINJ26;21/01/2026 14:50:00;21/01/2026 14:55:00;5min;1;1;C;174.955,00;175.025,00;192.295,00;No;14,00;70,00;312;14,00;70,00;0,00;0,00;0,00;2h;-2.973,00 +WINJ26;21/01/2026 16:10:00;21/01/2026 17:20:00;1h10min;1;1;V;176.520,00;175.750,00;192.295,00;Sim;-154,00;-770,00;313;-154,00;-770,00;0,00;0,00;0,00;1h20min;-3.127,00 +WINJ26;21/01/2026 18:05:00;22/01/2026 09:50:00;15h45min;1;1;V;177.905,00;177.020,00;192.295,00;Sim;-177,00;-885,00;314;-177,00;-885,00;0,00;0,00;0,00;1h55min;-3.304,00 +WINJ26;22/01/2026 10:20:00;22/01/2026 10:25:00;5min;1;1;C;178.270,00;178.235,00;192.295,00;No;-7,00;-35,00;315;-7,00;-35,00;0,00;0,00;0,00;16h15min;-3.311,00 +WINJ26;22/01/2026 10:30:00;22/01/2026 10:35:00;5min;1;1;C;178.030,00;177.920,00;192.295,00;Sim;-22,00;-110,00;316;-22,00;-110,00;0,00;0,00;0,00;10min;-3.333,00 +WINJ26;22/01/2026 10:45:00;22/01/2026 10:50:00;5min;1;1;C;178.100,00;178.070,00;192.295,00;No;-6,00;-30,00;317;-6,00;-30,00;0,00;0,00;0,00;15min;-3.339,00 +WINJ26;22/01/2026 11:05:00;22/01/2026 11:10:00;5min;1;1;C;178.550,00;178.660,00;192.295,00;No;22,00;110,00;318;22,00;110,00;0,00;0,00;0,00;20min;-3.317,00 +WINJ26;22/01/2026 11:40:00;22/01/2026 12:50:00;1h10min;1;1;V;181.820,00;179.605,00;192.295,00;Sim;-443,00;-2.215,00;319;-443,00;-2.215,00;0,00;0,00;0,00;35min;-3.760,00 +WINJ26;22/01/2026 13:20:00;22/01/2026 13:25:00;5min;1;1;C;182.270,00;182.095,00;192.295,00;No;-35,00;-175,00;320;-35,00;-175,00;0,00;0,00;0,00;1h40min;-3.795,00 +WINJ26;22/01/2026 14:05:00;22/01/2026 14:10:00;5min;1;1;C;182.080,00;181.850,00;192.295,00;Sim;-46,00;-230,00;321;-46,00;-230,00;0,00;0,00;0,00;45min;-3.841,00 +WINJ26;22/01/2026 14:30:00;22/01/2026 14:35:00;5min;1;1;C;181.570,00;181.925,00;192.295,00;Sim;71,00;355,00;322;71,00;355,00;0,00;0,00;0,00;25min;-3.770,00 +WINJ26;22/01/2026 14:55:00;22/01/2026 15:05:00;10min;1;1;C;181.835,00;181.800,00;192.295,00;No;-7,00;-35,00;323;-7,00;-35,00;0,00;0,00;0,00;25min;-3.777,00 +WINJ26;22/01/2026 16:30:00;22/01/2026 16:35:00;5min;1;1;C;181.150,00;181.150,00;192.295,00;Sim;0;0;324;0;0;0,00;0,00;0,00;1h35min;-3.777,00 +WINJ26;22/01/2026 17:30:00;22/01/2026 17:35:00;5min;1;1;C;180.635,00;180.960,00;192.295,00;Sim;65,00;325,00;325;65,00;325,00;0,00;0,00;0,00;1h;-3.712,00 +WINJ26;22/01/2026 17:40:00;22/01/2026 17:55:00;15min;1;1;V;180.930,00;180.805,00;192.295,00;Sim;-25,00;-125,00;326;-25,00;-125,00;0,00;0,00;0,00;10min;-3.737,00 +WINJ26;23/01/2026 09:00:00;23/01/2026 10:05:00;1h5min;1;1;V;181.300,00;182.000,00;192.295,00;Sim;140,00;700,00;327;140,00;700,00;0,00;0,00;0,00;15h20min;-3.597,00 +WINJ26;23/01/2026 11:30:00;23/01/2026 12:10:00;40min;1;1;C;181.255,00;181.495,00;192.295,00;No;48,00;240,00;328;48,00;240,00;0,00;0,00;0,00;2h30min;-3.549,00 +WINJ26;23/01/2026 12:40:00;23/01/2026 13:50:00;1h10min;1;1;V;182.350,00;182.315,00;192.295,00;Sim;-7,00;-35,00;329;-7,00;-35,00;0,00;0,00;0,00;1h10min;-3.556,00 +WINJ26;23/01/2026 14:20:00;23/01/2026 14:25:00;5min;1;1;C;182.100,00;182.365,00;192.295,00;No;53,00;265,00;330;53,00;265,00;0,00;0,00;0,00;1h40min;-3.503,00 +WINJ26;23/01/2026 15:25:00;23/01/2026 15:30:00;5min;1;1;C;182.200,00;182.325,00;192.295,00;No;25,00;125,00;331;25,00;125,00;0,00;0,00;0,00;1h5min;-3.478,00 +WINJ26;23/01/2026 16:50:00;23/01/2026 17:55:00;1h5min;1;1;V;183.955,00;183.250,00;192.295,00;Sim;-141,00;-705,00;332;-141,00;-705,00;0,00;0,00;0,00;1h25min;-3.619,00 +WINJ26;26/01/2026 09:15:00;26/01/2026 09:35:00;20min;1;1;V;184.840,00;185.775,00;192.295,00;Sim;187,00;935,00;333;187,00;935,00;0,00;0,00;0,00;2d16h;-3.432,00 +WINJ26;26/01/2026 09:45:00;26/01/2026 10:00:00;15min;1;1;C;185.010,00;184.825,00;192.295,00;No;-37,00;-185,00;334;-37,00;-185,00;0,00;0,00;0,00;30min;-3.469,00 +WINJ26;26/01/2026 11:35:00;26/01/2026 11:40:00;5min;1;1;C;183.955,00;183.955,00;192.295,00;Sim;0;0;335;0;0;0,00;0,00;0,00;1h50min;-3.469,00 +WINJ26;26/01/2026 14:10:00;26/01/2026 15:00:00;50min;1;1;V;183.500,00;183.525,00;192.295,00;No;5,00;25,00;336;5,00;25,00;0,00;0,00;0,00;2h35min;-3.464,00 +WINJ26;26/01/2026 15:40:00;26/01/2026 15:45:00;5min;1;1;C;183.550,00;183.465,00;192.295,00;Sim;-17,00;-85,00;337;-17,00;-85,00;0,00;0,00;0,00;1h30min;-3.481,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:30:00;5min;1;1;C;183.140,00;183.430,00;192.295,00;Sim;58,00;290,00;338;58,00;290,00;0,00;0,00;0,00;45min;-3.423,00 +WINJ26;26/01/2026 17:20:00;26/01/2026 18:10:00;50min;1;1;V;183.605,00;183.665,00;192.295,00;Sim;12,00;60,00;339;12,00;60,00;0,00;0,00;0,00;55min;-3.411,00 +WINJ26;27/01/2026 09:05:00;27/01/2026 09:10:00;5min;1;1;C;185.380,00;185.260,00;192.295,00;No;-24,00;-120,00;340;-24,00;-120,00;0,00;0,00;0,00;15h45min;-3.435,00 +WINJ26;27/01/2026 10:00:00;27/01/2026 11:10:00;1h10min;1;1;V;187.150,00;185.950,00;192.295,00;Sim;-240,00;-1.200,00;341;-240,00;-1.200,00;0,00;0,00;0,00;55min;-3.675,00 +WINJ26;27/01/2026 11:30:00;27/01/2026 12:40:00;1h10min;1;1;V;187.600,00;187.470,00;192.295,00;Sim;-26,00;-130,00;342;-26,00;-130,00;0,00;0,00;0,00;1h30min;-3.701,00 +WINJ26;27/01/2026 13:20:00;27/01/2026 13:25:00;5min;1;1;C;187.900,00;187.700,00;192.295,00;No;-40,00;-200,00;343;-40,00;-200,00;0,00;0,00;0,00;1h50min;-3.741,00 +WINJ26;27/01/2026 13:30:00;27/01/2026 13:35:00;5min;1;1;C;187.970,00;188.080,00;192.295,00;No;22,00;110,00;344;22,00;110,00;0,00;0,00;0,00;10min;-3.719,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.295,00;Sim;-22,00;-110,00;345;-22,00;-110,00;0,00;0,00;0,00;1h50min;-3.741,00 +WINJ26;27/01/2026 17:25:00;27/01/2026 17:30:00;5min;1;1;V;187.105,00;187.305,00;192.295,00;No;40,00;200,00;346;40,00;200,00;0,00;0,00;0,00;2h5min;-3.701,00 +WINJ26;27/01/2026 18:20:00;28/01/2026 09:05:00;14h45min;1;1;C;186.500,00;187.425,00;192.295,00;Sim;185,00;925,00;347;185,00;925,00;0,00;0,00;0,00;55min;-3.516,00 +WINJ26;28/01/2026 09:25:00;28/01/2026 10:35:00;1h10min;1;1;V;189.270,00;187.420,00;192.295,00;Sim;-370,00;-1.850,00;348;-370,00;-1.850,00;0,00;0,00;0,00;15h5min;-3.886,00 +WINJ26;28/01/2026 10:55:00;28/01/2026 12:05:00;1h10min;1;1;V;189.685,00;189.085,00;192.295,00;Sim;-120,00;-600,00;349;-120,00;-600,00;0,00;0,00;0,00;1h30min;-4.006,00 +WINJ26;28/01/2026 12:50:00;28/01/2026 13:05:00;15min;1;1;C;188.800,00;188.985,00;192.295,00;No;37,00;185,00;350;37,00;185,00;0,00;0,00;0,00;1h55min;-3.969,00 +WINJ26;28/01/2026 13:25:00;28/01/2026 13:30:00;5min;1;1;C;188.845,00;188.930,00;192.295,00;No;17,00;85,00;351;17,00;85,00;0,00;0,00;0,00;35min;-3.952,00 +WINJ26;28/01/2026 13:40:00;28/01/2026 13:45:00;5min;1;1;C;188.805,00;188.880,00;192.295,00;Sim;15,00;75,00;352;15,00;75,00;0,00;0,00;0,00;15min;-3.937,00 +WINJ26;28/01/2026 14:00:00;28/01/2026 14:05:00;5min;1;1;C;188.675,00;188.840,00;192.295,00;Sim;33,00;165,00;353;33,00;165,00;0,00;0,00;0,00;20min;-3.904,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.295,00;Sim;47,00;235,00;354;47,00;235,00;0,00;0,00;0,00;2h10min;-3.857,00 +WINJ26;28/01/2026 16:30:00;28/01/2026 16:35:00;5min;1;1;V;188.095,00;188.035,00;192.295,00;No;-12,00;-60,00;355;-12,00;-60,00;0,00;0,00;0,00;20min;-3.869,00 +WINJ26;28/01/2026 16:45:00;28/01/2026 17:55:00;1h10min;1;1;V;189.620,00;188.200,00;192.295,00;Sim;-284,00;-1.420,00;356;-284,00;-1.420,00;0,00;0,00;0,00;15min;-4.153,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.295,00;Sim;28,00;140,00;357;28,00;140,00;0,00;0,00;0,00;16h45min;-4.125,00 +WINJ26;29/01/2026 11:45:00;29/01/2026 12:55:00;1h10min;1;1;C;191.235,00;186.585,00;192.295,00;No;-930,00;-4.650,00;358;-930,00;-4.650,00;0,00;0,00;0,00;2h15min;-5.055,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 14:10:00;55min;1;1;C;187.605,00;187.775,00;192.295,00;Sim;34,00;170,00;359;34,00;170,00;0,00;0,00;0,00;1h30min;-5.021,00 +WINJ26;29/01/2026 14:55:00;29/01/2026 15:00:00;5min;1;1;V;187.860,00;187.850,00;192.295,00;No;-2,00;-10,00;360;-2,00;-10,00;0,00;0,00;0,00;1h40min;-5.023,00 +WINJ26;29/01/2026 15:25:00;29/01/2026 15:35:00;10min;1;1;V;188.000,00;187.970,00;192.295,00;Sim;-6,00;-30,00;361;-6,00;-30,00;0,00;0,00;0,00;30min;-5.029,00 +WINJ26;29/01/2026 16:20:00;29/01/2026 17:00:00;40min;1;1;V;187.975,00;188.235,00;192.295,00;Sim;52,00;260,00;362;52,00;260,00;0,00;0,00;0,00;55min;-4.977,00 +WINJ26;29/01/2026 18:15:00;30/01/2026 10:00:00;15h45min;1;1;C;187.970,00;187.185,00;192.295,00;No;-157,00;-785,00;363;-157,00;-785,00;0,00;0,00;0,00;1h55min;-5.134,00 +WINJ26;30/01/2026 10:40:00;30/01/2026 10:45:00;5min;1;1;V;187.580,00;187.750,00;192.295,00;No;34,00;170,00;364;34,00;170,00;0,00;0,00;0,00;16h25min;-5.100,00 +WINJ26;30/01/2026 11:40:00;30/01/2026 12:00:00;20min;1;1;V;187.670,00;187.400,00;192.295,00;No;-54,00;-270,00;365;-54,00;-270,00;0,00;0,00;0,00;1h;-5.154,00 +WINJ26;30/01/2026 12:30:00;30/01/2026 13:00:00;30min;1;1;V;187.775,00;187.650,00;192.295,00;Sim;-25,00;-125,00;366;-25,00;-125,00;0,00;0,00;0,00;50min;-5.179,00 +WINJ26;30/01/2026 13:30:00;30/01/2026 14:40:00;1h10min;1;1;C;187.530,00;186.525,00;192.295,00;Sim;-201,00;-1.005,00;367;-201,00;-1.005,00;0,00;0,00;0,00;1h;-5.380,00 +WINJ26;30/01/2026 15:45:00;30/01/2026 15:55:00;10min;1;1;C;185.235,00;185.930,00;192.295,00;Sim;139,00;695,00;368;139,00;695,00;0,00;0,00;0,00;2h15min;-5.241,00 +WINJ26;30/01/2026 16:35:00;30/01/2026 16:45:00;10min;1;1;V;186.115,00;186.150,00;192.295,00;No;7,00;35,00;369;7,00;35,00;0,00;0,00;0,00;50min;-5.234,00 +WINJ26;30/01/2026 17:00:00;30/01/2026 17:05:00;5min;1;1;V;186.090,00;186.250,00;192.295,00;Sim;32,00;160,00;370;32,00;160,00;0,00;0,00;0,00;25min;-5.202,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:35:00;15min;1;1;C;185.670,00;185.980,00;192.295,00;No;62,00;310,00;371;62,00;310,00;0,00;0,00;0,00;20min;-5.140,00 +WINJ26;30/01/2026 17:55:00;02/02/2026 09:05:00;2d15h;1;1;V;185.720,00;185.860,00;192.295,00;No;28,00;140,00;372;28,00;140,00;0,00;0,00;0,00;35min;-5.112,00 +WINJ26;02/02/2026 10:05:00;02/02/2026 10:10:00;5min;1;1;V;186.320,00;186.350,00;192.295,00;Sim;6,00;30,00;373;6,00;30,00;0,00;0,00;0,00;2d16h;-5.106,00 +WINJ26;02/02/2026 11:10:00;02/02/2026 11:20:00;10min;1;1;V;186.650,00;187.205,00;192.295,00;Sim;111,00;555,00;374;111,00;555,00;0,00;0,00;0,00;1h5min;-4.995,00 +WINJ26;02/02/2026 11:35:00;02/02/2026 11:40:00;5min;1;1;C;186.785,00;187.030,00;192.295,00;No;49,00;245,00;375;49,00;245,00;0,00;0,00;0,00;25min;-4.946,00 +WINJ26;02/02/2026 12:10:00;02/02/2026 12:20:00;10min;1;1;C;186.810,00;186.980,00;192.295,00;No;34,00;170,00;376;34,00;170,00;0,00;0,00;0,00;35min;-4.912,00 +WINJ26;02/02/2026 13:10:00;02/02/2026 13:15:00;5min;1;1;C;186.540,00;186.715,00;192.295,00;Sim;35,00;175,00;377;35,00;175,00;0,00;0,00;0,00;1h;-4.877,00 +WINJ26;02/02/2026 14:00:00;02/02/2026 14:40:00;40min;1;1;V;187.005,00;187.145,00;192.295,00;No;28,00;140,00;378;28,00;140,00;0,00;0,00;0,00;50min;-4.849,00 +WINJ26;02/02/2026 15:25:00;02/02/2026 15:50:00;25min;1;1;C;186.795,00;186.805,00;192.295,00;No;2,00;10,00;379;2,00;10,00;0,00;0,00;0,00;1h25min;-4.847,00 +WINJ26;02/02/2026 16:15:00;02/02/2026 17:10:00;55min;1;1;C;186.550,00;186.725,00;192.295,00;Sim;35,00;175,00;380;35,00;175,00;0,00;0,00;0,00;50min;-4.812,00 +WINJ26;02/02/2026 18:20:00;03/02/2026 10:05:00;15h45min;1;1;V;189.730,00;187.500,00;192.295,00;Sim;-446,00;-2.230,00;381;-446,00;-2.230,00;0,00;0,00;0,00;2h5min;-5.258,00 +WINJ26;03/02/2026 11:30:00;03/02/2026 12:15:00;45min;1;1;V;190.975,00;191.180,00;192.295,00;Sim;41,00;205,00;382;41,00;205,00;0,00;0,00;0,00;17h10min;-5.217,00 +WINJ26;03/02/2026 13:40:00;03/02/2026 14:50:00;1h10min;1;1;C;191.070,00;189.930,00;192.295,00;No;-228,00;-1.140,00;383;-228,00;-1.140,00;0,00;0,00;0,00;2h10min;-5.445,00 +WINJ26;03/02/2026 15:05:00;03/02/2026 16:15:00;1h10min;1;1;C;190.000,00;189.965,00;192.295,00;Sim;-7,00;-35,00;384;-7,00;-35,00;0,00;0,00;0,00;1h25min;-5.452,00 +WINJ26;03/02/2026 16:55:00;03/02/2026 17:00:00;5min;1;1;V;189.800,00;189.635,00;192.295,00;No;-33,00;-165,00;385;-33,00;-165,00;0,00;0,00;0,00;1h50min;-5.485,00 +WINJ26;03/02/2026 17:25:00;03/02/2026 18:15:00;50min;1;1;V;190.195,00;189.955,00;192.295,00;Sim;-48,00;-240,00;386;-48,00;-240,00;0,00;0,00;0,00;30min;-5.533,00 +WINJ26;04/02/2026 09:15:00;04/02/2026 10:25:00;1h10min;1;1;C;189.705,00;189.280,00;192.295,00;Sim;-85,00;-425,00;387;-85,00;-425,00;0,00;0,00;0,00;15h50min;-5.618,00 +WINJ26;04/02/2026 11:30:00;04/02/2026 12:40:00;1h10min;1;1;C;188.270,00;187.830,00;192.295,00;Sim;-88,00;-440,00;388;-88,00;-440,00;0,00;0,00;0,00;2h15min;-5.706,00 +WINJ26;04/02/2026 14:00:00;04/02/2026 15:10:00;1h10min;1;1;C;186.360,00;185.250,00;192.295,00;Sim;-222,00;-1.110,00;389;-222,00;-1.110,00;0,00;0,00;0,00;2h30min;-5.928,00 +WINJ26;04/02/2026 15:35:00;04/02/2026 15:40:00;5min;1;1;V;185.330,00;185.325,00;192.295,00;No;-1,00;-5,00;390;-1,00;-5,00;0,00;0,00;0,00;1h35min;-5.929,00 +WINJ26;04/02/2026 16:30:00;04/02/2026 16:35:00;5min;1;1;V;184.995,00;184.855,00;192.295,00;No;-28,00;-140,00;391;-28,00;-140,00;0,00;0,00;0,00;55min;-5.957,00 +WINJ26;04/02/2026 17:35:00;05/02/2026 09:20:00;15h45min;1;1;V;186.200,00;185.670,00;192.295,00;Sim;-106,00;-530,00;392;-106,00;-530,00;0,00;0,00;0,00;1h5min;-6.063,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.295,00;Sim;36,00;180,00;393;36,00;180,00;0,00;0,00;0,00;16h5min;-6.027,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 11:35:00;1h5min;1;1;V;187.115,00;186.885,00;192.295,00;Sim;-46,00;-230,00;394;-46,00;-230,00;0,00;0,00;0,00;50min;-6.073,00 +WINJ26;05/02/2026 11:40:00;05/02/2026 11:45:00;5min;1;1;C;187.890,00;188.290,00;192.295,00;No;80,00;400,00;395;80,00;400,00;0,00;0,00;0,00;1h10min;-5.993,00 +WINJ26;05/02/2026 12:45:00;05/02/2026 12:55:00;10min;1;1;C;187.085,00;187.045,00;192.295,00;Sim;-8,00;-40,00;396;-8,00;-40,00;0,00;0,00;0,00;1h5min;-6.001,00 +WINJ26;05/02/2026 14:20:00;05/02/2026 14:25:00;5min;1;1;C;187.260,00;187.545,00;192.295,00;No;57,00;285,00;397;57,00;285,00;0,00;0,00;0,00;1h35min;-5.944,00 +WINJ26;05/02/2026 14:35:00;05/02/2026 15:45:00;1h10min;1;1;V;187.520,00;187.525,00;192.295,00;Sim;1,00;5,00;398;1,00;5,00;0,00;0,00;0,00;15min;-5.943,00 +WINJ26;05/02/2026 16:15:00;05/02/2026 16:35:00;20min;1;1;V;187.570,00;187.630,00;192.295,00;Sim;12,00;60,00;399;12,00;60,00;0,00;0,00;0,00;1h40min;-5.931,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 18:10:00;1h10min;1;1;C;187.375,00;186.610,00;192.295,00;No;-153,00;-765,00;400;-153,00;-765,00;0,00;0,00;0,00;45min;-6.084,00 +WINJ26;06/02/2026 09:15:00;06/02/2026 09:20:00;5min;1;1;V;186.900,00;187.460,00;192.295,00;No;112,00;560,00;401;112,00;560,00;0,00;0,00;0,00;16h15min;-5.972,00 +WINJ26;06/02/2026 11:40:00;06/02/2026 11:45:00;5min;1;1;V;186.350,00;186.500,00;192.295,00;No;30,00;150,00;402;30,00;150,00;0,00;0,00;0,00;2h25min;-5.942,00 +WINJ26;06/02/2026 12:10:00;06/02/2026 12:20:00;10min;1;1;C;186.085,00;186.390,00;192.295,00;Sim;61,00;305,00;403;61,00;305,00;0,00;0,00;0,00;30min;-5.881,00 +WINJ26;06/02/2026 14:05:00;06/02/2026 14:40:00;35min;1;1;V;186.835,00;186.980,00;192.295,00;Sim;29,00;145,00;404;29,00;145,00;0,00;0,00;0,00;1h55min;-5.852,00 +WINJ26;06/02/2026 15:50:00;06/02/2026 16:10:00;20min;1;1;C;186.450,00;186.590,00;192.295,00;No;28,00;140,00;405;28,00;140,00;0,00;0,00;0,00;1h45min;-5.824,00 +WINJ26;06/02/2026 17:40:00;06/02/2026 18:15:00;35min;1;1;V;187.040,00;187.165,00;192.295,00;Sim;25,00;125,00;406;25,00;125,00;0,00;0,00;0,00;1h50min;-5.799,00 +WINJ26;09/02/2026 09:05:00;09/02/2026 09:55:00;50min;1;1;V;187.710,00;187.560,00;192.295,00;Sim;-30,00;-150,00;407;-30,00;-150,00;0,00;0,00;0,00;2d15h;-5.829,00 +WINJ26;09/02/2026 10:45:00;09/02/2026 10:50:00;5min;1;1;C;187.740,00;187.730,00;192.295,00;No;-2,00;-10,00;408;-2,00;-10,00;0,00;0,00;0,00;1h40min;-5.831,00 +WINJ26;09/02/2026 11:10:00;09/02/2026 11:25:00;15min;1;1;C;187.725,00;187.720,00;192.295,00;Sim;-1,00;-5,00;409;-1,00;-5,00;0,00;0,00;0,00;25min;-5.832,00 +WINJ26;09/02/2026 11:30:00;09/02/2026 11:40:00;10min;1;1;C;187.770,00;188.180,00;192.295,00;No;82,00;410,00;410;82,00;410,00;0,00;0,00;0,00;20min;-5.750,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:35:00;45min;1;1;V;188.110,00;188.185,00;192.295,00;Sim;15,00;75,00;411;15,00;75,00;0,00;0,00;0,00;20min;-5.735,00 +WINJ26;09/02/2026 12:40:00;09/02/2026 13:15:00;35min;1;1;C;188.215,00;188.095,00;192.295,00;No;-24,00;-120,00;412;-24,00;-120,00;0,00;0,00;0,00;50min;-5.759,00 +WINJ26;09/02/2026 14:45:00;09/02/2026 15:55:00;1h10min;1;1;V;190.050,00;189.570,00;192.295,00;Sim;-96,00;-480,00;413;-96,00;-480,00;0,00;0,00;0,00;2h5min;-5.855,00 +WINJ26;09/02/2026 16:40:00;09/02/2026 17:50:00;1h10min;1;1;V;190.570,00;190.405,00;192.295,00;Sim;-33,00;-165,00;414;-33,00;-165,00;0,00;0,00;0,00;1h55min;-5.888,00 +WINJ26;10/02/2026 09:25:00;10/02/2026 10:05:00;40min;1;1;C;190.145,00;189.915,00;192.295,00;No;-46,00;-230,00;415;-46,00;-230,00;0,00;0,00;0,00;16h45min;-5.934,00 +WINJ26;10/02/2026 10:55:00;10/02/2026 11:10:00;15min;1;1;C;189.500,00;189.910,00;192.295,00;Sim;82,00;410,00;416;82,00;410,00;0,00;0,00;0,00;1h30min;-5.852,00 +WINJ26;10/02/2026 13:00:00;10/02/2026 13:25:00;25min;1;1;V;190.585,00;190.815,00;192.295,00;Sim;46,00;230,00;417;46,00;230,00;0,00;0,00;0,00;2h5min;-5.806,00 +WINJ26;10/02/2026 13:55:00;10/02/2026 15:05:00;1h10min;1;1;C;190.420,00;190.020,00;192.295,00;No;-80,00;-400,00;418;-80,00;-400,00;0,00;0,00;0,00;55min;-5.886,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.295,00;Sim;41,00;205,00;419;41,00;205,00;0,00;0,00;0,00;2h15min;-5.845,00 +WINJ26;10/02/2026 17:40:00;10/02/2026 17:45:00;5min;1;1;V;190.205,00;190.420,00;192.295,00;No;43,00;215,00;420;43,00;215,00;0,00;0,00;0,00;1h30min;-5.802,00 +WINJ26;11/02/2026 10:10:00;11/02/2026 11:20:00;1h10min;1;1;V;193.285,00;191.995,00;192.295,00;Sim;-258,00;-1.290,00;421;-258,00;-1.290,00;0,00;0,00;0,00;16h30min;-6.060,00 +WINJ26;11/02/2026 11:35:00;11/02/2026 12:05:00;30min;1;1;V;192.860,00;193.190,00;192.295,00;Sim;66,00;330,00;422;66,00;330,00;0,00;0,00;0,00;1h25min;-5.994,00 +WINJ26;11/02/2026 12:45:00;11/02/2026 12:50:00;5min;1;1;C;192.755,00;192.960,00;192.295,00;No;41,00;205,00;423;41,00;205,00;0,00;0,00;0,00;1h10min;-5.953,00 +WINJ26;11/02/2026 14:05:00;11/02/2026 15:05:00;1h;1;1;V;194.340,00;194.550,00;192.295,00;Sim;42,00;210,00;424;42,00;210,00;0,00;0,00;0,00;1h20min;-5.911,00 +WINJ26;11/02/2026 16:05:00;11/02/2026 16:10:00;5min;1;1;C;193.940,00;194.050,00;192.295,00;No;22,00;110,00;425;22,00;110,00;0,00;0,00;0,00;2h;-5.889,00 +WINJ26;11/02/2026 17:05:00;11/02/2026 17:35:00;30min;1;1;C;194.065,00;194.170,00;192.295,00;No;21,00;105,00;426;21,00;105,00;0,00;0,00;0,00;1h;-5.868,00 +WINJ26;12/02/2026 09:00:00;12/02/2026 10:10:00;1h10min;1;1;C;194.625,00;193.005,00;192.295,00;No;-324,00;-1.620,00;427;-324,00;-1.620,00;0,00;0,00;0,00;15h55min;-6.192,00 +WINJ26;12/02/2026 10:30:00;12/02/2026 10:45:00;15min;1;1;V;193.210,00;193.410,00;192.295,00;No;40,00;200,00;428;40,00;200,00;0,00;0,00;0,00;1h30min;-6.152,00 +WINJ26;12/02/2026 11:35:00;12/02/2026 11:45:00;10min;1;1;V;193.305,00;193.475,00;192.295,00;Sim;34,00;170,00;429;34,00;170,00;0,00;0,00;0,00;1h5min;-6.118,00 +WINJ26;12/02/2026 12:25:00;12/02/2026 12:35:00;10min;1;1;V;193.515,00;193.590,00;192.295,00;Sim;15,00;75,00;430;15,00;75,00;0,00;0,00;0,00;50min;-6.103,00 +WINJ26;12/02/2026 13:00:00;12/02/2026 13:05:00;5min;1;1;V;193.485,00;193.440,00;192.295,00;No;-9,00;-45,00;431;-9,00;-45,00;0,00;0,00;0,00;35min;-6.112,00 +WINJ26;12/02/2026 13:40:00;12/02/2026 14:25:00;45min;1;1;C;192.820,00;192.730,00;192.295,00;Sim;-18,00;-90,00;432;-18,00;-90,00;0,00;0,00;0,00;40min;-6.130,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.295,00;Sim;54,00;270,00;433;54,00;270,00;0,00;0,00;0,00;2h5min;-6.076,00 +WINJ26;12/02/2026 16:30:00;12/02/2026 16:45:00;15min;1;1;V;191.855,00;191.710,00;192.295,00;No;-29,00;-145,00;434;-29,00;-145,00;0,00;0,00;0,00;45min;-6.105,00 +WINJ26;12/02/2026 17:15:00;12/02/2026 17:30:00;15min;1;1;V;191.960,00;191.975,00;192.295,00;Sim;3,00;15,00;435;3,00;15,00;0,00;0,00;0,00;45min;-6.102,00 +WINJ26;12/02/2026 17:50:00;12/02/2026 18:00:00;10min;1;1;V;191.970,00;192.015,00;192.295,00;Sim;9,00;45,00;436;9,00;45,00;0,00;0,00;0,00;35min;-6.093,00 +WINJ26;13/02/2026 09:45:00;13/02/2026 10:55:00;1h10min;1;1;C;189.480,00;189.245,00;192.295,00;Sim;-47,00;-235,00;437;-47,00;-235,00;0,00;0,00;0,00;15h55min;-6.140,00 +WINJ26;13/02/2026 11:45:00;13/02/2026 12:30:00;45min;1;1;C;188.385,00;188.875,00;192.295,00;Sim;98,00;490,00;438;98,00;490,00;0,00;0,00;0,00;2h;-6.042,00 +WINJ26;13/02/2026 13:15:00;13/02/2026 14:25:00;1h10min;1;1;V;189.470,00;188.695,00;192.295,00;No;-155,00;-775,00;439;-155,00;-775,00;0,00;0,00;0,00;1h30min;-6.197,00 +WINJ26;13/02/2026 15:05:00;13/02/2026 16:15:00;1h10min;1;1;V;189.945,00;189.870,00;192.295,00;Sim;-15,00;-75,00;440;-15,00;-75,00;0,00;0,00;0,00;1h50min;-6.212,00 +WINJ26;13/02/2026 16:30:00;13/02/2026 16:35:00;5min;1;1;C;189.750,00;190.220,00;192.295,00;No;94,00;470,00;441;94,00;470,00;0,00;0,00;0,00;1h25min;-6.118,00 +WINJ26;18/02/2026 13:10:00;18/02/2026 13:25:00;15min;1;1;V;190.280,00;190.960,00;192.295,00;Sim;136,00;680,00;442;136,00;680,00;0,00;0,00;0,00;4d20h;-5.982,00 +WINJ26;18/02/2026 13:35:00;18/02/2026 14:20:00;45min;1;1;C;190.450,00;190.220,00;192.295,00;No;-46,00;-230,00;443;-46,00;-230,00;0,00;0,00;0,00;25min;-6.028,00 +WINJ26;18/02/2026 17:00:00;18/02/2026 17:05:00;5min;1;1;C;189.070,00;189.220,00;192.295,00;Sim;30,00;150,00;444;30,00;150,00;0,00;0,00;0,00;3h25min;-5.998,00 +WINJ26;18/02/2026 17:15:00;18/02/2026 17:20:00;5min;1;1;V;188.995,00;189.115,00;192.295,00;No;24,00;120,00;445;24,00;120,00;0,00;0,00;0,00;15min;-5.974,00 +WINJ26;19/02/2026 09:40:00;19/02/2026 10:05:00;25min;1;1;V;189.915,00;190.075,00;192.295,00;Sim;32,00;160,00;446;32,00;160,00;0,00;0,00;0,00;16h25min;-5.942,00 +WINJ26;19/02/2026 11:50:00;19/02/2026 11:55:00;5min;1;1;C;190.200,00;190.240,00;192.295,00;No;8,00;40,00;447;8,00;40,00;0,00;0,00;0,00;2h10min;-5.934,00 +WINJ26;19/02/2026 12:55:00;19/02/2026 14:05:00;1h10min;1;1;V;191.955,00;191.845,00;192.295,00;Sim;-22,00;-110,00;448;-22,00;-110,00;0,00;0,00;0,00;1h5min;-5.956,00 +WINJ26;19/02/2026 14:20:00;19/02/2026 14:25:00;5min;1;1;C;192.370,00;192.325,00;192.295,00;No;-9,00;-45,00;449;-9,00;-45,00;0,00;0,00;0,00;1h25min;-5.965,00 +WINJ26;19/02/2026 15:15:00;19/02/2026 15:20:00;5min;1;1;C;192.230,00;192.150,00;192.295,00;Sim;-16,00;-80,00;450;-16,00;-80,00;0,00;0,00;0,00;55min;-5.981,00 +WINJ26;19/02/2026 15:55:00;19/02/2026 16:35:00;40min;1;1;C;192.060,00;191.975,00;192.295,00;Sim;-17,00;-85,00;451;-17,00;-85,00;0,00;0,00;0,00;40min;-5.998,00 +WINJ26;19/02/2026 17:05:00;19/02/2026 17:35:00;30min;1;1;C;191.805,00;192.035,00;192.295,00;Sim;46,00;230,00;452;46,00;230,00;0,00;0,00;0,00;1h10min;-5.952,00 +WINJ26;19/02/2026 18:20:00;20/02/2026 09:05:00;14h45min;1;1;V;191.965,00;192.165,00;192.295,00;Sim;40,00;200,00;453;40,00;200,00;0,00;0,00;0,00;1h15min;-5.912,00 +WINJ26;20/02/2026 10:20:00;20/02/2026 11:20:00;1h;1;1;C;190.810,00;190.745,00;192.295,00;Sim;-13,00;-65,00;454;-13,00;-65,00;0,00;0,00;0,00;16h;-5.925,00 +WINJ26;20/02/2026 11:35:00;20/02/2026 12:45:00;1h10min;1;1;V;192.195,00;191.035,00;192.295,00;No;-232,00;-1.160,00;455;-232,00;-1.160,00;0,00;0,00;0,00;1h15min;-6.157,00 +WINJ26;20/02/2026 12:55:00;20/02/2026 13:25:00;30min;1;1;V;191.905,00;192.220,00;192.295,00;Sim;63,00;315,00;456;63,00;315,00;0,00;0,00;0,00;1h20min;-6.094,00 +WINJ26;20/02/2026 14:35:00;20/02/2026 14:50:00;15min;1;1;C;191.665,00;192.135,00;192.295,00;No;94,00;470,00;457;94,00;470,00;0,00;0,00;0,00;1h40min;-6.000,00 +WINJ26;20/02/2026 16:00:00;20/02/2026 17:10:00;1h10min;1;1;V;194.115,00;192.960,00;192.295,00;Sim;-231,00;-1.155,00;458;-231,00;-1.155,00;0,00;0,00;0,00;1h25min;-6.231,00 +WINJ26;20/02/2026 17:30:00;20/02/2026 18:20:00;50min;1;1;V;194.000,00;194.065,00;192.295,00;Sim;13,00;65,00;459;13,00;65,00;0,00;0,00;0,00;1h30min;-6.218,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.295,00;No;48,00;240,00;460;48,00;240,00;0,00;0,00;0,00;2d16h;-6.170,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.295,00;No;112,00;560,00;461;112,00;560,00;0,00;0,00;0,00;2h;-6.058,00 +WINJ26;23/02/2026 13:35:00;23/02/2026 14:45:00;1h10min;1;1;C;192.405,00;192.320,00;192.295,00;Sim;-17,00;-85,00;462;-17,00;-85,00;0,00;0,00;0,00;1h30min;-6.075,00 +WINJ26;23/02/2026 15:35:00;23/02/2026 16:05:00;30min;1;1;V;192.565,00;192.790,00;192.295,00;No;45,00;225,00;463;45,00;225,00;0,00;0,00;0,00;2h;-6.030,00 +WINJ26;23/02/2026 16:25:00;23/02/2026 17:10:00;45min;1;1;C;192.470,00;192.485,00;192.295,00;No;3,00;15,00;464;3,00;15,00;0,00;0,00;0,00;50min;-6.027,00 +WINJ26;24/02/2026 09:20:00;24/02/2026 10:30:00;1h10min;1;1;V;193.665,00;193.760,00;192.295,00;Sim;19,00;95,00;465;19,00;95,00;0,00;0,00;0,00;16h55min;-6.008,00 +WINJ26;24/02/2026 11:55:00;24/02/2026 12:00:00;5min;1;1;C;193.805,00;193.940,00;192.295,00;No;27,00;135,00;466;27,00;135,00;0,00;0,00;0,00;2h35min;-5.981,00 +WINJ26;24/02/2026 13:35:00;24/02/2026 14:45:00;1h10min;1;1;V;195.240,00;194.985,00;192.295,00;Sim;-51,00;-255,00;467;-51,00;-255,00;0,00;0,00;0,00;1h40min;-6.032,00 +WINJ26;24/02/2026 15:10:00;24/02/2026 15:45:00;35min;1;1;C;195.025,00;195.165,00;192.295,00;No;28,00;140,00;468;28,00;140,00;0,00;0,00;0,00;1h35min;-6.004,00 +WINJ26;24/02/2026 16:05:00;24/02/2026 16:35:00;30min;1;1;C;195.040,00;194.930,00;192.295,00;No;-22,00;-110,00;469;-22,00;-110,00;0,00;0,00;0,00;55min;-6.026,00 +WINJ26;24/02/2026 17:20:00;24/02/2026 17:45:00;25min;1;1;C;194.785,00;195.035,00;192.295,00;Sim;50,00;250,00;470;50,00;250,00;0,00;0,00;0,00;1h15min;-5.976,00 +WINJ26;24/02/2026 18:05:00;25/02/2026 09:50:00;15h45min;1;1;V;196.550,00;195.090,00;192.295,00;Sim;-292,00;-1.460,00;471;-292,00;-1.460,00;0,00;0,00;0,00;45min;-6.268,00 +WINJ26;25/02/2026 11:05:00;25/02/2026 11:25:00;20min;1;1;C;195.225,00;195.520,00;192.295,00;No;59,00;295,00;472;59,00;295,00;0,00;0,00;0,00;17h;-6.209,00 +WINJ26;25/02/2026 12:50:00;25/02/2026 13:05:00;15min;1;1;C;194.385,00;194.600,00;192.295,00;Sim;43,00;215,00;473;43,00;215,00;0,00;0,00;0,00;1h45min;-6.166,00 +WINJ26;25/02/2026 14:15:00;25/02/2026 14:25:00;10min;1;1;V;194.605,00;194.655,00;192.295,00;No;10,00;50,00;474;10,00;50,00;0,00;0,00;0,00;1h25min;-6.156,00 +WINJ26;25/02/2026 15:10:00;25/02/2026 15:15:00;5min;1;1;V;194.800,00;194.875,00;192.295,00;Sim;15,00;75,00;475;15,00;75,00;0,00;0,00;0,00;55min;-6.141,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:30:00;1h10min;1;1;C;194.200,00;194.090,00;192.295,00;Sim;-22,00;-110,00;476;-22,00;-110,00;0,00;0,00;0,00;1h10min;-6.163,00 +WINJ26;25/02/2026 17:55:00;25/02/2026 18:20:00;25min;1;1;V;194.350,00;194.345,00;192.295,00;No;-1,00;-5,00;477;-1,00;-5,00;0,00;0,00;0,00;1h35min;-6.164,00 +WINJ26;26/02/2026 10:20:00;26/02/2026 10:25:00;5min;1;1;V;194.185,00;194.240,00;192.295,00;No;11,00;55,00;478;11,00;55,00;0,00;0,00;0,00;16h25min;-6.153,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 13:00:00;30min;1;1;C;192.665,00;193.370,00;192.295,00;Sim;141,00;705,00;479;141,00;705,00;0,00;0,00;0,00;2h10min;-6.012,00 +WINJ26;26/02/2026 13:45:00;26/02/2026 13:50:00;5min;1;1;V;193.460,00;193.535,00;192.295,00;No;15,00;75,00;480;15,00;75,00;0,00;0,00;0,00;1h15min;-5.997,00 +WINJ26;26/02/2026 15:25:00;26/02/2026 16:35:00;1h10min;1;1;V;194.060,00;193.430,00;192.295,00;No;-126,00;-630,00;481;-126,00;-630,00;0,00;0,00;0,00;1h40min;-6.123,00 +WINJ26;26/02/2026 16:40:00;26/02/2026 17:50:00;1h10min;1;1;V;194.470,00;194.000,00;192.295,00;Sim;-94,00;-470,00;482;-94,00;-470,00;0,00;0,00;0,00;1h15min;-6.217,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.295,00;Sim;11,00;55,00;483;11,00;55,00;0,00;0,00;0,00;1h15min;-6.206,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 10:00:00;1h;1;1;C;194.155,00;193.615,00;192.295,00;No;-108,00;-540,00;484;-108,00;-540,00;0,00;0,00;0,00;15h5min;-6.314,00 +WINJ26;27/02/2026 11:40:00;27/02/2026 11:45:00;5min;1;1;V;193.250,00;193.645,00;192.295,00;No;79,00;395,00;485;79,00;395,00;0,00;0,00;0,00;2h40min;-6.235,00 +WINJ26;27/02/2026 12:50:00;27/02/2026 13:25:00;35min;1;1;V;193.125,00;193.435,00;192.295,00;No;62,00;310,00;486;62,00;310,00;0,00;0,00;0,00;1h10min;-6.173,00 +WINJ26;27/02/2026 13:35:00;27/02/2026 14:45:00;1h10min;1;1;C;193.090,00;192.350,00;192.295,00;Sim;-148,00;-740,00;487;-148,00;-740,00;0,00;0,00;0,00;45min;-6.321,00 +WINJ26;27/02/2026 14:55:00;27/02/2026 15:10:00;15min;1;1;C;192.480,00;192.710,00;192.295,00;Sim;46,00;230,00;488;46,00;230,00;0,00;0,00;0,00;1h20min;-6.275,00 +WINJ26;27/02/2026 15:45:00;27/02/2026 15:50:00;5min;1;1;V;192.620,00;192.670,00;192.295,00;No;10,00;50,00;489;10,00;50,00;0,00;0,00;0,00;50min;-6.265,00 +WINJ26;27/02/2026 16:10:00;27/02/2026 16:15:00;5min;1;1;V;192.620,00;192.660,00;192.295,00;No;8,00;40,00;490;8,00;40,00;0,00;0,00;0,00;25min;-6.257,00 +WINJ26;27/02/2026 16:50:00;27/02/2026 17:25:00;35min;1;1;C;191.875,00;192.145,00;192.295,00;Sim;54,00;270,00;491;54,00;270,00;0,00;0,00;0,00;40min;-6.203,00 +WINJ26;27/02/2026 17:40:00;27/02/2026 17:45:00;5min;1;1;V;192.090,00;192.065,00;192.295,00;No;-5,00;-25,00;492;-5,00;-25,00;0,00;0,00;0,00;50min;-6.208,00 +WINJ26;02/03/2026 09:10:00;02/03/2026 10:20:00;1h10min;1;1;C;190.670,00;190.570,00;192.295,00;Sim;-20,00;-100,00;493;-20,00;-100,00;0,00;0,00;0,00;2d15h;-6.228,00 +WINJ26;02/03/2026 10:45:00;02/03/2026 10:50:00;5min;1;1;V;190.155,00;190.680,00;192.295,00;No;105,00;525,00;494;105,00;525,00;0,00;0,00;0,00;1h35min;-6.123,00 +WINJ26;02/03/2026 11:15:00;02/03/2026 11:20:00;5min;1;1;V;190.035,00;190.365,00;192.295,00;No;66,00;330,00;495;66,00;330,00;0,00;0,00;0,00;30min;-6.057,00 +WINJ26;02/03/2026 11:30:00;02/03/2026 12:40:00;1h10min;1;1;V;191.370,00;190.460,00;192.295,00;Sim;-182,00;-910,00;496;-182,00;-910,00;0,00;0,00;0,00;15min;-6.239,00 +WINJ26;02/03/2026 13:55:00;02/03/2026 14:00:00;5min;1;1;V;191.365,00;191.530,00;192.295,00;Sim;33,00;165,00;497;33,00;165,00;0,00;0,00;0,00;2h25min;-6.206,00 +WINJ26;02/03/2026 14:20:00;02/03/2026 15:30:00;1h10min;1;1;V;192.075,00;191.755,00;192.295,00;Sim;-64,00;-320,00;498;-64,00;-320,00;0,00;0,00;0,00;25min;-6.270,00 +WINJ26;02/03/2026 15:45:00;02/03/2026 16:55:00;1h10min;1;1;V;192.880,00;192.095,00;192.295,00;Sim;-157,00;-785,00;499;-157,00;-785,00;0,00;0,00;0,00;1h25min;-6.427,00 +WINJ26;02/03/2026 17:35:00; - ; - ;1;0;C;192.280,00;192.340,00;192.340,00;No;12,00;60,00;500;12,00;60,00;0,00;0,00;0,00;1h50min;-6.415,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv new file mode 100644 index 0000000..30f580b --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv @@ -0,0 +1,214 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:00:00;26/08/2025 18:15:00;15min;1;1;C;149.000,00;149.050,00;192.320,00;No;10,00;50,00;1;10,00;50,00;0,00;0,00;0,00; - ;10,00 +WINJ26;27/08/2025 09:15:00;27/08/2025 11:30:00;2h15min;1;1;V;148.300,00;148.500,00;192.320,00;No;40,00;200,00;2;40,00;200,00;0,00;0,00;0,00;15h15min;50,00 +WINJ26;01/09/2025 17:00:00;02/09/2025 09:45:00;16h45min;1;1;V;150.600,00;152.250,00;192.320,00;Sim;330,00;1.650,00;3;330,00;1.650,00;0,00;0,00;0,00;5d7h;380,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.320,00;Sim;-40,00;-200,00;4;-40,00;-200,00;0,00;0,00;0,00;7d16h;340,00 +WINJ26;10/09/2025 09:30:00;10/09/2025 10:00:00;30min;1;1;C;152.625,00;152.350,00;192.320,00;No;-55,00;-275,00;5;-55,00;-275,00;0,00;0,00;0,00;1d;285,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 09:45:00;15min;1;1;V;152.750,00;152.500,00;192.320,00;Sim;-50,00;-250,00;6;-50,00;-250,00;0,00;0,00;0,00;2d;235,00 +WINJ26;12/09/2025 15:30:00;15/09/2025 09:30:00;2d18h;1;1;C;153.200,00;153.200,00;192.320,00;No;0;0;7;0;0;0,00;0,00;0,00;6h;235,00 +WINJ26;15/09/2025 15:45:00;15/09/2025 17:00:00;1h15min;1;1;V;154.100,00;154.320,00;192.320,00;Sim;44,00;220,00;8;44,00;220,00;0,00;0,00;0,00;3d;279,00 +WINJ26;15/09/2025 17:15:00;15/09/2025 17:30:00;15min;1;1;C;154.080,00;154.080,00;192.320,00;No;0;0;9;0;0;0,00;0,00;0,00;1h30min;279,00 +WINJ26;16/09/2025 10:30:00;16/09/2025 14:00:00;3h30min;1;1;C;155.000,00;154.120,00;192.320,00;No;-176,00;-880,00;10;-176,00;-880,00;0,00;0,00;0,00;17h15min;103,00 +WINJ26;16/09/2025 15:45:00;18/09/2025 11:45:00;1d20h;1;1;V;155.790,00;154.450,00;192.320,00;Sim;-268,00;-1.340,00;11;-268,00;-1.340,00;0,00;0,00;0,00;5h15min;-165,00 +WINJ26;22/09/2025 14:45:00;22/09/2025 15:30:00;45min;1;1;C;155.650,00;155.640,00;192.320,00;No;-2,00;-10,00;12;-2,00;-10,00;0,00;0,00;0,00;5d23h;-167,00 +WINJ26;24/09/2025 09:00:00;25/09/2025 10:15:00;1d1h;1;1;V;156.250,00;156.500,00;192.320,00;Sim;50,00;250,00;13;50,00;250,00;0,00;0,00;0,00;1d18h;-117,00 +WINJ26;25/09/2025 13:15:00;25/09/2025 14:30:00;1h15min;1;1;C;156.680,00;155.750,00;192.320,00;No;-186,00;-930,00;14;-186,00;-930,00;0,00;0,00;0,00;1d4h;-303,00 +WINJ26;26/09/2025 10:30:00;29/09/2025 09:15:00;2d22h;1;1;C;155.500,00;156.500,00;192.320,00;Sim;200,00;1.000,00;15;200,00;1.000,00;0,00;0,00;0,00;21h15min;-103,00 +WINJ26;29/09/2025 13:30:00;29/09/2025 15:00:00;1h30min;1;1;V;156.340,00;156.400,00;192.320,00;No;12,00;60,00;16;12,00;60,00;0,00;0,00;0,00;3d3h;-91,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:30:00;15min;1;1;V;156.250,00;156.550,00;192.320,00;Sim;60,00;300,00;17;60,00;300,00;0,00;0,00;0,00;21h45min;-31,00 +WINJ26;30/09/2025 18:15:00;01/10/2025 09:00:00;14h45min;1;1;C;156.375,00;156.500,00;192.320,00;No;25,00;125,00;18;25,00;125,00;0,00;0,00;0,00;7h;-6,00 +WINJ26;01/10/2025 09:30:00;01/10/2025 10:00:00;30min;1;1;C;157.000,00;156.750,00;192.320,00;No;-50,00;-250,00;19;-50,00;-250,00;0,00;0,00;0,00;15h15min;-56,00 +WINJ26;01/10/2025 15:45:00;03/10/2025 10:30:00;1d18h;1;1;C;155.450,00;153.800,00;192.320,00;Sim;-330,00;-1.650,00;20;-330,00;-1.650,00;0,00;0,00;0,00;6h15min;-386,00 +WINJ26;09/10/2025 14:45:00;10/10/2025 11:00:00;20h15min;1;1;C;150.890,00;151.120,00;192.320,00;Sim;46,00;230,00;21;46,00;230,00;0,00;0,00;0,00;7d23h;-340,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 11:30:00;1h15min;1;1;C;151.100,00;151.130,00;192.320,00;No;6,00;30,00;22;6,00;30,00;0,00;0,00;0,00;3d19h;-334,00 +WINJ26;14/10/2025 10:30:00;14/10/2025 11:15:00;45min;1;1;V;151.165,00;150.805,00;192.320,00;No;-72,00;-360,00;23;-72,00;-360,00;0,00;0,00;0,00;1d;-406,00 +WINJ26;14/10/2025 16:30:00;14/10/2025 17:30:00;1h;1;1;V;150.715,00;150.500,00;192.320,00;No;-43,00;-215,00;24;-43,00;-215,00;0,00;0,00;0,00;6h;-449,00 +WINJ26;15/10/2025 09:30:00;15/10/2025 10:00:00;30min;1;1;V;150.105,00;150.440,00;192.320,00;No;67,00;335,00;25;67,00;335,00;0,00;0,00;0,00;17h;-382,00 +WINJ26;16/10/2025 09:45:00;16/10/2025 10:00:00;15min;1;1;V;150.600,00;150.600,00;192.320,00;Sim;0;0;26;0;0;0,00;0,00;0,00;1d;-382,00 +WINJ26;16/10/2025 13:30:00;16/10/2025 13:45:00;15min;1;1;V;151.210,00;150.875,00;192.320,00;Sim;-67,00;-335,00;27;-67,00;-335,00;0,00;0,00;0,00;3h45min;-449,00 +WINJ26;17/10/2025 09:15:00;17/10/2025 10:30:00;1h15min;1;1;V;150.800,00;151.210,00;192.320,00;Sim;82,00;410,00;28;82,00;410,00;0,00;0,00;0,00;19h45min;-367,00 +WINJ26;17/10/2025 11:15:00;20/10/2025 11:00:00;2d23h;1;1;V;153.160,00;151.340,00;192.320,00;Sim;-364,00;-1.820,00;29;-364,00;-1.820,00;0,00;0,00;0,00;2h;-731,00 +WINJ26;20/10/2025 16:45:00;21/10/2025 09:15:00;16h30min;1;1;V;153.250,00;153.300,00;192.320,00;Sim;10,00;50,00;30;10,00;50,00;0,00;0,00;0,00;3d5h;-721,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 11:15:00;1h45min;1;1;C;153.200,00;153.200,00;192.320,00;No;0;0;31;0;0;0,00;0,00;0,00;16h45min;-721,00 +WINJ26;21/10/2025 16:00:00;21/10/2025 18:15:00;2h15min;1;1;C;152.700,00;153.000,00;192.320,00;Sim;60,00;300,00;32;60,00;300,00;0,00;0,00;0,00;6h30min;-661,00 +WINJ26;22/10/2025 09:30:00;22/10/2025 09:45:00;15min;1;1;C;152.900,00;153.250,00;192.320,00;No;70,00;350,00;33;70,00;350,00;0,00;0,00;0,00;17h30min;-591,00 +WINJ26;23/10/2025 10:00:00;23/10/2025 12:45:00;2h45min;1;1;V;153.950,00;154.795,00;192.320,00;Sim;169,00;845,00;34;169,00;845,00;0,00;0,00;0,00;1d;-422,00 +WINJ26;23/10/2025 18:15:00;24/10/2025 09:00:00;14h45min;1;1;C;154.600,00;154.690,00;192.320,00;No;18,00;90,00;35;18,00;90,00;0,00;0,00;0,00;8h15min;-404,00 +WINJ26;24/10/2025 10:45:00;24/10/2025 11:15:00;30min;1;1;V;154.825,00;155.250,00;192.320,00;Sim;85,00;425,00;36;85,00;425,00;0,00;0,00;0,00;16h30min;-319,00 +WINJ26;27/10/2025 09:15:00;27/10/2025 09:45:00;30min;1;1;C;156.050,00;156.495,00;192.320,00;No;89,00;445,00;37;89,00;445,00;0,00;0,00;0,00;2d22h;-230,00 +WINJ26;27/10/2025 12:15:00;28/10/2025 09:15:00;21h;1;1;V;155.400,00;155.660,00;192.320,00;Sim;52,00;260,00;38;52,00;260,00;0,00;0,00;0,00;3h;-178,00 +WINJ26;28/10/2025 11:15:00;28/10/2025 11:30:00;15min;1;1;C;155.985,00;156.000,00;192.320,00;Sim;3,00;15,00;39;3,00;15,00;0,00;0,00;0,00;23h;-175,00 +WINJ26;29/10/2025 11:15:00;30/10/2025 09:15:00;22h;1;1;V;156.385,00;157.200,00;192.320,00;Sim;163,00;815,00;40;163,00;815,00;0,00;0,00;0,00;1d;-12,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.320,00;No;17,00;85,00;41;17,00;85,00;0,00;0,00;0,00;23h30min;5,00 +WINJ26;30/10/2025 13:30:00;31/10/2025 12:00:00;22h30min;1;1;V;157.450,00;157.500,00;192.320,00;Sim;10,00;50,00;42;10,00;50,00;0,00;0,00;0,00;2h45min;15,00 +WINJ26;03/11/2025 12:30:00;04/11/2025 10:00:00;21h30min;1;1;V;158.430,00;158.680,00;192.320,00;Sim;50,00;250,00;43;50,00;250,00;0,00;0,00;0,00;3d23h;65,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:30:00;15min;1;1;C;158.540,00;158.520,00;192.320,00;No;-4,00;-20,00;44;-4,00;-20,00;0,00;0,00;0,00;21h45min;61,00 +WINJ26;04/11/2025 16:45:00;04/11/2025 17:15:00;30min;1;1;C;158.660,00;158.780,00;192.320,00;No;24,00;120,00;45;24,00;120,00;0,00;0,00;0,00;6h30min;85,00 +WINJ26;05/11/2025 11:15:00;05/11/2025 18:00:00;6h45min;1;1;V;161.940,00;159.750,00;192.320,00;Sim;-438,00;-2.190,00;46;-438,00;-2.190,00;0,00;0,00;0,00;18h30min;-353,00 +WINJ26;06/11/2025 09:15:00;07/11/2025 10:00:00;1d;1;1;V;161.250,00;161.900,00;192.320,00;Sim;130,00;650,00;47;130,00;650,00;0,00;0,00;0,00;22h;-223,00 +WINJ26;07/11/2025 12:30:00;07/11/2025 14:15:00;1h45min;1;1;C;161.500,00;161.250,00;192.320,00;No;-50,00;-250,00;48;-50,00;-250,00;0,00;0,00;0,00;1d3h;-273,00 +WINJ26;10/11/2025 10:30:00;11/11/2025 10:30:00;1d;1;1;V;165.400,00;162.950,00;192.320,00;Sim;-490,00;-2.450,00;49;-490,00;-2.450,00;0,00;0,00;0,00;2d22h;-763,00 +WINJ26;11/11/2025 12:45:00;12/11/2025 09:30:00;20h45min;1;1;V;166.300,00;165.895,00;192.320,00;Sim;-81,00;-405,00;50;-81,00;-405,00;0,00;0,00;0,00;1d2h;-844,00 +WINJ26;12/11/2025 17:15:00;12/11/2025 17:45:00;30min;1;1;C;165.800,00;166.000,00;192.320,00;No;40,00;200,00;51;40,00;200,00;0,00;0,00;0,00;1d4h;-804,00 +WINJ26;13/11/2025 17:00:00;14/11/2025 09:00:00;16h;1;1;C;165.450,00;165.300,00;192.320,00;Sim;-30,00;-150,00;52;-30,00;-150,00;0,00;0,00;0,00;23h45min;-834,00 +WINJ26;14/11/2025 09:30:00;14/11/2025 11:00:00;1h30min;1;1;C;164.905,00;165.350,00;192.320,00;Sim;89,00;445,00;53;89,00;445,00;0,00;0,00;0,00;16h30min;-745,00 +WINJ26;14/11/2025 18:00:00;14/11/2025 18:15:00;15min;1;1;V;165.850,00;165.915,00;192.320,00;Sim;13,00;65,00;54;13,00;65,00;0,00;0,00;0,00;8h30min;-732,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.320,00;No;69,00;345,00;55;69,00;345,00;0,00;0,00;0,00;2d17h;-663,00 +WINJ26;17/11/2025 18:15:00;18/11/2025 10:30:00;16h15min;1;1;C;165.225,00;164.740,00;192.320,00;Sim;-97,00;-485,00;56;-97,00;-485,00;0,00;0,00;0,00;6h30min;-760,00 +WINJ26;19/11/2025 17:15:00;21/11/2025 13:45:00;1d20h;1;1;C;163.590,00;162.410,00;192.320,00;Sim;-236,00;-1.180,00;57;-236,00;-1.180,00;0,00;0,00;0,00;1d23h;-996,00 +WINJ26;21/11/2025 15:30:00;21/11/2025 15:45:00;15min;1;1;V;162.500,00;162.400,00;192.320,00;No;-20,00;-100,00;58;-20,00;-100,00;0,00;0,00;0,00;1d22h;-1.016,00 +WINJ26;24/11/2025 10:30:00;24/11/2025 18:00:00;7h30min;1;1;V;163.020,00;163.120,00;192.320,00;Sim;20,00;100,00;59;20,00;100,00;0,00;0,00;0,00;2d19h;-996,00 +WINJ26;25/11/2025 09:45:00;25/11/2025 10:00:00;15min;1;1;V;163.435,00;163.025,00;192.320,00;No;-82,00;-410,00;60;-82,00;-410,00;0,00;0,00;0,00;23h15min;-1.078,00 +WINJ26;25/11/2025 11:15:00;25/11/2025 11:30:00;15min;1;1;V;162.700,00;162.780,00;192.320,00;No;16,00;80,00;61;16,00;80,00;0,00;0,00;0,00;1h30min;-1.062,00 +WINJ26;26/11/2025 13:00:00;26/11/2025 18:00:00;5h;1;1;V;166.300,00;165.405,00;192.320,00;Sim;-179,00;-895,00;62;-179,00;-895,00;0,00;0,00;0,00;1d1h;-1.241,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.320,00;Sim;26,00;130,00;63;26,00;130,00;0,00;0,00;0,00;22h15min;-1.215,00 +WINJ26;27/11/2025 18:15:00;28/11/2025 09:00:00;14h45min;1;1;C;166.010,00;165.800,00;192.320,00;No;-42,00;-210,00;64;-42,00;-210,00;0,00;0,00;0,00;7h;-1.257,00 +WINJ26;28/11/2025 13:15:00;28/11/2025 14:00:00;45min;1;1;C;166.360,00;166.700,00;192.320,00;No;68,00;340,00;65;68,00;340,00;0,00;0,00;0,00;19h;-1.189,00 +WINJ26;01/12/2025 11:30:00;01/12/2025 11:45:00;15min;1;1;C;166.100,00;166.320,00;192.320,00;Sim;44,00;220,00;66;44,00;220,00;0,00;0,00;0,00;2d22h;-1.145,00 +WINJ26;02/12/2025 10:15:00;02/12/2025 16:45:00;6h30min;1;1;V;168.050,00;166.650,00;192.320,00;Sim;-280,00;-1.400,00;67;-280,00;-1.400,00;0,00;0,00;0,00;22h45min;-1.425,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 12:15:00;19h15min;1;1;V;171.435,00;169.165,00;192.320,00;Sim;-454,00;-2.270,00;68;-454,00;-2.270,00;0,00;0,00;0,00;1d6h;-1.879,00 +WINJ26;04/12/2025 13:30:00;05/12/2025 12:30:00;23h;1;1;V;172.450,00;171.430,00;192.320,00;Sim;-204,00;-1.020,00;69;-204,00;-1.020,00;0,00;0,00;0,00;20h30min;-2.083,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:15:00;15min;1;1;V;170.450,00;170.835,00;192.320,00;No;77,00;385,00;70;77,00;385,00;0,00;0,00;0,00;23h30min;-2.006,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 15:30:00;6h15min;1;1;C;166.300,00;165.630,00;192.320,00;No;-134,00;-670,00;71;-134,00;-670,00;0,00;0,00;0,00;2d20h;-2.140,00 +WINJ26;09/12/2025 11:00:00;09/12/2025 12:30:00;1h30min;1;1;C;163.150,00;164.900,00;192.320,00;Sim;350,00;1.750,00;72;350,00;1.750,00;0,00;0,00;0,00;1d1h;-1.790,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.320,00;No;36,00;180,00;73;36,00;180,00;0,00;0,00;0,00;23h15min;-1.754,00 +WINJ26;10/12/2025 17:30:00;11/12/2025 10:00:00;16h30min;1;1;V;165.615,00;166.200,00;192.320,00;Sim;117,00;585,00;74;117,00;585,00;0,00;0,00;0,00;7h15min;-1.637,00 +WINJ26;11/12/2025 14:45:00;12/12/2025 09:00:00;18h15min;1;1;V;166.575,00;166.400,00;192.320,00;Sim;-35,00;-175,00;75;-35,00;-175,00;0,00;0,00;0,00;21h15min;-1.672,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.320,00;Sim;120,00;600,00;76;120,00;600,00;0,00;0,00;0,00;21h30min;-1.552,00 +WINJ26;12/12/2025 14:30:00;12/12/2025 14:45:00;15min;1;1;C;167.060,00;167.400,00;192.320,00;No;68,00;340,00;77;68,00;340,00;0,00;0,00;0,00;2h15min;-1.484,00 +WINJ26;15/12/2025 10:30:00;15/12/2025 15:15:00;4h45min;1;1;V;169.100,00;168.650,00;192.320,00;Sim;-90,00;-450,00;78;-90,00;-450,00;0,00;0,00;0,00;2d20h;-1.574,00 +WINJ26;15/12/2025 17:00:00;16/12/2025 09:00:00;16h;1;1;C;169.380,00;168.995,00;192.320,00;No;-77,00;-385,00;79;-77,00;-385,00;0,00;0,00;0,00;6h30min;-1.651,00 +WINJ26;16/12/2025 11:30:00;16/12/2025 14:15:00;2h45min;1;1;C;167.075,00;166.680,00;192.320,00;Sim;-79,00;-395,00;80;-79,00;-395,00;0,00;0,00;0,00;18h30min;-1.730,00 +WINJ26;16/12/2025 17:00:00;17/12/2025 11:00:00;18h;1;1;C;166.200,00;163.230,00;192.320,00;Sim;-594,00;-2.970,00;81;-594,00;-2.970,00;0,00;0,00;0,00;5h30min;-2.324,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 15:00:00;3h30min;1;1;C;163.775,00;163.670,00;192.320,00;Sim;-21,00;-105,00;82;-21,00;-105,00;0,00;0,00;0,00;18h30min;-2.345,00 +WINJ26;17/12/2025 18:00:00;18/12/2025 09:15:00;15h15min;1;1;V;163.555,00;163.850,00;192.320,00;No;59,00;295,00;83;59,00;295,00;0,00;0,00;0,00;6h30min;-2.286,00 +WINJ26;18/12/2025 09:45:00;18/12/2025 10:00:00;15min;1;1;V;163.440,00;163.550,00;192.320,00;No;22,00;110,00;84;22,00;110,00;0,00;0,00;0,00;15h45min;-2.264,00 +WINJ26;18/12/2025 11:00:00;18/12/2025 11:45:00;45min;1;1;V;163.785,00;163.735,00;192.320,00;Sim;-10,00;-50,00;85;-10,00;-50,00;0,00;0,00;0,00;1h15min;-2.274,00 +WINJ26;18/12/2025 14:15:00;18/12/2025 14:30:00;15min;1;1;V;164.180,00;164.200,00;192.320,00;Sim;4,00;20,00;86;4,00;20,00;0,00;0,00;0,00;3h15min;-2.270,00 +WINJ26;18/12/2025 15:45:00;18/12/2025 16:45:00;1h;1;1;V;164.300,00;164.735,00;192.320,00;Sim;87,00;435,00;87;87,00;435,00;0,00;0,00;0,00;1h30min;-2.183,00 +WINJ26;18/12/2025 17:15:00;18/12/2025 17:45:00;30min;1;1;C;164.350,00;164.675,00;192.320,00;No;65,00;325,00;88;65,00;325,00;0,00;0,00;0,00;1h30min;-2.118,00 +WINJ26;19/12/2025 12:45:00;19/12/2025 14:30:00;1h45min;1;1;V;165.175,00;165.475,00;192.320,00;Sim;60,00;300,00;89;60,00;300,00;0,00;0,00;0,00;19h30min;-2.058,00 +WINJ26;19/12/2025 18:15:00;22/12/2025 09:00:00;2d14h;1;1;C;164.910,00;165.430,00;192.320,00;No;104,00;520,00;90;104,00;520,00;0,00;0,00;0,00;5h30min;-1.954,00 +WINJ26;22/12/2025 12:30:00;22/12/2025 13:30:00;1h;1;1;C;164.025,00;164.315,00;192.320,00;Sim;58,00;290,00;91;58,00;290,00;0,00;0,00;0,00;2d18h;-1.896,00 +WINJ26;22/12/2025 16:30:00;22/12/2025 16:45:00;15min;1;1;V;164.275,00;164.295,00;192.320,00;No;4,00;20,00;92;4,00;20,00;0,00;0,00;0,00;4h;-1.892,00 +WINJ26;22/12/2025 18:15:00;23/12/2025 09:00:00;14h45min;1;1;V;164.310,00;164.250,00;192.320,00;No;-12,00;-60,00;93;-12,00;-60,00;0,00;0,00;0,00;1h45min;-1.904,00 +WINJ26;23/12/2025 11:30:00;23/12/2025 15:00:00;3h30min;1;1;V;166.675,00;165.435,00;192.320,00;Sim;-248,00;-1.240,00;94;-248,00;-1.240,00;0,00;0,00;0,00;17h15min;-2.152,00 +WINJ26;23/12/2025 15:15:00;26/12/2025 09:15:00;2d18h;1;1;V;165.980,00;166.230,00;192.320,00;Sim;50,00;250,00;95;50,00;250,00;0,00;0,00;0,00;3h45min;-2.102,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.320,00;No;8,00;40,00;96;8,00;40,00;0,00;0,00;0,00;2d19h;-2.094,00 +WINJ26;26/12/2025 12:30:00;26/12/2025 13:45:00;1h15min;1;1;V;166.085,00;166.450,00;192.320,00;Sim;73,00;365,00;97;73,00;365,00;0,00;0,00;0,00;2h15min;-2.021,00 +WINJ26;26/12/2025 16:30:00;29/12/2025 10:30:00;2d18h;1;1;V;166.705,00;166.730,00;192.320,00;Sim;5,00;25,00;98;5,00;25,00;0,00;0,00;0,00;4h;-2.016,00 +WINJ26;29/12/2025 11:45:00;29/12/2025 14:45:00;3h;1;1;C;166.635,00;166.380,00;192.320,00;No;-51,00;-255,00;99;-51,00;-255,00;0,00;0,00;0,00;2d19h;-2.067,00 +WINJ26;29/12/2025 16:15:00;29/12/2025 17:00:00;45min;1;1;C;165.980,00;166.175,00;192.320,00;Sim;39,00;195,00;100;39,00;195,00;0,00;0,00;0,00;4h30min;-2.028,00 +WINJ26;30/12/2025 10:45:00;30/12/2025 12:00:00;1h15min;1;1;V;167.060,00;167.570,00;192.320,00;Sim;102,00;510,00;101;102,00;510,00;0,00;0,00;0,00;18h30min;-1.926,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.320,00;No;-21,00;-105,00;102;-21,00;-105,00;0,00;0,00;0,00;2d22h;-1.947,00 +WINJ26;02/01/2026 11:15:00;02/01/2026 14:45:00;3h30min;1;1;C;167.135,00;166.105,00;192.320,00;Sim;-206,00;-1.030,00;103;-206,00;-1.030,00;0,00;0,00;0,00;2h;-2.153,00 +WINJ26;02/01/2026 16:15:00;02/01/2026 16:30:00;15min;1;1;C;166.245,00;166.230,00;192.320,00;Sim;-3,00;-15,00;104;-3,00;-15,00;0,00;0,00;0,00;5h;-2.156,00 +WINJ26;05/01/2026 10:15:00;05/01/2026 10:30:00;15min;1;1;V;165.975,00;166.290,00;192.320,00;No;63,00;315,00;105;63,00;315,00;0,00;0,00;0,00;2d18h;-2.093,00 +WINJ26;05/01/2026 11:15:00;05/01/2026 12:00:00;45min;1;1;V;166.200,00;166.440,00;192.320,00;Sim;48,00;240,00;106;48,00;240,00;0,00;0,00;0,00;1h;-2.045,00 +WINJ26;05/01/2026 17:00:00;06/01/2026 11:00:00;18h;1;1;V;169.355,00;167.545,00;192.320,00;Sim;-362,00;-1.810,00;107;-362,00;-1.810,00;0,00;0,00;0,00;5h45min;-2.407,00 +WINJ26;06/01/2026 11:30:00;06/01/2026 15:00:00;3h30min;1;1;V;169.405,00;169.305,00;192.320,00;Sim;-20,00;-100,00;108;-20,00;-100,00;0,00;0,00;0,00;18h30min;-2.427,00 +WINJ26;06/01/2026 17:45:00;06/01/2026 18:15:00;30min;1;1;C;169.320,00;169.380,00;192.320,00;No;12,00;60,00;109;12,00;60,00;0,00;0,00;0,00;6h15min;-2.415,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 17:00:00;3h30min;1;1;C;167.830,00;167.690,00;192.320,00;Sim;-28,00;-140,00;110;-28,00;-140,00;0,00;0,00;0,00;19h45min;-2.443,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 10:15:00;15min;1;1;V;167.680,00;167.525,00;192.320,00;No;-31,00;-155,00;111;-31,00;-155,00;0,00;0,00;0,00;20h30min;-2.474,00 +WINJ26;08/01/2026 11:00:00;08/01/2026 11:15:00;15min;1;1;V;167.550,00;167.590,00;192.320,00;Sim;8,00;40,00;112;8,00;40,00;0,00;0,00;0,00;1h;-2.466,00 +WINJ26;08/01/2026 12:00:00;08/01/2026 14:30:00;2h30min;1;1;V;167.940,00;167.765,00;192.320,00;Sim;-35,00;-175,00;113;-35,00;-175,00;0,00;0,00;0,00;1h;-2.501,00 +WINJ26;08/01/2026 17:00:00;08/01/2026 17:15:00;15min;1;1;V;168.050,00;168.055,00;192.320,00;Sim;1,00;5,00;114;1,00;5,00;0,00;0,00;0,00;5h;-2.500,00 +WINJ26;09/01/2026 09:15:00;09/01/2026 09:30:00;15min;1;1;V;168.050,00;168.115,00;192.320,00;Sim;13,00;65,00;115;13,00;65,00;0,00;0,00;0,00;16h15min;-2.487,00 +WINJ26;09/01/2026 10:00:00;09/01/2026 10:15:00;15min;1;1;C;168.245,00;168.110,00;192.320,00;No;-27,00;-135,00;116;-27,00;-135,00;0,00;0,00;0,00;45min;-2.514,00 +WINJ26;09/01/2026 11:30:00;09/01/2026 15:00:00;3h30min;1;1;V;169.440,00;168.930,00;192.320,00;Sim;-102,00;-510,00;117;-102,00;-510,00;0,00;0,00;0,00;1h30min;-2.616,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.320,00;No;-87,00;-435,00;118;-87,00;-435,00;0,00;0,00;0,00;2d21h;-2.703,00 +WINJ26;13/01/2026 09:15:00;13/01/2026 09:30:00;15min;1;1;V;167.890,00;168.290,00;192.320,00;No;80,00;400,00;119;80,00;400,00;0,00;0,00;0,00;1d;-2.623,00 +WINJ26;13/01/2026 10:45:00;13/01/2026 14:15:00;3h30min;1;1;C;167.910,00;167.355,00;192.320,00;Sim;-111,00;-555,00;120;-111,00;-555,00;0,00;0,00;0,00;1h30min;-2.734,00 +WINJ26;13/01/2026 17:30:00;13/01/2026 17:45:00;15min;1;1;V;167.140,00;167.140,00;192.320,00;No;0;0;121;0;0;0,00;0,00;0,00;6h45min;-2.734,00 +WINJ26;14/01/2026 11:00:00;14/01/2026 11:15:00;15min;1;1;V;167.705,00;168.220,00;192.320,00;Sim;103,00;515,00;122;103,00;515,00;0,00;0,00;0,00;17h30min;-2.631,00 +WINJ26;14/01/2026 12:45:00;14/01/2026 16:15:00;3h30min;1;1;V;169.645,00;168.695,00;192.320,00;Sim;-190,00;-950,00;123;-190,00;-950,00;0,00;0,00;0,00;1h45min;-2.821,00 +WINJ26;15/01/2026 09:30:00;15/01/2026 11:45:00;2h15min;1;1;V;170.010,00;170.390,00;192.320,00;Sim;76,00;380,00;124;76,00;380,00;0,00;0,00;0,00;20h45min;-2.745,00 +WINJ26;15/01/2026 12:15:00;15/01/2026 12:30:00;15min;1;1;C;170.375,00;170.380,00;192.320,00;No;1,00;5,00;125;1,00;5,00;0,00;0,00;0,00;2h45min;-2.744,00 +WINJ26;15/01/2026 12:45:00;15/01/2026 13:00:00;15min;1;1;C;170.505,00;170.500,00;192.320,00;No;-1,00;-5,00;126;-1,00;-5,00;0,00;0,00;0,00;30min;-2.745,00 +WINJ26;15/01/2026 16:15:00;15/01/2026 17:00:00;45min;1;1;V;170.755,00;171.050,00;192.320,00;Sim;59,00;295,00;127;59,00;295,00;0,00;0,00;0,00;3h30min;-2.686,00 +WINJ26;15/01/2026 18:15:00;16/01/2026 09:00:00;14h45min;1;1;C;170.845,00;171.100,00;192.320,00;No;51,00;255,00;128;51,00;255,00;0,00;0,00;0,00;2h;-2.635,00 +WINJ26;16/01/2026 13:30:00;16/01/2026 17:00:00;3h30min;1;1;C;169.625,00;169.665,00;192.320,00;Sim;8,00;40,00;129;8,00;40,00;0,00;0,00;0,00;19h15min;-2.627,00 +WINJ26;19/01/2026 10:30:00;19/01/2026 10:45:00;15min;1;1;V;169.490,00;169.420,00;192.320,00;No;-14,00;-70,00;130;-14,00;-70,00;0,00;0,00;0,00;2d21h;-2.641,00 +WINJ26;19/01/2026 12:30:00;19/01/2026 14:30:00;2h;1;1;V;169.740,00;169.540,00;192.320,00;Sim;-40,00;-200,00;131;-40,00;-200,00;0,00;0,00;0,00;2h;-2.681,00 +WINJ26;19/01/2026 17:15:00;19/01/2026 17:30:00;15min;1;1;C;169.655,00;169.755,00;192.320,00;No;20,00;100,00;132;20,00;100,00;0,00;0,00;0,00;4h45min;-2.661,00 +WINJ26;20/01/2026 09:15:00;20/01/2026 09:30:00;15min;1;1;V;168.260,00;168.485,00;192.320,00;No;45,00;225,00;133;45,00;225,00;0,00;0,00;0,00;16h;-2.616,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.320,00;Sim;60,00;300,00;134;60,00;300,00;0,00;0,00;0,00;45min;-2.556,00 +WINJ26;20/01/2026 14:45:00;20/01/2026 16:00:00;1h15min;1;1;V;170.615,00;170.915,00;192.320,00;Sim;60,00;300,00;135;60,00;300,00;0,00;0,00;0,00;4h45min;-2.496,00 +WINJ26;20/01/2026 18:15:00;21/01/2026 12:15:00;18h;1;1;V;174.615,00;171.020,00;192.320,00;Sim;-719,00;-3.595,00;136;-719,00;-3.595,00;0,00;0,00;0,00;3h30min;-3.215,00 +WINJ26;21/01/2026 12:45:00;21/01/2026 16:15:00;3h30min;1;1;V;175.685,00;174.360,00;192.320,00;Sim;-265,00;-1.325,00;137;-265,00;-1.325,00;0,00;0,00;0,00;18h30min;-3.480,00 +WINJ26;21/01/2026 18:15:00;22/01/2026 12:15:00;18h;1;1;V;179.830,00;176.955,00;192.320,00;Sim;-575,00;-2.875,00;138;-575,00;-2.875,00;0,00;0,00;0,00;5h30min;-4.055,00 +WINJ26;22/01/2026 13:00:00;22/01/2026 16:15:00;3h15min;1;1;V;180.825,00;182.045,00;192.320,00;Sim;244,00;1.220,00;139;244,00;1.220,00;0,00;0,00;0,00;18h45min;-3.811,00 +WINJ26;23/01/2026 09:15:00;23/01/2026 09:30:00;15min;1;1;C;181.975,00;181.450,00;192.320,00;No;-105,00;-525,00;140;-105,00;-525,00;0,00;0,00;0,00;20h15min;-3.916,00 +WINJ26;23/01/2026 11:15:00;23/01/2026 12:15:00;1h;1;1;C;181.430,00;181.685,00;192.320,00;Sim;51,00;255,00;141;51,00;255,00;0,00;0,00;0,00;2h;-3.865,00 +WINJ26;23/01/2026 15:30:00;23/01/2026 15:45:00;15min;1;1;C;182.325,00;182.515,00;192.320,00;No;38,00;190,00;142;38,00;190,00;0,00;0,00;0,00;4h15min;-3.827,00 +WINJ26;23/01/2026 17:00:00;26/01/2026 10:30:00;2d17h;1;1;V;183.870,00;183.165,00;192.320,00;Sim;-141,00;-705,00;143;-141,00;-705,00;0,00;0,00;0,00;1h30min;-3.968,00 +WINJ26;26/01/2026 11:45:00;26/01/2026 13:00:00;1h15min;1;1;C;184.000,00;183.600,00;192.320,00;No;-80,00;-400,00;144;-80,00;-400,00;0,00;0,00;0,00;2d18h;-4.048,00 +WINJ26;26/01/2026 14:15:00;26/01/2026 14:30:00;15min;1;1;C;183.660,00;183.700,00;192.320,00;Sim;8,00;40,00;145;8,00;40,00;0,00;0,00;0,00;2h30min;-4.040,00 +WINJ26;26/01/2026 15:45:00;26/01/2026 16:00:00;15min;1;1;C;183.465,00;183.520,00;192.320,00;Sim;11,00;55,00;146;11,00;55,00;0,00;0,00;0,00;1h30min;-4.029,00 +WINJ26;26/01/2026 17:15:00;26/01/2026 17:30:00;15min;1;1;C;183.685,00;183.790,00;192.320,00;No;21,00;105,00;147;21,00;105,00;0,00;0,00;0,00;1h30min;-4.008,00 +WINJ26;27/01/2026 09:15:00;27/01/2026 09:30:00;15min;1;1;C;185.220,00;185.570,00;192.320,00;No;70,00;350,00;148;70,00;350,00;0,00;0,00;0,00;16h;-3.938,00 +WINJ26;27/01/2026 10:00:00;27/01/2026 13:30:00;3h30min;1;1;V;187.970,00;185.950,00;192.320,00;Sim;-404,00;-2.020,00;149;-404,00;-2.020,00;0,00;0,00;0,00;45min;-4.342,00 +WINJ26;27/01/2026 14:15:00;27/01/2026 15:00:00;45min;1;1;V;187.170,00;187.785,00;192.320,00;Sim;123,00;615,00;150;123,00;615,00;0,00;0,00;0,00;4h15min;-4.219,00 +WINJ26;27/01/2026 15:30:00;27/01/2026 17:15:00;1h45min;1;1;C;187.300,00;187.755,00;192.320,00;No;91,00;455,00;151;91,00;455,00;0,00;0,00;0,00;1h15min;-4.128,00 +WINJ26;27/01/2026 18:00:00;28/01/2026 09:15:00;15h15min;1;1;C;187.150,00;187.655,00;192.320,00;Sim;101,00;505,00;152;101,00;505,00;0,00;0,00;0,00;2h30min;-4.027,00 +WINJ26;28/01/2026 12:15:00;28/01/2026 12:30:00;15min;1;1;V;188.475,00;189.275,00;192.320,00;Sim;160,00;800,00;153;160,00;800,00;0,00;0,00;0,00;18h15min;-3.867,00 +WINJ26;28/01/2026 15:30:00;28/01/2026 17:00:00;1h30min;1;1;C;188.545,00;188.600,00;192.320,00;No;11,00;55,00;154;11,00;55,00;0,00;0,00;0,00;3h15min;-3.856,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 12:00:00;2h30min;1;1;V;189.110,00;191.020,00;192.320,00;Sim;382,00;1.910,00;155;382,00;1.910,00;0,00;0,00;0,00;18h;-3.474,00 +WINJ26;29/01/2026 14:15:00;29/01/2026 16:30:00;2h15min;1;1;C;187.955,00;188.410,00;192.320,00;Sim;91,00;455,00;156;91,00;455,00;0,00;0,00;0,00;4h45min;-3.383,00 +WINJ26;30/01/2026 09:30:00;30/01/2026 10:30:00;1h;1;1;C;187.670,00;187.965,00;192.320,00;Sim;59,00;295,00;157;59,00;295,00;0,00;0,00;0,00;19h15min;-3.324,00 +WINJ26;30/01/2026 13:00:00;30/01/2026 13:15:00;15min;1;1;V;187.300,00;187.775,00;192.320,00;No;95,00;475,00;158;95,00;475,00;0,00;0,00;0,00;3h30min;-3.229,00 +WINJ26;30/01/2026 14:45:00;30/01/2026 18:15:00;3h30min;1;1;C;186.465,00;186.155,00;192.320,00;Sim;-62,00;-310,00;159;-62,00;-310,00;0,00;0,00;0,00;1h45min;-3.291,00 +WINJ26;02/02/2026 09:15:00;02/02/2026 10:15:00;1h;1;1;V;186.300,00;186.290,00;192.320,00;No;-2,00;-10,00;160;-2,00;-10,00;0,00;0,00;0,00;2d18h;-3.293,00 +WINJ26;02/02/2026 11:30:00;02/02/2026 12:00:00;30min;1;1;V;186.230,00;186.240,00;192.320,00;No;2,00;10,00;161;2,00;10,00;0,00;0,00;0,00;2h15min;-3.291,00 +WINJ26;02/02/2026 15:15:00;02/02/2026 15:30:00;15min;1;1;V;186.720,00;186.820,00;192.320,00;Sim;20,00;100,00;162;20,00;100,00;0,00;0,00;0,00;3h45min;-3.271,00 +WINJ26;03/02/2026 12:15:00;03/02/2026 14:15:00;2h;1;1;V;190.295,00;190.975,00;192.320,00;Sim;136,00;680,00;163;136,00;680,00;0,00;0,00;0,00;21h;-3.135,00 +WINJ26;03/02/2026 16:45:00;03/02/2026 17:15:00;30min;1;1;C;190.160,00;190.105,00;192.320,00;No;-11,00;-55,00;164;-11,00;-55,00;0,00;0,00;0,00;4h30min;-3.146,00 +WINJ26;04/02/2026 16:45:00;04/02/2026 18:15:00;1h30min;1;1;C;185.090,00;186.115,00;192.320,00;Sim;205,00;1.025,00;165;205,00;1.025,00;0,00;0,00;0,00;1d;-2.941,00 +WINJ26;05/02/2026 12:00:00;05/02/2026 12:15:00;15min;1;1;V;186.700,00;187.535,00;192.320,00;No;167,00;835,00;166;167,00;835,00;0,00;0,00;0,00;19h15min;-2.774,00 +WINJ26;05/02/2026 18:00:00;06/02/2026 09:15:00;15h15min;1;1;C;186.585,00;187.460,00;192.320,00;No;175,00;875,00;167;175,00;875,00;0,00;0,00;0,00;6h;-2.599,00 +WINJ26;06/02/2026 11:15:00;06/02/2026 11:30:00;15min;1;1;C;186.520,00;186.785,00;192.320,00;Sim;53,00;265,00;168;53,00;265,00;0,00;0,00;0,00;17h15min;-2.546,00 +WINJ26;06/02/2026 12:30:00;06/02/2026 13:15:00;45min;1;1;C;186.485,00;186.620,00;192.320,00;Sim;27,00;135,00;169;27,00;135,00;0,00;0,00;0,00;1h15min;-2.519,00 +WINJ26;06/02/2026 15:00:00;06/02/2026 15:15:00;15min;1;1;V;186.620,00;186.790,00;192.320,00;No;34,00;170,00;170;34,00;170,00;0,00;0,00;0,00;2h30min;-2.485,00 +WINJ26;09/02/2026 10:15:00;09/02/2026 13:45:00;3h30min;1;1;V;188.560,00;187.600,00;192.320,00;Sim;-192,00;-960,00;171;-192,00;-960,00;0,00;0,00;0,00;2d19h;-2.677,00 +WINJ26;09/02/2026 17:30:00;10/02/2026 09:15:00;15h45min;1;1;V;189.800,00;190.370,00;192.320,00;Sim;114,00;570,00;172;114,00;570,00;0,00;0,00;0,00;7h15min;-2.563,00 +WINJ26;10/02/2026 10:15:00;10/02/2026 11:15:00;1h;1;1;C;190.000,00;189.890,00;192.320,00;No;-22,00;-110,00;173;-22,00;-110,00;0,00;0,00;0,00;16h45min;-2.585,00 +WINJ26;10/02/2026 11:30:00;10/02/2026 11:45:00;15min;1;1;C;189.975,00;190.110,00;192.320,00;Sim;27,00;135,00;174;27,00;135,00;0,00;0,00;0,00;1h15min;-2.558,00 +WINJ26;10/02/2026 14:15:00;10/02/2026 14:30:00;15min;1;1;C;190.390,00;190.375,00;192.320,00;No;-3,00;-15,00;175;-3,00;-15,00;0,00;0,00;0,00;2h45min;-2.561,00 +WINJ26;10/02/2026 16:45:00;10/02/2026 17:00:00;15min;1;1;C;189.895,00;189.975,00;192.320,00;Sim;16,00;80,00;176;16,00;80,00;0,00;0,00;0,00;2h30min;-2.545,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 13:00:00;3h30min;1;1;V;193.300,00;191.540,00;192.320,00;Sim;-352,00;-1.760,00;177;-352,00;-1.760,00;0,00;0,00;0,00;16h45min;-2.897,00 +WINJ26;11/02/2026 15:15:00;11/02/2026 15:45:00;30min;1;1;V;193.700,00;193.940,00;192.320,00;Sim;48,00;240,00;178;48,00;240,00;0,00;0,00;0,00;5h45min;-2.849,00 +WINJ26;11/02/2026 16:45:00;11/02/2026 17:15:00;30min;1;1;V;193.855,00;194.325,00;192.320,00;Sim;94,00;470,00;179;94,00;470,00;0,00;0,00;0,00;1h30min;-2.755,00 +WINJ26;12/02/2026 10:15:00;12/02/2026 11:15:00;1h;1;1;C;193.280,00;193.465,00;192.320,00;No;37,00;185,00;180;37,00;185,00;0,00;0,00;0,00;17h30min;-2.718,00 +WINJ26;12/02/2026 14:45:00;12/02/2026 17:45:00;3h;1;1;C;192.780,00;192.210,00;192.320,00;Sim;-114,00;-570,00;181;-114,00;-570,00;0,00;0,00;0,00;4h30min;-2.832,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.320,00;Sim;106,00;530,00;182;106,00;530,00;0,00;0,00;0,00;21h45min;-2.726,00 +WINJ26;13/02/2026 16:30:00;18/02/2026 14:00:00;4d21h;1;1;V;189.975,00;189.750,00;192.320,00;No;-45,00;-225,00;183;-45,00;-225,00;0,00;0,00;0,00;4h;-2.771,00 +WINJ26;18/02/2026 14:45:00;18/02/2026 15:15:00;30min;1;1;V;189.525,00;190.405,00;192.320,00;Sim;176,00;880,00;184;176,00;880,00;0,00;0,00;0,00;4d22h;-2.595,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.320,00;No;-36,00;-180,00;185;-36,00;-180,00;0,00;0,00;0,00;19h30min;-2.631,00 +WINJ26;19/02/2026 15:00:00;19/02/2026 16:45:00;1h45min;1;1;V;191.660,00;192.050,00;192.320,00;Sim;78,00;390,00;186;78,00;390,00;0,00;0,00;0,00;4h45min;-2.553,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.320,00;No;42,00;210,00;187;42,00;210,00;0,00;0,00;0,00;20h30min;-2.511,00 +WINJ26;20/02/2026 13:15:00;20/02/2026 14:30:00;1h15min;1;1;V;191.415,00;192.120,00;192.320,00;Sim;141,00;705,00;188;141,00;705,00;0,00;0,00;0,00;1h45min;-2.370,00 +WINJ26;20/02/2026 16:00:00;23/02/2026 09:15:00;2d17h;1;1;V;193.390,00;192.960,00;192.320,00;Sim;-86,00;-430,00;189;-86,00;-430,00;0,00;0,00;0,00;2h45min;-2.456,00 +WINJ26;23/02/2026 10:15:00;23/02/2026 11:15:00;1h;1;1;C;193.015,00;193.115,00;192.320,00;No;20,00;100,00;190;20,00;100,00;0,00;0,00;0,00;2d18h;-2.436,00 +WINJ26;23/02/2026 12:15:00;23/02/2026 12:30:00;15min;1;1;V;193.325,00;193.480,00;192.320,00;Sim;31,00;155,00;191;31,00;155,00;0,00;0,00;0,00;2h;-2.405,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:15:00;15min;1;1;C;192.665,00;192.810,00;192.320,00;Sim;29,00;145,00;192;29,00;145,00;0,00;0,00;0,00;2h45min;-2.376,00 +WINJ26;23/02/2026 17:45:00;24/02/2026 09:15:00;15h30min;1;1;C;192.480,00;194.165,00;192.320,00;Sim;337,00;1.685,00;193;337,00;1.685,00;0,00;0,00;0,00;2h45min;-2.039,00 +WINJ26;24/02/2026 09:30:00;24/02/2026 13:00:00;3h30min;1;1;V;194.750,00;193.240,00;192.320,00;No;-302,00;-1.510,00;194;-302,00;-1.510,00;0,00;0,00;0,00;15h45min;-2.341,00 +WINJ26;24/02/2026 14:00:00;24/02/2026 17:15:00;3h15min;1;1;V;194.720,00;194.835,00;192.320,00;Sim;23,00;115,00;195;23,00;115,00;0,00;0,00;0,00;4h30min;-2.318,00 +WINJ26;24/02/2026 17:30:00;24/02/2026 17:45:00;15min;1;1;C;194.790,00;195.035,00;192.320,00;No;49,00;245,00;196;49,00;245,00;0,00;0,00;0,00;3h30min;-2.269,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:45:00;1h15min;1;1;V;195.155,00;196.370,00;192.320,00;Sim;243,00;1.215,00;197;243,00;1.215,00;0,00;0,00;0,00;16h;-2.026,00 +WINJ26;25/02/2026 14:45:00;25/02/2026 15:00:00;15min;1;1;C;194.855,00;195.080,00;192.320,00;No;45,00;225,00;198;45,00;225,00;0,00;0,00;0,00;5h15min;-1.981,00 +WINJ26;25/02/2026 17:45:00;25/02/2026 18:00:00;15min;1;1;C;194.555,00;194.495,00;192.320,00;Sim;-12,00;-60,00;199;-12,00;-60,00;0,00;0,00;0,00;3h;-1.993,00 +WINJ26;26/02/2026 10:00:00;26/02/2026 10:15:00;15min;1;1;C;194.295,00;194.690,00;192.320,00;Sim;79,00;395,00;200;79,00;395,00;0,00;0,00;0,00;16h15min;-1.914,00 +WINJ26;26/02/2026 10:45:00;26/02/2026 13:30:00;2h45min;1;1;C;194.155,00;193.930,00;192.320,00;Sim;-45,00;-225,00;201;-45,00;-225,00;0,00;0,00;0,00;45min;-1.959,00 +WINJ26;26/02/2026 13:45:00;26/02/2026 14:00:00;15min;1;1;V;193.330,00;193.535,00;192.320,00;No;41,00;205,00;202;41,00;205,00;0,00;0,00;0,00;3h;-1.918,00 +WINJ26;26/02/2026 18:15:00;27/02/2026 09:15:00;15h;1;1;V;193.035,00;194.180,00;192.320,00;Sim;229,00;1.145,00;203;229,00;1.145,00;0,00;0,00;0,00;4h30min;-1.689,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 12:45:00;3h15min;1;1;C;193.430,00;193.580,00;192.320,00;Sim;30,00;150,00;204;30,00;150,00;0,00;0,00;0,00;15h15min;-1.659,00 +WINJ26;27/02/2026 15:15:00;02/03/2026 09:15:00;2d18h;1;1;C;192.690,00;191.035,00;192.320,00;Sim;-331,00;-1.655,00;205;-331,00;-1.655,00;0,00;0,00;0,00;5h45min;-1.990,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 12:00:00;1h30min;1;1;C;190.695,00;191.375,00;192.320,00;Sim;136,00;680,00;206;136,00;680,00;0,00;0,00;0,00;2d19h;-1.854,00 +WINJ26;02/03/2026 13:00:00;02/03/2026 16:30:00;3h30min;1;1;V;193.100,00;191.005,00;192.320,00;No;-419,00;-2.095,00;207;-419,00;-2.095,00;0,00;0,00;0,00;2h30min;-2.273,00 +WINJ26;02/03/2026 17:15:00;02/03/2026 17:30:00;15min;1;1;V;192.005,00;191.950,00;192.320,00;Sim;-11,00;-55,00;208;-11,00;-55,00;0,00;0,00;0,00;4h15min;-2.284,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv new file mode 100644 index 0000000..f81de16 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv @@ -0,0 +1,123 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.280,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;02/09/2025 09:30:00;02/09/2025 10:00:00;30min;1;1;V;150.500,00;151.000,00;192.280,00;No;100,00;500,00;2;100,00;500,00;0,00;0,00;0,00;6d;660,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.280,00;Sim;-40,00;-200,00;3;-40,00;-200,00;0,00;0,00;0,00;6d23h;620,00 +WINJ26;10/09/2025 09:30:00;10/09/2025 10:00:00;30min;1;1;C;152.625,00;152.350,00;192.280,00;No;-55,00;-275,00;4;-55,00;-275,00;0,00;0,00;0,00;1d;565,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 11:00:00;1h30min;1;1;V;153.400,00;152.500,00;192.280,00;Sim;-180,00;-900,00;5;-180,00;-900,00;0,00;0,00;0,00;2d;385,00 +WINJ26;12/09/2025 15:30:00;15/09/2025 09:30:00;2d18h;1;1;C;153.200,00;153.200,00;192.280,00;No;0;0;6;0;0;0,00;0,00;0,00;6h;385,00 +WINJ26;16/09/2025 10:30:00;16/09/2025 14:00:00;3h30min;1;1;C;155.000,00;154.120,00;192.280,00;No;-176,00;-880,00;7;-176,00;-880,00;0,00;0,00;0,00;3d19h;209,00 +WINJ26;16/09/2025 16:00:00;16/09/2025 18:00:00;2h;1;1;C;154.250,00;155.000,00;192.280,00;Sim;150,00;750,00;8;150,00;750,00;0,00;0,00;0,00;5h30min;359,00 +WINJ26;17/09/2025 10:30:00;17/09/2025 12:00:00;1h30min;1;1;C;155.000,00;155.600,00;192.280,00;No;120,00;600,00;9;120,00;600,00;0,00;0,00;0,00;18h30min;479,00 +WINJ26;17/09/2025 16:00:00;22/09/2025 12:00:00;4d20h;1;1;V;154.750,00;156.000,00;192.280,00;Sim;250,00;1.250,00;10;250,00;1.250,00;0,00;0,00;0,00;5h30min;729,00 +WINJ26;22/09/2025 15:00:00;22/09/2025 15:30:00;30min;1;1;C;155.850,00;155.640,00;192.280,00;No;-42,00;-210,00;11;-42,00;-210,00;0,00;0,00;0,00;4d23h;687,00 +WINJ26;24/09/2025 09:00:00;25/09/2025 10:30:00;1d1h;1;1;V;156.000,00;156.500,00;192.280,00;Sim;100,00;500,00;12;100,00;500,00;0,00;0,00;0,00;1d18h;787,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:30:00;1h30min;1;1;C;156.680,00;155.750,00;192.280,00;No;-186,00;-930,00;13;-186,00;-930,00;0,00;0,00;0,00;1d4h;601,00 +WINJ26;26/09/2025 10:30:00;29/09/2025 09:30:00;2d23h;1;1;C;155.500,00;156.700,00;192.280,00;Sim;240,00;1.200,00;14;240,00;1.200,00;0,00;0,00;0,00;21h30min;841,00 +WINJ26;29/09/2025 13:30:00;30/09/2025 11:30:00;22h;1;1;V;156.250,00;156.400,00;192.280,00;No;30,00;150,00;15;30,00;150,00;0,00;0,00;0,00;3d3h;871,00 +WINJ26;30/09/2025 18:00:00;01/10/2025 09:00:00;15h;1;1;C;156.375,00;156.500,00;192.280,00;No;25,00;125,00;16;25,00;125,00;0,00;0,00;0,00;1d4h;896,00 +WINJ26;02/10/2025 10:00:00;07/10/2025 09:00:00;4d23h;1;1;C;155.000,00;152.620,00;192.280,00;Sim;-476,00;-2.380,00;17;-476,00;-2.380,00;0,00;0,00;0,00;1d16h;420,00 +WINJ26;09/10/2025 14:30:00;13/10/2025 09:30:00;3d19h;1;1;C;150.890,00;151.120,00;192.280,00;Sim;46,00;230,00;18;46,00;230,00;0,00;0,00;0,00;7d4h;466,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 13:30:00;3h30min;1;1;C;151.100,00;151.240,00;192.280,00;No;28,00;140,00;19;28,00;140,00;0,00;0,00;0,00;3d19h;494,00 +WINJ26;14/10/2025 10:30:00;14/10/2025 11:00:00;30min;1;1;V;151.165,00;150.805,00;192.280,00;No;-72,00;-360,00;20;-72,00;-360,00;0,00;0,00;0,00;1d;422,00 +WINJ26;14/10/2025 16:30:00;14/10/2025 17:30:00;1h;1;1;V;150.715,00;150.500,00;192.280,00;No;-43,00;-215,00;21;-43,00;-215,00;0,00;0,00;0,00;6h;379,00 +WINJ26;15/10/2025 09:30:00;15/10/2025 10:00:00;30min;1;1;V;150.105,00;150.440,00;192.280,00;No;67,00;335,00;22;67,00;335,00;0,00;0,00;0,00;17h;446,00 +WINJ26;16/10/2025 09:30:00;16/10/2025 10:00:00;30min;1;1;V;150.600,00;150.600,00;192.280,00;Sim;0;0;23;0;0;0,00;0,00;0,00;1d;446,00 +WINJ26;17/10/2025 09:00:00;17/10/2025 10:30:00;1h30min;1;1;V;150.800,00;151.210,00;192.280,00;Sim;82,00;410,00;24;82,00;410,00;0,00;0,00;0,00;23h30min;528,00 +WINJ26;17/10/2025 14:30:00;20/10/2025 16:30:00;3d2h;1;1;V;153.300,00;151.600,00;192.280,00;Sim;-340,00;-1.700,00;25;-340,00;-1.700,00;0,00;0,00;0,00;5h30min;188,00 +WINJ26;20/10/2025 17:00:00;21/10/2025 10:00:00;17h;1;1;V;152.700,00;153.250,00;192.280,00;Sim;110,00;550,00;26;110,00;550,00;0,00;0,00;0,00;3d2h;298,00 +WINJ26;21/10/2025 11:30:00;21/10/2025 12:00:00;30min;1;1;C;153.000,00;153.100,00;192.280,00;No;20,00;100,00;27;20,00;100,00;0,00;0,00;0,00;18h30min;318,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.280,00;Sim;-40,00;-200,00;28;-40,00;-200,00;0,00;0,00;0,00;4h30min;278,00 +WINJ26;22/10/2025 10:00:00;22/10/2025 11:00:00;1h;1;1;C;153.350,00;153.000,00;192.280,00;No;-70,00;-350,00;29;-70,00;-350,00;0,00;0,00;0,00;18h;208,00 +WINJ26;23/10/2025 12:00:00;23/10/2025 12:30:00;30min;1;1;V;153.950,00;153.700,00;192.280,00;Sim;-50,00;-250,00;30;-50,00;-250,00;0,00;0,00;0,00;1d2h;158,00 +WINJ26;24/10/2025 11:00:00;28/10/2025 10:30:00;3d23h;1;1;V;155.800,00;155.000,00;192.280,00;Sim;-160,00;-800,00;31;-160,00;-800,00;0,00;0,00;0,00;23h;-2,00 +WINJ26;29/10/2025 12:00:00;30/10/2025 09:30:00;21h30min;1;1;V;156.250,00;157.250,00;192.280,00;Sim;200,00;1.000,00;32;200,00;1.000,00;0,00;0,00;0,00;5d1h;198,00 +WINJ26;30/10/2025 11:30:00;30/10/2025 12:00:00;30min;1;1;C;157.335,00;157.460,00;192.280,00;No;25,00;125,00;33;25,00;125,00;0,00;0,00;0,00;23h30min;223,00 +WINJ26;31/10/2025 11:30:00;03/11/2025 12:30:00;3d1h;1;1;V;158.680,00;157.700,00;192.280,00;Sim;-196,00;-980,00;34;-196,00;-980,00;0,00;0,00;0,00;1d;27,00 +WINJ26;03/11/2025 16:00:00;04/11/2025 10:00:00;18h;1;1;V;158.430,00;158.640,00;192.280,00;Sim;42,00;210,00;35;42,00;210,00;0,00;0,00;0,00;3d4h;69,00 +WINJ26;04/11/2025 10:30:00;04/11/2025 11:00:00;30min;1;1;C;158.520,00;158.620,00;192.280,00;No;20,00;100,00;36;20,00;100,00;0,00;0,00;0,00;18h30min;89,00 +WINJ26;06/11/2025 13:30:00;07/11/2025 10:00:00;20h30min;1;1;V;161.250,00;162.000,00;192.280,00;Sim;150,00;750,00;37;150,00;750,00;0,00;0,00;0,00;2d3h;239,00 +WINJ26;07/11/2025 14:00:00;07/11/2025 16:00:00;2h;1;1;C;161.250,00;161.875,00;192.280,00;No;125,00;625,00;38;125,00;625,00;0,00;0,00;0,00;1d;364,00 +WINJ26;10/11/2025 12:00:00;11/11/2025 15:00:00;1d3h;1;1;V;166.170,00;163.405,00;192.280,00;Sim;-553,00;-2.765,00;39;-553,00;-2.765,00;0,00;0,00;0,00;2d22h;-189,00 +WINJ26;11/11/2025 18:00:00;12/11/2025 12:30:00;18h30min;1;1;V;165.300,00;166.290,00;192.280,00;Sim;198,00;990,00;40;198,00;990,00;0,00;0,00;0,00;1d6h;9,00 +WINJ26;12/11/2025 17:30:00;12/11/2025 18:00:00;30min;1;1;C;166.000,00;166.100,00;192.280,00;No;20,00;100,00;41;20,00;100,00;0,00;0,00;0,00;23h30min;29,00 +WINJ26;14/11/2025 09:00:00;14/11/2025 11:30:00;2h30min;1;1;C;165.300,00;165.600,00;192.280,00;Sim;60,00;300,00;42;60,00;300,00;0,00;0,00;0,00;1d15h;89,00 +WINJ26;14/11/2025 16:00:00;17/11/2025 10:30:00;2d18h;1;1;V;165.475,00;166.520,00;192.280,00;Sim;209,00;1.045,00;43;209,00;1.045,00;0,00;0,00;0,00;7h;298,00 +WINJ26;17/11/2025 11:30:00;17/11/2025 13:30:00;2h;1;1;C;165.655,00;166.000,00;192.280,00;No;69,00;345,00;44;69,00;345,00;0,00;0,00;0,00;2d19h;367,00 +WINJ26;18/11/2025 09:00:00;18/11/2025 17:00:00;8h;1;1;C;164.750,00;164.900,00;192.280,00;Sim;30,00;150,00;45;30,00;150,00;0,00;0,00;0,00;21h30min;397,00 +WINJ26;19/11/2025 18:00:00;21/11/2025 17:00:00;1d23h;1;1;C;163.470,00;162.695,00;192.280,00;Sim;-155,00;-775,00;46;-155,00;-775,00;0,00;0,00;0,00;1d9h;242,00 +WINJ26;24/11/2025 10:30:00;24/11/2025 18:00:00;7h30min;1;1;V;163.020,00;163.120,00;192.280,00;No;20,00;100,00;47;20,00;100,00;0,00;0,00;0,00;4d16h;262,00 +WINJ26;25/11/2025 09:30:00;25/11/2025 10:00:00;30min;1;1;V;163.435,00;163.025,00;192.280,00;No;-82,00;-410,00;48;-82,00;-410,00;0,00;0,00;0,00;23h;180,00 +WINJ26;25/11/2025 11:00:00;25/11/2025 11:30:00;30min;1;1;V;162.700,00;162.780,00;192.280,00;No;16,00;80,00;49;16,00;80,00;0,00;0,00;0,00;1h30min;196,00 +WINJ26;27/11/2025 11:00:00;28/11/2025 14:00:00;1d3h;1;1;V;166.700,00;165.940,00;192.280,00;Sim;-152,00;-760,00;50;-152,00;-760,00;0,00;0,00;0,00;2d;44,00 +WINJ26;28/11/2025 16:30:00;01/12/2025 10:30:00;2d18h;1;1;V;165.625,00;167.065,00;192.280,00;Sim;288,00;1.440,00;51;288,00;1.440,00;0,00;0,00;0,00;1d5h;332,00 +WINJ26;01/12/2025 12:00:00;02/12/2025 09:30:00;21h30min;1;1;C;166.560,00;166.840,00;192.280,00;No;56,00;280,00;52;56,00;280,00;0,00;0,00;0,00;2d19h;388,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 16:30:00;23h30min;1;1;V;171.680,00;169.165,00;192.280,00;Sim;-503,00;-2.515,00;53;-503,00;-2.515,00;0,00;0,00;0,00;2d5h;-115,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.280,00;Sim;147,00;735,00;54;147,00;735,00;0,00;0,00;0,00;1d18h;32,00 +WINJ26;08/12/2025 09:30:00;08/12/2025 15:30:00;6h;1;1;C;166.180,00;165.630,00;192.280,00;Sim;-110,00;-550,00;55;-110,00;-550,00;0,00;0,00;0,00;2d22h;-78,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 13:00:00;1h;1;1;C;163.700,00;164.830,00;192.280,00;Sim;226,00;1.130,00;56;226,00;1.130,00;0,00;0,00;0,00;1d2h;148,00 +WINJ26;10/12/2025 10:00:00;10/12/2025 10:30:00;30min;1;1;V;164.850,00;165.030,00;192.280,00;No;36,00;180,00;57;36,00;180,00;0,00;0,00;0,00;22h;184,00 +WINJ26;11/12/2025 10:00:00;11/12/2025 11:00:00;1h;1;1;V;165.500,00;165.615,00;192.280,00;Sim;23,00;115,00;58;23,00;115,00;0,00;0,00;0,00;1d;207,00 +WINJ26;12/12/2025 09:00:00;12/12/2025 14:00:00;5h;1;1;V;166.800,00;166.575,00;192.280,00;Sim;-45,00;-225,00;59;-45,00;-225,00;0,00;0,00;0,00;23h;162,00 +WINJ26;15/12/2025 10:30:00;16/12/2025 09:30:00;23h;1;1;V;166.840,00;168.650,00;192.280,00;Sim;362,00;1.810,00;60;362,00;1.810,00;0,00;0,00;0,00;3d1h;524,00 +WINJ26;17/12/2025 12:00:00;18/12/2025 09:30:00;21h30min;1;1;C;164.165,00;163.750,00;192.280,00;No;-83,00;-415,00;61;-83,00;-415,00;0,00;0,00;0,00;2d1h;441,00 +WINJ26;18/12/2025 12:00:00;18/12/2025 14:30:00;2h30min;1;1;V;164.180,00;164.050,00;192.280,00;No;-26,00;-130,00;62;-26,00;-130,00;0,00;0,00;0,00;1d;415,00 +WINJ26;18/12/2025 16:30:00;18/12/2025 17:00:00;30min;1;1;V;164.205,00;164.475,00;192.280,00;Sim;54,00;270,00;63;54,00;270,00;0,00;0,00;0,00;4h30min;469,00 +WINJ26;19/12/2025 14:30:00;19/12/2025 16:00:00;1h30min;1;1;V;165.000,00;165.175,00;192.280,00;Sim;35,00;175,00;64;35,00;175,00;0,00;0,00;0,00;22h;504,00 +WINJ26;22/12/2025 09:00:00;22/12/2025 14:00:00;5h;1;1;C;165.430,00;164.520,00;192.280,00;No;-182,00;-910,00;65;-182,00;-910,00;0,00;0,00;0,00;2d18h;322,00 +WINJ26;23/12/2025 15:30:00;26/12/2025 09:30:00;2d18h;1;1;V;165.790,00;166.390,00;192.280,00;Sim;120,00;600,00;66;120,00;600,00;0,00;0,00;0,00;1d6h;442,00 +WINJ26;26/12/2025 11:30:00;26/12/2025 12:00:00;30min;1;1;C;165.920,00;166.005,00;192.280,00;No;17,00;85,00;67;17,00;85,00;0,00;0,00;0,00;2d20h;459,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 11:00:00;1h30min;1;1;V;166.510,00;167.005,00;192.280,00;Sim;99,00;495,00;68;99,00;495,00;0,00;0,00;0,00;2d22h;558,00 +WINJ26;29/12/2025 17:00:00;29/12/2025 17:30:00;30min;1;1;C;166.175,00;166.330,00;192.280,00;No;31,00;155,00;69;31,00;155,00;0,00;0,00;0,00;7h30min;589,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 18:00:00;7h;1;1;V;167.355,00;167.200,00;192.280,00;Sim;-31,00;-155,00;70;-31,00;-155,00;0,00;0,00;0,00;18h;558,00 +WINJ26;02/01/2026 11:30:00;05/01/2026 09:00:00;2d21h;1;1;C;166.910,00;166.575,00;192.280,00;No;-67,00;-335,00;71;-67,00;-335,00;0,00;0,00;0,00;3d;491,00 +WINJ26;05/01/2026 09:30:00;05/01/2026 10:00:00;30min;1;1;C;166.655,00;166.535,00;192.280,00;Sim;-24,00;-120,00;72;-24,00;-120,00;0,00;0,00;0,00;2d22h;467,00 +WINJ26;06/01/2026 15:30:00;07/01/2026 10:00:00;18h30min;1;1;V;168.900,00;169.260,00;192.280,00;Sim;72,00;360,00;73;72,00;360,00;0,00;0,00;0,00;1d6h;539,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 10:30:00;18h30min;1;1;C;167.710,00;167.945,00;192.280,00;No;47,00;235,00;74;47,00;235,00;0,00;0,00;0,00;1d;586,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 16:30:00;7h;1;1;V;169.035,00;168.050,00;192.280,00;No;-197,00;-985,00;75;-197,00;-985,00;0,00;0,00;0,00;1d17h;389,00 +WINJ26;12/01/2026 09:30:00;12/01/2026 12:30:00;3h;1;1;C;168.765,00;168.635,00;192.280,00;No;-26,00;-130,00;76;-26,00;-130,00;0,00;0,00;0,00;3d;363,00 +WINJ26;13/01/2026 09:00:00;13/01/2026 16:00:00;7h;1;1;C;168.590,00;167.235,00;192.280,00;Sim;-271,00;-1.355,00;77;-271,00;-1.355,00;0,00;0,00;0,00;23h30min;92,00 +WINJ26;13/01/2026 17:00:00;14/01/2026 09:30:00;16h30min;1;1;C;167.335,00;167.920,00;192.280,00;Sim;117,00;585,00;78;117,00;585,00;0,00;0,00;0,00;8h;209,00 +WINJ26;14/01/2026 11:30:00;15/01/2026 09:00:00;21h30min;1;1;V;170.200,00;168.145,00;192.280,00;Sim;-411,00;-2.055,00;79;-411,00;-2.055,00;0,00;0,00;0,00;18h30min;-202,00 +WINJ26;15/01/2026 11:30:00;16/01/2026 09:00:00;21h30min;1;1;V;171.100,00;170.290,00;192.280,00;Sim;-162,00;-810,00;80;-162,00;-810,00;0,00;0,00;0,00;1d;-364,00 +WINJ26;16/01/2026 15:30:00;19/01/2026 12:00:00;2d20h;1;1;C;169.680,00;169.745,00;192.280,00;No;13,00;65,00;81;13,00;65,00;0,00;0,00;0,00;1d4h;-351,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.280,00;Sim;302,00;1.510,00;82;302,00;1.510,00;0,00;0,00;0,00;3d18h;-49,00 +WINJ26;20/01/2026 16:00:00;21/01/2026 13:30:00;21h30min;1;1;V;175.065,00;170.615,00;192.280,00;Sim;-890,00;-4.450,00;83;-890,00;-4.450,00;0,00;0,00;0,00;6h;-939,00 +WINJ26;22/01/2026 15:30:00;23/01/2026 13:00:00;21h30min;1;1;V;182.575,00;181.395,00;192.280,00;Sim;-236,00;-1.180,00;84;-236,00;-1.180,00;0,00;0,00;0,00;1d23h;-1.175,00 +WINJ26;23/01/2026 16:00:00;23/01/2026 16:30:00;30min;1;1;C;182.625,00;183.050,00;192.280,00;No;85,00;425,00;85;85,00;425,00;0,00;0,00;0,00;1d;-1.090,00 +WINJ26;23/01/2026 18:00:00;26/01/2026 11:00:00;2d17h;1;1;V;183.135,00;184.095,00;192.280,00;Sim;192,00;960,00;86;192,00;960,00;0,00;0,00;0,00;2h;-898,00 +WINJ26;27/01/2026 09:30:00;27/01/2026 10:00:00;30min;1;1;C;185.570,00;185.950,00;192.280,00;No;76,00;380,00;87;76,00;380,00;0,00;0,00;0,00;3d15h;-822,00 +WINJ26;27/01/2026 14:30:00;28/01/2026 09:00:00;18h30min;1;1;V;187.620,00;187.815,00;192.280,00;Sim;39,00;195,00;88;39,00;195,00;0,00;0,00;0,00;5h;-783,00 +WINJ26;28/01/2026 09:30:00;28/01/2026 10:00:00;30min;1;1;C;187.510,00;188.030,00;192.280,00;No;104,00;520,00;89;104,00;520,00;0,00;0,00;0,00;19h;-679,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.280,00;Sim;104,00;520,00;90;104,00;520,00;0,00;0,00;0,00;3h;-575,00 +WINJ26;28/01/2026 17:30:00;28/01/2026 18:00:00;30min;1;1;C;188.950,00;189.815,00;192.280,00;No;173,00;865,00;91;173,00;865,00;0,00;0,00;0,00;5h;-402,00 +WINJ26;29/01/2026 10:30:00;29/01/2026 12:00:00;1h30min;1;1;V;189.110,00;190.990,00;192.280,00;Sim;376,00;1.880,00;92;376,00;1.880,00;0,00;0,00;0,00;17h;-26,00 +WINJ26;29/01/2026 14:30:00;30/01/2026 12:00:00;21h30min;1;1;C;188.500,00;187.670,00;192.280,00;Sim;-166,00;-830,00;93;-166,00;-830,00;0,00;0,00;0,00;4h;-192,00 +WINJ26;30/01/2026 16:30:00;02/02/2026 10:00:00;2d17h;1;1;C;186.345,00;186.765,00;192.280,00;Sim;84,00;420,00;94;84,00;420,00;0,00;0,00;0,00;1d2h;-108,00 +WINJ26;03/02/2026 13:30:00;03/02/2026 15:30:00;2h;1;1;V;189.500,00;190.815,00;192.280,00;No;263,00;1.315,00;95;263,00;1.315,00;0,00;0,00;0,00;3d21h;155,00 +WINJ26;04/02/2026 17:30:00;05/02/2026 10:30:00;17h;1;1;C;185.725,00;186.885,00;192.280,00;Sim;232,00;1.160,00;96;232,00;1.160,00;0,00;0,00;0,00;1d4h;387,00 +WINJ26;06/02/2026 15:00:00;06/02/2026 15:30:00;30min;1;1;V;186.340,00;186.790,00;192.280,00;No;90,00;450,00;97;90,00;450,00;0,00;0,00;0,00;1d21h;477,00 +WINJ26;09/02/2026 13:00:00;10/02/2026 10:30:00;21h30min;1;1;V;189.555,00;187.835,00;192.280,00;Sim;-344,00;-1.720,00;98;-344,00;-1.720,00;0,00;0,00;0,00;2d22h;133,00 +WINJ26;10/02/2026 13:00:00;10/02/2026 15:30:00;2h30min;1;1;V;189.705,00;190.815,00;192.280,00;Sim;222,00;1.110,00;99;222,00;1.110,00;0,00;0,00;0,00;1d;355,00 +WINJ26;10/02/2026 17:00:00;10/02/2026 17:30:00;30min;1;1;C;189.975,00;190.565,00;192.280,00;No;118,00;590,00;100;118,00;590,00;0,00;0,00;0,00;4h;473,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 10:00:00;30min;1;1;C;191.540,00;192.235,00;192.280,00;No;139,00;695,00;101;139,00;695,00;0,00;0,00;0,00;16h30min;612,00 +WINJ26;11/02/2026 12:30:00;12/02/2026 09:30:00;21h;1;1;V;193.200,00;192.495,00;192.280,00;Sim;-141,00;-705,00;102;-141,00;-705,00;0,00;0,00;0,00;3h;471,00 +WINJ26;12/02/2026 11:30:00;12/02/2026 12:00:00;30min;1;1;C;193.715,00;193.430,00;192.280,00;No;-57,00;-285,00;103;-57,00;-285,00;0,00;0,00;0,00;23h;414,00 +WINJ26;12/02/2026 12:30:00;12/02/2026 13:00:00;30min;1;1;C;193.660,00;193.440,00;192.280,00;Sim;-44,00;-220,00;104;-44,00;-220,00;0,00;0,00;0,00;1h;370,00 +WINJ26;12/02/2026 17:00:00;13/02/2026 14:30:00;21h30min;1;1;C;192.050,00;189.380,00;192.280,00;Sim;-534,00;-2.670,00;105;-534,00;-2.670,00;0,00;0,00;0,00;4h30min;-164,00 +WINJ26;19/02/2026 17:00:00;20/02/2026 09:30:00;16h30min;1;1;V;191.020,00;191.675,00;192.280,00;No;131,00;655,00;106;131,00;655,00;0,00;0,00;0,00;7d;-33,00 +WINJ26;23/02/2026 09:30:00;23/02/2026 10:00:00;30min;1;1;V;192.560,00;192.925,00;192.280,00;Sim;73,00;365,00;107;73,00;365,00;0,00;0,00;0,00;3d16h;40,00 +WINJ26;23/02/2026 12:30:00;23/02/2026 13:00:00;30min;1;1;V;192.475,00;193.325,00;192.280,00;Sim;170,00;850,00;108;170,00;850,00;0,00;0,00;0,00;3h;210,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:30:00;30min;1;1;C;192.665,00;192.890,00;192.280,00;No;45,00;225,00;109;45,00;225,00;0,00;0,00;0,00;2h30min;255,00 +WINJ26;23/02/2026 18:00:00;24/02/2026 09:30:00;15h30min;1;1;C;192.515,00;193.240,00;192.280,00;Sim;145,00;725,00;110;145,00;725,00;0,00;0,00;0,00;3h;400,00 +WINJ26;24/02/2026 11:00:00;24/02/2026 18:00:00;7h;1;1;V;195.185,00;193.505,00;192.280,00;Sim;-336,00;-1.680,00;111;-336,00;-1.680,00;0,00;0,00;0,00;17h;64,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 11:00:00;30min;1;1;V;194.965,00;195.645,00;192.280,00;Sim;136,00;680,00;112;136,00;680,00;0,00;0,00;0,00;23h30min;200,00 +WINJ26;25/02/2026 11:30:00;25/02/2026 15:00:00;3h30min;1;1;C;195.295,00;195.080,00;192.280,00;No;-43,00;-215,00;113;-43,00;-215,00;0,00;0,00;0,00;1h;157,00 +WINJ26;25/02/2026 18:00:00;26/02/2026 15:30:00;21h30min;1;1;C;194.495,00;193.395,00;192.280,00;Sim;-220,00;-1.100,00;114;-220,00;-1.100,00;0,00;0,00;0,00;6h30min;-63,00 +WINJ26;27/02/2026 11:00:00;27/02/2026 18:00:00;7h;1;1;C;193.095,00;191.920,00;192.280,00;Sim;-235,00;-1.175,00;115;-235,00;-1.175,00;0,00;0,00;0,00;1d17h;-298,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 14:30:00;4h;1;1;C;190.695,00;191.805,00;192.280,00;Sim;222,00;1.110,00;116;222,00;1.110,00;0,00;0,00;0,00;2d23h;-76,00 +WINJ26;02/03/2026 17:30:00; - ; - ;0;1;V;192.325,00;192.005,00;192.325,00;No;-64,00;-320,00;117;-64,00;-320,00;0,00;0,00;0,00;7h;-140,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv new file mode 100644 index 0000000..a1781e8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv @@ -0,0 +1,79 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.325,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;02/09/2025 10:00:00;03/09/2025 10:00:00;1d;1;1;V;150.700,00;150.500,00;192.325,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;6d1h;520,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.325,00;Sim;-40,00;-200,00;3;-40,00;-200,00;0,00;0,00;0,00;6d23h;480,00 +WINJ26;12/09/2025 09:00:00;12/09/2025 11:00:00;2h;1;1;V;153.400,00;152.500,00;192.325,00;Sim;-180,00;-900,00;4;-180,00;-900,00;0,00;0,00;0,00;3d;300,00 +WINJ26;12/09/2025 15:00:00;15/09/2025 09:00:00;2d18h;1;1;C;153.200,00;153.200,00;192.325,00;No;0;0;5;0;0;0,00;0,00;0,00;6h;300,00 +WINJ26;17/09/2025 16:00:00;22/09/2025 12:00:00;4d20h;1;1;V;154.750,00;156.000,00;192.325,00;Sim;250,00;1.250,00;6;250,00;1.250,00;0,00;0,00;0,00;5d1h;550,00 +WINJ26;22/09/2025 15:00:00;22/09/2025 16:00:00;1h;1;1;C;155.850,00;155.510,00;192.325,00;No;-68,00;-340,00;7;-68,00;-340,00;0,00;0,00;0,00;4d23h;482,00 +WINJ26;24/09/2025 11:00:00;25/09/2025 11:00:00;1d;1;1;V;155.750,00;156.725,00;192.325,00;Sim;195,00;975,00;8;195,00;975,00;0,00;0,00;0,00;1d20h;677,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:00:00;1h;1;1;C;156.680,00;155.750,00;192.325,00;No;-186,00;-930,00;9;-186,00;-930,00;0,00;0,00;0,00;1d2h;491,00 +WINJ26;29/09/2025 09:00:00;29/09/2025 10:00:00;1h;1;1;C;156.400,00;157.250,00;192.325,00;Sim;170,00;850,00;10;170,00;850,00;0,00;0,00;0,00;3d20h;661,00 +WINJ26;29/09/2025 13:00:00;30/09/2025 12:00:00;23h;1;1;V;156.000,00;156.400,00;192.325,00;No;80,00;400,00;11;80,00;400,00;0,00;0,00;0,00;4h;741,00 +WINJ26;30/09/2025 18:00:00;01/10/2025 09:00:00;15h;1;1;C;156.375,00;156.500,00;192.325,00;Sim;25,00;125,00;12;25,00;125,00;0,00;0,00;0,00;1d5h;766,00 +WINJ26;10/10/2025 10:00:00;14/10/2025 13:00:00;4d3h;1;1;C;151.240,00;151.080,00;192.325,00;Sim;-32,00;-160,00;13;-32,00;-160,00;0,00;0,00;0,00;9d16h;734,00 +WINJ26;16/10/2025 10:00:00;16/10/2025 11:00:00;1h;1;1;V;150.965,00;150.600,00;192.325,00;No;-73,00;-365,00;14;-73,00;-365,00;0,00;0,00;0,00;6d;661,00 +WINJ26;17/10/2025 10:00:00;20/10/2025 17:00:00;3d7h;1;1;V;153.250,00;150.800,00;192.325,00;Sim;-490,00;-2.450,00;15;-490,00;-2.450,00;0,00;0,00;0,00;1d;171,00 +WINJ26;20/10/2025 18:00:00;21/10/2025 11:00:00;17h;1;1;V;152.950,00;153.250,00;192.325,00;Sim;60,00;300,00;16;60,00;300,00;0,00;0,00;0,00;3d8h;231,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.325,00;No;-40,00;-200,00;17;-40,00;-200,00;0,00;0,00;0,00;22h;191,00 +WINJ26;23/10/2025 18:00:00;28/10/2025 14:00:00;4d20h;1;1;V;156.200,00;154.600,00;192.325,00;Sim;-320,00;-1.600,00;18;-320,00;-1.600,00;0,00;0,00;0,00;2d2h;-129,00 +WINJ26;28/10/2025 18:00:00;30/10/2025 10:00:00;1d16h;1;1;V;156.695,00;156.200,00;192.325,00;Sim;-99,00;-495,00;19;-99,00;-495,00;0,00;0,00;0,00;5d;-228,00 +WINJ26;30/10/2025 11:00:00;30/10/2025 12:00:00;1h;1;1;C;157.335,00;157.460,00;192.325,00;No;25,00;125,00;20;25,00;125,00;0,00;0,00;0,00;1d17h;-203,00 +WINJ26;31/10/2025 15:00:00;31/10/2025 16:00:00;1h;1;1;C;157.825,00;158.000,00;192.325,00;No;35,00;175,00;21;35,00;175,00;0,00;0,00;0,00;1d4h;-168,00 +WINJ26;03/11/2025 13:00:00;04/11/2025 10:00:00;21h;1;1;V;158.430,00;158.750,00;192.325,00;Sim;64,00;320,00;22;64,00;320,00;0,00;0,00;0,00;2d22h;-104,00 +WINJ26;04/11/2025 11:00:00;04/11/2025 12:00:00;1h;1;1;C;158.620,00;159.240,00;192.325,00;No;124,00;620,00;23;124,00;620,00;0,00;0,00;0,00;22h;20,00 +WINJ26;04/11/2025 17:00:00;04/11/2025 18:00:00;1h;1;1;C;158.780,00;159.000,00;192.325,00;No;44,00;220,00;24;44,00;220,00;0,00;0,00;0,00;6h;64,00 +WINJ26;05/11/2025 11:00:00;05/11/2025 12:00:00;1h;1;1;C;159.460,00;160.120,00;192.325,00;No;132,00;660,00;25;132,00;660,00;0,00;0,00;0,00;18h;196,00 +WINJ26;06/11/2025 13:00:00;07/11/2025 11:00:00;22h;1;1;V;161.000,00;162.000,00;192.325,00;Sim;200,00;1.000,00;26;200,00;1.000,00;0,00;0,00;0,00;1d2h;396,00 +WINJ26;07/11/2025 14:00:00;07/11/2025 16:00:00;2h;1;1;C;161.250,00;161.875,00;192.325,00;No;125,00;625,00;27;125,00;625,00;0,00;0,00;0,00;1d1h;521,00 +WINJ26;10/11/2025 12:00:00;12/11/2025 10:00:00;1d22h;1;1;V;166.200,00;163.405,00;192.325,00;Sim;-559,00;-2.795,00;28;-559,00;-2.795,00;0,00;0,00;0,00;2d22h;-38,00 +WINJ26;12/11/2025 18:00:00;13/11/2025 09:00:00;15h;1;1;C;166.100,00;165.995,00;192.325,00;No;-21,00;-105,00;29;-21,00;-105,00;0,00;0,00;0,00;2d6h;-59,00 +WINJ26;14/11/2025 12:00:00;14/11/2025 14:00:00;2h;1;1;C;166.105,00;166.635,00;192.325,00;No;106,00;530,00;30;106,00;530,00;0,00;0,00;0,00;1d18h;47,00 +WINJ26;17/11/2025 13:00:00;17/11/2025 14:00:00;1h;1;1;C;166.000,00;165.840,00;192.325,00;Sim;-32,00;-160,00;31;-32,00;-160,00;0,00;0,00;0,00;3d1h;15,00 +WINJ26;18/11/2025 11:00:00;21/11/2025 12:00:00;3d1h;1;1;C;164.500,00;162.180,00;192.325,00;Sim;-464,00;-2.320,00;32;-464,00;-2.320,00;0,00;0,00;0,00;22h;-449,00 +WINJ26;21/11/2025 15:00:00;24/11/2025 17:00:00;3d2h;1;1;C;162.250,00;163.065,00;192.325,00;Sim;163,00;815,00;33;163,00;815,00;0,00;0,00;0,00;3d4h;-286,00 +WINJ26;27/11/2025 13:00:00;28/11/2025 18:00:00;1d5h;1;1;V;166.670,00;166.020,00;192.325,00;Sim;-130,00;-650,00;34;-130,00;-650,00;0,00;0,00;0,00;5d22h;-416,00 +WINJ26;01/12/2025 12:00:00;02/12/2025 10:00:00;22h;1;1;C;166.560,00;166.390,00;192.325,00;No;-34,00;-170,00;35;-34,00;-170,00;0,00;0,00;0,00;3d23h;-450,00 +WINJ26;03/12/2025 17:00:00;05/12/2025 12:00:00;1d19h;1;1;V;172.240,00;169.165,00;192.325,00;Sim;-615,00;-3.075,00;36;-615,00;-3.075,00;0,00;0,00;0,00;2d5h;-1.065,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.325,00;Sim;387,00;1.935,00;37;387,00;1.935,00;0,00;0,00;0,00;1d20h;-678,00 +WINJ26;08/12/2025 10:00:00;09/12/2025 16:00:00;1d6h;1;1;C;165.600,00;165.225,00;192.325,00;Sim;-75,00;-375,00;38;-75,00;-375,00;0,00;0,00;0,00;2d21h;-753,00 +WINJ26;12/12/2025 13:00:00;12/12/2025 14:00:00;1h;1;1;V;166.800,00;166.300,00;192.325,00;No;-100,00;-500,00;39;-100,00;-500,00;0,00;0,00;0,00;4d3h;-853,00 +WINJ26;15/12/2025 15:00:00;16/12/2025 10:00:00;19h;1;1;V;167.270,00;169.100,00;192.325,00;Sim;366,00;1.830,00;40;366,00;1.830,00;0,00;0,00;0,00;3d2h;-487,00 +WINJ26;17/12/2025 12:00:00;18/12/2025 13:00:00;1d1h;1;1;C;164.165,00;164.805,00;192.325,00;Sim;128,00;640,00;41;128,00;640,00;0,00;0,00;0,00;1d21h;-359,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 18:00:00;3h;1;1;V;164.745,00;165.135,00;192.325,00;No;78,00;390,00;42;78,00;390,00;0,00;0,00;0,00;2d3h;-281,00 +WINJ26;26/12/2025 10:00:00;26/12/2025 11:00:00;1h;1;1;V;165.420,00;165.700,00;192.325,00;Sim;56,00;280,00;43;56,00;280,00;0,00;0,00;0,00;6d19h;-225,00 +WINJ26;29/12/2025 10:00:00;29/12/2025 13:00:00;3h;1;1;V;166.250,00;166.885,00;192.325,00;Sim;127,00;635,00;44;127,00;635,00;0,00;0,00;0,00;3d;-98,00 +WINJ26;29/12/2025 17:00:00;30/12/2025 09:00:00;16h;1;1;C;166.175,00;166.530,00;192.325,00;No;71,00;355,00;45;71,00;355,00;0,00;0,00;0,00;7h;-27,00 +WINJ26;30/12/2025 11:00:00;02/01/2026 09:00:00;2d22h;1;1;V;167.265,00;167.200,00;192.325,00;Sim;-13,00;-65,00;46;-13,00;-65,00;0,00;0,00;0,00;18h;-40,00 +WINJ26;05/01/2026 10:00:00;05/01/2026 11:00:00;1h;1;1;C;166.535,00;166.500,00;192.325,00;No;-7,00;-35,00;47;-7,00;-35,00;0,00;0,00;0,00;5d23h;-47,00 +WINJ26;05/01/2026 13:00:00;05/01/2026 14:00:00;1h;1;1;C;167.270,00;167.400,00;192.325,00;No;26,00;130,00;48;26,00;130,00;0,00;0,00;0,00;3h;-21,00 +WINJ26;05/01/2026 17:00:00;07/01/2026 11:00:00;1d18h;1;1;V;168.330,00;167.545,00;192.325,00;Sim;-157,00;-785,00;49;-157,00;-785,00;0,00;0,00;0,00;4h;-178,00 +WINJ26;08/01/2026 12:00:00;08/01/2026 13:00:00;1h;1;1;C;167.765,00;168.000,00;192.325,00;No;47,00;235,00;50;47,00;235,00;0,00;0,00;0,00;2d19h;-131,00 +WINJ26;09/01/2026 16:00:00;12/01/2026 09:00:00;2d17h;1;1;V;168.590,00;169.300,00;192.325,00;Sim;142,00;710,00;51;142,00;710,00;0,00;0,00;0,00;1d4h;11,00 +WINJ26;12/01/2026 12:00:00;12/01/2026 13:00:00;1h;1;1;C;168.425,00;168.755,00;192.325,00;No;66,00;330,00;52;66,00;330,00;0,00;0,00;0,00;2d20h;77,00 +WINJ26;14/01/2026 10:00:00;14/01/2026 11:00:00;1h;1;1;C;168.200,00;168.220,00;192.325,00;Sim;4,00;20,00;53;4,00;20,00;0,00;0,00;0,00;1d22h;81,00 +WINJ26;14/01/2026 13:00:00;15/01/2026 17:00:00;1d4h;1;1;V;170.755,00;168.615,00;192.325,00;No;-428,00;-2.140,00;54;-428,00;-2.140,00;0,00;0,00;0,00;3h;-347,00 +WINJ26;16/01/2026 14:00:00;19/01/2026 14:00:00;3d;1;1;C;169.535,00;169.845,00;192.325,00;No;62,00;310,00;55;62,00;310,00;0,00;0,00;0,00;2d1h;-285,00 +WINJ26;20/01/2026 12:00:00;20/01/2026 13:00:00;1h;1;1;C;170.520,00;171.065,00;192.325,00;No;109,00;545,00;56;109,00;545,00;0,00;0,00;0,00;3d22h;-176,00 +WINJ26;22/01/2026 17:00:00;26/01/2026 11:00:00;3d18h;1;1;V;183.135,00;180.810,00;192.325,00;Sim;-465,00;-2.325,00;57;-465,00;-2.325,00;0,00;0,00;0,00;2d5h;-641,00 +WINJ26;28/01/2026 10:00:00;28/01/2026 11:00:00;1h;1;1;C;188.030,00;189.035,00;192.325,00;No;201,00;1.005,00;58;201,00;1.005,00;0,00;0,00;0,00;5d17h;-440,00 +WINJ26;28/01/2026 14:00:00;28/01/2026 15:00:00;1h;1;1;C;188.675,00;188.575,00;192.325,00;No;-20,00;-100,00;59;-20,00;-100,00;0,00;0,00;0,00;4h;-460,00 +WINJ26;28/01/2026 18:00:00;29/01/2026 09:00:00;15h;1;1;C;189.815,00;191.225,00;192.325,00;No;282,00;1.410,00;60;282,00;1.410,00;0,00;0,00;0,00;4h;-178,00 +WINJ26;02/02/2026 10:00:00;02/02/2026 11:00:00;1h;1;1;C;186.765,00;187.505,00;192.325,00;Sim;148,00;740,00;61;148,00;740,00;0,00;0,00;0,00;4d16h;-30,00 +WINJ26;02/02/2026 14:00:00;02/02/2026 15:00:00;1h;1;1;C;187.145,00;187.100,00;192.325,00;No;-9,00;-45,00;62;-9,00;-45,00;0,00;0,00;0,00;4h;-39,00 +WINJ26;03/02/2026 15:00:00;04/02/2026 10:00:00;19h;1;1;V;188.980,00;189.980,00;192.325,00;Sim;200,00;1.000,00;63;200,00;1.000,00;0,00;0,00;0,00;1d1h;161,00 +WINJ26;05/02/2026 09:00:00;05/02/2026 12:00:00;3h;1;1;C;186.000,00;187.535,00;192.325,00;Sim;307,00;1.535,00;64;307,00;1.535,00;0,00;0,00;0,00;1d18h;468,00 +WINJ26;06/02/2026 13:00:00;06/02/2026 14:00:00;1h;1;1;C;186.225,00;187.115,00;192.325,00;No;178,00;890,00;65;178,00;890,00;0,00;0,00;0,00;1d4h;646,00 +WINJ26;09/02/2026 11:00:00;10/02/2026 15:00:00;1d4h;1;1;V;190.045,00;187.585,00;192.325,00;No;-492,00;-2.460,00;66;-492,00;-2.460,00;0,00;0,00;0,00;2d22h;154,00 +WINJ26;11/02/2026 16:00:00;12/02/2026 14:00:00;22h;1;1;V;192.510,00;193.695,00;192.325,00;Sim;237,00;1.185,00;67;237,00;1.185,00;0,00;0,00;0,00;2d5h;391,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.325,00;No;212,00;1.060,00;68;212,00;1.060,00;0,00;0,00;0,00;1d22h;603,00 +WINJ26;19/02/2026 14:00:00;20/02/2026 10:00:00;20h;1;1;V;190.705,00;192.160,00;192.325,00;No;291,00;1.455,00;69;291,00;1.455,00;0,00;0,00;0,00;6d;894,00 +WINJ26;23/02/2026 10:00:00;23/02/2026 13:00:00;3h;1;1;V;192.475,00;192.560,00;192.325,00;Sim;17,00;85,00;70;17,00;85,00;0,00;0,00;0,00;3d20h;911,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.325,00;Sim;131,00;655,00;71;131,00;655,00;0,00;0,00;0,00;2d1h;1.042,00 +WINJ26;26/02/2026 17:00:00;26/02/2026 18:00:00;1h;1;1;C;194.145,00;194.320,00;192.325,00;No;35,00;175,00;72;35,00;175,00;0,00;0,00;0,00;1d6h;1.077,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.325,00;Sim;133,00;665,00;73;133,00;665,00;0,00;0,00;0,00;3d19h;1.210,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv new file mode 100644 index 0000000..c45e580 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv @@ -0,0 +1,82 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:26:00;19/12/2025 15:50:00;24min;1;1;C;165.150,00;165.130,00;192.300,00;No;-4,00;-20,00;1;-4,00;-20,00;0,00;0,00;0,00; - ;-4,00 +WINJ26;19/12/2025 17:44:00;19/12/2025 18:06:00;22min;1;1;C;164.715,00;164.800,00;192.300,00;Sim;17,00;85,00;2;17,00;85,00;0,00;0,00;0,00;2h18min;13,00 +WINJ26;22/12/2025 15:22:00;22/12/2025 15:36:00;14min;1;1;C;164.065,00;164.255,00;192.300,00;Sim;38,00;190,00;3;38,00;190,00;0,00;0,00;0,00;2d21h;51,00 +WINJ26;23/12/2025 09:46:00;23/12/2025 10:00:00;14min;1;1;V;165.025,00;165.350,00;192.300,00;No;65,00;325,00;4;65,00;325,00;0,00;0,00;0,00;18h24min;116,00 +WINJ26;23/12/2025 15:12:00;23/12/2025 15:24:00;12min;1;1;C;166.305,00;166.425,00;192.300,00;No;24,00;120,00;5;24,00;120,00;0,00;0,00;0,00;5h26min;140,00 +WINJ26;23/12/2025 18:08:00;23/12/2025 18:20:00;12min;1;1;V;166.530,00;166.745,00;192.300,00;Sim;43,00;215,00;6;43,00;215,00;0,00;0,00;0,00;2h56min;183,00 +WINJ26;26/12/2025 17:46:00;29/12/2025 09:02:00;2d15h;1;1;V;167.230,00;167.045,00;192.300,00;Sim;-37,00;-185,00;7;-37,00;-185,00;0,00;0,00;0,00;2d23h;146,00 +WINJ26;05/01/2026 14:08:00;05/01/2026 14:28:00;20min;1;1;V;167.405,00;167.485,00;192.300,00;Sim;16,00;80,00;8;16,00;80,00;0,00;0,00;0,00;9d20h;162,00 +WINJ26;07/01/2026 11:18:00;07/01/2026 12:34:00;1h16min;1;1;C;168.005,00;167.575,00;192.300,00;No;-86,00;-430,00;9;-86,00;-430,00;0,00;0,00;0,00;1d21h;76,00 +WINJ26;09/01/2026 09:02:00;09/01/2026 09:12:00;10min;1;1;V;168.140,00;168.600,00;192.300,00;Sim;92,00;460,00;10;92,00;460,00;0,00;0,00;0,00;1d21h;168,00 +WINJ26;09/01/2026 10:34:00;09/01/2026 11:02:00;28min;1;1;V;169.045,00;168.785,00;192.300,00;Sim;-52,00;-260,00;11;-52,00;-260,00;0,00;0,00;0,00;1h32min;116,00 +WINJ26;09/01/2026 17:56:00;12/01/2026 09:02:00;2d15h;1;1;C;168.725,00;168.705,00;192.300,00;No;-4,00;-20,00;12;-4,00;-20,00;0,00;0,00;0,00;7h22min;112,00 +WINJ26;13/01/2026 10:04:00;13/01/2026 10:22:00;18min;1;1;C;167.545,00;167.625,00;192.300,00;Sim;16,00;80,00;13;16,00;80,00;0,00;0,00;0,00;3d16h;128,00 +WINJ26;14/01/2026 09:04:00;14/01/2026 10:54:00;1h50min;1;1;V;168.375,00;167.295,00;192.300,00;No;-216,00;-1.080,00;14;-216,00;-1.080,00;0,00;0,00;0,00;23h;-88,00 +WINJ26;14/01/2026 11:04:00;14/01/2026 11:22:00;18min;1;1;C;168.095,00;168.170,00;192.300,00;No;15,00;75,00;15;15,00;75,00;0,00;0,00;0,00;2h;-73,00 +WINJ26;14/01/2026 15:22:00;14/01/2026 17:02:00;1h40min;1;1;V;169.750,00;169.165,00;192.300,00;Sim;-117,00;-585,00;16;-117,00;-585,00;0,00;0,00;0,00;4h18min;-190,00 +WINJ26;14/01/2026 18:14:00;15/01/2026 09:02:00;14h48min;1;1;V;170.355,00;170.500,00;192.300,00;Sim;29,00;145,00;17;29,00;145,00;0,00;0,00;0,00;2h52min;-161,00 +WINJ26;15/01/2026 17:10:00;15/01/2026 18:02:00;52min;1;1;C;170.650,00;170.700,00;192.300,00;No;10,00;50,00;18;10,00;50,00;0,00;0,00;0,00;22h56min;-151,00 +WINJ26;16/01/2026 11:02:00;16/01/2026 11:48:00;46min;1;1;C;169.955,00;169.830,00;192.300,00;Sim;-25,00;-125,00;19;-25,00;-125,00;0,00;0,00;0,00;17h52min;-176,00 +WINJ26;16/01/2026 12:44:00;16/01/2026 12:50:00;6min;1;1;C;169.285,00;169.500,00;192.300,00;Sim;43,00;215,00;20;43,00;215,00;0,00;0,00;0,00;1h42min;-133,00 +WINJ26;19/01/2026 09:08:00;19/01/2026 09:16:00;8min;1;1;C;169.095,00;169.400,00;192.300,00;Sim;61,00;305,00;21;61,00;305,00;0,00;0,00;0,00;2d20h;-72,00 +WINJ26;19/01/2026 10:12:00;19/01/2026 10:20:00;8min;1;1;V;169.640,00;169.930,00;192.300,00;No;58,00;290,00;22;58,00;290,00;0,00;0,00;0,00;1h4min;-14,00 +WINJ26;20/01/2026 14:36:00;20/01/2026 15:32:00;56min;1;1;C;170.995,00;170.895,00;192.300,00;No;-20,00;-100,00;23;-20,00;-100,00;0,00;0,00;0,00;1d4h;-34,00 +WINJ26;20/01/2026 15:54:00;20/01/2026 16:28:00;34min;1;1;C;170.665,00;170.715,00;192.300,00;Sim;10,00;50,00;24;10,00;50,00;0,00;0,00;0,00;1h18min;-24,00 +WINJ26;20/01/2026 17:54:00;20/01/2026 18:22:00;28min;1;1;V;171.015,00;171.105,00;192.300,00;Sim;18,00;90,00;25;18,00;90,00;0,00;0,00;0,00;2h;-6,00 +WINJ26;21/01/2026 09:16:00;21/01/2026 10:44:00;1h28min;1;1;V;173.400,00;172.500,00;192.300,00;Sim;-180,00;-900,00;26;-180,00;-900,00;0,00;0,00;0,00;15h22min;-186,00 +WINJ26;21/01/2026 14:34:00;21/01/2026 14:40:00;6min;1;1;C;174.760,00;174.890,00;192.300,00;No;26,00;130,00;27;26,00;130,00;0,00;0,00;0,00;5h18min;-160,00 +WINJ26;21/01/2026 15:30:00;21/01/2026 16:16:00;46min;1;1;V;175.670,00;175.380,00;192.300,00;Sim;-58,00;-290,00;28;-58,00;-290,00;0,00;0,00;0,00;56min;-218,00 +WINJ26;22/01/2026 12:30:00;22/01/2026 13:14:00;44min;1;1;V;181.695,00;181.395,00;192.300,00;Sim;-60,00;-300,00;29;-60,00;-300,00;0,00;0,00;0,00;21h;-278,00 +WINJ26;23/01/2026 09:06:00;23/01/2026 09:18:00;12min;1;1;V;181.370,00;182.050,00;192.300,00;Sim;136,00;680,00;30;136,00;680,00;0,00;0,00;0,00;20h36min;-142,00 +WINJ26;23/01/2026 12:34:00;23/01/2026 12:46:00;12min;1;1;V;182.000,00;182.650,00;192.300,00;Sim;130,00;650,00;31;130,00;650,00;0,00;0,00;0,00;3h28min;-12,00 +WINJ26;23/01/2026 16:26:00;23/01/2026 16:58:00;32min;1;1;V;183.170,00;183.120,00;192.300,00;Sim;-10,00;-50,00;32;-10,00;-50,00;0,00;0,00;0,00;3h52min;-22,00 +WINJ26;23/01/2026 17:10:00;23/01/2026 17:34:00;24min;1;1;V;184.350,00;183.680,00;192.300,00;Sim;-134,00;-670,00;33;-134,00;-670,00;0,00;0,00;0,00;44min;-156,00 +WINJ26;26/01/2026 09:06:00;26/01/2026 09:26:00;20min;1;1;V;185.255,00;186.240,00;192.300,00;Sim;197,00;985,00;34;197,00;985,00;0,00;0,00;0,00;2d15h;41,00 +WINJ26;26/01/2026 10:58:00;26/01/2026 11:30:00;32min;1;1;C;183.090,00;183.185,00;192.300,00;No;19,00;95,00;35;19,00;95,00;0,00;0,00;0,00;1h52min;60,00 +WINJ26;27/01/2026 09:06:00;27/01/2026 10:06:00;1h;1;1;V;185.825,00;185.610,00;192.300,00;No;-43,00;-215,00;36;-43,00;-215,00;0,00;0,00;0,00;22h8min;17,00 +WINJ26;27/01/2026 18:16:00;28/01/2026 09:02:00;14h46min;1;1;C;186.615,00;187.500,00;192.300,00;No;177,00;885,00;37;177,00;885,00;0,00;0,00;0,00;9h10min;194,00 +WINJ26;28/01/2026 10:32:00;28/01/2026 11:08:00;36min;1;1;V;189.010,00;189.345,00;192.300,00;Sim;67,00;335,00;38;67,00;335,00;0,00;0,00;0,00;16h16min;261,00 +WINJ26;28/01/2026 12:38:00;28/01/2026 12:48:00;10min;1;1;C;188.355,00;188.640,00;192.300,00;No;57,00;285,00;39;57,00;285,00;0,00;0,00;0,00;2h6min;318,00 +WINJ26;28/01/2026 17:42:00;29/01/2026 09:28:00;15h46min;1;1;V;191.285,00;189.415,00;192.300,00;Sim;-374,00;-1.870,00;40;-374,00;-1.870,00;0,00;0,00;0,00;5h4min;-56,00 +WINJ26;29/01/2026 14:32:00;29/01/2026 14:42:00;10min;1;1;V;188.215,00;188.600,00;192.300,00;No;77,00;385,00;41;77,00;385,00;0,00;0,00;0,00;20h50min;21,00 +WINJ26;30/01/2026 15:04:00;30/01/2026 15:46:00;42min;1;1;C;185.960,00;185.350,00;192.300,00;Sim;-122,00;-610,00;42;-122,00;-610,00;0,00;0,00;0,00;1d;-101,00 +WINJ26;03/02/2026 11:04:00;03/02/2026 12:00:00;56min;1;1;V;191.565,00;190.935,00;192.300,00;Sim;-126,00;-630,00;43;-126,00;-630,00;0,00;0,00;0,00;3d20h;-227,00 +WINJ26;04/02/2026 09:02:00;04/02/2026 09:04:00;2min;1;1;V;190.090,00;190.645,00;192.300,00;No;111,00;555,00;44;111,00;555,00;0,00;0,00;0,00;21h58min;-116,00 +WINJ26;04/02/2026 13:04:00;04/02/2026 13:58:00;54min;1;1;C;186.855,00;186.385,00;192.300,00;No;-94,00;-470,00;45;-94,00;-470,00;0,00;0,00;0,00;4h2min;-210,00 +WINJ26;04/02/2026 15:54:00;04/02/2026 16:18:00;24min;1;1;C;184.810,00;185.015,00;192.300,00;Sim;41,00;205,00;46;41,00;205,00;0,00;0,00;0,00;2h50min;-169,00 +WINJ26;04/02/2026 16:56:00;04/02/2026 17:34:00;38min;1;1;V;185.535,00;185.370,00;192.300,00;No;-33,00;-165,00;47;-33,00;-165,00;0,00;0,00;0,00;1h2min;-202,00 +WINJ26;05/02/2026 12:38:00;05/02/2026 12:44:00;6min;1;1;C;186.095,00;187.100,00;192.300,00;No;201,00;1.005,00;48;201,00;1.005,00;0,00;0,00;0,00;19h42min;-1,00 +WINJ26;05/02/2026 17:28:00;05/02/2026 17:58:00;30min;1;1;C;186.585,00;186.505,00;192.300,00;No;-16,00;-80,00;49;-16,00;-80,00;0,00;0,00;0,00;4h50min;-17,00 +WINJ26;06/02/2026 17:08:00;06/02/2026 17:40:00;32min;1;1;V;187.165,00;187.040,00;192.300,00;Sim;-25,00;-125,00;50;-25,00;-125,00;0,00;0,00;0,00;23h40min;-42,00 +WINJ26;09/02/2026 11:48:00;09/02/2026 12:10:00;22min;1;1;V;188.225,00;188.560,00;192.300,00;Sim;67,00;335,00;51;67,00;335,00;0,00;0,00;0,00;2d18h;25,00 +WINJ26;09/02/2026 14:08:00;09/02/2026 14:54:00;46min;1;1;V;189.485,00;189.110,00;192.300,00;Sim;-75,00;-375,00;52;-75,00;-375,00;0,00;0,00;0,00;2h20min;-50,00 +WINJ26;09/02/2026 17:08:00;09/02/2026 17:18:00;10min;1;1;V;190.445,00;190.650,00;192.300,00;Sim;41,00;205,00;53;41,00;205,00;0,00;0,00;0,00;3h;-9,00 +WINJ26;09/02/2026 17:54:00;09/02/2026 18:02:00;8min;1;1;V;190.635,00;190.740,00;192.300,00;Sim;21,00;105,00;54;21,00;105,00;0,00;0,00;0,00;46min;12,00 +WINJ26;10/02/2026 12:22:00;10/02/2026 13:00:00;38min;1;1;V;190.815,00;190.630,00;192.300,00;No;-37,00;-185,00;55;-37,00;-185,00;0,00;0,00;0,00;18h28min;-25,00 +WINJ26;10/02/2026 15:38:00;10/02/2026 16:08:00;30min;1;1;C;189.575,00;189.690,00;192.300,00;No;23,00;115,00;56;23,00;115,00;0,00;0,00;0,00;3h16min;-2,00 +WINJ26;10/02/2026 17:16:00;10/02/2026 17:40:00;24min;1;1;V;190.420,00;190.475,00;192.300,00;No;11,00;55,00;57;11,00;55,00;0,00;0,00;0,00;1h38min;9,00 +WINJ26;11/02/2026 09:46:00;11/02/2026 10:08:00;22min;1;1;V;192.100,00;192.195,00;192.300,00;Sim;19,00;95,00;58;19,00;95,00;0,00;0,00;0,00;16h30min;28,00 +WINJ26;11/02/2026 11:20:00;11/02/2026 11:50:00;30min;1;1;V;193.275,00;193.285,00;192.300,00;Sim;2,00;10,00;59;2,00;10,00;0,00;0,00;0,00;1h34min;30,00 +WINJ26;11/02/2026 15:38:00;11/02/2026 16:04:00;26min;1;1;C;193.700,00;193.870,00;192.300,00;No;34,00;170,00;60;34,00;170,00;0,00;0,00;0,00;4h18min;64,00 +WINJ26;11/02/2026 17:14:00;11/02/2026 17:28:00;14min;1;1;C;193.865,00;194.025,00;192.300,00;No;32,00;160,00;61;32,00;160,00;0,00;0,00;0,00;1h36min;96,00 +WINJ26;11/02/2026 17:38:00;11/02/2026 17:50:00;12min;1;1;V;194.075,00;194.330,00;192.300,00;Sim;51,00;255,00;62;51,00;255,00;0,00;0,00;0,00;24min;147,00 +WINJ26;12/02/2026 09:02:00;12/02/2026 09:04:00;2min;1;1;V;193.330,00;194.380,00;192.300,00;Sim;210,00;1.050,00;63;210,00;1.050,00;0,00;0,00;0,00;15h24min;357,00 +WINJ26;12/02/2026 11:22:00;12/02/2026 11:32:00;10min;1;1;V;193.405,00;193.830,00;192.300,00;No;85,00;425,00;64;85,00;425,00;0,00;0,00;0,00;2h20min;442,00 +WINJ26;12/02/2026 13:20:00;12/02/2026 13:38:00;18min;1;1;C;192.680,00;192.905,00;192.300,00;Sim;45,00;225,00;65;45,00;225,00;0,00;0,00;0,00;1h58min;487,00 +WINJ26;13/02/2026 09:32:00;13/02/2026 09:46:00;14min;1;1;C;189.195,00;189.585,00;192.300,00;Sim;78,00;390,00;66;78,00;390,00;0,00;0,00;0,00;20h12min;565,00 +WINJ26;13/02/2026 11:36:00;13/02/2026 11:46:00;10min;1;1;C;188.555,00;188.625,00;192.300,00;Sim;14,00;70,00;67;14,00;70,00;0,00;0,00;0,00;2h4min;579,00 +WINJ26;19/02/2026 14:22:00;19/02/2026 14:38:00;16min;1;1;V;192.280,00;192.415,00;192.300,00;No;27,00;135,00;68;27,00;135,00;0,00;0,00;0,00;6d2h;606,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 12:34:00;1h4min;1;1;V;191.900,00;191.115,00;192.300,00;No;-157,00;-785,00;69;-157,00;-785,00;0,00;0,00;0,00;21h8min;449,00 +WINJ26;23/02/2026 09:20:00;23/02/2026 10:04:00;44min;1;1;C;192.780,00;193.000,00;192.300,00;No;44,00;220,00;70;44,00;220,00;0,00;0,00;0,00;2d21h;493,00 +WINJ26;23/02/2026 11:40:00;23/02/2026 12:06:00;26min;1;1;V;193.950,00;193.930,00;192.300,00;Sim;-4,00;-20,00;71;-4,00;-20,00;0,00;0,00;0,00;2h20min;489,00 +WINJ26;23/02/2026 15:30:00;23/02/2026 15:38:00;8min;1;1;V;192.765,00;192.890,00;192.300,00;No;25,00;125,00;72;25,00;125,00;0,00;0,00;0,00;3h50min;514,00 +WINJ26;24/02/2026 09:10:00;24/02/2026 09:30:00;20min;1;1;V;193.240,00;193.360,00;192.300,00;Sim;24,00;120,00;73;24,00;120,00;0,00;0,00;0,00;17h40min;538,00 +WINJ26;24/02/2026 12:32:00;24/02/2026 13:18:00;46min;1;1;V;194.750,00;194.715,00;192.300,00;Sim;-7,00;-35,00;74;-7,00;-35,00;0,00;0,00;0,00;3h22min;531,00 +WINJ26;24/02/2026 16:22:00;24/02/2026 16:30:00;8min;1;1;C;194.605,00;194.815,00;192.300,00;No;42,00;210,00;75;42,00;210,00;0,00;0,00;0,00;3h50min;573,00 +WINJ26;25/02/2026 09:06:00;25/02/2026 09:30:00;24min;1;1;V;196.370,00;196.565,00;192.300,00;Sim;39,00;195,00;76;39,00;195,00;0,00;0,00;0,00;16h44min;612,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv new file mode 100644 index 0000000..fbf34ed --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv @@ -0,0 +1,54 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;03/12/2025 09:10:00;05/12/2025 11:35:00;2d2h;1;1;V;171.570,00;168.930,00;192.250,00;No;-528,00;-2.640,00;1;-528,00;-2.640,00;0,00;0,00;0,00; - ;-528,00 +WINJ26;19/12/2025 11:05:00;19/12/2025 12:45:00;1h40min;1;1;V;165.475,00;165.365,00;192.250,00;No;-22,00;-110,00;2;-22,00;-110,00;0,00;0,00;0,00;16d1h;-550,00 +WINJ26;23/12/2025 12:15:00;23/12/2025 13:30:00;1h15min;1;1;V;166.345,00;166.490,00;192.250,00;Sim;29,00;145,00;3;29,00;145,00;0,00;0,00;0,00;4d1h;-521,00 +WINJ26;26/12/2025 15:05:00;26/12/2025 15:20:00;15min;1;1;V;166.480,00;166.580,00;192.250,00;Sim;20,00;100,00;4;20,00;100,00;0,00;0,00;0,00;3d2h;-501,00 +WINJ26;30/12/2025 09:25:00;30/12/2025 10:45:00;1h20min;1;1;V;167.570,00;167.545,00;192.250,00;Sim;-5,00;-25,00;5;-5,00;-25,00;0,00;0,00;0,00;3d18h;-506,00 +WINJ26;30/12/2025 18:10:00;02/01/2026 09:05:00;2d14h;1;1;C;167.155,00;167.910,00;192.250,00;No;151,00;755,00;6;151,00;755,00;0,00;0,00;0,00;8h45min;-355,00 +WINJ26;05/01/2026 12:30:00;05/01/2026 16:25:00;3h55min;1;1;V;167.710,00;166.940,00;192.250,00;No;-154,00;-770,00;7;-154,00;-770,00;0,00;0,00;0,00;5d18h;-509,00 +WINJ26;07/01/2026 10:30:00;07/01/2026 12:50:00;2h20min;1;1;C;168.425,00;167.725,00;192.250,00;No;-140,00;-700,00;8;-140,00;-700,00;0,00;0,00;0,00;1d22h;-649,00 +WINJ26;08/01/2026 11:40:00;08/01/2026 12:00:00;20min;1;1;V;167.765,00;168.240,00;192.250,00;Sim;95,00;475,00;9;95,00;475,00;0,00;0,00;0,00;1d1h;-554,00 +WINJ26;09/01/2026 16:10:00;12/01/2026 09:15:00;2d17h;1;1;C;169.155,00;168.975,00;192.250,00;No;-36,00;-180,00;10;-36,00;-180,00;0,00;0,00;0,00;1d4h;-590,00 +WINJ26;13/01/2026 10:30:00;13/01/2026 10:35:00;5min;1;1;C;167.430,00;167.805,00;192.250,00;Sim;75,00;375,00;11;75,00;375,00;0,00;0,00;0,00;3d18h;-515,00 +WINJ26;14/01/2026 09:30:00;14/01/2026 11:00:00;1h30min;1;1;V;168.220,00;167.920,00;192.250,00;No;-60,00;-300,00;12;-60,00;-300,00;0,00;0,00;0,00;23h;-575,00 +WINJ26;14/01/2026 15:25:00;14/01/2026 17:10:00;1h45min;1;1;V;169.685,00;169.200,00;192.250,00;Sim;-97,00;-485,00;13;-97,00;-485,00;0,00;0,00;0,00;5h55min;-672,00 +WINJ26;15/01/2026 15:25:00;15/01/2026 16:15:00;50min;1;1;V;171.050,00;171.245,00;192.250,00;Sim;39,00;195,00;14;39,00;195,00;0,00;0,00;0,00;1d;-633,00 +WINJ26;15/01/2026 17:55:00;15/01/2026 18:10:00;15min;1;1;C;170.595,00;170.785,00;192.250,00;No;38,00;190,00;15;38,00;190,00;0,00;0,00;0,00;2h30min;-595,00 +WINJ26;16/01/2026 11:35:00;16/01/2026 13:30:00;1h55min;1;1;C;169.550,00;169.625,00;192.250,00;Sim;15,00;75,00;16;15,00;75,00;0,00;0,00;0,00;17h40min;-580,00 +WINJ26;20/01/2026 09:05:00;20/01/2026 10:00:00;55min;1;1;C;169.245,00;169.010,00;192.250,00;Sim;-47,00;-235,00;17;-47,00;-235,00;0,00;0,00;0,00;3d21h;-627,00 +WINJ26;20/01/2026 11:55:00;20/01/2026 14:25:00;2h30min;1;1;V;171.100,00;170.690,00;192.250,00;No;-82,00;-410,00;18;-82,00;-410,00;0,00;0,00;0,00;2h50min;-709,00 +WINJ26;20/01/2026 17:55:00;21/01/2026 09:00:00;15h5min;1;1;V;170.910,00;171.105,00;192.250,00;Sim;39,00;195,00;19;39,00;195,00;0,00;0,00;0,00;6h;-670,00 +WINJ26;21/01/2026 11:10:00;21/01/2026 14:25:00;3h15min;1;1;V;174.860,00;174.045,00;192.250,00;Sim;-163,00;-815,00;20;-163,00;-815,00;0,00;0,00;0,00;17h15min;-833,00 +WINJ26;21/01/2026 15:30:00;22/01/2026 14:20:00;22h50min;1;1;V;181.465,00;175.380,00;192.250,00;Sim;-1.217,00;-6.085,00;21;-1.217,00;-6.085,00;0,00;0,00;0,00;4h20min;-2.050,00 +WINJ26;23/01/2026 16:25:00;23/01/2026 17:55:00;1h30min;1;1;V;183.955,00;183.190,00;192.250,00;Sim;-153,00;-765,00;22;-153,00;-765,00;0,00;0,00;0,00;2d;-2.203,00 +WINJ26;26/01/2026 14:45:00;26/01/2026 15:00:00;15min;1;1;V;183.500,00;184.130,00;192.250,00;Sim;126,00;630,00;23;126,00;630,00;0,00;0,00;0,00;2d22h;-2.077,00 +WINJ26;27/01/2026 09:10:00;27/01/2026 13:15:00;4h5min;1;1;V;187.575,00;185.260,00;192.250,00;Sim;-463,00;-2.315,00;24;-463,00;-2.315,00;0,00;0,00;0,00;18h25min;-2.540,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:25:00;25min;1;1;C;187.955,00;188.260,00;192.250,00;No;61,00;305,00;25;61,00;305,00;0,00;0,00;0,00;1d6h;-2.479,00 +WINJ26;28/01/2026 17:45:00;29/01/2026 10:10:00;16h25min;1;1;V;190.880,00;189.375,00;192.250,00;Sim;-301,00;-1.505,00;26;-301,00;-1.505,00;0,00;0,00;0,00;1h45min;-2.780,00 +WINJ26;29/01/2026 12:20:00;29/01/2026 14:10:00;1h50min;1;1;C;188.835,00;187.775,00;192.250,00;No;-212,00;-1.060,00;27;-212,00;-1.060,00;0,00;0,00;0,00;18h35min;-2.992,00 +WINJ26;30/01/2026 09:15:00;30/01/2026 10:20:00;1h5min;1;1;C;187.195,00;187.790,00;192.250,00;Sim;119,00;595,00;28;119,00;595,00;0,00;0,00;0,00;20h55min;-2.873,00 +WINJ26;02/02/2026 17:35:00;03/02/2026 12:15:00;18h40min;1;1;V;190.975,00;187.110,00;192.250,00;No;-773,00;-3.865,00;29;-773,00;-3.865,00;0,00;0,00;0,00;3d8h;-3.646,00 +WINJ26;04/02/2026 11:45:00;04/02/2026 16:50:00;5h5min;1;1;C;187.465,00;185.340,00;192.250,00;No;-425,00;-2.125,00;30;-425,00;-2.125,00;0,00;0,00;0,00;1d18h;-4.071,00 +WINJ26;06/02/2026 15:30:00;06/02/2026 16:10:00;40min;1;1;C;186.340,00;186.590,00;192.250,00;Sim;50,00;250,00;31;50,00;250,00;0,00;0,00;0,00;2d3h;-4.021,00 +WINJ26;09/02/2026 16:35:00;09/02/2026 18:20:00;1h45min;1;1;V;190.475,00;190.380,00;192.250,00;Sim;-19,00;-95,00;32;-19,00;-95,00;0,00;0,00;0,00;3d1h;-4.040,00 +WINJ26;10/02/2026 15:40:00;10/02/2026 16:35:00;55min;1;1;C;189.580,00;189.850,00;192.250,00;No;54,00;270,00;33;54,00;270,00;0,00;0,00;0,00;23h5min;-3.986,00 +WINJ26;10/02/2026 17:35:00;10/02/2026 17:45:00;10min;1;1;V;190.205,00;190.555,00;192.250,00;Sim;70,00;350,00;34;70,00;350,00;0,00;0,00;0,00;1h55min;-3.916,00 +WINJ26;11/02/2026 09:10:00;11/02/2026 12:05:00;2h55min;1;1;V;192.860,00;191.905,00;192.250,00;Sim;-191,00;-955,00;35;-191,00;-955,00;0,00;0,00;0,00;15h35min;-4.107,00 +WINJ26;11/02/2026 13:20:00;11/02/2026 15:05:00;1h45min;1;1;V;194.340,00;194.140,00;192.250,00;Sim;-40,00;-200,00;36;-40,00;-200,00;0,00;0,00;0,00;4h10min;-4.147,00 +WINJ26;12/02/2026 13:25:00;12/02/2026 14:25:00;1h;1;1;C;192.615,00;192.730,00;192.250,00;No;23,00;115,00;37;23,00;115,00;0,00;0,00;0,00;1d;-4.124,00 +WINJ26;13/02/2026 09:55:00;13/02/2026 12:30:00;2h35min;1;1;C;189.145,00;188.875,00;192.250,00;Sim;-54,00;-270,00;38;-54,00;-270,00;0,00;0,00;0,00;20h30min;-4.178,00 +WINJ26;19/02/2026 09:15:00;19/02/2026 10:05:00;50min;1;1;V;189.915,00;190.305,00;192.250,00;No;78,00;390,00;39;78,00;390,00;0,00;0,00;0,00;5d23h;-4.100,00 +WINJ26;19/02/2026 12:15:00;19/02/2026 14:05:00;1h50min;1;1;V;191.955,00;191.340,00;192.250,00;Sim;-123,00;-615,00;40;-123,00;-615,00;0,00;0,00;0,00;3h;-4.223,00 +WINJ26;20/02/2026 09:25:00;20/02/2026 11:20:00;1h55min;1;1;C;191.075,00;190.745,00;192.250,00;No;-66,00;-330,00;41;-66,00;-330,00;0,00;0,00;0,00;21h10min;-4.289,00 +WINJ26;23/02/2026 09:45:00;23/02/2026 10:10:00;25min;1;1;C;192.730,00;193.150,00;192.250,00;No;84,00;420,00;42;84,00;420,00;0,00;0,00;0,00;3d;-4.205,00 +WINJ26;25/02/2026 15:55:00;25/02/2026 17:35:00;1h40min;1;1;C;194.365,00;194.475,00;192.250,00;No;22,00;110,00;43;22,00;110,00;0,00;0,00;0,00;2d6h;-4.183,00 +WINJ26;26/02/2026 16:25:00;26/02/2026 18:10:00;1h45min;1;1;V;194.220,00;194.160,00;192.250,00;Sim;-12,00;-60,00;44;-12,00;-60,00;0,00;0,00;0,00;1d;-4.195,00 +WINJ26;27/02/2026 14:35:00;27/02/2026 15:10:00;35min;1;1;C;192.515,00;192.710,00;192.250,00;Sim;39,00;195,00;45;39,00;195,00;0,00;0,00;0,00;22h10min;-4.156,00 +WINJ26;27/02/2026 16:35:00;27/02/2026 17:25:00;50min;1;1;C;191.990,00;192.145,00;192.250,00;Sim;31,00;155,00;46;31,00;155,00;0,00;0,00;0,00;2h;-4.125,00 +WINJ26;02/03/2026 09:50:00;02/03/2026 10:25:00;35min;1;1;C;190.195,00;190.965,00;192.250,00;Sim;154,00;770,00;47;154,00;770,00;0,00;0,00;0,00;2d17h;-3.971,00 +WINJ26;02/03/2026 16:25:00;02/03/2026 17:10:00;45min;1;1;V;192.110,00;193.030,00;192.250,00;No;184,00;920,00;48;184,00;920,00;0,00;0,00;0,00;6h35min;-3.787,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv new file mode 100644 index 0000000..026a1a5 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv @@ -0,0 +1,35 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/09/2025 11:45:00;29/09/2025 15:00:00;3h15min;1;1;V;156.340,00;156.600,00;192.375,00;No;52,00;260,00;1;52,00;260,00;0,00;0,00;0,00; - ;52,00 +WINJ26;03/11/2025 11:15:00;04/11/2025 10:00:00;22h45min;1;1;V;158.430,00;158.605,00;192.375,00;Sim;35,00;175,00;2;35,00;175,00;0,00;0,00;0,00;1m3d23h;87,00 +WINJ26;11/11/2025 11:15:00;12/11/2025 11:00:00;23h45min;1;1;V;165.880,00;166.205,00;192.375,00;Sim;65,00;325,00;3;65,00;325,00;0,00;0,00;0,00;8d;152,00 +WINJ26;04/12/2025 09:30:00;05/12/2025 13:00:00;1d3h;1;1;V;170.835,00;170.000,00;192.375,00;Sim;-167,00;-835,00;4;-167,00;-835,00;0,00;0,00;0,00;22d22h;-15,00 +WINJ26;17/12/2025 10:45:00;17/12/2025 16:00:00;5h15min;1;1;C;163.200,00;163.670,00;192.375,00;No;94,00;470,00;5;94,00;470,00;0,00;0,00;0,00;13d1h;79,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 13:30:00;1h45min;1;1;C;163.790,00;164.315,00;192.375,00;No;105,00;525,00;6;105,00;525,00;0,00;0,00;0,00;5d1h;184,00 +WINJ26;23/12/2025 09:30:00;26/12/2025 09:15:00;2d23h;1;1;V;165.980,00;164.900,00;192.375,00;No;-216,00;-1.080,00;7;-216,00;-1.080,00;0,00;0,00;0,00;21h45min;-32,00 +WINJ26;29/12/2025 09:15:00;29/12/2025 10:30:00;1h15min;1;1;V;166.705,00;167.245,00;192.375,00;Sim;108,00;540,00;8;108,00;540,00;0,00;0,00;0,00;5d23h;76,00 +WINJ26;30/12/2025 09:45:00;30/12/2025 12:00:00;2h15min;1;1;V;167.060,00;167.675,00;192.375,00;Sim;123,00;615,00;9;123,00;615,00;0,00;0,00;0,00;1d;199,00 +WINJ26;02/01/2026 15:15:00;02/01/2026 16:30:00;1h15min;1;1;C;165.950,00;166.230,00;192.375,00;No;56,00;280,00;10;56,00;280,00;0,00;0,00;0,00;3d5h;255,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 16:30:00;7h;1;1;V;169.185,00;168.485,00;192.375,00;Sim;-140,00;-700,00;11;-140,00;-700,00;0,00;0,00;0,00;3d18h;115,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:45:00;30min;1;1;C;167.350,00;167.630,00;192.375,00;No;56,00;280,00;12;56,00;280,00;0,00;0,00;0,00;1d23h;171,00 +WINJ26;09/01/2026 12:15:00;09/01/2026 15:30:00;3h15min;1;1;V;169.345,00;169.365,00;192.375,00;Sim;4,00;20,00;13;4,00;20,00;0,00;0,00;0,00;1d3h;175,00 +WINJ26;14/01/2026 09:45:00;14/01/2026 11:15:00;1h30min;1;1;V;167.705,00;168.000,00;192.375,00;No;59,00;295,00;14;59,00;295,00;0,00;0,00;0,00;4d21h;234,00 +WINJ26;15/01/2026 10:15:00;15/01/2026 11:45:00;1h30min;1;1;V;170.010,00;170.590,00;192.375,00;Sim;116,00;580,00;15;116,00;580,00;0,00;0,00;0,00;1d;350,00 +WINJ26;16/01/2026 11:15:00;16/01/2026 17:15:00;6h;1;1;C;170.040,00;169.725,00;192.375,00;No;-63,00;-315,00;16;-63,00;-315,00;0,00;0,00;0,00;1d1h;287,00 +WINJ26;21/01/2026 12:00:00;22/01/2026 16:15:00;1d4h;1;1;V;180.825,00;174.590,00;192.375,00;Sim;-1.247,00;-6.235,00;17;-1.247,00;-6.235,00;0,00;0,00;0,00;5d;-960,00 +WINJ26;27/01/2026 11:45:00;27/01/2026 15:00:00;3h15min;1;1;V;187.170,00;187.400,00;192.375,00;Sim;46,00;230,00;18;46,00;230,00;0,00;0,00;0,00;5d23h;-914,00 +WINJ26;28/01/2026 10:45:00;28/01/2026 12:30:00;1h45min;1;1;V;188.475,00;189.300,00;192.375,00;Sim;165,00;825,00;19;165,00;825,00;0,00;0,00;0,00;23h;-749,00 +WINJ26;03/02/2026 09:30:00;03/02/2026 14:15:00;4h45min;1;1;V;190.295,00;189.050,00;192.375,00;No;-249,00;-1.245,00;20;-249,00;-1.245,00;0,00;0,00;0,00;5d22h;-998,00 +WINJ26;04/02/2026 10:45:00;04/02/2026 18:15:00;7h30min;1;1;C;188.925,00;186.115,00;192.375,00;No;-562,00;-2.810,00;21;-562,00;-2.810,00;0,00;0,00;0,00;1d1h;-1.560,00 +WINJ26;05/02/2026 11:30:00;05/02/2026 12:15:00;45min;1;1;V;186.700,00;187.300,00;192.375,00;No;120,00;600,00;22;120,00;600,00;0,00;0,00;0,00;1d;-1.440,00 +WINJ26;09/02/2026 14:30:00;10/02/2026 09:15:00;18h45min;1;1;V;189.800,00;189.515,00;192.375,00;Sim;-57,00;-285,00;23;-57,00;-285,00;0,00;0,00;0,00;4d3h;-1.497,00 +WINJ26;11/02/2026 11:00:00;11/02/2026 15:45:00;4h45min;1;1;V;193.700,00;192.560,00;192.375,00;Sim;-228,00;-1.140,00;24;-228,00;-1.140,00;0,00;0,00;0,00;1d20h;-1.725,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 13:30:00;3h;1;1;C;189.095,00;189.405,00;192.375,00;No;62,00;310,00;25;62,00;310,00;0,00;0,00;0,00;1d23h;-1.663,00 +WINJ26;18/02/2026 13:15:00;18/02/2026 14:00:00;45min;1;1;V;189.975,00;190.590,00;192.375,00;No;123,00;615,00;26;123,00;615,00;0,00;0,00;0,00;5d2h;-1.540,00 +WINJ26;20/02/2026 10:15:00;20/02/2026 11:45:00;1h30min;1;1;C;190.735,00;191.325,00;192.375,00;No;118,00;590,00;27;118,00;590,00;0,00;0,00;0,00;1d21h;-1.422,00 +WINJ26;20/02/2026 12:30:00;20/02/2026 14:30:00;2h;1;1;V;191.415,00;192.160,00;192.375,00;Sim;149,00;745,00;28;149,00;745,00;0,00;0,00;0,00;2h15min;-1.273,00 +WINJ26;26/02/2026 12:00:00;26/02/2026 13:30:00;1h30min;1;1;C;193.350,00;193.930,00;192.375,00;No;116,00;580,00;29;116,00;580,00;0,00;0,00;0,00;5d23h;-1.157,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv new file mode 100644 index 0000000..9b29add --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv @@ -0,0 +1,22 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;20/10/2025 12:00:00;21/10/2025 10:00:00;22h;1;1;V;152.700,00;153.725,00;192.245,00;No;205,00;1.025,00;1;205,00;1.025,00;0,00;0,00;0,00; - ;205,00 +WINJ26;23/10/2025 09:30:00;23/10/2025 12:30:00;3h;1;1;V;153.950,00;154.700,00;192.245,00;Sim;150,00;750,00;2;150,00;750,00;0,00;0,00;0,00;2d21h;355,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 10:00:00;1d16h;1;1;V;161.250,00;161.940,00;192.245,00;Sim;138,00;690,00;3;138,00;690,00;0,00;0,00;0,00;13d8h;493,00 +WINJ26;09/12/2025 11:00:00;09/12/2025 13:00:00;2h;1;1;C;163.150,00;164.830,00;192.245,00;No;336,00;1.680,00;4;336,00;1.680,00;0,00;0,00;0,00;1m2d17h;829,00 +WINJ26;17/12/2025 11:00:00;18/12/2025 11:30:00;1d;1;1;C;163.230,00;164.010,00;192.245,00;No;156,00;780,00;5;156,00;780,00;0,00;0,00;0,00;8d;985,00 +WINJ26;06/01/2026 11:00:00;07/01/2026 10:00:00;23h;1;1;V;168.900,00;169.355,00;192.245,00;Sim;91,00;455,00;6;91,00;455,00;0,00;0,00;0,00;20d;1.076,00 +WINJ26;13/01/2026 13:30:00;14/01/2026 09:30:00;20h;1;1;C;167.085,00;167.920,00;192.245,00;No;167,00;835,00;7;167,00;835,00;0,00;0,00;0,00;7d2h;1.243,00 +WINJ26;15/01/2026 09:30:00;16/01/2026 10:30:00;1d1h;1;1;V;170.625,00;170.390,00;192.245,00;Sim;-47,00;-235,00;8;-47,00;-235,00;0,00;0,00;0,00;1d20h;1.196,00 +WINJ26;21/01/2026 11:30:00;26/01/2026 11:00:00;4d23h;1;1;V;183.135,00;173.915,00;192.245,00;Sim;-1.844,00;-9.220,00;9;-1.844,00;-9.220,00;0,00;0,00;0,00;6d2h;-648,00 +WINJ26;27/01/2026 12:30:00;28/01/2026 09:00:00;20h30min;1;1;V;187.620,00;187.690,00;192.245,00;Sim;14,00;70,00;10;14,00;70,00;0,00;0,00;0,00;6d1h;-634,00 +WINJ26;28/01/2026 11:00:00;28/01/2026 16:00:00;5h;1;1;V;187.955,00;189.035,00;192.245,00;Sim;216,00;1.080,00;11;216,00;1.080,00;0,00;0,00;0,00;22h30min;-418,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 12:00:00;2h30min;1;1;V;189.110,00;191.020,00;192.245,00;Sim;382,00;1.910,00;12;382,00;1.910,00;0,00;0,00;0,00;22h30min;-36,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 15:30:00;3h30min;1;1;V;189.500,00;191.565,00;192.245,00;Sim;413,00;2.065,00;13;413,00;2.065,00;0,00;0,00;0,00;5d2h;377,00 +WINJ26;09/02/2026 10:00:00;10/02/2026 15:30:00;1d5h;1;1;V;189.705,00;188.045,00;192.245,00;No;-332,00;-1.660,00;14;-332,00;-1.660,00;0,00;0,00;0,00;5d22h;45,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 15:00:00;4h30min;1;1;C;189.095,00;190.025,00;192.245,00;No;186,00;930,00;15;186,00;930,00;0,00;0,00;0,00;4d;231,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 11:00:00;1h30min;1;1;V;194.965,00;196.370,00;192.245,00;Sim;281,00;1.405,00;16;281,00;1.405,00;0,00;0,00;0,00;11d23h;512,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv new file mode 100644 index 0000000..5cd75b0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv @@ -0,0 +1,16 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;23/10/2025 10:00:00;30/10/2025 10:00:00;7d;1;1;V;156.695,00;154.795,00;192.020,00;No;-380,00;-1.900,00;1;-380,00;-1.900,00;0,00;0,00;0,00; - ;-380,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 11:00:00;1d17h;1;1;V;161.000,00;161.940,00;192.020,00;Sim;188,00;940,00;2;188,00;940,00;0,00;0,00;0,00;13d8h;-192,00 +WINJ26;12/11/2025 10:00:00;12/11/2025 13:00:00;3h;1;1;V;165.180,00;166.200,00;192.020,00;Sim;204,00;1.020,00;3;204,00;1.020,00;0,00;0,00;0,00;6d16h;12,00 +WINJ26;28/11/2025 15:00:00;01/12/2025 11:00:00;2d20h;1;1;V;165.945,00;167.000,00;192.020,00;Sim;211,00;1.055,00;4;211,00;1.055,00;0,00;0,00;0,00;16d5h;223,00 +WINJ26;05/12/2025 12:00:00;05/12/2025 13:00:00;1h;1;1;V;170.835,00;172.240,00;192.020,00;Sim;281,00;1.405,00;5;281,00;1.405,00;0,00;0,00;0,00;6d21h;504,00 +WINJ26;15/12/2025 14:00:00;16/12/2025 10:00:00;20h;1;1;V;167.270,00;169.505,00;192.020,00;No;447,00;2.235,00;6;447,00;2.235,00;0,00;0,00;0,00;10d2h;951,00 +WINJ26;06/01/2026 12:00:00;07/01/2026 11:00:00;23h;1;1;V;168.330,00;169.365,00;192.020,00;No;207,00;1.035,00;7;207,00;1.035,00;0,00;0,00;0,00;21d22h;1.158,00 +WINJ26;15/01/2026 11:00:00;16/01/2026 11:00:00;1d;1;1;V;170.060,00;170.400,00;192.020,00;Sim;68,00;340,00;8;68,00;340,00;0,00;0,00;0,00;8d23h;1.226,00 +WINJ26;26/01/2026 10:00:00;29/01/2026 13:00:00;3d3h;1;1;V;186.785,00;184.825,00;192.020,00;Sim;-392,00;-1.960,00;9;-392,00;-1.960,00;0,00;0,00;0,00;10d23h;834,00 +WINJ26;25/02/2026 10:00:00;25/02/2026 16:00:00;6h;1;1;V;194.310,00;196.660,00;192.020,00;Sim;470,00;2.350,00;10;470,00;2.350,00;0,00;0,00;0,00;30d;1.304,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv new file mode 100644 index 0000000..eea885a --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv @@ -0,0 +1,309 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:52:00;24min;1;1;C;165.120,00;165.100,00;192.335,00;No;-4,00;-20,00;1;-4,00;-20,00;0,00;0,00;0,00; - ;-4,00 +WINJ26;22/12/2025 09:12:00;22/12/2025 09:20:00;8min;1;1;V;164.925,00;165.200,00;192.335,00;No;55,00;275,00;2;55,00;275,00;0,00;0,00;0,00;2d17h;51,00 +WINJ26;22/12/2025 11:44:00;22/12/2025 11:48:00;4min;1;1;C;163.665,00;163.810,00;192.335,00;Sim;29,00;145,00;3;29,00;145,00;0,00;0,00;0,00;2h32min;80,00 +WINJ26;22/12/2025 13:22:00;22/12/2025 13:34:00;12min;1;1;V;164.075,00;164.240,00;192.335,00;No;33,00;165,00;4;33,00;165,00;0,00;0,00;0,00;1h38min;113,00 +WINJ26;22/12/2025 14:04:00;22/12/2025 14:16:00;12min;1;1;V;164.405,00;164.550,00;192.335,00;Sim;29,00;145,00;5;29,00;145,00;0,00;0,00;0,00;42min;142,00 +WINJ26;22/12/2025 15:12:00;22/12/2025 15:36:00;24min;1;1;C;164.220,00;164.255,00;192.335,00;No;7,00;35,00;6;7,00;35,00;0,00;0,00;0,00;1h8min;149,00 +WINJ26;22/12/2025 15:58:00;22/12/2025 16:16:00;18min;1;1;V;164.300,00;164.420,00;192.335,00;No;24,00;120,00;7;24,00;120,00;0,00;0,00;0,00;46min;173,00 +WINJ26;22/12/2025 17:58:00;22/12/2025 18:00:00;2min;1;1;V;164.315,00;164.315,00;192.335,00;No;0;0;8;0;0;0,00;0,00;0,00;2h;173,00 +WINJ26;23/12/2025 09:12:00;23/12/2025 09:42:00;30min;1;1;V;165.080,00;164.515,00;192.335,00;Sim;-113,00;-565,00;9;-113,00;-565,00;0,00;0,00;0,00;15h14min;60,00 +WINJ26;23/12/2025 10:24:00;23/12/2025 10:32:00;8min;1;1;V;165.365,00;165.370,00;192.335,00;Sim;1,00;5,00;10;1,00;5,00;0,00;0,00;0,00;1h12min;61,00 +WINJ26;23/12/2025 11:44:00;23/12/2025 12:12:00;28min;1;1;V;166.410,00;165.765,00;192.335,00;Sim;-129,00;-645,00;11;-129,00;-645,00;0,00;0,00;0,00;1h20min;-68,00 +WINJ26;23/12/2025 12:24:00;23/12/2025 12:46:00;22min;1;1;V;166.300,00;166.325,00;192.335,00;Sim;5,00;25,00;12;5,00;25,00;0,00;0,00;0,00;40min;-63,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:46:00;26min;1;1;C;166.425,00;166.470,00;192.335,00;No;9,00;45,00;13;9,00;45,00;0,00;0,00;0,00;2h56min;-54,00 +WINJ26;23/12/2025 16:18:00;23/12/2025 16:32:00;14min;1;1;V;166.440,00;166.545,00;192.335,00;Sim;21,00;105,00;14;21,00;105,00;0,00;0,00;0,00;58min;-33,00 +WINJ26;23/12/2025 17:12:00;23/12/2025 17:26:00;14min;1;1;C;166.415,00;166.465,00;192.335,00;Sim;10,00;50,00;15;10,00;50,00;0,00;0,00;0,00;54min;-23,00 +WINJ26;23/12/2025 18:18:00;23/12/2025 18:20:00;2min;1;1;V;166.530,00;166.635,00;192.335,00;Sim;21,00;105,00;16;21,00;105,00;0,00;0,00;0,00;1h6min;-2,00 +WINJ26;26/12/2025 10:26:00;26/12/2025 10:34:00;8min;1;1;C;165.615,00;165.795,00;192.335,00;Sim;36,00;180,00;17;36,00;180,00;0,00;0,00;0,00;2d16h;34,00 +WINJ26;26/12/2025 11:44:00;26/12/2025 11:56:00;12min;1;1;V;165.880,00;166.015,00;192.335,00;No;27,00;135,00;18;27,00;135,00;0,00;0,00;0,00;1h18min;61,00 +WINJ26;26/12/2025 13:18:00;26/12/2025 13:52:00;34min;1;1;C;166.290,00;166.050,00;192.335,00;No;-48,00;-240,00;19;-48,00;-240,00;0,00;0,00;0,00;1h34min;13,00 +WINJ26;26/12/2025 14:22:00;26/12/2025 14:36:00;14min;1;1;V;166.375,00;166.355,00;192.335,00;Sim;-4,00;-20,00;20;-4,00;-20,00;0,00;0,00;0,00;1h4min;9,00 +WINJ26;26/12/2025 15:06:00;26/12/2025 15:16:00;10min;1;1;V;166.560,00;166.625,00;192.335,00;Sim;13,00;65,00;21;13,00;65,00;0,00;0,00;0,00;44min;22,00 +WINJ26;29/12/2025 09:02:00;29/12/2025 09:16:00;14min;1;1;V;167.000,00;167.230,00;192.335,00;Sim;46,00;230,00;22;46,00;230,00;0,00;0,00;0,00;2d17h;68,00 +WINJ26;29/12/2025 10:04:00;29/12/2025 10:08:00;4min;1;1;C;166.820,00;167.040,00;192.335,00;No;44,00;220,00;23;44,00;220,00;0,00;0,00;0,00;1h2min;112,00 +WINJ26;29/12/2025 10:24:00;29/12/2025 10:56:00;32min;1;1;C;166.655,00;166.500,00;192.335,00;Sim;-31,00;-155,00;24;-31,00;-155,00;0,00;0,00;0,00;20min;81,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:56:00;6min;1;1;V;166.115,00;166.290,00;192.335,00;No;35,00;175,00;25;35,00;175,00;0,00;0,00;0,00;4h26min;116,00 +WINJ26;29/12/2025 15:32:00;29/12/2025 16:02:00;30min;1;1;C;166.120,00;165.775,00;192.335,00;Sim;-69,00;-345,00;26;-69,00;-345,00;0,00;0,00;0,00;42min;47,00 +WINJ26;29/12/2025 16:06:00;29/12/2025 16:12:00;6min;1;1;C;165.845,00;165.920,00;192.335,00;Sim;15,00;75,00;27;15,00;75,00;0,00;0,00;0,00;34min;62,00 +WINJ26;30/12/2025 09:44:00;30/12/2025 10:02:00;18min;1;1;V;167.550,00;167.635,00;192.335,00;Sim;17,00;85,00;28;17,00;85,00;0,00;0,00;0,00;17h38min;79,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:10:00;6min;1;1;C;167.355,00;167.635,00;192.335,00;No;56,00;280,00;29;56,00;280,00;0,00;0,00;0,00;1h20min;135,00 +WINJ26;30/12/2025 11:36:00;30/12/2025 11:48:00;12min;1;1;C;167.405,00;167.380,00;192.335,00;No;-5,00;-25,00;30;-5,00;-25,00;0,00;0,00;0,00;32min;130,00 +WINJ26;30/12/2025 12:08:00;30/12/2025 12:16:00;8min;1;1;C;167.105,00;167.235,00;192.335,00;Sim;26,00;130,00;31;26,00;130,00;0,00;0,00;0,00;32min;156,00 +WINJ26;30/12/2025 15:50:00;30/12/2025 16:08:00;18min;1;1;C;167.625,00;167.780,00;192.335,00;No;31,00;155,00;32;31,00;155,00;0,00;0,00;0,00;3h42min;187,00 +WINJ26;30/12/2025 17:58:00;02/01/2026 09:00:00;2d15h;1;1;C;167.470,00;167.265,00;192.335,00;Sim;-41,00;-205,00;33;-41,00;-205,00;0,00;0,00;0,00;2h8min;146,00 +WINJ26;02/01/2026 10:08:00;02/01/2026 10:10:00;2min;1;1;V;167.810,00;167.975,00;192.335,00;Sim;33,00;165,00;34;33,00;165,00;0,00;0,00;0,00;2d16h;179,00 +WINJ26;02/01/2026 10:34:00;02/01/2026 11:02:00;28min;1;1;C;167.515,00;166.705,00;192.335,00;No;-162,00;-810,00;35;-162,00;-810,00;0,00;0,00;0,00;26min;17,00 +WINJ26;02/01/2026 11:10:00;02/01/2026 11:14:00;4min;1;1;C;166.870,00;167.125,00;192.335,00;Sim;51,00;255,00;36;51,00;255,00;0,00;0,00;0,00;36min;68,00 +WINJ26;02/01/2026 11:38:00;02/01/2026 11:56:00;18min;1;1;C;166.715,00;166.895,00;192.335,00;Sim;36,00;180,00;37;36,00;180,00;0,00;0,00;0,00;28min;104,00 +WINJ26;02/01/2026 13:30:00;02/01/2026 14:04:00;34min;1;1;C;166.185,00;166.125,00;192.335,00;Sim;-12,00;-60,00;38;-12,00;-60,00;0,00;0,00;0,00;1h52min;92,00 +WINJ26;02/01/2026 17:32:00;02/01/2026 17:44:00;12min;1;1;C;166.120,00;166.150,00;192.335,00;Sim;6,00;30,00;39;6,00;30,00;0,00;0,00;0,00;4h2min;98,00 +WINJ26;02/01/2026 17:58:00;02/01/2026 18:06:00;8min;1;1;C;166.080,00;166.200,00;192.335,00;Sim;24,00;120,00;40;24,00;120,00;0,00;0,00;0,00;26min;122,00 +WINJ26;05/01/2026 09:02:00;05/01/2026 09:04:00;2min;1;1;C;166.350,00;166.505,00;192.335,00;No;31,00;155,00;41;31,00;155,00;0,00;0,00;0,00;2d15h;153,00 +WINJ26;05/01/2026 09:10:00;05/01/2026 09:14:00;4min;1;1;V;166.300,00;166.395,00;192.335,00;No;19,00;95,00;42;19,00;95,00;0,00;0,00;0,00;8min;172,00 +WINJ26;05/01/2026 09:42:00;05/01/2026 09:46:00;4min;1;1;V;166.465,00;166.675,00;192.335,00;Sim;42,00;210,00;43;42,00;210,00;0,00;0,00;0,00;32min;214,00 +WINJ26;05/01/2026 10:16:00;05/01/2026 10:40:00;24min;1;1;C;166.250,00;166.075,00;192.335,00;Sim;-35,00;-175,00;44;-35,00;-175,00;0,00;0,00;0,00;34min;179,00 +WINJ26;05/01/2026 11:02:00;05/01/2026 11:32:00;30min;1;1;V;166.630,00;166.395,00;192.335,00;No;-47,00;-235,00;45;-47,00;-235,00;0,00;0,00;0,00;46min;132,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:36:00;30min;1;1;V;167.225,00;167.080,00;192.335,00;Sim;-29,00;-145,00;46;-29,00;-145,00;0,00;0,00;0,00;2h4min;103,00 +WINJ26;05/01/2026 14:10:00;05/01/2026 14:28:00;18min;1;1;V;167.405,00;167.455,00;192.335,00;Sim;10,00;50,00;47;10,00;50,00;0,00;0,00;0,00;1h4min;113,00 +WINJ26;05/01/2026 15:28:00;05/01/2026 15:38:00;10min;1;1;V;167.645,00;167.750,00;192.335,00;Sim;21,00;105,00;48;21,00;105,00;0,00;0,00;0,00;1h18min;134,00 +WINJ26;05/01/2026 16:08:00;05/01/2026 16:22:00;14min;1;1;V;167.745,00;167.720,00;192.335,00;No;-5,00;-25,00;49;-5,00;-25,00;0,00;0,00;0,00;40min;129,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:30:00;20min;1;1;C;167.545,00;167.580,00;192.335,00;No;7,00;35,00;50;7,00;35,00;0,00;0,00;0,00;1h2min;136,00 +WINJ26;05/01/2026 17:38:00;05/01/2026 18:02:00;24min;1;1;V;167.645,00;167.665,00;192.335,00;No;4,00;20,00;51;4,00;20,00;0,00;0,00;0,00;28min;140,00 +WINJ26;06/01/2026 09:58:00;06/01/2026 10:26:00;28min;1;1;V;169.380,00;168.775,00;192.335,00;Sim;-121,00;-605,00;52;-121,00;-605,00;0,00;0,00;0,00;16h20min;19,00 +WINJ26;06/01/2026 10:38:00;06/01/2026 10:56:00;18min;1;1;V;169.525,00;169.480,00;192.335,00;Sim;-9,00;-45,00;53;-9,00;-45,00;0,00;0,00;0,00;40min;10,00 +WINJ26;06/01/2026 11:14:00;06/01/2026 11:16:00;2min;1;1;V;169.555,00;169.710,00;192.335,00;Sim;31,00;155,00;54;31,00;155,00;0,00;0,00;0,00;36min;41,00 +WINJ26;06/01/2026 13:26:00;06/01/2026 13:30:00;4min;1;1;C;169.285,00;169.405,00;192.335,00;No;24,00;120,00;55;24,00;120,00;0,00;0,00;0,00;2h12min;65,00 +WINJ26;06/01/2026 15:36:00;06/01/2026 15:38:00;2min;1;1;C;169.410,00;169.365,00;192.335,00;No;-9,00;-45,00;56;-9,00;-45,00;0,00;0,00;0,00;2h10min;56,00 +WINJ26;07/01/2026 09:04:00;07/01/2026 09:06:00;2min;1;1;V;169.030,00;169.100,00;192.335,00;No;14,00;70,00;57;14,00;70,00;0,00;0,00;0,00;17h28min;70,00 +WINJ26;07/01/2026 11:22:00;07/01/2026 11:50:00;28min;1;1;C;168.120,00;167.855,00;192.335,00;Sim;-53,00;-265,00;58;-53,00;-265,00;0,00;0,00;0,00;2h18min;17,00 +WINJ26;07/01/2026 13:32:00;07/01/2026 13:38:00;6min;1;1;V;167.650,00;167.760,00;192.335,00;No;22,00;110,00;59;22,00;110,00;0,00;0,00;0,00;2h10min;39,00 +WINJ26;07/01/2026 16:00:00;07/01/2026 16:14:00;14min;1;1;V;167.700,00;167.710,00;192.335,00;No;2,00;10,00;60;2,00;10,00;0,00;0,00;0,00;2h28min;41,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:50:00;10min;1;1;V;167.665,00;167.855,00;192.335,00;Sim;38,00;190,00;61;38,00;190,00;0,00;0,00;0,00;18h40min;79,00 +WINJ26;08/01/2026 11:46:00;08/01/2026 11:52:00;6min;1;1;V;167.805,00;167.960,00;192.335,00;Sim;31,00;155,00;62;31,00;155,00;0,00;0,00;0,00;1h6min;110,00 +WINJ26;08/01/2026 15:14:00;08/01/2026 15:28:00;14min;1;1;C;167.775,00;167.900,00;192.335,00;Sim;25,00;125,00;63;25,00;125,00;0,00;0,00;0,00;3h28min;135,00 +WINJ26;08/01/2026 15:56:00;08/01/2026 15:58:00;2min;1;1;V;167.895,00;168.010,00;192.335,00;Sim;23,00;115,00;64;23,00;115,00;0,00;0,00;0,00;42min;158,00 +WINJ26;09/01/2026 09:04:00;09/01/2026 09:12:00;8min;1;1;V;168.140,00;168.305,00;192.335,00;Sim;33,00;165,00;65;33,00;165,00;0,00;0,00;0,00;17h8min;191,00 +WINJ26;09/01/2026 09:26:00;09/01/2026 09:52:00;26min;1;1;C;168.045,00;168.010,00;192.335,00;No;-7,00;-35,00;66;-7,00;-35,00;0,00;0,00;0,00;22min;184,00 +WINJ26;09/01/2026 10:10:00;09/01/2026 10:16:00;6min;1;1;V;168.200,00;168.295,00;192.335,00;No;19,00;95,00;67;19,00;95,00;0,00;0,00;0,00;44min;203,00 +WINJ26;09/01/2026 10:58:00;09/01/2026 11:02:00;4min;1;1;V;169.045,00;169.195,00;192.335,00;Sim;30,00;150,00;68;30,00;150,00;0,00;0,00;0,00;48min;233,00 +WINJ26;09/01/2026 11:30:00;09/01/2026 11:32:00;2min;1;1;C;168.930,00;169.005,00;192.335,00;No;15,00;75,00;69;15,00;75,00;0,00;0,00;0,00;32min;248,00 +WINJ26;09/01/2026 11:50:00;09/01/2026 12:10:00;20min;1;1;V;169.350,00;169.330,00;192.335,00;Sim;-4,00;-20,00;70;-4,00;-20,00;0,00;0,00;0,00;20min;244,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:42:00;32min;1;1;V;169.555,00;169.550,00;192.335,00;Sim;-1,00;-5,00;71;-1,00;-5,00;0,00;0,00;0,00;2h20min;243,00 +WINJ26;09/01/2026 14:58:00;09/01/2026 15:32:00;34min;1;1;C;169.505,00;169.345,00;192.335,00;No;-32,00;-160,00;72;-32,00;-160,00;0,00;0,00;0,00;48min;211,00 +WINJ26;09/01/2026 16:30:00;09/01/2026 16:56:00;26min;1;1;C;169.035,00;169.050,00;192.335,00;Sim;3,00;15,00;73;3,00;15,00;0,00;0,00;0,00;1h32min;214,00 +WINJ26;12/01/2026 09:52:00;12/01/2026 10:20:00;28min;1;1;C;168.540,00;168.475,00;192.335,00;Sim;-13,00;-65,00;74;-13,00;-65,00;0,00;0,00;0,00;2d17h;201,00 +WINJ26;12/01/2026 11:12:00;12/01/2026 11:22:00;10min;1;1;C;167.800,00;167.940,00;192.335,00;Sim;28,00;140,00;75;28,00;140,00;0,00;0,00;0,00;1h20min;229,00 +WINJ26;12/01/2026 14:04:00;12/01/2026 14:46:00;42min;1;1;C;168.615,00;168.610,00;192.335,00;No;-1,00;-5,00;76;-1,00;-5,00;0,00;0,00;0,00;2h52min;228,00 +WINJ26;12/01/2026 15:20:00;12/01/2026 15:26:00;6min;1;1;V;168.675,00;168.730,00;192.335,00;No;11,00;55,00;77;11,00;55,00;0,00;0,00;0,00;1h16min;239,00 +WINJ26;13/01/2026 09:56:00;13/01/2026 10:24:00;28min;1;1;C;167.785,00;167.525,00;192.335,00;Sim;-52,00;-260,00;78;-52,00;-260,00;0,00;0,00;0,00;18h36min;187,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.335,00;No;29,00;145,00;79;29,00;145,00;0,00;0,00;0,00;1h18min;216,00 +WINJ26;13/01/2026 12:18:00;13/01/2026 12:46:00;28min;1;1;C;167.265,00;167.200,00;192.335,00;Sim;-13,00;-65,00;80;-13,00;-65,00;0,00;0,00;0,00;1h4min;203,00 +WINJ26;13/01/2026 13:18:00;13/01/2026 13:32:00;14min;1;1;C;167.045,00;167.120,00;192.335,00;Sim;15,00;75,00;81;15,00;75,00;0,00;0,00;0,00;1h;218,00 +WINJ26;13/01/2026 16:22:00;13/01/2026 16:40:00;18min;1;1;C;167.065,00;167.250,00;192.335,00;No;37,00;185,00;82;37,00;185,00;0,00;0,00;0,00;3h4min;255,00 +WINJ26;13/01/2026 17:16:00;13/01/2026 17:22:00;6min;1;1;V;167.145,00;167.250,00;192.335,00;No;21,00;105,00;83;21,00;105,00;0,00;0,00;0,00;54min;276,00 +WINJ26;14/01/2026 10:04:00;14/01/2026 10:32:00;28min;1;1;V;168.545,00;168.100,00;192.335,00;Sim;-89,00;-445,00;84;-89,00;-445,00;0,00;0,00;0,00;16h48min;187,00 +WINJ26;14/01/2026 10:38:00;14/01/2026 10:54:00;16min;1;1;V;168.375,00;168.555,00;192.335,00;Sim;36,00;180,00;85;36,00;180,00;0,00;0,00;0,00;34min;223,00 +WINJ26;14/01/2026 11:18:00;14/01/2026 11:22:00;4min;1;1;C;167.770,00;168.170,00;192.335,00;No;80,00;400,00;86;80,00;400,00;0,00;0,00;0,00;40min;303,00 +WINJ26;14/01/2026 12:00:00;14/01/2026 12:30:00;30min;1;1;V;168.865,00;168.630,00;192.335,00;Sim;-47,00;-235,00;87;-47,00;-235,00;0,00;0,00;0,00;42min;256,00 +WINJ26;14/01/2026 14:20:00;14/01/2026 14:38:00;18min;1;1;V;168.870,00;168.900,00;192.335,00;Sim;6,00;30,00;88;6,00;30,00;0,00;0,00;0,00;2h20min;262,00 +WINJ26;14/01/2026 15:40:00;14/01/2026 16:08:00;28min;1;1;V;169.625,00;169.270,00;192.335,00;Sim;-71,00;-355,00;89;-71,00;-355,00;0,00;0,00;0,00;1h20min;191,00 +WINJ26;14/01/2026 17:08:00;14/01/2026 17:20:00;12min;1;1;C;169.740,00;169.815,00;192.335,00;No;15,00;75,00;90;15,00;75,00;0,00;0,00;0,00;1h28min;206,00 +WINJ26;14/01/2026 18:22:00;15/01/2026 09:02:00;14h40min;1;1;V;170.355,00;170.515,00;192.335,00;Sim;32,00;160,00;91;32,00;160,00;0,00;0,00;0,00;1h14min;238,00 +WINJ26;15/01/2026 10:34:00;15/01/2026 11:02:00;28min;1;1;C;170.420,00;170.350,00;192.335,00;No;-14,00;-70,00;92;-14,00;-70,00;0,00;0,00;0,00;16h12min;224,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 12:00:00;16min;1;1;C;170.070,00;170.120,00;192.335,00;Sim;10,00;50,00;93;10,00;50,00;0,00;0,00;0,00;1h10min;234,00 +WINJ26;15/01/2026 12:46:00;15/01/2026 13:00:00;14min;1;1;V;170.500,00;170.480,00;192.335,00;No;-4,00;-20,00;94;-4,00;-20,00;0,00;0,00;0,00;1h2min;230,00 +WINJ26;15/01/2026 14:50:00;15/01/2026 14:54:00;4min;1;1;V;170.800,00;170.760,00;192.335,00;Sim;-8,00;-40,00;95;-8,00;-40,00;0,00;0,00;0,00;2h4min;222,00 +WINJ26;15/01/2026 15:24:00;15/01/2026 15:52:00;28min;1;1;V;171.230,00;171.220,00;192.335,00;Sim;-2,00;-10,00;96;-2,00;-10,00;0,00;0,00;0,00;34min;220,00 +WINJ26;15/01/2026 17:48:00;15/01/2026 18:02:00;14min;1;1;C;170.635,00;170.700,00;192.335,00;No;13,00;65,00;97;13,00;65,00;0,00;0,00;0,00;2h24min;233,00 +WINJ26;16/01/2026 09:02:00;16/01/2026 09:28:00;26min;1;1;V;171.005,00;170.760,00;192.335,00;No;-49,00;-245,00;98;-49,00;-245,00;0,00;0,00;0,00;15h14min;184,00 +WINJ26;16/01/2026 10:12:00;16/01/2026 10:42:00;30min;1;1;C;170.700,00;170.415,00;192.335,00;No;-57,00;-285,00;99;-57,00;-285,00;0,00;0,00;0,00;1h10min;127,00 +WINJ26;16/01/2026 10:54:00;16/01/2026 11:22:00;28min;1;1;C;170.335,00;169.615,00;192.335,00;Sim;-144,00;-720,00;100;-144,00;-720,00;0,00;0,00;0,00;42min;-17,00 +WINJ26;16/01/2026 12:26:00;16/01/2026 12:50:00;24min;1;1;C;169.670,00;169.500,00;192.335,00;Sim;-34,00;-170,00;101;-34,00;-170,00;0,00;0,00;0,00;1h32min;-51,00 +WINJ26;16/01/2026 13:34:00;16/01/2026 13:58:00;24min;1;1;V;169.505,00;169.595,00;192.335,00;No;18,00;90,00;102;18,00;90,00;0,00;0,00;0,00;1h8min;-33,00 +WINJ26;16/01/2026 17:06:00;16/01/2026 17:42:00;36min;1;1;V;169.650,00;169.735,00;192.335,00;Sim;17,00;85,00;103;17,00;85,00;0,00;0,00;0,00;3h32min;-16,00 +WINJ26;16/01/2026 17:56:00;16/01/2026 18:08:00;12min;1;1;C;169.580,00;169.700,00;192.335,00;Sim;24,00;120,00;104;24,00;120,00;0,00;0,00;0,00;50min;8,00 +WINJ26;19/01/2026 09:00:00;19/01/2026 09:02:00;2min;1;1;V;169.210,00;169.140,00;192.335,00;No;-14,00;-70,00;105;-14,00;-70,00;0,00;0,00;0,00;2d15h;-6,00 +WINJ26;19/01/2026 11:44:00;19/01/2026 12:06:00;22min;1;1;V;169.640,00;169.475,00;192.335,00;Sim;-33,00;-165,00;106;-33,00;-165,00;0,00;0,00;0,00;2h44min;-39,00 +WINJ26;19/01/2026 12:28:00;19/01/2026 12:34:00;6min;1;1;C;169.485,00;169.615,00;192.335,00;Sim;26,00;130,00;107;26,00;130,00;0,00;0,00;0,00;44min;-13,00 +WINJ26;19/01/2026 13:08:00;19/01/2026 13:36:00;28min;1;1;V;169.890,00;169.880,00;192.335,00;Sim;-2,00;-10,00;108;-2,00;-10,00;0,00;0,00;0,00;40min;-15,00 +WINJ26;19/01/2026 13:58:00;19/01/2026 14:04:00;6min;1;1;C;169.805,00;169.885,00;192.335,00;No;16,00;80,00;109;16,00;80,00;0,00;0,00;0,00;50min;1,00 +WINJ26;20/01/2026 09:36:00;20/01/2026 09:46:00;10min;1;1;C;168.420,00;168.535,00;192.335,00;Sim;23,00;115,00;110;23,00;115,00;0,00;0,00;0,00;19h38min;24,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.335,00;No;48,00;240,00;111;48,00;240,00;0,00;0,00;0,00;50min;72,00 +WINJ26;20/01/2026 11:28:00;20/01/2026 11:56:00;28min;1;1;V;170.685,00;169.395,00;192.335,00;Sim;-258,00;-1.290,00;112;-258,00;-1.290,00;0,00;0,00;0,00;1h2min;-186,00 +WINJ26;20/01/2026 12:52:00;20/01/2026 13:20:00;28min;1;1;V;171.235,00;170.970,00;192.335,00;Sim;-53,00;-265,00;113;-53,00;-265,00;0,00;0,00;0,00;1h24min;-239,00 +WINJ26;20/01/2026 13:26:00;20/01/2026 13:44:00;18min;1;1;V;171.190,00;171.230,00;192.335,00;Sim;8,00;40,00;114;8,00;40,00;0,00;0,00;0,00;34min;-231,00 +WINJ26;20/01/2026 13:56:00;20/01/2026 13:58:00;2min;1;1;C;171.110,00;171.255,00;192.335,00;No;29,00;145,00;115;29,00;145,00;0,00;0,00;0,00;30min;-202,00 +WINJ26;20/01/2026 14:42:00;20/01/2026 15:12:00;30min;1;1;C;170.980,00;170.835,00;192.335,00;Sim;-29,00;-145,00;116;-29,00;-145,00;0,00;0,00;0,00;46min;-231,00 +WINJ26;20/01/2026 16:08:00;20/01/2026 16:28:00;20min;1;1;C;170.640,00;170.715,00;192.335,00;Sim;15,00;75,00;117;15,00;75,00;0,00;0,00;0,00;1h26min;-216,00 +WINJ26;20/01/2026 18:08:00;20/01/2026 18:22:00;14min;1;1;V;171.015,00;171.080,00;192.335,00;No;13,00;65,00;118;13,00;65,00;0,00;0,00;0,00;2h;-203,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.335,00;No;-6,00;-30,00;119;-6,00;-30,00;0,00;0,00;0,00;14h54min;-209,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 11:00:00;28min;1;1;V;173.820,00;173.430,00;192.335,00;Sim;-78,00;-390,00;120;-78,00;-390,00;0,00;0,00;0,00;1h30min;-287,00 +WINJ26;21/01/2026 11:14:00;21/01/2026 11:20:00;6min;1;1;V;173.820,00;173.970,00;192.335,00;Sim;30,00;150,00;121;30,00;150,00;0,00;0,00;0,00;42min;-257,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.335,00;Sim;9,00;45,00;122;9,00;45,00;0,00;0,00;0,00;2h24min;-248,00 +WINJ26;21/01/2026 14:40:00;21/01/2026 14:42:00;2min;1;1;C;174.890,00;174.900,00;192.335,00;No;2,00;10,00;123;2,00;10,00;0,00;0,00;0,00;1h2min;-246,00 +WINJ26;21/01/2026 17:18:00;21/01/2026 17:46:00;28min;1;1;V;176.930,00;176.620,00;192.335,00;Sim;-62,00;-310,00;124;-62,00;-310,00;0,00;0,00;0,00;2h38min;-308,00 +WINJ26;21/01/2026 18:02:00;21/01/2026 18:12:00;10min;1;1;V;176.820,00;177.100,00;192.335,00;Sim;56,00;280,00;125;56,00;280,00;0,00;0,00;0,00;44min;-252,00 +WINJ26;22/01/2026 09:06:00;22/01/2026 09:34:00;28min;1;1;V;177.580,00;177.305,00;192.335,00;Sim;-55,00;-275,00;126;-55,00;-275,00;0,00;0,00;0,00;15h4min;-307,00 +WINJ26;22/01/2026 09:40:00;22/01/2026 10:06:00;26min;1;1;V;177.800,00;177.700,00;192.335,00;Sim;-20,00;-100,00;127;-20,00;-100,00;0,00;0,00;0,00;34min;-327,00 +WINJ26;22/01/2026 10:22:00;22/01/2026 10:34:00;12min;1;1;V;177.825,00;178.095,00;192.335,00;Sim;54,00;270,00;128;54,00;270,00;0,00;0,00;0,00;42min;-273,00 +WINJ26;22/01/2026 13:24:00;22/01/2026 13:32:00;8min;1;1;V;181.750,00;182.140,00;192.335,00;Sim;78,00;390,00;129;78,00;390,00;0,00;0,00;0,00;3h2min;-195,00 +WINJ26;22/01/2026 13:54:00;22/01/2026 14:00:00;6min;1;1;V;181.830,00;181.950,00;192.335,00;No;24,00;120,00;130;24,00;120,00;0,00;0,00;0,00;30min;-171,00 +WINJ26;22/01/2026 14:30:00;22/01/2026 14:32:00;2min;1;1;C;181.570,00;181.780,00;192.335,00;No;42,00;210,00;131;42,00;210,00;0,00;0,00;0,00;36min;-129,00 +WINJ26;22/01/2026 15:12:00;22/01/2026 15:18:00;6min;1;1;V;181.700,00;181.840,00;192.335,00;No;28,00;140,00;132;28,00;140,00;0,00;0,00;0,00;42min;-101,00 +WINJ26;22/01/2026 15:34:00;22/01/2026 16:08:00;34min;1;1;C;181.375,00;181.130,00;192.335,00;Sim;-49,00;-245,00;133;-49,00;-245,00;0,00;0,00;0,00;22min;-150,00 +WINJ26;22/01/2026 17:54:00;22/01/2026 18:04:00;10min;1;1;V;180.810,00;180.810,00;192.335,00;No;0;0;134;0;0;0,00;0,00;0,00;2h20min;-150,00 +WINJ26;23/01/2026 09:16:00;23/01/2026 09:18:00;2min;1;1;V;181.370,00;181.800,00;192.335,00;Sim;86,00;430,00;135;86,00;430,00;0,00;0,00;0,00;15h22min;-64,00 +WINJ26;23/01/2026 11:26:00;23/01/2026 11:30:00;4min;1;1;C;181.030,00;181.255,00;192.335,00;Sim;45,00;225,00;136;45,00;225,00;0,00;0,00;0,00;2h10min;-19,00 +WINJ26;23/01/2026 13:04:00;23/01/2026 13:32:00;28min;1;1;V;182.340,00;182.505,00;192.335,00;Sim;33,00;165,00;137;33,00;165,00;0,00;0,00;0,00;1h38min;14,00 +WINJ26;23/01/2026 15:56:00;23/01/2026 16:24:00;28min;1;1;V;183.155,00;182.600,00;192.335,00;Sim;-111,00;-555,00;138;-111,00;-555,00;0,00;0,00;0,00;2h52min;-97,00 +WINJ26;23/01/2026 16:30:00;23/01/2026 16:58:00;28min;1;1;V;183.170,00;183.050,00;192.335,00;Sim;-24,00;-120,00;139;-24,00;-120,00;0,00;0,00;0,00;34min;-121,00 +WINJ26;23/01/2026 17:32:00;23/01/2026 17:50:00;18min;1;1;V;184.400,00;184.505,00;192.335,00;Sim;21,00;105,00;140;21,00;105,00;0,00;0,00;0,00;1h2min;-100,00 +WINJ26;23/01/2026 18:10:00;23/01/2026 18:22:00;12min;1;1;C;183.980,00;184.300,00;192.335,00;No;64,00;320,00;141;64,00;320,00;0,00;0,00;0,00;38min;-36,00 +WINJ26;26/01/2026 09:44:00;26/01/2026 10:00:00;16min;1;1;C;185.040,00;184.825,00;192.335,00;No;-43,00;-215,00;142;-43,00;-215,00;0,00;0,00;0,00;2d15h;-79,00 +WINJ26;26/01/2026 10:18:00;26/01/2026 10:46:00;28min;1;1;C;184.225,00;183.750,00;192.335,00;Sim;-95,00;-475,00;143;-95,00;-475,00;0,00;0,00;0,00;34min;-174,00 +WINJ26;26/01/2026 11:28:00;26/01/2026 11:30:00;2min;1;1;C;182.940,00;183.185,00;192.335,00;Sim;49,00;245,00;144;49,00;245,00;0,00;0,00;0,00;1h10min;-125,00 +WINJ26;26/01/2026 11:34:00;26/01/2026 11:50:00;16min;1;1;V;183.435,00;184.025,00;192.335,00;No;118,00;590,00;145;118,00;590,00;0,00;0,00;0,00;6min;-7,00 +WINJ26;26/01/2026 13:42:00;26/01/2026 13:50:00;8min;1;1;C;183.140,00;183.435,00;192.335,00;No;59,00;295,00;146;59,00;295,00;0,00;0,00;0,00;2h8min;52,00 +WINJ26;26/01/2026 15:08:00;26/01/2026 15:38:00;30min;1;1;C;183.300,00;183.780,00;192.335,00;No;96,00;480,00;147;96,00;480,00;0,00;0,00;0,00;1h26min;148,00 +WINJ26;26/01/2026 16:22:00;26/01/2026 16:28:00;6min;1;1;C;183.125,00;183.285,00;192.335,00;Sim;32,00;160,00;148;32,00;160,00;0,00;0,00;0,00;1h14min;180,00 +WINJ26;26/01/2026 17:18:00;26/01/2026 17:48:00;30min;1;1;V;183.880,00;183.635,00;192.335,00;No;-49,00;-245,00;149;-49,00;-245,00;0,00;0,00;0,00;56min;131,00 +WINJ26;27/01/2026 09:22:00;27/01/2026 09:52:00;30min;1;1;V;186.130,00;185.210,00;192.335,00;Sim;-184,00;-920,00;150;-184,00;-920,00;0,00;0,00;0,00;16h4min;-53,00 +WINJ26;27/01/2026 11:44:00;27/01/2026 12:10:00;26min;1;1;V;187.525,00;187.535,00;192.335,00;Sim;2,00;10,00;151;2,00;10,00;0,00;0,00;0,00;2h22min;-51,00 +WINJ26;27/01/2026 12:18:00;27/01/2026 12:28:00;10min;1;1;V;187.570,00;187.755,00;192.335,00;Sim;37,00;185,00;152;37,00;185,00;0,00;0,00;0,00;34min;-14,00 +WINJ26;27/01/2026 13:48:00;27/01/2026 14:08:00;20min;1;1;V;188.055,00;188.310,00;192.335,00;Sim;51,00;255,00;153;51,00;255,00;0,00;0,00;0,00;1h30min;37,00 +WINJ26;28/01/2026 14:32:00;28/01/2026 14:52:00;20min;1;1;C;188.395,00;188.665,00;192.335,00;No;54,00;270,00;154;54,00;270,00;0,00;0,00;0,00;1d;91,00 +WINJ26;28/01/2026 16:06:00;28/01/2026 16:12:00;6min;1;1;C;187.940,00;188.195,00;192.335,00;Sim;51,00;255,00;155;51,00;255,00;0,00;0,00;0,00;1h34min;142,00 +WINJ26;28/01/2026 16:56:00;28/01/2026 17:24:00;28min;1;1;V;189.025,00;188.595,00;192.335,00;Sim;-86,00;-430,00;156;-86,00;-430,00;0,00;0,00;0,00;50min;56,00 +WINJ26;28/01/2026 18:24:00;29/01/2026 09:28:00;15h4min;1;1;V;191.285,00;189.990,00;192.335,00;Sim;-259,00;-1.295,00;157;-259,00;-1.295,00;0,00;0,00;0,00;1h28min;-203,00 +WINJ26;29/01/2026 14:10:00;29/01/2026 14:40:00;30min;1;1;V;188.440,00;187.775,00;192.335,00;No;-133,00;-665,00;158;-133,00;-665,00;0,00;0,00;0,00;19h46min;-336,00 +WINJ26;29/01/2026 16:28:00;29/01/2026 16:34:00;6min;1;1;V;188.195,00;188.345,00;192.335,00;Sim;30,00;150,00;159;30,00;150,00;0,00;0,00;0,00;2h18min;-306,00 +WINJ26;29/01/2026 17:02:00;29/01/2026 17:08:00;6min;1;1;C;188.105,00;188.385,00;192.335,00;No;56,00;280,00;160;56,00;280,00;0,00;0,00;0,00;34min;-250,00 +WINJ26;29/01/2026 18:10:00;29/01/2026 18:14:00;4min;1;1;C;188.215,00;187.970,00;192.335,00;No;-49,00;-245,00;161;-49,00;-245,00;0,00;0,00;0,00;1h8min;-299,00 +WINJ26;30/01/2026 09:14:00;30/01/2026 09:20:00;6min;1;1;C;187.180,00;187.580,00;192.335,00;Sim;80,00;400,00;162;80,00;400,00;0,00;0,00;0,00;15h4min;-219,00 +WINJ26;30/01/2026 10:24:00;30/01/2026 10:44:00;20min;1;1;V;187.585,00;187.820,00;192.335,00;No;47,00;235,00;163;47,00;235,00;0,00;0,00;0,00;1h10min;-172,00 +WINJ26;30/01/2026 12:26:00;30/01/2026 12:28:00;2min;1;1;V;187.695,00;187.890,00;192.335,00;Sim;39,00;195,00;164;39,00;195,00;0,00;0,00;0,00;2h2min;-133,00 +WINJ26;30/01/2026 13:18:00;30/01/2026 13:48:00;30min;1;1;C;187.390,00;187.200,00;192.335,00;No;-38,00;-190,00;165;-38,00;-190,00;0,00;0,00;0,00;52min;-171,00 +WINJ26;30/01/2026 15:34:00;30/01/2026 15:46:00;12min;1;1;C;185.275,00;185.350,00;192.335,00;Sim;15,00;75,00;166;15,00;75,00;0,00;0,00;0,00;2h16min;-156,00 +WINJ26;30/01/2026 16:26:00;30/01/2026 16:32:00;6min;1;1;V;186.000,00;186.400,00;192.335,00;No;80,00;400,00;167;80,00;400,00;0,00;0,00;0,00;52min;-76,00 +WINJ26;30/01/2026 17:00:00;30/01/2026 17:06:00;6min;1;1;V;186.015,00;186.250,00;192.335,00;No;47,00;235,00;168;47,00;235,00;0,00;0,00;0,00;34min;-29,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:26:00;6min;1;1;C;185.670,00;185.795,00;192.335,00;No;25,00;125,00;169;25,00;125,00;0,00;0,00;0,00;20min;-4,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:54:00;28min;1;1;V;186.635,00;186.370,00;192.335,00;Sim;-53,00;-265,00;170;-53,00;-265,00;0,00;0,00;0,00;2d16h;-57,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.335,00;No;40,00;200,00;171;40,00;200,00;0,00;0,00;0,00;2h6min;-17,00 +WINJ26;02/02/2026 12:06:00;02/02/2026 12:10:00;4min;1;1;C;186.490,00;186.810,00;192.335,00;Sim;64,00;320,00;172;64,00;320,00;0,00;0,00;0,00;34min;47,00 +WINJ26;02/02/2026 13:56:00;02/02/2026 14:16:00;20min;1;1;V;187.120,00;187.150,00;192.335,00;Sim;6,00;30,00;173;6,00;30,00;0,00;0,00;0,00;1h50min;53,00 +WINJ26;02/02/2026 14:36:00;02/02/2026 14:40:00;4min;1;1;V;187.005,00;187.180,00;192.335,00;Sim;35,00;175,00;174;35,00;175,00;0,00;0,00;0,00;40min;88,00 +WINJ26;02/02/2026 15:36:00;02/02/2026 15:50:00;14min;1;1;C;186.735,00;186.805,00;192.335,00;No;14,00;70,00;175;14,00;70,00;0,00;0,00;0,00;1h;102,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:40:00;28min;1;1;C;186.555,00;186.490,00;192.335,00;Sim;-13,00;-65,00;176;-13,00;-65,00;0,00;0,00;0,00;36min;89,00 +WINJ26;02/02/2026 17:38:00;02/02/2026 18:06:00;28min;1;1;V;187.590,00;187.045,00;192.335,00;No;-109,00;-545,00;177;-109,00;-545,00;0,00;0,00;0,00;1h26min;-20,00 +WINJ26;03/02/2026 09:42:00;03/02/2026 10:10:00;28min;1;1;V;189.820,00;189.335,00;192.335,00;Sim;-97,00;-485,00;178;-97,00;-485,00;0,00;0,00;0,00;16h4min;-117,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:56:00;28min;1;1;V;191.605,00;191.120,00;192.335,00;Sim;-97,00;-485,00;179;-97,00;-485,00;0,00;0,00;0,00;1h46min;-214,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 14:48:00;28min;1;1;C;190.335,00;189.870,00;192.335,00;No;-93,00;-465,00;180;-93,00;-465,00;0,00;0,00;0,00;2h52min;-307,00 +WINJ26;03/02/2026 15:28:00;03/02/2026 15:40:00;12min;1;1;C;189.640,00;189.700,00;192.335,00;Sim;12,00;60,00;181;12,00;60,00;0,00;0,00;0,00;1h8min;-295,00 +WINJ26;03/02/2026 16:26:00;03/02/2026 16:32:00;6min;1;1;V;189.840,00;189.940,00;192.335,00;No;20,00;100,00;182;20,00;100,00;0,00;0,00;0,00;58min;-275,00 +WINJ26;04/02/2026 09:04:00;04/02/2026 09:06:00;2min;1;1;V;189.785,00;190.090,00;192.335,00;Sim;61,00;305,00;183;61,00;305,00;0,00;0,00;0,00;16h38min;-214,00 +WINJ26;04/02/2026 09:36:00;04/02/2026 09:54:00;18min;1;1;C;189.165,00;189.580,00;192.335,00;Sim;83,00;415,00;184;83,00;415,00;0,00;0,00;0,00;32min;-131,00 +WINJ26;04/02/2026 11:26:00;04/02/2026 11:54:00;28min;1;1;C;188.100,00;187.410,00;192.335,00;Sim;-138,00;-690,00;185;-138,00;-690,00;0,00;0,00;0,00;1h50min;-269,00 +WINJ26;04/02/2026 12:28:00;04/02/2026 12:34:00;6min;1;1;V;187.680,00;187.850,00;192.335,00;No;34,00;170,00;186;34,00;170,00;0,00;0,00;0,00;1h2min;-235,00 +WINJ26;04/02/2026 12:56:00;04/02/2026 13:24:00;28min;1;1;C;187.335,00;186.520,00;192.335,00;Sim;-163,00;-815,00;187;-163,00;-815,00;0,00;0,00;0,00;28min;-398,00 +WINJ26;04/02/2026 13:54:00;04/02/2026 13:58:00;4min;1;1;C;186.205,00;186.385,00;192.335,00;Sim;36,00;180,00;188;36,00;180,00;0,00;0,00;0,00;58min;-362,00 +WINJ26;04/02/2026 14:14:00;04/02/2026 14:16:00;2min;1;1;C;186.230,00;186.350,00;192.335,00;No;24,00;120,00;189;24,00;120,00;0,00;0,00;0,00;20min;-338,00 +WINJ26;04/02/2026 16:04:00;04/02/2026 16:18:00;14min;1;1;C;184.800,00;185.015,00;192.335,00;Sim;43,00;215,00;190;43,00;215,00;0,00;0,00;0,00;1h50min;-295,00 +WINJ26;04/02/2026 17:26:00;04/02/2026 17:34:00;8min;1;1;V;185.535,00;185.780,00;192.335,00;No;49,00;245,00;191;49,00;245,00;0,00;0,00;0,00;1h22min;-246,00 +WINJ26;04/02/2026 17:44:00;04/02/2026 17:52:00;8min;1;1;V;185.760,00;185.940,00;192.335,00;Sim;36,00;180,00;192;36,00;180,00;0,00;0,00;0,00;18min;-210,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.335,00;Sim;-3,00;-15,00;193;-3,00;-15,00;0,00;0,00;0,00;15h22min;-213,00 +WINJ26;05/02/2026 09:36:00;05/02/2026 09:40:00;4min;1;1;V;186.285,00;186.670,00;192.335,00;Sim;77,00;385,00;194;77,00;385,00;0,00;0,00;0,00;30min;-136,00 +WINJ26;05/02/2026 10:28:00;05/02/2026 10:56:00;28min;1;1;V;186.960,00;186.920,00;192.335,00;Sim;-8,00;-40,00;195;-8,00;-40,00;0,00;0,00;0,00;52min;-144,00 +WINJ26;05/02/2026 11:06:00;05/02/2026 11:32:00;26min;1;1;V;187.195,00;187.320,00;192.335,00;Sim;25,00;125,00;196;25,00;125,00;0,00;0,00;0,00;38min;-119,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.335,00;No;41,00;205,00;197;41,00;205,00;0,00;0,00;0,00;1h26min;-78,00 +WINJ26;05/02/2026 15:54:00;05/02/2026 16:04:00;10min;1;1;C;187.440,00;187.540,00;192.335,00;No;20,00;100,00;198;20,00;100,00;0,00;0,00;0,00;3h22min;-58,00 +WINJ26;05/02/2026 16:56:00;05/02/2026 17:00:00;4min;1;1;C;187.225,00;187.375,00;192.335,00;Sim;30,00;150,00;199;30,00;150,00;0,00;0,00;0,00;1h2min;-28,00 +WINJ26;06/02/2026 09:30:00;06/02/2026 09:34:00;4min;1;1;C;186.690,00;186.970,00;192.335,00;Sim;56,00;280,00;200;56,00;280,00;0,00;0,00;0,00;16h34min;28,00 +WINJ26;06/02/2026 11:16:00;06/02/2026 11:36:00;20min;1;1;V;186.570,00;186.555,00;192.335,00;No;-3,00;-15,00;201;-3,00;-15,00;0,00;0,00;0,00;1h46min;25,00 +WINJ26;06/02/2026 13:24:00;06/02/2026 13:52:00;28min;1;1;V;187.085,00;186.730,00;192.335,00;Sim;-71,00;-355,00;202;-71,00;-355,00;0,00;0,00;0,00;2h8min;-46,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:46:00;30min;1;1;C;186.525,00;186.430,00;192.335,00;Sim;-19,00;-95,00;203;-19,00;-95,00;0,00;0,00;0,00;1h52min;-65,00 +WINJ26;06/02/2026 17:16:00;06/02/2026 17:40:00;24min;1;1;V;187.165,00;187.005,00;192.335,00;Sim;-32,00;-160,00;204;-32,00;-160,00;0,00;0,00;0,00;2h;-97,00 +WINJ26;09/02/2026 09:08:00;09/02/2026 09:36:00;28min;1;1;V;188.200,00;187.495,00;192.335,00;Sim;-141,00;-705,00;205;-141,00;-705,00;0,00;0,00;0,00;2d15h;-238,00 +WINJ26;09/02/2026 10:26:00;09/02/2026 10:48:00;22min;1;1;C;187.640,00;187.650,00;192.335,00;No;2,00;10,00;206;2,00;10,00;0,00;0,00;0,00;1h18min;-236,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:18:00;28min;1;1;V;188.175,00;188.185,00;192.335,00;Sim;2,00;10,00;207;2,00;10,00;0,00;0,00;0,00;1h24min;-234,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:14:00;4min;1;1;C;187.925,00;188.070,00;192.335,00;No;29,00;145,00;208;29,00;145,00;0,00;0,00;0,00;1h20min;-205,00 +WINJ26;09/02/2026 14:44:00;09/02/2026 14:56:00;12min;1;1;V;189.360,00;189.525,00;192.335,00;Sim;33,00;165,00;209;33,00;165,00;0,00;0,00;0,00;1h34min;-172,00 +WINJ26;09/02/2026 16:36:00;09/02/2026 16:48:00;12min;1;1;V;190.275,00;190.395,00;192.335,00;Sim;24,00;120,00;210;24,00;120,00;0,00;0,00;0,00;1h52min;-148,00 +WINJ26;09/02/2026 17:56:00;09/02/2026 18:10:00;14min;1;1;V;190.545,00;190.630,00;192.335,00;Sim;17,00;85,00;211;17,00;85,00;0,00;0,00;0,00;1h20min;-131,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 10:04:00;16min;1;1;C;189.660,00;189.935,00;192.335,00;No;55,00;275,00;212;55,00;275,00;0,00;0,00;0,00;15h52min;-76,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 13:00:00;22min;1;1;V;190.815,00;190.860,00;192.335,00;Sim;9,00;45,00;213;9,00;45,00;0,00;0,00;0,00;2h50min;-67,00 +WINJ26;10/02/2026 13:46:00;10/02/2026 14:10:00;24min;1;1;C;190.440,00;190.435,00;192.335,00;No;-1,00;-5,00;214;-1,00;-5,00;0,00;0,00;0,00;1h8min;-68,00 +WINJ26;10/02/2026 15:12:00;10/02/2026 15:40:00;28min;1;1;C;190.045,00;189.580,00;192.335,00;Sim;-93,00;-465,00;215;-93,00;-465,00;0,00;0,00;0,00;1h26min;-161,00 +WINJ26;10/02/2026 15:54:00;10/02/2026 16:08:00;14min;1;1;C;189.500,00;189.690,00;192.335,00;Sim;38,00;190,00;216;38,00;190,00;0,00;0,00;0,00;42min;-123,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 09:58:00;28min;1;1;V;192.405,00;191.540,00;192.335,00;Sim;-173,00;-865,00;217;-173,00;-865,00;0,00;0,00;0,00;17h36min;-296,00 +WINJ26;11/02/2026 10:00:00;11/02/2026 10:08:00;8min;1;1;V;192.100,00;192.235,00;192.335,00;Sim;27,00;135,00;218;27,00;135,00;0,00;0,00;0,00;30min;-269,00 +WINJ26;11/02/2026 10:28:00;11/02/2026 10:56:00;28min;1;1;V;192.625,00;192.225,00;192.335,00;No;-80,00;-400,00;219;-80,00;-400,00;0,00;0,00;0,00;28min;-349,00 +WINJ26;11/02/2026 11:42:00;11/02/2026 11:52:00;10min;1;1;V;193.210,00;193.415,00;192.335,00;Sim;41,00;205,00;220;41,00;205,00;0,00;0,00;0,00;1h14min;-308,00 +WINJ26;11/02/2026 12:40:00;11/02/2026 12:42:00;2min;1;1;C;192.485,00;192.680,00;192.335,00;No;39,00;195,00;221;39,00;195,00;0,00;0,00;0,00;58min;-269,00 +WINJ26;12/02/2026 09:00:00;12/02/2026 09:02:00;2min;1;1;C;194.625,00;194.380,00;192.335,00;No;-49,00;-245,00;222;-49,00;-245,00;0,00;0,00;0,00;20h20min;-318,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.335,00;No;-16,00;-80,00;223;-16,00;-80,00;0,00;0,00;0,00;4min;-334,00 +WINJ26;12/02/2026 09:54:00;12/02/2026 10:04:00;10min;1;1;C;192.885,00;193.075,00;192.335,00;Sim;38,00;190,00;224;38,00;190,00;0,00;0,00;0,00;50min;-296,00 +WINJ26;12/02/2026 11:02:00;12/02/2026 11:10:00;8min;1;1;C;192.990,00;193.220,00;192.335,00;No;46,00;230,00;225;46,00;230,00;0,00;0,00;0,00;1h8min;-250,00 +WINJ26;12/02/2026 11:28:00;12/02/2026 11:32:00;4min;1;1;V;193.405,00;193.735,00;192.335,00;Sim;66,00;330,00;226;66,00;330,00;0,00;0,00;0,00;26min;-184,00 +WINJ26;12/02/2026 12:20:00;12/02/2026 12:22:00;2min;1;1;V;193.620,00;193.765,00;192.335,00;Sim;29,00;145,00;227;29,00;145,00;0,00;0,00;0,00;52min;-155,00 +WINJ26;12/02/2026 13:06:00;12/02/2026 13:34:00;28min;1;1;C;193.430,00;192.545,00;192.335,00;No;-177,00;-885,00;228;-177,00;-885,00;0,00;0,00;0,00;46min;-332,00 +WINJ26;12/02/2026 17:10:00;12/02/2026 17:12:00;2min;1;1;V;192.035,00;192.305,00;192.335,00;No;54,00;270,00;229;54,00;270,00;0,00;0,00;0,00;4h4min;-278,00 +WINJ26;12/02/2026 18:12:00;13/02/2026 09:14:00;15h2min;1;1;C;191.850,00;189.740,00;192.335,00;Sim;-422,00;-2.110,00;230;-422,00;-2.110,00;0,00;0,00;0,00;1h2min;-700,00 +WINJ26;13/02/2026 10:22:00;13/02/2026 10:28:00;6min;1;1;C;188.785,00;189.140,00;192.335,00;Sim;71,00;355,00;231;71,00;355,00;0,00;0,00;0,00;16h10min;-629,00 +WINJ26;13/02/2026 11:44:00;13/02/2026 11:46:00;2min;1;1;C;188.130,00;188.625,00;192.335,00;Sim;99,00;495,00;232;99,00;495,00;0,00;0,00;0,00;1h22min;-530,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.335,00;No;68,00;340,00;233;68,00;340,00;0,00;0,00;0,00;1h;-462,00 +WINJ26;13/02/2026 13:34:00;13/02/2026 14:02:00;28min;1;1;V;189.495,00;189.300,00;192.335,00;Sim;-39,00;-195,00;234;-39,00;-195,00;0,00;0,00;0,00;50min;-501,00 +WINJ26;13/02/2026 16:26:00;13/02/2026 16:32:00;6min;1;1;C;189.705,00;189.895,00;192.335,00;No;38,00;190,00;235;38,00;190,00;0,00;0,00;0,00;2h52min;-463,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.335,00;Sim;14,00;70,00;236;14,00;70,00;0,00;0,00;0,00;4d20h;-449,00 +WINJ26;18/02/2026 14:26:00;18/02/2026 14:46:00;20min;1;1;V;190.305,00;190.255,00;192.335,00;No;-10,00;-50,00;237;-10,00;-50,00;0,00;0,00;0,00;1h26min;-459,00 +WINJ26;18/02/2026 15:24:00;18/02/2026 15:52:00;28min;1;1;C;189.575,00;189.240,00;192.335,00;Sim;-67,00;-335,00;238;-67,00;-335,00;0,00;0,00;0,00;58min;-526,00 +WINJ26;18/02/2026 16:42:00;18/02/2026 16:46:00;4min;1;1;C;188.940,00;189.070,00;192.335,00;Sim;26,00;130,00;239;26,00;130,00;0,00;0,00;0,00;1h18min;-500,00 +WINJ26;18/02/2026 17:06:00;18/02/2026 17:14:00;8min;1;1;V;189.055,00;189.270,00;192.335,00;No;43,00;215,00;240;43,00;215,00;0,00;0,00;0,00;24min;-457,00 +WINJ26;19/02/2026 09:02:00;19/02/2026 09:30:00;28min;1;1;V;190.380,00;190.090,00;192.335,00;Sim;-58,00;-290,00;241;-58,00;-290,00;0,00;0,00;0,00;15h56min;-515,00 +WINJ26;19/02/2026 09:46:00;19/02/2026 09:50:00;4min;1;1;V;190.140,00;190.480,00;192.335,00;Sim;68,00;340,00;242;68,00;340,00;0,00;0,00;0,00;44min;-447,00 +WINJ26;19/02/2026 11:44:00;19/02/2026 11:48:00;4min;1;1;C;189.815,00;190.060,00;192.335,00;No;49,00;245,00;243;49,00;245,00;0,00;0,00;0,00;1h58min;-398,00 +WINJ26;19/02/2026 12:22:00;19/02/2026 12:50:00;28min;1;1;V;192.050,00;191.225,00;192.335,00;Sim;-165,00;-825,00;244;-165,00;-825,00;0,00;0,00;0,00;38min;-563,00 +WINJ26;19/02/2026 13:04:00;19/02/2026 13:32:00;28min;1;1;V;192.285,00;192.190,00;192.335,00;Sim;-19,00;-95,00;245;-19,00;-95,00;0,00;0,00;0,00;42min;-582,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.335,00;No;36,00;180,00;246;36,00;180,00;0,00;0,00;0,00;50min;-546,00 +WINJ26;19/02/2026 14:24:00;19/02/2026 14:38:00;14min;1;1;V;192.280,00;192.320,00;192.335,00;Sim;8,00;40,00;247;8,00;40,00;0,00;0,00;0,00;30min;-538,00 +WINJ26;19/02/2026 15:14:00;19/02/2026 15:16:00;2min;1;1;C;192.155,00;192.185,00;192.335,00;No;6,00;30,00;248;6,00;30,00;0,00;0,00;0,00;50min;-532,00 +WINJ26;19/02/2026 15:40:00;19/02/2026 15:50:00;10min;1;1;C;191.965,00;192.050,00;192.335,00;Sim;17,00;85,00;249;17,00;85,00;0,00;0,00;0,00;26min;-515,00 +WINJ26;19/02/2026 16:52:00;19/02/2026 17:02:00;10min;1;1;C;191.670,00;191.780,00;192.335,00;Sim;22,00;110,00;250;22,00;110,00;0,00;0,00;0,00;1h12min;-493,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:28:00;8min;1;1;C;191.630,00;191.690,00;192.335,00;Sim;12,00;60,00;251;12,00;60,00;0,00;0,00;0,00;28min;-481,00 +WINJ26;19/02/2026 17:42:00;19/02/2026 18:10:00;28min;1;1;V;192.300,00;191.920,00;192.335,00;No;-76,00;-380,00;252;-76,00;-380,00;0,00;0,00;0,00;22min;-557,00 +WINJ26;20/02/2026 09:04:00;20/02/2026 09:32:00;28min;1;1;C;192.245,00;190.890,00;192.335,00;No;-271,00;-1.355,00;253;-271,00;-1.355,00;0,00;0,00;0,00;15h22min;-828,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:06:00;28min;1;1;V;191.810,00;190.995,00;192.335,00;No;-163,00;-815,00;254;-163,00;-815,00;0,00;0,00;0,00;2h34min;-991,00 +WINJ26;20/02/2026 12:24:00;20/02/2026 12:34:00;10min;1;1;V;191.900,00;192.125,00;192.335,00;Sim;45,00;225,00;255;45,00;225,00;0,00;0,00;0,00;46min;-946,00 +WINJ26;20/02/2026 14:06:00;20/02/2026 14:10:00;4min;1;1;V;192.140,00;192.275,00;192.335,00;Sim;27,00;135,00;256;27,00;135,00;0,00;0,00;0,00;1h42min;-919,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.335,00;Sim;35,00;175,00;257;35,00;175,00;0,00;0,00;0,00;28min;-884,00 +WINJ26;20/02/2026 15:22:00;20/02/2026 15:50:00;28min;1;1;V;193.045,00;192.525,00;192.335,00;Sim;-104,00;-520,00;258;-104,00;-520,00;0,00;0,00;0,00;48min;-988,00 +WINJ26;23/02/2026 09:48:00;23/02/2026 10:04:00;16min;1;1;C;192.770,00;193.000,00;192.335,00;No;46,00;230,00;259;46,00;230,00;0,00;0,00;0,00;2d18h;-942,00 +WINJ26;23/02/2026 12:04:00;23/02/2026 12:06:00;2min;1;1;V;193.950,00;194.250,00;192.335,00;Sim;60,00;300,00;260;60,00;300,00;0,00;0,00;0,00;2h16min;-882,00 +WINJ26;23/02/2026 13:18:00;23/02/2026 13:36:00;18min;1;1;C;192.355,00;192.430,00;192.335,00;Sim;15,00;75,00;261;15,00;75,00;0,00;0,00;0,00;1h14min;-867,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.335,00;No;6,00;30,00;262;6,00;30,00;0,00;0,00;0,00;2h16min;-861,00 +WINJ26;23/02/2026 17:44:00;23/02/2026 17:48:00;4min;1;1;V;192.425,00;192.455,00;192.335,00;No;6,00;30,00;263;6,00;30,00;0,00;0,00;0,00;2h10min;-855,00 +WINJ26;24/02/2026 10:00:00;24/02/2026 10:02:00;2min;1;1;V;193.310,00;193.505,00;192.335,00;Sim;39,00;195,00;264;39,00;195,00;0,00;0,00;0,00;16h16min;-816,00 +WINJ26;24/02/2026 10:38:00;24/02/2026 10:44:00;6min;1;1;V;193.390,00;193.925,00;192.335,00;Sim;107,00;535,00;265;107,00;535,00;0,00;0,00;0,00;38min;-709,00 +WINJ26;24/02/2026 12:34:00;24/02/2026 13:02:00;28min;1;1;V;194.740,00;194.520,00;192.335,00;Sim;-44,00;-220,00;266;-44,00;-220,00;0,00;0,00;0,00;1h56min;-753,00 +WINJ26;24/02/2026 13:14:00;24/02/2026 13:18:00;4min;1;1;V;194.750,00;194.900,00;192.335,00;Sim;30,00;150,00;267;30,00;150,00;0,00;0,00;0,00;40min;-723,00 +WINJ26;24/02/2026 13:34:00;24/02/2026 13:46:00;12min;1;1;V;194.895,00;195.030,00;192.335,00;Sim;27,00;135,00;268;27,00;135,00;0,00;0,00;0,00;20min;-696,00 +WINJ26;24/02/2026 14:24:00;24/02/2026 14:48:00;24min;1;1;V;195.195,00;195.210,00;192.335,00;Sim;3,00;15,00;269;3,00;15,00;0,00;0,00;0,00;50min;-693,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:30:00;28min;1;1;C;195.005,00;194.960,00;192.335,00;No;-9,00;-45,00;270;-9,00;-45,00;0,00;0,00;0,00;38min;-702,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.335,00;Sim;9,00;45,00;271;9,00;45,00;0,00;0,00;0,00;1h26min;-693,00 +WINJ26;24/02/2026 16:48:00;24/02/2026 16:56:00;8min;1;1;V;194.830,00;195.030,00;192.335,00;No;40,00;200,00;272;40,00;200,00;0,00;0,00;0,00;20min;-653,00 +WINJ26;25/02/2026 12:38:00;25/02/2026 12:50:00;12min;1;1;C;194.240,00;194.385,00;192.335,00;Sim;29,00;145,00;273;29,00;145,00;0,00;0,00;0,00;19h50min;-624,00 +WINJ26;25/02/2026 14:04:00;25/02/2026 14:16:00;12min;1;1;V;194.565,00;194.665,00;192.335,00;No;20,00;100,00;274;20,00;100,00;0,00;0,00;0,00;1h26min;-604,00 +WINJ26;25/02/2026 15:04:00;25/02/2026 15:10:00;6min;1;1;V;194.875,00;194.960,00;192.335,00;Sim;17,00;85,00;275;17,00;85,00;0,00;0,00;0,00;1h;-587,00 +WINJ26;25/02/2026 16:16:00;25/02/2026 16:20:00;4min;1;1;C;194.015,00;194.200,00;192.335,00;Sim;37,00;185,00;276;37,00;185,00;0,00;0,00;0,00;1h12min;-550,00 +WINJ26;25/02/2026 17:38:00;25/02/2026 18:06:00;28min;1;1;V;194.570,00;194.325,00;192.335,00;No;-49,00;-245,00;277;-49,00;-245,00;0,00;0,00;0,00;1h22min;-599,00 +WINJ26;26/02/2026 09:40:00;26/02/2026 09:52:00;12min;1;1;C;194.040,00;194.185,00;192.335,00;No;29,00;145,00;278;29,00;145,00;0,00;0,00;0,00;16h2min;-570,00 +WINJ26;26/02/2026 10:16:00;26/02/2026 10:20:00;4min;1;1;V;194.240,00;194.640,00;192.335,00;Sim;80,00;400,00;279;80,00;400,00;0,00;0,00;0,00;36min;-490,00 +WINJ26;26/02/2026 11:14:00;26/02/2026 11:22:00;8min;1;1;V;194.165,00;194.270,00;192.335,00;No;21,00;105,00;280;21,00;105,00;0,00;0,00;0,00;58min;-469,00 +WINJ26;26/02/2026 12:00:00;26/02/2026 12:28:00;28min;1;1;C;193.350,00;192.400,00;192.335,00;Sim;-190,00;-950,00;281;-190,00;-950,00;0,00;0,00;0,00;46min;-659,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 12:40:00;10min;1;1;C;192.665,00;192.980,00;192.335,00;Sim;63,00;315,00;282;63,00;315,00;0,00;0,00;0,00;30min;-596,00 +WINJ26;26/02/2026 13:12:00;26/02/2026 13:40:00;28min;1;1;V;193.685,00;193.320,00;192.335,00;No;-73,00;-365,00;283;-73,00;-365,00;0,00;0,00;0,00;42min;-669,00 +WINJ26;26/02/2026 14:02:00;26/02/2026 14:12:00;10min;1;1;C;193.405,00;193.560,00;192.335,00;No;31,00;155,00;284;31,00;155,00;0,00;0,00;0,00;50min;-638,00 +WINJ26;26/02/2026 14:34:00;26/02/2026 14:36:00;2min;1;1;C;193.475,00;193.425,00;192.335,00;No;-10,00;-50,00;285;-10,00;-50,00;0,00;0,00;0,00;32min;-648,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:16:00;28min;1;1;V;194.075,00;193.760,00;192.335,00;Sim;-63,00;-315,00;286;-63,00;-315,00;0,00;0,00;0,00;1h14min;-711,00 +WINJ26;26/02/2026 16:58:00;26/02/2026 17:24:00;26min;1;1;V;194.165,00;194.155,00;192.335,00;Sim;-2,00;-10,00;287;-2,00;-10,00;0,00;0,00;0,00;1h10min;-713,00 +WINJ26;26/02/2026 17:38:00;26/02/2026 17:52:00;14min;1;1;V;194.345,00;194.365,00;192.335,00;Sim;4,00;20,00;288;4,00;20,00;0,00;0,00;0,00;40min;-709,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 09:20:00;20min;1;1;C;194.155,00;193.550,00;192.335,00;No;-121,00;-605,00;289;-121,00;-605,00;0,00;0,00;0,00;15h22min;-830,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.335,00;No;-5,00;-25,00;290;-5,00;-25,00;0,00;0,00;0,00;2h18min;-835,00 +WINJ26;27/02/2026 11:38:00;27/02/2026 11:44:00;6min;1;1;V;193.215,00;193.610,00;192.335,00;Sim;79,00;395,00;291;79,00;395,00;0,00;0,00;0,00;20min;-756,00 +WINJ26;27/02/2026 13:34:00;27/02/2026 14:02:00;28min;1;1;C;193.100,00;193.035,00;192.335,00;Sim;-13,00;-65,00;292;-13,00;-65,00;0,00;0,00;0,00;1h56min;-769,00 +WINJ26;27/02/2026 14:44:00;27/02/2026 14:54:00;10min;1;1;C;192.460,00;192.515,00;192.335,00;Sim;11,00;55,00;293;11,00;55,00;0,00;0,00;0,00;1h10min;-758,00 +WINJ26;27/02/2026 15:14:00;27/02/2026 15:22:00;8min;1;1;V;192.620,00;192.685,00;192.335,00;No;13,00;65,00;294;13,00;65,00;0,00;0,00;0,00;30min;-745,00 +WINJ26;02/03/2026 09:12:00;02/03/2026 09:40:00;28min;1;1;C;190.865,00;190.280,00;192.335,00;Sim;-117,00;-585,00;295;-117,00;-585,00;0,00;0,00;0,00;2d17h;-862,00 +WINJ26;02/03/2026 10:02:00;02/03/2026 10:08:00;6min;1;1;C;190.215,00;190.380,00;192.335,00;Sim;33,00;165,00;296;33,00;165,00;0,00;0,00;0,00;50min;-829,00 +WINJ26;02/03/2026 10:28:00;02/03/2026 10:46:00;18min;1;1;V;190.545,00;190.795,00;192.335,00;No;50,00;250,00;297;50,00;250,00;0,00;0,00;0,00;26min;-779,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.335,00;Sim;41,00;205,00;298;41,00;205,00;0,00;0,00;0,00;38min;-738,00 +WINJ26;02/03/2026 12:40:00;02/03/2026 13:06:00;26min;1;1;C;191.370,00;191.245,00;192.335,00;No;-25,00;-125,00;299;-25,00;-125,00;0,00;0,00;0,00;1h34min;-763,00 +WINJ26;02/03/2026 13:52:00;02/03/2026 13:58:00;6min;1;1;V;191.425,00;191.540,00;192.335,00;Sim;23,00;115,00;300;23,00;115,00;0,00;0,00;0,00;1h12min;-740,00 +WINJ26;02/03/2026 14:36:00;02/03/2026 14:38:00;2min;1;1;V;191.635,00;191.725,00;192.335,00;Sim;18,00;90,00;301;18,00;90,00;0,00;0,00;0,00;44min;-722,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:22:00;18min;1;1;V;191.850,00;191.895,00;192.335,00;Sim;9,00;45,00;302;9,00;45,00;0,00;0,00;0,00;28min;-713,00 +WINJ26;02/03/2026 17:32:00;02/03/2026 17:54:00;22min;1;1;C;192.240,00;192.315,00;192.335,00;No;15,00;75,00;303;15,00;75,00;0,00;0,00;0,00;2h28min;-698,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv new file mode 100644 index 0000000..520f578 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv @@ -0,0 +1,171 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 17:25:00;27/08/2025 09:10:00;15h45min;1;1;C;148.400,00;148.200,00;192.330,00;No;-40,00;-200,00;1;-40,00;-200,00;0,00;0,00;0,00; - ;-40,00 +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.330,00;No;-50,00;-250,00;2;-50,00;-250,00;0,00;0,00;0,00;13d15h;-90,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 09:50:00;20min;1;1;V;152.750,00;152.500,00;192.330,00;Sim;-50,00;-250,00;3;-50,00;-250,00;0,00;0,00;0,00;3d;-140,00 +WINJ26;16/09/2025 15:50:00;18/09/2025 09:50:00;1d18h;1;1;V;155.900,00;154.450,00;192.330,00;Sim;-290,00;-1.450,00;4;-290,00;-1.450,00;0,00;0,00;0,00;4d6h;-430,00 +WINJ26;19/09/2025 10:35:00;22/09/2025 12:25:00;3d1h;1;1;V;154.750,00;156.150,00;192.330,00;Sim;280,00;1.400,00;5;280,00;1.400,00;0,00;0,00;0,00;2d18h;-150,00 +WINJ26;25/09/2025 09:10:00;25/09/2025 09:55:00;45min;1;1;V;156.685,00;157.270,00;192.330,00;Sim;117,00;585,00;6;117,00;585,00;0,00;0,00;0,00;5d22h;-33,00 +WINJ26;25/09/2025 13:25:00;26/09/2025 17:45:00;1d4h;1;1;C;156.680,00;155.405,00;192.330,00;No;-255,00;-1.275,00;7;-255,00;-1.275,00;0,00;0,00;0,00;4h15min;-288,00 +WINJ26;29/09/2025 13:35:00;29/09/2025 14:55:00;1h20min;1;1;V;156.360,00;156.400,00;192.330,00;No;8,00;40,00;8;8,00;40,00;0,00;0,00;0,00;4d;-280,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:20:00;5min;1;1;V;156.550,00;156.550,00;192.330,00;Sim;0;0;9;0;0;0,00;0,00;0,00;21h40min;-280,00 +WINJ26;03/10/2025 09:45:00;03/10/2025 11:15:00;1h30min;1;1;C;153.935,00;153.800,00;192.330,00;Sim;-27,00;-135,00;10;-27,00;-135,00;0,00;0,00;0,00;2d22h;-307,00 +WINJ26;13/10/2025 10:20:00;13/10/2025 10:25:00;5min;1;1;C;151.100,00;151.100,00;192.330,00;Sim;0;0;11;0;0;0,00;0,00;0,00;10d;-307,00 +WINJ26;14/10/2025 18:20:00;15/10/2025 11:15:00;16h55min;1;1;C;150.950,00;151.200,00;192.330,00;Sim;50,00;250,00;12;50,00;250,00;0,00;0,00;0,00;1d8h;-257,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.330,00;No;-50,00;-250,00;13;-50,00;-250,00;0,00;0,00;0,00;6d15h;-307,00 +WINJ26;23/10/2025 10:05:00;23/10/2025 12:45:00;2h40min;1;1;V;153.950,00;154.795,00;192.330,00;No;169,00;845,00;14;169,00;845,00;0,00;0,00;0,00;2d;-138,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:25:00;1h10min;1;1;V;155.470,00;155.660,00;192.330,00;Sim;38,00;190,00;15;38,00;190,00;0,00;0,00;0,00;4d2h;-100,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.330,00;No;17,00;85,00;16;17,00;85,00;0,00;0,00;0,00;2d22h;-83,00 +WINJ26;30/10/2025 16:05:00;31/10/2025 13:30:00;21h25min;1;1;V;157.700,00;157.295,00;192.330,00;Sim;-81,00;-405,00;17;-81,00;-405,00;0,00;0,00;0,00;5h10min;-164,00 +WINJ26;03/11/2025 12:40:00;04/11/2025 10:00:00;21h20min;1;1;V;158.430,00;158.680,00;192.330,00;Sim;50,00;250,00;18;50,00;250,00;0,00;0,00;0,00;3d20h;-114,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 11:50:00;1h35min;1;1;C;158.540,00;159.000,00;192.330,00;No;92,00;460,00;19;92,00;460,00;0,00;0,00;0,00;21h35min;-22,00 +WINJ26;04/11/2025 14:15:00;04/11/2025 15:25:00;1h10min;1;1;V;158.695,00;158.725,00;192.330,00;Sim;6,00;30,00;20;6,00;30,00;0,00;0,00;0,00;4h;-16,00 +WINJ26;05/11/2025 09:05:00;05/11/2025 10:20:00;1h15min;1;1;V;158.820,00;159.125,00;192.330,00;Sim;61,00;305,00;21;61,00;305,00;0,00;0,00;0,00;18h50min;45,00 +WINJ26;05/11/2025 11:25:00;05/11/2025 13:55:00;2h30min;1;1;V;161.310,00;159.750,00;192.330,00;Sim;-312,00;-1.560,00;22;-312,00;-1.560,00;0,00;0,00;0,00;2h20min;-267,00 +WINJ26;06/11/2025 09:20:00;06/11/2025 15:25:00;6h5min;1;1;V;161.800,00;161.900,00;192.330,00;Sim;20,00;100,00;23;20,00;100,00;0,00;0,00;0,00;21h55min;-247,00 +WINJ26;10/11/2025 10:30:00;11/11/2025 09:20:00;22h50min;1;1;V;164.810,00;162.950,00;192.330,00;Sim;-372,00;-1.860,00;24;-372,00;-1.860,00;0,00;0,00;0,00;4d1h;-619,00 +WINJ26;12/11/2025 11:30:00;12/11/2025 17:25:00;5h55min;1;1;C;166.000,00;165.800,00;192.330,00;No;-40,00;-200,00;25;-40,00;-200,00;0,00;0,00;0,00;2d1h;-659,00 +WINJ26;14/11/2025 18:10:00;17/11/2025 10:35:00;2d16h;1;1;V;165.475,00;165.915,00;192.330,00;Sim;88,00;440,00;26;88,00;440,00;0,00;0,00;0,00;2d6h;-571,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.330,00;Sim;69,00;345,00;27;69,00;345,00;0,00;0,00;0,00;2d17h;-502,00 +WINJ26;17/11/2025 18:10:00;18/11/2025 10:30:00;16h20min;1;1;C;165.150,00;164.740,00;192.330,00;Sim;-82,00;-410,00;28;-82,00;-410,00;0,00;0,00;0,00;6h25min;-584,00 +WINJ26;21/11/2025 13:25:00;21/11/2025 14:00:00;35min;1;1;C;161.990,00;162.570,00;192.330,00;Sim;116,00;580,00;29;116,00;580,00;0,00;0,00;0,00;3d19h;-468,00 +WINJ26;25/11/2025 10:50:00;25/11/2025 10:55:00;5min;1;1;V;162.935,00;163.000,00;192.330,00;No;13,00;65,00;30;13,00;65,00;0,00;0,00;0,00;3d21h;-455,00 +WINJ26;26/11/2025 13:00:00;26/11/2025 16:35:00;3h35min;1;1;V;166.200,00;165.405,00;192.330,00;Sim;-159,00;-795,00;31;-159,00;-795,00;0,00;0,00;0,00;1d2h;-614,00 +WINJ26;01/12/2025 12:25:00;01/12/2025 13:00:00;35min;1;1;V;166.100,00;166.280,00;192.330,00;Sim;36,00;180,00;32;36,00;180,00;0,00;0,00;0,00;4d23h;-578,00 +WINJ26;02/12/2025 10:10:00;02/12/2025 11:55:00;1h45min;1;1;V;167.500,00;166.580,00;192.330,00;Sim;-184,00;-920,00;33;-184,00;-920,00;0,00;0,00;0,00;21h45min;-762,00 +WINJ26;02/12/2025 17:15:00;03/12/2025 10:45:00;17h30min;1;1;V;169.170,00;168.250,00;192.330,00;Sim;-184,00;-920,00;34;-184,00;-920,00;0,00;0,00;0,00;7h5min;-946,00 +WINJ26;04/12/2025 13:55:00;05/12/2025 11:35:00;21h40min;1;1;V;171.570,00;171.300,00;192.330,00;Sim;-54,00;-270,00;35;-54,00;-270,00;0,00;0,00;0,00;1d20h;-1.000,00 +WINJ26;09/12/2025 13:45:00;10/12/2025 09:00:00;19h15min;1;1;V;165.750,00;164.500,00;192.330,00;No;-250,00;-1.250,00;36;-250,00;-1.250,00;0,00;0,00;0,00;4d23h;-1.250,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.330,00;Sim;171,00;855,00;37;171,00;855,00;0,00;0,00;0,00;19h50min;-1.079,00 +WINJ26;10/12/2025 17:30:00;11/12/2025 09:05:00;15h35min;1;1;V;165.195,00;166.200,00;192.330,00;Sim;201,00;1.005,00;38;201,00;1.005,00;0,00;0,00;0,00;7h55min;-878,00 +WINJ26;12/12/2025 12:05:00;12/12/2025 12:20:00;15min;1;1;V;166.900,00;167.300,00;192.330,00;Sim;80,00;400,00;39;80,00;400,00;0,00;0,00;0,00;1d18h;-798,00 +WINJ26;15/12/2025 10:40:00;15/12/2025 13:45:00;3h5min;1;1;V;169.565,00;168.650,00;192.330,00;Sim;-183,00;-915,00;40;-183,00;-915,00;0,00;0,00;0,00;2d22h;-981,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:35:00;1h20min;1;1;C;164.810,00;163.000,00;192.330,00;No;-362,00;-1.810,00;41;-362,00;-1.810,00;0,00;0,00;0,00;1d22h;-1.343,00 +WINJ26;18/12/2025 14:35:00;18/12/2025 14:45:00;10min;1;1;C;164.475,00;164.745,00;192.330,00;Sim;54,00;270,00;42;54,00;270,00;0,00;0,00;0,00;1d5h;-1.289,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.330,00;Sim;7,00;35,00;43;7,00;35,00;0,00;0,00;0,00;2h30min;-1.282,00 +WINJ26;19/12/2025 12:10:00;19/12/2025 12:45:00;35min;1;1;V;165.475,00;165.645,00;192.330,00;No;34,00;170,00;44;34,00;170,00;0,00;0,00;0,00;19h5min;-1.248,00 +WINJ26;19/12/2025 15:30:00;19/12/2025 16:40:00;1h10min;1;1;C;165.130,00;165.020,00;192.330,00;No;-22,00;-110,00;45;-22,00;-110,00;0,00;0,00;0,00;3h20min;-1.270,00 +WINJ26;22/12/2025 09:10:00;22/12/2025 09:40:00;30min;1;1;V;164.800,00;165.200,00;192.330,00;No;80,00;400,00;46;80,00;400,00;0,00;0,00;0,00;2d17h;-1.190,00 +WINJ26;22/12/2025 11:00:00;22/12/2025 12:10:00;1h10min;1;1;C;164.250,00;163.980,00;192.330,00;Sim;-54,00;-270,00;47;-54,00;-270,00;0,00;0,00;0,00;1h50min;-1.244,00 +WINJ26;22/12/2025 13:25:00;22/12/2025 14:35:00;1h10min;1;1;V;164.320,00;164.215,00;192.330,00;No;-21,00;-105,00;48;-21,00;-105,00;0,00;0,00;0,00;2h25min;-1.265,00 +WINJ26;22/12/2025 15:35:00;22/12/2025 15:40:00;5min;1;1;C;164.200,00;164.315,00;192.330,00;Sim;23,00;115,00;49;23,00;115,00;0,00;0,00;0,00;2h10min;-1.242,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.330,00;No;2,00;10,00;50;2,00;10,00;0,00;0,00;0,00;17h30min;-1.240,00 +WINJ26;23/12/2025 12:45:00;23/12/2025 13:55:00;1h10min;1;1;V;166.490,00;166.380,00;192.330,00;Sim;-22,00;-110,00;51;-22,00;-110,00;0,00;0,00;0,00;3h40min;-1.262,00 +WINJ26;26/12/2025 10:30:00;26/12/2025 11:30:00;1h;1;1;C;165.750,00;165.920,00;192.330,00;No;34,00;170,00;52;34,00;170,00;0,00;0,00;0,00;2d21h;-1.228,00 +WINJ26;26/12/2025 15:15:00;26/12/2025 15:20:00;5min;1;1;V;166.480,00;166.500,00;192.330,00;Sim;4,00;20,00;53;4,00;20,00;0,00;0,00;0,00;4h45min;-1.224,00 +WINJ26;29/12/2025 09:25:00;29/12/2025 09:30:00;5min;1;1;V;167.005,00;167.140,00;192.330,00;Sim;27,00;135,00;54;27,00;135,00;0,00;0,00;0,00;2d18h;-1.197,00 +WINJ26;29/12/2025 10:25:00;29/12/2025 11:35:00;1h10min;1;1;C;166.635,00;166.450,00;192.330,00;No;-37,00;-185,00;55;-37,00;-185,00;0,00;0,00;0,00;1h;-1.234,00 +WINJ26;29/12/2025 12:30:00;29/12/2025 13:40:00;1h10min;1;1;C;166.205,00;166.110,00;192.330,00;Sim;-19,00;-95,00;56;-19,00;-95,00;0,00;0,00;0,00;2h5min;-1.253,00 +WINJ26;30/12/2025 13:30:00;30/12/2025 14:40:00;1h10min;1;1;V;167.760,00;167.670,00;192.330,00;Sim;-18,00;-90,00;57;-18,00;-90,00;0,00;0,00;0,00;1d1h;-1.271,00 +WINJ26;30/12/2025 16:00:00;30/12/2025 16:10:00;10min;1;1;C;167.615,00;167.780,00;192.330,00;No;33,00;165,00;58;33,00;165,00;0,00;0,00;0,00;2h30min;-1.238,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.330,00;No;-65,00;-325,00;59;-65,00;-325,00;0,00;0,00;0,00;2d17h;-1.303,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:20:00;10min;1;1;V;167.635,00;167.810,00;192.330,00;Sim;35,00;175,00;60;35,00;175,00;0,00;0,00;0,00;1h5min;-1.268,00 +WINJ26;02/01/2026 11:15:00;02/01/2026 12:25:00;1h10min;1;1;C;167.135,00;166.325,00;192.330,00;Sim;-162,00;-810,00;61;-162,00;-810,00;0,00;0,00;0,00;1h5min;-1.430,00 +WINJ26;02/01/2026 14:00:00;02/01/2026 15:10:00;1h10min;1;1;C;166.220,00;165.980,00;192.330,00;Sim;-48,00;-240,00;62;-48,00;-240,00;0,00;0,00;0,00;2h45min;-1.478,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.330,00;No;39,00;195,00;63;39,00;195,00;0,00;0,00;0,00;2d19h;-1.439,00 +WINJ26;05/01/2026 13:10:00;05/01/2026 14:20:00;1h10min;1;1;V;167.440,00;167.030,00;192.330,00;Sim;-82,00;-410,00;64;-82,00;-410,00;0,00;0,00;0,00;3h25min;-1.521,00 +WINJ26;05/01/2026 16:10:00;05/01/2026 16:55:00;45min;1;1;V;167.635,00;167.750,00;192.330,00;Sim;23,00;115,00;65;23,00;115,00;0,00;0,00;0,00;3h;-1.498,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.330,00;No;21,00;105,00;66;21,00;105,00;0,00;0,00;0,00;1h;-1.477,00 +WINJ26;06/01/2026 11:00:00;06/01/2026 11:30:00;30min;1;1;V;169.305,00;169.355,00;192.330,00;Sim;10,00;50,00;67;10,00;50,00;0,00;0,00;0,00;17h50min;-1.467,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:50:00;1h10min;1;1;C;168.780,00;167.855,00;192.330,00;No;-185,00;-925,00;68;-185,00;-925,00;0,00;0,00;0,00;23h40min;-1.652,00 +WINJ26;07/01/2026 12:35:00;07/01/2026 12:55:00;20min;1;1;C;167.595,00;167.755,00;192.330,00;Sim;32,00;160,00;69;32,00;160,00;0,00;0,00;0,00;1h55min;-1.620,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:55:00;15min;1;1;V;167.565,00;167.855,00;192.330,00;No;58,00;290,00;70;58,00;290,00;0,00;0,00;0,00;22h5min;-1.562,00 +WINJ26;08/01/2026 16:50:00;08/01/2026 17:05:00;15min;1;1;V;167.940,00;168.050,00;192.330,00;Sim;22,00;110,00;71;22,00;110,00;0,00;0,00;0,00;6h10min;-1.540,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.330,00;No;10,00;50,00;72;10,00;50,00;0,00;0,00;0,00;16h40min;-1.530,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:50:00;40min;1;1;V;169.215,00;169.350,00;192.330,00;Sim;27,00;135,00;73;27,00;135,00;0,00;0,00;0,00;2h40min;-1.503,00 +WINJ26;09/01/2026 15:35:00;09/01/2026 16:45:00;1h10min;1;1;C;169.275,00;169.030,00;192.330,00;No;-49,00;-245,00;74;-49,00;-245,00;0,00;0,00;0,00;3h25min;-1.552,00 +WINJ26;12/01/2026 12:30:00;12/01/2026 13:50:00;1h20min;1;1;V;168.620,00;168.635,00;192.330,00;No;3,00;15,00;75;3,00;15,00;0,00;0,00;0,00;2d20h;-1.549,00 +WINJ26;13/01/2026 09:10:00;13/01/2026 09:15:00;5min;1;1;V;168.290,00;168.430,00;192.330,00;No;28,00;140,00;76;28,00;140,00;0,00;0,00;0,00;20h40min;-1.521,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.330,00;Sim;20,00;100,00;77;20,00;100,00;0,00;0,00;0,00;1h25min;-1.501,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 11:35:00;20min;1;1;C;167.705,00;168.225,00;192.330,00;Sim;104,00;520,00;78;104,00;520,00;0,00;0,00;0,00;1d;-1.397,00 +WINJ26;14/01/2026 17:05:00;14/01/2026 17:10:00;5min;1;1;V;169.685,00;169.760,00;192.330,00;Sim;15,00;75,00;79;15,00;75,00;0,00;0,00;0,00;5h50min;-1.382,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 10:15:00;1h10min;1;1;V;170.590,00;170.365,00;192.330,00;Sim;-45,00;-225,00;80;-45,00;-225,00;0,00;0,00;0,00;16h;-1.427,00 +WINJ26;15/01/2026 14:25:00;15/01/2026 15:35:00;1h10min;1;1;V;171.180,00;170.715,00;192.330,00;Sim;-93,00;-465,00;81;-93,00;-465,00;0,00;0,00;0,00;5h20min;-1.520,00 +WINJ26;15/01/2026 15:50:00;15/01/2026 16:15:00;25min;1;1;V;171.050,00;171.170,00;192.330,00;Sim;24,00;120,00;82;24,00;120,00;0,00;0,00;0,00;1h25min;-1.496,00 +WINJ26;16/01/2026 11:50:00;16/01/2026 13:00:00;1h10min;1;1;C;169.850,00;169.280,00;192.330,00;No;-114,00;-570,00;83;-114,00;-570,00;0,00;0,00;0,00;20h;-1.610,00 +WINJ26;16/01/2026 18:05:00;16/01/2026 18:10:00;5min;1;1;C;169.630,00;169.690,00;192.330,00;Sim;12,00;60,00;84;12,00;60,00;0,00;0,00;0,00;6h15min;-1.598,00 +WINJ26;19/01/2026 09:05:00;19/01/2026 09:10:00;5min;1;1;V;169.120,00;168.975,00;192.330,00;No;-29,00;-145,00;85;-29,00;-145,00;0,00;0,00;0,00;2d15h;-1.627,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:40:00;25min;1;1;C;169.330,00;169.575,00;192.330,00;Sim;49,00;245,00;86;49,00;245,00;0,00;0,00;0,00;10min;-1.578,00 +WINJ26;19/01/2026 10:20:00;19/01/2026 10:25:00;5min;1;1;V;169.355,00;169.640,00;192.330,00;Sim;57,00;285,00;87;57,00;285,00;0,00;0,00;0,00;1h5min;-1.521,00 +WINJ26;19/01/2026 14:45:00;19/01/2026 15:55:00;1h10min;1;1;C;169.665,00;169.650,00;192.330,00;No;-3,00;-15,00;88;-3,00;-15,00;0,00;0,00;0,00;4h25min;-1.524,00 +WINJ26;19/01/2026 17:05:00;19/01/2026 17:20:00;15min;1;1;C;169.650,00;169.660,00;192.330,00;Sim;2,00;10,00;89;2,00;10,00;0,00;0,00;0,00;2h20min;-1.522,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:30:00;45min;1;1;V;171.090,00;171.135,00;192.330,00;Sim;9,00;45,00;90;9,00;45,00;0,00;0,00;0,00;20h40min;-1.513,00 +WINJ26;20/01/2026 18:10:00;21/01/2026 09:00:00;14h50min;1;1;V;170.910,00;171.060,00;192.330,00;No;30,00;150,00;91;30,00;150,00;0,00;0,00;0,00;4h25min;-1.483,00 +WINJ26;21/01/2026 12:25:00;21/01/2026 13:35:00;1h10min;1;1;V;175.100,00;174.455,00;192.330,00;Sim;-129,00;-645,00;92;-129,00;-645,00;0,00;0,00;0,00;18h15min;-1.612,00 +WINJ26;21/01/2026 16:40:00;21/01/2026 17:50:00;1h10min;1;1;V;177.000,00;175.920,00;192.330,00;Sim;-216,00;-1.080,00;93;-216,00;-1.080,00;0,00;0,00;0,00;4h15min;-1.828,00 +WINJ26;23/01/2026 09:20:00;23/01/2026 10:05:00;45min;1;1;V;181.300,00;181.440,00;192.330,00;Sim;28,00;140,00;94;28,00;140,00;0,00;0,00;0,00;1d16h;-1.800,00 +WINJ26;23/01/2026 15:15:00;23/01/2026 15:25:00;10min;1;1;C;181.845,00;182.200,00;192.330,00;No;71,00;355,00;95;71,00;355,00;0,00;0,00;0,00;5h55min;-1.729,00 +WINJ26;23/01/2026 17:00:00;23/01/2026 18:05:00;1h5min;1;1;V;183.950,00;183.165,00;192.330,00;Sim;-157,00;-785,00;96;-157,00;-785,00;0,00;0,00;0,00;1h45min;-1.886,00 +WINJ26;26/01/2026 09:25:00;26/01/2026 09:35:00;10min;1;1;V;184.840,00;185.395,00;192.330,00;Sim;111,00;555,00;97;111,00;555,00;0,00;0,00;0,00;2d16h;-1.775,00 +WINJ26;26/01/2026 14:50:00;26/01/2026 15:00:00;10min;1;1;V;183.500,00;183.890,00;192.330,00;No;78,00;390,00;98;78,00;390,00;0,00;0,00;0,00;5h25min;-1.697,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:50:00;25min;1;1;C;183.140,00;183.330,00;192.330,00;No;38,00;190,00;99;38,00;190,00;0,00;0,00;0,00;1h35min;-1.659,00 +WINJ26;26/01/2026 17:50:00;26/01/2026 18:10:00;20min;1;1;V;183.605,00;183.860,00;192.330,00;No;51,00;255,00;100;51,00;255,00;0,00;0,00;0,00;1h25min;-1.608,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 11:30:00;1h10min;1;1;V;187.470,00;185.930,00;192.330,00;Sim;-308,00;-1.540,00;101;-308,00;-1.540,00;0,00;0,00;0,00;16h30min;-1.916,00 +WINJ26;27/01/2026 12:30:00;27/01/2026 13:40:00;1h10min;1;1;V;188.285,00;187.690,00;192.330,00;Sim;-119,00;-595,00;102;-119,00;-595,00;0,00;0,00;0,00;2h10min;-2.035,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.330,00;No;-22,00;-110,00;103;-22,00;-110,00;0,00;0,00;0,00;2h50min;-2.057,00 +WINJ26;28/01/2026 11:10:00;28/01/2026 12:10:00;1h;1;1;V;189.125,00;188.900,00;192.330,00;Sim;-45,00;-225,00;104;-45,00;-225,00;0,00;0,00;0,00;19h50min;-2.102,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.330,00;No;47,00;235,00;105;47,00;235,00;0,00;0,00;0,00;5h;-2.055,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.330,00;Sim;28,00;140,00;106;28,00;140,00;0,00;0,00;0,00;17h20min;-2.027,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 14:15:00;1h;1;1;C;187.605,00;187.955,00;192.330,00;Sim;70,00;350,00;107;70,00;350,00;0,00;0,00;0,00;3h45min;-1.957,00 +WINJ26;29/01/2026 14:45:00;29/01/2026 14:55:00;10min;1;1;V;187.850,00;188.190,00;192.330,00;No;68,00;340,00;108;68,00;340,00;0,00;0,00;0,00;1h30min;-1.889,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 10:20:00;1h;1;1;C;187.580,00;187.790,00;192.330,00;Sim;42,00;210,00;109;42,00;210,00;0,00;0,00;0,00;18h35min;-1.847,00 +WINJ26;30/01/2026 14:35:00;30/01/2026 15:45:00;1h10min;1;1;C;186.600,00;185.235,00;192.330,00;Sim;-273,00;-1.365,00;110;-273,00;-1.365,00;0,00;0,00;0,00;5h15min;-2.120,00 +WINJ26;30/01/2026 15:50:00;30/01/2026 15:55:00;5min;1;1;C;185.535,00;185.930,00;192.330,00;Sim;79,00;395,00;111;79,00;395,00;0,00;0,00;0,00;1h15min;-2.041,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:50:00;30min;1;1;C;185.670,00;186.060,00;192.330,00;No;78,00;390,00;112;78,00;390,00;0,00;0,00;0,00;1h30min;-1.963,00 +WINJ26;02/02/2026 11:10:00;02/02/2026 11:20:00;10min;1;1;V;186.650,00;187.205,00;192.330,00;No;111,00;555,00;113;111,00;555,00;0,00;0,00;0,00;2d17h;-1.852,00 +WINJ26;02/02/2026 15:25:00;02/02/2026 16:35:00;1h10min;1;1;C;186.795,00;186.385,00;192.330,00;No;-82,00;-410,00;114;-82,00;-410,00;0,00;0,00;0,00;4h15min;-1.934,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 12:15:00;15min;1;1;V;190.975,00;191.565,00;192.330,00;Sim;118,00;590,00;115;118,00;590,00;0,00;0,00;0,00;20h35min;-1.816,00 +WINJ26;03/02/2026 15:40:00;03/02/2026 16:15:00;35min;1;1;C;189.700,00;189.965,00;192.330,00;No;53,00;265,00;116;53,00;265,00;0,00;0,00;0,00;3h40min;-1.763,00 +WINJ26;04/02/2026 12:10:00;04/02/2026 13:20:00;1h10min;1;1;C;187.700,00;186.480,00;192.330,00;Sim;-244,00;-1.220,00;117;-244,00;-1.220,00;0,00;0,00;0,00;20h30min;-2.007,00 +WINJ26;04/02/2026 14:15:00;04/02/2026 15:25:00;1h10min;1;1;C;186.330,00;185.475,00;192.330,00;Sim;-171,00;-855,00;118;-171,00;-855,00;0,00;0,00;0,00;2h5min;-2.178,00 +WINJ26;04/02/2026 17:45:00;05/02/2026 09:30:00;15h45min;1;1;V;186.415,00;185.765,00;192.330,00;No;-130,00;-650,00;119;-130,00;-650,00;0,00;0,00;0,00;3h30min;-2.308,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.330,00;Sim;36,00;180,00;120;36,00;180,00;0,00;0,00;0,00;15h55min;-2.272,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 11:40:00;1h10min;1;1;V;187.890,00;186.885,00;192.330,00;Sim;-201,00;-1.005,00;121;-201,00;-1.005,00;0,00;0,00;0,00;50min;-2.473,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 18:10:00;1h10min;1;1;C;187.375,00;186.610,00;192.330,00;No;-153,00;-765,00;122;-153,00;-765,00;0,00;0,00;0,00;6h30min;-2.626,00 +WINJ26;06/02/2026 12:10:00;06/02/2026 12:20:00;10min;1;1;C;186.085,00;186.390,00;192.330,00;Sim;61,00;305,00;123;61,00;305,00;0,00;0,00;0,00;19h10min;-2.565,00 +WINJ26;06/02/2026 14:15:00;06/02/2026 14:40:00;25min;1;1;V;186.835,00;186.920,00;192.330,00;Sim;17,00;85,00;124;17,00;85,00;0,00;0,00;0,00;2h5min;-2.548,00 +WINJ26;06/02/2026 15:50:00;06/02/2026 16:10:00;20min;1;1;C;186.450,00;186.590,00;192.330,00;No;28,00;140,00;125;28,00;140,00;0,00;0,00;0,00;1h35min;-2.520,00 +WINJ26;06/02/2026 17:40:00;06/02/2026 18:20:00;40min;1;1;V;186.945,00;187.165,00;192.330,00;Sim;44,00;220,00;126;44,00;220,00;0,00;0,00;0,00;1h50min;-2.476,00 +WINJ26;09/02/2026 12:10:00;09/02/2026 12:45:00;35min;1;1;V;187.990,00;188.225,00;192.330,00;Sim;47,00;235,00;127;47,00;235,00;0,00;0,00;0,00;2d18h;-2.429,00 +WINJ26;09/02/2026 17:20:00;10/02/2026 09:00:00;15h40min;1;1;V;189.885,00;190.445,00;192.330,00;Sim;112,00;560,00;128;112,00;560,00;0,00;0,00;0,00;5h10min;-2.317,00 +WINJ26;10/02/2026 09:25:00;10/02/2026 10:25:00;1h;1;1;C;190.145,00;190.040,00;192.330,00;No;-21,00;-105,00;129;-21,00;-105,00;0,00;0,00;0,00;16h5min;-2.338,00 +WINJ26;10/02/2026 12:40:00;10/02/2026 13:25:00;45min;1;1;V;190.585,00;190.760,00;192.330,00;Sim;35,00;175,00;130;35,00;175,00;0,00;0,00;0,00;3h15min;-2.303,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.330,00;Sim;41,00;205,00;131;41,00;205,00;0,00;0,00;0,00;3h30min;-2.262,00 +WINJ26;11/02/2026 10:35:00;11/02/2026 11:45:00;1h10min;1;1;V;193.340,00;192.200,00;192.330,00;Sim;-228,00;-1.140,00;132;-228,00;-1.140,00;0,00;0,00;0,00;18h25min;-2.490,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:05:00;35min;1;1;V;194.340,00;194.525,00;192.330,00;Sim;37,00;185,00;133;37,00;185,00;0,00;0,00;0,00;3h55min;-2.453,00 +WINJ26;11/02/2026 15:20:00;11/02/2026 16:10:00;50min;1;1;C;194.080,00;194.050,00;192.330,00;No;-6,00;-30,00;134;-6,00;-30,00;0,00;0,00;0,00;50min;-2.459,00 +WINJ26;11/02/2026 16:35:00;11/02/2026 16:55:00;20min;1;1;V;194.135,00;194.380,00;192.330,00;No;49,00;245,00;135;49,00;245,00;0,00;0,00;0,00;1h15min;-2.410,00 +WINJ26;12/02/2026 13:40:00;12/02/2026 14:40:00;1h;1;1;C;192.820,00;192.760,00;192.330,00;Sim;-12,00;-60,00;136;-12,00;-60,00;0,00;0,00;0,00;21h5min;-2.422,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.330,00;Sim;54,00;270,00;137;54,00;270,00;0,00;0,00;0,00;2h5min;-2.368,00 +WINJ26;13/02/2026 10:25:00;13/02/2026 11:35:00;1h10min;1;1;C;189.085,00;188.415,00;192.330,00;Sim;-134,00;-670,00;138;-134,00;-670,00;0,00;0,00;0,00;18h40min;-2.502,00 +WINJ26;13/02/2026 11:45:00;13/02/2026 12:30:00;45min;1;1;C;188.385,00;188.875,00;192.330,00;Sim;98,00;490,00;139;98,00;490,00;0,00;0,00;0,00;1h20min;-2.404,00 +WINJ26;13/02/2026 14:00:00;13/02/2026 15:10:00;1h10min;1;1;V;189.960,00;189.405,00;192.330,00;No;-111,00;-555,00;140;-111,00;-555,00;0,00;0,00;0,00;2h15min;-2.515,00 +WINJ26;18/02/2026 16:45:00;18/02/2026 17:05:00;20min;1;1;C;189.035,00;189.220,00;192.330,00;No;37,00;185,00;141;37,00;185,00;0,00;0,00;0,00;5d2h;-2.478,00 +WINJ26;19/02/2026 09:40:00;19/02/2026 10:05:00;25min;1;1;V;189.915,00;190.075,00;192.330,00;Sim;32,00;160,00;142;32,00;160,00;0,00;0,00;0,00;16h55min;-2.446,00 +WINJ26;19/02/2026 16:55:00;19/02/2026 17:35:00;40min;1;1;C;191.745,00;192.035,00;192.330,00;No;58,00;290,00;143;58,00;290,00;0,00;0,00;0,00;7h15min;-2.388,00 +WINJ26;20/02/2026 10:40:00;20/02/2026 11:20:00;40min;1;1;C;190.755,00;190.745,00;192.330,00;Sim;-2,00;-10,00;144;-2,00;-10,00;0,00;0,00;0,00;17h45min;-2.390,00 +WINJ26;20/02/2026 12:25:00;20/02/2026 13:25:00;1h;1;1;V;191.905,00;192.020,00;192.330,00;Sim;23,00;115,00;145;23,00;115,00;0,00;0,00;0,00;1h45min;-2.367,00 +WINJ26;20/02/2026 14:35:00;20/02/2026 14:50:00;15min;1;1;C;191.665,00;192.135,00;192.330,00;No;94,00;470,00;146;94,00;470,00;0,00;0,00;0,00;2h10min;-2.273,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.330,00;No;48,00;240,00;147;48,00;240,00;0,00;0,00;0,00;2d19h;-2.225,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.330,00;Sim;112,00;560,00;148;112,00;560,00;0,00;0,00;0,00;2h;-2.113,00 +WINJ26;23/02/2026 16:25:00;23/02/2026 17:10:00;45min;1;1;C;192.470,00;192.485,00;192.330,00;Sim;3,00;15,00;149;3,00;15,00;0,00;0,00;0,00;4h20min;-2.110,00 +WINJ26;24/02/2026 10:40:00;24/02/2026 10:50:00;10min;1;1;V;193.260,00;193.690,00;192.330,00;No;86,00;430,00;150;86,00;430,00;0,00;0,00;0,00;18h15min;-2.024,00 +WINJ26;24/02/2026 13:20:00;24/02/2026 14:30:00;1h10min;1;1;V;195.235,00;194.785,00;192.330,00;Sim;-90,00;-450,00;151;-90,00;-450,00;0,00;0,00;0,00;2h40min;-2.114,00 +WINJ26;24/02/2026 14:45:00;24/02/2026 14:50:00;5min;1;1;V;194.945,00;195.240,00;192.330,00;Sim;59,00;295,00;152;59,00;295,00;0,00;0,00;0,00;1h25min;-2.055,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.330,00;Sim;67,00;335,00;153;67,00;335,00;0,00;0,00;0,00;18h45min;-1.988,00 +WINJ26;25/02/2026 11:05:00;25/02/2026 11:25:00;20min;1;1;C;195.225,00;195.520,00;192.330,00;No;59,00;295,00;154;59,00;295,00;0,00;0,00;0,00;1h35min;-1.929,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:30:00;1h10min;1;1;C;194.200,00;194.090,00;192.330,00;Sim;-22,00;-110,00;155;-22,00;-110,00;0,00;0,00;0,00;5h15min;-1.951,00 +WINJ26;25/02/2026 17:55:00;26/02/2026 09:00:00;15h5min;1;1;V;194.005,00;194.345,00;192.330,00;No;68,00;340,00;156;68,00;340,00;0,00;0,00;0,00;1h35min;-1.883,00 +WINJ26;26/02/2026 10:40:00;26/02/2026 11:05:00;25min;1;1;C;194.175,00;194.330,00;192.330,00;Sim;31,00;155,00;157;31,00;155,00;0,00;0,00;0,00;16h45min;-1.852,00 +WINJ26;26/02/2026 12:40:00;26/02/2026 13:00:00;20min;1;1;C;192.980,00;193.370,00;192.330,00;Sim;78,00;390,00;158;78,00;390,00;0,00;0,00;0,00;2h;-1.774,00 +WINJ26;26/02/2026 13:40:00;26/02/2026 13:50:00;10min;1;1;V;193.460,00;193.685,00;192.330,00;No;45,00;225,00;159;45,00;225,00;0,00;0,00;0,00;1h;-1.729,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.330,00;Sim;11,00;55,00;160;11,00;55,00;0,00;0,00;0,00;4h15min;-1.718,00 +WINJ26;27/02/2026 11:40:00;27/02/2026 12:00:00;20min;1;1;V;193.065,00;193.645,00;192.330,00;No;116,00;580,00;161;116,00;580,00;0,00;0,00;0,00;17h45min;-1.602,00 +WINJ26;27/02/2026 17:20:00;27/02/2026 17:25:00;5min;1;1;C;192.075,00;192.145,00;192.330,00;Sim;14,00;70,00;162;14,00;70,00;0,00;0,00;0,00;5h40min;-1.588,00 +WINJ26;02/03/2026 09:15:00;02/03/2026 10:25:00;1h10min;1;1;C;191.035,00;190.965,00;192.330,00;Sim;-14,00;-70,00;163;-14,00;-70,00;0,00;0,00;0,00;2d15h;-1.602,00 +WINJ26;02/03/2026 15:20:00;02/03/2026 16:30:00;1h10min;1;1;V;193.100,00;191.985,00;192.330,00;No;-223,00;-1.115,00;164;-223,00;-1.115,00;0,00;0,00;0,00;6h5min;-1.825,00 +WINJ26;02/03/2026 17:20:00; - ; - ;1;0;C;192.225,00;192.345,00;192.345,00;No;24,00;120,00;165;24,00;120,00;0,00;0,00;0,00;2h;-1.801,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv new file mode 100644 index 0000000..a7ef813 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv @@ -0,0 +1,82 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;12/09/2025 09:45:00;3d;1;1;V;152.750,00;152.300,00;192.330,00;No;-90,00;-450,00;1;-90,00;-450,00;0,00;0,00;0,00; - ;-90,00 +WINJ26;16/09/2025 15:45:00;18/09/2025 11:45:00;1d20h;1;1;V;155.790,00;154.450,00;192.330,00;Sim;-268,00;-1.340,00;2;-268,00;-1.340,00;0,00;0,00;0,00;7d6h;-358,00 +WINJ26;19/09/2025 14:45:00;22/09/2025 12:15:00;2d21h;1;1;V;154.750,00;156.400,00;192.330,00;Sim;330,00;1.650,00;3;330,00;1.650,00;0,00;0,00;0,00;2d23h;-28,00 +WINJ26;25/09/2025 09:15:00;25/09/2025 10:15:00;1h;1;1;V;156.250,00;157.700,00;192.330,00;Sim;290,00;1.450,00;4;290,00;1.450,00;0,00;0,00;0,00;5d18h;262,00 +WINJ26;29/09/2025 13:30:00;30/09/2025 11:00:00;21h30min;1;1;V;156.725,00;156.400,00;192.330,00;No;-65,00;-325,00;5;-65,00;-325,00;0,00;0,00;0,00;4d4h;197,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:30:00;15min;1;1;V;156.250,00;156.550,00;192.330,00;Sim;60,00;300,00;6;60,00;300,00;0,00;0,00;0,00;21h45min;257,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 12:45:00;2h30min;1;1;C;151.100,00;151.200,00;192.330,00;No;20,00;100,00;7;20,00;100,00;0,00;0,00;0,00;12d23h;277,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 13:00:00;1h45min;1;1;C;151.200,00;151.200,00;192.330,00;No;0;0;8;0;0;0,00;0,00;0,00;2d1h;277,00 +WINJ26;23/10/2025 12:15:00;23/10/2025 12:45:00;30min;1;1;V;153.950,00;153.700,00;192.330,00;No;-50,00;-250,00;9;-50,00;-250,00;0,00;0,00;0,00;8d1h;227,00 +WINJ26;27/10/2025 12:15:00;28/10/2025 09:15:00;21h;1;1;V;155.400,00;155.660,00;192.330,00;Sim;52,00;260,00;10;52,00;260,00;0,00;0,00;0,00;4d;279,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.330,00;No;17,00;85,00;11;17,00;85,00;0,00;0,00;0,00;2d22h;296,00 +WINJ26;31/10/2025 11:30:00;31/10/2025 13:30:00;2h;1;1;V;157.700,00;157.700,00;192.330,00;Sim;0;0;12;0;0;0,00;0,00;0,00;1d;296,00 +WINJ26;03/11/2025 12:30:00;04/11/2025 10:00:00;21h30min;1;1;V;158.430,00;158.680,00;192.330,00;Sim;50,00;250,00;13;50,00;250,00;0,00;0,00;0,00;3d1h;346,00 +WINJ26;11/11/2025 18:15:00;12/11/2025 11:00:00;16h45min;1;1;V;165.880,00;166.390,00;192.330,00;Sim;102,00;510,00;14;102,00;510,00;0,00;0,00;0,00;8d5h;448,00 +WINJ26;14/11/2025 18:00:00;17/11/2025 10:30:00;2d16h;1;1;V;165.475,00;165.915,00;192.330,00;No;88,00;440,00;15;88,00;440,00;0,00;0,00;0,00;2d23h;536,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.330,00;No;69,00;345,00;16;69,00;345,00;0,00;0,00;0,00;2d17h;605,00 +WINJ26;17/11/2025 18:00:00;18/11/2025 17:15:00;23h15min;1;1;C;165.150,00;164.900,00;192.330,00;Sim;-50,00;-250,00;17;-50,00;-250,00;0,00;0,00;0,00;6h15min;555,00 +WINJ26;19/11/2025 17:15:00;21/11/2025 13:45:00;1d20h;1;1;C;163.590,00;162.410,00;192.330,00;Sim;-236,00;-1.180,00;18;-236,00;-1.180,00;0,00;0,00;0,00;1d23h;319,00 +WINJ26;26/11/2025 10:15:00;26/11/2025 15:45:00;5h30min;1;1;V;166.100,00;164.250,00;192.330,00;No;-370,00;-1.850,00;19;-370,00;-1.850,00;0,00;0,00;0,00;6d17h;-51,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.330,00;Sim;26,00;130,00;20;26,00;130,00;0,00;0,00;0,00;1d1h;-25,00 +WINJ26;28/11/2025 10:30:00;28/11/2025 16:15:00;5h45min;1;1;V;167.100,00;166.100,00;192.330,00;Sim;-200,00;-1.000,00;21;-200,00;-1.000,00;0,00;0,00;0,00;23h15min;-225,00 +WINJ26;02/12/2025 10:15:00;02/12/2025 16:45:00;6h30min;1;1;V;168.050,00;166.650,00;192.330,00;Sim;-280,00;-1.400,00;22;-280,00;-1.400,00;0,00;0,00;0,00;3d23h;-505,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 12:15:00;19h15min;1;1;V;171.435,00;169.165,00;192.330,00;Sim;-454,00;-2.270,00;23;-454,00;-2.270,00;0,00;0,00;0,00;1d6h;-959,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.330,00;Sim;147,00;735,00;24;147,00;735,00;0,00;0,00;0,00;1d18h;-812,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 15:30:00;6h15min;1;1;C;166.300,00;165.630,00;192.330,00;No;-134,00;-670,00;25;-134,00;-670,00;0,00;0,00;0,00;2d21h;-946,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 12:30:00;30min;1;1;C;163.700,00;164.900,00;192.330,00;Sim;240,00;1.200,00;26;240,00;1.200,00;0,00;0,00;0,00;1d2h;-706,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.330,00;No;36,00;180,00;27;36,00;180,00;0,00;0,00;0,00;22h15min;-670,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 14:00:00;1h45min;1;1;V;166.800,00;166.900,00;192.330,00;Sim;20,00;100,00;28;20,00;100,00;0,00;0,00;0,00;2d2h;-650,00 +WINJ26;15/12/2025 10:30:00;15/12/2025 15:15:00;4h45min;1;1;V;169.100,00;168.650,00;192.330,00;Sim;-90,00;-450,00;29;-90,00;-450,00;0,00;0,00;0,00;2d22h;-740,00 +WINJ26;18/12/2025 14:15:00;18/12/2025 14:30:00;15min;1;1;V;164.180,00;164.200,00;192.330,00;No;4,00;20,00;30;4,00;20,00;0,00;0,00;0,00;3d3h;-736,00 +WINJ26;19/12/2025 12:45:00;19/12/2025 14:30:00;1h45min;1;1;V;165.175,00;165.475,00;192.330,00;Sim;60,00;300,00;31;60,00;300,00;0,00;0,00;0,00;22h30min;-676,00 +WINJ26;19/12/2025 18:15:00;22/12/2025 09:00:00;2d14h;1;1;C;164.910,00;165.430,00;192.330,00;No;104,00;520,00;32;104,00;520,00;0,00;0,00;0,00;5h30min;-572,00 +WINJ26;22/12/2025 12:30:00;22/12/2025 13:30:00;1h;1;1;C;164.025,00;164.315,00;192.330,00;Sim;58,00;290,00;33;58,00;290,00;0,00;0,00;0,00;2d18h;-514,00 +WINJ26;23/12/2025 15:15:00;26/12/2025 09:15:00;2d18h;1;1;V;165.980,00;166.230,00;192.330,00;Sim;50,00;250,00;34;50,00;250,00;0,00;0,00;0,00;1d2h;-464,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.330,00;No;8,00;40,00;35;8,00;40,00;0,00;0,00;0,00;2d19h;-456,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.330,00;Sim;60,00;300,00;36;60,00;300,00;0,00;0,00;0,00;2d23h;-396,00 +WINJ26;29/12/2025 14:30:00;29/12/2025 14:45:00;15min;1;1;C;166.205,00;166.380,00;192.330,00;No;35,00;175,00;37;35,00;175,00;0,00;0,00;0,00;5h;-361,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 12:00:00;1h;1;1;V;167.060,00;167.200,00;192.330,00;Sim;28,00;140,00;38;28,00;140,00;0,00;0,00;0,00;20h30min;-333,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.330,00;No;-21,00;-105,00;39;-21,00;-105,00;0,00;0,00;0,00;2d22h;-354,00 +WINJ26;02/01/2026 10:15:00;02/01/2026 10:30:00;15min;1;1;V;167.500,00;167.855,00;192.330,00;Sim;71,00;355,00;40;71,00;355,00;0,00;0,00;0,00;1h;-283,00 +WINJ26;02/01/2026 11:15:00;02/01/2026 14:45:00;3h30min;1;1;C;167.135,00;166.105,00;192.330,00;Sim;-206,00;-1.030,00;41;-206,00;-1.030,00;0,00;0,00;0,00;1h;-489,00 +WINJ26;02/01/2026 16:15:00;05/01/2026 09:15:00;2d17h;1;1;C;166.245,00;166.275,00;192.330,00;Sim;6,00;30,00;42;6,00;30,00;0,00;0,00;0,00;5h;-483,00 +WINJ26;05/01/2026 13:15:00;05/01/2026 16:45:00;3h30min;1;1;V;167.765,00;167.100,00;192.330,00;No;-133,00;-665,00;43;-133,00;-665,00;0,00;0,00;0,00;2d21h;-616,00 +WINJ26;06/01/2026 12:30:00;06/01/2026 16:00:00;3h30min;1;1;V;169.540,00;169.425,00;192.330,00;Sim;-23,00;-115,00;44;-23,00;-115,00;0,00;0,00;0,00;23h15min;-639,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 17:00:00;3h30min;1;1;C;167.830,00;167.690,00;192.330,00;No;-28,00;-140,00;45;-28,00;-140,00;0,00;0,00;0,00;1d1h;-667,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:45:00;15min;1;1;C;167.460,00;167.630,00;192.330,00;Sim;34,00;170,00;46;34,00;170,00;0,00;0,00;0,00;20h;-633,00 +WINJ26;08/01/2026 12:00:00;08/01/2026 15:15:00;3h15min;1;1;V;167.775,00;167.765,00;192.330,00;No;-2,00;-10,00;47;-2,00;-10,00;0,00;0,00;0,00;2h30min;-635,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 12:00:00;2h45min;1;1;C;168.975,00;168.425,00;192.330,00;No;-110,00;-550,00;48;-110,00;-550,00;0,00;0,00;0,00;3d21h;-745,00 +WINJ26;13/01/2026 10:45:00;13/01/2026 14:15:00;3h30min;1;1;C;167.910,00;167.355,00;192.330,00;Sim;-111,00;-555,00;49;-111,00;-555,00;0,00;0,00;0,00;1d1h;-856,00 +WINJ26;14/01/2026 12:45:00;14/01/2026 16:15:00;3h30min;1;1;V;169.645,00;168.695,00;192.330,00;Sim;-190,00;-950,00;50;-190,00;-950,00;0,00;0,00;0,00;1d2h;-1.046,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.330,00;Sim;59,00;295,00;51;59,00;295,00;0,00;0,00;0,00;22h;-987,00 +WINJ26;16/01/2026 09:30:00;16/01/2026 10:15:00;45min;1;1;V;170.800,00;171.005,00;192.330,00;Sim;41,00;205,00;52;41,00;205,00;0,00;0,00;0,00;22h45min;-946,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.330,00;No;60,00;300,00;53;60,00;300,00;0,00;0,00;0,00;4d;-886,00 +WINJ26;23/01/2026 09:30:00;23/01/2026 11:45:00;2h15min;1;1;V;180.975,00;181.450,00;192.330,00;Sim;95,00;475,00;54;95,00;475,00;0,00;0,00;0,00;2d23h;-791,00 +WINJ26;23/01/2026 12:45:00;23/01/2026 16:15:00;3h30min;1;1;V;182.900,00;182.130,00;192.330,00;Sim;-154,00;-770,00;55;-154,00;-770,00;0,00;0,00;0,00;3h15min;-945,00 +WINJ26;23/01/2026 18:00:00;26/01/2026 10:30:00;2d16h;1;1;V;183.870,00;184.095,00;192.330,00;Sim;45,00;225,00;56;45,00;225,00;0,00;0,00;0,00;5h15min;-900,00 +WINJ26;29/01/2026 10:15:00;29/01/2026 12:00:00;1h45min;1;1;V;189.110,00;190.750,00;192.330,00;Sim;328,00;1.640,00;57;328,00;1.640,00;0,00;0,00;0,00;5d16h;-572,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 09:00:00;2d17h;1;1;C;186.180,00;184.655,00;192.330,00;No;-305,00;-1.525,00;58;-305,00;-1.525,00;0,00;0,00;0,00;1d5h;-877,00 +WINJ26;03/02/2026 13:30:00;03/02/2026 14:15:00;45min;1;1;V;190.295,00;190.815,00;192.330,00;Sim;104,00;520,00;59;104,00;520,00;0,00;0,00;0,00;3d21h;-773,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.330,00;Sim;132,00;660,00;60;132,00;660,00;0,00;0,00;0,00;1d3h;-641,00 +WINJ26;06/02/2026 18:15:00;09/02/2026 12:15:00;2d18h;1;1;V;188.255,00;187.040,00;192.330,00;No;-243,00;-1.215,00;61;-243,00;-1.215,00;0,00;0,00;0,00;2d1h;-884,00 +WINJ26;11/02/2026 12:15:00;11/02/2026 15:45:00;3h30min;1;1;V;193.700,00;192.555,00;192.330,00;Sim;-229,00;-1.145,00;62;-229,00;-1.145,00;0,00;0,00;0,00;4d18h;-1.113,00 +WINJ26;12/02/2026 13:45:00;12/02/2026 17:15:00;3h30min;1;1;C;192.755,00;191.975,00;192.330,00;No;-156,00;-780,00;63;-156,00;-780,00;0,00;0,00;0,00;1d1h;-1.269,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.330,00;Sim;106,00;530,00;64;106,00;530,00;0,00;0,00;0,00;22h45min;-1.163,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:15:00;45min;1;1;V;189.820,00;190.075,00;192.330,00;No;51,00;255,00;65;51,00;255,00;0,00;0,00;0,00;5d1h;-1.112,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 13:45:00;3h30min;1;1;V;192.180,00;189.830,00;192.330,00;No;-470,00;-2.350,00;66;-470,00;-2.350,00;0,00;0,00;0,00;20h45min;-1.582,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.330,00;No;42,00;210,00;67;42,00;210,00;0,00;0,00;0,00;1d1h;-1.540,00 +WINJ26;23/02/2026 09:00:00;23/02/2026 09:30:00;30min;1;1;V;192.925,00;193.590,00;192.330,00;Sim;133,00;665,00;68;133,00;665,00;0,00;0,00;0,00;2d21h;-1.407,00 +WINJ26;23/02/2026 12:15:00;23/02/2026 12:45:00;30min;1;1;V;193.005,00;193.480,00;192.330,00;No;95,00;475,00;69;95,00;475,00;0,00;0,00;0,00;3h15min;-1.312,00 +WINJ26;24/02/2026 09:30:00;24/02/2026 13:00:00;3h30min;1;1;V;194.750,00;193.240,00;192.330,00;No;-302,00;-1.510,00;70;-302,00;-1.510,00;0,00;0,00;0,00;21h15min;-1.614,00 +WINJ26;24/02/2026 15:00:00;24/02/2026 17:15:00;2h15min;1;1;V;194.720,00;194.940,00;192.330,00;Sim;44,00;220,00;71;44,00;220,00;0,00;0,00;0,00;5h30min;-1.570,00 +WINJ26;25/02/2026 10:15:00;25/02/2026 10:45:00;30min;1;1;V;195.155,00;195.870,00;192.330,00;Sim;143,00;715,00;72;143,00;715,00;0,00;0,00;0,00;19h15min;-1.427,00 +WINJ26;25/02/2026 17:30:00;25/02/2026 17:45:00;15min;1;1;C;194.090,00;194.555,00;192.330,00;No;93,00;465,00;73;93,00;465,00;0,00;0,00;0,00;7h15min;-1.334,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 12:45:00;3h15min;1;1;C;193.430,00;193.580,00;192.330,00;Sim;30,00;150,00;74;30,00;150,00;0,00;0,00;0,00;1d16h;-1.304,00 +WINJ26;27/02/2026 17:30:00;02/03/2026 11:30:00;2d18h;1;1;C;192.145,00;190.460,00;192.330,00;Sim;-337,00;-1.685,00;75;-337,00;-1.685,00;0,00;0,00;0,00;8h;-1.641,00 +WINJ26;02/03/2026 17:15:00;02/03/2026 17:30:00;15min;1;1;V;192.005,00;191.950,00;192.330,00;No;-11,00;-55,00;76;-11,00;-55,00;0,00;0,00;0,00;2d23h;-1.652,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv new file mode 100644 index 0000000..9f45670 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv @@ -0,0 +1,46 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.335,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;12/09/2025 11:00:00;3d2h;1;1;V;153.400,00;152.300,00;192.335,00;No;-220,00;-1.100,00;2;-220,00;-1.100,00;0,00;0,00;0,00;13d;340,00 +WINJ26;16/09/2025 15:30:00;18/09/2025 16:30:00;2d1h;1;1;V;155.800,00;154.450,00;192.335,00;Sim;-270,00;-1.350,00;3;-270,00;-1.350,00;0,00;0,00;0,00;7d6h;70,00 +WINJ26;19/09/2025 14:30:00;22/09/2025 12:00:00;2d21h;1;1;V;154.750,00;156.400,00;192.335,00;Sim;330,00;1.650,00;4;330,00;1.650,00;0,00;0,00;0,00;2d23h;400,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 10:30:00;30min;1;1;V;156.000,00;156.250,00;192.335,00;No;50,00;250,00;5;50,00;250,00;0,00;0,00;0,00;5d19h;450,00 +WINJ26;29/09/2025 13:30:00;30/09/2025 12:00:00;22h30min;1;1;V;156.000,00;156.400,00;192.335,00;Sim;80,00;400,00;6;80,00;400,00;0,00;0,00;0,00;4d3h;530,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 15:00:00;5h;1;1;C;151.100,00;151.370,00;192.335,00;No;54,00;270,00;7;54,00;270,00;0,00;0,00;0,00;13d20h;584,00 +WINJ26;15/10/2025 11:00:00;15/10/2025 13:00:00;2h;1;1;C;151.200,00;151.200,00;192.335,00;No;0;0;8;0;0;0,00;0,00;0,00;2d1h;584,00 +WINJ26;20/10/2025 17:00:00;21/10/2025 10:00:00;17h;1;1;V;152.700,00;153.250,00;192.335,00;No;110,00;550,00;9;110,00;550,00;0,00;0,00;0,00;5d6h;694,00 +WINJ26;27/10/2025 12:00:00;29/10/2025 10:00:00;1d22h;1;1;V;156.700,00;155.660,00;192.335,00;Sim;-208,00;-1.040,00;10;-208,00;-1.040,00;0,00;0,00;0,00;6d19h;486,00 +WINJ26;03/11/2025 16:00:00;04/11/2025 10:00:00;18h;1;1;V;158.430,00;158.640,00;192.335,00;Sim;42,00;210,00;11;42,00;210,00;0,00;0,00;0,00;7d4h;528,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.335,00;No;32,00;160,00;12;32,00;160,00;0,00;0,00;0,00;14d18h;560,00 +WINJ26;21/11/2025 11:00:00;24/11/2025 10:00:00;2d23h;1;1;C;161.780,00;162.450,00;192.335,00;Sim;134,00;670,00;13;134,00;670,00;0,00;0,00;0,00;3d;694,00 +WINJ26;28/11/2025 10:30:00;01/12/2025 09:30:00;2d23h;1;1;V;166.560,00;166.100,00;192.335,00;Sim;-92,00;-460,00;14;-92,00;-460,00;0,00;0,00;0,00;6d23h;602,00 +WINJ26;01/12/2025 11:30:00;01/12/2025 12:00:00;30min;1;1;C;166.100,00;166.560,00;192.335,00;No;92,00;460,00;15;92,00;460,00;0,00;0,00;0,00;3d1h;694,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.335,00;Sim;544,00;2.720,00;16;544,00;2.720,00;0,00;0,00;0,00;4d1h;1.238,00 +WINJ26;08/12/2025 09:30:00;08/12/2025 15:30:00;6h;1;1;C;166.180,00;165.630,00;192.335,00;No;-110,00;-550,00;17;-110,00;-550,00;0,00;0,00;0,00;2d20h;1.128,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 17:00:00;5h;1;1;C;163.700,00;165.725,00;192.335,00;Sim;405,00;2.025,00;18;405,00;2.025,00;0,00;0,00;0,00;1d2h;1.533,00 +WINJ26;12/12/2025 13:30:00;15/12/2025 13:00:00;2d23h;1;1;V;169.400,00;166.300,00;192.335,00;No;-620,00;-3.100,00;19;-620,00;-3.100,00;0,00;0,00;0,00;3d1h;913,00 +WINJ26;18/12/2025 14:30:00;18/12/2025 17:00:00;2h30min;1;1;V;164.205,00;164.180,00;192.335,00;No;-5,00;-25,00;20;-5,00;-25,00;0,00;0,00;0,00;6d1h;908,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 18:00:00;7h;1;1;V;167.355,00;167.200,00;192.335,00;Sim;-31,00;-155,00;21;-31,00;-155,00;0,00;0,00;0,00;11d20h;877,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.335,00;No;85,00;425,00;22;85,00;425,00;0,00;0,00;0,00;3d5h;962,00 +WINJ26;06/01/2026 16:30:00;07/01/2026 10:00:00;17h30min;1;1;V;168.900,00;169.185,00;192.335,00;Sim;57,00;285,00;23;57,00;285,00;0,00;0,00;0,00;4d;1.019,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 16:30:00;7h;1;1;V;169.035,00;168.050,00;192.335,00;No;-197,00;-985,00;24;-197,00;-985,00;0,00;0,00;0,00;2d17h;822,00 +WINJ26;12/01/2026 12:00:00;12/01/2026 12:30:00;30min;1;1;C;168.425,00;168.635,00;192.335,00;No;42,00;210,00;25;42,00;210,00;0,00;0,00;0,00;3d2h;864,00 +WINJ26;13/01/2026 11:30:00;14/01/2026 09:00:00;21h30min;1;1;C;167.935,00;167.305,00;192.335,00;Sim;-126,00;-630,00;26;-126,00;-630,00;0,00;0,00;0,00;23h30min;738,00 +WINJ26;15/01/2026 17:00:00;16/01/2026 11:00:00;18h;1;1;V;170.060,00;170.755,00;192.335,00;Sim;139,00;695,00;27;139,00;695,00;0,00;0,00;0,00;2d5h;877,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.335,00;No;302,00;1.510,00;28;302,00;1.510,00;0,00;0,00;0,00;4d17h;1.179,00 +WINJ26;23/01/2026 15:00:00;26/01/2026 11:00:00;2d20h;1;1;V;183.135,00;181.920,00;192.335,00;Sim;-243,00;-1.215,00;29;-243,00;-1.215,00;0,00;0,00;0,00;3d5h;936,00 +WINJ26;27/01/2026 15:00:00;28/01/2026 09:00:00;18h;1;1;V;187.620,00;187.170,00;192.335,00;Sim;-90,00;-450,00;30;-90,00;-450,00;0,00;0,00;0,00;4d;846,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.335,00;Sim;104,00;520,00;31;104,00;520,00;0,00;0,00;0,00;21h30min;950,00 +WINJ26;29/01/2026 13:30:00;30/01/2026 11:00:00;21h30min;1;1;C;187.690,00;187.585,00;192.335,00;No;-21,00;-105,00;32;-21,00;-105,00;0,00;0,00;0,00;1d1h;929,00 +WINJ26;03/02/2026 14:30:00;03/02/2026 15:30:00;1h;1;1;V;189.500,00;190.200,00;192.335,00;Sim;140,00;700,00;33;140,00;700,00;0,00;0,00;0,00;5d1h;1.069,00 +WINJ26;09/02/2026 10:30:00;09/02/2026 17:30:00;7h;1;1;V;190.370,00;187.640,00;192.335,00;No;-546,00;-2.730,00;34;-546,00;-2.730,00;0,00;0,00;0,00;5d20h;523,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 15:30:00;6h;1;1;V;189.705,00;189.915,00;192.335,00;Sim;42,00;210,00;35;42,00;210,00;0,00;0,00;0,00;23h;565,00 +WINJ26;11/02/2026 17:00:00;12/02/2026 09:30:00;16h30min;1;1;V;193.200,00;193.990,00;192.335,00;Sim;158,00;790,00;36;158,00;790,00;0,00;0,00;0,00;1d7h;723,00 +WINJ26;13/02/2026 13:30:00;13/02/2026 16:00:00;2h30min;1;1;C;189.405,00;190.145,00;192.335,00;No;148,00;740,00;37;148,00;740,00;0,00;0,00;0,00;1d20h;871,00 +WINJ26;23/02/2026 12:30:00;23/02/2026 13:00:00;30min;1;1;V;192.475,00;193.325,00;192.335,00;No;170,00;850,00;38;170,00;850,00;0,00;0,00;0,00;9d23h;1.041,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 12:00:00;1h30min;1;1;V;194.525,00;195.645,00;192.335,00;Sim;224,00;1.120,00;39;224,00;1.120,00;0,00;0,00;0,00;1d22h;1.265,00 +WINJ26;26/02/2026 13:00:00;26/02/2026 16:30:00;3h30min;1;1;C;193.370,00;194.010,00;192.335,00;No;128,00;640,00;40;128,00;640,00;0,00;0,00;0,00;1d2h;1.393,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv new file mode 100644 index 0000000..5757fdf --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv @@ -0,0 +1,31 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.325,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;12/09/2025 11:00:00;3d2h;1;1;V;153.400,00;152.300,00;192.325,00;No;-220,00;-1.100,00;2;-220,00;-1.100,00;0,00;0,00;0,00;13d;340,00 +WINJ26;16/09/2025 15:00:00;18/09/2025 18:00:00;2d3h;1;1;V;156.150,00;154.450,00;192.325,00;Sim;-340,00;-1.700,00;3;-340,00;-1.700,00;0,00;0,00;0,00;7d6h;0,00 +WINJ26;22/09/2025 11:00:00;22/09/2025 12:00:00;1h;1;1;V;154.750,00;154.500,00;192.325,00;Sim;-50,00;-250,00;4;-50,00;-250,00;0,00;0,00;0,00;5d20h;-50,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 11:00:00;1h;1;1;V;155.750,00;156.250,00;192.325,00;Sim;100,00;500,00;5;100,00;500,00;0,00;0,00;0,00;2d23h;50,00 +WINJ26;29/09/2025 13:00:00;30/09/2025 12:00:00;23h;1;1;V;156.000,00;156.400,00;192.325,00;Sim;80,00;400,00;6;80,00;400,00;0,00;0,00;0,00;4d3h;130,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 18:00:00;1d8h;1;1;C;151.100,00;151.000,00;192.325,00;No;-20,00;-100,00;7;-20,00;-100,00;0,00;0,00;0,00;13d21h;110,00 +WINJ26;23/10/2025 18:00:00;28/10/2025 14:00:00;4d20h;1;1;V;156.200,00;154.600,00;192.325,00;No;-320,00;-1.600,00;8;-320,00;-1.600,00;0,00;0,00;0,00;10d8h;-210,00 +WINJ26;04/11/2025 10:00:00;05/11/2025 16:00:00;1d6h;1;1;V;161.425,00;158.430,00;192.325,00;Sim;-599,00;-2.995,00;9;-599,00;-2.995,00;0,00;0,00;0,00;11d16h;-809,00 +WINJ26;18/11/2025 11:00:00;21/11/2025 12:00:00;3d1h;1;1;C;164.500,00;162.180,00;192.325,00;No;-464,00;-2.320,00;10;-464,00;-2.320,00;0,00;0,00;0,00;14d1h;-1.273,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.325,00;Sim;387,00;1.935,00;11;387,00;1.935,00;0,00;0,00;0,00;17d2h;-886,00 +WINJ26;12/12/2025 13:00:00;16/12/2025 09:00:00;3d20h;1;1;V;168.995,00;166.300,00;192.325,00;No;-539,00;-2.695,00;12;-539,00;-2.695,00;0,00;0,00;0,00;7d;-1.425,00 +WINJ26;18/12/2025 11:00:00;18/12/2025 13:00:00;2h;1;1;C;163.735,00;164.805,00;192.325,00;Sim;214,00;1.070,00;13;214,00;1.070,00;0,00;0,00;0,00;5d22h;-1.211,00 +WINJ26;26/12/2025 10:00:00;26/12/2025 11:00:00;1h;1;1;V;165.420,00;165.700,00;192.325,00;No;56,00;280,00;14;56,00;280,00;0,00;0,00;0,00;7d23h;-1.155,00 +WINJ26;29/12/2025 10:00:00;29/12/2025 13:00:00;3h;1;1;V;166.250,00;166.885,00;192.325,00;Sim;127,00;635,00;15;127,00;635,00;0,00;0,00;0,00;3d;-1.028,00 +WINJ26;30/12/2025 11:00:00;02/01/2026 11:00:00;3d;1;1;V;166.705,00;167.200,00;192.325,00;Sim;99,00;495,00;16;99,00;495,00;0,00;0,00;0,00;1d1h;-929,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.325,00;Sim;114,00;570,00;17;114,00;570,00;0,00;0,00;0,00;7d23h;-815,00 +WINJ26;14/01/2026 10:00:00;14/01/2026 11:00:00;1h;1;1;C;168.200,00;168.220,00;192.325,00;No;4,00;20,00;18;4,00;20,00;0,00;0,00;0,00;7d;-811,00 +WINJ26;26/01/2026 11:00:00;27/01/2026 15:00:00;1d4h;1;1;V;187.170,00;183.135,00;192.325,00;Sim;-807,00;-4.035,00;19;-807,00;-4.035,00;0,00;0,00;0,00;12d1h;-1.618,00 +WINJ26;29/01/2026 12:00:00;29/01/2026 13:00:00;1h;1;1;V;186.785,00;189.110,00;192.325,00;Sim;465,00;2.325,00;20;465,00;2.325,00;0,00;0,00;0,00;3d1h;-1.153,00 +WINJ26;03/02/2026 15:00:00;04/02/2026 10:00:00;19h;1;1;V;188.980,00;189.980,00;192.325,00;Sim;200,00;1.000,00;21;200,00;1.000,00;0,00;0,00;0,00;5d3h;-953,00 +WINJ26;10/02/2026 10:00:00;11/02/2026 14:00:00;1d4h;1;1;V;194.690,00;189.645,00;192.325,00;No;-1.009,00;-5.045,00;22;-1.009,00;-5.045,00;0,00;0,00;0,00;6d19h;-1.962,00 +WINJ26;23/02/2026 10:00:00;23/02/2026 14:00:00;4h;1;1;V;192.345,00;192.560,00;192.325,00;Sim;43,00;215,00;23;43,00;215,00;0,00;0,00;0,00;13d;-1.919,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.325,00;Sim;131,00;655,00;24;131,00;655,00;0,00;0,00;0,00;2d1h;-1.788,00 +WINJ26;27/02/2026 16:00:00;02/03/2026 17:00:00;3d1h;1;1;C;192.845,00;192.895,00;192.325,00;No;10,00;50,00;25;10,00;50,00;0,00;0,00;0,00;2d5h;-1.778,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv new file mode 100644 index 0000000..02a5318 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv @@ -0,0 +1,43 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/12/2025 09:10:00;26/12/2025 09:34:00;24min;1;1;C;165.870,00;165.600,00;192.210,00;No;-54,00;-270,00;1;-54,00;-270,00;0,00;0,00;0,00; - ;-54,00 +WINJ26;06/01/2026 09:58:00;06/01/2026 10:22:00;24min;1;1;V;169.370,00;168.775,00;192.210,00;No;-119,00;-595,00;2;-119,00;-595,00;0,00;0,00;0,00;11d;-173,00 +WINJ26;06/01/2026 11:36:00;06/01/2026 11:38:00;2min;1;1;C;169.290,00;169.445,00;192.210,00;No;31,00;155,00;3;31,00;155,00;0,00;0,00;0,00;1h38min;-142,00 +WINJ26;06/01/2026 16:48:00;06/01/2026 17:12:00;24min;1;1;C;169.130,00;169.195,00;192.210,00;Sim;13,00;65,00;4;13,00;65,00;0,00;0,00;0,00;5h12min;-129,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:40:00;30min;1;1;V;169.550,00;169.550,00;192.210,00;Sim;0;0;5;0;0;0,00;0,00;0,00;2d21h;-129,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.210,00;No;29,00;145,00;6;29,00;145,00;0,00;0,00;0,00;3d21h;-100,00 +WINJ26;13/01/2026 12:32:00;13/01/2026 12:42:00;10min;1;1;C;167.115,00;167.210,00;192.210,00;Sim;19,00;95,00;7;19,00;95,00;0,00;0,00;0,00;1h18min;-81,00 +WINJ26;14/01/2026 09:40:00;14/01/2026 10:04:00;24min;1;1;V;168.100,00;168.050,00;192.210,00;Sim;-10,00;-50,00;8;-10,00;-50,00;0,00;0,00;0,00;21h8min;-91,00 +WINJ26;15/01/2026 12:38:00;15/01/2026 13:00:00;22min;1;1;V;170.500,00;170.495,00;192.210,00;Sim;-1,00;-5,00;9;-1,00;-5,00;0,00;0,00;0,00;1d2h;-92,00 +WINJ26;16/01/2026 11:12:00;16/01/2026 11:36:00;24min;1;1;C;170.050,00;169.615,00;192.210,00;No;-87,00;-435,00;10;-87,00;-435,00;0,00;0,00;0,00;22h34min;-179,00 +WINJ26;20/01/2026 09:36:00;20/01/2026 09:46:00;10min;1;1;C;168.420,00;168.535,00;192.210,00;Sim;23,00;115,00;11;23,00;115,00;0,00;0,00;0,00;3d22h;-156,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.210,00;No;48,00;240,00;12;48,00;240,00;0,00;0,00;0,00;50min;-108,00 +WINJ26;21/01/2026 11:54:00;21/01/2026 12:18:00;24min;1;1;V;174.700,00;174.600,00;192.210,00;Sim;-20,00;-100,00;13;-20,00;-100,00;0,00;0,00;0,00;1d1h;-128,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.210,00;Sim;9,00;45,00;14;9,00;45,00;0,00;0,00;0,00;1h44min;-119,00 +WINJ26;21/01/2026 17:18:00;21/01/2026 17:42:00;24min;1;1;V;176.800,00;176.620,00;192.210,00;Sim;-36,00;-180,00;15;-36,00;-180,00;0,00;0,00;0,00;3h40min;-155,00 +WINJ26;21/01/2026 18:02:00;21/01/2026 18:12:00;10min;1;1;V;176.820,00;177.100,00;192.210,00;Sim;56,00;280,00;16;56,00;280,00;0,00;0,00;0,00;44min;-99,00 +WINJ26;23/01/2026 09:16:00;23/01/2026 09:18:00;2min;1;1;V;181.370,00;181.800,00;192.210,00;Sim;86,00;430,00;17;86,00;430,00;0,00;0,00;0,00;1d15h;-13,00 +WINJ26;23/01/2026 11:26:00;23/01/2026 11:28:00;2min;1;1;C;181.030,00;181.325,00;192.210,00;No;59,00;295,00;18;59,00;295,00;0,00;0,00;0,00;2h10min;46,00 +WINJ26;30/01/2026 13:10:00;30/01/2026 13:36:00;26min;1;1;C;187.560,00;187.500,00;192.210,00;No;-12,00;-60,00;19;-12,00;-60,00;0,00;0,00;0,00;7d1h;34,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:26:00;6min;1;1;C;185.670,00;185.795,00;192.210,00;Sim;25,00;125,00;20;25,00;125,00;0,00;0,00;0,00;4h10min;59,00 +WINJ26;02/02/2026 18:02:00;03/02/2026 09:00:00;14h58min;1;1;V;188.195,00;187.400,00;192.210,00;Sim;-159,00;-795,00;21;-159,00;-795,00;0,00;0,00;0,00;3d;-100,00 +WINJ26;03/02/2026 09:26:00;03/02/2026 09:50:00;24min;1;1;V;189.890,00;189.085,00;192.210,00;Sim;-161,00;-805,00;22;-161,00;-805,00;0,00;0,00;0,00;15h24min;-261,00 +WINJ26;06/02/2026 17:26:00;06/02/2026 17:40:00;14min;1;1;V;187.165,00;187.180,00;192.210,00;No;3,00;15,00;23;3,00;15,00;0,00;0,00;0,00;3d8h;-258,00 +WINJ26;09/02/2026 17:56:00;09/02/2026 18:02:00;6min;1;1;V;190.635,00;190.630,00;192.210,00;Sim;-1,00;-5,00;24;-1,00;-5,00;0,00;0,00;0,00;3d;-259,00 +WINJ26;11/02/2026 11:42:00;11/02/2026 11:50:00;8min;1;1;V;193.275,00;193.415,00;192.210,00;Sim;28,00;140,00;25;28,00;140,00;0,00;0,00;0,00;1d17h;-231,00 +WINJ26;11/02/2026 13:26:00;11/02/2026 13:50:00;24min;1;1;V;194.545,00;193.950,00;192.210,00;Sim;-119,00;-595,00;26;-119,00;-595,00;0,00;0,00;0,00;1h44min;-350,00 +WINJ26;11/02/2026 17:26:00;11/02/2026 17:28:00;2min;1;1;C;193.840,00;194.025,00;192.210,00;No;37,00;185,00;27;37,00;185,00;0,00;0,00;0,00;4h;-313,00 +WINJ26;12/02/2026 13:34:00;12/02/2026 13:38:00;4min;1;1;C;192.545,00;192.905,00;192.210,00;Sim;72,00;360,00;28;72,00;360,00;0,00;0,00;0,00;20h8min;-241,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.210,00;No;14,00;70,00;29;14,00;70,00;0,00;0,00;0,00;5d23h;-227,00 +WINJ26;19/02/2026 12:22:00;19/02/2026 12:46:00;24min;1;1;V;192.010,00;191.225,00;192.210,00;Sim;-157,00;-785,00;30;-157,00;-785,00;0,00;0,00;0,00;23h22min;-384,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.210,00;Sim;35,00;175,00;31;35,00;175,00;0,00;0,00;0,00;1d2h;-349,00 +WINJ26;20/02/2026 17:24:00;20/02/2026 17:30:00;6min;1;1;V;194.065,00;194.225,00;192.210,00;Sim;32,00;160,00;32;32,00;160,00;0,00;0,00;0,00;2h50min;-317,00 +WINJ26;24/02/2026 09:22:00;24/02/2026 09:30:00;8min;1;1;V;193.240,00;193.585,00;192.210,00;No;69,00;345,00;33;69,00;345,00;0,00;0,00;0,00;3d15h;-248,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:26:00;24min;1;1;C;195.005,00;194.925,00;192.210,00;No;-16,00;-80,00;34;-16,00;-80,00;0,00;0,00;0,00;5h40min;-264,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 12:38:00;8min;1;1;C;192.665,00;192.840,00;192.210,00;Sim;35,00;175,00;35;35,00;175,00;0,00;0,00;0,00;1d21h;-229,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:12:00;24min;1;1;V;193.995,00;193.760,00;192.210,00;Sim;-47,00;-235,00;36;-47,00;-235,00;0,00;0,00;0,00;3h18min;-276,00 +WINJ26;27/02/2026 11:38:00;27/02/2026 11:42:00;4min;1;1;V;193.335,00;193.610,00;192.210,00;No;55,00;275,00;37;55,00;275,00;0,00;0,00;0,00;19h50min;-221,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv new file mode 100644 index 0000000..d808789 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv @@ -0,0 +1,29 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.190,00;No;-50,00;-250,00;1;-50,00;-250,00;0,00;0,00;0,00; - ;-50,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:25:00;25min;1;1;C;165.750,00;165.800,00;192.190,00;No;10,00;50,00;2;10,00;50,00;0,00;0,00;0,00;2m2d8h;-40,00 +WINJ26;03/12/2025 11:35:00;04/12/2025 10:15:00;22h40min;1;1;V;170.090,00;169.000,00;192.190,00;Sim;-218,00;-1.090,00;3;-218,00;-1.090,00;0,00;0,00;0,00;20d18h;-258,00 +WINJ26;05/12/2025 09:05:00;05/12/2025 11:35:00;2h30min;1;1;V;171.570,00;172.000,00;192.190,00;Sim;86,00;430,00;4;86,00;430,00;0,00;0,00;0,00;1d21h;-172,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:25:00;1h10min;1;1;C;164.810,00;163.360,00;192.190,00;Sim;-290,00;-1.450,00;5;-290,00;-1.450,00;0,00;0,00;0,00;12d;-462,00 +WINJ26;23/12/2025 12:45:00;23/12/2025 13:30:00;45min;1;1;V;166.345,00;166.380,00;192.190,00;No;7,00;35,00;6;7,00;35,00;0,00;0,00;0,00;6d3h;-455,00 +WINJ26;05/01/2026 13:10:00;05/01/2026 14:10:00;1h;1;1;V;167.455,00;167.030,00;192.190,00;Sim;-85,00;-425,00;7;-85,00;-425,00;0,00;0,00;0,00;13d;-540,00 +WINJ26;07/01/2026 12:35:00;07/01/2026 12:50:00;15min;1;1;C;167.595,00;167.725,00;192.190,00;No;26,00;130,00;8;26,00;130,00;0,00;0,00;0,00;1d23h;-514,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:20:00;5min;1;1;C;167.350,00;167.500,00;192.190,00;Sim;30,00;150,00;9;30,00;150,00;0,00;0,00;0,00;20h40min;-484,00 +WINJ26;12/01/2026 10:15:00;12/01/2026 11:15:00;1h;1;1;C;168.255,00;167.890,00;192.190,00;No;-73,00;-365,00;10;-73,00;-365,00;0,00;0,00;0,00;4d1h;-557,00 +WINJ26;15/01/2026 14:25:00;15/01/2026 15:25:00;1h;1;1;V;171.245,00;170.715,00;192.190,00;Sim;-106,00;-530,00;11;-106,00;-530,00;0,00;0,00;0,00;3d4h;-663,00 +WINJ26;16/01/2026 12:50:00;16/01/2026 13:30:00;40min;1;1;C;169.500,00;169.625,00;192.190,00;No;25,00;125,00;12;25,00;125,00;0,00;0,00;0,00;22h25min;-638,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:25:00;10min;1;1;C;169.330,00;169.495,00;192.190,00;Sim;33,00;165,00;13;33,00;165,00;0,00;0,00;0,00;2d20h;-605,00 +WINJ26;23/01/2026 17:35:00;23/01/2026 17:55:00;20min;1;1;V;183.955,00;184.630,00;192.190,00;Sim;135,00;675,00;14;135,00;675,00;0,00;0,00;0,00;4d8h;-470,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.190,00;Sim;28,00;140,00;15;28,00;140,00;0,00;0,00;0,00;5d15h;-442,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 10:20:00;1h;1;1;C;187.580,00;187.790,00;192.190,00;No;42,00;210,00;16;42,00;210,00;0,00;0,00;0,00;23h50min;-400,00 +WINJ26;04/02/2026 12:10:00;04/02/2026 13:10:00;1h;1;1;C;187.700,00;186.810,00;192.190,00;No;-178,00;-890,00;17;-178,00;-890,00;0,00;0,00;0,00;5d2h;-578,00 +WINJ26;09/02/2026 17:20:00;09/02/2026 18:20:00;1h;1;1;V;190.475,00;190.445,00;192.190,00;No;-6,00;-30,00;18;-6,00;-30,00;0,00;0,00;0,00;5d5h;-584,00 +WINJ26;11/02/2026 10:10:00;11/02/2026 11:10:00;1h;1;1;V;193.180,00;191.995,00;192.190,00;Sim;-237,00;-1.185,00;19;-237,00;-1.185,00;0,00;0,00;0,00;1d16h;-821,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.190,00;Sim;112,00;560,00;20;112,00;560,00;0,00;0,00;0,00;12d1h;-709,00 +WINJ26;24/02/2026 09:25:00;24/02/2026 10:25:00;1h;1;1;V;193.535,00;193.475,00;192.190,00;No;-12,00;-60,00;21;-12,00;-60,00;0,00;0,00;0,00;21h20min;-721,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:20:00;1h;1;1;C;194.200,00;194.095,00;192.190,00;No;-21,00;-105,00;22;-21,00;-105,00;0,00;0,00;0,00;1d6h;-742,00 +WINJ26;02/03/2026 09:15:00;02/03/2026 10:15:00;1h;1;1;C;191.035,00;190.225,00;192.190,00;Sim;-162,00;-810,00;23;-162,00;-810,00;0,00;0,00;0,00;4d16h;-904,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv new file mode 100644 index 0000000..13fea93 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv @@ -0,0 +1,22 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;06/11/2025 13:45:00;07/11/2025 10:00:00;20h15min;1;1;V;161.250,00;162.000,00;192.175,00;No;150,00;750,00;1;150,00;750,00;0,00;0,00;0,00; - ;150,00 +WINJ26;21/11/2025 09:45:00;21/11/2025 14:30:00;4h45min;1;1;C;162.930,00;162.635,00;192.175,00;No;-59,00;-295,00;2;-59,00;-295,00;0,00;0,00;0,00;14d20h;91,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.175,00;Sim;26,00;130,00;3;26,00;130,00;0,00;0,00;0,00;6d1h;117,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.175,00;Sim;147,00;735,00;4;147,00;735,00;0,00;0,00;0,00;8d;264,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.175,00;No;120,00;600,00;5;120,00;600,00;0,00;0,00;0,00;7d;384,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 14:30:00;3h;1;1;C;163.775,00;163.605,00;192.175,00;No;-34,00;-170,00;6;-34,00;-170,00;0,00;0,00;0,00;4d23h;350,00 +WINJ26;19/12/2025 18:15:00;22/12/2025 09:00:00;2d14h;1;1;C;164.910,00;165.430,00;192.175,00;No;104,00;520,00;7;104,00;520,00;0,00;0,00;0,00;2d6h;454,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.175,00;Sim;60,00;300,00;8;60,00;300,00;0,00;0,00;0,00;9d15h;514,00 +WINJ26;15/01/2026 16:15:00;15/01/2026 17:00:00;45min;1;1;V;170.755,00;171.050,00;192.175,00;Sim;59,00;295,00;9;59,00;295,00;0,00;0,00;0,00;17d6h;573,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.175,00;No;60,00;300,00;10;60,00;300,00;0,00;0,00;0,00;4d17h;633,00 +WINJ26;23/01/2026 18:00:00;26/01/2026 10:30:00;2d16h;1;1;V;183.870,00;184.095,00;192.175,00;Sim;45,00;225,00;11;45,00;225,00;0,00;0,00;0,00;3d8h;678,00 +WINJ26;27/01/2026 14:15:00;27/01/2026 15:00:00;45min;1;1;V;187.170,00;187.785,00;192.175,00;Sim;123,00;615,00;12;123,00;615,00;0,00;0,00;0,00;3d20h;801,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.175,00;No;132,00;660,00;13;132,00;660,00;0,00;0,00;0,00;8d2h;933,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.175,00;No;106,00;530,00;14;106,00;530,00;0,00;0,00;0,00;8d19h;1.039,00 +WINJ26;19/02/2026 15:00:00;19/02/2026 16:45:00;1h45min;1;1;V;191.660,00;192.050,00;192.175,00;Sim;78,00;390,00;15;78,00;390,00;0,00;0,00;0,00;6d2h;1.117,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 12:00:00;1h30min;1;1;C;190.695,00;191.375,00;192.175,00;No;136,00;680,00;16;136,00;680,00;0,00;0,00;0,00;10d19h;1.253,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv new file mode 100644 index 0000000..e8459d9 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv @@ -0,0 +1,10 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;17/12/2025 12:00:00;17/12/2025 18:00:00;6h;1;1;C;164.165,00;163.850,00;192.180,00;No;-63,00;-315,00;1;-63,00;-315,00;0,00;0,00;0,00; - ;-63,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 10:30:00;18h30min;1;1;C;167.710,00;167.945,00;192.180,00;No;47,00;235,00;2;47,00;235,00;0,00;0,00;0,00;21d4h;-16,00 +WINJ26;27/01/2026 15:00:00;28/01/2026 09:00:00;18h;1;1;V;187.620,00;187.170,00;192.180,00;No;-90,00;-450,00;3;-90,00;-450,00;0,00;0,00;0,00;19d23h;-106,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 15:30:00;6h;1;1;V;189.705,00;189.915,00;192.180,00;Sim;42,00;210,00;4;42,00;210,00;0,00;0,00;0,00;13d18h;-64,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv new file mode 100644 index 0000000..86c901d --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv @@ -0,0 +1,10 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;23/10/2025 18:00:00;28/10/2025 11:00:00;4d17h;1;1;V;155.985,00;154.600,00;192.185,00;No;-277,00;-1.385,00;1;-277,00;-1.385,00;0,00;0,00;0,00; - ;-277,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.185,00;Sim;387,00;1.935,00;2;387,00;1.935,00;0,00;0,00;0,00;1m11d19h;110,00 +WINJ26;10/02/2026 10:00:00;11/02/2026 12:00:00;1d2h;1;1;V;193.035,00;189.645,00;192.185,00;Sim;-678,00;-3.390,00;3;-678,00;-3.390,00;0,00;0,00;0,00;2m4d21h;-568,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.185,00;No;212,00;1.060,00;4;212,00;1.060,00;0,00;0,00;0,00;3d4h;-356,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv new file mode 100644 index 0000000..fb2fa05 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv @@ -0,0 +1,64 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;20/01/2026 10:25:00;20/01/2026 10:28:00;3min;1;1;V;169.010,00;169.155,00;192.235,00;No;29,00;145,00;1;29,00;145,00;0,00;0,00;0,00; - ;29,00 +WINJ26;20/01/2026 11:54:00;20/01/2026 11:59:00;5min;1;1;V;170.485,00;170.650,00;192.235,00;Sim;33,00;165,00;2;33,00;165,00;0,00;0,00;0,00;1h29min;62,00 +WINJ26;20/01/2026 13:04:00;20/01/2026 13:06:00;2min;1;1;V;171.035,00;171.090,00;192.235,00;Sim;11,00;55,00;3;11,00;55,00;0,00;0,00;0,00;1h10min;73,00 +WINJ26;21/01/2026 09:21:00;21/01/2026 09:33:00;12min;1;1;V;172.535,00;172.385,00;192.235,00;Sim;-30,00;-150,00;4;-30,00;-150,00;0,00;0,00;0,00;20h17min;43,00 +WINJ26;21/01/2026 16:54:00;21/01/2026 17:06:00;12min;1;1;V;176.685,00;176.275,00;192.235,00;Sim;-82,00;-410,00;5;-82,00;-410,00;0,00;0,00;0,00;7h33min;-39,00 +WINJ26;21/01/2026 18:01:00;21/01/2026 18:04:00;3min;1;1;V;177.080,00;177.140,00;192.235,00;Sim;12,00;60,00;6;12,00;60,00;0,00;0,00;0,00;1h7min;-27,00 +WINJ26;22/01/2026 11:34:00;22/01/2026 11:39:00;5min;1;1;V;179.610,00;179.980,00;192.235,00;Sim;74,00;370,00;7;74,00;370,00;0,00;0,00;0,00;17h33min;47,00 +WINJ26;22/01/2026 13:46:00;22/01/2026 13:47:00;1min;1;1;C;181.750,00;181.765,00;192.235,00;No;3,00;15,00;8;3,00;15,00;0,00;0,00;0,00;2h12min;50,00 +WINJ26;26/01/2026 14:40:00;26/01/2026 14:49:00;9min;1;1;V;183.950,00;184.030,00;192.235,00;Sim;16,00;80,00;9;16,00;80,00;0,00;0,00;0,00;4d;66,00 +WINJ26;27/01/2026 15:03:00;27/01/2026 15:16:00;13min;1;1;C;187.225,00;187.075,00;192.235,00;No;-30,00;-150,00;10;-30,00;-150,00;0,00;0,00;0,00;1d;36,00 +WINJ26;27/01/2026 17:19:00;27/01/2026 17:23:00;4min;1;1;V;187.535,00;187.650,00;192.235,00;Sim;23,00;115,00;11;23,00;115,00;0,00;0,00;0,00;2h16min;59,00 +WINJ26;27/01/2026 17:32:00;27/01/2026 17:37:00;5min;1;1;C;187.235,00;187.430,00;192.235,00;No;39,00;195,00;12;39,00;195,00;0,00;0,00;0,00;13min;98,00 +WINJ26;28/01/2026 09:03:00;28/01/2026 09:16:00;13min;1;1;V;187.450,00;187.305,00;192.235,00;No;-29,00;-145,00;13;-29,00;-145,00;0,00;0,00;0,00;15h31min;69,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:06:00;6min;1;1;C;187.955,00;187.940,00;192.235,00;No;-3,00;-15,00;14;-3,00;-15,00;0,00;0,00;0,00;6h57min;66,00 +WINJ26;29/01/2026 09:33:00;29/01/2026 09:39:00;6min;1;1;C;191.130,00;191.200,00;192.235,00;No;14,00;70,00;15;14,00;70,00;0,00;0,00;0,00;17h33min;80,00 +WINJ26;29/01/2026 12:31:00;29/01/2026 12:44:00;13min;1;1;C;188.240,00;187.450,00;192.235,00;Sim;-158,00;-790,00;16;-158,00;-790,00;0,00;0,00;0,00;2h58min;-78,00 +WINJ26;29/01/2026 12:48:00;29/01/2026 13:00:00;12min;1;1;C;187.505,00;186.785,00;192.235,00;Sim;-144,00;-720,00;17;-144,00;-720,00;0,00;0,00;0,00;17min;-222,00 +WINJ26;30/01/2026 15:09:00;30/01/2026 15:23:00;14min;1;1;C;185.895,00;184.975,00;192.235,00;Sim;-184,00;-920,00;18;-184,00;-920,00;0,00;0,00;0,00;1d2h;-406,00 +WINJ26;30/01/2026 15:25:00;30/01/2026 15:30:00;5min;1;1;C;185.180,00;185.180,00;192.235,00;Sim;0;0;19;0;0;0,00;0,00;0,00;16min;-406,00 +WINJ26;30/01/2026 16:06:00;30/01/2026 16:22:00;16min;1;1;V;186.325,00;186.165,00;192.235,00;No;-32,00;-160,00;20;-32,00;-160,00;0,00;0,00;0,00;41min;-438,00 +WINJ26;03/02/2026 10:23:00;03/02/2026 10:25:00;2min;1;1;C;189.150,00;189.535,00;192.235,00;No;77,00;385,00;21;77,00;385,00;0,00;0,00;0,00;3d18h;-361,00 +WINJ26;03/02/2026 16:56:00;03/02/2026 17:00:00;4min;1;1;C;189.840,00;189.800,00;192.235,00;No;-8,00;-40,00;22;-8,00;-40,00;0,00;0,00;0,00;6h33min;-369,00 +WINJ26;04/02/2026 13:10:00;04/02/2026 13:22:00;12min;1;1;C;186.810,00;186.400,00;192.235,00;Sim;-82,00;-410,00;23;-82,00;-410,00;0,00;0,00;0,00;20h14min;-451,00 +WINJ26;04/02/2026 13:49:00;04/02/2026 13:56:00;7min;1;1;C;186.125,00;186.255,00;192.235,00;Sim;26,00;130,00;24;26,00;130,00;0,00;0,00;0,00;39min;-425,00 +WINJ26;04/02/2026 14:43:00;04/02/2026 14:55:00;12min;1;1;C;185.450,00;185.355,00;192.235,00;Sim;-19,00;-95,00;25;-19,00;-95,00;0,00;0,00;0,00;54min;-444,00 +WINJ26;05/02/2026 11:50:00;05/02/2026 11:51:00;1min;1;1;V;188.020,00;188.260,00;192.235,00;Sim;48,00;240,00;26;48,00;240,00;0,00;0,00;0,00;21h7min;-396,00 +WINJ26;05/02/2026 12:17:00;05/02/2026 12:29:00;12min;1;1;C;186.915,00;186.540,00;192.235,00;No;-75,00;-375,00;27;-75,00;-375,00;0,00;0,00;0,00;27min;-471,00 +WINJ26;05/02/2026 12:39:00;05/02/2026 12:41:00;2min;1;1;C;186.405,00;186.665,00;192.235,00;Sim;52,00;260,00;28;52,00;260,00;0,00;0,00;0,00;22min;-419,00 +WINJ26;06/02/2026 13:15:00;06/02/2026 13:27:00;12min;1;1;V;186.660,00;186.620,00;192.235,00;No;-8,00;-40,00;29;-8,00;-40,00;0,00;0,00;0,00;1d;-427,00 +WINJ26;09/02/2026 09:57:00;09/02/2026 10:00:00;3min;1;1;C;187.950,00;188.045,00;192.235,00;No;19,00;95,00;30;19,00;95,00;0,00;0,00;0,00;2d20h;-408,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 09:52:00;4min;1;1;C;189.660,00;189.775,00;192.235,00;No;23,00;115,00;31;23,00;115,00;0,00;0,00;0,00;23h51min;-385,00 +WINJ26;10/02/2026 15:44:00;10/02/2026 15:51:00;7min;1;1;C;189.520,00;189.610,00;192.235,00;Sim;18,00;90,00;32;18,00;90,00;0,00;0,00;0,00;5h56min;-367,00 +WINJ26;11/02/2026 13:19:00;11/02/2026 13:26:00;7min;1;1;V;193.950,00;194.080,00;192.235,00;Sim;26,00;130,00;33;26,00;130,00;0,00;0,00;0,00;21h35min;-341,00 +WINJ26;11/02/2026 17:20:00;11/02/2026 17:27:00;7min;1;1;C;193.825,00;193.960,00;192.235,00;No;27,00;135,00;34;27,00;135,00;0,00;0,00;0,00;4h1min;-314,00 +WINJ26;12/02/2026 11:23:00;12/02/2026 11:31:00;8min;1;1;V;193.620,00;193.585,00;192.235,00;No;-7,00;-35,00;35;-7,00;-35,00;0,00;0,00;0,00;18h3min;-321,00 +WINJ26;12/02/2026 17:09:00;12/02/2026 17:12:00;3min;1;1;V;192.035,00;192.340,00;192.235,00;No;61,00;305,00;36;61,00;305,00;0,00;0,00;0,00;5h46min;-260,00 +WINJ26;13/02/2026 12:39:00;13/02/2026 12:45:00;6min;1;1;V;188.780,00;189.190,00;192.235,00;No;82,00;410,00;37;82,00;410,00;0,00;0,00;0,00;19h30min;-178,00 +WINJ26;13/02/2026 14:48:00;13/02/2026 14:55:00;7min;1;1;V;189.835,00;189.890,00;192.235,00;Sim;11,00;55,00;38;11,00;55,00;0,00;0,00;0,00;2h9min;-167,00 +WINJ26;13/02/2026 15:38:00;13/02/2026 15:42:00;4min;1;1;V;190.025,00;190.205,00;192.235,00;Sim;36,00;180,00;39;36,00;180,00;0,00;0,00;0,00;50min;-131,00 +WINJ26;18/02/2026 13:07:00;18/02/2026 13:11:00;4min;1;1;V;190.820,00;191.010,00;192.235,00;Sim;38,00;190,00;40;38,00;190,00;0,00;0,00;0,00;4d21h;-93,00 +WINJ26;19/02/2026 12:15:00;19/02/2026 12:22:00;7min;1;1;V;191.225,00;191.340,00;192.235,00;Sim;23,00;115,00;41;23,00;115,00;0,00;0,00;0,00;23h8min;-70,00 +WINJ26;20/02/2026 14:31:00;20/02/2026 14:34:00;3min;1;1;C;191.535,00;191.685,00;192.235,00;Sim;30,00;150,00;42;30,00;150,00;0,00;0,00;0,00;1d2h;-40,00 +WINJ26;23/02/2026 09:28:00;23/02/2026 09:40:00;12min;1;1;C;192.810,00;192.830,00;192.235,00;No;4,00;20,00;43;4,00;20,00;0,00;0,00;0,00;2d18h;-36,00 +WINJ26;23/02/2026 11:59:00;23/02/2026 12:03:00;4min;1;1;V;194.300,00;194.390,00;192.235,00;Sim;18,00;90,00;44;18,00;90,00;0,00;0,00;0,00;2h31min;-18,00 +WINJ26;23/02/2026 12:30:00;23/02/2026 12:42:00;12min;1;1;C;193.325,00;192.915,00;192.235,00;No;-82,00;-410,00;45;-82,00;-410,00;0,00;0,00;0,00;31min;-100,00 +WINJ26;23/02/2026 16:10:00;23/02/2026 16:22:00;12min;1;1;C;192.495,00;192.320,00;192.235,00;Sim;-35,00;-175,00;46;-35,00;-175,00;0,00;0,00;0,00;3h40min;-135,00 +WINJ26;24/02/2026 16:48:00;24/02/2026 16:53:00;5min;1;1;V;194.975,00;195.030,00;192.235,00;Sim;11,00;55,00;47;11,00;55,00;0,00;0,00;0,00;1d;-124,00 +WINJ26;24/02/2026 17:47:00;24/02/2026 17:59:00;12min;1;1;V;195.235,00;194.945,00;192.235,00;No;-58,00;-290,00;48;-58,00;-290,00;0,00;0,00;0,00;59min;-182,00 +WINJ26;25/02/2026 10:47:00;25/02/2026 10:59:00;12min;1;1;C;195.315,00;194.995,00;192.235,00;No;-64,00;-320,00;49;-64,00;-320,00;0,00;0,00;0,00;17h;-246,00 +WINJ26;25/02/2026 17:38:00;25/02/2026 17:50:00;12min;1;1;V;194.565,00;194.325,00;192.235,00;No;-48,00;-240,00;50;-48,00;-240,00;0,00;0,00;0,00;6h51min;-294,00 +WINJ26;26/02/2026 18:22:00;27/02/2026 09:00:00;14h38min;1;1;C;194.145,00;194.155,00;192.235,00;Sim;2,00;10,00;51;2,00;10,00;0,00;0,00;0,00;1d;-292,00 +WINJ26;27/02/2026 10:37:00;27/02/2026 10:45:00;8min;1;1;C;192.850,00;192.860,00;192.235,00;Sim;2,00;10,00;52;2,00;10,00;0,00;0,00;0,00;16h15min;-290,00 +WINJ26;27/02/2026 14:34:00;27/02/2026 14:44:00;10min;1;1;C;192.480,00;192.460,00;192.235,00;Sim;-4,00;-20,00;53;-4,00;-20,00;0,00;0,00;0,00;3h57min;-294,00 +WINJ26;27/02/2026 16:34:00;27/02/2026 16:46:00;12min;1;1;C;192.015,00;191.815,00;192.235,00;Sim;-40,00;-200,00;54;-40,00;-200,00;0,00;0,00;0,00;2h;-334,00 +WINJ26;02/03/2026 09:07:00;02/03/2026 09:14:00;7min;1;1;C;190.700,00;191.025,00;192.235,00;Sim;65,00;325,00;55;65,00;325,00;0,00;0,00;0,00;2d16h;-269,00 +WINJ26;02/03/2026 09:49:00;02/03/2026 10:01:00;12min;1;1;C;190.160,00;190.275,00;192.235,00;Sim;23,00;115,00;56;23,00;115,00;0,00;0,00;0,00;42min;-246,00 +WINJ26;02/03/2026 12:16:00;02/03/2026 12:19:00;3min;1;1;V;191.695,00;191.840,00;192.235,00;No;29,00;145,00;57;29,00;145,00;0,00;0,00;0,00;2h27min;-217,00 +WINJ26;02/03/2026 14:18:00;02/03/2026 14:25:00;7min;1;1;V;191.620,00;191.755,00;192.235,00;No;27,00;135,00;58;27,00;135,00;0,00;0,00;0,00;2h2min;-190,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv new file mode 100644 index 0000000..86c901d --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv @@ -0,0 +1,10 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;23/10/2025 18:00:00;28/10/2025 11:00:00;4d17h;1;1;V;155.985,00;154.600,00;192.185,00;No;-277,00;-1.385,00;1;-277,00;-1.385,00;0,00;0,00;0,00; - ;-277,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.185,00;Sim;387,00;1.935,00;2;387,00;1.935,00;0,00;0,00;0,00;1m11d19h;110,00 +WINJ26;10/02/2026 10:00:00;11/02/2026 12:00:00;1d2h;1;1;V;193.035,00;189.645,00;192.185,00;Sim;-678,00;-3.390,00;3;-678,00;-3.390,00;0,00;0,00;0,00;2m4d21h;-568,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.185,00;No;212,00;1.060,00;4;212,00;1.060,00;0,00;0,00;0,00;3d4h;-356,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv new file mode 100644 index 0000000..6d3cc5c --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv @@ -0,0 +1,96 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;20/01/2026 09:09:00;20/01/2026 09:22:00;13min;1;1;C;168.875,00;168.340,00;192.205,00;No;-107,00;-535,00;1;-107,00;-535,00;0,00;0,00;0,00; - ;-107,00 +WINJ26;20/01/2026 14:38:00;20/01/2026 14:53:00;15min;1;1;C;170.940,00;170.880,00;192.205,00;No;-12,00;-60,00;2;-12,00;-60,00;0,00;0,00;0,00;5h29min;-119,00 +WINJ26;21/01/2026 09:01:00;21/01/2026 09:02:00;1min;1;1;C;171.230,00;171.830,00;192.205,00;No;120,00;600,00;3;120,00;600,00;0,00;0,00;0,00;18h23min;1,00 +WINJ26;21/01/2026 12:29:00;21/01/2026 12:45:00;16min;1;1;C;174.465,00;174.360,00;192.205,00;No;-21,00;-105,00;4;-21,00;-105,00;0,00;0,00;0,00;3h28min;-20,00 +WINJ26;21/01/2026 18:14:00;21/01/2026 18:20:00;6min;1;1;C;176.930,00;177.000,00;192.205,00;No;14,00;70,00;5;14,00;70,00;0,00;0,00;0,00;5h45min;-6,00 +WINJ26;22/01/2026 13:46:00;22/01/2026 13:47:00;1min;1;1;C;181.750,00;181.765,00;192.205,00;No;3,00;15,00;6;3,00;15,00;0,00;0,00;0,00;19h32min;-3,00 +WINJ26;22/01/2026 14:29:00;22/01/2026 14:30:00;1min;1;1;C;181.375,00;181.570,00;192.205,00;Sim;39,00;195,00;7;39,00;195,00;0,00;0,00;0,00;43min;36,00 +WINJ26;22/01/2026 15:33:00;22/01/2026 15:53:00;20min;1;1;C;181.300,00;181.125,00;192.205,00;Sim;-35,00;-175,00;8;-35,00;-175,00;0,00;0,00;0,00;1h4min;1,00 +WINJ26;22/01/2026 17:36:00;22/01/2026 17:54:00;18min;1;1;V;180.810,00;180.960,00;192.205,00;No;30,00;150,00;9;30,00;150,00;0,00;0,00;0,00;2h3min;31,00 +WINJ26;23/01/2026 09:52:00;23/01/2026 09:53:00;1min;1;1;C;181.340,00;181.575,00;192.205,00;No;47,00;235,00;10;47,00;235,00;0,00;0,00;0,00;16h16min;78,00 +WINJ26;23/01/2026 14:09:00;23/01/2026 14:18:00;9min;1;1;C;182.000,00;182.160,00;192.205,00;No;32,00;160,00;11;32,00;160,00;0,00;0,00;0,00;4h17min;110,00 +WINJ26;23/01/2026 18:01:00;23/01/2026 18:13:00;12min;1;1;C;184.095,00;184.225,00;192.205,00;No;26,00;130,00;12;26,00;130,00;0,00;0,00;0,00;3h52min;136,00 +WINJ26;26/01/2026 13:55:00;26/01/2026 13:56:00;1min;1;1;V;183.215,00;183.250,00;192.205,00;Sim;7,00;35,00;13;7,00;35,00;0,00;0,00;0,00;2d19h;143,00 +WINJ26;27/01/2026 14:34:00;27/01/2026 14:42:00;8min;1;1;C;187.750,00;187.750,00;192.205,00;No;0;0;14;0;0;0,00;0,00;0,00;1d;143,00 +WINJ26;28/01/2026 11:13:00;28/01/2026 11:14:00;1min;1;1;C;188.985,00;189.110,00;192.205,00;No;25,00;125,00;15;25,00;125,00;0,00;0,00;0,00;20h39min;168,00 +WINJ26;28/01/2026 11:35:00;28/01/2026 11:37:00;2min;1;1;C;188.935,00;189.040,00;192.205,00;Sim;21,00;105,00;16;21,00;105,00;0,00;0,00;0,00;22min;189,00 +WINJ26;28/01/2026 12:10:00;28/01/2026 12:23:00;13min;1;1;C;189.125,00;188.725,00;192.205,00;No;-80,00;-400,00;17;-80,00;-400,00;0,00;0,00;0,00;35min;109,00 +WINJ26;29/01/2026 09:33:00;29/01/2026 09:39:00;6min;1;1;C;191.130,00;191.200,00;192.205,00;No;14,00;70,00;18;14,00;70,00;0,00;0,00;0,00;21h23min;123,00 +WINJ26;29/01/2026 11:33:00;29/01/2026 11:36:00;3min;1;1;C;190.525,00;190.815,00;192.205,00;Sim;58,00;290,00;19;58,00;290,00;0,00;0,00;0,00;2h;181,00 +WINJ26;29/01/2026 13:20:00;29/01/2026 13:23:00;3min;1;1;V;187.270,00;187.735,00;192.205,00;Sim;93,00;465,00;20;93,00;465,00;0,00;0,00;0,00;1h47min;274,00 +WINJ26;29/01/2026 14:10:00;29/01/2026 14:28:00;18min;1;1;V;188.255,00;187.775,00;192.205,00;Sim;-96,00;-480,00;21;-96,00;-480,00;0,00;0,00;0,00;50min;178,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:41:00;7min;1;1;V;188.280,00;188.415,00;192.205,00;Sim;27,00;135,00;22;27,00;135,00;0,00;0,00;0,00;24min;205,00 +WINJ26;30/01/2026 10:23:00;30/01/2026 10:32:00;9min;1;1;V;187.760,00;187.735,00;192.205,00;No;-5,00;-25,00;23;-5,00;-25,00;0,00;0,00;0,00;19h49min;200,00 +WINJ26;30/01/2026 16:06:00;30/01/2026 16:23:00;17min;1;1;V;186.380,00;186.165,00;192.205,00;No;-43,00;-215,00;24;-43,00;-215,00;0,00;0,00;0,00;5h43min;157,00 +WINJ26;02/02/2026 11:22:00;02/02/2026 11:33:00;11min;1;1;C;186.820,00;186.940,00;192.205,00;Sim;24,00;120,00;25;24,00;120,00;0,00;0,00;0,00;2d19h;181,00 +WINJ26;03/02/2026 10:23:00;03/02/2026 10:25:00;2min;1;1;C;189.150,00;189.535,00;192.205,00;No;77,00;385,00;26;77,00;385,00;0,00;0,00;0,00;23h1min;258,00 +WINJ26;03/02/2026 12:17:00;03/02/2026 12:21:00;4min;1;1;C;191.115,00;191.295,00;192.205,00;No;36,00;180,00;27;36,00;180,00;0,00;0,00;0,00;1h54min;294,00 +WINJ26;03/02/2026 16:00:00;03/02/2026 16:01:00;1min;1;1;V;189.685,00;189.645,00;192.205,00;Sim;-8,00;-40,00;28;-8,00;-40,00;0,00;0,00;0,00;3h43min;286,00 +WINJ26;04/02/2026 12:27:00;04/02/2026 12:31:00;4min;1;1;V;187.850,00;187.970,00;192.205,00;No;24,00;120,00;29;24,00;120,00;0,00;0,00;0,00;20h27min;310,00 +WINJ26;04/02/2026 15:25:00;04/02/2026 15:33:00;8min;1;1;V;185.275,00;185.475,00;192.205,00;No;40,00;200,00;30;40,00;200,00;0,00;0,00;0,00;2h58min;350,00 +WINJ26;04/02/2026 16:52:00;04/02/2026 17:05:00;13min;1;1;V;185.680,00;185.300,00;192.205,00;No;-76,00;-380,00;31;-76,00;-380,00;0,00;0,00;0,00;1h27min;274,00 +WINJ26;06/02/2026 12:21:00;06/02/2026 12:34:00;13min;1;1;V;186.420,00;186.470,00;192.205,00;Sim;10,00;50,00;32;10,00;50,00;0,00;0,00;0,00;1d19h;284,00 +WINJ26;06/02/2026 14:17:00;06/02/2026 14:19:00;2min;1;1;C;186.820,00;186.995,00;192.205,00;Sim;35,00;175,00;33;35,00;175,00;0,00;0,00;0,00;1h56min;319,00 +WINJ26;06/02/2026 15:02:00;06/02/2026 15:16:00;14min;1;1;C;186.770,00;186.525,00;192.205,00;Sim;-49,00;-245,00;34;-49,00;-245,00;0,00;0,00;0,00;45min;270,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:01:00;1min;1;1;C;187.805,00;187.850,00;192.205,00;No;9,00;45,00;35;9,00;45,00;0,00;0,00;0,00;2d17h;279,00 +WINJ26;09/02/2026 09:57:00;09/02/2026 10:00:00;3min;1;1;C;187.950,00;188.045,00;192.205,00;No;19,00;95,00;36;19,00;95,00;0,00;0,00;0,00;57min;298,00 +WINJ26;09/02/2026 15:23:00;09/02/2026 15:24:00;1min;1;1;C;189.675,00;189.755,00;192.205,00;No;16,00;80,00;37;16,00;80,00;0,00;0,00;0,00;5h26min;314,00 +WINJ26;09/02/2026 17:24:00;09/02/2026 17:25:00;1min;1;1;C;190.455,00;190.425,00;192.205,00;No;-6,00;-30,00;38;-6,00;-30,00;0,00;0,00;0,00;2h1min;308,00 +WINJ26;10/02/2026 13:28:00;10/02/2026 13:32:00;4min;1;1;C;190.580,00;190.635,00;192.205,00;No;11,00;55,00;39;11,00;55,00;0,00;0,00;0,00;20h4min;319,00 +WINJ26;10/02/2026 13:45:00;10/02/2026 13:54:00;9min;1;1;C;190.435,00;190.385,00;192.205,00;Sim;-10,00;-50,00;40;-10,00;-50,00;0,00;0,00;0,00;17min;309,00 +WINJ26;10/02/2026 16:36:00;10/02/2026 16:49:00;13min;1;1;V;189.900,00;189.735,00;192.205,00;Sim;-33,00;-165,00;41;-33,00;-165,00;0,00;0,00;0,00;2h51min;276,00 +WINJ26;10/02/2026 17:51:00;10/02/2026 18:04:00;13min;1;1;C;190.145,00;190.065,00;192.205,00;Sim;-16,00;-80,00;42;-16,00;-80,00;0,00;0,00;0,00;1h15min;260,00 +WINJ26;11/02/2026 12:22:00;11/02/2026 12:32:00;10min;1;1;C;192.580,00;192.590,00;192.205,00;No;2,00;10,00;43;2,00;10,00;0,00;0,00;0,00;18h31min;262,00 +WINJ26;11/02/2026 14:38:00;11/02/2026 14:47:00;9min;1;1;C;194.435,00;194.515,00;192.205,00;No;16,00;80,00;44;16,00;80,00;0,00;0,00;0,00;2h16min;278,00 +WINJ26;11/02/2026 15:17:00;11/02/2026 15:19:00;2min;1;1;C;194.015,00;194.165,00;192.205,00;Sim;30,00;150,00;45;30,00;150,00;0,00;0,00;0,00;39min;308,00 +WINJ26;11/02/2026 16:47:00;11/02/2026 17:00:00;13min;1;1;C;194.255,00;193.990,00;192.205,00;No;-53,00;-265,00;46;-53,00;-265,00;0,00;0,00;0,00;1h30min;255,00 +WINJ26;11/02/2026 17:02:00;11/02/2026 17:15:00;13min;1;1;C;194.050,00;193.855,00;192.205,00;Sim;-39,00;-195,00;47;-39,00;-195,00;0,00;0,00;0,00;15min;216,00 +WINJ26;12/02/2026 10:08:00;12/02/2026 10:10:00;2min;1;1;V;193.005,00;193.015,00;192.205,00;Sim;2,00;10,00;48;2,00;10,00;0,00;0,00;0,00;17h6min;218,00 +WINJ26;12/02/2026 15:53:00;12/02/2026 16:06:00;13min;1;1;V;191.810,00;191.650,00;192.205,00;No;-32,00;-160,00;49;-32,00;-160,00;0,00;0,00;0,00;5h45min;186,00 +WINJ26;12/02/2026 16:17:00;12/02/2026 16:27:00;10min;1;1;V;191.870,00;191.945,00;192.205,00;Sim;15,00;75,00;50;15,00;75,00;0,00;0,00;0,00;24min;201,00 +WINJ26;13/02/2026 10:32:00;13/02/2026 10:37:00;5min;1;1;V;189.035,00;188.830,00;192.205,00;No;-41,00;-205,00;51;-41,00;-205,00;0,00;0,00;0,00;18h15min;160,00 +WINJ26;18/02/2026 17:05:00;18/02/2026 17:11:00;6min;1;1;V;189.155,00;189.220,00;192.205,00;Sim;13,00;65,00;52;13,00;65,00;0,00;0,00;0,00;5d6h;173,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:55:00;1min;1;1;C;192.075,00;192.295,00;192.205,00;Sim;44,00;220,00;53;44,00;220,00;0,00;0,00;0,00;20h49min;217,00 +WINJ26;19/02/2026 14:54:00;19/02/2026 15:07:00;13min;1;1;C;192.160,00;192.055,00;192.205,00;No;-21,00;-105,00;54;-21,00;-105,00;0,00;0,00;0,00;1h;196,00 +WINJ26;19/02/2026 15:12:00;19/02/2026 15:14:00;2min;1;1;C;191.960,00;192.155,00;192.205,00;Sim;39,00;195,00;55;39,00;195,00;0,00;0,00;0,00;18min;235,00 +WINJ26;20/02/2026 16:02:00;20/02/2026 16:03:00;1min;1;1;C;192.980,00;193.075,00;192.205,00;No;19,00;95,00;56;19,00;95,00;0,00;0,00;0,00;1d;254,00 +WINJ26;20/02/2026 17:34:00;20/02/2026 17:35:00;1min;1;1;C;194.100,00;194.120,00;192.205,00;No;4,00;20,00;57;4,00;20,00;0,00;0,00;0,00;1h32min;258,00 +WINJ26;23/02/2026 09:04:00;23/02/2026 09:17:00;13min;1;1;C;193.760,00;193.030,00;192.205,00;Sim;-146,00;-730,00;58;-146,00;-730,00;0,00;0,00;0,00;2d15h;112,00 +WINJ26;23/02/2026 10:10:00;23/02/2026 10:13:00;3min;1;1;V;192.975,00;193.150,00;192.205,00;Sim;35,00;175,00;59;35,00;175,00;0,00;0,00;0,00;1h6min;147,00 +WINJ26;23/02/2026 11:12:00;23/02/2026 11:13:00;1min;1;1;V;193.045,00;193.045,00;192.205,00;No;0;0;60;0;0;0,00;0,00;0,00;1h2min;147,00 +WINJ26;23/02/2026 12:11:00;23/02/2026 12:24:00;13min;1;1;C;193.980,00;193.450,00;192.205,00;No;-106,00;-530,00;61;-106,00;-530,00;0,00;0,00;0,00;59min;41,00 +WINJ26;23/02/2026 14:03:00;23/02/2026 14:11:00;8min;1;1;V;192.410,00;192.410,00;192.205,00;No;0;0;62;0;0;0,00;0,00;0,00;1h52min;41,00 +WINJ26;23/02/2026 17:03:00;23/02/2026 17:11:00;8min;1;1;V;192.435,00;192.475,00;192.205,00;Sim;8,00;40,00;63;8,00;40,00;0,00;0,00;0,00;3h;49,00 +WINJ26;23/02/2026 17:32:00;23/02/2026 17:43:00;11min;1;1;V;192.470,00;192.485,00;192.205,00;Sim;3,00;15,00;64;3,00;15,00;0,00;0,00;0,00;29min;52,00 +WINJ26;24/02/2026 09:35:00;24/02/2026 09:44:00;9min;1;1;C;193.225,00;193.340,00;192.205,00;Sim;23,00;115,00;65;23,00;115,00;0,00;0,00;0,00;16h3min;75,00 +WINJ26;24/02/2026 10:02:00;24/02/2026 10:07:00;5min;1;1;C;193.310,00;193.375,00;192.205,00;No;13,00;65,00;66;13,00;65,00;0,00;0,00;0,00;27min;88,00 +WINJ26;24/02/2026 15:00:00;24/02/2026 15:06:00;6min;1;1;C;194.940,00;195.030,00;192.205,00;No;18,00;90,00;67;18,00;90,00;0,00;0,00;0,00;4h58min;106,00 +WINJ26;24/02/2026 15:15:00;24/02/2026 15:21:00;6min;1;1;C;194.860,00;194.945,00;192.205,00;Sim;17,00;85,00;68;17,00;85,00;0,00;0,00;0,00;15min;123,00 +WINJ26;24/02/2026 16:02:00;24/02/2026 16:03:00;1min;1;1;C;194.930,00;194.995,00;192.205,00;No;13,00;65,00;69;13,00;65,00;0,00;0,00;0,00;47min;136,00 +WINJ26;25/02/2026 10:14:00;25/02/2026 10:27:00;13min;1;1;C;195.990,00;195.635,00;192.205,00;No;-71,00;-355,00;70;-71,00;-355,00;0,00;0,00;0,00;18h12min;65,00 +WINJ26;25/02/2026 12:54:00;25/02/2026 13:07:00;13min;1;1;V;194.630,00;194.505,00;192.205,00;Sim;-25,00;-125,00;71;-25,00;-125,00;0,00;0,00;0,00;2h40min;40,00 +WINJ26;25/02/2026 13:18:00;25/02/2026 13:19:00;1min;1;1;V;194.595,00;194.690,00;192.205,00;Sim;19,00;95,00;72;19,00;95,00;0,00;0,00;0,00;24min;59,00 +WINJ26;25/02/2026 16:22:00;25/02/2026 16:23:00;1min;1;1;V;194.040,00;194.085,00;192.205,00;No;9,00;45,00;73;9,00;45,00;0,00;0,00;0,00;3h4min;68,00 +WINJ26;25/02/2026 17:38:00;25/02/2026 17:51:00;13min;1;1;V;194.585,00;194.325,00;192.205,00;Sim;-52,00;-260,00;74;-52,00;-260,00;0,00;0,00;0,00;1h16min;16,00 +WINJ26;26/02/2026 09:07:00;26/02/2026 09:10:00;3min;1;1;C;194.410,00;194.385,00;192.205,00;Sim;-5,00;-25,00;75;-5,00;-25,00;0,00;0,00;0,00;15h29min;11,00 +WINJ26;26/02/2026 10:21:00;26/02/2026 10:34:00;13min;1;1;C;194.370,00;193.665,00;192.205,00;Sim;-141,00;-705,00;76;-141,00;-705,00;0,00;0,00;0,00;1h14min;-130,00 +WINJ26;26/02/2026 13:02:00;26/02/2026 13:15:00;13min;1;1;V;193.550,00;193.280,00;192.205,00;No;-54,00;-270,00;77;-54,00;-270,00;0,00;0,00;0,00;2h41min;-184,00 +WINJ26;26/02/2026 13:42:00;26/02/2026 13:55:00;13min;1;1;C;193.685,00;193.565,00;192.205,00;Sim;-24,00;-120,00;78;-24,00;-120,00;0,00;0,00;0,00;40min;-208,00 +WINJ26;26/02/2026 17:56:00;26/02/2026 18:01:00;5min;1;1;C;194.330,00;194.360,00;192.205,00;No;6,00;30,00;79;6,00;30,00;0,00;0,00;0,00;4h14min;-202,00 +WINJ26;26/02/2026 18:22:00;27/02/2026 09:00:00;14h38min;1;1;C;194.145,00;194.155,00;192.205,00;Sim;2,00;10,00;80;2,00;10,00;0,00;0,00;0,00;26min;-200,00 +WINJ26;27/02/2026 09:24:00;27/02/2026 09:28:00;4min;1;1;V;193.320,00;193.700,00;192.205,00;Sim;76,00;380,00;81;76,00;380,00;0,00;0,00;0,00;15h2min;-124,00 +WINJ26;27/02/2026 10:01:00;27/02/2026 10:02:00;1min;1;1;V;193.325,00;193.350,00;192.205,00;No;5,00;25,00;82;5,00;25,00;0,00;0,00;0,00;37min;-119,00 +WINJ26;27/02/2026 11:17:00;27/02/2026 11:18:00;1min;1;1;V;192.990,00;193.210,00;192.205,00;No;44,00;220,00;83;44,00;220,00;0,00;0,00;0,00;1h16min;-75,00 +WINJ26;27/02/2026 15:09:00;27/02/2026 15:22:00;13min;1;1;V;192.620,00;192.695,00;192.205,00;No;15,00;75,00;84;15,00;75,00;0,00;0,00;0,00;3h52min;-60,00 +WINJ26;27/02/2026 15:59:00;27/02/2026 16:06:00;7min;1;1;V;192.765,00;192.795,00;192.205,00;Sim;6,00;30,00;85;6,00;30,00;0,00;0,00;0,00;50min;-54,00 +WINJ26;27/02/2026 17:27:00;27/02/2026 17:37:00;10min;1;1;V;192.180,00;192.125,00;192.205,00;No;-11,00;-55,00;86;-11,00;-55,00;0,00;0,00;0,00;1h28min;-65,00 +WINJ26;02/03/2026 10:27:00;02/03/2026 10:40:00;13min;1;1;V;190.940,00;190.885,00;192.205,00;No;-11,00;-55,00;87;-11,00;-55,00;0,00;0,00;0,00;2d17h;-76,00 +WINJ26;02/03/2026 11:12:00;02/03/2026 11:17:00;5min;1;1;V;190.230,00;190.355,00;192.205,00;No;25,00;125,00;88;25,00;125,00;0,00;0,00;0,00;45min;-51,00 +WINJ26;02/03/2026 12:35:00;02/03/2026 12:40:00;5min;1;1;C;191.390,00;191.370,00;192.205,00;Sim;-4,00;-20,00;89;-4,00;-20,00;0,00;0,00;0,00;1h23min;-55,00 +WINJ26;02/03/2026 16:52:00;02/03/2026 16:56:00;4min;1;1;C;192.920,00;192.945,00;192.205,00;No;5,00;25,00;90;5,00;25,00;0,00;0,00;0,00;4h17min;-50,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv new file mode 100644 index 0000000..9ad30e8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv @@ -0,0 +1,100 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:50:00;22min;1;1;C;165.120,00;165.130,00;192.260,00;No;2,00;10,00;1;2,00;10,00;0,00;0,00;0,00; - ;2,00 +WINJ26;19/12/2025 17:48:00;19/12/2025 18:06:00;18min;1;1;C;164.730,00;164.800,00;192.260,00;Sim;14,00;70,00;2;14,00;70,00;0,00;0,00;0,00;2h20min;16,00 +WINJ26;22/12/2025 10:16:00;22/12/2025 10:44:00;28min;1;1;C;164.425,00;164.265,00;192.260,00;Sim;-32,00;-160,00;3;-32,00;-160,00;0,00;0,00;0,00;2d16h;-16,00 +WINJ26;22/12/2025 11:32:00;22/12/2025 11:46:00;14min;1;1;C;163.570,00;163.840,00;192.260,00;Sim;54,00;270,00;4;54,00;270,00;0,00;0,00;0,00;1h16min;38,00 +WINJ26;22/12/2025 13:22:00;22/12/2025 13:34:00;12min;1;1;V;164.075,00;164.240,00;192.260,00;No;33,00;165,00;5;33,00;165,00;0,00;0,00;0,00;1h50min;71,00 +WINJ26;22/12/2025 15:58:00;22/12/2025 16:16:00;18min;1;1;V;164.300,00;164.420,00;192.260,00;Sim;24,00;120,00;6;24,00;120,00;0,00;0,00;0,00;2h36min;95,00 +WINJ26;22/12/2025 17:58:00;22/12/2025 18:00:00;2min;1;1;V;164.315,00;164.315,00;192.260,00;No;0;0;7;0;0;0,00;0,00;0,00;2h;95,00 +WINJ26;23/12/2025 11:26:00;23/12/2025 11:34:00;8min;1;1;C;165.355,00;165.550,00;192.260,00;No;39,00;195,00;8;39,00;195,00;0,00;0,00;0,00;17h28min;134,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:24:00;4min;1;1;C;166.425,00;166.425,00;192.260,00;No;0;0;9;0;0;0,00;0,00;0,00;3h54min;134,00 +WINJ26;23/12/2025 17:12:00;23/12/2025 17:26:00;14min;1;1;C;166.415,00;166.465,00;192.260,00;Sim;10,00;50,00;10;10,00;50,00;0,00;0,00;0,00;1h52min;144,00 +WINJ26;26/12/2025 13:38:00;26/12/2025 14:02:00;24min;1;1;C;166.065,00;166.145,00;192.260,00;Sim;16,00;80,00;11;16,00;80,00;0,00;0,00;0,00;2d20h;160,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.260,00;Sim;5,00;25,00;12;5,00;25,00;0,00;0,00;0,00;3d1h;165,00 +WINJ26;29/12/2025 16:38:00;29/12/2025 17:16:00;38min;1;1;V;166.345,00;165.975,00;192.260,00;No;-74,00;-370,00;13;-74,00;-370,00;0,00;0,00;0,00;1h48min;91,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.260,00;No;26,00;130,00;14;26,00;130,00;0,00;0,00;0,00;18h26min;117,00 +WINJ26;30/12/2025 11:36:00;30/12/2025 11:40:00;4min;1;1;C;167.405,00;167.345,00;192.260,00;No;-12,00;-60,00;15;-12,00;-60,00;0,00;0,00;0,00;32min;105,00 +WINJ26;30/12/2025 12:08:00;30/12/2025 12:14:00;6min;1;1;C;167.105,00;167.220,00;192.260,00;Sim;23,00;115,00;16;23,00;115,00;0,00;0,00;0,00;32min;128,00 +WINJ26;30/12/2025 15:50:00;30/12/2025 16:08:00;18min;1;1;C;167.625,00;167.780,00;192.260,00;No;31,00;155,00;17;31,00;155,00;0,00;0,00;0,00;3h42min;159,00 +WINJ26;02/01/2026 16:28:00;02/01/2026 16:52:00;24min;1;1;V;166.220,00;166.295,00;192.260,00;Sim;15,00;75,00;18;15,00;75,00;0,00;0,00;0,00;3d;174,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:30:00;20min;1;1;C;167.545,00;167.580,00;192.260,00;Sim;7,00;35,00;19;7,00;35,00;0,00;0,00;0,00;3d;181,00 +WINJ26;06/01/2026 11:36:00;06/01/2026 11:38:00;2min;1;1;C;169.290,00;169.445,00;192.260,00;No;31,00;155,00;20;31,00;155,00;0,00;0,00;0,00;18h26min;212,00 +WINJ26;06/01/2026 13:26:00;06/01/2026 13:30:00;4min;1;1;C;169.285,00;169.405,00;192.260,00;Sim;24,00;120,00;21;24,00;120,00;0,00;0,00;0,00;1h50min;236,00 +WINJ26;06/01/2026 16:38:00;06/01/2026 17:10:00;32min;1;1;C;169.210,00;169.190,00;192.260,00;Sim;-4,00;-20,00;22;-4,00;-20,00;0,00;0,00;0,00;3h12min;232,00 +WINJ26;07/01/2026 13:32:00;07/01/2026 13:38:00;6min;1;1;V;167.650,00;167.760,00;192.260,00;Sim;22,00;110,00;23;22,00;110,00;0,00;0,00;0,00;20h54min;254,00 +WINJ26;07/01/2026 16:00:00;07/01/2026 16:12:00;12min;1;1;V;167.600,00;167.710,00;192.260,00;No;22,00;110,00;24;22,00;110,00;0,00;0,00;0,00;2h28min;276,00 +WINJ26;09/01/2026 09:26:00;09/01/2026 09:52:00;26min;1;1;C;168.045,00;168.010,00;192.260,00;Sim;-7,00;-35,00;25;-7,00;-35,00;0,00;0,00;0,00;1d17h;269,00 +WINJ26;09/01/2026 12:56:00;09/01/2026 13:10:00;14min;1;1;C;169.160,00;169.270,00;192.260,00;No;22,00;110,00;26;22,00;110,00;0,00;0,00;0,00;3h30min;291,00 +WINJ26;09/01/2026 14:58:00;09/01/2026 15:28:00;30min;1;1;C;169.505,00;169.230,00;192.260,00;No;-55,00;-275,00;27;-55,00;-275,00;0,00;0,00;0,00;2h2min;236,00 +WINJ26;09/01/2026 15:32:00;09/01/2026 15:42:00;10min;1;1;C;169.345,00;169.355,00;192.260,00;Sim;2,00;10,00;28;2,00;10,00;0,00;0,00;0,00;34min;238,00 +WINJ26;09/01/2026 16:22:00;09/01/2026 16:52:00;30min;1;1;C;169.035,00;169.085,00;192.260,00;Sim;10,00;50,00;29;10,00;50,00;0,00;0,00;0,00;50min;248,00 +WINJ26;12/01/2026 11:44:00;12/01/2026 12:10:00;26min;1;1;V;168.415,00;168.525,00;192.260,00;Sim;22,00;110,00;30;22,00;110,00;0,00;0,00;0,00;2d19h;270,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.260,00;No;29,00;145,00;31;29,00;145,00;0,00;0,00;0,00;23h30min;299,00 +WINJ26;13/01/2026 17:16:00;13/01/2026 17:22:00;6min;1;1;V;167.145,00;167.250,00;192.260,00;No;21,00;105,00;32;21,00;105,00;0,00;0,00;0,00;6h2min;320,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 12:00:00;16min;1;1;C;170.070,00;170.120,00;192.260,00;No;10,00;50,00;33;10,00;50,00;0,00;0,00;0,00;1d18h;330,00 +WINJ26;16/01/2026 10:12:00;16/01/2026 10:40:00;28min;1;1;C;170.700,00;170.465,00;192.260,00;No;-47,00;-235,00;34;-47,00;-235,00;0,00;0,00;0,00;22h28min;283,00 +WINJ26;16/01/2026 13:34:00;16/01/2026 13:58:00;24min;1;1;V;169.505,00;169.595,00;192.260,00;Sim;18,00;90,00;35;18,00;90,00;0,00;0,00;0,00;3h22min;301,00 +WINJ26;19/01/2026 09:00:00;19/01/2026 09:02:00;2min;1;1;V;169.210,00;169.140,00;192.260,00;No;-14,00;-70,00;36;-14,00;-70,00;0,00;0,00;0,00;2d19h;287,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.260,00;No;48,00;240,00;37;48,00;240,00;0,00;0,00;0,00;1d1h;335,00 +WINJ26;20/01/2026 14:38:00;20/01/2026 15:06:00;28min;1;1;C;170.940,00;170.990,00;192.260,00;No;10,00;50,00;38;10,00;50,00;0,00;0,00;0,00;4h12min;345,00 +WINJ26;20/01/2026 16:08:00;20/01/2026 16:28:00;20min;1;1;C;170.640,00;170.715,00;192.260,00;Sim;15,00;75,00;39;15,00;75,00;0,00;0,00;0,00;1h30min;360,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.260,00;No;-6,00;-30,00;40;-6,00;-30,00;0,00;0,00;0,00;16h54min;354,00 +WINJ26;22/01/2026 15:34:00;22/01/2026 16:02:00;28min;1;1;C;181.375,00;181.220,00;192.260,00;No;-31,00;-155,00;41;-31,00;-155,00;0,00;0,00;0,00;1d6h;323,00 +WINJ26;22/01/2026 16:18:00;22/01/2026 16:30:00;12min;1;1;C;180.825,00;181.150,00;192.260,00;Sim;65,00;325,00;42;65,00;325,00;0,00;0,00;0,00;44min;388,00 +WINJ26;22/01/2026 17:04:00;22/01/2026 17:24:00;20min;1;1;C;180.500,00;180.575,00;192.260,00;Sim;15,00;75,00;43;15,00;75,00;0,00;0,00;0,00;46min;403,00 +WINJ26;23/01/2026 11:26:00;23/01/2026 11:28:00;2min;1;1;C;181.030,00;181.325,00;192.260,00;No;59,00;295,00;44;59,00;295,00;0,00;0,00;0,00;18h22min;462,00 +WINJ26;26/01/2026 18:12:00;27/01/2026 09:02:00;14h50min;1;1;C;183.440,00;185.465,00;192.260,00;No;405,00;2.025,00;45;405,00;2.025,00;0,00;0,00;0,00;3d6h;867,00 +WINJ26;27/01/2026 14:20:00;27/01/2026 14:48:00;28min;1;1;C;187.835,00;187.845,00;192.260,00;No;2,00;10,00;46;2,00;10,00;0,00;0,00;0,00;20h8min;869,00 +WINJ26;28/01/2026 12:34:00;28/01/2026 12:48:00;14min;1;1;C;188.375,00;188.640,00;192.260,00;No;53,00;265,00;47;53,00;265,00;0,00;0,00;0,00;22h14min;922,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:42:00;8min;1;1;V;188.215,00;188.415,00;192.260,00;Sim;40,00;200,00;48;40,00;200,00;0,00;0,00;0,00;1d2h;962,00 +WINJ26;29/01/2026 16:28:00;29/01/2026 16:34:00;6min;1;1;V;188.195,00;188.345,00;192.260,00;No;30,00;150,00;49;30,00;150,00;0,00;0,00;0,00;1h54min;992,00 +WINJ26;30/01/2026 16:26:00;30/01/2026 16:32:00;6min;1;1;V;186.000,00;186.400,00;192.260,00;No;80,00;400,00;50;80,00;400,00;0,00;0,00;0,00;23h58min;1.072,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:52:00;26min;1;1;V;186.660,00;186.370,00;192.260,00;No;-58,00;-290,00;51;-58,00;-290,00;0,00;0,00;0,00;2d17h;1.014,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.260,00;Sim;40,00;200,00;52;40,00;200,00;0,00;0,00;0,00;2h6min;1.054,00 +WINJ26;02/02/2026 15:10:00;02/02/2026 15:36:00;26min;1;1;C;186.820,00;186.735,00;192.260,00;No;-17,00;-85,00;53;-17,00;-85,00;0,00;0,00;0,00;3h38min;1.037,00 +WINJ26;03/02/2026 12:18:00;03/02/2026 12:28:00;10min;1;1;C;190.980,00;191.170,00;192.260,00;No;38,00;190,00;54;38,00;190,00;0,00;0,00;0,00;21h8min;1.075,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 14:46:00;26min;1;1;C;190.335,00;189.655,00;192.260,00;Sim;-136,00;-680,00;55;-136,00;-680,00;0,00;0,00;0,00;2h2min;939,00 +WINJ26;04/02/2026 12:28:00;04/02/2026 12:32:00;4min;1;1;V;187.745,00;187.850,00;192.260,00;Sim;21,00;105,00;56;21,00;105,00;0,00;0,00;0,00;22h8min;960,00 +WINJ26;04/02/2026 17:44:00;04/02/2026 17:52:00;8min;1;1;V;185.760,00;185.940,00;192.260,00;No;36,00;180,00;57;36,00;180,00;0,00;0,00;0,00;5h16min;996,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.260,00;Sim;-3,00;-15,00;58;-3,00;-15,00;0,00;0,00;0,00;15h22min;993,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.260,00;Sim;41,00;205,00;59;41,00;205,00;0,00;0,00;0,00;3h26min;1.034,00 +WINJ26;05/02/2026 14:16:00;05/02/2026 14:20:00;4min;1;1;C;187.030,00;187.260,00;192.260,00;No;46,00;230,00;60;46,00;230,00;0,00;0,00;0,00;1h44min;1.080,00 +WINJ26;05/02/2026 15:50:00;05/02/2026 16:00:00;10min;1;1;C;187.385,00;187.450,00;192.260,00;No;13,00;65,00;61;13,00;65,00;0,00;0,00;0,00;1h34min;1.093,00 +WINJ26;09/02/2026 10:26:00;09/02/2026 10:32:00;6min;1;1;C;187.640,00;187.680,00;192.260,00;No;8,00;40,00;62;8,00;40,00;0,00;0,00;0,00;3d18h;1.101,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:12:00;2min;1;1;C;187.925,00;187.965,00;192.260,00;No;8,00;40,00;63;8,00;40,00;0,00;0,00;0,00;2h44min;1.109,00 +WINJ26;10/02/2026 09:20:00;10/02/2026 09:22:00;2min;1;1;C;189.870,00;190.075,00;192.260,00;No;41,00;205,00;64;41,00;205,00;0,00;0,00;0,00;20h10min;1.150,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 09:52:00;4min;1;1;C;189.660,00;189.775,00;192.260,00;Sim;23,00;115,00;65;23,00;115,00;0,00;0,00;0,00;28min;1.173,00 +WINJ26;10/02/2026 13:46:00;10/02/2026 14:10:00;24min;1;1;C;190.440,00;190.435,00;192.260,00;No;-1,00;-5,00;66;-1,00;-5,00;0,00;0,00;0,00;3h58min;1.172,00 +WINJ26;10/02/2026 17:52:00;10/02/2026 18:16:00;24min;1;1;C;190.140,00;190.145,00;192.260,00;Sim;1,00;5,00;67;1,00;5,00;0,00;0,00;0,00;4h6min;1.173,00 +WINJ26;11/02/2026 10:18:00;11/02/2026 10:24:00;6min;1;1;C;191.825,00;192.165,00;192.260,00;No;68,00;340,00;68;68,00;340,00;0,00;0,00;0,00;16h26min;1.241,00 +WINJ26;11/02/2026 15:40:00;11/02/2026 16:04:00;24min;1;1;C;193.780,00;193.870,00;192.260,00;No;18,00;90,00;69;18,00;90,00;0,00;0,00;0,00;5h22min;1.259,00 +WINJ26;11/02/2026 17:02:00;11/02/2026 17:28:00;26min;1;1;C;194.050,00;194.025,00;192.260,00;No;-5,00;-25,00;70;-5,00;-25,00;0,00;0,00;0,00;1h22min;1.254,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.260,00;Sim;-16,00;-80,00;71;-16,00;-80,00;0,00;0,00;0,00;16h2min;1.238,00 +WINJ26;12/02/2026 17:10:00;12/02/2026 17:12:00;2min;1;1;V;192.035,00;192.305,00;192.260,00;No;54,00;270,00;72;54,00;270,00;0,00;0,00;0,00;8h6min;1.292,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.260,00;No;68,00;340,00;73;68,00;340,00;0,00;0,00;0,00;19h34min;1.360,00 +WINJ26;13/02/2026 13:34:00;13/02/2026 14:00:00;26min;1;1;V;189.405,00;189.300,00;192.260,00;Sim;-21,00;-105,00;74;-21,00;-105,00;0,00;0,00;0,00;50min;1.339,00 +WINJ26;18/02/2026 17:06:00;18/02/2026 17:14:00;8min;1;1;V;189.055,00;189.270,00;192.260,00;No;43,00;215,00;75;43,00;215,00;0,00;0,00;0,00;5d3h;1.382,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.260,00;Sim;36,00;180,00;76;36,00;180,00;0,00;0,00;0,00;20h48min;1.418,00 +WINJ26;19/02/2026 15:06:00;19/02/2026 15:14:00;8min;1;1;C;192.055,00;192.155,00;192.260,00;Sim;20,00;100,00;77;20,00;100,00;0,00;0,00;0,00;1h12min;1.438,00 +WINJ26;19/02/2026 16:52:00;19/02/2026 17:02:00;10min;1;1;C;191.670,00;191.780,00;192.260,00;Sim;22,00;110,00;78;22,00;110,00;0,00;0,00;0,00;1h46min;1.460,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:28:00;8min;1;1;C;191.630,00;191.690,00;192.260,00;Sim;12,00;60,00;79;12,00;60,00;0,00;0,00;0,00;28min;1.472,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:04:00;26min;1;1;V;191.880,00;190.995,00;192.260,00;Sim;-177,00;-885,00;80;-177,00;-885,00;0,00;0,00;0,00;18h18min;1.295,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.260,00;No;35,00;175,00;81;35,00;175,00;0,00;0,00;0,00;2h56min;1.330,00 +WINJ26;23/02/2026 12:18:00;23/02/2026 12:44:00;26min;1;1;C;193.595,00;193.000,00;192.260,00;No;-119,00;-595,00;82;-119,00;-595,00;0,00;0,00;0,00;2d21h;1.211,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:26:00;26min;1;1;V;192.855,00;192.665,00;192.260,00;Sim;-38,00;-190,00;83;-38,00;-190,00;0,00;0,00;0,00;2h42min;1.173,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.260,00;Sim;6,00;30,00;84;6,00;30,00;0,00;0,00;0,00;34min;1.179,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:28:00;26min;1;1;C;195.005,00;194.955,00;192.260,00;No;-10,00;-50,00;85;-10,00;-50,00;0,00;0,00;0,00;23h28min;1.169,00 +WINJ26;24/02/2026 16:12:00;24/02/2026 16:30:00;18min;1;1;C;194.780,00;194.815,00;192.260,00;Sim;7,00;35,00;86;7,00;35,00;0,00;0,00;0,00;1h10min;1.176,00 +WINJ26;25/02/2026 10:18:00;25/02/2026 10:44:00;26min;1;1;C;195.920,00;195.165,00;192.260,00;No;-151,00;-755,00;87;-151,00;-755,00;0,00;0,00;0,00;18h6min;1.025,00 +WINJ26;25/02/2026 17:38:00;25/02/2026 18:04:00;26min;1;1;V;194.570,00;194.325,00;192.260,00;Sim;-49,00;-245,00;88;-49,00;-245,00;0,00;0,00;0,00;7h20min;976,00 +WINJ26;26/02/2026 13:02:00;26/02/2026 13:28:00;26min;1;1;V;193.955,00;193.280,00;192.260,00;No;-135,00;-675,00;89;-135,00;-675,00;0,00;0,00;0,00;19h24min;841,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.260,00;No;-5,00;-25,00;90;-5,00;-25,00;0,00;0,00;0,00;22h16min;836,00 +WINJ26;27/02/2026 15:14:00;27/02/2026 15:22:00;8min;1;1;V;192.620,00;192.685,00;192.260,00;No;13,00;65,00;91;13,00;65,00;0,00;0,00;0,00;3h56min;849,00 +WINJ26;27/02/2026 16:04:00;27/02/2026 16:10:00;6min;1;1;V;192.660,00;192.845,00;192.260,00;Sim;37,00;185,00;92;37,00;185,00;0,00;0,00;0,00;50min;886,00 +WINJ26;02/03/2026 10:28:00;02/03/2026 10:44:00;16min;1;1;V;190.760,00;190.795,00;192.260,00;No;7,00;35,00;93;7,00;35,00;0,00;0,00;0,00;2d18h;893,00 +WINJ26;02/03/2026 17:18:00;02/03/2026 17:38:00;20min;1;1;C;192.305,00;192.310,00;192.260,00;Sim;1,00;5,00;94;1,00;5,00;0,00;0,00;0,00;6h50min;894,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv new file mode 100644 index 0000000..7db94bc --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv @@ -0,0 +1,43 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 17:25:00;26/08/2025 18:20:00;55min;1;1;C;148.400,00;149.050,00;192.255,00;No;130,00;650,00;1;130,00;650,00;0,00;0,00;0,00; - ;130,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.255,00;No;-50,00;-250,00;2;-50,00;-250,00;0,00;0,00;0,00;1m24d16h;80,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.255,00;No;17,00;85,00;3;17,00;85,00;0,00;0,00;0,00;9d1h;97,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.255,00;No;-4,00;-20,00;4;-4,00;-20,00;0,00;0,00;0,00;4d23h;93,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:25:00;25min;1;1;C;165.750,00;165.800,00;192.255,00;No;10,00;50,00;5;10,00;50,00;0,00;0,00;0,00;8d6h;103,00 +WINJ26;14/11/2025 09:15:00;14/11/2025 09:40:00;25min;1;1;C;164.780,00;165.050,00;192.255,00;Sim;54,00;270,00;6;54,00;270,00;0,00;0,00;0,00;1d16h;157,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.255,00;Sim;60,00;300,00;7;60,00;300,00;0,00;0,00;0,00;4d1h;217,00 +WINJ26;09/12/2025 13:45:00;09/12/2025 18:15:00;4h30min;1;1;V;164.700,00;164.500,00;192.255,00;No;-40,00;-200,00;8;-40,00;-200,00;0,00;0,00;0,00;21d3h;177,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.255,00;Sim;171,00;855,00;9;171,00;855,00;0,00;0,00;0,00;19h50min;348,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 16:05:00;1h5min;1;1;C;165.135,00;164.990,00;192.255,00;No;-29,00;-145,00;10;-29,00;-145,00;0,00;0,00;0,00;9d5h;319,00 +WINJ26;29/12/2025 10:25:00;29/12/2025 11:30:00;1h5min;1;1;C;166.635,00;166.510,00;192.255,00;No;-25,00;-125,00;11;-25,00;-125,00;0,00;0,00;0,00;9d19h;294,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.255,00;No;-65,00;-325,00;12;-65,00;-325,00;0,00;0,00;0,00;3d22h;229,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.255,00;Sim;39,00;195,00;13;39,00;195,00;0,00;0,00;0,00;3d;268,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.255,00;Sim;21,00;105,00;14;21,00;105,00;0,00;0,00;0,00;7h25min;289,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:45:00;1h5min;1;1;C;168.780,00;167.655,00;192.255,00;No;-225,00;-1.125,00;15;-225,00;-1.125,00;0,00;0,00;0,00;1d17h;64,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:50:00;10min;1;1;V;167.665,00;167.855,00;192.255,00;Sim;38,00;190,00;16;38,00;190,00;0,00;0,00;0,00;1d;102,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.255,00;Sim;10,00;50,00;17;10,00;50,00;0,00;0,00;0,00;22h50min;112,00 +WINJ26;09/01/2026 16:45:00;09/01/2026 17:50:00;1h5min;1;1;C;169.030,00;168.820,00;192.255,00;No;-42,00;-210,00;18;-42,00;-210,00;0,00;0,00;0,00;7h15min;70,00 +WINJ26;16/01/2026 10:30:00;16/01/2026 11:35:00;1h5min;1;1;C;170.625,00;169.550,00;192.255,00;No;-215,00;-1.075,00;19;-215,00;-1.075,00;0,00;0,00;0,00;6d17h;-145,00 +WINJ26;20/01/2026 15:15:00;20/01/2026 15:40:00;25min;1;1;C;170.885,00;170.940,00;192.255,00;No;11,00;55,00;20;11,00;55,00;0,00;0,00;0,00;4d4h;-134,00 +WINJ26;20/01/2026 16:10:00;20/01/2026 16:40:00;30min;1;1;C;170.650,00;170.725,00;192.255,00;Sim;15,00;75,00;21;15,00;75,00;0,00;0,00;0,00;55min;-119,00 +WINJ26;23/01/2026 15:15:00;23/01/2026 15:25:00;10min;1;1;C;181.845,00;182.200,00;192.255,00;No;71,00;355,00;22;71,00;355,00;0,00;0,00;0,00;2d23h;-48,00 +WINJ26;26/01/2026 11:30:00;26/01/2026 11:35:00;5min;1;1;C;183.185,00;183.955,00;192.255,00;No;154,00;770,00;23;154,00;770,00;0,00;0,00;0,00;2d20h;106,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:30:00;5min;1;1;C;183.140,00;183.430,00;192.255,00;Sim;58,00;290,00;24;58,00;290,00;0,00;0,00;0,00;4h55min;164,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.255,00;No;-22,00;-110,00;25;-22,00;-110,00;0,00;0,00;0,00;22h55min;142,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.255,00;No;47,00;235,00;26;47,00;235,00;0,00;0,00;0,00;1d;189,00 +WINJ26;04/02/2026 09:15:00;04/02/2026 10:20:00;1h5min;1;1;C;189.705,00;188.850,00;192.255,00;No;-171,00;-855,00;27;-171,00;-855,00;0,00;0,00;0,00;6d17h;18,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.255,00;Sim;36,00;180,00;28;36,00;180,00;0,00;0,00;0,00;1d;54,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 11:35:00;1h5min;1;1;V;187.115,00;186.885,00;192.255,00;Sim;-46,00;-230,00;29;-46,00;-230,00;0,00;0,00;0,00;50min;8,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 18:05:00;1h5min;1;1;C;187.375,00;186.645,00;192.255,00;Sim;-146,00;-730,00;30;-146,00;-730,00;0,00;0,00;0,00;6h30min;-138,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.255,00;No;41,00;205,00;31;41,00;205,00;0,00;0,00;0,00;4d23h;-97,00 +WINJ26;11/02/2026 15:50:00;11/02/2026 16:10:00;20min;1;1;C;193.855,00;194.050,00;192.255,00;No;39,00;195,00;32;39,00;195,00;0,00;0,00;0,00;23h40min;-58,00 +WINJ26;13/02/2026 14:00:00;13/02/2026 15:05:00;1h5min;1;1;V;189.870,00;189.405,00;192.255,00;Sim;-93,00;-465,00;33;-93,00;-465,00;0,00;0,00;0,00;1d22h;-151,00 +WINJ26;20/02/2026 14:35:00;20/02/2026 14:50:00;15min;1;1;C;191.665,00;192.135,00;192.255,00;Sim;94,00;470,00;34;94,00;470,00;0,00;0,00;0,00;7d;-57,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.255,00;No;48,00;240,00;35;48,00;240,00;0,00;0,00;0,00;2d19h;-9,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 12:50:00;50min;1;1;V;191.220,00;191.375,00;192.255,00;Sim;31,00;155,00;36;31,00;155,00;0,00;0,00;0,00;7d1h;22,00 +WINJ26;02/03/2026 17:20:00; - ; - ;1;0;C;192.225,00;192.275,00;192.275,00;Sim;10,00;50,00;37;10,00;50,00;0,00;0,00;0,00;5h20min;32,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv new file mode 100644 index 0000000..25903ad --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv @@ -0,0 +1,22 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:00:00;26/08/2025 18:15:00;15min;1;1;C;149.000,00;149.050,00;192.285,00;No;10,00;50,00;1;10,00;50,00;0,00;0,00;0,00; - ;10,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.285,00;No;17,00;85,00;2;17,00;85,00;0,00;0,00;0,00;2m2d16h;27,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:15:00;15min;1;1;C;165.750,00;165.800,00;192.285,00;No;10,00;50,00;3;10,00;50,00;0,00;0,00;0,00;13d6h;37,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 11:00:00;30min;1;1;C;164.740,00;164.500,00;192.285,00;Sim;-48,00;-240,00;4;-48,00;-240,00;0,00;0,00;0,00;5d17h;-11,00 +WINJ26;09/12/2025 17:30:00;10/12/2025 09:00:00;15h30min;1;1;V;165.750,00;165.225,00;192.285,00;No;-105,00;-525,00;5;-105,00;-525,00;0,00;0,00;0,00;21d7h;-116,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.285,00;No;36,00;180,00;6;36,00;180,00;0,00;0,00;0,00;16h45min;-80,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.285,00;No;8,00;40,00;7;8,00;40,00;0,00;0,00;0,00;16d;-72,00 +WINJ26;29/12/2025 11:30:00;29/12/2025 14:45:00;3h15min;1;1;C;166.510,00;166.380,00;192.285,00;No;-26,00;-130,00;8;-26,00;-130,00;0,00;0,00;0,00;3d1h;-98,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.285,00;No;-21,00;-105,00;9;-21,00;-105,00;0,00;0,00;0,00;3d21h;-119,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 16:45:00;3h15min;1;1;C;167.830,00;167.630,00;192.285,00;No;-40,00;-200,00;10;-40,00;-200,00;0,00;0,00;0,00;5d4h;-159,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.285,00;No;-87,00;-435,00;11;-87,00;-435,00;0,00;0,00;0,00;4d19h;-246,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 09:00:00;2d17h;1;1;C;186.180,00;184.655,00;192.285,00;No;-305,00;-1.525,00;12;-305,00;-1.525,00;0,00;0,00;0,00;18d6h;-551,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 17:45:00;2h;1;1;C;191.565,00;192.210,00;192.285,00;No;129,00;645,00;13;129,00;645,00;0,00;0,00;0,00;12d23h;-422,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:00:00;30min;1;1;V;189.975,00;190.075,00;192.285,00;Sim;20,00;100,00;14;20,00;100,00;0,00;0,00;0,00;5d21h;-402,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.285,00;No;-36,00;-180,00;15;-36,00;-180,00;0,00;0,00;0,00;20h45min;-438,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.285,00;Sim;42,00;210,00;16;42,00;210,00;0,00;0,00;0,00;1d1h;-396,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv new file mode 100644 index 0000000..c51aad6 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv @@ -0,0 +1,18 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.295,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.295,00;No;32,00;160,00;2;32,00;160,00;0,00;0,00;0,00;2m21d1h;592,00 +WINJ26;21/11/2025 11:00:00;24/11/2025 09:30:00;2d22h;1;1;C;161.780,00;162.615,00;192.295,00;Sim;167,00;835,00;3;167,00;835,00;0,00;0,00;0,00;3d;759,00 +WINJ26;19/12/2025 13:00:00;19/12/2025 16:00:00;3h;1;1;V;165.000,00;165.465,00;192.295,00;No;93,00;465,00;4;93,00;465,00;0,00;0,00;0,00;1m2h;852,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.295,00;No;85,00;425,00;5;85,00;425,00;0,00;0,00;0,00;14d3h;937,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 10:30:00;18h30min;1;1;C;167.710,00;167.945,00;192.295,00;No;47,00;235,00;6;47,00;235,00;0,00;0,00;0,00;4d23h;984,00 +WINJ26;16/01/2026 12:00:00;19/01/2026 09:00:00;2d21h;1;1;C;169.830,00;169.140,00;192.295,00;No;-138,00;-690,00;7;-138,00;-690,00;0,00;0,00;0,00;8d20h;846,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.295,00;Sim;302,00;1.510,00;8;302,00;1.510,00;0,00;0,00;0,00;3d22h;1.148,00 +WINJ26;29/01/2026 13:30:00;30/01/2026 10:30:00;21h;1;1;C;187.690,00;187.965,00;192.295,00;No;55,00;275,00;9;55,00;275,00;0,00;0,00;0,00;9d3h;1.203,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 10:00:00;2d18h;1;1;C;186.180,00;186.765,00;192.295,00;Sim;117,00;585,00;10;117,00;585,00;0,00;0,00;0,00;1d2h;1.320,00 +WINJ26;12/02/2026 16:00:00;13/02/2026 13:00:00;21h;1;1;C;191.680,00;188.720,00;192.295,00;No;-592,00;-2.960,00;11;-592,00;-2.960,00;0,00;0,00;0,00;13d;728,00 +WINJ26;26/02/2026 13:00:00;26/02/2026 16:00:00;3h;1;1;C;193.370,00;193.800,00;192.295,00;No;86,00;430,00;12;86,00;430,00;0,00;0,00;0,00;13d21h;814,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv new file mode 100644 index 0000000..157b266 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv @@ -0,0 +1,12 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.295,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 14:00:00;1d4h;1;1;C;151.100,00;151.180,00;192.295,00;No;16,00;80,00;2;16,00;80,00;0,00;0,00;0,00;1m16d1h;576,00 +WINJ26;18/11/2025 11:00:00;21/11/2025 11:00:00;3d;1;1;C;164.500,00;161.780,00;192.295,00;No;-544,00;-2.720,00;3;-544,00;-2.720,00;0,00;0,00;0,00;1m5d1h;32,00 +WINJ26;08/12/2025 10:00:00;09/12/2025 14:00:00;1d4h;1;1;C;165.600,00;164.600,00;192.295,00;No;-200,00;-1.000,00;4;-200,00;-1.000,00;0,00;0,00;0,00;19d23h;-168,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.295,00;No;212,00;1.060,00;5;212,00;1.060,00;0,00;0,00;0,00;2m5d4h;44,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.295,00;No;133,00;665,00;6;133,00;665,00;0,00;0,00;0,00;16d22h;177,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv new file mode 100644 index 0000000..ee5087c --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv @@ -0,0 +1,98 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:42:00;14min;1;1;C;165.120,00;165.035,00;192.350,00;No;-17,00;-85,00;1;-17,00;-85,00;0,00;0,00;0,00; - ;-17,00 +WINJ26;22/12/2025 09:12:00;22/12/2025 09:20:00;8min;1;1;V;164.925,00;165.200,00;192.350,00;No;55,00;275,00;2;55,00;275,00;0,00;0,00;0,00;2d17h;38,00 +WINJ26;22/12/2025 10:16:00;22/12/2025 10:30:00;14min;1;1;C;164.425,00;164.400,00;192.350,00;Sim;-5,00;-25,00;3;-5,00;-25,00;0,00;0,00;0,00;1h4min;33,00 +WINJ26;23/12/2025 09:24:00;23/12/2025 09:40:00;16min;1;1;V;165.015,00;164.900,00;192.350,00;No;-23,00;-115,00;4;-23,00;-115,00;0,00;0,00;0,00;23h8min;10,00 +WINJ26;23/12/2025 11:26:00;23/12/2025 11:34:00;8min;1;1;C;165.355,00;165.550,00;192.350,00;No;39,00;195,00;5;39,00;195,00;0,00;0,00;0,00;2h2min;49,00 +WINJ26;26/12/2025 09:10:00;26/12/2025 09:24:00;14min;1;1;C;165.870,00;165.825,00;192.350,00;No;-9,00;-45,00;6;-9,00;-45,00;0,00;0,00;0,00;2d21h;40,00 +WINJ26;26/12/2025 11:44:00;26/12/2025 11:56:00;12min;1;1;V;165.880,00;166.015,00;192.350,00;Sim;27,00;135,00;7;27,00;135,00;0,00;0,00;0,00;2h34min;67,00 +WINJ26;29/12/2025 09:02:00;29/12/2025 09:16:00;14min;1;1;V;167.000,00;167.230,00;192.350,00;Sim;46,00;230,00;8;46,00;230,00;0,00;0,00;0,00;2d21h;113,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.350,00;No;5,00;25,00;9;5,00;25,00;0,00;0,00;0,00;5h48min;118,00 +WINJ26;29/12/2025 15:32:00;29/12/2025 15:46:00;14min;1;1;C;166.120,00;165.870,00;192.350,00;No;-50,00;-250,00;10;-50,00;-250,00;0,00;0,00;0,00;42min;68,00 +WINJ26;30/12/2025 09:44:00;30/12/2025 09:58:00;14min;1;1;V;167.700,00;167.635,00;192.350,00;Sim;-13,00;-65,00;11;-13,00;-65,00;0,00;0,00;0,00;18h12min;55,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.350,00;No;26,00;130,00;12;26,00;130,00;0,00;0,00;0,00;1h20min;81,00 +WINJ26;02/01/2026 09:08:00;02/01/2026 09:22:00;14min;1;1;V;167.730,00;167.740,00;192.350,00;Sim;2,00;10,00;13;2,00;10,00;0,00;0,00;0,00;2d22h;83,00 +WINJ26;02/01/2026 10:34:00;02/01/2026 10:48:00;14min;1;1;C;167.515,00;167.425,00;192.350,00;No;-18,00;-90,00;14;-18,00;-90,00;0,00;0,00;0,00;1h26min;65,00 +WINJ26;05/01/2026 09:42:00;05/01/2026 09:46:00;4min;1;1;V;166.465,00;166.675,00;192.350,00;No;42,00;210,00;15;42,00;210,00;0,00;0,00;0,00;2d23h;107,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:24:00;14min;1;1;C;167.545,00;167.515,00;192.350,00;No;-6,00;-30,00;16;-6,00;-30,00;0,00;0,00;0,00;7h28min;101,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 09:44:00;14min;1;1;V;168.700,00;168.485,00;192.350,00;Sim;-43,00;-215,00;17;-43,00;-215,00;0,00;0,00;0,00;16h20min;58,00 +WINJ26;06/01/2026 11:36:00;06/01/2026 11:38:00;2min;1;1;C;169.290,00;169.445,00;192.350,00;No;31,00;155,00;18;31,00;155,00;0,00;0,00;0,00;2h6min;89,00 +WINJ26;07/01/2026 09:04:00;07/01/2026 09:06:00;2min;1;1;V;169.030,00;169.100,00;192.350,00;Sim;14,00;70,00;19;14,00;70,00;0,00;0,00;0,00;21h28min;103,00 +WINJ26;07/01/2026 10:28:00;07/01/2026 10:38:00;10min;1;1;C;168.510,00;168.765,00;192.350,00;Sim;51,00;255,00;20;51,00;255,00;0,00;0,00;0,00;1h24min;154,00 +WINJ26;08/01/2026 11:46:00;08/01/2026 11:50:00;4min;1;1;V;167.880,00;167.960,00;192.350,00;No;16,00;80,00;21;16,00;80,00;0,00;0,00;0,00;1d1h;170,00 +WINJ26;09/01/2026 09:04:00;09/01/2026 09:12:00;8min;1;1;V;168.140,00;168.305,00;192.350,00;Sim;33,00;165,00;22;33,00;165,00;0,00;0,00;0,00;21h18min;203,00 +WINJ26;09/01/2026 09:26:00;09/01/2026 09:40:00;14min;1;1;C;168.045,00;167.845,00;192.350,00;Sim;-40,00;-200,00;23;-40,00;-200,00;0,00;0,00;0,00;22min;163,00 +WINJ26;12/01/2026 10:14:00;12/01/2026 10:20:00;6min;1;1;C;168.305,00;168.475,00;192.350,00;No;34,00;170,00;24;34,00;170,00;0,00;0,00;0,00;3d;197,00 +WINJ26;12/01/2026 11:44:00;12/01/2026 11:58:00;14min;1;1;V;168.550,00;168.525,00;192.350,00;Sim;-5,00;-25,00;25;-5,00;-25,00;0,00;0,00;0,00;1h30min;192,00 +WINJ26;13/01/2026 09:06:00;13/01/2026 09:08:00;2min;1;1;V;168.400,00;168.695,00;192.350,00;Sim;59,00;295,00;26;59,00;295,00;0,00;0,00;0,00;21h22min;251,00 +WINJ26;13/01/2026 09:56:00;13/01/2026 10:10:00;14min;1;1;C;167.785,00;167.400,00;192.350,00;Sim;-77,00;-385,00;27;-77,00;-385,00;0,00;0,00;0,00;50min;174,00 +WINJ26;14/01/2026 09:40:00;14/01/2026 09:54:00;14min;1;1;V;167.980,00;168.050,00;192.350,00;No;14,00;70,00;28;14,00;70,00;0,00;0,00;0,00;23h44min;188,00 +WINJ26;15/01/2026 09:02:00;15/01/2026 09:04:00;2min;1;1;V;170.250,00;170.355,00;192.350,00;Sim;21,00;105,00;29;21,00;105,00;0,00;0,00;0,00;23h22min;209,00 +WINJ26;15/01/2026 10:06:00;15/01/2026 10:08:00;2min;1;1;V;170.600,00;170.840,00;192.350,00;Sim;48,00;240,00;30;48,00;240,00;0,00;0,00;0,00;1h4min;257,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 11:58:00;14min;1;1;C;170.070,00;169.950,00;192.350,00;No;-24,00;-120,00;31;-24,00;-120,00;0,00;0,00;0,00;1h38min;233,00 +WINJ26;16/01/2026 09:20:00;16/01/2026 09:28:00;8min;1;1;V;171.005,00;171.105,00;192.350,00;Sim;20,00;100,00;32;20,00;100,00;0,00;0,00;0,00;21h36min;253,00 +WINJ26;16/01/2026 10:12:00;16/01/2026 10:28:00;16min;1;1;C;170.700,00;170.660,00;192.350,00;No;-8,00;-40,00;33;-8,00;-40,00;0,00;0,00;0,00;52min;245,00 +WINJ26;19/01/2026 10:30:00;19/01/2026 10:38:00;8min;1;1;C;169.420,00;169.615,00;192.350,00;Sim;39,00;195,00;34;39,00;195,00;0,00;0,00;0,00;3d;284,00 +WINJ26;19/01/2026 13:08:00;19/01/2026 13:22:00;14min;1;1;V;169.960,00;169.880,00;192.350,00;No;-16,00;-80,00;35;-16,00;-80,00;0,00;0,00;0,00;2h38min;268,00 +WINJ26;20/01/2026 09:36:00;20/01/2026 09:46:00;10min;1;1;C;168.420,00;168.535,00;192.350,00;Sim;23,00;115,00;36;23,00;115,00;0,00;0,00;0,00;20h28min;291,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.350,00;No;48,00;240,00;37;48,00;240,00;0,00;0,00;0,00;50min;339,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.350,00;No;-6,00;-30,00;38;-6,00;-30,00;0,00;0,00;0,00;22h36min;333,00 +WINJ26;21/01/2026 09:34:00;21/01/2026 09:48:00;14min;1;1;V;172.730,00;172.500,00;192.350,00;Sim;-46,00;-230,00;39;-46,00;-230,00;0,00;0,00;0,00;32min;287,00 +WINJ26;22/01/2026 09:40:00;22/01/2026 09:54:00;14min;1;1;V;177.890,00;177.700,00;192.350,00;Sim;-38,00;-190,00;40;-38,00;-190,00;0,00;0,00;0,00;1d;249,00 +WINJ26;22/01/2026 15:34:00;22/01/2026 15:50:00;16min;1;1;C;181.375,00;181.100,00;192.350,00;No;-55,00;-275,00;41;-55,00;-275,00;0,00;0,00;0,00;5h54min;194,00 +WINJ26;23/01/2026 09:16:00;23/01/2026 09:18:00;2min;1;1;V;181.370,00;181.800,00;192.350,00;Sim;86,00;430,00;42;86,00;430,00;0,00;0,00;0,00;17h42min;280,00 +WINJ26;23/01/2026 11:26:00;23/01/2026 11:28:00;2min;1;1;C;181.030,00;181.325,00;192.350,00;Sim;59,00;295,00;43;59,00;295,00;0,00;0,00;0,00;2h10min;339,00 +WINJ26;26/01/2026 11:06:00;26/01/2026 11:20:00;14min;1;1;C;183.130,00;182.990,00;192.350,00;No;-28,00;-140,00;44;-28,00;-140,00;0,00;0,00;0,00;2d23h;311,00 +WINJ26;26/01/2026 11:34:00;26/01/2026 11:48:00;14min;1;1;V;183.390,00;184.025,00;192.350,00;Sim;127,00;635,00;45;127,00;635,00;0,00;0,00;0,00;28min;438,00 +WINJ26;27/01/2026 09:22:00;27/01/2026 09:38:00;16min;1;1;V;186.055,00;185.210,00;192.350,00;Sim;-169,00;-845,00;46;-169,00;-845,00;0,00;0,00;0,00;21h48min;269,00 +WINJ26;27/01/2026 14:20:00;27/01/2026 14:34:00;14min;1;1;C;187.835,00;187.750,00;192.350,00;No;-17,00;-85,00;47;-17,00;-85,00;0,00;0,00;0,00;4h58min;252,00 +WINJ26;28/01/2026 09:04:00;28/01/2026 09:18:00;14min;1;1;V;187.550,00;187.440,00;192.350,00;Sim;-22,00;-110,00;48;-22,00;-110,00;0,00;0,00;0,00;18h44min;230,00 +WINJ26;28/01/2026 12:34:00;28/01/2026 12:48:00;14min;1;1;C;188.375,00;188.640,00;192.350,00;No;53,00;265,00;49;53,00;265,00;0,00;0,00;0,00;3h30min;283,00 +WINJ26;29/01/2026 12:04:00;29/01/2026 12:18:00;14min;1;1;C;189.130,00;188.325,00;192.350,00;No;-161,00;-805,00;50;-161,00;-805,00;0,00;0,00;0,00;23h30min;122,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:42:00;8min;1;1;V;188.215,00;188.415,00;192.350,00;Sim;40,00;200,00;51;40,00;200,00;0,00;0,00;0,00;2h30min;162,00 +WINJ26;30/01/2026 09:14:00;30/01/2026 09:18:00;4min;1;1;C;187.180,00;187.520,00;192.350,00;Sim;68,00;340,00;52;68,00;340,00;0,00;0,00;0,00;18h40min;230,00 +WINJ26;30/01/2026 16:26:00;30/01/2026 16:32:00;6min;1;1;V;186.000,00;186.400,00;192.350,00;No;80,00;400,00;53;80,00;400,00;0,00;0,00;0,00;7h12min;310,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:40:00;14min;1;1;V;186.440,00;186.370,00;192.350,00;No;-14,00;-70,00;54;-14,00;-70,00;0,00;0,00;0,00;2d17h;296,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.350,00;Sim;40,00;200,00;55;40,00;200,00;0,00;0,00;0,00;2h6min;336,00 +WINJ26;03/02/2026 09:12:00;03/02/2026 09:26:00;14min;1;1;V;189.085,00;188.515,00;192.350,00;Sim;-114,00;-570,00;56;-114,00;-570,00;0,00;0,00;0,00;21h40min;222,00 +WINJ26;03/02/2026 12:18:00;03/02/2026 12:28:00;10min;1;1;C;190.980,00;191.170,00;192.350,00;No;38,00;190,00;57;38,00;190,00;0,00;0,00;0,00;3h6min;260,00 +WINJ26;04/02/2026 09:04:00;04/02/2026 09:06:00;2min;1;1;V;189.785,00;190.090,00;192.350,00;Sim;61,00;305,00;58;61,00;305,00;0,00;0,00;0,00;20h46min;321,00 +WINJ26;04/02/2026 09:36:00;04/02/2026 09:48:00;12min;1;1;C;189.165,00;189.350,00;192.350,00;Sim;37,00;185,00;59;37,00;185,00;0,00;0,00;0,00;32min;358,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.350,00;No;-3,00;-15,00;60;-3,00;-15,00;0,00;0,00;0,00;23h30min;355,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.350,00;Sim;41,00;205,00;61;41,00;205,00;0,00;0,00;0,00;3h26min;396,00 +WINJ26;06/02/2026 09:08:00;06/02/2026 09:20:00;12min;1;1;V;186.900,00;187.700,00;192.350,00;Sim;160,00;800,00;62;160,00;800,00;0,00;0,00;0,00;20h36min;556,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:30:00;14min;1;1;C;186.525,00;186.340,00;192.350,00;Sim;-37,00;-185,00;63;-37,00;-185,00;0,00;0,00;0,00;6h8min;519,00 +WINJ26;09/02/2026 09:08:00;09/02/2026 09:22:00;14min;1;1;V;187.590,00;187.495,00;192.350,00;No;-19,00;-95,00;64;-19,00;-95,00;0,00;0,00;0,00;2d17h;500,00 +WINJ26;09/02/2026 10:26:00;09/02/2026 10:32:00;6min;1;1;C;187.640,00;187.680,00;192.350,00;No;8,00;40,00;65;8,00;40,00;0,00;0,00;0,00;1h18min;508,00 +WINJ26;10/02/2026 09:20:00;10/02/2026 09:22:00;2min;1;1;C;189.870,00;190.075,00;192.350,00;No;41,00;205,00;66;41,00;205,00;0,00;0,00;0,00;22h54min;549,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 12:52:00;14min;1;1;V;190.845,00;190.860,00;192.350,00;Sim;3,00;15,00;67;3,00;15,00;0,00;0,00;0,00;3h18min;552,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 09:44:00;14min;1;1;V;192.115,00;191.540,00;192.350,00;Sim;-115,00;-575,00;68;-115,00;-575,00;0,00;0,00;0,00;20h52min;437,00 +WINJ26;11/02/2026 10:18:00;11/02/2026 10:24:00;6min;1;1;C;191.825,00;192.165,00;192.350,00;No;68,00;340,00;69;68,00;340,00;0,00;0,00;0,00;48min;505,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.350,00;Sim;-16,00;-80,00;70;-16,00;-80,00;0,00;0,00;0,00;22h46min;489,00 +WINJ26;12/02/2026 09:54:00;12/02/2026 10:02:00;8min;1;1;C;192.885,00;192.980,00;192.350,00;No;19,00;95,00;71;19,00;95,00;0,00;0,00;0,00;50min;508,00 +WINJ26;13/02/2026 09:42:00;13/02/2026 09:46:00;4min;1;1;C;189.325,00;189.585,00;192.350,00;Sim;52,00;260,00;72;52,00;260,00;0,00;0,00;0,00;23h48min;560,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.350,00;No;68,00;340,00;73;68,00;340,00;0,00;0,00;0,00;3h2min;628,00 +WINJ26;18/02/2026 14:26:00;18/02/2026 14:40:00;14min;1;1;V;190.510,00;190.255,00;192.350,00;Sim;-51,00;-255,00;74;-51,00;-255,00;0,00;0,00;0,00;5d1h;577,00 +WINJ26;18/02/2026 16:24:00;18/02/2026 16:38:00;14min;1;1;C;189.070,00;188.855,00;192.350,00;Sim;-43,00;-215,00;75;-43,00;-215,00;0,00;0,00;0,00;1h58min;534,00 +WINJ26;19/02/2026 09:02:00;19/02/2026 09:16:00;14min;1;1;V;190.195,00;190.090,00;192.350,00;No;-21,00;-105,00;76;-21,00;-105,00;0,00;0,00;0,00;16h38min;513,00 +WINJ26;19/02/2026 10:42:00;19/02/2026 10:44:00;2min;1;1;V;190.290,00;190.575,00;192.350,00;Sim;57,00;285,00;77;57,00;285,00;0,00;0,00;0,00;1h40min;570,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.350,00;No;36,00;180,00;78;36,00;180,00;0,00;0,00;0,00;3h12min;606,00 +WINJ26;20/02/2026 09:40:00;20/02/2026 09:54:00;14min;1;1;C;190.975,00;190.745,00;192.350,00;Sim;-46,00;-230,00;79;-46,00;-230,00;0,00;0,00;0,00;19h46min;560,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 11:52:00;14min;1;1;V;191.140,00;190.995,00;192.350,00;Sim;-29,00;-145,00;80;-29,00;-145,00;0,00;0,00;0,00;1h58min;531,00 +WINJ26;23/02/2026 09:30:00;23/02/2026 09:44:00;14min;1;1;C;192.925,00;192.675,00;192.350,00;No;-50,00;-250,00;81;-50,00;-250,00;0,00;0,00;0,00;2d21h;481,00 +WINJ26;23/02/2026 12:04:00;23/02/2026 12:06:00;2min;1;1;V;193.950,00;194.250,00;192.350,00;Sim;60,00;300,00;82;60,00;300,00;0,00;0,00;0,00;2h34min;541,00 +WINJ26;24/02/2026 09:22:00;24/02/2026 09:30:00;8min;1;1;V;193.240,00;193.585,00;192.350,00;No;69,00;345,00;83;69,00;345,00;0,00;0,00;0,00;21h18min;610,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:16:00;14min;1;1;C;195.005,00;194.865,00;192.350,00;No;-28,00;-140,00;84;-28,00;-140,00;0,00;0,00;0,00;5h40min;582,00 +WINJ26;25/02/2026 09:16:00;25/02/2026 09:30:00;14min;1;1;V;196.370,00;196.870,00;192.350,00;Sim;100,00;500,00;85;100,00;500,00;0,00;0,00;0,00;18h14min;682,00 +WINJ26;25/02/2026 10:18:00;25/02/2026 10:32:00;14min;1;1;C;195.920,00;195.735,00;192.350,00;No;-37,00;-185,00;86;-37,00;-185,00;0,00;0,00;0,00;1h2min;645,00 +WINJ26;26/02/2026 09:08:00;26/02/2026 09:10:00;2min;1;1;C;194.135,00;194.385,00;192.350,00;Sim;50,00;250,00;87;50,00;250,00;0,00;0,00;0,00;22h50min;695,00 +WINJ26;26/02/2026 10:04:00;26/02/2026 10:18:00;14min;1;1;V;194.510,00;194.585,00;192.350,00;No;15,00;75,00;88;15,00;75,00;0,00;0,00;0,00;56min;710,00 +WINJ26;27/02/2026 09:14:00;27/02/2026 09:20:00;6min;1;1;C;192.865,00;193.550,00;192.350,00;Sim;137,00;685,00;89;137,00;685,00;0,00;0,00;0,00;23h10min;847,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.350,00;No;-5,00;-25,00;90;-5,00;-25,00;0,00;0,00;0,00;2h4min;842,00 +WINJ26;02/03/2026 09:50:00;02/03/2026 10:04:00;14min;1;1;C;190.195,00;190.255,00;192.350,00;Sim;12,00;60,00;91;12,00;60,00;0,00;0,00;0,00;2d22h;854,00 +WINJ26;02/03/2026 10:28:00;02/03/2026 10:42:00;14min;1;1;V;190.900,00;190.795,00;192.350,00;No;-21,00;-105,00;92;-21,00;-105,00;0,00;0,00;0,00;38min;833,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv new file mode 100644 index 0000000..0b81572 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv @@ -0,0 +1,122 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 17:25:00;26/08/2025 18:20:00;55min;1;1;C;148.400,00;149.050,00;192.335,00;No;130,00;650,00;1;130,00;650,00;0,00;0,00;0,00; - ;130,00 +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.335,00;No;-50,00;-250,00;2;-50,00;-250,00;0,00;0,00;0,00;13d15h;80,00 +WINJ26;16/09/2025 15:50:00;17/09/2025 13:00:00;21h10min;1;1;V;155.750,00;154.450,00;192.335,00;Sim;-260,00;-1.300,00;3;-260,00;-1.300,00;0,00;0,00;0,00;7d6h;-180,00 +WINJ26;17/09/2025 16:00:00;18/09/2025 12:00:00;20h;1;1;V;155.650,00;156.000,00;192.335,00;Sim;70,00;350,00;4;70,00;350,00;0,00;0,00;0,00;1d;-110,00 +WINJ26;19/09/2025 10:35:00;22/09/2025 12:25:00;3d1h;1;1;V;154.750,00;156.150,00;192.335,00;Sim;280,00;1.400,00;5;280,00;1.400,00;0,00;0,00;0,00;1d18h;170,00 +WINJ26;25/09/2025 09:10:00;25/09/2025 09:45:00;35min;1;1;V;156.850,00;157.270,00;192.335,00;Sim;84,00;420,00;6;84,00;420,00;0,00;0,00;0,00;5d22h;254,00 +WINJ26;29/09/2025 13:35:00;29/09/2025 14:00:00;25min;1;1;V;156.650,00;156.400,00;192.335,00;No;-50,00;-250,00;7;-50,00;-250,00;0,00;0,00;0,00;4d4h;204,00 +WINJ26;30/09/2025 11:15:00;30/09/2025 11:20:00;5min;1;1;V;156.550,00;156.550,00;192.335,00;Sim;0;0;8;0;0;0,00;0,00;0,00;21h40min;204,00 +WINJ26;03/10/2025 09:45:00;03/10/2025 10:30:00;45min;1;1;C;153.935,00;153.800,00;192.335,00;No;-27,00;-135,00;9;-27,00;-135,00;0,00;0,00;0,00;2d22h;177,00 +WINJ26;13/10/2025 10:20:00;13/10/2025 10:25:00;5min;1;1;C;151.100,00;151.100,00;192.335,00;Sim;0;0;10;0;0;0,00;0,00;0,00;10d;177,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 11:20:00;5min;1;1;C;151.200,00;151.050,00;192.335,00;No;-30,00;-150,00;11;-30,00;-150,00;0,00;0,00;0,00;2d;147,00 +WINJ26;20/10/2025 10:50:00;20/10/2025 12:35:00;1h45min;1;1;V;153.750,00;152.685,00;192.335,00;No;-213,00;-1.065,00;12;-213,00;-1.065,00;0,00;0,00;0,00;4d23h;-66,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:15:00;45min;1;1;C;153.200,00;152.700,00;192.335,00;No;-100,00;-500,00;13;-100,00;-500,00;0,00;0,00;0,00;22h40min;-166,00 +WINJ26;23/10/2025 10:05:00;23/10/2025 12:45:00;2h40min;1;1;V;153.950,00;154.795,00;192.335,00;Sim;169,00;845,00;14;169,00;845,00;0,00;0,00;0,00;2d;3,00 +WINJ26;24/10/2025 10:55:00;24/10/2025 11:10:00;15min;1;1;V;154.860,00;155.250,00;192.335,00;Sim;78,00;390,00;15;78,00;390,00;0,00;0,00;0,00;1d;81,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:20:00;1h5min;1;1;V;155.480,00;155.660,00;192.335,00;Sim;36,00;180,00;16;36,00;180,00;0,00;0,00;0,00;3d1h;117,00 +WINJ26;29/10/2025 12:00:00;29/10/2025 15:05:00;3h5min;1;1;V;157.295,00;157.250,00;192.335,00;Sim;-9,00;-45,00;17;-9,00;-45,00;0,00;0,00;0,00;1d23h;108,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.335,00;No;17,00;85,00;18;17,00;85,00;0,00;0,00;0,00;22h55min;125,00 +WINJ26;31/10/2025 11:40:00;31/10/2025 13:30:00;1h50min;1;1;V;157.700,00;157.700,00;192.335,00;Sim;0;0;19;0;0;0,00;0,00;0,00;1d;125,00 +WINJ26;03/11/2025 12:40:00;03/11/2025 16:10:00;3h30min;1;1;V;158.640,00;158.680,00;192.335,00;Sim;8,00;40,00;20;8,00;40,00;0,00;0,00;0,00;3d1h;133,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.335,00;No;-4,00;-20,00;21;-4,00;-20,00;0,00;0,00;0,00;21h35min;129,00 +WINJ26;05/11/2025 11:25:00;05/11/2025 12:45:00;1h20min;1;1;V;160.720,00;159.750,00;192.335,00;Sim;-194,00;-970,00;22;-194,00;-970,00;0,00;0,00;0,00;1d1h;-65,00 +WINJ26;06/11/2025 09:20:00;06/11/2025 14:00:00;4h40min;1;1;V;162.000,00;161.900,00;192.335,00;Sim;-20,00;-100,00;23;-20,00;-100,00;0,00;0,00;0,00;21h55min;-85,00 +WINJ26;10/11/2025 10:30:00;10/11/2025 17:30:00;7h;1;1;V;163.300,00;162.950,00;192.335,00;Sim;-70,00;-350,00;24;-70,00;-350,00;0,00;0,00;0,00;4d1h;-155,00 +WINJ26;11/11/2025 09:10:00;11/11/2025 10:25:00;1h15min;1;1;V;165.100,00;164.815,00;192.335,00;Sim;-57,00;-285,00;25;-57,00;-285,00;0,00;0,00;0,00;22h40min;-212,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:25:00;25min;1;1;C;165.750,00;165.800,00;192.335,00;No;10,00;50,00;26;10,00;50,00;0,00;0,00;0,00;1d7h;-202,00 +WINJ26;14/11/2025 09:15:00;14/11/2025 09:40:00;25min;1;1;C;164.780,00;165.050,00;192.335,00;Sim;54,00;270,00;27;54,00;270,00;0,00;0,00;0,00;1d16h;-148,00 +WINJ26;14/11/2025 11:35:00;14/11/2025 17:50:00;6h15min;1;1;V;166.185,00;165.935,00;192.335,00;Sim;-50,00;-250,00;28;-50,00;-250,00;0,00;0,00;0,00;2h20min;-198,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.335,00;Sim;60,00;300,00;29;60,00;300,00;0,00;0,00;0,00;3d22h;-138,00 +WINJ26;19/11/2025 17:20:00;21/11/2025 09:10:00;1d15h;1;1;C;163.590,00;162.000,00;192.335,00;Sim;-318,00;-1.590,00;30;-318,00;-1.590,00;0,00;0,00;0,00;1d7h;-456,00 +WINJ26;21/11/2025 09:20:00;21/11/2025 11:15:00;1h55min;1;1;C;162.270,00;161.780,00;192.335,00;Sim;-98,00;-490,00;31;-98,00;-490,00;0,00;0,00;0,00;1d16h;-554,00 +WINJ26;25/11/2025 10:50:00;25/11/2025 10:55:00;5min;1;1;V;162.935,00;163.000,00;192.335,00;No;13,00;65,00;32;13,00;65,00;0,00;0,00;0,00;4d1h;-541,00 +WINJ26;26/11/2025 10:15:00;26/11/2025 11:00:00;45min;1;1;V;165.300,00;164.250,00;192.335,00;Sim;-210,00;-1.050,00;33;-210,00;-1.050,00;0,00;0,00;0,00;23h25min;-751,00 +WINJ26;02/12/2025 09:25:00;02/12/2025 10:40:00;1h15min;1;1;V;167.000,00;166.820,00;192.335,00;Sim;-36,00;-180,00;34;-36,00;-180,00;0,00;0,00;0,00;5d23h;-787,00 +WINJ26;03/12/2025 11:35:00;04/12/2025 09:15:00;21h40min;1;1;V;169.805,00;169.000,00;192.335,00;Sim;-161,00;-805,00;35;-161,00;-805,00;0,00;0,00;0,00;1d2h;-948,00 +WINJ26;05/12/2025 09:05:00;05/12/2025 11:35:00;2h30min;1;1;V;171.570,00;172.000,00;192.335,00;Sim;86,00;430,00;36;86,00;430,00;0,00;0,00;0,00;1d21h;-862,00 +WINJ26;05/12/2025 16:50:00;05/12/2025 17:35:00;45min;1;1;C;165.565,00;164.710,00;192.335,00;No;-171,00;-855,00;37;-171,00;-855,00;0,00;0,00;0,00;7h45min;-1.033,00 +WINJ26;09/12/2025 13:45:00;09/12/2025 17:20:00;3h35min;1;1;V;165.405,00;164.500,00;192.335,00;No;-181,00;-905,00;38;-181,00;-905,00;0,00;0,00;0,00;3d20h;-1.214,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.335,00;Sim;171,00;855,00;39;171,00;855,00;0,00;0,00;0,00;19h50min;-1.043,00 +WINJ26;12/12/2025 12:05:00;12/12/2025 12:15:00;10min;1;1;V;166.900,00;167.300,00;192.335,00;Sim;80,00;400,00;40;80,00;400,00;0,00;0,00;0,00;2d2h;-963,00 +WINJ26;15/12/2025 10:40:00;15/12/2025 13:00:00;2h20min;1;1;V;169.400,00;168.650,00;192.335,00;Sim;-150,00;-750,00;41;-150,00;-750,00;0,00;0,00;0,00;2d22h;-1.113,00 +WINJ26;16/12/2025 13:10:00;16/12/2025 14:10:00;1h;1;1;C;166.450,00;166.990,00;192.335,00;No;108,00;540,00;42;108,00;540,00;0,00;0,00;0,00;1d2h;-1.005,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 09:50:00;35min;1;1;C;164.810,00;164.065,00;192.335,00;Sim;-149,00;-745,00;43;-149,00;-745,00;0,00;0,00;0,00;20h5min;-1.154,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.335,00;Sim;7,00;35,00;44;7,00;35,00;0,00;0,00;0,00;1d7h;-1.147,00 +WINJ26;19/12/2025 11:10:00;19/12/2025 11:45:00;35min;1;1;V;165.610,00;165.155,00;192.335,00;No;-91,00;-455,00;45;-91,00;-455,00;0,00;0,00;0,00;18h5min;-1.238,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 15:35:00;35min;1;1;C;165.135,00;165.125,00;192.335,00;No;-2,00;-10,00;46;-2,00;-10,00;0,00;0,00;0,00;3h50min;-1.240,00 +WINJ26;22/12/2025 09:10:00;22/12/2025 09:15:00;5min;1;1;V;165.050,00;165.200,00;192.335,00;Sim;30,00;150,00;47;30,00;150,00;0,00;0,00;0,00;2d18h;-1.210,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 12:10:00;25min;1;1;C;163.790,00;163.980,00;192.335,00;Sim;38,00;190,00;48;38,00;190,00;0,00;0,00;0,00;2h35min;-1.172,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.335,00;No;2,00;10,00;49;2,00;10,00;0,00;0,00;0,00;21h20min;-1.170,00 +WINJ26;23/12/2025 10:25:00;23/12/2025 11:00:00;35min;1;1;V;165.660,00;165.410,00;192.335,00;Sim;-50,00;-250,00;50;-50,00;-250,00;0,00;0,00;0,00;1h20min;-1.220,00 +WINJ26;26/12/2025 15:15:00;26/12/2025 15:20:00;5min;1;1;V;166.480,00;166.500,00;192.335,00;Sim;4,00;20,00;51;4,00;20,00;0,00;0,00;0,00;3d4h;-1.216,00 +WINJ26;29/12/2025 10:25:00;29/12/2025 11:00:00;35min;1;1;C;166.635,00;166.510,00;192.335,00;No;-25,00;-125,00;52;-25,00;-125,00;0,00;0,00;0,00;2d19h;-1.241,00 +WINJ26;30/12/2025 10:05:00;30/12/2025 10:40:00;35min;1;1;V;167.680,00;167.540,00;192.335,00;Sim;-28,00;-140,00;53;-28,00;-140,00;0,00;0,00;0,00;23h40min;-1.269,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.335,00;No;-65,00;-325,00;54;-65,00;-325,00;0,00;0,00;0,00;2d23h;-1.334,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.335,00;Sim;-9,00;-45,00;55;-9,00;-45,00;0,00;0,00;0,00;1h5min;-1.343,00 +WINJ26;02/01/2026 13:45:00;02/01/2026 14:20:00;35min;1;1;C;166.210,00;166.095,00;192.335,00;Sim;-23,00;-115,00;56;-23,00;-115,00;0,00;0,00;0,00;3h35min;-1.366,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.335,00;No;39,00;195,00;57;39,00;195,00;0,00;0,00;0,00;2d20h;-1.327,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.335,00;No;21,00;105,00;58;21,00;105,00;0,00;0,00;0,00;7h25min;-1.306,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:15:00;35min;1;1;C;168.780,00;168.080,00;192.335,00;No;-140,00;-700,00;59;-140,00;-700,00;0,00;0,00;0,00;1d17h;-1.446,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:20:00;5min;1;1;C;167.350,00;167.500,00;192.335,00;Sim;30,00;150,00;60;30,00;150,00;0,00;0,00;0,00;22h35min;-1.416,00 +WINJ26;08/01/2026 10:40:00;08/01/2026 10:50:00;10min;1;1;V;167.665,00;167.855,00;192.335,00;Sim;38,00;190,00;61;38,00;190,00;0,00;0,00;0,00;1h25min;-1.378,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.335,00;No;10,00;50,00;62;10,00;50,00;0,00;0,00;0,00;22h50min;-1.368,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:45:00;35min;1;1;V;169.275,00;169.350,00;192.335,00;Sim;15,00;75,00;63;15,00;75,00;0,00;0,00;0,00;2h40min;-1.353,00 +WINJ26;12/01/2026 10:15:00;12/01/2026 10:50:00;35min;1;1;C;168.255,00;168.040,00;192.335,00;No;-43,00;-215,00;64;-43,00;-215,00;0,00;0,00;0,00;2d22h;-1.396,00 +WINJ26;12/01/2026 12:30:00;12/01/2026 13:10:00;40min;1;1;V;168.670,00;168.635,00;192.335,00;No;-7,00;-35,00;65;-7,00;-35,00;0,00;0,00;0,00;2h15min;-1.403,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.335,00;Sim;20,00;100,00;66;20,00;100,00;0,00;0,00;0,00;22h5min;-1.383,00 +WINJ26;14/01/2026 10:50:00;14/01/2026 11:00:00;10min;1;1;V;168.220,00;168.545,00;192.335,00;No;65,00;325,00;67;65,00;325,00;0,00;0,00;0,00;1d;-1.318,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 11:25:00;10min;1;1;C;167.705,00;168.105,00;192.335,00;Sim;80,00;400,00;68;80,00;400,00;0,00;0,00;0,00;25min;-1.238,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.335,00;Sim;0;0;69;0;0;0,00;0,00;0,00;21h50min;-1.238,00 +WINJ26;15/01/2026 10:10:00;15/01/2026 10:25:00;15min;1;1;V;170.505,00;170.625,00;192.335,00;Sim;24,00;120,00;70;24,00;120,00;0,00;0,00;0,00;1h5min;-1.214,00 +WINJ26;16/01/2026 10:30:00;16/01/2026 11:05:00;35min;1;1;C;170.625,00;169.935,00;192.335,00;No;-138,00;-690,00;71;-138,00;-690,00;0,00;0,00;0,00;1d;-1.352,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:25:00;10min;1;1;C;169.330,00;169.495,00;192.335,00;Sim;33,00;165,00;72;33,00;165,00;0,00;0,00;0,00;2d22h;-1.319,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:20:00;35min;1;1;V;171.290,00;171.135,00;192.335,00;Sim;-31,00;-155,00;73;-31,00;-155,00;0,00;0,00;0,00;1d4h;-1.350,00 +WINJ26;20/01/2026 15:15:00;20/01/2026 15:40:00;25min;1;1;C;170.885,00;170.940,00;192.335,00;No;11,00;55,00;74;11,00;55,00;0,00;0,00;0,00;1h30min;-1.339,00 +WINJ26;21/01/2026 12:25:00;21/01/2026 13:00:00;35min;1;1;V;174.720,00;174.455,00;192.335,00;Sim;-53,00;-265,00;75;-53,00;-265,00;0,00;0,00;0,00;21h10min;-1.392,00 +WINJ26;22/01/2026 09:10:00;22/01/2026 09:45:00;35min;1;1;V;177.980,00;177.350,00;192.335,00;Sim;-126,00;-630,00;76;-126,00;-630,00;0,00;0,00;0,00;20h45min;-1.518,00 +WINJ26;23/01/2026 09:20:00;23/01/2026 09:55:00;35min;1;1;V;181.500,00;181.440,00;192.335,00;Sim;-12,00;-60,00;77;-12,00;-60,00;0,00;0,00;0,00;1d;-1.530,00 +WINJ26;23/01/2026 15:15:00;23/01/2026 15:25:00;10min;1;1;C;181.845,00;182.200,00;192.335,00;No;71,00;355,00;78;71,00;355,00;0,00;0,00;0,00;5h55min;-1.459,00 +WINJ26;26/01/2026 11:30:00;26/01/2026 11:35:00;5min;1;1;C;183.185,00;183.955,00;192.335,00;No;154,00;770,00;79;154,00;770,00;0,00;0,00;0,00;2d20h;-1.305,00 +WINJ26;26/01/2026 14:50:00;26/01/2026 15:00:00;10min;1;1;V;183.500,00;183.890,00;192.335,00;Sim;78,00;390,00;80;78,00;390,00;0,00;0,00;0,00;3h20min;-1.227,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 10:55:00;35min;1;1;V;186.775,00;185.930,00;192.335,00;Sim;-169,00;-845,00;81;-169,00;-845,00;0,00;0,00;0,00;19h30min;-1.396,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 15:55:00;35min;1;1;C;187.310,00;187.030,00;192.335,00;No;-56,00;-280,00;82;-56,00;-280,00;0,00;0,00;0,00;5h;-1.452,00 +WINJ26;28/01/2026 10:55:00;28/01/2026 11:30:00;35min;1;1;V;189.210,00;189.085,00;192.335,00;Sim;-25,00;-125,00;83;-25,00;-125,00;0,00;0,00;0,00;19h35min;-1.477,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.335,00;No;47,00;235,00;84;47,00;235,00;0,00;0,00;0,00;5h15min;-1.430,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:05:00;35min;1;1;V;191.230,00;191.020,00;192.335,00;Sim;-42,00;-210,00;85;-42,00;-210,00;0,00;0,00;0,00;17h20min;-1.472,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 13:50:00;35min;1;1;C;187.605,00;187.445,00;192.335,00;Sim;-32,00;-160,00;86;-32,00;-160,00;0,00;0,00;0,00;3h45min;-1.504,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 09:55:00;35min;1;1;C;187.580,00;186.875,00;192.335,00;Sim;-141,00;-705,00;87;-141,00;-705,00;0,00;0,00;0,00;20h5min;-1.645,00 +WINJ26;02/02/2026 11:10:00;02/02/2026 11:20:00;10min;1;1;V;186.650,00;187.205,00;192.335,00;No;111,00;555,00;88;111,00;555,00;0,00;0,00;0,00;3d1h;-1.534,00 +WINJ26;03/02/2026 10:00:00;03/02/2026 10:35:00;35min;1;1;V;189.845,00;189.560,00;192.335,00;Sim;-57,00;-285,00;89;-57,00;-285,00;0,00;0,00;0,00;22h50min;-1.591,00 +WINJ26;04/02/2026 09:15:00;04/02/2026 09:50:00;35min;1;1;C;189.705,00;189.195,00;192.335,00;No;-102,00;-510,00;90;-102,00;-510,00;0,00;0,00;0,00;23h15min;-1.693,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.335,00;No;36,00;180,00;91;36,00;180,00;0,00;0,00;0,00;1d;-1.657,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 17:35:00;35min;1;1;C;187.375,00;186.445,00;192.335,00;Sim;-186,00;-930,00;92;-186,00;-930,00;0,00;0,00;0,00;7h20min;-1.843,00 +WINJ26;06/02/2026 09:10:00;06/02/2026 09:20:00;10min;1;1;V;186.900,00;187.680,00;192.335,00;Sim;156,00;780,00;93;156,00;780,00;0,00;0,00;0,00;16h10min;-1.687,00 +WINJ26;06/02/2026 12:10:00;06/02/2026 12:20:00;10min;1;1;C;186.085,00;186.390,00;192.335,00;Sim;61,00;305,00;94;61,00;305,00;0,00;0,00;0,00;3h;-1.626,00 +WINJ26;09/02/2026 14:55:00;09/02/2026 15:30:00;35min;1;1;V;189.885,00;189.400,00;192.335,00;Sim;-97,00;-485,00;95;-97,00;-485,00;0,00;0,00;0,00;3d2h;-1.723,00 +WINJ26;10/02/2026 12:40:00;10/02/2026 13:15:00;35min;1;1;V;190.745,00;190.760,00;192.335,00;Sim;3,00;15,00;96;3,00;15,00;0,00;0,00;0,00;21h45min;-1.720,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.335,00;No;41,00;205,00;97;41,00;205,00;0,00;0,00;0,00;3h30min;-1.679,00 +WINJ26;11/02/2026 10:10:00;11/02/2026 10:45:00;35min;1;1;V;192.455,00;191.995,00;192.335,00;Sim;-92,00;-460,00;98;-92,00;-460,00;0,00;0,00;0,00;18h;-1.771,00 +WINJ26;11/02/2026 15:50:00;11/02/2026 16:10:00;20min;1;1;C;193.855,00;194.050,00;192.335,00;No;39,00;195,00;99;39,00;195,00;0,00;0,00;0,00;5h40min;-1.732,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.335,00;Sim;54,00;270,00;100;54,00;270,00;0,00;0,00;0,00;23h55min;-1.678,00 +WINJ26;13/02/2026 10:10:00;13/02/2026 10:45:00;35min;1;1;C;189.215,00;189.255,00;192.335,00;Sim;8,00;40,00;101;8,00;40,00;0,00;0,00;0,00;18h25min;-1.670,00 +WINJ26;13/02/2026 14:00:00;13/02/2026 14:35:00;35min;1;1;V;189.505,00;189.405,00;192.335,00;No;-20,00;-100,00;102;-20,00;-100,00;0,00;0,00;0,00;3h50min;-1.690,00 +WINJ26;18/02/2026 13:10:00;18/02/2026 13:25:00;15min;1;1;V;190.280,00;190.960,00;192.335,00;Sim;136,00;680,00;103;136,00;680,00;0,00;0,00;0,00;4d23h;-1.554,00 +WINJ26;18/02/2026 16:45:00;18/02/2026 17:05:00;20min;1;1;C;189.035,00;189.220,00;192.335,00;Sim;37,00;185,00;104;37,00;185,00;0,00;0,00;0,00;3h35min;-1.517,00 +WINJ26;19/02/2026 13:40:00;19/02/2026 14:05:00;25min;1;1;V;191.955,00;192.245,00;192.335,00;Sim;58,00;290,00;105;58,00;290,00;0,00;0,00;0,00;20h55min;-1.459,00 +WINJ26;20/02/2026 10:20:00;20/02/2026 10:55:00;35min;1;1;C;190.810,00;190.655,00;192.335,00;No;-31,00;-155,00;106;-31,00;-155,00;0,00;0,00;0,00;20h40min;-1.490,00 +WINJ26;20/02/2026 12:25:00;20/02/2026 13:00:00;35min;1;1;V;192.250,00;192.020,00;192.335,00;No;-46,00;-230,00;107;-46,00;-230,00;0,00;0,00;0,00;2h5min;-1.536,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.335,00;No;48,00;240,00;108;48,00;240,00;0,00;0,00;0,00;2d21h;-1.488,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.335,00;Sim;112,00;560,00;109;112,00;560,00;0,00;0,00;0,00;2h;-1.376,00 +WINJ26;24/02/2026 09:25:00;24/02/2026 10:00:00;35min;1;1;V;193.505,00;193.475,00;192.335,00;No;-6,00;-30,00;110;-6,00;-30,00;0,00;0,00;0,00;21h20min;-1.382,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.335,00;Sim;67,00;335,00;111;67,00;335,00;0,00;0,00;0,00;1d;-1.315,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 16:55:00;35min;1;1;C;194.200,00;194.110,00;192.335,00;No;-18,00;-90,00;112;-18,00;-90,00;0,00;0,00;0,00;6h50min;-1.333,00 +WINJ26;26/02/2026 16:30:00;26/02/2026 17:05:00;35min;1;1;V;194.355,00;194.010,00;192.335,00;No;-69,00;-345,00;113;-69,00;-345,00;0,00;0,00;0,00;1d;-1.402,00 +WINJ26;27/02/2026 14:55:00;27/02/2026 15:10:00;15min;1;1;C;192.480,00;192.710,00;192.335,00;Sim;46,00;230,00;114;46,00;230,00;0,00;0,00;0,00;22h25min;-1.356,00 +WINJ26;02/03/2026 09:15:00;02/03/2026 09:50:00;35min;1;1;C;191.035,00;190.195,00;192.335,00;Sim;-168,00;-840,00;115;-168,00;-840,00;0,00;0,00;0,00;2d18h;-1.524,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 12:35:00;35min;1;1;V;191.390,00;191.375,00;192.335,00;No;-3,00;-15,00;116;-3,00;-15,00;0,00;0,00;0,00;2h45min;-1.527,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv new file mode 100644 index 0000000..49ff255 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv @@ -0,0 +1,76 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:00:00;26/08/2025 18:15:00;15min;1;1;C;149.000,00;149.050,00;192.330,00;No;10,00;50,00;1;10,00;50,00;0,00;0,00;0,00; - ;10,00 +WINJ26;01/09/2025 13:15:00;02/09/2025 09:45:00;20h30min;1;1;V;150.600,00;152.000,00;192.330,00;No;280,00;1.400,00;2;280,00;1.400,00;0,00;0,00;0,00;5d19h;290,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.330,00;Sim;-40,00;-200,00;3;-40,00;-200,00;0,00;0,00;0,00;7d19h;250,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 09:45:00;15min;1;1;V;152.750,00;152.500,00;192.330,00;Sim;-50,00;-250,00;4;-50,00;-250,00;0,00;0,00;0,00;3d;200,00 +WINJ26;16/09/2025 15:45:00;17/09/2025 14:00:00;22h15min;1;1;V;155.850,00;154.450,00;192.330,00;Sim;-280,00;-1.400,00;5;-280,00;-1.400,00;0,00;0,00;0,00;4d6h;-80,00 +WINJ26;17/09/2025 16:00:00;18/09/2025 18:15:00;1d2h;1;1;V;156.150,00;156.000,00;192.330,00;Sim;-30,00;-150,00;6;-30,00;-150,00;0,00;0,00;0,00;1d;-110,00 +WINJ26;19/09/2025 14:45:00;22/09/2025 12:15:00;2d21h;1;1;V;154.750,00;156.400,00;192.330,00;Sim;330,00;1.650,00;7;330,00;1.650,00;0,00;0,00;0,00;1d22h;220,00 +WINJ26;25/09/2025 09:15:00;25/09/2025 10:15:00;1h;1;1;V;156.250,00;157.700,00;192.330,00;Sim;290,00;1.450,00;8;290,00;1.450,00;0,00;0,00;0,00;5d18h;510,00 +WINJ26;29/09/2025 13:30:00;29/09/2025 15:00:00;1h30min;1;1;V;156.340,00;156.400,00;192.330,00;No;12,00;60,00;9;12,00;60,00;0,00;0,00;0,00;4d4h;522,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 11:30:00;1h15min;1;1;C;151.100,00;151.130,00;192.330,00;No;6,00;30,00;10;6,00;30,00;0,00;0,00;0,00;13d20h;528,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 13:00:00;1h45min;1;1;C;151.200,00;151.200,00;192.330,00;No;0;0;11;0;0;0,00;0,00;0,00;2d1h;528,00 +WINJ26;23/10/2025 12:15:00;23/10/2025 12:45:00;30min;1;1;V;153.950,00;153.700,00;192.330,00;No;-50,00;-250,00;12;-50,00;-250,00;0,00;0,00;0,00;8d1h;478,00 +WINJ26;27/10/2025 12:15:00;28/10/2025 09:15:00;21h;1;1;V;155.400,00;155.660,00;192.330,00;Sim;52,00;260,00;13;52,00;260,00;0,00;0,00;0,00;4d;530,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.330,00;No;17,00;85,00;14;17,00;85,00;0,00;0,00;0,00;2d22h;547,00 +WINJ26;31/10/2025 11:30:00;31/10/2025 13:30:00;2h;1;1;V;157.700,00;157.700,00;192.330,00;Sim;0;0;15;0;0;0,00;0,00;0,00;1d;547,00 +WINJ26;03/11/2025 12:30:00;03/11/2025 17:30:00;5h;1;1;V;158.720,00;158.680,00;192.330,00;Sim;-8,00;-40,00;16;-8,00;-40,00;0,00;0,00;0,00;3d1h;539,00 +WINJ26;05/11/2025 11:15:00;05/11/2025 13:15:00;2h;1;1;V;161.300,00;159.750,00;192.330,00;Sim;-310,00;-1.550,00;17;-310,00;-1.550,00;0,00;0,00;0,00;1d22h;229,00 +WINJ26;06/11/2025 13:45:00;07/11/2025 09:15:00;19h30min;1;1;V;161.900,00;162.000,00;192.330,00;Sim;20,00;100,00;18;20,00;100,00;0,00;0,00;0,00;1d2h;249,00 +WINJ26;11/11/2025 12:45:00;11/11/2025 17:00:00;4h15min;1;1;V;166.560,00;165.895,00;192.330,00;Sim;-133,00;-665,00;19;-133,00;-665,00;0,00;0,00;0,00;4d23h;116,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:15:00;15min;1;1;C;165.750,00;165.800,00;192.330,00;No;10,00;50,00;20;10,00;50,00;0,00;0,00;0,00;1d4h;126,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 11:00:00;30min;1;1;C;164.740,00;164.500,00;192.330,00;Sim;-48,00;-240,00;21;-48,00;-240,00;0,00;0,00;0,00;5d17h;78,00 +WINJ26;21/11/2025 09:45:00;21/11/2025 13:30:00;3h45min;1;1;C;162.930,00;162.120,00;192.330,00;Sim;-162,00;-810,00;22;-162,00;-810,00;0,00;0,00;0,00;2d23h;-84,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.330,00;Sim;26,00;130,00;23;26,00;130,00;0,00;0,00;0,00;6d1h;-58,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 13:00:00;1h;1;1;V;166.500,00;166.300,00;192.330,00;Sim;-40,00;-200,00;24;-40,00;-200,00;0,00;0,00;0,00;1d;-98,00 +WINJ26;02/12/2025 11:45:00;02/12/2025 16:00:00;4h15min;1;1;V;168.120,00;167.500,00;192.330,00;Sim;-124,00;-620,00;25;-124,00;-620,00;0,00;0,00;0,00;3d23h;-222,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.330,00;Sim;147,00;735,00;26;147,00;735,00;0,00;0,00;0,00;2d23h;-75,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 12:30:00;3h15min;1;1;C;166.300,00;164.800,00;192.330,00;No;-300,00;-1.500,00;27;-300,00;-1.500,00;0,00;0,00;0,00;2d21h;-375,00 +WINJ26;09/12/2025 17:30:00;10/12/2025 09:00:00;15h30min;1;1;V;165.750,00;165.225,00;192.330,00;No;-105,00;-525,00;28;-105,00;-525,00;0,00;0,00;0,00;1d8h;-480,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.330,00;No;36,00;180,00;29;36,00;180,00;0,00;0,00;0,00;16h45min;-444,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.330,00;Sim;120,00;600,00;30;120,00;600,00;0,00;0,00;0,00;2d2h;-324,00 +WINJ26;15/12/2025 10:30:00;15/12/2025 13:00:00;2h30min;1;1;V;169.400,00;168.650,00;192.330,00;Sim;-150,00;-750,00;31;-150,00;-750,00;0,00;0,00;0,00;2d22h;-474,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 13:15:00;1h45min;1;1;C;163.775,00;163.480,00;192.330,00;Sim;-59,00;-295,00;32;-59,00;-295,00;0,00;0,00;0,00;2d1h;-533,00 +WINJ26;19/12/2025 12:45:00;19/12/2025 14:30:00;1h45min;1;1;V;165.175,00;165.475,00;192.330,00;No;60,00;300,00;33;60,00;300,00;0,00;0,00;0,00;2d1h;-473,00 +WINJ26;19/12/2025 18:15:00;22/12/2025 09:00:00;2d14h;1;1;C;164.910,00;165.430,00;192.330,00;No;104,00;520,00;34;104,00;520,00;0,00;0,00;0,00;5h30min;-369,00 +WINJ26;22/12/2025 12:30:00;22/12/2025 13:30:00;1h;1;1;C;164.025,00;164.315,00;192.330,00;Sim;58,00;290,00;35;58,00;290,00;0,00;0,00;0,00;2d18h;-311,00 +WINJ26;23/12/2025 10:00:00;23/12/2025 11:45:00;1h45min;1;1;V;165.860,00;165.025,00;192.330,00;No;-167,00;-835,00;36;-167,00;-835,00;0,00;0,00;0,00;21h30min;-478,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.330,00;No;8,00;40,00;37;8,00;40,00;0,00;0,00;0,00;3d;-470,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.330,00;Sim;60,00;300,00;38;60,00;300,00;0,00;0,00;0,00;2d23h;-410,00 +WINJ26;29/12/2025 11:30:00;29/12/2025 13:15:00;1h45min;1;1;C;166.510,00;166.075,00;192.330,00;No;-87,00;-435,00;39;-87,00;-435,00;0,00;0,00;0,00;2h;-497,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.330,00;No;-21,00;-105,00;40;-21,00;-105,00;0,00;0,00;0,00;3d21h;-518,00 +WINJ26;02/01/2026 16:15:00;02/01/2026 16:30:00;15min;1;1;C;166.245,00;166.230,00;192.330,00;Sim;-3,00;-15,00;41;-3,00;-15,00;0,00;0,00;0,00;7h;-521,00 +WINJ26;06/01/2026 11:30:00;06/01/2026 13:15:00;1h45min;1;1;V;169.290,00;169.305,00;192.330,00;Sim;3,00;15,00;42;3,00;15,00;0,00;0,00;0,00;3d19h;-518,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 15:15:00;1h45min;1;1;C;167.830,00;167.530,00;192.330,00;No;-60,00;-300,00;43;-60,00;-300,00;0,00;0,00;0,00;1d2h;-578,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:45:00;15min;1;1;C;167.460,00;167.630,00;192.330,00;Sim;34,00;170,00;44;34,00;170,00;0,00;0,00;0,00;20h;-544,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:00:00;1h45min;1;1;C;168.975,00;167.985,00;192.330,00;No;-198,00;-990,00;45;-198,00;-990,00;0,00;0,00;0,00;3d23h;-742,00 +WINJ26;13/01/2026 10:45:00;13/01/2026 12:30:00;1h45min;1;1;C;167.910,00;167.060,00;192.330,00;Sim;-170,00;-850,00;46;-170,00;-850,00;0,00;0,00;0,00;1d1h;-912,00 +WINJ26;14/01/2026 11:00:00;14/01/2026 11:15:00;15min;1;1;V;167.705,00;168.220,00;192.330,00;No;103,00;515,00;47;103,00;515,00;0,00;0,00;0,00;1d;-809,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.330,00;Sim;59,00;295,00;48;59,00;295,00;0,00;0,00;0,00;23h45min;-750,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.330,00;No;60,00;300,00;49;60,00;300,00;0,00;0,00;0,00;4d23h;-690,00 +WINJ26;23/01/2026 09:30:00;23/01/2026 11:00:00;1h30min;1;1;V;181.250,00;181.450,00;192.330,00;Sim;40,00;200,00;50;40,00;200,00;0,00;0,00;0,00;2d23h;-650,00 +WINJ26;27/01/2026 14:15:00;27/01/2026 15:00:00;45min;1;1;V;187.170,00;187.785,00;192.330,00;Sim;123,00;615,00;51;123,00;615,00;0,00;0,00;0,00;4d4h;-527,00 +WINJ26;29/01/2026 10:15:00;29/01/2026 12:00:00;1h45min;1;1;V;189.110,00;190.750,00;192.330,00;Sim;328,00;1.640,00;52;328,00;1.640,00;0,00;0,00;0,00;1d20h;-199,00 +WINJ26;30/01/2026 16:00:00;30/01/2026 17:45:00;1h45min;1;1;C;186.180,00;185.680,00;192.330,00;No;-100,00;-500,00;53;-100,00;-500,00;0,00;0,00;0,00;1d5h;-299,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.330,00;Sim;132,00;660,00;54;132,00;660,00;0,00;0,00;0,00;5d1h;-167,00 +WINJ26;05/02/2026 12:00:00;05/02/2026 12:15:00;15min;1;1;V;186.700,00;187.535,00;192.330,00;No;167,00;835,00;55;167,00;835,00;0,00;0,00;0,00;19h;0,00 +WINJ26;05/02/2026 18:00:00;06/02/2026 09:15:00;15h15min;1;1;C;186.585,00;187.460,00;192.330,00;No;175,00;875,00;56;175,00;875,00;0,00;0,00;0,00;6h;175,00 +WINJ26;09/02/2026 09:15:00;09/02/2026 11:00:00;1h45min;1;1;V;187.585,00;187.650,00;192.330,00;Sim;13,00;65,00;57;13,00;65,00;0,00;0,00;0,00;3d15h;188,00 +WINJ26;11/02/2026 10:15:00;11/02/2026 12:00:00;1h45min;1;1;V;193.035,00;191.810,00;192.330,00;Sim;-245,00;-1.225,00;58;-245,00;-1.225,00;0,00;0,00;0,00;2d1h;-57,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 17:30:00;1h45min;1;1;C;191.565,00;191.960,00;192.330,00;No;79,00;395,00;59;79,00;395,00;0,00;0,00;0,00;1d5h;22,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.330,00;Sim;106,00;530,00;60;106,00;530,00;0,00;0,00;0,00;20h45min;128,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:00:00;30min;1;1;V;189.975,00;190.075,00;192.330,00;No;20,00;100,00;61;20,00;100,00;0,00;0,00;0,00;5d1h;148,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.330,00;No;-36,00;-180,00;62;-36,00;-180,00;0,00;0,00;0,00;20h45min;112,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.330,00;No;42,00;210,00;63;42,00;210,00;0,00;0,00;0,00;1d1h;154,00 +WINJ26;23/02/2026 09:00:00;23/02/2026 09:15:00;15min;1;1;V;193.390,00;193.590,00;192.330,00;Sim;40,00;200,00;64;40,00;200,00;0,00;0,00;0,00;2d21h;194,00 +WINJ26;24/02/2026 09:30:00;24/02/2026 11:15:00;1h45min;1;1;V;193.610,00;193.240,00;192.330,00;No;-74,00;-370,00;65;-74,00;-370,00;0,00;0,00;0,00;1d;120,00 +WINJ26;25/02/2026 10:15:00;25/02/2026 10:45:00;30min;1;1;V;195.155,00;195.870,00;192.330,00;Sim;143,00;715,00;66;143,00;715,00;0,00;0,00;0,00;1d;263,00 +WINJ26;26/02/2026 12:45:00;26/02/2026 13:30:00;45min;1;1;C;193.110,00;193.930,00;192.330,00;No;164,00;820,00;67;164,00;820,00;0,00;0,00;0,00;1d2h;427,00 +WINJ26;26/02/2026 18:00:00;27/02/2026 09:15:00;15h15min;1;1;V;193.035,00;194.320,00;192.330,00;No;257,00;1.285,00;68;257,00;1.285,00;0,00;0,00;0,00;5h15min;684,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 11:15:00;1h45min;1;1;C;193.430,00;193.430,00;192.330,00;No;0;0;69;0;0;0,00;0,00;0,00;15h30min;684,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 12:00:00;1h30min;1;1;C;190.695,00;191.375,00;192.330,00;Sim;136,00;680,00;70;136,00;680,00;0,00;0,00;0,00;3d1h;820,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv new file mode 100644 index 0000000..bdf0314 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv @@ -0,0 +1,50 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.315,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;01/09/2025 13:00:00;02/09/2025 10:00:00;21h;1;1;V;150.500,00;152.000,00;192.315,00;No;300,00;1.500,00;2;300,00;1.500,00;0,00;0,00;0,00;5d4h;860,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.315,00;Sim;-40,00;-200,00;3;-40,00;-200,00;0,00;0,00;0,00;7d20h;820,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 11:00:00;1h30min;1;1;V;153.400,00;152.500,00;192.315,00;Sim;-180,00;-900,00;4;-180,00;-900,00;0,00;0,00;0,00;3d;640,00 +WINJ26;17/09/2025 16:00:00;19/09/2025 09:30:00;1d17h;1;1;V;156.150,00;156.000,00;192.315,00;Sim;-30,00;-150,00;5;-30,00;-150,00;0,00;0,00;0,00;5d6h;610,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 10:30:00;30min;1;1;V;156.000,00;156.250,00;192.315,00;Sim;50,00;250,00;6;50,00;250,00;0,00;0,00;0,00;7d18h;660,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 13:30:00;3h30min;1;1;C;151.100,00;151.240,00;192.315,00;No;28,00;140,00;7;28,00;140,00;0,00;0,00;0,00;18d;688,00 +WINJ26;23/10/2025 12:00:00;23/10/2025 12:30:00;30min;1;1;V;153.950,00;153.700,00;192.315,00;No;-50,00;-250,00;8;-50,00;-250,00;0,00;0,00;0,00;10d2h;638,00 +WINJ26;24/10/2025 11:00:00;27/10/2025 12:00:00;3d1h;1;1;V;155.660,00;155.000,00;192.315,00;Sim;-132,00;-660,00;9;-132,00;-660,00;0,00;0,00;0,00;23h;506,00 +WINJ26;04/11/2025 10:00:00;04/11/2025 16:00:00;6h;1;1;V;158.520,00;158.430,00;192.315,00;Sim;-18,00;-90,00;10;-18,00;-90,00;0,00;0,00;0,00;10d23h;488,00 +WINJ26;12/11/2025 09:30:00;12/11/2025 12:30:00;3h;1;1;V;165.300,00;166.300,00;192.315,00;Sim;200,00;1.000,00;11;200,00;1.000,00;0,00;0,00;0,00;7d23h;688,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.315,00;No;32,00;160,00;12;32,00;160,00;0,00;0,00;0,00;6d1h;720,00 +WINJ26;21/11/2025 11:00:00;21/11/2025 14:30:00;3h30min;1;1;C;161.780,00;162.635,00;192.315,00;Sim;171,00;855,00;13;171,00;855,00;0,00;0,00;0,00;3d;891,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 16:30:00;4h30min;1;1;V;167.065,00;166.300,00;192.315,00;No;-153,00;-765,00;14;-153,00;-765,00;0,00;0,00;0,00;7d1h;738,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 11:30:00;18h30min;1;1;V;171.250,00;169.165,00;192.315,00;Sim;-417,00;-2.085,00;15;-417,00;-2.085,00;0,00;0,00;0,00;5d5h;321,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.315,00;Sim;544,00;2.720,00;16;544,00;2.720,00;0,00;0,00;0,00;1d20h;865,00 +WINJ26;08/12/2025 09:30:00;08/12/2025 14:30:00;5h;1;1;C;166.180,00;166.150,00;192.315,00;No;-6,00;-30,00;17;-6,00;-30,00;0,00;0,00;0,00;2d20h;859,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 13:00:00;1h;1;1;C;163.700,00;164.830,00;192.315,00;Sim;226,00;1.130,00;18;226,00;1.130,00;0,00;0,00;0,00;1d2h;1.085,00 +WINJ26;15/12/2025 10:30:00;15/12/2025 14:00:00;3h30min;1;1;V;169.505,00;168.650,00;192.315,00;No;-171,00;-855,00;19;-171,00;-855,00;0,00;0,00;0,00;5d22h;914,00 +WINJ26;16/12/2025 17:00:00;17/12/2025 11:00:00;18h;1;1;C;166.200,00;163.230,00;192.315,00;No;-594,00;-2.970,00;20;-594,00;-2.970,00;0,00;0,00;0,00;1d6h;320,00 +WINJ26;17/12/2025 12:00:00;17/12/2025 15:30:00;3h30min;1;1;C;164.165,00;163.850,00;192.315,00;Sim;-63,00;-315,00;21;-63,00;-315,00;0,00;0,00;0,00;19h;257,00 +WINJ26;19/12/2025 13:00:00;19/12/2025 16:00:00;3h;1;1;V;165.000,00;165.465,00;192.315,00;No;93,00;465,00;22;93,00;465,00;0,00;0,00;0,00;2d1h;350,00 +WINJ26;23/12/2025 15:30:00;26/12/2025 09:30:00;2d18h;1;1;V;165.790,00;166.390,00;192.315,00;Sim;120,00;600,00;23;120,00;600,00;0,00;0,00;0,00;4d2h;470,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 11:00:00;1h30min;1;1;V;166.510,00;167.005,00;192.315,00;Sim;99,00;495,00;24;99,00;495,00;0,00;0,00;0,00;5d18h;569,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 14:30:00;3h30min;1;1;V;167.795,00;167.200,00;192.315,00;Sim;-119,00;-595,00;25;-119,00;-595,00;0,00;0,00;0,00;1d1h;450,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.315,00;No;85,00;425,00;26;85,00;425,00;0,00;0,00;0,00;3d5h;535,00 +WINJ26;06/01/2026 16:30:00;07/01/2026 10:00:00;17h30min;1;1;V;168.900,00;169.185,00;192.315,00;Sim;57,00;285,00;27;57,00;285,00;0,00;0,00;0,00;4d;592,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 10:00:00;18h;1;1;C;167.710,00;167.525,00;192.315,00;No;-37,00;-185,00;28;-37,00;-185,00;0,00;0,00;0,00;23h30min;555,00 +WINJ26;14/01/2026 13:00:00;14/01/2026 16:30:00;3h30min;1;1;V;169.760,00;168.615,00;192.315,00;No;-229,00;-1.145,00;29;-229,00;-1.145,00;0,00;0,00;0,00;6d21h;326,00 +WINJ26;16/01/2026 12:00:00;16/01/2026 15:30:00;3h30min;1;1;C;169.830,00;169.680,00;192.315,00;No;-30,00;-150,00;30;-30,00;-150,00;0,00;0,00;0,00;1d23h;296,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.315,00;Sim;302,00;1.510,00;31;302,00;1.510,00;0,00;0,00;0,00;3d22h;598,00 +WINJ26;22/01/2026 17:00:00;23/01/2026 11:00:00;18h;1;1;V;181.250,00;180.810,00;192.315,00;Sim;-88,00;-440,00;32;-88,00;-440,00;0,00;0,00;0,00;2d7h;510,00 +WINJ26;27/01/2026 15:00:00;28/01/2026 09:00:00;18h;1;1;V;187.620,00;187.170,00;192.315,00;Sim;-90,00;-450,00;33;-90,00;-450,00;0,00;0,00;0,00;4d22h;420,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.315,00;Sim;104,00;520,00;34;104,00;520,00;0,00;0,00;0,00;21h30min;524,00 +WINJ26;29/01/2026 11:30:00;29/01/2026 12:00:00;30min;1;1;V;189.110,00;190.745,00;192.315,00;Sim;327,00;1.635,00;35;327,00;1.635,00;0,00;0,00;0,00;23h;851,00 +WINJ26;29/01/2026 13:30:00;29/01/2026 17:00:00;3h30min;1;1;C;187.690,00;187.975,00;192.315,00;No;57,00;285,00;36;57,00;285,00;0,00;0,00;0,00;2h;908,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 10:00:00;2d18h;1;1;C;186.180,00;186.765,00;192.315,00;Sim;117,00;585,00;37;117,00;585,00;0,00;0,00;0,00;1d2h;1.025,00 +WINJ26;09/02/2026 10:30:00;09/02/2026 14:00:00;3h30min;1;1;V;188.945,00;187.640,00;192.315,00;No;-261,00;-1.305,00;38;-261,00;-1.305,00;0,00;0,00;0,00;9d18h;764,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 13:00:00;3h30min;1;1;V;190.815,00;189.915,00;192.315,00;Sim;-180,00;-900,00;39;-180,00;-900,00;0,00;0,00;0,00;23h;584,00 +WINJ26;11/02/2026 12:30:00;11/02/2026 16:00:00;3h30min;1;1;V;193.695,00;192.495,00;192.315,00;Sim;-240,00;-1.200,00;40;-240,00;-1.200,00;0,00;0,00;0,00;1d3h;344,00 +WINJ26;12/02/2026 16:00:00;13/02/2026 10:00:00;18h;1;1;C;191.680,00;189.220,00;192.315,00;No;-492,00;-2.460,00;41;-492,00;-2.460,00;0,00;0,00;0,00;1d3h;-148,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 11:00:00;30min;1;1;V;194.965,00;195.645,00;192.315,00;Sim;136,00;680,00;42;136,00;680,00;0,00;0,00;0,00;12d18h;-12,00 +WINJ26;26/02/2026 13:00:00;26/02/2026 16:00:00;3h;1;1;C;193.370,00;193.800,00;192.315,00;No;86,00;430,00;43;86,00;430,00;0,00;0,00;0,00;1d2h;74,00 +WINJ26;27/02/2026 17:30:00;02/03/2026 11:30:00;2d18h;1;1;C;192.145,00;190.460,00;192.315,00;Sim;-337,00;-1.685,00;44;-337,00;-1.685,00;0,00;0,00;0,00;1d4h;-263,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv new file mode 100644 index 0000000..64cda15 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv @@ -0,0 +1,30 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.315,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.315,00;No;-40,00;-200,00;2;-40,00;-200,00;0,00;0,00;0,00;13d;520,00 +WINJ26;12/09/2025 09:00:00;12/09/2025 11:00:00;2h;1;1;V;153.400,00;152.500,00;192.315,00;Sim;-180,00;-900,00;3;-180,00;-900,00;0,00;0,00;0,00;3d;340,00 +WINJ26;17/09/2025 16:00:00;19/09/2025 09:00:00;1d17h;1;1;V;156.150,00;156.000,00;192.315,00;Sim;-30,00;-150,00;4;-30,00;-150,00;0,00;0,00;0,00;5d7h;310,00 +WINJ26;22/09/2025 11:00:00;22/09/2025 12:00:00;1h;1;1;V;154.750,00;154.500,00;192.315,00;No;-50,00;-250,00;5;-50,00;-250,00;0,00;0,00;0,00;4d19h;260,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 11:00:00;1h;1;1;V;155.750,00;156.250,00;192.315,00;Sim;100,00;500,00;6;100,00;500,00;0,00;0,00;0,00;2d23h;360,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 11:00:00;1d1h;1;1;C;151.100,00;151.165,00;192.315,00;No;13,00;65,00;7;13,00;65,00;0,00;0,00;0,00;18d;373,00 +WINJ26;23/10/2025 18:00:00;27/10/2025 12:00:00;3d18h;1;1;V;155.660,00;154.600,00;192.315,00;No;-212,00;-1.060,00;8;-212,00;-1.060,00;0,00;0,00;0,00;10d8h;161,00 +WINJ26;03/11/2025 16:00:00;04/11/2025 10:00:00;18h;1;1;V;158.430,00;158.640,00;192.315,00;Sim;42,00;210,00;9;42,00;210,00;0,00;0,00;0,00;10d22h;203,00 +WINJ26;18/11/2025 11:00:00;19/11/2025 12:00:00;1d1h;1;1;C;164.500,00;164.100,00;192.315,00;No;-80,00;-400,00;10;-80,00;-400,00;0,00;0,00;0,00;14d19h;123,00 +WINJ26;28/11/2025 17:00:00;01/12/2025 11:00:00;2d18h;1;1;V;165.945,00;166.915,00;192.315,00;Sim;194,00;970,00;11;194,00;970,00;0,00;0,00;0,00;10d6h;317,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.315,00;Sim;387,00;1.935,00;12;387,00;1.935,00;0,00;0,00;0,00;6d20h;704,00 +WINJ26;08/12/2025 10:00:00;08/12/2025 18:00:00;8h;1;1;C;165.600,00;165.300,00;192.315,00;No;-60,00;-300,00;13;-60,00;-300,00;0,00;0,00;0,00;2d21h;644,00 +WINJ26;15/12/2025 11:00:00;16/12/2025 09:00:00;22h;1;1;V;168.995,00;169.330,00;192.315,00;No;67,00;335,00;14;67,00;335,00;0,00;0,00;0,00;7d1h;711,00 +WINJ26;29/12/2025 10:00:00;29/12/2025 13:00:00;3h;1;1;V;166.250,00;166.885,00;192.315,00;No;127,00;635,00;15;127,00;635,00;0,00;0,00;0,00;13d23h;838,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 18:00:00;7h;1;1;V;167.355,00;167.200,00;192.315,00;Sim;-31,00;-155,00;16;-31,00;-155,00;0,00;0,00;0,00;1d1h;807,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.315,00;Sim;114,00;570,00;17;114,00;570,00;0,00;0,00;0,00;7d23h;921,00 +WINJ26;26/01/2026 11:00:00;26/01/2026 18:00:00;7h;1;1;V;183.800,00;183.135,00;192.315,00;Sim;-133,00;-665,00;18;-133,00;-665,00;0,00;0,00;0,00;19d1h;788,00 +WINJ26;28/01/2026 13:00:00;29/01/2026 10:00:00;21h;1;1;V;191.650,00;188.670,00;192.315,00;Sim;-596,00;-2.980,00;19;-596,00;-2.980,00;0,00;0,00;0,00;2d2h;192,00 +WINJ26;29/01/2026 12:00:00;29/01/2026 13:00:00;1h;1;1;V;186.785,00;189.110,00;192.315,00;Sim;465,00;2.325,00;20;465,00;2.325,00;0,00;0,00;0,00;23h;657,00 +WINJ26;10/02/2026 10:00:00;10/02/2026 17:00:00;7h;1;1;V;189.975,00;189.645,00;192.315,00;Sim;-66,00;-330,00;21;-66,00;-330,00;0,00;0,00;0,00;11d22h;591,00 +WINJ26;13/02/2026 14:00:00;18/02/2026 15:00:00;5d1h;1;1;C;189.405,00;190.185,00;192.315,00;No;156,00;780,00;22;156,00;780,00;0,00;0,00;0,00;3d4h;747,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.315,00;Sim;131,00;655,00;23;131,00;655,00;0,00;0,00;0,00;11d21h;878,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.315,00;No;133,00;665,00;24;133,00;665,00;0,00;0,00;0,00;5d1h;1.011,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv new file mode 100644 index 0000000..ac7f866 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv @@ -0,0 +1,252 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 17:48:00;19/12/2025 18:06:00;18min;1;1;C;164.730,00;164.800,00;192.345,00;No;14,00;70,00;1;14,00;70,00;0,00;0,00;0,00; - ;14,00 +WINJ26;22/12/2025 09:12:00;22/12/2025 09:20:00;8min;1;1;V;164.925,00;165.200,00;192.345,00;No;55,00;275,00;2;55,00;275,00;0,00;0,00;0,00;2d15h;69,00 +WINJ26;22/12/2025 10:16:00;22/12/2025 10:44:00;28min;1;1;C;164.425,00;164.265,00;192.345,00;Sim;-32,00;-160,00;3;-32,00;-160,00;0,00;0,00;0,00;1h4min;37,00 +WINJ26;22/12/2025 11:32:00;22/12/2025 11:46:00;14min;1;1;C;163.570,00;163.840,00;192.345,00;Sim;54,00;270,00;4;54,00;270,00;0,00;0,00;0,00;1h16min;91,00 +WINJ26;22/12/2025 13:22:00;22/12/2025 13:34:00;12min;1;1;V;164.075,00;164.240,00;192.345,00;No;33,00;165,00;5;33,00;165,00;0,00;0,00;0,00;1h50min;124,00 +WINJ26;22/12/2025 15:32:00;22/12/2025 15:36:00;4min;1;1;C;164.130,00;164.255,00;192.345,00;No;25,00;125,00;6;25,00;125,00;0,00;0,00;0,00;2h10min;149,00 +WINJ26;23/12/2025 09:24:00;23/12/2025 09:52:00;28min;1;1;V;165.105,00;164.900,00;192.345,00;Sim;-41,00;-205,00;7;-41,00;-205,00;0,00;0,00;0,00;17h52min;108,00 +WINJ26;23/12/2025 10:24:00;23/12/2025 10:28:00;4min;1;1;V;165.360,00;165.370,00;192.345,00;Sim;2,00;10,00;8;2,00;10,00;0,00;0,00;0,00;1h;110,00 +WINJ26;23/12/2025 11:26:00;23/12/2025 11:34:00;8min;1;1;C;165.355,00;165.550,00;192.345,00;No;39,00;195,00;9;39,00;195,00;0,00;0,00;0,00;1h2min;149,00 +WINJ26;23/12/2025 12:24:00;23/12/2025 12:46:00;22min;1;1;V;166.300,00;166.325,00;192.345,00;Sim;5,00;25,00;10;5,00;25,00;0,00;0,00;0,00;58min;154,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:24:00;4min;1;1;C;166.425,00;166.425,00;192.345,00;No;0;0;11;0;0;0,00;0,00;0,00;2h56min;154,00 +WINJ26;26/12/2025 09:10:00;26/12/2025 09:36:00;26min;1;1;C;165.870,00;165.700,00;192.345,00;Sim;-34,00;-170,00;12;-34,00;-170,00;0,00;0,00;0,00;2d17h;120,00 +WINJ26;26/12/2025 11:44:00;26/12/2025 11:56:00;12min;1;1;V;165.880,00;166.015,00;192.345,00;No;27,00;135,00;13;27,00;135,00;0,00;0,00;0,00;2h34min;147,00 +WINJ26;26/12/2025 13:38:00;26/12/2025 14:02:00;24min;1;1;C;166.065,00;166.145,00;192.345,00;No;16,00;80,00;14;16,00;80,00;0,00;0,00;0,00;1h54min;163,00 +WINJ26;26/12/2025 14:22:00;26/12/2025 14:36:00;14min;1;1;V;166.375,00;166.355,00;192.345,00;Sim;-4,00;-20,00;15;-4,00;-20,00;0,00;0,00;0,00;44min;159,00 +WINJ26;29/12/2025 09:02:00;29/12/2025 09:16:00;14min;1;1;V;167.000,00;167.230,00;192.345,00;Sim;46,00;230,00;16;46,00;230,00;0,00;0,00;0,00;2d18h;205,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.345,00;No;5,00;25,00;17;5,00;25,00;0,00;0,00;0,00;5h48min;210,00 +WINJ26;29/12/2025 16:06:00;29/12/2025 16:12:00;6min;1;1;C;165.845,00;165.920,00;192.345,00;Sim;15,00;75,00;18;15,00;75,00;0,00;0,00;0,00;1h16min;225,00 +WINJ26;29/12/2025 16:38:00;29/12/2025 17:16:00;38min;1;1;V;166.345,00;165.975,00;192.345,00;No;-74,00;-370,00;19;-74,00;-370,00;0,00;0,00;0,00;32min;151,00 +WINJ26;30/12/2025 09:44:00;30/12/2025 10:02:00;18min;1;1;V;167.550,00;167.635,00;192.345,00;Sim;17,00;85,00;20;17,00;85,00;0,00;0,00;0,00;17h6min;168,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.345,00;No;26,00;130,00;21;26,00;130,00;0,00;0,00;0,00;1h20min;194,00 +WINJ26;30/12/2025 12:08:00;30/12/2025 12:14:00;6min;1;1;C;167.105,00;167.220,00;192.345,00;Sim;23,00;115,00;22;23,00;115,00;0,00;0,00;0,00;1h4min;217,00 +WINJ26;30/12/2025 17:58:00;30/12/2025 18:24:00;26min;1;1;C;167.470,00;167.090,00;192.345,00;No;-76,00;-380,00;23;-76,00;-380,00;0,00;0,00;0,00;5h50min;141,00 +WINJ26;02/01/2026 09:08:00;02/01/2026 09:32:00;24min;1;1;V;167.525,00;167.740,00;192.345,00;Sim;43,00;215,00;24;43,00;215,00;0,00;0,00;0,00;2d15h;184,00 +WINJ26;02/01/2026 09:56:00;02/01/2026 10:10:00;14min;1;1;V;167.810,00;167.965,00;192.345,00;Sim;31,00;155,00;25;31,00;155,00;0,00;0,00;0,00;48min;215,00 +WINJ26;02/01/2026 10:34:00;02/01/2026 11:00:00;26min;1;1;C;167.515,00;166.705,00;192.345,00;No;-162,00;-810,00;26;-162,00;-810,00;0,00;0,00;0,00;38min;53,00 +WINJ26;02/01/2026 11:06:00;02/01/2026 11:14:00;8min;1;1;C;166.875,00;167.125,00;192.345,00;Sim;50,00;250,00;27;50,00;250,00;0,00;0,00;0,00;32min;103,00 +WINJ26;02/01/2026 12:26:00;02/01/2026 12:34:00;8min;1;1;C;166.380,00;166.525,00;192.345,00;Sim;29,00;145,00;28;29,00;145,00;0,00;0,00;0,00;1h20min;132,00 +WINJ26;02/01/2026 13:56:00;02/01/2026 14:34:00;38min;1;1;C;166.130,00;166.085,00;192.345,00;Sim;-9,00;-45,00;29;-9,00;-45,00;0,00;0,00;0,00;1h30min;123,00 +WINJ26;02/01/2026 16:28:00;02/01/2026 16:52:00;24min;1;1;V;166.220,00;166.295,00;192.345,00;No;15,00;75,00;30;15,00;75,00;0,00;0,00;0,00;2h32min;138,00 +WINJ26;05/01/2026 09:42:00;05/01/2026 09:46:00;4min;1;1;V;166.465,00;166.675,00;192.345,00;Sim;42,00;210,00;31;42,00;210,00;0,00;0,00;0,00;2d17h;180,00 +WINJ26;05/01/2026 11:10:00;05/01/2026 11:34:00;24min;1;1;V;166.525,00;166.565,00;192.345,00;No;8,00;40,00;32;8,00;40,00;0,00;0,00;0,00;1h28min;188,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:10:00;4min;1;1;V;167.030,00;167.080,00;192.345,00;Sim;10,00;50,00;33;10,00;50,00;0,00;0,00;0,00;1h56min;198,00 +WINJ26;05/01/2026 13:44:00;05/01/2026 14:16:00;32min;1;1;V;167.445,00;167.300,00;192.345,00;Sim;-29,00;-145,00;34;-29,00;-145,00;0,00;0,00;0,00;38min;169,00 +WINJ26;05/01/2026 15:04:00;05/01/2026 15:34:00;30min;1;1;V;167.705,00;167.590,00;192.345,00;Sim;-23,00;-115,00;35;-23,00;-115,00;0,00;0,00;0,00;1h20min;146,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:30:00;20min;1;1;C;167.545,00;167.580,00;192.345,00;No;7,00;35,00;36;7,00;35,00;0,00;0,00;0,00;2h6min;153,00 +WINJ26;05/01/2026 17:38:00;05/01/2026 18:02:00;24min;1;1;V;167.645,00;167.665,00;192.345,00;Sim;4,00;20,00;37;4,00;20,00;0,00;0,00;0,00;28min;157,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 09:56:00;26min;1;1;V;168.830,00;168.485,00;192.345,00;Sim;-69,00;-345,00;38;-69,00;-345,00;0,00;0,00;0,00;15h52min;88,00 +WINJ26;06/01/2026 09:58:00;06/01/2026 10:24:00;26min;1;1;V;169.410,00;168.775,00;192.345,00;Sim;-127,00;-635,00;39;-127,00;-635,00;0,00;0,00;0,00;28min;-39,00 +WINJ26;06/01/2026 11:36:00;06/01/2026 11:38:00;2min;1;1;C;169.290,00;169.445,00;192.345,00;No;31,00;155,00;40;31,00;155,00;0,00;0,00;0,00;1h38min;-8,00 +WINJ26;06/01/2026 16:38:00;06/01/2026 17:10:00;32min;1;1;C;169.210,00;169.190,00;192.345,00;Sim;-4,00;-20,00;41;-4,00;-20,00;0,00;0,00;0,00;5h2min;-12,00 +WINJ26;07/01/2026 10:28:00;07/01/2026 10:38:00;10min;1;1;C;168.510,00;168.765,00;192.345,00;Sim;51,00;255,00;42;51,00;255,00;0,00;0,00;0,00;17h50min;39,00 +WINJ26;07/01/2026 11:22:00;07/01/2026 11:48:00;26min;1;1;C;168.120,00;167.845,00;192.345,00;Sim;-55,00;-275,00;43;-55,00;-275,00;0,00;0,00;0,00;54min;-16,00 +WINJ26;07/01/2026 12:10:00;07/01/2026 12:34:00;24min;1;1;C;167.475,00;167.575,00;192.345,00;Sim;20,00;100,00;44;20,00;100,00;0,00;0,00;0,00;48min;4,00 +WINJ26;08/01/2026 11:46:00;08/01/2026 11:50:00;4min;1;1;V;167.880,00;167.960,00;192.345,00;No;16,00;80,00;45;16,00;80,00;0,00;0,00;0,00;23h36min;20,00 +WINJ26;09/01/2026 09:04:00;09/01/2026 09:12:00;8min;1;1;V;168.140,00;168.305,00;192.345,00;Sim;33,00;165,00;46;33,00;165,00;0,00;0,00;0,00;21h18min;53,00 +WINJ26;09/01/2026 09:26:00;09/01/2026 09:52:00;26min;1;1;C;168.045,00;168.010,00;192.345,00;No;-7,00;-35,00;47;-7,00;-35,00;0,00;0,00;0,00;22min;46,00 +WINJ26;09/01/2026 14:10:00;09/01/2026 14:42:00;32min;1;1;V;169.555,00;169.550,00;192.345,00;Sim;-1,00;-5,00;48;-1,00;-5,00;0,00;0,00;0,00;4h44min;45,00 +WINJ26;09/01/2026 14:58:00;09/01/2026 15:28:00;30min;1;1;C;169.505,00;169.230,00;192.345,00;No;-55,00;-275,00;49;-55,00;-275,00;0,00;0,00;0,00;48min;-10,00 +WINJ26;09/01/2026 15:32:00;09/01/2026 15:42:00;10min;1;1;C;169.345,00;169.355,00;192.345,00;Sim;2,00;10,00;50;2,00;10,00;0,00;0,00;0,00;34min;-8,00 +WINJ26;09/01/2026 16:22:00;09/01/2026 16:52:00;30min;1;1;C;169.035,00;169.085,00;192.345,00;Sim;10,00;50,00;51;10,00;50,00;0,00;0,00;0,00;50min;2,00 +WINJ26;09/01/2026 17:54:00;09/01/2026 18:22:00;28min;1;1;C;168.760,00;168.565,00;192.345,00;Sim;-39,00;-195,00;52;-39,00;-195,00;0,00;0,00;0,00;1h32min;-37,00 +WINJ26;12/01/2026 09:00:00;12/01/2026 09:02:00;2min;1;1;C;168.590,00;168.705,00;192.345,00;Sim;23,00;115,00;53;23,00;115,00;0,00;0,00;0,00;2d15h;-14,00 +WINJ26;12/01/2026 10:14:00;12/01/2026 10:20:00;6min;1;1;C;168.305,00;168.475,00;192.345,00;Sim;34,00;170,00;54;34,00;170,00;0,00;0,00;0,00;1h14min;20,00 +WINJ26;12/01/2026 11:12:00;12/01/2026 11:20:00;8min;1;1;C;167.800,00;167.960,00;192.345,00;Sim;32,00;160,00;55;32,00;160,00;0,00;0,00;0,00;58min;52,00 +WINJ26;12/01/2026 11:44:00;12/01/2026 12:10:00;26min;1;1;V;168.415,00;168.525,00;192.345,00;No;22,00;110,00;56;22,00;110,00;0,00;0,00;0,00;32min;74,00 +WINJ26;13/01/2026 09:06:00;13/01/2026 09:08:00;2min;1;1;V;168.400,00;168.695,00;192.345,00;Sim;59,00;295,00;57;59,00;295,00;0,00;0,00;0,00;21h22min;133,00 +WINJ26;13/01/2026 09:56:00;13/01/2026 10:22:00;26min;1;1;C;167.785,00;167.625,00;192.345,00;Sim;-32,00;-160,00;58;-32,00;-160,00;0,00;0,00;0,00;50min;101,00 +WINJ26;13/01/2026 11:14:00;13/01/2026 11:16:00;2min;1;1;V;167.750,00;167.895,00;192.345,00;No;29,00;145,00;59;29,00;145,00;0,00;0,00;0,00;1h18min;130,00 +WINJ26;13/01/2026 12:18:00;13/01/2026 12:42:00;24min;1;1;C;167.265,00;167.210,00;192.345,00;Sim;-11,00;-55,00;60;-11,00;-55,00;0,00;0,00;0,00;1h4min;119,00 +WINJ26;14/01/2026 09:40:00;14/01/2026 10:06:00;26min;1;1;V;168.125,00;168.050,00;192.345,00;Sim;-15,00;-75,00;61;-15,00;-75,00;0,00;0,00;0,00;21h22min;104,00 +WINJ26;14/01/2026 11:50:00;14/01/2026 12:18:00;28min;1;1;V;168.945,00;168.580,00;192.345,00;Sim;-73,00;-365,00;62;-73,00;-365,00;0,00;0,00;0,00;2h10min;31,00 +WINJ26;14/01/2026 16:10:00;14/01/2026 16:36:00;26min;1;1;V;169.800,00;169.600,00;192.345,00;Sim;-40,00;-200,00;63;-40,00;-200,00;0,00;0,00;0,00;4h20min;-9,00 +WINJ26;14/01/2026 16:56:00;14/01/2026 17:02:00;6min;1;1;V;169.750,00;169.930,00;192.345,00;Sim;36,00;180,00;64;36,00;180,00;0,00;0,00;0,00;46min;27,00 +WINJ26;14/01/2026 18:22:00;15/01/2026 09:02:00;14h40min;1;1;V;170.355,00;170.515,00;192.345,00;Sim;32,00;160,00;65;32,00;160,00;0,00;0,00;0,00;1h26min;59,00 +WINJ26;15/01/2026 10:06:00;15/01/2026 10:08:00;2min;1;1;V;170.600,00;170.840,00;192.345,00;Sim;48,00;240,00;66;48,00;240,00;0,00;0,00;0,00;15h44min;107,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 12:00:00;16min;1;1;C;170.070,00;170.120,00;192.345,00;No;10,00;50,00;67;10,00;50,00;0,00;0,00;0,00;1h38min;117,00 +WINJ26;15/01/2026 12:38:00;15/01/2026 13:00:00;22min;1;1;V;170.500,00;170.495,00;192.345,00;No;-1,00;-5,00;68;-1,00;-5,00;0,00;0,00;0,00;54min;116,00 +WINJ26;15/01/2026 17:58:00;15/01/2026 18:02:00;4min;1;1;C;170.600,00;170.700,00;192.345,00;No;20,00;100,00;69;20,00;100,00;0,00;0,00;0,00;5h20min;136,00 +WINJ26;16/01/2026 09:20:00;16/01/2026 09:28:00;8min;1;1;V;171.005,00;171.105,00;192.345,00;Sim;20,00;100,00;70;20,00;100,00;0,00;0,00;0,00;15h22min;156,00 +WINJ26;16/01/2026 10:12:00;16/01/2026 10:40:00;28min;1;1;C;170.700,00;170.465,00;192.345,00;No;-47,00;-235,00;71;-47,00;-235,00;0,00;0,00;0,00;52min;109,00 +WINJ26;16/01/2026 10:54:00;16/01/2026 11:20:00;26min;1;1;C;170.335,00;169.710,00;192.345,00;Sim;-125,00;-625,00;72;-125,00;-625,00;0,00;0,00;0,00;42min;-16,00 +WINJ26;16/01/2026 11:36:00;16/01/2026 11:48:00;12min;1;1;C;169.615,00;169.830,00;192.345,00;Sim;43,00;215,00;73;43,00;215,00;0,00;0,00;0,00;42min;27,00 +WINJ26;16/01/2026 12:46:00;16/01/2026 12:50:00;4min;1;1;C;169.385,00;169.500,00;192.345,00;Sim;23,00;115,00;74;23,00;115,00;0,00;0,00;0,00;1h10min;50,00 +WINJ26;16/01/2026 13:34:00;16/01/2026 13:58:00;24min;1;1;V;169.505,00;169.595,00;192.345,00;No;18,00;90,00;75;18,00;90,00;0,00;0,00;0,00;48min;68,00 +WINJ26;20/01/2026 09:36:00;20/01/2026 09:46:00;10min;1;1;C;168.420,00;168.535,00;192.345,00;Sim;23,00;115,00;76;23,00;115,00;0,00;0,00;0,00;3d20h;91,00 +WINJ26;20/01/2026 10:26:00;20/01/2026 10:30:00;4min;1;1;V;168.895,00;169.135,00;192.345,00;No;48,00;240,00;77;48,00;240,00;0,00;0,00;0,00;50min;139,00 +WINJ26;20/01/2026 14:38:00;20/01/2026 15:06:00;28min;1;1;C;170.940,00;170.990,00;192.345,00;No;10,00;50,00;78;10,00;50,00;0,00;0,00;0,00;4h12min;149,00 +WINJ26;20/01/2026 16:08:00;20/01/2026 16:28:00;20min;1;1;C;170.640,00;170.715,00;192.345,00;Sim;15,00;75,00;79;15,00;75,00;0,00;0,00;0,00;1h30min;164,00 +WINJ26;20/01/2026 18:08:00;20/01/2026 18:22:00;14min;1;1;V;171.015,00;171.080,00;192.345,00;Sim;13,00;65,00;80;13,00;65,00;0,00;0,00;0,00;2h;177,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.345,00;No;-6,00;-30,00;81;-6,00;-30,00;0,00;0,00;0,00;14h54min;171,00 +WINJ26;21/01/2026 09:34:00;21/01/2026 10:00:00;26min;1;1;V;173.065,00;172.500,00;192.345,00;Sim;-113,00;-565,00;82;-113,00;-565,00;0,00;0,00;0,00;32min;58,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 10:44:00;12min;1;1;V;173.400,00;173.430,00;192.345,00;Sim;6,00;30,00;83;6,00;30,00;0,00;0,00;0,00;58min;64,00 +WINJ26;21/01/2026 11:14:00;21/01/2026 11:20:00;6min;1;1;V;173.820,00;173.970,00;192.345,00;Sim;30,00;150,00;84;30,00;150,00;0,00;0,00;0,00;42min;94,00 +WINJ26;21/01/2026 11:54:00;21/01/2026 12:20:00;26min;1;1;V;174.675,00;174.600,00;192.345,00;Sim;-15,00;-75,00;85;-15,00;-75,00;0,00;0,00;0,00;40min;79,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.345,00;Sim;9,00;45,00;86;9,00;45,00;0,00;0,00;0,00;1h44min;88,00 +WINJ26;21/01/2026 14:56:00;21/01/2026 14:58:00;2min;1;1;V;174.965,00;175.030,00;192.345,00;Sim;13,00;65,00;87;13,00;65,00;0,00;0,00;0,00;1h18min;101,00 +WINJ26;21/01/2026 15:22:00;21/01/2026 15:48:00;26min;1;1;V;175.855,00;175.210,00;192.345,00;Sim;-129,00;-645,00;88;-129,00;-645,00;0,00;0,00;0,00;26min;-28,00 +WINJ26;21/01/2026 16:06:00;21/01/2026 16:16:00;10min;1;1;V;175.670,00;175.725,00;192.345,00;Sim;11,00;55,00;89;11,00;55,00;0,00;0,00;0,00;44min;-17,00 +WINJ26;21/01/2026 16:54:00;21/01/2026 17:22:00;28min;1;1;V;176.620,00;176.275,00;192.345,00;Sim;-69,00;-345,00;90;-69,00;-345,00;0,00;0,00;0,00;48min;-86,00 +WINJ26;21/01/2026 18:02:00;21/01/2026 18:12:00;10min;1;1;V;176.820,00;177.100,00;192.345,00;Sim;56,00;280,00;91;56,00;280,00;0,00;0,00;0,00;1h8min;-30,00 +WINJ26;22/01/2026 09:40:00;22/01/2026 10:06:00;26min;1;1;V;177.800,00;177.700,00;192.345,00;Sim;-20,00;-100,00;92;-20,00;-100,00;0,00;0,00;0,00;15h38min;-50,00 +WINJ26;22/01/2026 10:22:00;22/01/2026 10:34:00;12min;1;1;V;177.825,00;178.095,00;192.345,00;Sim;54,00;270,00;93;54,00;270,00;0,00;0,00;0,00;42min;4,00 +WINJ26;22/01/2026 11:38:00;22/01/2026 12:04:00;26min;1;1;V;179.855,00;179.710,00;192.345,00;Sim;-29,00;-145,00;94;-29,00;-145,00;0,00;0,00;0,00;1h16min;-25,00 +WINJ26;22/01/2026 12:48:00;22/01/2026 13:14:00;26min;1;1;V;181.695,00;181.945,00;192.345,00;Sim;50,00;250,00;95;50,00;250,00;0,00;0,00;0,00;1h10min;25,00 +WINJ26;22/01/2026 13:24:00;22/01/2026 13:32:00;8min;1;1;V;181.750,00;182.140,00;192.345,00;Sim;78,00;390,00;96;78,00;390,00;0,00;0,00;0,00;36min;103,00 +WINJ26;22/01/2026 16:18:00;22/01/2026 16:30:00;12min;1;1;C;180.825,00;181.150,00;192.345,00;No;65,00;325,00;97;65,00;325,00;0,00;0,00;0,00;2h54min;168,00 +WINJ26;22/01/2026 17:04:00;22/01/2026 17:24:00;20min;1;1;C;180.500,00;180.575,00;192.345,00;Sim;15,00;75,00;98;15,00;75,00;0,00;0,00;0,00;46min;183,00 +WINJ26;23/01/2026 09:16:00;23/01/2026 09:18:00;2min;1;1;V;181.370,00;181.800,00;192.345,00;No;86,00;430,00;99;86,00;430,00;0,00;0,00;0,00;16h12min;269,00 +WINJ26;23/01/2026 13:04:00;23/01/2026 13:12:00;8min;1;1;V;182.350,00;182.505,00;192.345,00;Sim;31,00;155,00;100;31,00;155,00;0,00;0,00;0,00;3h48min;300,00 +WINJ26;23/01/2026 15:56:00;23/01/2026 16:22:00;26min;1;1;V;183.225,00;182.600,00;192.345,00;Sim;-125,00;-625,00;101;-125,00;-625,00;0,00;0,00;0,00;2h52min;175,00 +WINJ26;23/01/2026 16:34:00;23/01/2026 16:58:00;24min;1;1;V;183.170,00;183.160,00;192.345,00;Sim;-2,00;-10,00;102;-2,00;-10,00;0,00;0,00;0,00;38min;173,00 +WINJ26;23/01/2026 17:32:00;23/01/2026 17:34:00;2min;1;1;V;184.350,00;184.505,00;192.345,00;Sim;31,00;155,00;103;31,00;155,00;0,00;0,00;0,00;58min;204,00 +WINJ26;26/01/2026 11:06:00;26/01/2026 11:30:00;24min;1;1;C;183.130,00;183.185,00;192.345,00;No;11,00;55,00;104;11,00;55,00;0,00;0,00;0,00;2d17h;215,00 +WINJ26;26/01/2026 11:34:00;26/01/2026 11:48:00;14min;1;1;V;183.390,00;184.025,00;192.345,00;No;127,00;635,00;105;127,00;635,00;0,00;0,00;0,00;28min;342,00 +WINJ26;26/01/2026 14:40:00;26/01/2026 14:52:00;12min;1;1;V;183.835,00;184.030,00;192.345,00;Sim;39,00;195,00;106;39,00;195,00;0,00;0,00;0,00;3h6min;381,00 +WINJ26;26/01/2026 17:38:00;26/01/2026 18:02:00;24min;1;1;V;183.730,00;183.945,00;192.345,00;No;43,00;215,00;107;43,00;215,00;0,00;0,00;0,00;2h58min;424,00 +WINJ26;26/01/2026 18:12:00;27/01/2026 09:02:00;14h50min;1;1;C;183.440,00;185.465,00;192.345,00;No;405,00;2.025,00;108;405,00;2.025,00;0,00;0,00;0,00;34min;829,00 +WINJ26;27/01/2026 09:22:00;27/01/2026 09:50:00;28min;1;1;V;186.220,00;185.210,00;192.345,00;Sim;-202,00;-1.010,00;109;-202,00;-1.010,00;0,00;0,00;0,00;15h10min;627,00 +WINJ26;27/01/2026 10:44:00;27/01/2026 11:10:00;26min;1;1;V;187.150,00;186.440,00;192.345,00;Sim;-142,00;-710,00;110;-142,00;-710,00;0,00;0,00;0,00;1h22min;485,00 +WINJ26;27/01/2026 11:20:00;27/01/2026 11:32:00;12min;1;1;V;187.240,00;187.480,00;192.345,00;Sim;48,00;240,00;111;48,00;240,00;0,00;0,00;0,00;36min;533,00 +WINJ26;27/01/2026 14:20:00;27/01/2026 14:48:00;28min;1;1;C;187.835,00;187.845,00;192.345,00;No;2,00;10,00;112;2,00;10,00;0,00;0,00;0,00;3h;535,00 +WINJ26;27/01/2026 17:18:00;27/01/2026 17:26:00;8min;1;1;V;187.305,00;187.650,00;192.345,00;Sim;69,00;345,00;113;69,00;345,00;0,00;0,00;0,00;2h58min;604,00 +WINJ26;28/01/2026 09:04:00;28/01/2026 09:32:00;28min;1;1;V;187.510,00;187.440,00;192.345,00;No;-14,00;-70,00;114;-14,00;-70,00;0,00;0,00;0,00;15h46min;590,00 +WINJ26;28/01/2026 10:46:00;28/01/2026 11:08:00;22min;1;1;V;189.010,00;189.300,00;192.345,00;Sim;58,00;290,00;115;58,00;290,00;0,00;0,00;0,00;1h42min;648,00 +WINJ26;28/01/2026 12:34:00;28/01/2026 12:48:00;14min;1;1;C;188.375,00;188.640,00;192.345,00;No;53,00;265,00;116;53,00;265,00;0,00;0,00;0,00;1h48min;701,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:10:00;10min;1;1;C;187.955,00;188.025,00;192.345,00;Sim;14,00;70,00;117;14,00;70,00;0,00;0,00;0,00;3h26min;715,00 +WINJ26;28/01/2026 17:20:00;28/01/2026 17:48:00;28min;1;1;V;189.750,00;188.875,00;192.345,00;No;-175,00;-875,00;118;-175,00;-875,00;0,00;0,00;0,00;1h20min;540,00 +WINJ26;28/01/2026 17:50:00;28/01/2026 18:16:00;26min;1;1;V;189.830,00;189.510,00;192.345,00;Sim;-64,00;-320,00;119;-64,00;-320,00;0,00;0,00;0,00;30min;476,00 +WINJ26;29/01/2026 12:04:00;29/01/2026 12:30:00;26min;1;1;C;189.130,00;188.090,00;192.345,00;No;-208,00;-1.040,00;120;-208,00;-1.040,00;0,00;0,00;0,00;18h14min;268,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:42:00;8min;1;1;V;188.215,00;188.415,00;192.345,00;No;40,00;200,00;121;40,00;200,00;0,00;0,00;0,00;2h30min;308,00 +WINJ26;30/01/2026 09:14:00;30/01/2026 09:18:00;4min;1;1;C;187.180,00;187.520,00;192.345,00;Sim;68,00;340,00;122;68,00;340,00;0,00;0,00;0,00;18h40min;376,00 +WINJ26;30/01/2026 13:18:00;30/01/2026 13:46:00;28min;1;1;C;187.390,00;187.300,00;192.345,00;No;-18,00;-90,00;123;-18,00;-90,00;0,00;0,00;0,00;4h4min;358,00 +WINJ26;30/01/2026 13:58:00;30/01/2026 14:24:00;26min;1;1;C;187.105,00;186.525,00;192.345,00;Sim;-116,00;-580,00;124;-116,00;-580,00;0,00;0,00;0,00;40min;242,00 +WINJ26;30/01/2026 15:28:00;30/01/2026 15:46:00;18min;1;1;C;185.350,00;185.350,00;192.345,00;Sim;0;0;125;0;0;0,00;0,00;0,00;1h30min;242,00 +WINJ26;30/01/2026 16:26:00;30/01/2026 16:32:00;6min;1;1;V;186.000,00;186.400,00;192.345,00;No;80,00;400,00;126;80,00;400,00;0,00;0,00;0,00;58min;322,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:26:00;6min;1;1;C;185.670,00;185.795,00;192.345,00;No;25,00;125,00;127;25,00;125,00;0,00;0,00;0,00;54min;347,00 +WINJ26;02/02/2026 10:44:00;02/02/2026 11:10:00;26min;1;1;V;187.205,00;187.300,00;192.345,00;Sim;19,00;95,00;128;19,00;95,00;0,00;0,00;0,00;2d17h;366,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.345,00;No;40,00;200,00;129;40,00;200,00;0,00;0,00;0,00;48min;406,00 +WINJ26;02/02/2026 13:56:00;02/02/2026 14:06:00;10min;1;1;V;187.120,00;187.150,00;192.345,00;No;6,00;30,00;130;6,00;30,00;0,00;0,00;0,00;2h24min;412,00 +WINJ26;02/02/2026 17:38:00;02/02/2026 18:04:00;26min;1;1;V;187.475,00;187.045,00;192.345,00;No;-86,00;-430,00;131;-86,00;-430,00;0,00;0,00;0,00;3h42min;326,00 +WINJ26;03/02/2026 09:12:00;03/02/2026 09:38:00;26min;1;1;V;189.500,00;188.515,00;192.345,00;Sim;-197,00;-985,00;132;-197,00;-985,00;0,00;0,00;0,00;15h34min;129,00 +WINJ26;03/02/2026 09:42:00;03/02/2026 10:08:00;26min;1;1;V;189.695,00;189.335,00;192.345,00;Sim;-72,00;-360,00;133;-72,00;-360,00;0,00;0,00;0,00;30min;57,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:54:00;26min;1;1;V;191.900,00;191.120,00;192.345,00;Sim;-156,00;-780,00;134;-156,00;-780,00;0,00;0,00;0,00;1h46min;-99,00 +WINJ26;03/02/2026 12:18:00;03/02/2026 12:28:00;10min;1;1;C;190.980,00;191.170,00;192.345,00;No;38,00;190,00;135;38,00;190,00;0,00;0,00;0,00;50min;-61,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 14:46:00;26min;1;1;C;190.335,00;189.655,00;192.345,00;Sim;-136,00;-680,00;136;-136,00;-680,00;0,00;0,00;0,00;2h2min;-197,00 +WINJ26;03/02/2026 14:48:00;03/02/2026 15:14:00;26min;1;1;C;189.870,00;189.675,00;192.345,00;Sim;-39,00;-195,00;137;-39,00;-195,00;0,00;0,00;0,00;28min;-236,00 +WINJ26;04/02/2026 09:36:00;04/02/2026 09:48:00;12min;1;1;C;189.165,00;189.350,00;192.345,00;Sim;37,00;185,00;138;37,00;185,00;0,00;0,00;0,00;18h48min;-199,00 +WINJ26;04/02/2026 11:26:00;04/02/2026 11:52:00;26min;1;1;C;188.100,00;187.520,00;192.345,00;Sim;-116,00;-580,00;139;-116,00;-580,00;0,00;0,00;0,00;1h50min;-315,00 +WINJ26;04/02/2026 12:28:00;04/02/2026 12:32:00;4min;1;1;V;187.745,00;187.850,00;192.345,00;No;21,00;105,00;140;21,00;105,00;0,00;0,00;0,00;1h2min;-294,00 +WINJ26;04/02/2026 13:54:00;04/02/2026 13:58:00;4min;1;1;C;186.205,00;186.385,00;192.345,00;Sim;36,00;180,00;141;36,00;180,00;0,00;0,00;0,00;1h26min;-258,00 +WINJ26;04/02/2026 14:14:00;04/02/2026 14:16:00;2min;1;1;C;186.230,00;186.350,00;192.345,00;No;24,00;120,00;142;24,00;120,00;0,00;0,00;0,00;20min;-234,00 +WINJ26;04/02/2026 14:44:00;04/02/2026 15:10:00;26min;1;1;C;185.535,00;185.250,00;192.345,00;Sim;-57,00;-285,00;143;-57,00;-285,00;0,00;0,00;0,00;30min;-291,00 +WINJ26;04/02/2026 16:04:00;04/02/2026 16:18:00;14min;1;1;C;184.800,00;185.015,00;192.345,00;Sim;43,00;215,00;144;43,00;215,00;0,00;0,00;0,00;1h20min;-248,00 +WINJ26;04/02/2026 17:44:00;04/02/2026 17:52:00;8min;1;1;V;185.760,00;185.940,00;192.345,00;No;36,00;180,00;145;36,00;180,00;0,00;0,00;0,00;1h40min;-212,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.345,00;Sim;-3,00;-15,00;146;-3,00;-15,00;0,00;0,00;0,00;15h22min;-215,00 +WINJ26;05/02/2026 09:36:00;05/02/2026 09:40:00;4min;1;1;V;186.285,00;186.670,00;192.345,00;Sim;77,00;385,00;147;77,00;385,00;0,00;0,00;0,00;30min;-138,00 +WINJ26;05/02/2026 11:06:00;05/02/2026 11:30:00;24min;1;1;V;187.300,00;187.320,00;192.345,00;Sim;4,00;20,00;148;4,00;20,00;0,00;0,00;0,00;1h30min;-134,00 +WINJ26;05/02/2026 11:50:00;05/02/2026 11:58:00;8min;1;1;V;187.715,00;188.260,00;192.345,00;Sim;109,00;545,00;149;109,00;545,00;0,00;0,00;0,00;44min;-25,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.345,00;No;41,00;205,00;150;41,00;205,00;0,00;0,00;0,00;42min;16,00 +WINJ26;05/02/2026 15:54:00;05/02/2026 16:00:00;6min;1;1;C;187.440,00;187.450,00;192.345,00;No;2,00;10,00;151;2,00;10,00;0,00;0,00;0,00;3h22min;18,00 +WINJ26;05/02/2026 16:56:00;05/02/2026 17:00:00;4min;1;1;C;187.225,00;187.375,00;192.345,00;Sim;30,00;150,00;152;30,00;150,00;0,00;0,00;0,00;1h2min;48,00 +WINJ26;06/02/2026 09:08:00;06/02/2026 09:20:00;12min;1;1;V;186.900,00;187.700,00;192.345,00;No;160,00;800,00;153;160,00;800,00;0,00;0,00;0,00;16h12min;208,00 +WINJ26;06/02/2026 13:24:00;06/02/2026 13:28:00;4min;1;1;V;186.600,00;186.730,00;192.345,00;No;26,00;130,00;154;26,00;130,00;0,00;0,00;0,00;4h16min;234,00 +WINJ26;06/02/2026 13:44:00;06/02/2026 14:06:00;22min;1;1;V;186.955,00;187.115,00;192.345,00;Sim;32,00;160,00;155;32,00;160,00;0,00;0,00;0,00;20min;266,00 +WINJ26;06/02/2026 15:28:00;06/02/2026 15:48:00;20min;1;1;C;186.250,00;186.440,00;192.345,00;Sim;38,00;190,00;156;38,00;190,00;0,00;0,00;0,00;1h44min;304,00 +WINJ26;06/02/2026 17:26:00;06/02/2026 17:40:00;14min;1;1;V;187.165,00;187.180,00;192.345,00;Sim;3,00;15,00;157;3,00;15,00;0,00;0,00;0,00;1h58min;307,00 +WINJ26;09/02/2026 09:08:00;09/02/2026 09:34:00;26min;1;1;V;188.060,00;187.495,00;192.345,00;Sim;-113,00;-565,00;158;-113,00;-565,00;0,00;0,00;0,00;2d15h;194,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:10:00;20min;1;1;V;188.225,00;188.185,00;192.345,00;Sim;-8,00;-40,00;159;-8,00;-40,00;0,00;0,00;0,00;2h42min;186,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:12:00;2min;1;1;C;187.925,00;187.965,00;192.345,00;No;8,00;40,00;160;8,00;40,00;0,00;0,00;0,00;1h20min;194,00 +WINJ26;09/02/2026 14:44:00;09/02/2026 14:54:00;10min;1;1;V;189.485,00;189.525,00;192.345,00;Sim;8,00;40,00;161;8,00;40,00;0,00;0,00;0,00;1h34min;202,00 +WINJ26;09/02/2026 15:20:00;09/02/2026 15:22:00;2min;1;1;V;189.350,00;189.825,00;192.345,00;Sim;95,00;475,00;162;95,00;475,00;0,00;0,00;0,00;36min;297,00 +WINJ26;09/02/2026 16:36:00;09/02/2026 16:46:00;10min;1;1;V;190.320,00;190.395,00;192.345,00;Sim;15,00;75,00;163;15,00;75,00;0,00;0,00;0,00;1h16min;312,00 +WINJ26;09/02/2026 17:56:00;09/02/2026 18:02:00;6min;1;1;V;190.635,00;190.630,00;192.345,00;Sim;-1,00;-5,00;164;-1,00;-5,00;0,00;0,00;0,00;1h20min;311,00 +WINJ26;10/02/2026 09:20:00;10/02/2026 09:22:00;2min;1;1;C;189.870,00;190.075,00;192.345,00;No;41,00;205,00;165;41,00;205,00;0,00;0,00;0,00;15h24min;352,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 09:52:00;4min;1;1;C;189.660,00;189.775,00;192.345,00;Sim;23,00;115,00;166;23,00;115,00;0,00;0,00;0,00;28min;375,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 13:00:00;22min;1;1;V;190.815,00;190.860,00;192.345,00;Sim;9,00;45,00;167;9,00;45,00;0,00;0,00;0,00;2h50min;384,00 +WINJ26;10/02/2026 13:46:00;10/02/2026 14:10:00;24min;1;1;C;190.440,00;190.435,00;192.345,00;No;-1,00;-5,00;168;-1,00;-5,00;0,00;0,00;0,00;1h8min;383,00 +WINJ26;10/02/2026 15:12:00;10/02/2026 15:38:00;26min;1;1;C;190.045,00;189.575,00;192.345,00;Sim;-94,00;-470,00;169;-94,00;-470,00;0,00;0,00;0,00;1h26min;289,00 +WINJ26;10/02/2026 17:00:00;10/02/2026 17:26:00;26min;1;1;V;190.530,00;189.975,00;192.345,00;No;-111,00;-555,00;170;-111,00;-555,00;0,00;0,00;0,00;1h48min;178,00 +WINJ26;10/02/2026 17:52:00;10/02/2026 18:16:00;24min;1;1;C;190.140,00;190.145,00;192.345,00;No;1,00;5,00;171;1,00;5,00;0,00;0,00;0,00;52min;179,00 +WINJ26;11/02/2026 09:30:00;11/02/2026 09:56:00;26min;1;1;V;192.335,00;191.540,00;192.345,00;Sim;-159,00;-795,00;172;-159,00;-795,00;0,00;0,00;0,00;15h38min;20,00 +WINJ26;11/02/2026 10:00:00;11/02/2026 10:08:00;8min;1;1;V;192.100,00;192.235,00;192.345,00;Sim;27,00;135,00;173;27,00;135,00;0,00;0,00;0,00;30min;47,00 +WINJ26;11/02/2026 10:18:00;11/02/2026 10:24:00;6min;1;1;C;191.825,00;192.165,00;192.345,00;No;68,00;340,00;174;68,00;340,00;0,00;0,00;0,00;18min;115,00 +WINJ26;11/02/2026 11:42:00;11/02/2026 11:50:00;8min;1;1;V;193.275,00;193.415,00;192.345,00;Sim;28,00;140,00;175;28,00;140,00;0,00;0,00;0,00;1h24min;143,00 +WINJ26;11/02/2026 13:26:00;11/02/2026 13:52:00;26min;1;1;V;194.680,00;193.950,00;192.345,00;Sim;-146,00;-730,00;176;-146,00;-730,00;0,00;0,00;0,00;1h44min;-3,00 +WINJ26;11/02/2026 15:40:00;11/02/2026 16:04:00;24min;1;1;C;193.780,00;193.870,00;192.345,00;No;18,00;90,00;177;18,00;90,00;0,00;0,00;0,00;2h14min;15,00 +WINJ26;11/02/2026 16:32:00;11/02/2026 16:46:00;14min;1;1;V;194.190,00;194.435,00;192.345,00;Sim;49,00;245,00;178;49,00;245,00;0,00;0,00;0,00;52min;64,00 +WINJ26;11/02/2026 17:02:00;11/02/2026 17:28:00;26min;1;1;C;194.050,00;194.025,00;192.345,00;No;-5,00;-25,00;179;-5,00;-25,00;0,00;0,00;0,00;30min;59,00 +WINJ26;11/02/2026 17:46:00;11/02/2026 17:50:00;4min;1;1;V;194.075,00;194.275,00;192.345,00;No;40,00;200,00;180;40,00;200,00;0,00;0,00;0,00;44min;99,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.345,00;No;-16,00;-80,00;181;-16,00;-80,00;0,00;0,00;0,00;15h18min;83,00 +WINJ26;12/02/2026 09:54:00;12/02/2026 10:02:00;8min;1;1;C;192.885,00;192.980,00;192.345,00;Sim;19,00;95,00;182;19,00;95,00;0,00;0,00;0,00;50min;102,00 +WINJ26;12/02/2026 11:02:00;12/02/2026 11:10:00;8min;1;1;C;192.990,00;193.220,00;192.345,00;No;46,00;230,00;183;46,00;230,00;0,00;0,00;0,00;1h8min;148,00 +WINJ26;12/02/2026 11:28:00;12/02/2026 11:32:00;4min;1;1;V;193.405,00;193.735,00;192.345,00;Sim;66,00;330,00;184;66,00;330,00;0,00;0,00;0,00;26min;214,00 +WINJ26;12/02/2026 12:20:00;12/02/2026 12:22:00;2min;1;1;V;193.620,00;193.765,00;192.345,00;Sim;29,00;145,00;185;29,00;145,00;0,00;0,00;0,00;52min;243,00 +WINJ26;12/02/2026 13:34:00;12/02/2026 13:38:00;4min;1;1;C;192.545,00;192.905,00;192.345,00;Sim;72,00;360,00;186;72,00;360,00;0,00;0,00;0,00;1h14min;315,00 +WINJ26;13/02/2026 09:42:00;13/02/2026 09:46:00;4min;1;1;C;189.325,00;189.585,00;192.345,00;Sim;52,00;260,00;187;52,00;260,00;0,00;0,00;0,00;20h8min;367,00 +WINJ26;13/02/2026 10:22:00;13/02/2026 10:24:00;2min;1;1;C;188.785,00;189.060,00;192.345,00;Sim;55,00;275,00;188;55,00;275,00;0,00;0,00;0,00;40min;422,00 +WINJ26;13/02/2026 11:44:00;13/02/2026 11:46:00;2min;1;1;C;188.130,00;188.625,00;192.345,00;Sim;99,00;495,00;189;99,00;495,00;0,00;0,00;0,00;1h22min;521,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.345,00;No;68,00;340,00;190;68,00;340,00;0,00;0,00;0,00;1h;589,00 +WINJ26;13/02/2026 14:52:00;13/02/2026 15:18:00;26min;1;1;V;189.965,00;189.920,00;192.345,00;Sim;-9,00;-45,00;191;-9,00;-45,00;0,00;0,00;0,00;2h8min;580,00 +WINJ26;13/02/2026 15:38:00;13/02/2026 15:42:00;4min;1;1;V;190.025,00;190.205,00;192.345,00;Sim;36,00;180,00;192;36,00;180,00;0,00;0,00;0,00;46min;616,00 +WINJ26;13/02/2026 16:26:00;13/02/2026 16:32:00;6min;1;1;C;189.705,00;189.895,00;192.345,00;No;38,00;190,00;193;38,00;190,00;0,00;0,00;0,00;48min;654,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.345,00;Sim;14,00;70,00;194;14,00;70,00;0,00;0,00;0,00;4d20h;668,00 +WINJ26;18/02/2026 14:26:00;18/02/2026 14:46:00;20min;1;1;V;190.305,00;190.255,00;192.345,00;No;-10,00;-50,00;195;-10,00;-50,00;0,00;0,00;0,00;1h26min;658,00 +WINJ26;18/02/2026 18:16:00;19/02/2026 09:16:00;15h;1;1;V;190.195,00;189.995,00;192.345,00;No;-40,00;-200,00;196;-40,00;-200,00;0,00;0,00;0,00;3h50min;618,00 +WINJ26;19/02/2026 12:22:00;19/02/2026 12:48:00;26min;1;1;V;192.150,00;191.225,00;192.345,00;Sim;-185,00;-925,00;197;-185,00;-925,00;0,00;0,00;0,00;18h6min;433,00 +WINJ26;19/02/2026 13:04:00;19/02/2026 13:24:00;20min;1;1;V;192.180,00;192.190,00;192.345,00;Sim;2,00;10,00;198;2,00;10,00;0,00;0,00;0,00;42min;435,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.345,00;No;36,00;180,00;199;36,00;180,00;0,00;0,00;0,00;50min;471,00 +WINJ26;19/02/2026 16:52:00;19/02/2026 17:02:00;10min;1;1;C;191.670,00;191.780,00;192.345,00;Sim;22,00;110,00;200;22,00;110,00;0,00;0,00;0,00;2h58min;493,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:28:00;8min;1;1;C;191.630,00;191.690,00;192.345,00;Sim;12,00;60,00;201;12,00;60,00;0,00;0,00;0,00;28min;505,00 +WINJ26;19/02/2026 17:42:00;19/02/2026 18:08:00;26min;1;1;V;192.280,00;191.920,00;192.345,00;No;-72,00;-360,00;202;-72,00;-360,00;0,00;0,00;0,00;22min;433,00 +WINJ26;19/02/2026 18:12:00;19/02/2026 18:22:00;10min;1;1;V;192.155,00;192.250,00;192.345,00;Sim;19,00;95,00;203;19,00;95,00;0,00;0,00;0,00;30min;452,00 +WINJ26;20/02/2026 09:40:00;20/02/2026 10:06:00;26min;1;1;C;190.975,00;190.660,00;192.345,00;Sim;-63,00;-315,00;204;-63,00;-315,00;0,00;0,00;0,00;15h28min;389,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:04:00;26min;1;1;V;191.880,00;190.995,00;192.345,00;No;-177,00;-885,00;205;-177,00;-885,00;0,00;0,00;0,00;1h58min;212,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.345,00;No;35,00;175,00;206;35,00;175,00;0,00;0,00;0,00;2h56min;247,00 +WINJ26;20/02/2026 15:36:00;20/02/2026 16:00:00;24min;1;1;V;192.960,00;192.815,00;192.345,00;Sim;-29,00;-145,00;207;-29,00;-145,00;0,00;0,00;0,00;1h2min;218,00 +WINJ26;20/02/2026 17:04:00;20/02/2026 17:30:00;26min;1;1;V;194.065,00;193.905,00;192.345,00;Sim;-32,00;-160,00;208;-32,00;-160,00;0,00;0,00;0,00;1h28min;186,00 +WINJ26;23/02/2026 09:30:00;23/02/2026 09:56:00;26min;1;1;C;192.925,00;192.545,00;192.345,00;No;-76,00;-380,00;209;-76,00;-380,00;0,00;0,00;0,00;2d16h;110,00 +WINJ26;23/02/2026 12:04:00;23/02/2026 12:06:00;2min;1;1;V;193.950,00;194.250,00;192.345,00;Sim;60,00;300,00;210;60,00;300,00;0,00;0,00;0,00;2h34min;170,00 +WINJ26;23/02/2026 12:18:00;23/02/2026 12:44:00;26min;1;1;C;193.595,00;193.000,00;192.345,00;No;-119,00;-595,00;211;-119,00;-595,00;0,00;0,00;0,00;14min;51,00 +WINJ26;23/02/2026 13:14:00;23/02/2026 13:34:00;20min;1;1;C;192.385,00;192.395,00;192.345,00;Sim;2,00;10,00;212;2,00;10,00;0,00;0,00;0,00;56min;53,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:26:00;26min;1;1;V;192.855,00;192.665,00;192.345,00;No;-38,00;-190,00;213;-38,00;-190,00;0,00;0,00;0,00;1h46min;15,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.345,00;Sim;6,00;30,00;214;6,00;30,00;0,00;0,00;0,00;34min;21,00 +WINJ26;23/02/2026 16:22:00;23/02/2026 16:28:00;6min;1;1;C;192.320,00;192.515,00;192.345,00;Sim;39,00;195,00;215;39,00;195,00;0,00;0,00;0,00;48min;60,00 +WINJ26;24/02/2026 09:22:00;24/02/2026 09:30:00;8min;1;1;V;193.240,00;193.585,00;192.345,00;Sim;69,00;345,00;216;69,00;345,00;0,00;0,00;0,00;17h;129,00 +WINJ26;24/02/2026 10:38:00;24/02/2026 10:40:00;2min;1;1;V;193.690,00;193.925,00;192.345,00;Sim;47,00;235,00;217;47,00;235,00;0,00;0,00;0,00;1h16min;176,00 +WINJ26;24/02/2026 12:34:00;24/02/2026 13:00:00;26min;1;1;V;194.750,00;194.520,00;192.345,00;Sim;-46,00;-230,00;218;-46,00;-230,00;0,00;0,00;0,00;1h56min;130,00 +WINJ26;24/02/2026 13:34:00;24/02/2026 13:44:00;10min;1;1;V;194.955,00;195.030,00;192.345,00;Sim;15,00;75,00;219;15,00;75,00;0,00;0,00;0,00;1h;145,00 +WINJ26;24/02/2026 14:24:00;24/02/2026 14:44:00;20min;1;1;V;195.225,00;195.210,00;192.345,00;Sim;-3,00;-15,00;220;-3,00;-15,00;0,00;0,00;0,00;50min;142,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:28:00;26min;1;1;C;195.005,00;194.955,00;192.345,00;No;-10,00;-50,00;221;-10,00;-50,00;0,00;0,00;0,00;38min;132,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.345,00;Sim;9,00;45,00;222;9,00;45,00;0,00;0,00;0,00;1h26min;141,00 +WINJ26;24/02/2026 16:48:00;24/02/2026 16:56:00;8min;1;1;V;194.830,00;195.030,00;192.345,00;No;40,00;200,00;223;40,00;200,00;0,00;0,00;0,00;20min;181,00 +WINJ26;24/02/2026 18:00:00;24/02/2026 18:10:00;10min;1;1;V;195.050,00;195.185,00;192.345,00;Sim;27,00;135,00;224;27,00;135,00;0,00;0,00;0,00;1h12min;208,00 +WINJ26;25/02/2026 09:16:00;25/02/2026 09:30:00;14min;1;1;V;196.370,00;196.870,00;192.345,00;Sim;100,00;500,00;225;100,00;500,00;0,00;0,00;0,00;15h16min;308,00 +WINJ26;25/02/2026 10:18:00;25/02/2026 10:44:00;26min;1;1;C;195.920,00;195.165,00;192.345,00;No;-151,00;-755,00;226;-151,00;-755,00;0,00;0,00;0,00;1h2min;157,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 11:04:00;4min;1;1;C;194.965,00;195.250,00;192.345,00;Sim;57,00;285,00;227;57,00;285,00;0,00;0,00;0,00;42min;214,00 +WINJ26;25/02/2026 12:06:00;25/02/2026 12:32:00;26min;1;1;C;194.570,00;194.375,00;192.345,00;Sim;-39,00;-195,00;228;-39,00;-195,00;0,00;0,00;0,00;1h6min;175,00 +WINJ26;25/02/2026 12:38:00;25/02/2026 12:50:00;12min;1;1;C;194.240,00;194.385,00;192.345,00;Sim;29,00;145,00;229;29,00;145,00;0,00;0,00;0,00;32min;204,00 +WINJ26;25/02/2026 15:04:00;25/02/2026 15:10:00;6min;1;1;V;194.875,00;194.960,00;192.345,00;No;17,00;85,00;230;17,00;85,00;0,00;0,00;0,00;2h26min;221,00 +WINJ26;25/02/2026 16:16:00;25/02/2026 16:20:00;4min;1;1;C;194.015,00;194.200,00;192.345,00;Sim;37,00;185,00;231;37,00;185,00;0,00;0,00;0,00;1h12min;258,00 +WINJ26;26/02/2026 09:08:00;26/02/2026 09:10:00;2min;1;1;C;194.135,00;194.385,00;192.345,00;No;50,00;250,00;232;50,00;250,00;0,00;0,00;0,00;16h52min;308,00 +WINJ26;26/02/2026 10:16:00;26/02/2026 10:18:00;2min;1;1;V;194.510,00;194.640,00;192.345,00;No;26,00;130,00;233;26,00;130,00;0,00;0,00;0,00;1h8min;334,00 +WINJ26;26/02/2026 10:36:00;26/02/2026 10:40:00;4min;1;1;C;193.890,00;194.175,00;192.345,00;Sim;57,00;285,00;234;57,00;285,00;0,00;0,00;0,00;20min;391,00 +WINJ26;26/02/2026 12:30:00;26/02/2026 12:38:00;8min;1;1;C;192.665,00;192.840,00;192.345,00;Sim;35,00;175,00;235;35,00;175,00;0,00;0,00;0,00;1h54min;426,00 +WINJ26;26/02/2026 13:50:00;26/02/2026 14:12:00;22min;1;1;C;193.460,00;193.560,00;192.345,00;No;20,00;100,00;236;20,00;100,00;0,00;0,00;0,00;1h20min;446,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:14:00;26min;1;1;V;194.105,00;193.760,00;192.345,00;No;-69,00;-345,00;237;-69,00;-345,00;0,00;0,00;0,00;1h58min;377,00 +WINJ26;26/02/2026 16:26:00;26/02/2026 16:30:00;4min;1;1;V;194.010,00;194.130,00;192.345,00;Sim;24,00;120,00;238;24,00;120,00;0,00;0,00;0,00;38min;401,00 +WINJ26;27/02/2026 09:14:00;27/02/2026 09:20:00;6min;1;1;C;192.865,00;193.550,00;192.345,00;Sim;137,00;685,00;239;137,00;685,00;0,00;0,00;0,00;16h48min;538,00 +WINJ26;27/02/2026 15:14:00;27/02/2026 15:22:00;8min;1;1;V;192.620,00;192.685,00;192.345,00;No;13,00;65,00;240;13,00;65,00;0,00;0,00;0,00;6h;551,00 +WINJ26;27/02/2026 16:46:00;27/02/2026 17:02:00;16min;1;1;C;191.815,00;191.940,00;192.345,00;Sim;25,00;125,00;241;25,00;125,00;0,00;0,00;0,00;1h32min;576,00 +WINJ26;02/03/2026 09:50:00;02/03/2026 10:08:00;18min;1;1;C;190.195,00;190.380,00;192.345,00;Sim;37,00;185,00;242;37,00;185,00;0,00;0,00;0,00;2d17h;613,00 +WINJ26;02/03/2026 10:28:00;02/03/2026 10:44:00;16min;1;1;V;190.760,00;190.795,00;192.345,00;No;7,00;35,00;243;7,00;35,00;0,00;0,00;0,00;38min;620,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.345,00;Sim;41,00;205,00;244;41,00;205,00;0,00;0,00;0,00;38min;661,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:08:00;4min;1;1;V;191.885,00;191.895,00;192.345,00;Sim;2,00;10,00;245;2,00;10,00;0,00;0,00;0,00;3h58min;663,00 +WINJ26;02/03/2026 17:18:00;02/03/2026 17:38:00;20min;1;1;C;192.305,00;192.310,00;192.345,00;No;1,00;5,00;246;1,00;5,00;0,00;0,00;0,00;2h14min;664,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv new file mode 100644 index 0000000..e81daa3 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv @@ -0,0 +1,145 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.335,00;No;-50,00;-250,00;1;-50,00;-250,00;0,00;0,00;0,00; - ;-50,00 +WINJ26;17/09/2025 16:00:00;19/09/2025 10:30:00;1d18h;1;1;V;156.300,00;156.000,00;192.335,00;Sim;-60,00;-300,00;2;-60,00;-300,00;0,00;0,00;0,00;8d7h;-110,00 +WINJ26;19/09/2025 10:35:00;22/09/2025 12:25:00;3d1h;1;1;V;154.750,00;156.150,00;192.335,00;Sim;280,00;1.400,00;3;280,00;1.400,00;0,00;0,00;0,00;1d18h;170,00 +WINJ26;25/09/2025 09:10:00;25/09/2025 09:45:00;35min;1;1;V;156.850,00;157.270,00;192.335,00;Sim;84,00;420,00;4;84,00;420,00;0,00;0,00;0,00;5d22h;254,00 +WINJ26;03/10/2025 09:45:00;03/10/2025 11:10:00;1h25min;1;1;C;153.935,00;153.850,00;192.335,00;No;-17,00;-85,00;5;-17,00;-85,00;0,00;0,00;0,00;8d;237,00 +WINJ26;13/10/2025 10:20:00;13/10/2025 10:25:00;5min;1;1;C;151.100,00;151.100,00;192.335,00;Sim;0;0;6;0;0;0,00;0,00;0,00;10d;237,00 +WINJ26;20/10/2025 10:50:00;20/10/2025 16:50:00;6h;1;1;V;153.275,00;152.685,00;192.335,00;No;-118,00;-590,00;7;-118,00;-590,00;0,00;0,00;0,00;7d;119,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.335,00;No;-50,00;-250,00;8;-50,00;-250,00;0,00;0,00;0,00;22h40min;69,00 +WINJ26;23/10/2025 10:05:00;23/10/2025 12:45:00;2h40min;1;1;V;153.950,00;154.795,00;192.335,00;Sim;169,00;845,00;9;169,00;845,00;0,00;0,00;0,00;2d;238,00 +WINJ26;24/10/2025 10:55:00;24/10/2025 11:10:00;15min;1;1;V;154.860,00;155.250,00;192.335,00;Sim;78,00;390,00;10;78,00;390,00;0,00;0,00;0,00;1d;316,00 +WINJ26;27/10/2025 12:15:00;27/10/2025 13:20:00;1h5min;1;1;V;155.480,00;155.660,00;192.335,00;Sim;36,00;180,00;11;36,00;180,00;0,00;0,00;0,00;3d1h;352,00 +WINJ26;29/10/2025 12:00:00;29/10/2025 15:45:00;3h45min;1;1;V;157.250,00;157.250,00;192.335,00;Sim;0;0;12;0;0;0,00;0,00;0,00;1d23h;352,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.335,00;No;17,00;85,00;13;17,00;85,00;0,00;0,00;0,00;22h55min;369,00 +WINJ26;31/10/2025 11:40:00;31/10/2025 13:30:00;1h50min;1;1;V;157.700,00;157.700,00;192.335,00;Sim;0;0;14;0;0;0,00;0,00;0,00;1d;369,00 +WINJ26;03/11/2025 12:40:00;03/11/2025 16:10:00;3h30min;1;1;V;158.640,00;158.680,00;192.335,00;Sim;8,00;40,00;15;8,00;40,00;0,00;0,00;0,00;3d1h;377,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:35:00;20min;1;1;C;158.540,00;158.520,00;192.335,00;No;-4,00;-20,00;16;-4,00;-20,00;0,00;0,00;0,00;21h35min;373,00 +WINJ26;06/11/2025 09:20:00;06/11/2025 15:25:00;6h5min;1;1;V;161.800,00;161.900,00;192.335,00;Sim;20,00;100,00;17;20,00;100,00;0,00;0,00;0,00;1d23h;393,00 +WINJ26;10/11/2025 10:30:00;11/11/2025 09:10:00;22h40min;1;1;V;164.815,00;162.950,00;192.335,00;Sim;-373,00;-1.865,00;18;-373,00;-1.865,00;0,00;0,00;0,00;4d1h;20,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:25:00;25min;1;1;C;165.750,00;165.800,00;192.335,00;No;10,00;50,00;19;10,00;50,00;0,00;0,00;0,00;2d6h;30,00 +WINJ26;14/11/2025 09:15:00;14/11/2025 09:40:00;25min;1;1;C;164.780,00;165.050,00;192.335,00;Sim;54,00;270,00;20;54,00;270,00;0,00;0,00;0,00;1d16h;84,00 +WINJ26;14/11/2025 18:10:00;14/11/2025 18:20:00;10min;1;1;V;165.850,00;165.915,00;192.335,00;Sim;13,00;65,00;21;13,00;65,00;0,00;0,00;0,00;8h55min;97,00 +WINJ26;18/11/2025 10:20:00;18/11/2025 10:25:00;5min;1;1;C;164.540,00;164.840,00;192.335,00;Sim;60,00;300,00;22;60,00;300,00;0,00;0,00;0,00;3d16h;157,00 +WINJ26;19/11/2025 17:20:00;21/11/2025 11:15:00;1d17h;1;1;C;163.590,00;161.780,00;192.335,00;Sim;-362,00;-1.810,00;23;-362,00;-1.810,00;0,00;0,00;0,00;1d7h;-205,00 +WINJ26;26/11/2025 13:00:00;26/11/2025 16:30:00;3h30min;1;1;V;166.050,00;165.405,00;192.335,00;No;-129,00;-645,00;24;-129,00;-645,00;0,00;0,00;0,00;6d19h;-334,00 +WINJ26;02/12/2025 17:15:00;03/12/2025 10:35:00;17h20min;1;1;V;169.200,00;168.250,00;192.335,00;Sim;-190,00;-950,00;25;-190,00;-950,00;0,00;0,00;0,00;6d4h;-524,00 +WINJ26;03/12/2025 11:35:00;04/12/2025 10:20:00;22h45min;1;1;V;170.650,00;169.000,00;192.335,00;Sim;-330,00;-1.650,00;26;-330,00;-1.650,00;0,00;0,00;0,00;18h20min;-854,00 +WINJ26;05/12/2025 09:05:00;05/12/2025 11:35:00;2h30min;1;1;V;171.570,00;172.000,00;192.335,00;Sim;86,00;430,00;27;86,00;430,00;0,00;0,00;0,00;1d21h;-768,00 +WINJ26;05/12/2025 16:50:00;08/12/2025 09:05:00;2d16h;1;1;C;165.565,00;166.250,00;192.335,00;No;137,00;685,00;28;137,00;685,00;0,00;0,00;0,00;7h45min;-631,00 +WINJ26;09/12/2025 13:45:00;09/12/2025 18:15:00;4h30min;1;1;V;164.700,00;164.500,00;192.335,00;No;-40,00;-200,00;29;-40,00;-200,00;0,00;0,00;0,00;3d20h;-671,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.335,00;Sim;171,00;855,00;30;171,00;855,00;0,00;0,00;0,00;19h50min;-500,00 +WINJ26;12/12/2025 12:05:00;12/12/2025 12:15:00;10min;1;1;V;166.900,00;167.300,00;192.335,00;Sim;80,00;400,00;31;80,00;400,00;0,00;0,00;0,00;2d2h;-420,00 +WINJ26;15/12/2025 10:40:00;15/12/2025 13:35:00;2h55min;1;1;V;169.505,00;168.650,00;192.335,00;Sim;-171,00;-855,00;32;-171,00;-855,00;0,00;0,00;0,00;2d22h;-591,00 +WINJ26;16/12/2025 13:10:00;16/12/2025 14:10:00;1h;1;1;C;166.450,00;166.990,00;192.335,00;No;108,00;540,00;33;108,00;540,00;0,00;0,00;0,00;1d2h;-483,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:30:00;1h15min;1;1;C;164.810,00;163.250,00;192.335,00;Sim;-312,00;-1.560,00;34;-312,00;-1.560,00;0,00;0,00;0,00;20h5min;-795,00 +WINJ26;17/12/2025 10:45:00;17/12/2025 11:25:00;40min;1;1;C;163.200,00;163.815,00;192.335,00;Sim;123,00;615,00;35;123,00;615,00;0,00;0,00;0,00;1h30min;-672,00 +WINJ26;18/12/2025 17:05:00;18/12/2025 17:30:00;25min;1;1;C;164.455,00;164.490,00;192.335,00;No;7,00;35,00;36;7,00;35,00;0,00;0,00;0,00;1d6h;-665,00 +WINJ26;19/12/2025 11:10:00;19/12/2025 12:15:00;1h5min;1;1;V;165.550,00;165.155,00;192.335,00;No;-79,00;-395,00;37;-79,00;-395,00;0,00;0,00;0,00;18h5min;-744,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 16:05:00;1h5min;1;1;C;165.135,00;164.990,00;192.335,00;No;-29,00;-145,00;38;-29,00;-145,00;0,00;0,00;0,00;3h50min;-773,00 +WINJ26;19/12/2025 18:00:00;19/12/2025 18:10:00;10min;1;1;C;164.745,00;164.905,00;192.335,00;Sim;32,00;160,00;39;32,00;160,00;0,00;0,00;0,00;3h;-741,00 +WINJ26;22/12/2025 09:10:00;22/12/2025 09:15:00;5min;1;1;V;165.050,00;165.200,00;192.335,00;Sim;30,00;150,00;40;30,00;150,00;0,00;0,00;0,00;2d15h;-711,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 12:10:00;25min;1;1;C;163.790,00;163.980,00;192.335,00;Sim;38,00;190,00;41;38,00;190,00;0,00;0,00;0,00;2h35min;-673,00 +WINJ26;23/12/2025 10:25:00;23/12/2025 11:25:00;1h;1;1;V;165.325,00;165.410,00;192.335,00;Sim;17,00;85,00;42;17,00;85,00;0,00;0,00;0,00;22h40min;-656,00 +WINJ26;23/12/2025 12:45:00;23/12/2025 13:30:00;45min;1;1;V;166.345,00;166.380,00;192.335,00;Sim;7,00;35,00;43;7,00;35,00;0,00;0,00;0,00;2h20min;-649,00 +WINJ26;29/12/2025 10:25:00;29/12/2025 11:30:00;1h5min;1;1;C;166.635,00;166.510,00;192.335,00;No;-25,00;-125,00;44;-25,00;-125,00;0,00;0,00;0,00;5d21h;-674,00 +WINJ26;30/12/2025 10:05:00;30/12/2025 10:45:00;40min;1;1;V;167.570,00;167.540,00;192.335,00;Sim;-6,00;-30,00;45;-6,00;-30,00;0,00;0,00;0,00;23h40min;-680,00 +WINJ26;30/12/2025 13:45:00;30/12/2025 13:50:00;5min;1;1;V;167.565,00;167.760,00;192.335,00;Sim;39,00;195,00;46;39,00;195,00;0,00;0,00;0,00;3h40min;-641,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.335,00;No;-65,00;-325,00;47;-65,00;-325,00;0,00;0,00;0,00;2d19h;-706,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.335,00;Sim;-9,00;-45,00;48;-9,00;-45,00;0,00;0,00;0,00;1h5min;-715,00 +WINJ26;02/01/2026 13:45:00;02/01/2026 14:50:00;1h5min;1;1;C;166.210,00;166.020,00;192.335,00;Sim;-38,00;-190,00;49;-38,00;-190,00;0,00;0,00;0,00;3h35min;-753,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:05:00;20min;1;1;V;166.320,00;166.515,00;192.335,00;No;39,00;195,00;50;39,00;195,00;0,00;0,00;0,00;2d20h;-714,00 +WINJ26;05/01/2026 13:10:00;05/01/2026 14:15:00;1h5min;1;1;V;167.445,00;167.030,00;192.335,00;Sim;-83,00;-415,00;51;-83,00;-415,00;0,00;0,00;0,00;3h25min;-797,00 +WINJ26;05/01/2026 16:10:00;05/01/2026 16:25:00;15min;1;1;V;167.710,00;167.750,00;192.335,00;Sim;8,00;40,00;52;8,00;40,00;0,00;0,00;0,00;3h;-789,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.335,00;No;21,00;105,00;53;21,00;105,00;0,00;0,00;0,00;1h;-768,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 11:45:00;1h5min;1;1;C;168.780,00;167.655,00;192.335,00;No;-225,00;-1.125,00;54;-225,00;-1.125,00;0,00;0,00;0,00;1d17h;-993,00 +WINJ26;07/01/2026 12:35:00;07/01/2026 12:50:00;15min;1;1;C;167.595,00;167.725,00;192.335,00;Sim;26,00;130,00;55;26,00;130,00;0,00;0,00;0,00;1h55min;-967,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:20:00;5min;1;1;C;167.350,00;167.500,00;192.335,00;Sim;30,00;150,00;56;30,00;150,00;0,00;0,00;0,00;20h40min;-937,00 +WINJ26;09/01/2026 09:30:00;09/01/2026 09:55:00;25min;1;1;C;168.050,00;168.100,00;192.335,00;No;10,00;50,00;57;10,00;50,00;0,00;0,00;0,00;1d;-927,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:50:00;40min;1;1;V;169.215,00;169.350,00;192.335,00;Sim;27,00;135,00;58;27,00;135,00;0,00;0,00;0,00;2h40min;-900,00 +WINJ26;09/01/2026 16:45:00;09/01/2026 17:50:00;1h5min;1;1;C;169.030,00;168.820,00;192.335,00;No;-42,00;-210,00;59;-42,00;-210,00;0,00;0,00;0,00;4h35min;-942,00 +WINJ26;12/01/2026 10:15:00;12/01/2026 11:20:00;1h5min;1;1;C;168.255,00;167.960,00;192.335,00;Sim;-59,00;-295,00;60;-59,00;-295,00;0,00;0,00;0,00;2d17h;-1.001,00 +WINJ26;12/01/2026 12:30:00;12/01/2026 13:45:00;1h15min;1;1;V;168.690,00;168.635,00;192.335,00;No;-11,00;-55,00;61;-11,00;-55,00;0,00;0,00;0,00;2h15min;-1.012,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.335,00;Sim;20,00;100,00;62;20,00;100,00;0,00;0,00;0,00;22h5min;-992,00 +WINJ26;14/01/2026 10:50:00;14/01/2026 11:00:00;10min;1;1;V;168.220,00;168.545,00;192.335,00;No;65,00;325,00;63;65,00;325,00;0,00;0,00;0,00;1d;-927,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 11:25:00;10min;1;1;C;167.705,00;168.105,00;192.335,00;Sim;80,00;400,00;64;80,00;400,00;0,00;0,00;0,00;25min;-847,00 +WINJ26;14/01/2026 12:10:00;14/01/2026 12:45:00;35min;1;1;V;168.695,00;168.820,00;192.335,00;Sim;25,00;125,00;65;25,00;125,00;0,00;0,00;0,00;55min;-822,00 +WINJ26;14/01/2026 17:05:00;14/01/2026 17:10:00;5min;1;1;V;169.685,00;169.760,00;192.335,00;Sim;15,00;75,00;66;15,00;75,00;0,00;0,00;0,00;4h55min;-807,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.335,00;Sim;0;0;67;0;0;0,00;0,00;0,00;16h;-807,00 +WINJ26;15/01/2026 10:10:00;15/01/2026 10:25:00;15min;1;1;V;170.505,00;170.625,00;192.335,00;Sim;24,00;120,00;68;24,00;120,00;0,00;0,00;0,00;1h5min;-783,00 +WINJ26;15/01/2026 14:25:00;15/01/2026 15:30:00;1h5min;1;1;V;171.285,00;170.715,00;192.335,00;Sim;-114,00;-570,00;69;-114,00;-570,00;0,00;0,00;0,00;4h15min;-897,00 +WINJ26;15/01/2026 15:50:00;15/01/2026 16:15:00;25min;1;1;V;171.050,00;171.170,00;192.335,00;Sim;24,00;120,00;70;24,00;120,00;0,00;0,00;0,00;1h25min;-873,00 +WINJ26;16/01/2026 10:30:00;16/01/2026 11:35:00;1h5min;1;1;C;170.625,00;169.550,00;192.335,00;No;-215,00;-1.075,00;71;-215,00;-1.075,00;0,00;0,00;0,00;18h40min;-1.088,00 +WINJ26;16/01/2026 11:50:00;16/01/2026 12:55:00;1h5min;1;1;C;169.850,00;169.330,00;192.335,00;Sim;-104,00;-520,00;72;-104,00;-520,00;0,00;0,00;0,00;1h20min;-1.192,00 +WINJ26;20/01/2026 13:45:00;20/01/2026 14:25:00;40min;1;1;V;171.100,00;171.135,00;192.335,00;No;7,00;35,00;73;7,00;35,00;0,00;0,00;0,00;4d1h;-1.185,00 +WINJ26;20/01/2026 15:15:00;20/01/2026 15:40:00;25min;1;1;C;170.885,00;170.940,00;192.335,00;No;11,00;55,00;74;11,00;55,00;0,00;0,00;0,00;1h30min;-1.174,00 +WINJ26;20/01/2026 16:10:00;20/01/2026 16:40:00;30min;1;1;C;170.650,00;170.725,00;192.335,00;Sim;15,00;75,00;75;15,00;75,00;0,00;0,00;0,00;55min;-1.159,00 +WINJ26;20/01/2026 18:10:00;21/01/2026 09:00:00;14h50min;1;1;V;170.910,00;171.060,00;192.335,00;No;30,00;150,00;76;30,00;150,00;0,00;0,00;0,00;2h;-1.129,00 +WINJ26;21/01/2026 12:25:00;21/01/2026 13:30:00;1h5min;1;1;V;175.065,00;174.455,00;192.335,00;Sim;-122,00;-610,00;77;-122,00;-610,00;0,00;0,00;0,00;18h15min;-1.251,00 +WINJ26;21/01/2026 16:40:00;21/01/2026 17:45:00;1h5min;1;1;V;176.920,00;175.920,00;192.335,00;Sim;-200,00;-1.000,00;78;-200,00;-1.000,00;0,00;0,00;0,00;4h15min;-1.451,00 +WINJ26;22/01/2026 09:10:00;22/01/2026 10:15:00;1h5min;1;1;V;177.835,00;177.350,00;192.335,00;Sim;-97,00;-485,00;79;-97,00;-485,00;0,00;0,00;0,00;16h30min;-1.548,00 +WINJ26;22/01/2026 10:25:00;22/01/2026 11:30:00;1h5min;1;1;V;179.890,00;178.235,00;192.335,00;Sim;-331,00;-1.655,00;80;-331,00;-1.655,00;0,00;0,00;0,00;1h15min;-1.879,00 +WINJ26;23/01/2026 17:35:00;23/01/2026 17:55:00;20min;1;1;V;183.955,00;184.630,00;192.335,00;Sim;135,00;675,00;81;135,00;675,00;0,00;0,00;0,00;1d7h;-1.744,00 +WINJ26;26/01/2026 11:30:00;26/01/2026 11:35:00;5min;1;1;C;183.185,00;183.955,00;192.335,00;No;154,00;770,00;82;154,00;770,00;0,00;0,00;0,00;2d17h;-1.590,00 +WINJ26;26/01/2026 17:50:00;26/01/2026 18:10:00;20min;1;1;V;183.605,00;183.860,00;192.335,00;No;51,00;255,00;83;51,00;255,00;0,00;0,00;0,00;6h20min;-1.539,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 11:25:00;1h5min;1;1;V;187.700,00;185.930,00;192.335,00;Sim;-354,00;-1.770,00;84;-354,00;-1.770,00;0,00;0,00;0,00;16h30min;-1.893,00 +WINJ26;27/01/2026 12:30:00;27/01/2026 13:15:00;45min;1;1;V;187.575,00;187.690,00;192.335,00;Sim;23,00;115,00;85;23,00;115,00;0,00;0,00;0,00;2h10min;-1.870,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.335,00;No;-22,00;-110,00;86;-22,00;-110,00;0,00;0,00;0,00;2h50min;-1.892,00 +WINJ26;28/01/2026 10:55:00;28/01/2026 12:00:00;1h5min;1;1;V;189.550,00;189.085,00;192.335,00;Sim;-93,00;-465,00;87;-93,00;-465,00;0,00;0,00;0,00;19h35min;-1.985,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.335,00;No;47,00;235,00;88;47,00;235,00;0,00;0,00;0,00;5h15min;-1.938,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 10:10:00;40min;1;1;V;190.880,00;191.020,00;192.335,00;Sim;28,00;140,00;89;28,00;140,00;0,00;0,00;0,00;17h20min;-1.910,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 14:10:00;55min;1;1;C;187.605,00;187.775,00;192.335,00;Sim;34,00;170,00;90;34,00;170,00;0,00;0,00;0,00;3h45min;-1.876,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 10:20:00;1h;1;1;C;187.580,00;187.790,00;192.335,00;Sim;42,00;210,00;91;42,00;210,00;0,00;0,00;0,00;20h5min;-1.834,00 +WINJ26;30/01/2026 17:20:00;30/01/2026 17:35:00;15min;1;1;C;185.670,00;185.980,00;192.335,00;Sim;62,00;310,00;92;62,00;310,00;0,00;0,00;0,00;8h;-1.772,00 +WINJ26;02/02/2026 18:20:00;03/02/2026 10:00:00;15h40min;1;1;V;189.560,00;187.500,00;192.335,00;No;-412,00;-2.060,00;93;-412,00;-2.060,00;0,00;0,00;0,00;3d1h;-2.184,00 +WINJ26;03/02/2026 10:15:00;03/02/2026 11:20:00;1h5min;1;1;V;191.240,00;189.600,00;192.335,00;Sim;-328,00;-1.640,00;94;-328,00;-1.640,00;0,00;0,00;0,00;15h55min;-2.512,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 12:15:00;15min;1;1;V;190.975,00;191.565,00;192.335,00;Sim;118,00;590,00;95;118,00;590,00;0,00;0,00;0,00;1h45min;-2.394,00 +WINJ26;04/02/2026 12:10:00;04/02/2026 13:15:00;1h5min;1;1;C;187.700,00;186.875,00;192.335,00;No;-165,00;-825,00;96;-165,00;-825,00;0,00;0,00;0,00;1d;-2.559,00 +WINJ26;04/02/2026 14:15:00;04/02/2026 15:20:00;1h5min;1;1;C;186.330,00;185.255,00;192.335,00;Sim;-215,00;-1.075,00;97;-215,00;-1.075,00;0,00;0,00;0,00;2h5min;-2.774,00 +WINJ26;04/02/2026 15:25:00;04/02/2026 16:30:00;1h5min;1;1;C;185.475,00;184.855,00;192.335,00;Sim;-124,00;-620,00;98;-124,00;-620,00;0,00;0,00;0,00;1h10min;-2.898,00 +WINJ26;05/02/2026 09:40:00;05/02/2026 09:45:00;5min;1;1;V;186.105,00;186.285,00;192.335,00;No;36,00;180,00;99;36,00;180,00;0,00;0,00;0,00;18h15min;-2.862,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 11:35:00;1h5min;1;1;V;187.115,00;186.885,00;192.335,00;Sim;-46,00;-230,00;100;-46,00;-230,00;0,00;0,00;0,00;50min;-2.908,00 +WINJ26;06/02/2026 09:10:00;06/02/2026 09:20:00;10min;1;1;V;186.900,00;187.680,00;192.335,00;Sim;156,00;780,00;101;156,00;780,00;0,00;0,00;0,00;22h40min;-2.752,00 +WINJ26;06/02/2026 14:05:00;06/02/2026 14:40:00;35min;1;1;V;186.835,00;186.980,00;192.335,00;No;29,00;145,00;102;29,00;145,00;0,00;0,00;0,00;4h55min;-2.723,00 +WINJ26;06/02/2026 17:40:00;06/02/2026 18:15:00;35min;1;1;V;187.040,00;187.165,00;192.335,00;Sim;25,00;125,00;103;25,00;125,00;0,00;0,00;0,00;3h35min;-2.698,00 +WINJ26;09/02/2026 14:55:00;09/02/2026 16:00:00;1h5min;1;1;V;190.105,00;189.400,00;192.335,00;Sim;-141,00;-705,00;104;-141,00;-705,00;0,00;0,00;0,00;2d21h;-2.839,00 +WINJ26;09/02/2026 17:20:00;09/02/2026 18:20:00;1h;1;1;V;190.475,00;190.445,00;192.335,00;Sim;-6,00;-30,00;105;-6,00;-30,00;0,00;0,00;0,00;2h25min;-2.845,00 +WINJ26;10/02/2026 12:40:00;10/02/2026 13:25:00;45min;1;1;V;190.585,00;190.760,00;192.335,00;Sim;35,00;175,00;106;35,00;175,00;0,00;0,00;0,00;19h20min;-2.810,00 +WINJ26;10/02/2026 16:10:00;10/02/2026 16:35:00;25min;1;1;C;189.645,00;189.850,00;192.335,00;No;41,00;205,00;107;41,00;205,00;0,00;0,00;0,00;3h30min;-2.769,00 +WINJ26;10/02/2026 17:40:00;10/02/2026 17:45:00;5min;1;1;V;190.205,00;190.420,00;192.335,00;No;43,00;215,00;108;43,00;215,00;0,00;0,00;0,00;1h30min;-2.726,00 +WINJ26;11/02/2026 10:10:00;11/02/2026 11:15:00;1h5min;1;1;V;193.110,00;191.995,00;192.335,00;Sim;-223,00;-1.115,00;109;-223,00;-1.115,00;0,00;0,00;0,00;16h30min;-2.949,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:05:00;35min;1;1;V;194.340,00;194.525,00;192.335,00;Sim;37,00;185,00;110;37,00;185,00;0,00;0,00;0,00;4h20min;-2.912,00 +WINJ26;11/02/2026 15:50:00;11/02/2026 16:10:00;20min;1;1;C;193.855,00;194.050,00;192.335,00;No;39,00;195,00;111;39,00;195,00;0,00;0,00;0,00;1h20min;-2.873,00 +WINJ26;11/02/2026 16:35:00;11/02/2026 16:55:00;20min;1;1;V;194.135,00;194.380,00;192.335,00;No;49,00;245,00;112;49,00;245,00;0,00;0,00;0,00;45min;-2.824,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 16:10:00;25min;1;1;C;191.565,00;191.835,00;192.335,00;Sim;54,00;270,00;113;54,00;270,00;0,00;0,00;0,00;23h10min;-2.770,00 +WINJ26;13/02/2026 10:10:00;13/02/2026 11:15:00;1h5min;1;1;C;189.215,00;188.765,00;192.335,00;Sim;-90,00;-450,00;114;-90,00;-450,00;0,00;0,00;0,00;18h25min;-2.860,00 +WINJ26;13/02/2026 11:45:00;13/02/2026 12:30:00;45min;1;1;C;188.385,00;188.875,00;192.335,00;Sim;98,00;490,00;115;98,00;490,00;0,00;0,00;0,00;1h35min;-2.762,00 +WINJ26;18/02/2026 13:10:00;18/02/2026 13:25:00;15min;1;1;V;190.280,00;190.960,00;192.335,00;No;136,00;680,00;116;136,00;680,00;0,00;0,00;0,00;5d1h;-2.626,00 +WINJ26;18/02/2026 16:45:00;18/02/2026 17:05:00;20min;1;1;C;189.035,00;189.220,00;192.335,00;No;37,00;185,00;117;37,00;185,00;0,00;0,00;0,00;3h35min;-2.589,00 +WINJ26;19/02/2026 13:40:00;19/02/2026 14:05:00;25min;1;1;V;191.955,00;192.245,00;192.335,00;Sim;58,00;290,00;118;58,00;290,00;0,00;0,00;0,00;20h55min;-2.531,00 +WINJ26;20/02/2026 10:20:00;20/02/2026 11:20:00;1h;1;1;C;190.810,00;190.745,00;192.335,00;No;-13,00;-65,00;119;-13,00;-65,00;0,00;0,00;0,00;20h40min;-2.544,00 +WINJ26;20/02/2026 12:25:00;20/02/2026 13:25:00;1h;1;1;V;191.905,00;192.020,00;192.335,00;No;23,00;115,00;120;23,00;115,00;0,00;0,00;0,00;2h5min;-2.521,00 +WINJ26;20/02/2026 14:35:00;20/02/2026 14:50:00;15min;1;1;C;191.665,00;192.135,00;192.335,00;No;94,00;470,00;121;94,00;470,00;0,00;0,00;0,00;2h10min;-2.427,00 +WINJ26;20/02/2026 16:00:00;20/02/2026 17:05:00;1h5min;1;1;V;193.960,00;192.960,00;192.335,00;Sim;-200,00;-1.000,00;122;-200,00;-1.000,00;0,00;0,00;0,00;1h25min;-2.627,00 +WINJ26;20/02/2026 17:30:00;20/02/2026 18:20:00;50min;1;1;V;194.000,00;194.065,00;192.335,00;Sim;13,00;65,00;123;13,00;65,00;0,00;0,00;0,00;1h30min;-2.614,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.335,00;No;48,00;240,00;124;48,00;240,00;0,00;0,00;0,00;2d16h;-2.566,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.335,00;No;112,00;560,00;125;112,00;560,00;0,00;0,00;0,00;2h;-2.454,00 +WINJ26;23/02/2026 15:35:00;23/02/2026 16:05:00;30min;1;1;V;192.565,00;192.790,00;192.335,00;No;45,00;225,00;126;45,00;225,00;0,00;0,00;0,00;3h30min;-2.409,00 +WINJ26;23/02/2026 16:25:00;23/02/2026 17:10:00;45min;1;1;C;192.470,00;192.485,00;192.335,00;Sim;3,00;15,00;127;3,00;15,00;0,00;0,00;0,00;50min;-2.406,00 +WINJ26;24/02/2026 09:25:00;24/02/2026 10:30:00;1h5min;1;1;V;193.665,00;193.475,00;192.335,00;Sim;-38,00;-190,00;128;-38,00;-190,00;0,00;0,00;0,00;17h;-2.444,00 +WINJ26;24/02/2026 10:40:00;24/02/2026 10:50:00;10min;1;1;V;193.260,00;193.690,00;192.335,00;Sim;86,00;430,00;129;86,00;430,00;0,00;0,00;0,00;1h15min;-2.358,00 +WINJ26;24/02/2026 13:35:00;24/02/2026 14:40:00;1h5min;1;1;V;195.335,00;194.985,00;192.335,00;Sim;-70,00;-350,00;130;-70,00;-350,00;0,00;0,00;0,00;2h55min;-2.428,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.335,00;Sim;67,00;335,00;131;67,00;335,00;0,00;0,00;0,00;19h55min;-2.361,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:25:00;1h5min;1;1;C;194.200,00;194.100,00;192.335,00;No;-20,00;-100,00;132;-20,00;-100,00;0,00;0,00;0,00;6h50min;-2.381,00 +WINJ26;26/02/2026 16:30:00;26/02/2026 17:35:00;1h5min;1;1;V;194.435,00;194.010,00;192.335,00;No;-85,00;-425,00;133;-85,00;-425,00;0,00;0,00;0,00;1d;-2.466,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.335,00;Sim;11,00;55,00;134;11,00;55,00;0,00;0,00;0,00;1h25min;-2.455,00 +WINJ26;27/02/2026 14:55:00;27/02/2026 15:10:00;15min;1;1;C;192.480,00;192.710,00;192.335,00;Sim;46,00;230,00;135;46,00;230,00;0,00;0,00;0,00;21h;-2.409,00 +WINJ26;27/02/2026 17:20:00;27/02/2026 17:25:00;5min;1;1;C;192.075,00;192.145,00;192.335,00;Sim;14,00;70,00;136;14,00;70,00;0,00;0,00;0,00;2h25min;-2.395,00 +WINJ26;02/03/2026 09:15:00;02/03/2026 10:20:00;1h5min;1;1;C;191.035,00;190.570,00;192.335,00;Sim;-93,00;-465,00;137;-93,00;-465,00;0,00;0,00;0,00;2d15h;-2.488,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 12:50:00;50min;1;1;V;191.220,00;191.375,00;192.335,00;No;31,00;155,00;138;31,00;155,00;0,00;0,00;0,00;2h45min;-2.457,00 +WINJ26;02/03/2026 17:20:00; - ; - ;1;0;C;192.225,00;192.340,00;192.340,00;No;23,00;115,00;139;23,00;115,00;0,00;0,00;0,00;5h20min;-2.434,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv new file mode 100644 index 0000000..9c3cff0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv @@ -0,0 +1,64 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.330,00;No;-40,00;-200,00;1;-40,00;-200,00;0,00;0,00;0,00; - ;-40,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 09:45:00;15min;1;1;V;152.750,00;152.500,00;192.330,00;Sim;-50,00;-250,00;2;-50,00;-250,00;0,00;0,00;0,00;3d;-90,00 +WINJ26;17/09/2025 16:00:00;22/09/2025 11:45:00;4d19h;1;1;V;154.500,00;156.000,00;192.330,00;Sim;300,00;1.500,00;3;300,00;1.500,00;0,00;0,00;0,00;5d6h;210,00 +WINJ26;25/09/2025 09:15:00;25/09/2025 10:15:00;1h;1;1;V;156.250,00;157.700,00;192.330,00;Sim;290,00;1.450,00;4;290,00;1.450,00;0,00;0,00;0,00;7d17h;500,00 +WINJ26;13/10/2025 10:15:00;13/10/2025 11:30:00;1h15min;1;1;C;151.100,00;151.130,00;192.330,00;No;6,00;30,00;5;6,00;30,00;0,00;0,00;0,00;18d1h;506,00 +WINJ26;23/10/2025 12:15:00;23/10/2025 12:45:00;30min;1;1;V;153.950,00;153.700,00;192.330,00;No;-50,00;-250,00;6;-50,00;-250,00;0,00;0,00;0,00;10d2h;456,00 +WINJ26;27/10/2025 12:15:00;28/10/2025 09:15:00;21h;1;1;V;155.400,00;155.660,00;192.330,00;Sim;52,00;260,00;7;52,00;260,00;0,00;0,00;0,00;4d;508,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.330,00;No;17,00;85,00;8;17,00;85,00;0,00;0,00;0,00;2d22h;525,00 +WINJ26;03/11/2025 12:30:00;04/11/2025 10:00:00;21h30min;1;1;V;158.430,00;158.680,00;192.330,00;Sim;50,00;250,00;9;50,00;250,00;0,00;0,00;0,00;4d1h;575,00 +WINJ26;06/11/2025 13:45:00;07/11/2025 10:00:00;20h15min;1;1;V;161.250,00;162.000,00;192.330,00;Sim;150,00;750,00;10;150,00;750,00;0,00;0,00;0,00;3d1h;725,00 +WINJ26;11/11/2025 12:45:00;12/11/2025 09:15:00;20h30min;1;1;V;166.400,00;165.895,00;192.330,00;Sim;-101,00;-505,00;11;-101,00;-505,00;0,00;0,00;0,00;4d23h;624,00 +WINJ26;12/11/2025 17:00:00;12/11/2025 17:15:00;15min;1;1;C;165.750,00;165.800,00;192.330,00;No;10,00;50,00;12;10,00;50,00;0,00;0,00;0,00;1d4h;634,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 11:00:00;30min;1;1;C;164.740,00;164.500,00;192.330,00;Sim;-48,00;-240,00;13;-48,00;-240,00;0,00;0,00;0,00;5d17h;586,00 +WINJ26;21/11/2025 09:45:00;21/11/2025 14:30:00;4h45min;1;1;C;162.930,00;162.635,00;192.330,00;Sim;-59,00;-295,00;14;-59,00;-295,00;0,00;0,00;0,00;2d23h;527,00 +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.330,00;Sim;26,00;130,00;15;26,00;130,00;0,00;0,00;0,00;6d1h;553,00 +WINJ26;28/11/2025 12:00:00;28/11/2025 13:00:00;1h;1;1;V;166.500,00;166.300,00;192.330,00;Sim;-40,00;-200,00;16;-40,00;-200,00;0,00;0,00;0,00;1d;513,00 +WINJ26;02/12/2025 11:45:00;02/12/2025 18:15:00;6h30min;1;1;V;168.805,00;167.500,00;192.330,00;Sim;-261,00;-1.305,00;17;-261,00;-1.305,00;0,00;0,00;0,00;3d23h;252,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.330,00;Sim;147,00;735,00;18;147,00;735,00;0,00;0,00;0,00;2d23h;399,00 +WINJ26;08/12/2025 09:15:00;08/12/2025 15:30:00;6h15min;1;1;C;166.300,00;165.630,00;192.330,00;No;-134,00;-670,00;19;-134,00;-670,00;0,00;0,00;0,00;2d21h;265,00 +WINJ26;15/12/2025 13:45:00;15/12/2025 15:15:00;1h30min;1;1;V;169.100,00;169.565,00;192.330,00;No;93,00;465,00;20;93,00;465,00;0,00;0,00;0,00;7d4h;358,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 14:45:00;3h15min;1;1;C;163.775,00;163.595,00;192.330,00;Sim;-36,00;-180,00;21;-36,00;-180,00;0,00;0,00;0,00;1d21h;322,00 +WINJ26;19/12/2025 12:45:00;19/12/2025 14:30:00;1h45min;1;1;V;165.175,00;165.475,00;192.330,00;No;60,00;300,00;22;60,00;300,00;0,00;0,00;0,00;2d1h;382,00 +WINJ26;22/12/2025 12:30:00;22/12/2025 13:30:00;1h;1;1;C;164.025,00;164.315,00;192.330,00;No;58,00;290,00;23;58,00;290,00;0,00;0,00;0,00;2d23h;440,00 +WINJ26;23/12/2025 11:30:00;23/12/2025 14:45:00;3h15min;1;1;V;166.580,00;165.435,00;192.330,00;No;-229,00;-1.145,00;24;-229,00;-1.145,00;0,00;0,00;0,00;23h;211,00 +WINJ26;23/12/2025 15:15:00;26/12/2025 09:00:00;2d17h;1;1;V;166.295,00;166.230,00;192.330,00;Sim;-13,00;-65,00;25;-13,00;-65,00;0,00;0,00;0,00;3h45min;198,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.330,00;No;8,00;40,00;26;8,00;40,00;0,00;0,00;0,00;2d19h;206,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.330,00;Sim;60,00;300,00;27;60,00;300,00;0,00;0,00;0,00;2d23h;266,00 +WINJ26;29/12/2025 11:30:00;29/12/2025 14:45:00;3h15min;1;1;C;166.510,00;166.380,00;192.330,00;No;-26,00;-130,00;28;-26,00;-130,00;0,00;0,00;0,00;2h;240,00 +WINJ26;02/01/2026 16:15:00;02/01/2026 16:30:00;15min;1;1;C;166.245,00;166.230,00;192.330,00;Sim;-3,00;-15,00;29;-3,00;-15,00;0,00;0,00;0,00;4d4h;237,00 +WINJ26;06/01/2026 11:30:00;06/01/2026 14:45:00;3h15min;1;1;V;169.550,00;169.305,00;192.330,00;Sim;-49,00;-245,00;30;-49,00;-245,00;0,00;0,00;0,00;3d19h;188,00 +WINJ26;07/01/2026 13:30:00;07/01/2026 16:45:00;3h15min;1;1;C;167.830,00;167.630,00;192.330,00;No;-40,00;-200,00;31;-40,00;-200,00;0,00;0,00;0,00;1d2h;148,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:45:00;15min;1;1;C;167.460,00;167.630,00;192.330,00;Sim;34,00;170,00;32;34,00;170,00;0,00;0,00;0,00;20h;182,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.330,00;No;-87,00;-435,00;33;-87,00;-435,00;0,00;0,00;0,00;3d23h;95,00 +WINJ26;14/01/2026 11:00:00;14/01/2026 11:15:00;15min;1;1;V;167.705,00;168.220,00;192.330,00;No;103,00;515,00;34;103,00;515,00;0,00;0,00;0,00;2d1h;198,00 +WINJ26;14/01/2026 12:45:00;14/01/2026 16:00:00;3h15min;1;1;V;169.585,00;168.695,00;192.330,00;Sim;-178,00;-890,00;35;-178,00;-890,00;0,00;0,00;0,00;1h45min;20,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.330,00;Sim;59,00;295,00;36;59,00;295,00;0,00;0,00;0,00;22h;79,00 +WINJ26;15/01/2026 16:15:00;15/01/2026 17:00:00;45min;1;1;V;170.755,00;171.050,00;192.330,00;Sim;59,00;295,00;37;59,00;295,00;0,00;0,00;0,00;5h30min;138,00 +WINJ26;23/01/2026 09:30:00;23/01/2026 11:00:00;1h30min;1;1;V;181.250,00;181.450,00;192.330,00;Sim;40,00;200,00;38;40,00;200,00;0,00;0,00;0,00;7d17h;178,00 +WINJ26;23/01/2026 12:45:00;23/01/2026 15:00:00;2h15min;1;1;V;181.920,00;182.130,00;192.330,00;Sim;42,00;210,00;39;42,00;210,00;0,00;0,00;0,00;3h15min;220,00 +WINJ26;23/01/2026 18:00:00;26/01/2026 10:30:00;2d16h;1;1;V;183.870,00;184.095,00;192.330,00;Sim;45,00;225,00;40;45,00;225,00;0,00;0,00;0,00;5h15min;265,00 +WINJ26;27/01/2026 14:15:00;27/01/2026 15:00:00;45min;1;1;V;187.170,00;187.785,00;192.330,00;Sim;123,00;615,00;41;123,00;615,00;0,00;0,00;0,00;3d20h;388,00 +WINJ26;29/01/2026 10:15:00;29/01/2026 12:00:00;1h45min;1;1;V;189.110,00;190.750,00;192.330,00;Sim;328,00;1.640,00;42;328,00;1.640,00;0,00;0,00;0,00;1d20h;716,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 09:00:00;2d17h;1;1;C;186.180,00;184.655,00;192.330,00;No;-305,00;-1.525,00;43;-305,00;-1.525,00;0,00;0,00;0,00;1d5h;411,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.330,00;Sim;132,00;660,00;44;132,00;660,00;0,00;0,00;0,00;5d1h;543,00 +WINJ26;05/02/2026 12:00:00;05/02/2026 12:15:00;15min;1;1;V;186.700,00;187.535,00;192.330,00;No;167,00;835,00;45;167,00;835,00;0,00;0,00;0,00;19h;710,00 +WINJ26;05/02/2026 18:00:00;06/02/2026 09:15:00;15h15min;1;1;C;186.585,00;187.460,00;192.330,00;No;175,00;875,00;46;175,00;875,00;0,00;0,00;0,00;6h;885,00 +WINJ26;11/02/2026 10:15:00;11/02/2026 13:30:00;3h15min;1;1;V;194.195,00;191.810,00;192.330,00;Sim;-477,00;-2.385,00;47;-477,00;-2.385,00;0,00;0,00;0,00;5d16h;408,00 +WINJ26;11/02/2026 15:15:00;11/02/2026 15:45:00;30min;1;1;V;193.700,00;193.940,00;192.330,00;Sim;48,00;240,00;48;48,00;240,00;0,00;0,00;0,00;5h;456,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 17:45:00;2h;1;1;C;191.565,00;192.210,00;192.330,00;No;129,00;645,00;49;129,00;645,00;0,00;0,00;0,00;1d;585,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.330,00;Sim;106,00;530,00;50;106,00;530,00;0,00;0,00;0,00;20h45min;691,00 +WINJ26;19/02/2026 15:00:00;19/02/2026 16:45:00;1h45min;1;1;V;191.660,00;192.050,00;192.330,00;No;78,00;390,00;51;78,00;390,00;0,00;0,00;0,00;6d2h;769,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.330,00;No;42,00;210,00;52;42,00;210,00;0,00;0,00;0,00;20h30min;811,00 +WINJ26;23/02/2026 09:00:00;23/02/2026 09:15:00;15min;1;1;V;193.390,00;193.590,00;192.330,00;Sim;40,00;200,00;53;40,00;200,00;0,00;0,00;0,00;2d21h;851,00 +WINJ26;24/02/2026 15:00:00;24/02/2026 17:15:00;2h15min;1;1;V;194.720,00;194.940,00;192.330,00;Sim;44,00;220,00;54;44,00;220,00;0,00;0,00;0,00;1d6h;895,00 +WINJ26;25/02/2026 10:15:00;25/02/2026 10:45:00;30min;1;1;V;195.155,00;195.870,00;192.330,00;Sim;143,00;715,00;55;143,00;715,00;0,00;0,00;0,00;19h15min;1.038,00 +WINJ26;26/02/2026 12:45:00;26/02/2026 13:30:00;45min;1;1;C;193.110,00;193.930,00;192.330,00;No;164,00;820,00;56;164,00;820,00;0,00;0,00;0,00;1d2h;1.202,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 12:45:00;3h15min;1;1;C;193.430,00;193.580,00;192.330,00;No;30,00;150,00;57;30,00;150,00;0,00;0,00;0,00;20h45min;1.232,00 +WINJ26;27/02/2026 17:30:00;02/03/2026 11:15:00;2d17h;1;1;C;192.145,00;190.365,00;192.330,00;Sim;-356,00;-1.780,00;58;-356,00;-1.780,00;0,00;0,00;0,00;8h;876,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv new file mode 100644 index 0000000..f4430eb --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv @@ -0,0 +1,41 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.350,00;No;-40,00;-200,00;1;-40,00;-200,00;0,00;0,00;0,00; - ;-40,00 +WINJ26;12/09/2025 09:30:00;12/09/2025 11:00:00;1h30min;1;1;V;153.400,00;152.500,00;192.350,00;Sim;-180,00;-900,00;2;-180,00;-900,00;0,00;0,00;0,00;3d;-220,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 10:30:00;30min;1;1;V;156.000,00;156.250,00;192.350,00;Sim;50,00;250,00;3;50,00;250,00;0,00;0,00;0,00;13d;-170,00 +WINJ26;13/10/2025 10:00:00;13/10/2025 13:30:00;3h30min;1;1;C;151.100,00;151.240,00;192.350,00;No;28,00;140,00;4;28,00;140,00;0,00;0,00;0,00;18d;-142,00 +WINJ26;23/10/2025 12:00:00;23/10/2025 12:30:00;30min;1;1;V;153.950,00;153.700,00;192.350,00;No;-50,00;-250,00;5;-50,00;-250,00;0,00;0,00;0,00;10d2h;-192,00 +WINJ26;24/10/2025 11:00:00;28/10/2025 10:00:00;3d23h;1;1;V;155.150,00;155.000,00;192.350,00;Sim;-30,00;-150,00;6;-30,00;-150,00;0,00;0,00;0,00;23h;-222,00 +WINJ26;04/11/2025 10:00:00;04/11/2025 16:00:00;6h;1;1;V;158.520,00;158.430,00;192.350,00;Sim;-18,00;-90,00;7;-18,00;-90,00;0,00;0,00;0,00;10d23h;-240,00 +WINJ26;12/11/2025 09:30:00;12/11/2025 12:30:00;3h;1;1;V;165.300,00;166.300,00;192.350,00;Sim;200,00;1.000,00;8;200,00;1.000,00;0,00;0,00;0,00;7d23h;-40,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.350,00;No;32,00;160,00;9;32,00;160,00;0,00;0,00;0,00;6d1h;-8,00 +WINJ26;21/11/2025 11:00:00;24/11/2025 09:30:00;2d22h;1;1;C;161.780,00;162.615,00;192.350,00;Sim;167,00;835,00;10;167,00;835,00;0,00;0,00;0,00;3d;159,00 +WINJ26;28/11/2025 12:00:00;01/12/2025 10:30:00;2d22h;1;1;V;165.625,00;166.300,00;192.350,00;No;135,00;675,00;11;135,00;675,00;0,00;0,00;0,00;7d1h;294,00 +WINJ26;03/12/2025 17:00:00;04/12/2025 15:00:00;22h;1;1;V;171.440,00;169.165,00;192.350,00;Sim;-455,00;-2.275,00;12;-455,00;-2.275,00;0,00;0,00;0,00;5d5h;-161,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.350,00;Sim;544,00;2.720,00;13;544,00;2.720,00;0,00;0,00;0,00;1d20h;383,00 +WINJ26;08/12/2025 09:30:00;08/12/2025 15:30:00;6h;1;1;C;166.180,00;165.630,00;192.350,00;No;-110,00;-550,00;14;-110,00;-550,00;0,00;0,00;0,00;2d20h;273,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 13:00:00;1h;1;1;C;163.700,00;164.830,00;192.350,00;Sim;226,00;1.130,00;15;226,00;1.130,00;0,00;0,00;0,00;1d2h;499,00 +WINJ26;17/12/2025 12:00:00;18/12/2025 09:00:00;21h;1;1;C;164.165,00;164.080,00;192.350,00;No;-17,00;-85,00;16;-17,00;-85,00;0,00;0,00;0,00;8d;482,00 +WINJ26;19/12/2025 13:00:00;19/12/2025 16:00:00;3h;1;1;V;165.000,00;165.465,00;192.350,00;No;93,00;465,00;17;93,00;465,00;0,00;0,00;0,00;2d1h;575,00 +WINJ26;23/12/2025 15:30:00;26/12/2025 09:30:00;2d18h;1;1;V;165.790,00;166.390,00;192.350,00;Sim;120,00;600,00;18;120,00;600,00;0,00;0,00;0,00;4d2h;695,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 11:00:00;1h30min;1;1;V;166.510,00;167.005,00;192.350,00;Sim;99,00;495,00;19;99,00;495,00;0,00;0,00;0,00;5d18h;794,00 +WINJ26;02/01/2026 16:30:00;05/01/2026 09:30:00;2d17h;1;1;C;166.230,00;166.655,00;192.350,00;No;85,00;425,00;20;85,00;425,00;0,00;0,00;0,00;4d7h;879,00 +WINJ26;06/01/2026 16:30:00;07/01/2026 10:00:00;17h30min;1;1;V;168.900,00;169.185,00;192.350,00;Sim;57,00;285,00;21;57,00;285,00;0,00;0,00;0,00;4d;936,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 10:30:00;18h30min;1;1;C;167.710,00;167.945,00;192.350,00;No;47,00;235,00;22;47,00;235,00;0,00;0,00;0,00;23h30min;983,00 +WINJ26;14/01/2026 13:00:00;15/01/2026 10:00:00;21h;1;1;V;170.605,00;168.615,00;192.350,00;No;-398,00;-1.990,00;23;-398,00;-1.990,00;0,00;0,00;0,00;6d21h;585,00 +WINJ26;16/01/2026 12:00:00;19/01/2026 09:00:00;2d21h;1;1;C;169.830,00;169.140,00;192.350,00;No;-138,00;-690,00;24;-138,00;-690,00;0,00;0,00;0,00;1d23h;447,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.350,00;Sim;302,00;1.510,00;25;302,00;1.510,00;0,00;0,00;0,00;3d22h;749,00 +WINJ26;22/01/2026 17:00:00;23/01/2026 14:00:00;21h;1;1;V;182.230,00;180.810,00;192.350,00;Sim;-284,00;-1.420,00;26;-284,00;-1.420,00;0,00;0,00;0,00;2d7h;465,00 +WINJ26;27/01/2026 15:00:00;28/01/2026 09:00:00;18h;1;1;V;187.620,00;187.170,00;192.350,00;Sim;-90,00;-450,00;27;-90,00;-450,00;0,00;0,00;0,00;4d22h;375,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.350,00;Sim;104,00;520,00;28;104,00;520,00;0,00;0,00;0,00;21h30min;479,00 +WINJ26;29/01/2026 11:30:00;29/01/2026 12:00:00;30min;1;1;V;189.110,00;190.745,00;192.350,00;Sim;327,00;1.635,00;29;327,00;1.635,00;0,00;0,00;0,00;23h;806,00 +WINJ26;29/01/2026 13:30:00;30/01/2026 10:30:00;21h;1;1;C;187.690,00;187.965,00;192.350,00;No;55,00;275,00;30;55,00;275,00;0,00;0,00;0,00;2h;861,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 15:30:00;6h;1;1;V;189.705,00;189.915,00;192.350,00;No;42,00;210,00;31;42,00;210,00;0,00;0,00;0,00;11d20h;903,00 +WINJ26;11/02/2026 12:30:00;12/02/2026 09:30:00;21h;1;1;V;193.200,00;192.495,00;192.350,00;Sim;-141,00;-705,00;32;-141,00;-705,00;0,00;0,00;0,00;1d3h;762,00 +WINJ26;12/02/2026 16:00:00;13/02/2026 13:00:00;21h;1;1;C;191.680,00;188.720,00;192.350,00;No;-592,00;-2.960,00;33;-592,00;-2.960,00;0,00;0,00;0,00;1d3h;170,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 11:00:00;30min;1;1;V;194.965,00;195.645,00;192.350,00;Sim;136,00;680,00;34;136,00;680,00;0,00;0,00;0,00;12d18h;306,00 +WINJ26;27/02/2026 17:30:00;02/03/2026 14:30:00;2d21h;1;1;C;192.145,00;191.805,00;192.350,00;No;-68,00;-340,00;35;-68,00;-340,00;0,00;0,00;0,00;2d7h;238,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv new file mode 100644 index 0000000..aaa5d88 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv @@ -0,0 +1,25 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;10/09/2025 09:00:00;1d;1;1;V;152.500,00;152.300,00;192.345,00;No;-40,00;-200,00;1;-40,00;-200,00;0,00;0,00;0,00; - ;-40,00 +WINJ26;12/09/2025 09:00:00;12/09/2025 11:00:00;2h;1;1;V;153.400,00;152.500,00;192.345,00;Sim;-180,00;-900,00;2;-180,00;-900,00;0,00;0,00;0,00;3d;-220,00 +WINJ26;17/09/2025 16:00:00;22/09/2025 12:00:00;4d20h;1;1;V;154.750,00;156.000,00;192.345,00;Sim;250,00;1.250,00;3;250,00;1.250,00;0,00;0,00;0,00;5d7h;30,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 11:00:00;1h;1;1;V;155.750,00;156.250,00;192.345,00;Sim;100,00;500,00;4;100,00;500,00;0,00;0,00;0,00;7d18h;130,00 +WINJ26;13/10/2025 10:00:00;14/10/2025 14:00:00;1d4h;1;1;C;151.100,00;151.180,00;192.345,00;No;16,00;80,00;5;16,00;80,00;0,00;0,00;0,00;18d;146,00 +WINJ26;23/10/2025 18:00:00;28/10/2025 13:00:00;4d19h;1;1;V;156.200,00;154.600,00;192.345,00;No;-320,00;-1.600,00;6;-320,00;-1.600,00;0,00;0,00;0,00;10d8h;-174,00 +WINJ26;03/11/2025 16:00:00;04/11/2025 10:00:00;18h;1;1;V;158.430,00;158.640,00;192.345,00;Sim;42,00;210,00;7;42,00;210,00;0,00;0,00;0,00;10d22h;-132,00 +WINJ26;18/11/2025 11:00:00;21/11/2025 11:00:00;3d;1;1;C;164.500,00;161.780,00;192.345,00;No;-544,00;-2.720,00;8;-544,00;-2.720,00;0,00;0,00;0,00;14d19h;-676,00 +WINJ26;28/11/2025 17:00:00;01/12/2025 11:00:00;2d18h;1;1;V;165.945,00;166.915,00;192.345,00;Sim;194,00;970,00;9;194,00;970,00;0,00;0,00;0,00;10d6h;-482,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.345,00;Sim;387,00;1.935,00;10;387,00;1.935,00;0,00;0,00;0,00;6d20h;-95,00 +WINJ26;08/12/2025 10:00:00;09/12/2025 14:00:00;1d4h;1;1;C;165.600,00;164.600,00;192.345,00;No;-200,00;-1.000,00;11;-200,00;-1.000,00;0,00;0,00;0,00;2d21h;-295,00 +WINJ26;15/12/2025 15:00:00;16/12/2025 10:00:00;19h;1;1;V;167.270,00;169.100,00;192.345,00;No;366,00;1.830,00;12;366,00;1.830,00;0,00;0,00;0,00;7d5h;71,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.345,00;No;114,00;570,00;13;114,00;570,00;0,00;0,00;0,00;22d19h;185,00 +WINJ26;26/01/2026 11:00:00;27/01/2026 14:00:00;1d3h;1;1;V;188.300,00;183.135,00;192.345,00;Sim;-1.033,00;-5.165,00;14;-1.033,00;-5.165,00;0,00;0,00;0,00;19d1h;-848,00 +WINJ26;28/01/2026 13:00:00;29/01/2026 13:00:00;1d;1;1;V;186.785,00;188.670,00;192.345,00;Sim;377,00;1.885,00;15;377,00;1.885,00;0,00;0,00;0,00;2d2h;-471,00 +WINJ26;10/02/2026 10:00:00;11/02/2026 13:00:00;1d3h;1;1;V;193.300,00;189.645,00;192.345,00;Sim;-731,00;-3.655,00;16;-731,00;-3.655,00;0,00;0,00;0,00;12d21h;-1.202,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.345,00;No;212,00;1.060,00;17;212,00;1.060,00;0,00;0,00;0,00;3d4h;-990,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.345,00;Sim;131,00;655,00;18;131,00;655,00;0,00;0,00;0,00;11d21h;-859,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.345,00;No;133,00;665,00;19;133,00;665,00;0,00;0,00;0,00;5d1h;-726,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv new file mode 100644 index 0000000..5a50fe3 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv @@ -0,0 +1,510 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:52:00;24min;1;1;C;165.120,00;165.100,00;192.345,00;No;-4,00;-20,00;1;-4,00;-20,00;0,00;0,00;0,00; - ;-4,00 +WINJ26;19/12/2025 16:16:00;19/12/2025 16:24:00;8min;1;1;C;164.985,00;165.075,00;192.345,00;Sim;18,00;90,00;2;18,00;90,00;0,00;0,00;0,00;48min;14,00 +WINJ26;19/12/2025 16:42:00;19/12/2025 16:44:00;2min;1;1;C;165.070,00;165.110,00;192.345,00;No;8,00;40,00;3;8,00;40,00;0,00;0,00;0,00;26min;22,00 +WINJ26;19/12/2025 16:58:00;19/12/2025 17:00:00;2min;1;1;C;165.055,00;165.060,00;192.345,00;Sim;1,00;5,00;4;1,00;5,00;0,00;0,00;0,00;16min;23,00 +WINJ26;19/12/2025 17:16:00;19/12/2025 17:24:00;8min;1;1;C;165.005,00;165.060,00;192.345,00;Sim;11,00;55,00;5;11,00;55,00;0,00;0,00;0,00;18min;34,00 +WINJ26;19/12/2025 17:36:00;19/12/2025 18:02:00;26min;1;1;C;164.950,00;164.690,00;192.345,00;Sim;-52,00;-260,00;6;-52,00;-260,00;0,00;0,00;0,00;20min;-18,00 +WINJ26;19/12/2025 18:06:00;19/12/2025 18:08:00;2min;1;1;C;164.800,00;164.855,00;192.345,00;Sim;11,00;55,00;7;11,00;55,00;0,00;0,00;0,00;30min;-7,00 +WINJ26;22/12/2025 09:24:00;22/12/2025 09:52:00;28min;1;1;C;164.985,00;164.740,00;192.345,00;No;-49,00;-245,00;8;-49,00;-245,00;0,00;0,00;0,00;2d15h;-56,00 +WINJ26;22/12/2025 10:00:00;22/12/2025 10:26:00;26min;1;1;C;164.740,00;164.310,00;192.345,00;Sim;-86,00;-430,00;9;-86,00;-430,00;0,00;0,00;0,00;36min;-142,00 +WINJ26;22/12/2025 10:30:00;22/12/2025 11:00:00;30min;1;1;C;164.400,00;164.250,00;192.345,00;Sim;-30,00;-150,00;10;-30,00;-150,00;0,00;0,00;0,00;30min;-172,00 +WINJ26;22/12/2025 11:46:00;22/12/2025 11:48:00;2min;1;1;C;163.840,00;163.810,00;192.345,00;Sim;-6,00;-30,00;11;-6,00;-30,00;0,00;0,00;0,00;1h16min;-178,00 +WINJ26;22/12/2025 11:54:00;22/12/2025 11:58:00;4min;1;1;C;163.840,00;163.845,00;192.345,00;No;1,00;5,00;12;1,00;5,00;0,00;0,00;0,00;8min;-177,00 +WINJ26;22/12/2025 12:18:00;22/12/2025 12:28:00;10min;1;1;C;163.745,00;163.915,00;192.345,00;Sim;34,00;170,00;13;34,00;170,00;0,00;0,00;0,00;24min;-143,00 +WINJ26;22/12/2025 12:50:00;22/12/2025 12:52:00;2min;1;1;C;163.985,00;164.010,00;192.345,00;No;5,00;25,00;14;5,00;25,00;0,00;0,00;0,00;32min;-138,00 +WINJ26;22/12/2025 13:26:00;22/12/2025 13:34:00;8min;1;1;V;164.075,00;164.215,00;192.345,00;No;28,00;140,00;15;28,00;140,00;0,00;0,00;0,00;36min;-110,00 +WINJ26;22/12/2025 14:16:00;22/12/2025 14:20:00;4min;1;1;V;164.365,00;164.405,00;192.345,00;Sim;8,00;40,00;16;8,00;40,00;0,00;0,00;0,00;50min;-102,00 +WINJ26;22/12/2025 14:40:00;22/12/2025 14:50:00;10min;1;1;V;164.375,00;164.495,00;192.345,00;Sim;24,00;120,00;17;24,00;120,00;0,00;0,00;0,00;24min;-78,00 +WINJ26;22/12/2025 16:04:00;22/12/2025 16:16:00;12min;1;1;V;164.300,00;164.390,00;192.345,00;No;18,00;90,00;18;18,00;90,00;0,00;0,00;0,00;1h24min;-60,00 +WINJ26;22/12/2025 16:56:00;22/12/2025 17:32:00;36min;1;1;V;164.295,00;164.325,00;192.345,00;No;6,00;30,00;19;6,00;30,00;0,00;0,00;0,00;52min;-54,00 +WINJ26;22/12/2025 17:58:00;22/12/2025 18:00:00;2min;1;1;V;164.315,00;164.315,00;192.345,00;No;0;0;20;0;0;0,00;0,00;0,00;1h2min;-54,00 +WINJ26;23/12/2025 09:04:00;23/12/2025 09:06:00;2min;1;1;C;164.465,00;164.705,00;192.345,00;No;48,00;240,00;21;48,00;240,00;0,00;0,00;0,00;15h6min;-6,00 +WINJ26;23/12/2025 10:04:00;23/12/2025 10:06:00;2min;1;1;C;165.100,00;165.140,00;192.345,00;No;8,00;40,00;22;8,00;40,00;0,00;0,00;0,00;1h;2,00 +WINJ26;23/12/2025 10:40:00;23/12/2025 10:42:00;2min;1;1;C;165.380,00;165.385,00;192.345,00;No;1,00;5,00;23;1,00;5,00;0,00;0,00;0,00;36min;3,00 +WINJ26;23/12/2025 11:34:00;23/12/2025 11:40:00;6min;1;1;C;165.550,00;165.805,00;192.345,00;No;51,00;255,00;24;51,00;255,00;0,00;0,00;0,00;54min;54,00 +WINJ26;23/12/2025 12:50:00;23/12/2025 13:02:00;12min;1;1;C;166.365,00;166.360,00;192.345,00;No;-1,00;-5,00;25;-1,00;-5,00;0,00;0,00;0,00;1h16min;53,00 +WINJ26;23/12/2025 13:06:00;23/12/2025 13:08:00;2min;1;1;C;166.360,00;166.470,00;192.345,00;Sim;22,00;110,00;26;22,00;110,00;0,00;0,00;0,00;16min;75,00 +WINJ26;23/12/2025 13:32:00;23/12/2025 13:38:00;6min;1;1;C;166.450,00;166.505,00;192.345,00;No;11,00;55,00;27;11,00;55,00;0,00;0,00;0,00;26min;86,00 +WINJ26;23/12/2025 14:10:00;23/12/2025 14:12:00;2min;1;1;C;166.475,00;166.530,00;192.345,00;No;11,00;55,00;28;11,00;55,00;0,00;0,00;0,00;38min;97,00 +WINJ26;23/12/2025 14:30:00;23/12/2025 14:36:00;6min;1;1;C;166.450,00;166.570,00;192.345,00;Sim;24,00;120,00;29;24,00;120,00;0,00;0,00;0,00;20min;121,00 +WINJ26;23/12/2025 15:20:00;23/12/2025 15:46:00;26min;1;1;C;166.425,00;166.470,00;192.345,00;Sim;9,00;45,00;30;9,00;45,00;0,00;0,00;0,00;50min;130,00 +WINJ26;23/12/2025 16:36:00;23/12/2025 16:38:00;2min;1;1;C;166.480,00;166.530,00;192.345,00;No;10,00;50,00;31;10,00;50,00;0,00;0,00;0,00;1h16min;140,00 +WINJ26;23/12/2025 16:56:00;23/12/2025 17:22:00;26min;1;1;C;166.420,00;166.380,00;192.345,00;Sim;-8,00;-40,00;32;-8,00;-40,00;0,00;0,00;0,00;20min;132,00 +WINJ26;23/12/2025 17:26:00;23/12/2025 17:30:00;4min;1;1;C;166.465,00;166.420,00;192.345,00;No;-9,00;-45,00;33;-9,00;-45,00;0,00;0,00;0,00;30min;123,00 +WINJ26;23/12/2025 17:54:00;23/12/2025 17:56:00;2min;1;1;C;166.520,00;166.575,00;192.345,00;No;11,00;55,00;34;11,00;55,00;0,00;0,00;0,00;28min;134,00 +WINJ26;23/12/2025 18:24:00;26/12/2025 09:24:00;2d15h;1;1;C;166.500,00;165.825,00;192.345,00;Sim;-135,00;-675,00;35;-135,00;-675,00;0,00;0,00;0,00;30min;-1,00 +WINJ26;26/12/2025 09:48:00;26/12/2025 09:56:00;8min;1;1;V;165.725,00;165.920,00;192.345,00;Sim;39,00;195,00;36;39,00;195,00;0,00;0,00;0,00;2d15h;38,00 +WINJ26;26/12/2025 10:12:00;26/12/2025 10:20:00;8min;1;1;V;165.715,00;165.930,00;192.345,00;Sim;43,00;215,00;37;43,00;215,00;0,00;0,00;0,00;24min;81,00 +WINJ26;26/12/2025 10:38:00;26/12/2025 10:40:00;2min;1;1;V;165.655,00;165.795,00;192.345,00;No;28,00;140,00;38;28,00;140,00;0,00;0,00;0,00;26min;109,00 +WINJ26;26/12/2025 11:14:00;26/12/2025 11:26:00;12min;1;1;V;165.670,00;165.700,00;192.345,00;No;6,00;30,00;39;6,00;30,00;0,00;0,00;0,00;36min;115,00 +WINJ26;26/12/2025 11:56:00;26/12/2025 12:22:00;26min;1;1;V;166.575,00;165.880,00;192.345,00;Sim;-139,00;-695,00;40;-139,00;-695,00;0,00;0,00;0,00;42min;-24,00 +WINJ26;26/12/2025 12:52:00;26/12/2025 12:58:00;6min;1;1;C;166.390,00;166.420,00;192.345,00;Sim;6,00;30,00;41;6,00;30,00;0,00;0,00;0,00;56min;-18,00 +WINJ26;26/12/2025 14:00:00;26/12/2025 14:04:00;4min;1;1;C;166.110,00;166.200,00;192.345,00;Sim;18,00;90,00;42;18,00;90,00;0,00;0,00;0,00;1h8min;0,00 +WINJ26;26/12/2025 15:22:00;26/12/2025 15:26:00;4min;1;1;C;166.575,00;166.565,00;192.345,00;No;-2,00;-10,00;43;-2,00;-10,00;0,00;0,00;0,00;1h22min;-2,00 +WINJ26;26/12/2025 15:36:00;26/12/2025 15:46:00;10min;1;1;C;166.515,00;166.525,00;192.345,00;Sim;2,00;10,00;44;2,00;10,00;0,00;0,00;0,00;14min;0,00 +WINJ26;29/12/2025 09:04:00;29/12/2025 09:06:00;2min;1;1;C;167.370,00;167.395,00;192.345,00;No;5,00;25,00;45;5,00;25,00;0,00;0,00;0,00;2d17h;5,00 +WINJ26;29/12/2025 09:20:00;29/12/2025 09:22:00;2min;1;1;C;167.240,00;167.330,00;192.345,00;Sim;18,00;90,00;46;18,00;90,00;0,00;0,00;0,00;16min;23,00 +WINJ26;29/12/2025 09:36:00;29/12/2025 10:06:00;30min;1;1;C;167.130,00;166.970,00;192.345,00;Sim;-32,00;-160,00;47;-32,00;-160,00;0,00;0,00;0,00;16min;-9,00 +WINJ26;29/12/2025 10:08:00;29/12/2025 10:36:00;28min;1;1;C;167.040,00;166.540,00;192.345,00;Sim;-100,00;-500,00;48;-100,00;-500,00;0,00;0,00;0,00;32min;-109,00 +WINJ26;29/12/2025 11:38:00;29/12/2025 11:40:00;2min;1;1;V;166.350,00;166.500,00;192.345,00;Sim;30,00;150,00;49;30,00;150,00;0,00;0,00;0,00;1h30min;-79,00 +WINJ26;29/12/2025 11:52:00;29/12/2025 11:54:00;2min;1;1;V;166.390,00;166.400,00;192.345,00;No;2,00;10,00;50;2,00;10,00;0,00;0,00;0,00;14min;-77,00 +WINJ26;29/12/2025 12:10:00;29/12/2025 12:12:00;2min;1;1;V;166.225,00;166.200,00;192.345,00;No;-5,00;-25,00;51;-5,00;-25,00;0,00;0,00;0,00;18min;-82,00 +WINJ26;29/12/2025 13:04:00;29/12/2025 13:06:00;2min;1;1;V;165.990,00;166.045,00;192.345,00;No;11,00;55,00;52;11,00;55,00;0,00;0,00;0,00;54min;-71,00 +WINJ26;29/12/2025 13:36:00;29/12/2025 13:38:00;2min;1;1;V;166.070,00;166.070,00;192.345,00;Sim;0;0;53;0;0;0,00;0,00;0,00;32min;-71,00 +WINJ26;29/12/2025 14:00:00;29/12/2025 14:08:00;8min;1;1;V;166.080,00;166.130,00;192.345,00;Sim;10,00;50,00;54;10,00;50,00;0,00;0,00;0,00;24min;-61,00 +WINJ26;29/12/2025 14:50:00;29/12/2025 14:56:00;6min;1;1;V;166.115,00;166.290,00;192.345,00;Sim;35,00;175,00;55;35,00;175,00;0,00;0,00;0,00;50min;-26,00 +WINJ26;29/12/2025 15:12:00;29/12/2025 15:28:00;16min;1;1;V;166.050,00;166.260,00;192.345,00;No;42,00;210,00;56;42,00;210,00;0,00;0,00;0,00;22min;16,00 +WINJ26;29/12/2025 16:48:00;29/12/2025 17:18:00;30min;1;1;V;166.330,00;166.010,00;192.345,00;No;-64,00;-320,00;57;-64,00;-320,00;0,00;0,00;0,00;1h36min;-48,00 +WINJ26;29/12/2025 17:36:00;29/12/2025 17:40:00;4min;1;1;V;166.220,00;166.185,00;192.345,00;Sim;-7,00;-35,00;58;-7,00;-35,00;0,00;0,00;0,00;48min;-55,00 +WINJ26;29/12/2025 18:00:00;29/12/2025 18:16:00;16min;1;1;V;166.205,00;166.210,00;192.345,00;Sim;1,00;5,00;59;1,00;5,00;0,00;0,00;0,00;24min;-54,00 +WINJ26;30/12/2025 10:08:00;30/12/2025 10:16:00;8min;1;1;C;167.630,00;167.895,00;192.345,00;No;53,00;265,00;60;53,00;265,00;0,00;0,00;0,00;16h8min;-1,00 +WINJ26;30/12/2025 10:38:00;30/12/2025 11:04:00;26min;1;1;C;167.715,00;167.355,00;192.345,00;No;-72,00;-360,00;61;-72,00;-360,00;0,00;0,00;0,00;30min;-73,00 +WINJ26;30/12/2025 11:08:00;30/12/2025 11:10:00;2min;1;1;C;167.485,00;167.635,00;192.345,00;Sim;30,00;150,00;62;30,00;150,00;0,00;0,00;0,00;30min;-43,00 +WINJ26;30/12/2025 11:28:00;30/12/2025 11:48:00;20min;1;1;C;167.375,00;167.380,00;192.345,00;Sim;1,00;5,00;63;1,00;5,00;0,00;0,00;0,00;20min;-42,00 +WINJ26;30/12/2025 12:14:00;30/12/2025 12:16:00;2min;1;1;C;167.220,00;167.235,00;192.345,00;Sim;3,00;15,00;64;3,00;15,00;0,00;0,00;0,00;46min;-39,00 +WINJ26;30/12/2025 12:28:00;30/12/2025 12:36:00;8min;1;1;C;167.200,00;167.435,00;192.345,00;Sim;47,00;235,00;65;47,00;235,00;0,00;0,00;0,00;14min;8,00 +WINJ26;30/12/2025 13:54:00;30/12/2025 14:10:00;16min;1;1;C;167.680,00;167.715,00;192.345,00;No;7,00;35,00;66;7,00;35,00;0,00;0,00;0,00;1h26min;15,00 +WINJ26;30/12/2025 15:24:00;30/12/2025 15:26:00;2min;1;1;C;167.800,00;167.770,00;192.345,00;No;-6,00;-30,00;67;-6,00;-30,00;0,00;0,00;0,00;1h30min;9,00 +WINJ26;30/12/2025 16:08:00;30/12/2025 16:10:00;2min;1;1;C;167.780,00;167.780,00;192.345,00;Sim;0;0;68;0;0;0,00;0,00;0,00;44min;9,00 +WINJ26;30/12/2025 16:42:00;30/12/2025 16:46:00;4min;1;1;C;167.685,00;167.710,00;192.345,00;Sim;5,00;25,00;69;5,00;25,00;0,00;0,00;0,00;34min;14,00 +WINJ26;30/12/2025 17:16:00;30/12/2025 17:18:00;2min;1;1;C;167.665,00;167.685,00;192.345,00;Sim;4,00;20,00;70;4,00;20,00;0,00;0,00;0,00;34min;18,00 +WINJ26;02/01/2026 09:02:00;02/01/2026 09:04:00;2min;1;1;C;167.900,00;167.880,00;192.345,00;No;-4,00;-20,00;71;-4,00;-20,00;0,00;0,00;0,00;2d15h;14,00 +WINJ26;02/01/2026 09:36:00;02/01/2026 09:40:00;4min;1;1;C;167.600,00;167.770,00;192.345,00;Sim;34,00;170,00;72;34,00;170,00;0,00;0,00;0,00;34min;48,00 +WINJ26;02/01/2026 10:12:00;02/01/2026 10:38:00;26min;1;1;C;167.860,00;167.440,00;192.345,00;No;-84,00;-420,00;73;-84,00;-420,00;0,00;0,00;0,00;36min;-36,00 +WINJ26;02/01/2026 11:20:00;02/01/2026 11:22:00;2min;1;1;V;166.975,00;166.910,00;192.345,00;Sim;-13,00;-65,00;74;-13,00;-65,00;0,00;0,00;0,00;1h8min;-49,00 +WINJ26;02/01/2026 11:58:00;02/01/2026 12:00:00;2min;1;1;V;166.845,00;166.750,00;192.345,00;No;-19,00;-95,00;75;-19,00;-95,00;0,00;0,00;0,00;38min;-68,00 +WINJ26;02/01/2026 12:08:00;02/01/2026 12:12:00;4min;1;1;V;166.570,00;166.640,00;192.345,00;No;14,00;70,00;76;14,00;70,00;0,00;0,00;0,00;10min;-54,00 +WINJ26;02/01/2026 15:28:00;02/01/2026 15:46:00;18min;1;1;V;165.975,00;166.070,00;192.345,00;No;19,00;95,00;77;19,00;95,00;0,00;0,00;0,00;3h20min;-35,00 +WINJ26;02/01/2026 16:36:00;02/01/2026 16:52:00;16min;1;1;V;166.220,00;166.265,00;192.345,00;Sim;9,00;45,00;78;9,00;45,00;0,00;0,00;0,00;1h8min;-26,00 +WINJ26;02/01/2026 17:00:00;02/01/2026 17:16:00;16min;1;1;V;166.200,00;166.250,00;192.345,00;No;10,00;50,00;79;10,00;50,00;0,00;0,00;0,00;24min;-16,00 +WINJ26;02/01/2026 17:52:00;02/01/2026 17:56:00;4min;1;1;V;166.020,00;166.160,00;192.345,00;No;28,00;140,00;80;28,00;140,00;0,00;0,00;0,00;52min;12,00 +WINJ26;02/01/2026 18:12:00;02/01/2026 18:14:00;2min;1;1;V;166.090,00;166.170,00;192.345,00;Sim;16,00;80,00;81;16,00;80,00;0,00;0,00;0,00;20min;28,00 +WINJ26;05/01/2026 09:10:00;05/01/2026 09:14:00;4min;1;1;V;166.300,00;166.395,00;192.345,00;Sim;19,00;95,00;82;19,00;95,00;0,00;0,00;0,00;2d14h;47,00 +WINJ26;05/01/2026 09:24:00;05/01/2026 09:46:00;22min;1;1;V;166.465,00;166.490,00;192.345,00;Sim;5,00;25,00;83;5,00;25,00;0,00;0,00;0,00;14min;52,00 +WINJ26;05/01/2026 09:50:00;05/01/2026 10:18:00;28min;1;1;C;166.655,00;166.080,00;192.345,00;Sim;-115,00;-575,00;84;-115,00;-575,00;0,00;0,00;0,00;26min;-63,00 +WINJ26;05/01/2026 11:40:00;05/01/2026 12:06:00;26min;1;1;C;166.590,00;166.230,00;192.345,00;Sim;-72,00;-360,00;85;-72,00;-360,00;0,00;0,00;0,00;1h50min;-135,00 +WINJ26;05/01/2026 12:14:00;05/01/2026 12:40:00;26min;1;1;V;166.820,00;166.450,00;192.345,00;No;-74,00;-370,00;86;-74,00;-370,00;0,00;0,00;0,00;34min;-209,00 +WINJ26;05/01/2026 14:30:00;05/01/2026 14:36:00;6min;1;1;C;167.400,00;167.465,00;192.345,00;No;13,00;65,00;87;13,00;65,00;0,00;0,00;0,00;2h16min;-196,00 +WINJ26;05/01/2026 15:48:00;05/01/2026 15:50:00;2min;1;1;C;167.685,00;167.705,00;192.345,00;No;4,00;20,00;88;4,00;20,00;0,00;0,00;0,00;1h18min;-192,00 +WINJ26;05/01/2026 16:32:00;05/01/2026 16:46:00;14min;1;1;C;167.700,00;167.705,00;192.345,00;No;1,00;5,00;89;1,00;5,00;0,00;0,00;0,00;44min;-191,00 +WINJ26;05/01/2026 17:26:00;05/01/2026 17:30:00;4min;1;1;C;167.540,00;167.580,00;192.345,00;Sim;8,00;40,00;90;8,00;40,00;0,00;0,00;0,00;54min;-183,00 +WINJ26;05/01/2026 18:16:00;06/01/2026 09:00:00;14h44min;1;1;C;167.600,00;167.640,00;192.345,00;No;8,00;40,00;91;8,00;40,00;0,00;0,00;0,00;50min;-175,00 +WINJ26;06/01/2026 11:04:00;06/01/2026 11:06:00;2min;1;1;C;169.625,00;169.735,00;192.345,00;No;22,00;110,00;92;22,00;110,00;0,00;0,00;0,00;16h48min;-153,00 +WINJ26;06/01/2026 11:20:00;06/01/2026 11:38:00;18min;1;1;C;169.480,00;169.445,00;192.345,00;Sim;-7,00;-35,00;93;-7,00;-35,00;0,00;0,00;0,00;16min;-160,00 +WINJ26;06/01/2026 12:02:00;06/01/2026 12:04:00;2min;1;1;C;169.375,00;169.465,00;192.345,00;Sim;18,00;90,00;94;18,00;90,00;0,00;0,00;0,00;42min;-142,00 +WINJ26;06/01/2026 12:26:00;06/01/2026 12:44:00;18min;1;1;C;169.430,00;169.410,00;192.345,00;No;-4,00;-20,00;95;-4,00;-20,00;0,00;0,00;0,00;24min;-146,00 +WINJ26;06/01/2026 13:14:00;06/01/2026 13:30:00;16min;1;1;C;169.335,00;169.405,00;192.345,00;Sim;14,00;70,00;96;14,00;70,00;0,00;0,00;0,00;48min;-132,00 +WINJ26;06/01/2026 14:20:00;06/01/2026 14:34:00;14min;1;1;C;169.440,00;169.465,00;192.345,00;No;5,00;25,00;97;5,00;25,00;0,00;0,00;0,00;1h6min;-127,00 +WINJ26;06/01/2026 15:02:00;06/01/2026 15:04:00;2min;1;1;C;169.490,00;169.550,00;192.345,00;No;12,00;60,00;98;12,00;60,00;0,00;0,00;0,00;42min;-115,00 +WINJ26;06/01/2026 15:12:00;06/01/2026 15:38:00;26min;1;1;C;169.505,00;169.365,00;192.345,00;No;-28,00;-140,00;99;-28,00;-140,00;0,00;0,00;0,00;10min;-143,00 +WINJ26;06/01/2026 17:12:00;06/01/2026 17:16:00;4min;1;1;C;169.195,00;169.165,00;192.345,00;Sim;-6,00;-30,00;100;-6,00;-30,00;0,00;0,00;0,00;2h;-149,00 +WINJ26;06/01/2026 18:00:00;06/01/2026 18:08:00;8min;1;1;C;169.220,00;169.365,00;192.345,00;No;29,00;145,00;101;29,00;145,00;0,00;0,00;0,00;48min;-120,00 +WINJ26;07/01/2026 09:10:00;07/01/2026 09:20:00;10min;1;1;C;169.250,00;169.335,00;192.345,00;No;17,00;85,00;102;17,00;85,00;0,00;0,00;0,00;15h10min;-103,00 +WINJ26;07/01/2026 09:26:00;07/01/2026 09:32:00;6min;1;1;C;169.150,00;169.105,00;192.345,00;Sim;-9,00;-45,00;103;-9,00;-45,00;0,00;0,00;0,00;16min;-112,00 +WINJ26;07/01/2026 12:44:00;07/01/2026 12:46:00;2min;1;1;V;167.570,00;167.515,00;192.345,00;Sim;-11,00;-55,00;104;-11,00;-55,00;0,00;0,00;0,00;3h18min;-123,00 +WINJ26;07/01/2026 13:02:00;07/01/2026 13:38:00;36min;1;1;V;167.650,00;167.645,00;192.345,00;Sim;-1,00;-5,00;105;-1,00;-5,00;0,00;0,00;0,00;18min;-124,00 +WINJ26;07/01/2026 13:48:00;07/01/2026 13:52:00;4min;1;1;V;167.680,00;167.650,00;192.345,00;Sim;-6,00;-30,00;106;-6,00;-30,00;0,00;0,00;0,00;46min;-130,00 +WINJ26;07/01/2026 14:04:00;07/01/2026 14:06:00;2min;1;1;V;167.620,00;167.650,00;192.345,00;No;6,00;30,00;107;6,00;30,00;0,00;0,00;0,00;16min;-124,00 +WINJ26;07/01/2026 14:26:00;07/01/2026 14:52:00;26min;1;1;V;167.545,00;167.645,00;192.345,00;No;20,00;100,00;108;20,00;100,00;0,00;0,00;0,00;22min;-104,00 +WINJ26;07/01/2026 15:46:00;07/01/2026 16:14:00;28min;1;1;V;167.700,00;167.650,00;192.345,00;Sim;-10,00;-50,00;109;-10,00;-50,00;0,00;0,00;0,00;1h20min;-114,00 +WINJ26;07/01/2026 17:00:00;07/01/2026 17:16:00;16min;1;1;V;167.660,00;167.690,00;192.345,00;Sim;6,00;30,00;110;6,00;30,00;0,00;0,00;0,00;1h14min;-108,00 +WINJ26;08/01/2026 09:22:00;08/01/2026 09:32:00;10min;1;1;V;167.330,00;167.400,00;192.345,00;No;14,00;70,00;111;14,00;70,00;0,00;0,00;0,00;16h22min;-94,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 10:02:00;2min;1;1;V;167.415,00;167.525,00;192.345,00;Sim;22,00;110,00;112;22,00;110,00;0,00;0,00;0,00;38min;-72,00 +WINJ26;08/01/2026 10:14:00;08/01/2026 10:18:00;4min;1;1;V;167.440,00;167.680,00;192.345,00;Sim;48,00;240,00;113;48,00;240,00;0,00;0,00;0,00;14min;-24,00 +WINJ26;08/01/2026 11:54:00;08/01/2026 12:04:00;10min;1;1;C;167.925,00;167.860,00;192.345,00;Sim;-13,00;-65,00;114;-13,00;-65,00;0,00;0,00;0,00;1h40min;-37,00 +WINJ26;08/01/2026 12:32:00;08/01/2026 12:36:00;4min;1;1;C;167.990,00;168.005,00;192.345,00;No;3,00;15,00;115;3,00;15,00;0,00;0,00;0,00;38min;-34,00 +WINJ26;08/01/2026 12:54:00;08/01/2026 13:00:00;6min;1;1;C;167.925,00;168.000,00;192.345,00;Sim;15,00;75,00;116;15,00;75,00;0,00;0,00;0,00;22min;-19,00 +WINJ26;08/01/2026 13:28:00;08/01/2026 13:30:00;2min;1;1;C;167.940,00;167.950,00;192.345,00;No;2,00;10,00;117;2,00;10,00;0,00;0,00;0,00;34min;-17,00 +WINJ26;08/01/2026 14:20:00;08/01/2026 14:48:00;28min;1;1;C;168.030,00;167.850,00;192.345,00;No;-36,00;-180,00;118;-36,00;-180,00;0,00;0,00;0,00;52min;-53,00 +WINJ26;08/01/2026 15:04:00;08/01/2026 15:28:00;24min;1;1;C;167.855,00;167.900,00;192.345,00;Sim;9,00;45,00;119;9,00;45,00;0,00;0,00;0,00;44min;-44,00 +WINJ26;08/01/2026 15:48:00;08/01/2026 15:50:00;2min;1;1;C;167.960,00;167.970,00;192.345,00;No;2,00;10,00;120;2,00;10,00;0,00;0,00;0,00;44min;-42,00 +WINJ26;08/01/2026 17:00:00;08/01/2026 17:34:00;34min;1;1;C;168.055,00;168.130,00;192.345,00;No;15,00;75,00;121;15,00;75,00;0,00;0,00;0,00;1h12min;-27,00 +WINJ26;09/01/2026 11:04:00;09/01/2026 11:08:00;4min;1;1;C;169.025,00;169.100,00;192.345,00;No;15,00;75,00;122;15,00;75,00;0,00;0,00;0,00;18h4min;-12,00 +WINJ26;09/01/2026 11:30:00;09/01/2026 11:32:00;2min;1;1;C;168.930,00;169.005,00;192.345,00;Sim;15,00;75,00;123;15,00;75,00;0,00;0,00;0,00;26min;3,00 +WINJ26;09/01/2026 12:20:00;09/01/2026 12:24:00;4min;1;1;C;169.285,00;169.350,00;192.345,00;No;13,00;65,00;124;13,00;65,00;0,00;0,00;0,00;50min;16,00 +WINJ26;09/01/2026 12:30:00;09/01/2026 12:32:00;2min;1;1;C;169.360,00;169.415,00;192.345,00;No;11,00;55,00;125;11,00;55,00;0,00;0,00;0,00;10min;27,00 +WINJ26;09/01/2026 12:58:00;09/01/2026 13:10:00;12min;1;1;C;169.250,00;169.270,00;192.345,00;Sim;4,00;20,00;126;4,00;20,00;0,00;0,00;0,00;28min;31,00 +WINJ26;09/01/2026 13:22:00;09/01/2026 13:24:00;2min;1;1;C;169.200,00;169.280,00;192.345,00;Sim;16,00;80,00;127;16,00;80,00;0,00;0,00;0,00;24min;47,00 +WINJ26;09/01/2026 15:34:00;09/01/2026 15:48:00;14min;1;1;C;169.295,00;169.325,00;192.345,00;No;6,00;30,00;128;6,00;30,00;0,00;0,00;0,00;2h12min;53,00 +WINJ26;09/01/2026 16:30:00;09/01/2026 16:56:00;26min;1;1;C;169.035,00;169.050,00;192.345,00;Sim;3,00;15,00;129;3,00;15,00;0,00;0,00;0,00;56min;56,00 +WINJ26;09/01/2026 17:02:00;09/01/2026 17:16:00;14min;1;1;C;169.055,00;169.050,00;192.345,00;No;-1,00;-5,00;130;-1,00;-5,00;0,00;0,00;0,00;32min;55,00 +WINJ26;12/01/2026 09:06:00;12/01/2026 09:08:00;2min;1;1;V;168.485,00;168.555,00;192.345,00;Sim;14,00;70,00;131;14,00;70,00;0,00;0,00;0,00;2d16h;69,00 +WINJ26;12/01/2026 09:26:00;12/01/2026 09:28:00;2min;1;1;V;168.835,00;168.825,00;192.345,00;Sim;-2,00;-10,00;132;-2,00;-10,00;0,00;0,00;0,00;20min;67,00 +WINJ26;12/01/2026 09:42:00;12/01/2026 09:44:00;2min;1;1;V;168.665,00;168.750,00;192.345,00;No;17,00;85,00;133;17,00;85,00;0,00;0,00;0,00;16min;84,00 +WINJ26;12/01/2026 11:26:00;12/01/2026 11:52:00;26min;1;1;V;168.500,00;168.025,00;192.345,00;No;-95,00;-475,00;134;-95,00;-475,00;0,00;0,00;0,00;1h44min;-11,00 +WINJ26;12/01/2026 11:54:00;12/01/2026 12:20:00;26min;1;1;V;168.700,00;168.465,00;192.345,00;Sim;-47,00;-235,00;135;-47,00;-235,00;0,00;0,00;0,00;28min;-58,00 +WINJ26;12/01/2026 13:18:00;12/01/2026 13:34:00;16min;1;1;C;168.710,00;168.765,00;192.345,00;Sim;11,00;55,00;136;11,00;55,00;0,00;0,00;0,00;1h24min;-47,00 +WINJ26;12/01/2026 15:44:00;12/01/2026 15:46:00;2min;1;1;V;168.610,00;168.555,00;192.345,00;Sim;-11,00;-55,00;137;-11,00;-55,00;0,00;0,00;0,00;2h26min;-58,00 +WINJ26;12/01/2026 16:22:00;12/01/2026 16:32:00;10min;1;1;C;168.565,00;168.685,00;192.345,00;Sim;24,00;120,00;138;24,00;120,00;0,00;0,00;0,00;38min;-34,00 +WINJ26;12/01/2026 17:00:00;12/01/2026 17:10:00;10min;1;1;C;168.610,00;168.645,00;192.345,00;No;7,00;35,00;139;7,00;35,00;0,00;0,00;0,00;38min;-27,00 +WINJ26;12/01/2026 18:16:00;13/01/2026 09:08:00;14h52min;1;1;V;168.400,00;168.495,00;192.345,00;No;19,00;95,00;140;19,00;95,00;0,00;0,00;0,00;1h16min;-8,00 +WINJ26;13/01/2026 10:46:00;13/01/2026 10:52:00;6min;1;1;V;167.625,00;167.705,00;192.345,00;No;16,00;80,00;141;16,00;80,00;0,00;0,00;0,00;16h30min;8,00 +WINJ26;13/01/2026 11:16:00;13/01/2026 11:18:00;2min;1;1;V;167.750,00;167.750,00;192.345,00;Sim;0;0;142;0;0;0,00;0,00;0,00;30min;8,00 +WINJ26;13/01/2026 11:28:00;13/01/2026 11:32:00;4min;1;1;V;167.765,00;167.915,00;192.345,00;Sim;30,00;150,00;143;30,00;150,00;0,00;0,00;0,00;12min;38,00 +WINJ26;13/01/2026 12:54:00;13/01/2026 12:56:00;2min;1;1;V;167.180,00;167.190,00;192.345,00;No;2,00;10,00;144;2,00;10,00;0,00;0,00;0,00;1h26min;40,00 +WINJ26;13/01/2026 13:58:00;13/01/2026 14:02:00;4min;1;1;V;167.185,00;167.220,00;192.345,00;Sim;7,00;35,00;145;7,00;35,00;0,00;0,00;0,00;1h4min;47,00 +WINJ26;13/01/2026 14:26:00;13/01/2026 14:40:00;14min;1;1;V;167.260,00;167.335,00;192.345,00;Sim;15,00;75,00;146;15,00;75,00;0,00;0,00;0,00;28min;62,00 +WINJ26;13/01/2026 15:00:00;13/01/2026 15:02:00;2min;1;1;V;167.270,00;167.295,00;192.345,00;No;5,00;25,00;147;5,00;25,00;0,00;0,00;0,00;34min;67,00 +WINJ26;13/01/2026 15:26:00;13/01/2026 15:28:00;2min;1;1;V;167.250,00;167.215,00;192.345,00;No;-7,00;-35,00;148;-7,00;-35,00;0,00;0,00;0,00;26min;60,00 +WINJ26;13/01/2026 15:48:00;13/01/2026 15:50:00;2min;1;1;V;167.250,00;167.265,00;192.345,00;Sim;3,00;15,00;149;3,00;15,00;0,00;0,00;0,00;22min;63,00 +WINJ26;13/01/2026 17:18:00;13/01/2026 17:22:00;4min;1;1;V;167.145,00;167.205,00;192.345,00;No;12,00;60,00;150;12,00;60,00;0,00;0,00;0,00;1h30min;75,00 +WINJ26;14/01/2026 11:22:00;14/01/2026 11:24:00;2min;1;1;C;168.170,00;168.120,00;192.345,00;Sim;-10,00;-50,00;151;-10,00;-50,00;0,00;0,00;0,00;18h4min;65,00 +WINJ26;14/01/2026 12:38:00;14/01/2026 12:40:00;2min;1;1;C;168.805,00;168.940,00;192.345,00;No;27,00;135,00;152;27,00;135,00;0,00;0,00;0,00;1h16min;92,00 +WINJ26;14/01/2026 12:56:00;14/01/2026 13:04:00;8min;1;1;C;168.600,00;168.695,00;192.345,00;Sim;19,00;95,00;153;19,00;95,00;0,00;0,00;0,00;18min;111,00 +WINJ26;14/01/2026 14:40:00;14/01/2026 14:42:00;2min;1;1;C;168.950,00;168.910,00;192.345,00;No;-8,00;-40,00;154;-8,00;-40,00;0,00;0,00;0,00;1h44min;103,00 +WINJ26;14/01/2026 14:50:00;14/01/2026 15:02:00;12min;1;1;C;168.900,00;168.930,00;192.345,00;Sim;6,00;30,00;155;6,00;30,00;0,00;0,00;0,00;10min;109,00 +WINJ26;14/01/2026 17:20:00;14/01/2026 17:22:00;2min;1;1;C;169.815,00;169.785,00;192.345,00;No;-6,00;-30,00;156;-6,00;-30,00;0,00;0,00;0,00;2h30min;103,00 +WINJ26;15/01/2026 09:08:00;15/01/2026 09:10:00;2min;1;1;C;170.615,00;170.620,00;192.345,00;No;1,00;5,00;157;1,00;5,00;0,00;0,00;0,00;15h48min;104,00 +WINJ26;15/01/2026 09:24:00;15/01/2026 09:44:00;20min;1;1;C;170.415,00;170.525,00;192.345,00;Sim;22,00;110,00;158;22,00;110,00;0,00;0,00;0,00;16min;126,00 +WINJ26;15/01/2026 10:18:00;15/01/2026 10:20:00;2min;1;1;C;170.755,00;170.555,00;192.345,00;No;-40,00;-200,00;159;-40,00;-200,00;0,00;0,00;0,00;54min;86,00 +WINJ26;15/01/2026 10:28:00;15/01/2026 10:54:00;26min;1;1;C;170.610,00;170.290,00;192.345,00;Sim;-64,00;-320,00;160;-64,00;-320,00;0,00;0,00;0,00;10min;22,00 +WINJ26;15/01/2026 10:56:00;15/01/2026 11:22:00;26min;1;1;C;170.410,00;170.195,00;192.345,00;Sim;-43,00;-215,00;161;-43,00;-215,00;0,00;0,00;0,00;28min;-21,00 +WINJ26;15/01/2026 11:28:00;15/01/2026 11:30:00;2min;1;1;C;170.280,00;170.290,00;192.345,00;Sim;2,00;10,00;162;2,00;10,00;0,00;0,00;0,00;32min;-19,00 +WINJ26;15/01/2026 11:48:00;15/01/2026 12:00:00;12min;1;1;C;170.120,00;170.120,00;192.345,00;Sim;0;0;163;0;0;0,00;0,00;0,00;20min;-19,00 +WINJ26;15/01/2026 13:06:00;15/01/2026 13:16:00;10min;1;1;C;170.405,00;170.545,00;192.345,00;No;28,00;140,00;164;28,00;140,00;0,00;0,00;0,00;1h18min;9,00 +WINJ26;15/01/2026 14:30:00;15/01/2026 14:34:00;4min;1;1;C;170.760,00;170.785,00;192.345,00;No;5,00;25,00;165;5,00;25,00;0,00;0,00;0,00;1h24min;14,00 +WINJ26;15/01/2026 16:08:00;15/01/2026 16:38:00;30min;1;1;C;171.200,00;171.010,00;192.345,00;No;-38,00;-190,00;166;-38,00;-190,00;0,00;0,00;0,00;1h38min;-24,00 +WINJ26;15/01/2026 18:02:00;15/01/2026 18:06:00;4min;1;1;C;170.700,00;170.680,00;192.345,00;Sim;-4,00;-20,00;167;-4,00;-20,00;0,00;0,00;0,00;1h54min;-28,00 +WINJ26;16/01/2026 09:48:00;16/01/2026 10:20:00;32min;1;1;C;170.915,00;170.715,00;192.345,00;No;-40,00;-200,00;168;-40,00;-200,00;0,00;0,00;0,00;15h46min;-68,00 +WINJ26;16/01/2026 11:54:00;16/01/2026 12:16:00;22min;1;1;V;169.780,00;169.865,00;192.345,00;Sim;17,00;85,00;169;17,00;85,00;0,00;0,00;0,00;2h6min;-51,00 +WINJ26;16/01/2026 12:54:00;16/01/2026 12:56:00;2min;1;1;V;169.285,00;169.360,00;192.345,00;No;15,00;75,00;170;15,00;75,00;0,00;0,00;0,00;1h;-36,00 +WINJ26;16/01/2026 13:20:00;16/01/2026 13:48:00;28min;1;1;V;169.660,00;169.505,00;192.345,00;Sim;-31,00;-155,00;171;-31,00;-155,00;0,00;0,00;0,00;26min;-67,00 +WINJ26;16/01/2026 13:54:00;16/01/2026 13:58:00;4min;1;1;V;169.505,00;169.650,00;192.345,00;Sim;29,00;145,00;172;29,00;145,00;0,00;0,00;0,00;34min;-38,00 +WINJ26;16/01/2026 14:16:00;16/01/2026 14:18:00;2min;1;1;V;169.495,00;169.490,00;192.345,00;No;-1,00;-5,00;173;-1,00;-5,00;0,00;0,00;0,00;22min;-39,00 +WINJ26;16/01/2026 14:46:00;16/01/2026 14:48:00;2min;1;1;V;169.505,00;169.535,00;192.345,00;Sim;6,00;30,00;174;6,00;30,00;0,00;0,00;0,00;30min;-33,00 +WINJ26;16/01/2026 14:58:00;16/01/2026 15:06:00;8min;1;1;V;169.530,00;169.485,00;192.345,00;No;-9,00;-45,00;175;-9,00;-45,00;0,00;0,00;0,00;12min;-42,00 +WINJ26;16/01/2026 15:34:00;16/01/2026 15:48:00;14min;1;1;V;169.600,00;169.625,00;192.345,00;Sim;5,00;25,00;176;5,00;25,00;0,00;0,00;0,00;36min;-37,00 +WINJ26;16/01/2026 16:02:00;16/01/2026 16:12:00;10min;1;1;V;169.625,00;169.665,00;192.345,00;Sim;8,00;40,00;177;8,00;40,00;0,00;0,00;0,00;28min;-29,00 +WINJ26;16/01/2026 16:56:00;16/01/2026 17:38:00;42min;1;1;V;169.695,00;169.670,00;192.345,00;Sim;-5,00;-25,00;178;-5,00;-25,00;0,00;0,00;0,00;54min;-34,00 +WINJ26;16/01/2026 17:40:00;16/01/2026 17:42:00;2min;1;1;V;169.650,00;169.655,00;192.345,00;No;1,00;5,00;179;1,00;5,00;0,00;0,00;0,00;44min;-33,00 +WINJ26;16/01/2026 18:16:00;19/01/2026 09:02:00;2d14h;1;1;V;169.210,00;169.670,00;192.345,00;Sim;92,00;460,00;180;92,00;460,00;0,00;0,00;0,00;36min;59,00 +WINJ26;19/01/2026 09:52:00;19/01/2026 09:54:00;2min;1;1;V;169.485,00;169.500,00;192.345,00;No;3,00;15,00;181;3,00;15,00;0,00;0,00;0,00;2d15h;62,00 +WINJ26;19/01/2026 10:04:00;19/01/2026 10:22:00;18min;1;1;V;169.600,00;169.600,00;192.345,00;Sim;0;0;182;0;0;0,00;0,00;0,00;12min;62,00 +WINJ26;19/01/2026 11:10:00;19/01/2026 11:12:00;2min;1;1;V;169.470,00;169.555,00;192.345,00;No;17,00;85,00;183;17,00;85,00;0,00;0,00;0,00;1h6min;79,00 +WINJ26;19/01/2026 11:44:00;19/01/2026 12:06:00;22min;1;1;V;169.640,00;169.475,00;192.345,00;No;-33,00;-165,00;184;-33,00;-165,00;0,00;0,00;0,00;34min;46,00 +WINJ26;19/01/2026 12:36:00;19/01/2026 13:02:00;26min;1;1;V;169.725,00;169.680,00;192.345,00;Sim;-9,00;-45,00;185;-9,00;-45,00;0,00;0,00;0,00;52min;37,00 +WINJ26;19/01/2026 13:58:00;19/01/2026 14:04:00;6min;1;1;C;169.805,00;169.885,00;192.345,00;Sim;16,00;80,00;186;16,00;80,00;0,00;0,00;0,00;1h22min;53,00 +WINJ26;19/01/2026 15:06:00;19/01/2026 15:12:00;6min;1;1;V;169.715,00;169.770,00;192.345,00;Sim;11,00;55,00;187;11,00;55,00;0,00;0,00;0,00;1h8min;64,00 +WINJ26;19/01/2026 15:56:00;19/01/2026 16:04:00;8min;1;1;V;169.660,00;169.660,00;192.345,00;No;0;0;188;0;0;0,00;0,00;0,00;50min;64,00 +WINJ26;19/01/2026 16:22:00;19/01/2026 16:28:00;6min;1;1;V;169.690,00;169.650,00;192.345,00;No;-8,00;-40,00;189;-8,00;-40,00;0,00;0,00;0,00;26min;56,00 +WINJ26;19/01/2026 16:32:00;19/01/2026 16:38:00;6min;1;1;V;169.655,00;169.675,00;192.345,00;Sim;4,00;20,00;190;4,00;20,00;0,00;0,00;0,00;10min;60,00 +WINJ26;19/01/2026 17:10:00;19/01/2026 17:46:00;36min;1;1;V;169.750,00;169.630,00;192.345,00;No;-24,00;-120,00;191;-24,00;-120,00;0,00;0,00;0,00;38min;36,00 +WINJ26;20/01/2026 09:02:00;20/01/2026 09:04:00;2min;1;1;V;169.150,00;168.775,00;192.345,00;No;-75,00;-375,00;192;-75,00;-375,00;0,00;0,00;0,00;15h52min;-39,00 +WINJ26;20/01/2026 10:04:00;20/01/2026 10:16:00;12min;1;1;V;168.660,00;168.775,00;192.345,00;No;23,00;115,00;193;23,00;115,00;0,00;0,00;0,00;1h2min;-16,00 +WINJ26;20/01/2026 10:28:00;20/01/2026 10:30:00;2min;1;1;V;168.895,00;169.010,00;192.345,00;Sim;23,00;115,00;194;23,00;115,00;0,00;0,00;0,00;24min;7,00 +WINJ26;20/01/2026 11:08:00;20/01/2026 11:10:00;2min;1;1;V;169.015,00;169.150,00;192.345,00;Sim;27,00;135,00;195;27,00;135,00;0,00;0,00;0,00;40min;34,00 +WINJ26;20/01/2026 11:18:00;20/01/2026 11:44:00;26min;1;1;V;170.725,00;169.190,00;192.345,00;Sim;-307,00;-1.535,00;196;-307,00;-1.535,00;0,00;0,00;0,00;10min;-273,00 +WINJ26;20/01/2026 12:06:00;20/01/2026 12:18:00;12min;1;1;C;170.325,00;170.410,00;192.345,00;No;17,00;85,00;197;17,00;85,00;0,00;0,00;0,00;48min;-256,00 +WINJ26;20/01/2026 13:58:00;20/01/2026 14:00:00;2min;1;1;C;171.255,00;171.180,00;192.345,00;No;-15,00;-75,00;198;-15,00;-75,00;0,00;0,00;0,00;1h52min;-271,00 +WINJ26;20/01/2026 15:00:00;20/01/2026 15:28:00;28min;1;1;C;170.935,00;170.890,00;192.345,00;Sim;-9,00;-45,00;199;-9,00;-45,00;0,00;0,00;0,00;1h2min;-280,00 +WINJ26;20/01/2026 15:32:00;20/01/2026 15:38:00;6min;1;1;C;170.895,00;170.910,00;192.345,00;Sim;3,00;15,00;200;3,00;15,00;0,00;0,00;0,00;32min;-277,00 +WINJ26;20/01/2026 16:20:00;20/01/2026 16:28:00;8min;1;1;C;170.635,00;170.715,00;192.345,00;Sim;16,00;80,00;201;16,00;80,00;0,00;0,00;0,00;48min;-261,00 +WINJ26;20/01/2026 17:18:00;20/01/2026 17:20:00;2min;1;1;C;170.850,00;170.800,00;192.345,00;No;-10,00;-50,00;202;-10,00;-50,00;0,00;0,00;0,00;58min;-271,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.345,00;No;-6,00;-30,00;203;-6,00;-30,00;0,00;0,00;0,00;15h44min;-277,00 +WINJ26;21/01/2026 12:36:00;21/01/2026 12:50:00;14min;1;1;C;174.325,00;174.465,00;192.345,00;No;28,00;140,00;204;28,00;140,00;0,00;0,00;0,00;3h34min;-249,00 +WINJ26;21/01/2026 14:00:00;21/01/2026 14:02:00;2min;1;1;C;175.010,00;175.065,00;192.345,00;No;11,00;55,00;205;11,00;55,00;0,00;0,00;0,00;1h24min;-238,00 +WINJ26;21/01/2026 14:20:00;21/01/2026 14:42:00;22min;1;1;C;174.900,00;174.900,00;192.345,00;Sim;0;0;206;0;0;0,00;0,00;0,00;20min;-238,00 +WINJ26;21/01/2026 18:14:00;21/01/2026 18:20:00;6min;1;1;C;176.930,00;177.000,00;192.345,00;No;14,00;70,00;207;14,00;70,00;0,00;0,00;0,00;3h54min;-224,00 +WINJ26;22/01/2026 09:04:00;22/01/2026 09:06:00;2min;1;1;C;177.340,00;177.305,00;192.345,00;No;-7,00;-35,00;208;-7,00;-35,00;0,00;0,00;0,00;14h50min;-231,00 +WINJ26;22/01/2026 10:12:00;22/01/2026 10:18:00;6min;1;1;C;177.810,00;177.995,00;192.345,00;No;37,00;185,00;209;37,00;185,00;0,00;0,00;0,00;1h8min;-194,00 +WINJ26;22/01/2026 10:40:00;22/01/2026 10:42:00;2min;1;1;C;178.100,00;178.085,00;192.345,00;No;-3,00;-15,00;210;-3,00;-15,00;0,00;0,00;0,00;28min;-197,00 +WINJ26;22/01/2026 13:48:00;22/01/2026 13:50:00;2min;1;1;C;181.810,00;182.005,00;192.345,00;No;39,00;195,00;211;39,00;195,00;0,00;0,00;0,00;3h8min;-158,00 +WINJ26;22/01/2026 14:04:00;22/01/2026 14:06:00;2min;1;1;C;182.020,00;181.940,00;192.345,00;No;-16,00;-80,00;212;-16,00;-80,00;0,00;0,00;0,00;16min;-174,00 +WINJ26;22/01/2026 14:12:00;22/01/2026 14:32:00;20min;1;1;C;181.885,00;181.780,00;192.345,00;Sim;-21,00;-105,00;213;-21,00;-105,00;0,00;0,00;0,00;8min;-195,00 +WINJ26;22/01/2026 14:52:00;22/01/2026 14:54:00;2min;1;1;C;181.720,00;181.745,00;192.345,00;Sim;5,00;25,00;214;5,00;25,00;0,00;0,00;0,00;40min;-190,00 +WINJ26;22/01/2026 16:02:00;22/01/2026 16:30:00;28min;1;1;C;181.220,00;181.150,00;192.345,00;Sim;-14,00;-70,00;215;-14,00;-70,00;0,00;0,00;0,00;1h10min;-204,00 +WINJ26;22/01/2026 16:54:00;22/01/2026 17:20:00;26min;1;1;C;180.840,00;180.470,00;192.345,00;Sim;-74,00;-370,00;216;-74,00;-370,00;0,00;0,00;0,00;52min;-278,00 +WINJ26;22/01/2026 17:22:00;22/01/2026 17:24:00;2min;1;1;C;180.705,00;180.575,00;192.345,00;Sim;-26,00;-130,00;217;-26,00;-130,00;0,00;0,00;0,00;28min;-304,00 +WINJ26;22/01/2026 18:08:00;22/01/2026 18:10:00;2min;1;1;C;180.870,00;180.930,00;192.345,00;No;12,00;60,00;218;12,00;60,00;0,00;0,00;0,00;46min;-292,00 +WINJ26;23/01/2026 09:26:00;23/01/2026 09:28:00;2min;1;1;C;181.350,00;181.430,00;192.345,00;No;16,00;80,00;219;16,00;80,00;0,00;0,00;0,00;15h18min;-276,00 +WINJ26;23/01/2026 09:54:00;23/01/2026 10:00:00;6min;1;1;C;181.500,00;181.620,00;192.345,00;No;24,00;120,00;220;24,00;120,00;0,00;0,00;0,00;28min;-252,00 +WINJ26;23/01/2026 10:08:00;23/01/2026 10:16:00;8min;1;1;C;181.480,00;181.550,00;192.345,00;Sim;14,00;70,00;221;14,00;70,00;0,00;0,00;0,00;14min;-238,00 +WINJ26;23/01/2026 10:36:00;23/01/2026 10:38:00;2min;1;1;C;181.590,00;181.630,00;192.345,00;No;8,00;40,00;222;8,00;40,00;0,00;0,00;0,00;28min;-230,00 +WINJ26;23/01/2026 10:54:00;23/01/2026 11:14:00;20min;1;1;C;181.410,00;181.455,00;192.345,00;Sim;9,00;45,00;223;9,00;45,00;0,00;0,00;0,00;18min;-221,00 +WINJ26;23/01/2026 11:28:00;23/01/2026 11:30:00;2min;1;1;C;181.325,00;181.255,00;192.345,00;Sim;-14,00;-70,00;224;-14,00;-70,00;0,00;0,00;0,00;34min;-235,00 +WINJ26;23/01/2026 11:36:00;23/01/2026 12:02:00;26min;1;1;C;181.160,00;181.320,00;192.345,00;Sim;32,00;160,00;225;32,00;160,00;0,00;0,00;0,00;8min;-203,00 +WINJ26;23/01/2026 12:54:00;23/01/2026 12:56:00;2min;1;1;C;182.395,00;182.320,00;192.345,00;No;-15,00;-75,00;226;-15,00;-75,00;0,00;0,00;0,00;1h18min;-218,00 +WINJ26;23/01/2026 13:52:00;23/01/2026 14:20:00;28min;1;1;C;182.315,00;182.100,00;192.345,00;Sim;-43,00;-215,00;227;-43,00;-215,00;0,00;0,00;0,00;58min;-261,00 +WINJ26;23/01/2026 14:42:00;23/01/2026 15:10:00;28min;1;1;C;182.110,00;181.745,00;192.345,00;Sim;-73,00;-365,00;228;-73,00;-365,00;0,00;0,00;0,00;50min;-334,00 +WINJ26;23/01/2026 15:18:00;23/01/2026 15:22:00;4min;1;1;C;181.825,00;182.150,00;192.345,00;Sim;65,00;325,00;229;65,00;325,00;0,00;0,00;0,00;36min;-269,00 +WINJ26;23/01/2026 18:14:00;23/01/2026 18:22:00;8min;1;1;C;184.185,00;184.300,00;192.345,00;No;23,00;115,00;230;23,00;115,00;0,00;0,00;0,00;2h56min;-246,00 +WINJ26;26/01/2026 09:44:00;26/01/2026 10:00:00;16min;1;1;C;185.040,00;184.825,00;192.345,00;No;-43,00;-215,00;231;-43,00;-215,00;0,00;0,00;0,00;2d15h;-289,00 +WINJ26;26/01/2026 12:52:00;26/01/2026 13:02:00;10min;1;1;V;183.585,00;183.560,00;192.345,00;Sim;-5,00;-25,00;232;-5,00;-25,00;0,00;0,00;0,00;3h8min;-294,00 +WINJ26;26/01/2026 13:54:00;26/01/2026 14:00:00;6min;1;1;V;183.355,00;183.250,00;192.345,00;No;-21,00;-105,00;233;-21,00;-105,00;0,00;0,00;0,00;1h2min;-315,00 +WINJ26;26/01/2026 14:04:00;26/01/2026 14:36:00;32min;1;1;V;183.955,00;183.530,00;192.345,00;Sim;-85,00;-425,00;234;-85,00;-425,00;0,00;0,00;0,00;10min;-400,00 +WINJ26;26/01/2026 15:38:00;26/01/2026 15:40:00;2min;1;1;C;183.780,00;183.550,00;192.345,00;Sim;-46,00;-230,00;235;-46,00;-230,00;0,00;0,00;0,00;1h34min;-446,00 +WINJ26;26/01/2026 15:42:00;26/01/2026 16:02:00;20min;1;1;V;183.455,00;183.530,00;192.345,00;No;15,00;75,00;236;15,00;75,00;0,00;0,00;0,00;4min;-431,00 +WINJ26;26/01/2026 16:34:00;26/01/2026 16:54:00;20min;1;1;V;183.155,00;183.270,00;192.345,00;No;23,00;115,00;237;23,00;115,00;0,00;0,00;0,00;52min;-408,00 +WINJ26;27/01/2026 09:02:00;27/01/2026 09:04:00;2min;1;1;C;185.465,00;185.405,00;192.345,00;No;-12,00;-60,00;238;-12,00;-60,00;0,00;0,00;0,00;16h28min;-420,00 +WINJ26;27/01/2026 10:08:00;27/01/2026 10:12:00;4min;1;1;C;185.900,00;186.105,00;192.345,00;No;41,00;205,00;239;41,00;205,00;0,00;0,00;0,00;1h6min;-379,00 +WINJ26;27/01/2026 10:28:00;27/01/2026 10:32:00;4min;1;1;C;185.970,00;186.115,00;192.345,00;No;29,00;145,00;240;29,00;145,00;0,00;0,00;0,00;20min;-350,00 +WINJ26;27/01/2026 12:30:00;27/01/2026 12:42:00;12min;1;1;C;187.690,00;187.600,00;192.345,00;No;-18,00;-90,00;241;-18,00;-90,00;0,00;0,00;0,00;2h2min;-368,00 +WINJ26;27/01/2026 13:18:00;27/01/2026 13:20:00;2min;1;1;C;187.725,00;187.900,00;192.345,00;No;35,00;175,00;242;35,00;175,00;0,00;0,00;0,00;48min;-333,00 +WINJ26;27/01/2026 14:42:00;27/01/2026 15:12:00;30min;1;1;C;187.750,00;187.025,00;192.345,00;No;-145,00;-725,00;243;-145,00;-725,00;0,00;0,00;0,00;1h24min;-478,00 +WINJ26;27/01/2026 15:16:00;27/01/2026 15:20:00;4min;1;1;C;187.075,00;187.310,00;192.345,00;Sim;47,00;235,00;244;47,00;235,00;0,00;0,00;0,00;34min;-431,00 +WINJ26;27/01/2026 15:52:00;27/01/2026 16:12:00;20min;1;1;C;187.100,00;187.200,00;192.345,00;No;20,00;100,00;245;20,00;100,00;0,00;0,00;0,00;36min;-411,00 +WINJ26;27/01/2026 16:56:00;27/01/2026 17:02:00;6min;1;1;C;187.130,00;187.245,00;192.345,00;No;23,00;115,00;246;23,00;115,00;0,00;0,00;0,00;1h4min;-388,00 +WINJ26;27/01/2026 17:36:00;27/01/2026 17:38:00;2min;1;1;C;187.270,00;187.450,00;192.345,00;No;36,00;180,00;247;36,00;180,00;0,00;0,00;0,00;40min;-352,00 +WINJ26;27/01/2026 17:46:00;27/01/2026 17:48:00;2min;1;1;C;187.160,00;187.270,00;192.345,00;Sim;22,00;110,00;248;22,00;110,00;0,00;0,00;0,00;10min;-330,00 +WINJ26;28/01/2026 09:02:00;28/01/2026 09:04:00;2min;1;1;C;187.500,00;187.440,00;192.345,00;No;-12,00;-60,00;249;-12,00;-60,00;0,00;0,00;0,00;15h16min;-342,00 +WINJ26;28/01/2026 11:14:00;28/01/2026 11:16:00;2min;1;1;C;189.110,00;189.160,00;192.345,00;No;10,00;50,00;250;10,00;50,00;0,00;0,00;0,00;2h12min;-332,00 +WINJ26;28/01/2026 11:28:00;28/01/2026 11:30:00;2min;1;1;C;189.100,00;189.210,00;192.345,00;Sim;22,00;110,00;251;22,00;110,00;0,00;0,00;0,00;14min;-310,00 +WINJ26;28/01/2026 11:36:00;28/01/2026 11:40:00;4min;1;1;C;189.105,00;189.220,00;192.345,00;No;23,00;115,00;252;23,00;115,00;0,00;0,00;0,00;8min;-287,00 +WINJ26;28/01/2026 12:14:00;28/01/2026 12:40:00;26min;1;1;C;189.190,00;188.485,00;192.345,00;No;-141,00;-705,00;253;-141,00;-705,00;0,00;0,00;0,00;38min;-428,00 +WINJ26;28/01/2026 12:48:00;28/01/2026 12:52:00;4min;1;1;C;188.640,00;188.665,00;192.345,00;Sim;5,00;25,00;254;5,00;25,00;0,00;0,00;0,00;34min;-423,00 +WINJ26;28/01/2026 13:18:00;28/01/2026 13:26:00;8min;1;1;C;188.750,00;188.820,00;192.345,00;No;14,00;70,00;255;14,00;70,00;0,00;0,00;0,00;30min;-409,00 +WINJ26;28/01/2026 13:36:00;28/01/2026 13:42:00;6min;1;1;C;188.740,00;188.850,00;192.345,00;Sim;22,00;110,00;256;22,00;110,00;0,00;0,00;0,00;18min;-387,00 +WINJ26;28/01/2026 13:58:00;28/01/2026 14:04:00;6min;1;1;C;188.765,00;188.885,00;192.345,00;No;24,00;120,00;257;24,00;120,00;0,00;0,00;0,00;22min;-363,00 +WINJ26;28/01/2026 14:38:00;28/01/2026 14:52:00;14min;1;1;C;188.400,00;188.665,00;192.345,00;Sim;53,00;265,00;258;53,00;265,00;0,00;0,00;0,00;40min;-310,00 +WINJ26;28/01/2026 15:04:00;28/01/2026 15:06:00;2min;1;1;C;188.550,00;188.550,00;192.345,00;No;0;0;259;0;0;0,00;0,00;0,00;26min;-310,00 +WINJ26;28/01/2026 15:20:00;28/01/2026 15:22:00;2min;1;1;C;188.460,00;188.510,00;192.345,00;Sim;10,00;50,00;260;10,00;50,00;0,00;0,00;0,00;16min;-300,00 +WINJ26;28/01/2026 15:44:00;28/01/2026 16:10:00;26min;1;1;C;188.500,00;188.025,00;192.345,00;No;-95,00;-475,00;261;-95,00;-475,00;0,00;0,00;0,00;24min;-395,00 +WINJ26;28/01/2026 16:30:00;28/01/2026 16:34:00;4min;1;1;V;188.000,00;188.035,00;192.345,00;Sim;7,00;35,00;262;7,00;35,00;0,00;0,00;0,00;46min;-388,00 +WINJ26;28/01/2026 16:44:00;28/01/2026 17:10:00;26min;1;1;V;188.725,00;188.200,00;192.345,00;Sim;-105,00;-525,00;263;-105,00;-525,00;0,00;0,00;0,00;14min;-493,00 +WINJ26;29/01/2026 09:42:00;29/01/2026 09:44:00;2min;1;1;C;191.265,00;191.450,00;192.345,00;No;37,00;185,00;264;37,00;185,00;0,00;0,00;0,00;16h58min;-456,00 +WINJ26;29/01/2026 10:06:00;29/01/2026 10:32:00;26min;1;1;C;191.170,00;191.025,00;192.345,00;Sim;-29,00;-145,00;265;-29,00;-145,00;0,00;0,00;0,00;24min;-485,00 +WINJ26;29/01/2026 10:50:00;29/01/2026 11:00:00;10min;1;1;C;191.080,00;190.950,00;192.345,00;Sim;-26,00;-130,00;266;-26,00;-130,00;0,00;0,00;0,00;44min;-511,00 +WINJ26;29/01/2026 11:18:00;29/01/2026 11:20:00;2min;1;1;C;190.960,00;190.960,00;192.345,00;Sim;0;0;267;0;0;0,00;0,00;0,00;28min;-511,00 +WINJ26;29/01/2026 11:36:00;29/01/2026 11:38:00;2min;1;1;C;190.815,00;190.910,00;192.345,00;Sim;19,00;95,00;268;19,00;95,00;0,00;0,00;0,00;18min;-492,00 +WINJ26;29/01/2026 13:24:00;29/01/2026 13:44:00;20min;1;1;V;187.360,00;187.390,00;192.345,00;No;6,00;30,00;269;6,00;30,00;0,00;0,00;0,00;1h48min;-486,00 +WINJ26;29/01/2026 14:04:00;29/01/2026 14:32:00;28min;1;1;V;188.600,00;187.605,00;192.345,00;Sim;-199,00;-995,00;270;-199,00;-995,00;0,00;0,00;0,00;40min;-685,00 +WINJ26;29/01/2026 14:42:00;29/01/2026 14:48:00;6min;1;1;V;188.045,00;188.215,00;192.345,00;Sim;34,00;170,00;271;34,00;170,00;0,00;0,00;0,00;38min;-651,00 +WINJ26;29/01/2026 15:24:00;29/01/2026 15:26:00;2min;1;1;V;187.965,00;188.120,00;192.345,00;No;31,00;155,00;272;31,00;155,00;0,00;0,00;0,00;42min;-620,00 +WINJ26;29/01/2026 15:58:00;29/01/2026 16:00:00;2min;1;1;V;187.830,00;188.060,00;192.345,00;No;46,00;230,00;273;46,00;230,00;0,00;0,00;0,00;34min;-574,00 +WINJ26;29/01/2026 16:08:00;29/01/2026 16:34:00;26min;1;1;V;188.195,00;188.085,00;192.345,00;Sim;-22,00;-110,00;274;-22,00;-110,00;0,00;0,00;0,00;10min;-596,00 +WINJ26;29/01/2026 16:56:00;29/01/2026 16:58:00;2min;1;1;V;188.100,00;188.220,00;192.345,00;Sim;24,00;120,00;275;24,00;120,00;0,00;0,00;0,00;48min;-572,00 +WINJ26;29/01/2026 17:18:00;29/01/2026 17:42:00;24min;1;1;V;188.320,00;188.370,00;192.345,00;Sim;10,00;50,00;276;10,00;50,00;0,00;0,00;0,00;22min;-562,00 +WINJ26;30/01/2026 09:36:00;30/01/2026 09:44:00;8min;1;1;V;187.560,00;187.595,00;192.345,00;No;7,00;35,00;277;7,00;35,00;0,00;0,00;0,00;16h18min;-555,00 +WINJ26;30/01/2026 10:08:00;30/01/2026 10:36:00;28min;1;1;V;188.035,00;187.290,00;192.345,00;No;-149,00;-745,00;278;-149,00;-745,00;0,00;0,00;0,00;32min;-704,00 +WINJ26;30/01/2026 10:38:00;30/01/2026 10:44:00;6min;1;1;V;187.585,00;187.860,00;192.345,00;Sim;55,00;275,00;279;55,00;275,00;0,00;0,00;0,00;30min;-649,00 +WINJ26;30/01/2026 11:20:00;30/01/2026 11:22:00;2min;1;1;V;187.540,00;187.575,00;192.345,00;No;7,00;35,00;280;7,00;35,00;0,00;0,00;0,00;42min;-642,00 +WINJ26;30/01/2026 11:32:00;30/01/2026 11:40:00;8min;1;1;V;187.400,00;187.750,00;192.345,00;Sim;70,00;350,00;281;70,00;350,00;0,00;0,00;0,00;12min;-572,00 +WINJ26;30/01/2026 11:56:00;30/01/2026 11:58:00;2min;1;1;V;187.690,00;187.775,00;192.345,00;Sim;17,00;85,00;282;17,00;85,00;0,00;0,00;0,00;24min;-555,00 +WINJ26;30/01/2026 12:28:00;30/01/2026 12:30:00;2min;1;1;V;187.650,00;187.695,00;192.345,00;No;9,00;45,00;283;9,00;45,00;0,00;0,00;0,00;32min;-546,00 +WINJ26;30/01/2026 12:32:00;30/01/2026 12:36:00;4min;1;1;C;187.855,00;187.945,00;192.345,00;Sim;18,00;90,00;284;18,00;90,00;0,00;0,00;0,00;4min;-528,00 +WINJ26;30/01/2026 16:32:00;30/01/2026 16:34:00;2min;1;1;V;186.120,00;186.000,00;192.345,00;No;-24,00;-120,00;285;-24,00;-120,00;0,00;0,00;0,00;4h;-552,00 +WINJ26;30/01/2026 16:56:00;30/01/2026 17:06:00;10min;1;1;V;186.015,00;186.330,00;192.345,00;Sim;63,00;315,00;286;63,00;315,00;0,00;0,00;0,00;24min;-489,00 +WINJ26;30/01/2026 17:38:00;30/01/2026 17:40:00;2min;1;1;V;185.810,00;185.700,00;192.345,00;No;-22,00;-110,00;287;-22,00;-110,00;0,00;0,00;0,00;42min;-511,00 +WINJ26;30/01/2026 18:14:00;02/02/2026 09:02:00;2d14h;1;1;V;185.650,00;186.130,00;192.345,00;Sim;96,00;480,00;288;96,00;480,00;0,00;0,00;0,00;36min;-415,00 +WINJ26;02/02/2026 09:28:00;02/02/2026 09:54:00;26min;1;1;V;186.635,00;186.325,00;192.345,00;Sim;-62,00;-310,00;289;-62,00;-310,00;0,00;0,00;0,00;2d15h;-477,00 +WINJ26;02/02/2026 10:08:00;02/02/2026 10:16:00;8min;1;1;C;186.470,00;186.470,00;192.345,00;Sim;0;0;290;0;0;0,00;0,00;0,00;40min;-477,00 +WINJ26;02/02/2026 11:34:00;02/02/2026 11:36:00;2min;1;1;C;186.840,00;186.980,00;192.345,00;No;28,00;140,00;291;28,00;140,00;0,00;0,00;0,00;1h26min;-449,00 +WINJ26;02/02/2026 11:52:00;02/02/2026 12:10:00;18min;1;1;C;186.835,00;186.810,00;192.345,00;Sim;-5,00;-25,00;292;-5,00;-25,00;0,00;0,00;0,00;18min;-454,00 +WINJ26;02/02/2026 12:14:00;02/02/2026 12:30:00;16min;1;1;V;186.680,00;186.495,00;192.345,00;Sim;-37,00;-185,00;293;-37,00;-185,00;0,00;0,00;0,00;22min;-491,00 +WINJ26;02/02/2026 12:52:00;02/02/2026 13:10:00;18min;1;1;C;186.630,00;186.540,00;192.345,00;Sim;-18,00;-90,00;294;-18,00;-90,00;0,00;0,00;0,00;38min;-509,00 +WINJ26;02/02/2026 13:14:00;02/02/2026 13:40:00;26min;1;1;V;187.030,00;186.700,00;192.345,00;Sim;-66,00;-330,00;295;-66,00;-330,00;0,00;0,00;0,00;22min;-575,00 +WINJ26;02/02/2026 14:20:00;02/02/2026 14:28:00;8min;1;1;C;187.100,00;187.130,00;192.345,00;No;6,00;30,00;296;6,00;30,00;0,00;0,00;0,00;1h6min;-569,00 +WINJ26;02/02/2026 14:46:00;02/02/2026 14:50:00;4min;1;1;C;187.100,00;187.170,00;192.345,00;No;14,00;70,00;297;14,00;70,00;0,00;0,00;0,00;26min;-555,00 +WINJ26;02/02/2026 15:50:00;02/02/2026 15:54:00;4min;1;1;C;186.805,00;186.750,00;192.345,00;Sim;-11,00;-55,00;298;-11,00;-55,00;0,00;0,00;0,00;1h4min;-566,00 +WINJ26;02/02/2026 16:46:00;02/02/2026 16:50:00;4min;1;1;V;186.540,00;186.500,00;192.345,00;No;-8,00;-40,00;299;-8,00;-40,00;0,00;0,00;0,00;56min;-574,00 +WINJ26;02/02/2026 17:00:00;02/02/2026 17:28:00;28min;1;1;V;187.025,00;186.445,00;192.345,00;No;-116,00;-580,00;300;-116,00;-580,00;0,00;0,00;0,00;14min;-690,00 +WINJ26;03/02/2026 10:18:00;03/02/2026 10:26:00;8min;1;1;C;189.430,00;189.605,00;192.345,00;No;35,00;175,00;301;35,00;175,00;0,00;0,00;0,00;17h18min;-655,00 +WINJ26;03/02/2026 12:08:00;03/02/2026 12:34:00;26min;1;1;C;191.415,00;191.125,00;192.345,00;No;-58,00;-290,00;302;-58,00;-290,00;0,00;0,00;0,00;1h50min;-713,00 +WINJ26;03/02/2026 12:36:00;03/02/2026 12:52:00;16min;1;1;C;191.100,00;191.105,00;192.345,00;Sim;1,00;5,00;303;1,00;5,00;0,00;0,00;0,00;28min;-712,00 +WINJ26;03/02/2026 13:06:00;03/02/2026 13:26:00;20min;1;1;C;191.100,00;191.170,00;192.345,00;No;14,00;70,00;304;14,00;70,00;0,00;0,00;0,00;30min;-698,00 +WINJ26;03/02/2026 13:36:00;03/02/2026 13:40:00;4min;1;1;C;191.040,00;191.070,00;192.345,00;Sim;6,00;30,00;305;6,00;30,00;0,00;0,00;0,00;30min;-692,00 +WINJ26;03/02/2026 14:38:00;03/02/2026 15:04:00;26min;1;1;C;190.280,00;190.010,00;192.345,00;Sim;-54,00;-270,00;306;-54,00;-270,00;0,00;0,00;0,00;1h2min;-746,00 +WINJ26;03/02/2026 16:00:00;03/02/2026 16:02:00;2min;1;1;V;189.620,00;189.645,00;192.345,00;Sim;5,00;25,00;307;5,00;25,00;0,00;0,00;0,00;1h22min;-741,00 +WINJ26;04/02/2026 09:02:00;04/02/2026 09:28:00;26min;1;1;C;190.645,00;189.360,00;192.345,00;No;-257,00;-1.285,00;308;-257,00;-1.285,00;0,00;0,00;0,00;17h2min;-998,00 +WINJ26;04/02/2026 09:56:00;04/02/2026 09:58:00;2min;1;1;V;189.215,00;189.210,00;192.345,00;No;-1,00;-5,00;309;-1,00;-5,00;0,00;0,00;0,00;54min;-999,00 +WINJ26;04/02/2026 10:54:00;04/02/2026 10:56:00;2min;1;1;V;188.840,00;188.930,00;192.345,00;No;18,00;90,00;310;18,00;90,00;0,00;0,00;0,00;58min;-981,00 +WINJ26;04/02/2026 12:14:00;04/02/2026 12:34:00;20min;1;1;V;187.680,00;187.660,00;192.345,00;No;-4,00;-20,00;311;-4,00;-20,00;0,00;0,00;0,00;1h20min;-985,00 +WINJ26;04/02/2026 14:18:00;04/02/2026 14:20:00;2min;1;1;V;186.185,00;186.255,00;192.345,00;No;14,00;70,00;312;14,00;70,00;0,00;0,00;0,00;2h4min;-971,00 +WINJ26;04/02/2026 15:26:00;04/02/2026 15:34:00;8min;1;1;V;185.330,00;185.435,00;192.345,00;No;21,00;105,00;313;21,00;105,00;0,00;0,00;0,00;1h8min;-950,00 +WINJ26;04/02/2026 16:22:00;04/02/2026 16:24:00;2min;1;1;V;184.930,00;185.000,00;192.345,00;No;14,00;70,00;314;14,00;70,00;0,00;0,00;0,00;56min;-936,00 +WINJ26;04/02/2026 17:34:00;04/02/2026 17:52:00;18min;1;1;V;185.760,00;185.535,00;192.345,00;Sim;-45,00;-225,00;315;-45,00;-225,00;0,00;0,00;0,00;1h12min;-981,00 +WINJ26;04/02/2026 18:22:00;05/02/2026 09:14:00;14h52min;1;1;V;186.250,00;186.020,00;192.345,00;Sim;-46,00;-230,00;316;-46,00;-230,00;0,00;0,00;0,00;48min;-1.027,00 +WINJ26;05/02/2026 09:20:00;05/02/2026 09:22:00;2min;1;1;V;186.175,00;186.200,00;192.345,00;Sim;5,00;25,00;317;5,00;25,00;0,00;0,00;0,00;14h58min;-1.022,00 +WINJ26;05/02/2026 09:24:00;05/02/2026 09:26:00;2min;1;1;C;186.355,00;186.400,00;192.345,00;Sim;9,00;45,00;318;9,00;45,00;0,00;0,00;0,00;4min;-1.013,00 +WINJ26;05/02/2026 09:52:00;05/02/2026 09:54:00;2min;1;1;C;186.360,00;186.445,00;192.345,00;No;17,00;85,00;319;17,00;85,00;0,00;0,00;0,00;28min;-996,00 +WINJ26;05/02/2026 09:56:00;05/02/2026 10:06:00;10min;1;1;V;186.335,00;186.270,00;192.345,00;Sim;-13,00;-65,00;320;-13,00;-65,00;0,00;0,00;0,00;4min;-1.009,00 +WINJ26;05/02/2026 11:02:00;05/02/2026 11:04:00;2min;1;1;C;187.300,00;187.500,00;192.345,00;No;40,00;200,00;321;40,00;200,00;0,00;0,00;0,00;1h6min;-969,00 +WINJ26;05/02/2026 11:38:00;05/02/2026 11:40:00;2min;1;1;C;187.525,00;187.890,00;192.345,00;No;73,00;365,00;322;73,00;365,00;0,00;0,00;0,00;36min;-896,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.345,00;Sim;41,00;205,00;323;41,00;205,00;0,00;0,00;0,00;54min;-855,00 +WINJ26;05/02/2026 12:48:00;05/02/2026 13:08:00;20min;1;1;V;186.970,00;186.530,00;192.345,00;Sim;-88,00;-440,00;324;-88,00;-440,00;0,00;0,00;0,00;16min;-943,00 +WINJ26;05/02/2026 14:18:00;05/02/2026 14:20:00;2min;1;1;C;187.200,00;187.260,00;192.345,00;No;12,00;60,00;325;12,00;60,00;0,00;0,00;0,00;1h30min;-931,00 +WINJ26;05/02/2026 14:24:00;05/02/2026 14:26:00;2min;1;1;C;187.315,00;187.650,00;192.345,00;No;67,00;335,00;326;67,00;335,00;0,00;0,00;0,00;6min;-864,00 +WINJ26;05/02/2026 15:26:00;05/02/2026 15:30:00;4min;1;1;C;187.705,00;187.770,00;192.345,00;No;13,00;65,00;327;13,00;65,00;0,00;0,00;0,00;1h2min;-851,00 +WINJ26;05/02/2026 15:58:00;05/02/2026 16:04:00;6min;1;1;C;187.485,00;187.540,00;192.345,00;Sim;11,00;55,00;328;11,00;55,00;0,00;0,00;0,00;32min;-840,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 17:02:00;2min;1;1;C;187.375,00;187.420,00;192.345,00;Sim;9,00;45,00;329;9,00;45,00;0,00;0,00;0,00;1h2min;-831,00 +WINJ26;05/02/2026 18:00:00;05/02/2026 18:16:00;16min;1;1;V;186.445,00;186.585,00;192.345,00;Sim;28,00;140,00;330;28,00;140,00;0,00;0,00;0,00;1h;-803,00 +WINJ26;06/02/2026 10:24:00;06/02/2026 10:26:00;2min;1;1;V;186.160,00;186.405,00;192.345,00;No;49,00;245,00;331;49,00;245,00;0,00;0,00;0,00;16h24min;-754,00 +WINJ26;06/02/2026 11:32:00;06/02/2026 11:36:00;4min;1;1;V;186.570,00;186.720,00;192.345,00;Sim;30,00;150,00;332;30,00;150,00;0,00;0,00;0,00;1h8min;-724,00 +WINJ26;06/02/2026 12:24:00;06/02/2026 12:44:00;20min;1;1;V;186.255,00;186.270,00;192.345,00;No;3,00;15,00;333;3,00;15,00;0,00;0,00;0,00;52min;-721,00 +WINJ26;06/02/2026 13:08:00;06/02/2026 13:34:00;26min;1;1;V;186.905,00;186.375,00;192.345,00;Sim;-106,00;-530,00;334;-106,00;-530,00;0,00;0,00;0,00;44min;-827,00 +WINJ26;06/02/2026 14:20:00;06/02/2026 14:22:00;2min;1;1;C;187.015,00;187.070,00;192.345,00;Sim;11,00;55,00;335;11,00;55,00;0,00;0,00;0,00;1h12min;-816,00 +WINJ26;06/02/2026 14:42:00;06/02/2026 14:46:00;4min;1;1;C;186.975,00;187.005,00;192.345,00;Sim;6,00;30,00;336;6,00;30,00;0,00;0,00;0,00;22min;-810,00 +WINJ26;06/02/2026 16:08:00;06/02/2026 16:34:00;26min;1;1;V;186.650,00;186.500,00;192.345,00;Sim;-30,00;-150,00;337;-30,00;-150,00;0,00;0,00;0,00;1h26min;-840,00 +WINJ26;06/02/2026 16:38:00;06/02/2026 16:40:00;2min;1;1;V;186.465,00;186.465,00;192.345,00;No;0;0;338;0;0;0,00;0,00;0,00;30min;-840,00 +WINJ26;06/02/2026 16:50:00;06/02/2026 16:54:00;4min;1;1;V;186.555,00;186.595,00;192.345,00;Sim;8,00;40,00;339;8,00;40,00;0,00;0,00;0,00;12min;-832,00 +WINJ26;06/02/2026 18:08:00;09/02/2026 09:00:00;2d14h;1;1;C;187.265,00;187.805,00;192.345,00;No;108,00;540,00;340;108,00;540,00;0,00;0,00;0,00;1h18min;-724,00 +WINJ26;09/02/2026 10:00:00;09/02/2026 10:26:00;26min;1;1;C;188.045,00;187.640,00;192.345,00;No;-81,00;-405,00;341;-81,00;-405,00;0,00;0,00;0,00;2d15h;-805,00 +WINJ26;09/02/2026 10:30:00;09/02/2026 10:48:00;18min;1;1;C;187.640,00;187.650,00;192.345,00;Sim;2,00;10,00;342;2,00;10,00;0,00;0,00;0,00;30min;-803,00 +WINJ26;09/02/2026 11:20:00;09/02/2026 11:22:00;2min;1;1;C;187.670,00;187.670,00;192.345,00;No;0;0;343;0;0;0,00;0,00;0,00;50min;-803,00 +WINJ26;09/02/2026 12:22:00;09/02/2026 12:28:00;6min;1;1;C;188.080,00;188.140,00;192.345,00;No;12,00;60,00;344;12,00;60,00;0,00;0,00;0,00;1h2min;-791,00 +WINJ26;09/02/2026 12:36:00;09/02/2026 12:40:00;4min;1;1;C;188.155,00;188.215,00;192.345,00;No;12,00;60,00;345;12,00;60,00;0,00;0,00;0,00;14min;-779,00 +WINJ26;09/02/2026 12:50:00;09/02/2026 13:14:00;24min;1;1;C;187.990,00;188.070,00;192.345,00;Sim;16,00;80,00;346;16,00;80,00;0,00;0,00;0,00;14min;-763,00 +WINJ26;09/02/2026 14:58:00;09/02/2026 15:00:00;2min;1;1;C;189.525,00;189.605,00;192.345,00;No;16,00;80,00;347;16,00;80,00;0,00;0,00;0,00;2h8min;-747,00 +WINJ26;09/02/2026 15:24:00;09/02/2026 15:26:00;2min;1;1;C;189.755,00;189.880,00;192.345,00;No;25,00;125,00;348;25,00;125,00;0,00;0,00;0,00;26min;-722,00 +WINJ26;09/02/2026 16:50:00;09/02/2026 16:58:00;8min;1;1;C;190.320,00;190.325,00;192.345,00;No;1,00;5,00;349;1,00;5,00;0,00;0,00;0,00;1h26min;-721,00 +WINJ26;09/02/2026 17:24:00;09/02/2026 17:40:00;16min;1;1;C;190.455,00;190.420,00;192.345,00;No;-7,00;-35,00;350;-7,00;-35,00;0,00;0,00;0,00;34min;-728,00 +WINJ26;09/02/2026 17:46:00;09/02/2026 17:48:00;2min;1;1;C;190.450,00;190.430,00;192.345,00;Sim;-4,00;-20,00;351;-4,00;-20,00;0,00;0,00;0,00;22min;-732,00 +WINJ26;09/02/2026 18:22:00;10/02/2026 09:22:00;15h;1;1;C;190.485,00;190.075,00;192.345,00;No;-82,00;-410,00;352;-82,00;-410,00;0,00;0,00;0,00;36min;-814,00 +WINJ26;10/02/2026 09:38:00;10/02/2026 09:44:00;6min;1;1;C;189.990,00;190.010,00;192.345,00;Sim;4,00;20,00;353;4,00;20,00;0,00;0,00;0,00;15h16min;-810,00 +WINJ26;10/02/2026 09:46:00;10/02/2026 09:48:00;2min;1;1;V;189.660,00;189.400,00;192.345,00;Sim;-52,00;-260,00;354;-52,00;-260,00;0,00;0,00;0,00;8min;-862,00 +WINJ26;10/02/2026 09:52:00;10/02/2026 10:04:00;12min;1;1;C;189.775,00;189.935,00;192.345,00;Sim;32,00;160,00;355;32,00;160,00;0,00;0,00;0,00;6min;-830,00 +WINJ26;10/02/2026 10:24:00;10/02/2026 10:26:00;2min;1;1;C;189.890,00;190.000,00;192.345,00;No;22,00;110,00;356;22,00;110,00;0,00;0,00;0,00;32min;-808,00 +WINJ26;10/02/2026 10:30:00;10/02/2026 10:32:00;2min;1;1;V;189.680,00;189.555,00;192.345,00;Sim;-25,00;-125,00;357;-25,00;-125,00;0,00;0,00;0,00;6min;-833,00 +WINJ26;10/02/2026 11:42:00;10/02/2026 11:44:00;2min;1;1;C;189.950,00;190.065,00;192.345,00;No;23,00;115,00;358;23,00;115,00;0,00;0,00;0,00;1h12min;-810,00 +WINJ26;10/02/2026 11:52:00;10/02/2026 11:54:00;2min;1;1;C;189.930,00;190.045,00;192.345,00;Sim;23,00;115,00;359;23,00;115,00;0,00;0,00;0,00;10min;-787,00 +WINJ26;10/02/2026 13:12:00;10/02/2026 13:14:00;2min;1;1;C;190.740,00;190.805,00;192.345,00;No;13,00;65,00;360;13,00;65,00;0,00;0,00;0,00;1h20min;-774,00 +WINJ26;10/02/2026 13:32:00;10/02/2026 13:58:00;26min;1;1;C;190.635,00;190.390,00;192.345,00;Sim;-49,00;-245,00;361;-49,00;-245,00;0,00;0,00;0,00;20min;-823,00 +WINJ26;10/02/2026 14:10:00;10/02/2026 14:12:00;2min;1;1;C;190.435,00;190.410,00;192.345,00;Sim;-5,00;-25,00;362;-5,00;-25,00;0,00;0,00;0,00;38min;-828,00 +WINJ26;10/02/2026 14:18:00;10/02/2026 14:44:00;26min;1;1;C;190.320,00;190.215,00;192.345,00;Sim;-21,00;-105,00;363;-21,00;-105,00;0,00;0,00;0,00;8min;-849,00 +WINJ26;10/02/2026 16:12:00;10/02/2026 16:14:00;2min;1;1;V;189.630,00;189.605,00;192.345,00;Sim;-5,00;-25,00;364;-5,00;-25,00;0,00;0,00;0,00;1h54min;-854,00 +WINJ26;10/02/2026 16:32:00;10/02/2026 16:58:00;26min;1;1;V;189.985,00;189.610,00;192.345,00;Sim;-75,00;-375,00;365;-75,00;-375,00;0,00;0,00;0,00;20min;-929,00 +WINJ26;10/02/2026 18:12:00;10/02/2026 18:16:00;4min;1;1;C;190.095,00;190.145,00;192.345,00;Sim;10,00;50,00;366;10,00;50,00;0,00;0,00;0,00;1h40min;-919,00 +WINJ26;11/02/2026 09:00:00;11/02/2026 09:26:00;26min;1;1;V;191.765,00;190.595,00;192.345,00;Sim;-234,00;-1.170,00;367;-234,00;-1.170,00;0,00;0,00;0,00;14h48min;-1.153,00 +WINJ26;11/02/2026 10:20:00;11/02/2026 10:24:00;4min;1;1;C;191.925,00;192.165,00;192.345,00;No;48,00;240,00;368;48,00;240,00;0,00;0,00;0,00;1h20min;-1.105,00 +WINJ26;11/02/2026 12:42:00;11/02/2026 12:44:00;2min;1;1;C;192.680,00;192.735,00;192.345,00;No;11,00;55,00;369;11,00;55,00;0,00;0,00;0,00;2h22min;-1.094,00 +WINJ26;11/02/2026 14:48:00;11/02/2026 14:50:00;2min;1;1;C;194.530,00;194.540,00;192.345,00;No;2,00;10,00;370;2,00;10,00;0,00;0,00;0,00;2h6min;-1.092,00 +WINJ26;11/02/2026 15:00:00;11/02/2026 15:26:00;26min;1;1;C;194.505,00;193.955,00;192.345,00;Sim;-110,00;-550,00;371;-110,00;-550,00;0,00;0,00;0,00;12min;-1.202,00 +WINJ26;11/02/2026 15:50:00;11/02/2026 16:04:00;14min;1;1;C;193.855,00;193.870,00;192.345,00;Sim;3,00;15,00;372;3,00;15,00;0,00;0,00;0,00;50min;-1.199,00 +WINJ26;11/02/2026 16:50:00;11/02/2026 17:16:00;26min;1;1;C;194.290,00;193.850,00;192.345,00;No;-88,00;-440,00;373;-88,00;-440,00;0,00;0,00;0,00;1h;-1.287,00 +WINJ26;11/02/2026 17:28:00;11/02/2026 17:30:00;2min;1;1;C;194.025,00;193.995,00;192.345,00;Sim;-6,00;-30,00;374;-6,00;-30,00;0,00;0,00;0,00;38min;-1.293,00 +WINJ26;11/02/2026 17:52:00;11/02/2026 17:54:00;2min;1;1;C;194.190,00;194.275,00;192.345,00;No;17,00;85,00;375;17,00;85,00;0,00;0,00;0,00;24min;-1.276,00 +WINJ26;12/02/2026 09:02:00;12/02/2026 09:28:00;26min;1;1;C;194.380,00;193.105,00;192.345,00;No;-255,00;-1.275,00;376;-255,00;-1.275,00;0,00;0,00;0,00;15h10min;-1.531,00 +WINJ26;12/02/2026 10:08:00;12/02/2026 10:10:00;2min;1;1;V;193.005,00;193.015,00;192.345,00;Sim;2,00;10,00;377;2,00;10,00;0,00;0,00;0,00;1h6min;-1.529,00 +WINJ26;12/02/2026 10:18:00;12/02/2026 10:44:00;26min;1;1;V;193.315,00;193.180,00;192.345,00;Sim;-27,00;-135,00;378;-27,00;-135,00;0,00;0,00;0,00;10min;-1.556,00 +WINJ26;12/02/2026 11:12:00;12/02/2026 11:32:00;20min;1;1;V;193.405,00;193.210,00;192.345,00;Sim;-39,00;-195,00;379;-39,00;-195,00;0,00;0,00;0,00;54min;-1.595,00 +WINJ26;12/02/2026 11:48:00;12/02/2026 12:02:00;14min;1;1;C;193.525,00;193.700,00;192.345,00;Sim;35,00;175,00;380;35,00;175,00;0,00;0,00;0,00;36min;-1.560,00 +WINJ26;12/02/2026 12:28:00;12/02/2026 12:50:00;22min;1;1;C;193.630,00;193.670,00;192.345,00;No;8,00;40,00;381;8,00;40,00;0,00;0,00;0,00;40min;-1.552,00 +WINJ26;12/02/2026 13:40:00;12/02/2026 13:46:00;6min;1;1;V;192.765,00;192.820,00;192.345,00;No;11,00;55,00;382;11,00;55,00;0,00;0,00;0,00;1h12min;-1.541,00 +WINJ26;12/02/2026 14:30:00;12/02/2026 14:54:00;24min;1;1;V;192.530,00;192.535,00;192.345,00;No;1,00;5,00;383;1,00;5,00;0,00;0,00;0,00;50min;-1.540,00 +WINJ26;12/02/2026 15:50:00;12/02/2026 16:16:00;26min;1;1;V;192.010,00;191.555,00;192.345,00;No;-91,00;-455,00;384;-91,00;-455,00;0,00;0,00;0,00;1h20min;-1.631,00 +WINJ26;12/02/2026 16:28:00;12/02/2026 16:30:00;2min;1;1;V;191.710,00;191.795,00;192.345,00;Sim;17,00;85,00;385;17,00;85,00;0,00;0,00;0,00;38min;-1.614,00 +WINJ26;12/02/2026 16:38:00;12/02/2026 16:44:00;6min;1;1;V;191.810,00;191.990,00;192.345,00;Sim;36,00;180,00;386;36,00;180,00;0,00;0,00;0,00;10min;-1.578,00 +WINJ26;12/02/2026 16:48:00;12/02/2026 17:12:00;24min;1;1;V;192.035,00;191.960,00;192.345,00;No;-15,00;-75,00;387;-15,00;-75,00;0,00;0,00;0,00;10min;-1.593,00 +WINJ26;12/02/2026 17:28:00;12/02/2026 17:30:00;2min;1;1;V;191.960,00;192.025,00;192.345,00;Sim;13,00;65,00;388;13,00;65,00;0,00;0,00;0,00;40min;-1.580,00 +WINJ26;12/02/2026 17:46:00;12/02/2026 17:48:00;2min;1;1;V;192.005,00;192.025,00;192.345,00;No;4,00;20,00;389;4,00;20,00;0,00;0,00;0,00;18min;-1.576,00 +WINJ26;13/02/2026 10:38:00;13/02/2026 10:40:00;2min;1;1;V;188.955,00;188.995,00;192.345,00;No;8,00;40,00;390;8,00;40,00;0,00;0,00;0,00;16h52min;-1.568,00 +WINJ26;13/02/2026 10:46:00;13/02/2026 10:58:00;12min;1;1;V;188.995,00;189.115,00;192.345,00;Sim;24,00;120,00;391;24,00;120,00;0,00;0,00;0,00;8min;-1.544,00 +WINJ26;13/02/2026 12:14:00;13/02/2026 12:16:00;2min;1;1;V;188.070,00;188.280,00;192.345,00;No;42,00;210,00;392;42,00;210,00;0,00;0,00;0,00;1h28min;-1.502,00 +WINJ26;13/02/2026 12:46:00;13/02/2026 12:48:00;2min;1;1;V;188.760,00;188.920,00;192.345,00;Sim;32,00;160,00;393;32,00;160,00;0,00;0,00;0,00;32min;-1.470,00 +WINJ26;13/02/2026 12:54:00;13/02/2026 12:58:00;4min;1;1;V;188.630,00;188.930,00;192.345,00;Sim;60,00;300,00;394;60,00;300,00;0,00;0,00;0,00;8min;-1.410,00 +WINJ26;13/02/2026 13:20:00;13/02/2026 13:46:00;26min;1;1;V;189.345,00;188.885,00;192.345,00;No;-92,00;-460,00;395;-92,00;-460,00;0,00;0,00;0,00;26min;-1.502,00 +WINJ26;13/02/2026 14:00:00;13/02/2026 14:18:00;18min;1;1;V;189.360,00;189.405,00;192.345,00;Sim;9,00;45,00;396;9,00;45,00;0,00;0,00;0,00;40min;-1.493,00 +WINJ26;13/02/2026 15:22:00;13/02/2026 15:24:00;2min;1;1;C;189.860,00;189.940,00;192.345,00;Sim;16,00;80,00;397;16,00;80,00;0,00;0,00;0,00;1h22min;-1.477,00 +WINJ26;13/02/2026 16:28:00;13/02/2026 16:32:00;4min;1;1;C;189.785,00;189.895,00;192.345,00;Sim;22,00;110,00;398;22,00;110,00;0,00;0,00;0,00;1h6min;-1.455,00 +WINJ26;13/02/2026 16:46:00;13/02/2026 16:48:00;2min;1;1;C;190.125,00;190.140,00;192.345,00;No;3,00;15,00;399;3,00;15,00;0,00;0,00;0,00;18min;-1.452,00 +WINJ26;13/02/2026 17:02:00;13/02/2026 17:04:00;2min;1;1;C;189.940,00;190.075,00;192.345,00;Sim;27,00;135,00;400;27,00;135,00;0,00;0,00;0,00;16min;-1.425,00 +WINJ26;13/02/2026 17:32:00;13/02/2026 17:50:00;18min;1;1;C;189.860,00;190.005,00;192.345,00;Sim;29,00;145,00;401;29,00;145,00;0,00;0,00;0,00;30min;-1.396,00 +WINJ26;18/02/2026 13:24:00;18/02/2026 13:50:00;26min;1;1;C;190.445,00;189.980,00;192.345,00;No;-93,00;-465,00;402;-93,00;-465,00;0,00;0,00;0,00;4d19h;-1.489,00 +WINJ26;18/02/2026 13:54:00;18/02/2026 13:58:00;4min;1;1;C;190.200,00;190.285,00;192.345,00;Sim;17,00;85,00;403;17,00;85,00;0,00;0,00;0,00;30min;-1.472,00 +WINJ26;18/02/2026 16:04:00;18/02/2026 16:06:00;2min;1;1;V;189.400,00;189.400,00;192.345,00;No;0;0;404;0;0;0,00;0,00;0,00;2h10min;-1.472,00 +WINJ26;18/02/2026 16:50:00;18/02/2026 16:52:00;2min;1;1;V;188.930,00;188.880,00;192.345,00;No;-10,00;-50,00;405;-10,00;-50,00;0,00;0,00;0,00;46min;-1.482,00 +WINJ26;18/02/2026 17:12:00;18/02/2026 17:14:00;2min;1;1;V;189.055,00;189.150,00;192.345,00;Sim;19,00;95,00;406;19,00;95,00;0,00;0,00;0,00;22min;-1.463,00 +WINJ26;19/02/2026 09:42:00;19/02/2026 09:44:00;2min;1;1;C;190.280,00;190.630,00;192.345,00;No;70,00;350,00;407;70,00;350,00;0,00;0,00;0,00;16h30min;-1.393,00 +WINJ26;19/02/2026 09:52:00;19/02/2026 10:00:00;8min;1;1;C;190.240,00;190.580,00;192.345,00;Sim;68,00;340,00;408;68,00;340,00;0,00;0,00;0,00;10min;-1.325,00 +WINJ26;19/02/2026 10:12:00;19/02/2026 10:18:00;6min;1;1;C;190.015,00;190.240,00;192.345,00;Sim;45,00;225,00;409;45,00;225,00;0,00;0,00;0,00;20min;-1.280,00 +WINJ26;19/02/2026 10:52:00;19/02/2026 10:54:00;2min;1;1;C;190.235,00;190.410,00;192.345,00;No;35,00;175,00;410;35,00;175,00;0,00;0,00;0,00;40min;-1.245,00 +WINJ26;19/02/2026 11:00:00;19/02/2026 11:18:00;18min;1;1;C;190.235,00;190.210,00;192.345,00;No;-5,00;-25,00;411;-5,00;-25,00;0,00;0,00;0,00;8min;-1.250,00 +WINJ26;19/02/2026 11:26:00;19/02/2026 11:48:00;22min;1;1;C;190.115,00;190.060,00;192.345,00;Sim;-11,00;-55,00;412;-11,00;-55,00;0,00;0,00;0,00;26min;-1.261,00 +WINJ26;19/02/2026 13:56:00;19/02/2026 14:18:00;22min;1;1;C;192.255,00;192.255,00;192.345,00;No;0;0;413;0;0;0,00;0,00;0,00;2h30min;-1.261,00 +WINJ26;19/02/2026 15:14:00;19/02/2026 15:16:00;2min;1;1;C;192.155,00;192.185,00;192.345,00;Sim;6,00;30,00;414;6,00;30,00;0,00;0,00;0,00;1h18min;-1.255,00 +WINJ26;19/02/2026 15:26:00;19/02/2026 15:50:00;24min;1;1;C;192.090,00;192.050,00;192.345,00;Sim;-8,00;-40,00;415;-8,00;-40,00;0,00;0,00;0,00;12min;-1.263,00 +WINJ26;19/02/2026 16:00:00;19/02/2026 16:26:00;26min;1;1;C;191.990,00;191.835,00;192.345,00;Sim;-31,00;-155,00;416;-31,00;-155,00;0,00;0,00;0,00;34min;-1.294,00 +WINJ26;19/02/2026 16:30:00;19/02/2026 16:34:00;4min;1;1;C;191.895,00;191.935,00;192.345,00;Sim;8,00;40,00;417;8,00;40,00;0,00;0,00;0,00;30min;-1.286,00 +WINJ26;19/02/2026 16:54:00;19/02/2026 17:02:00;8min;1;1;C;191.720,00;191.780,00;192.345,00;Sim;12,00;60,00;418;12,00;60,00;0,00;0,00;0,00;24min;-1.274,00 +WINJ26;19/02/2026 17:28:00;19/02/2026 17:30:00;2min;1;1;C;191.690,00;191.740,00;192.345,00;Sim;10,00;50,00;419;10,00;50,00;0,00;0,00;0,00;34min;-1.264,00 +WINJ26;20/02/2026 09:04:00;20/02/2026 09:30:00;26min;1;1;C;192.245,00;191.020,00;192.345,00;No;-245,00;-1.225,00;420;-245,00;-1.225,00;0,00;0,00;0,00;15h36min;-1.509,00 +WINJ26;20/02/2026 10:20:00;20/02/2026 10:24:00;4min;1;1;V;190.630,00;190.810,00;192.345,00;Sim;36,00;180,00;421;36,00;180,00;0,00;0,00;0,00;1h16min;-1.473,00 +WINJ26;20/02/2026 10:32:00;20/02/2026 10:34:00;2min;1;1;V;190.470,00;190.610,00;192.345,00;No;28,00;140,00;422;28,00;140,00;0,00;0,00;0,00;12min;-1.445,00 +WINJ26;20/02/2026 10:58:00;20/02/2026 11:04:00;6min;1;1;V;190.525,00;190.610,00;192.345,00;No;17,00;85,00;423;17,00;85,00;0,00;0,00;0,00;26min;-1.428,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:04:00;26min;1;1;V;191.880,00;190.995,00;192.345,00;Sim;-177,00;-885,00;424;-177,00;-885,00;0,00;0,00;0,00;40min;-1.605,00 +WINJ26;20/02/2026 12:38:00;20/02/2026 12:40:00;2min;1;1;C;192.050,00;192.040,00;192.345,00;Sim;-2,00;-10,00;425;-2,00;-10,00;0,00;0,00;0,00;1h;-1.607,00 +WINJ26;20/02/2026 13:04:00;20/02/2026 13:12:00;8min;1;1;C;192.170,00;192.175,00;192.345,00;No;1,00;5,00;426;1,00;5,00;0,00;0,00;0,00;26min;-1.606,00 +WINJ26;20/02/2026 13:34:00;20/02/2026 13:36:00;2min;1;1;C;192.070,00;192.145,00;192.345,00;Sim;15,00;75,00;427;15,00;75,00;0,00;0,00;0,00;30min;-1.591,00 +WINJ26;20/02/2026 14:36:00;20/02/2026 14:40:00;4min;1;1;C;191.745,00;191.860,00;192.345,00;Sim;23,00;115,00;428;23,00;115,00;0,00;0,00;0,00;1h2min;-1.568,00 +WINJ26;20/02/2026 17:34:00;20/02/2026 17:36:00;2min;1;1;C;194.100,00;194.120,00;192.345,00;No;4,00;20,00;429;4,00;20,00;0,00;0,00;0,00;2h58min;-1.564,00 +WINJ26;20/02/2026 17:48:00;20/02/2026 17:58:00;10min;1;1;C;194.050,00;194.130,00;192.345,00;Sim;16,00;80,00;430;16,00;80,00;0,00;0,00;0,00;14min;-1.548,00 +WINJ26;23/02/2026 10:14:00;23/02/2026 10:20:00;6min;1;1;V;192.785,00;192.970,00;192.345,00;Sim;37,00;185,00;431;37,00;185,00;0,00;0,00;0,00;2d16h;-1.511,00 +WINJ26;23/02/2026 10:34:00;23/02/2026 10:38:00;4min;1;1;V;192.885,00;192.920,00;192.345,00;No;7,00;35,00;432;7,00;35,00;0,00;0,00;0,00;20min;-1.504,00 +WINJ26;23/02/2026 10:54:00;23/02/2026 10:56:00;2min;1;1;V;192.715,00;192.700,00;192.345,00;No;-3,00;-15,00;433;-3,00;-15,00;0,00;0,00;0,00;20min;-1.507,00 +WINJ26;23/02/2026 11:32:00;23/02/2026 11:34:00;2min;1;1;C;193.415,00;193.755,00;192.345,00;Sim;68,00;340,00;434;68,00;340,00;0,00;0,00;0,00;38min;-1.439,00 +WINJ26;23/02/2026 14:04:00;23/02/2026 14:12:00;8min;1;1;V;192.155,00;192.415,00;192.345,00;No;52,00;260,00;435;52,00;260,00;0,00;0,00;0,00;2h32min;-1.387,00 +WINJ26;23/02/2026 14:30:00;23/02/2026 14:36:00;6min;1;1;V;192.235,00;192.410,00;192.345,00;No;35,00;175,00;436;35,00;175,00;0,00;0,00;0,00;26min;-1.352,00 +WINJ26;23/02/2026 14:44:00;23/02/2026 14:46:00;2min;1;1;V;192.300,00;192.420,00;192.345,00;Sim;24,00;120,00;437;24,00;120,00;0,00;0,00;0,00;14min;-1.328,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.345,00;Sim;6,00;30,00;438;6,00;30,00;0,00;0,00;0,00;50min;-1.322,00 +WINJ26;23/02/2026 15:46:00;23/02/2026 15:58:00;12min;1;1;V;192.770,00;192.740,00;192.345,00;No;-6,00;-30,00;439;-6,00;-30,00;0,00;0,00;0,00;12min;-1.328,00 +WINJ26;23/02/2026 17:00:00;23/02/2026 17:14:00;14min;1;1;V;192.375,00;192.350,00;192.345,00;No;-5,00;-25,00;440;-5,00;-25,00;0,00;0,00;0,00;1h14min;-1.333,00 +WINJ26;23/02/2026 17:44:00;23/02/2026 17:48:00;4min;1;1;V;192.425,00;192.455,00;192.345,00;Sim;6,00;30,00;441;6,00;30,00;0,00;0,00;0,00;44min;-1.327,00 +WINJ26;23/02/2026 17:52:00;23/02/2026 17:56:00;4min;1;1;V;192.430,00;192.470,00;192.345,00;Sim;8,00;40,00;442;8,00;40,00;0,00;0,00;0,00;8min;-1.319,00 +WINJ26;23/02/2026 18:02:00;23/02/2026 18:06:00;4min;1;1;V;192.395,00;192.470,00;192.345,00;No;15,00;75,00;443;15,00;75,00;0,00;0,00;0,00;10min;-1.304,00 +WINJ26;24/02/2026 09:00:00;24/02/2026 09:26:00;26min;1;1;V;193.505,00;192.720,00;192.345,00;Sim;-157,00;-785,00;444;-157,00;-785,00;0,00;0,00;0,00;14h58min;-1.461,00 +WINJ26;24/02/2026 09:36:00;24/02/2026 09:44:00;8min;1;1;C;193.230,00;193.340,00;192.345,00;Sim;22,00;110,00;445;22,00;110,00;0,00;0,00;0,00;36min;-1.439,00 +WINJ26;24/02/2026 10:06:00;24/02/2026 10:08:00;2min;1;1;C;193.300,00;193.455,00;192.345,00;No;31,00;155,00;446;31,00;155,00;0,00;0,00;0,00;30min;-1.408,00 +WINJ26;24/02/2026 10:52:00;24/02/2026 11:02:00;10min;1;1;C;193.500,00;193.740,00;192.345,00;No;48,00;240,00;447;48,00;240,00;0,00;0,00;0,00;46min;-1.360,00 +WINJ26;24/02/2026 11:20:00;24/02/2026 11:24:00;4min;1;1;C;193.610,00;193.790,00;192.345,00;No;36,00;180,00;448;36,00;180,00;0,00;0,00;0,00;28min;-1.324,00 +WINJ26;24/02/2026 11:40:00;24/02/2026 11:42:00;2min;1;1;C;193.500,00;193.665,00;192.345,00;Sim;33,00;165,00;449;33,00;165,00;0,00;0,00;0,00;20min;-1.291,00 +WINJ26;24/02/2026 13:54:00;24/02/2026 14:06:00;12min;1;1;C;194.950,00;194.990,00;192.345,00;No;8,00;40,00;450;8,00;40,00;0,00;0,00;0,00;2h14min;-1.283,00 +WINJ26;24/02/2026 15:06:00;24/02/2026 15:32:00;26min;1;1;C;195.030,00;195.060,00;192.345,00;No;6,00;30,00;451;6,00;30,00;0,00;0,00;0,00;1h12min;-1.277,00 +WINJ26;24/02/2026 15:54:00;24/02/2026 16:20:00;26min;1;1;C;194.990,00;194.605,00;192.345,00;Sim;-77,00;-385,00;452;-77,00;-385,00;0,00;0,00;0,00;48min;-1.354,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.345,00;Sim;9,00;45,00;453;9,00;45,00;0,00;0,00;0,00;34min;-1.345,00 +WINJ26;24/02/2026 16:58:00;24/02/2026 17:00:00;2min;1;1;C;194.905,00;195.005,00;192.345,00;No;20,00;100,00;454;20,00;100,00;0,00;0,00;0,00;30min;-1.325,00 +WINJ26;24/02/2026 17:12:00;24/02/2026 17:36:00;24min;1;1;C;194.850,00;194.840,00;192.345,00;Sim;-2,00;-10,00;455;-2,00;-10,00;0,00;0,00;0,00;14min;-1.327,00 +WINJ26;24/02/2026 18:22:00;24/02/2026 18:24:00;2min;1;1;C;195.030,00;195.085,00;192.345,00;No;11,00;55,00;456;11,00;55,00;0,00;0,00;0,00;1h10min;-1.316,00 +WINJ26;25/02/2026 09:32:00;25/02/2026 09:50:00;18min;1;1;C;196.420,00;196.550,00;192.345,00;No;26,00;130,00;457;26,00;130,00;0,00;0,00;0,00;15h10min;-1.290,00 +WINJ26;25/02/2026 09:54:00;25/02/2026 09:58:00;4min;1;1;C;196.410,00;196.570,00;192.345,00;Sim;32,00;160,00;458;32,00;160,00;0,00;0,00;0,00;22min;-1.258,00 +WINJ26;25/02/2026 10:34:00;25/02/2026 11:00:00;26min;1;1;C;195.815,00;194.965,00;192.345,00;Sim;-170,00;-850,00;459;-170,00;-850,00;0,00;0,00;0,00;40min;-1.428,00 +WINJ26;25/02/2026 11:18:00;25/02/2026 11:34:00;16min;1;1;V;195.235,00;195.230,00;192.345,00;Sim;-1,00;-5,00;460;-1,00;-5,00;0,00;0,00;0,00;44min;-1.429,00 +WINJ26;25/02/2026 13:28:00;25/02/2026 13:30:00;2min;1;1;V;194.580,00;194.570,00;192.345,00;No;-2,00;-10,00;461;-2,00;-10,00;0,00;0,00;0,00;2h10min;-1.431,00 +WINJ26;25/02/2026 13:34:00;25/02/2026 13:36:00;2min;1;1;V;194.505,00;194.510,00;192.345,00;No;1,00;5,00;462;1,00;5,00;0,00;0,00;0,00;6min;-1.430,00 +WINJ26;25/02/2026 14:12:00;25/02/2026 14:16:00;4min;1;1;V;194.565,00;194.670,00;192.345,00;Sim;21,00;105,00;463;21,00;105,00;0,00;0,00;0,00;38min;-1.409,00 +WINJ26;25/02/2026 15:10:00;25/02/2026 15:14:00;4min;1;1;V;194.835,00;194.875,00;192.345,00;Sim;8,00;40,00;464;8,00;40,00;0,00;0,00;0,00;58min;-1.401,00 +WINJ26;25/02/2026 15:22:00;25/02/2026 15:28:00;6min;1;1;C;194.895,00;194.900,00;192.345,00;Sim;1,00;5,00;465;1,00;5,00;0,00;0,00;0,00;12min;-1.400,00 +WINJ26;25/02/2026 16:58:00;25/02/2026 17:10:00;12min;1;1;V;194.040,00;194.055,00;192.345,00;No;3,00;15,00;466;3,00;15,00;0,00;0,00;0,00;1h36min;-1.397,00 +WINJ26;25/02/2026 17:30:00;25/02/2026 17:56:00;26min;1;1;V;194.435,00;194.090,00;192.345,00;Sim;-69,00;-345,00;467;-69,00;-345,00;0,00;0,00;0,00;32min;-1.466,00 +WINJ26;25/02/2026 18:12:00;25/02/2026 18:16:00;4min;1;1;V;194.425,00;194.420,00;192.345,00;Sim;-1,00;-5,00;468;-1,00;-5,00;0,00;0,00;0,00;42min;-1.467,00 +WINJ26;26/02/2026 09:16:00;26/02/2026 09:20:00;4min;1;1;V;194.220,00;194.385,00;192.345,00;No;33,00;165,00;469;33,00;165,00;0,00;0,00;0,00;15h4min;-1.434,00 +WINJ26;26/02/2026 09:32:00;26/02/2026 09:34:00;2min;1;1;V;193.995,00;194.225,00;192.345,00;No;46,00;230,00;470;46,00;230,00;0,00;0,00;0,00;16min;-1.388,00 +WINJ26;26/02/2026 11:08:00;26/02/2026 11:22:00;14min;1;1;V;194.165,00;194.275,00;192.345,00;Sim;22,00;110,00;471;22,00;110,00;0,00;0,00;0,00;1h36min;-1.366,00 +WINJ26;26/02/2026 12:48:00;26/02/2026 13:14:00;26min;1;1;V;193.400,00;192.895,00;192.345,00;No;-101,00;-505,00;472;-101,00;-505,00;0,00;0,00;0,00;1h40min;-1.467,00 +WINJ26;26/02/2026 13:40:00;26/02/2026 13:42:00;2min;1;1;V;193.685,00;193.685,00;192.345,00;Sim;0;0;473;0;0;0,00;0,00;0,00;52min;-1.467,00 +WINJ26;26/02/2026 14:36:00;26/02/2026 14:38:00;2min;1;1;V;193.290,00;193.425,00;192.345,00;No;27,00;135,00;474;27,00;135,00;0,00;0,00;0,00;56min;-1.440,00 +WINJ26;26/02/2026 15:24:00;26/02/2026 15:32:00;8min;1;1;V;193.370,00;193.415,00;192.345,00;No;9,00;45,00;475;9,00;45,00;0,00;0,00;0,00;48min;-1.431,00 +WINJ26;26/02/2026 17:26:00;26/02/2026 17:28:00;2min;1;1;C;194.295,00;194.320,00;192.345,00;Sim;5,00;25,00;476;5,00;25,00;0,00;0,00;0,00;2h2min;-1.426,00 +WINJ26;26/02/2026 17:56:00;26/02/2026 18:02:00;6min;1;1;C;194.330,00;194.400,00;192.345,00;No;14,00;70,00;477;14,00;70,00;0,00;0,00;0,00;30min;-1.412,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 09:20:00;20min;1;1;C;194.155,00;193.550,00;192.345,00;Sim;-121,00;-605,00;478;-121,00;-605,00;0,00;0,00;0,00;15h4min;-1.533,00 +WINJ26;27/02/2026 09:26:00;27/02/2026 09:28:00;2min;1;1;V;193.320,00;193.500,00;192.345,00;Sim;36,00;180,00;479;36,00;180,00;0,00;0,00;0,00;26min;-1.497,00 +WINJ26;27/02/2026 09:38:00;27/02/2026 09:46:00;8min;1;1;V;193.190,00;193.355,00;192.345,00;No;33,00;165,00;480;33,00;165,00;0,00;0,00;0,00;12min;-1.464,00 +WINJ26;27/02/2026 10:02:00;27/02/2026 10:14:00;12min;1;1;V;193.360,00;193.325,00;192.345,00;No;-7,00;-35,00;481;-7,00;-35,00;0,00;0,00;0,00;24min;-1.471,00 +WINJ26;27/02/2026 10:22:00;27/02/2026 10:24:00;2min;1;1;V;193.195,00;193.490,00;192.345,00;Sim;59,00;295,00;482;59,00;295,00;0,00;0,00;0,00;20min;-1.412,00 +WINJ26;27/02/2026 10:54:00;27/02/2026 11:18:00;24min;1;1;V;192.990,00;192.970,00;192.345,00;No;-4,00;-20,00;483;-4,00;-20,00;0,00;0,00;0,00;32min;-1.416,00 +WINJ26;27/02/2026 11:42:00;27/02/2026 11:44:00;2min;1;1;V;193.215,00;193.335,00;192.345,00;Sim;24,00;120,00;484;24,00;120,00;0,00;0,00;0,00;48min;-1.392,00 +WINJ26;27/02/2026 12:10:00;27/02/2026 12:14:00;4min;1;1;V;193.215,00;193.385,00;192.345,00;Sim;34,00;170,00;485;34,00;170,00;0,00;0,00;0,00;28min;-1.358,00 +WINJ26;27/02/2026 12:48:00;27/02/2026 12:52:00;4min;1;1;V;193.230,00;193.370,00;192.345,00;No;28,00;140,00;486;28,00;140,00;0,00;0,00;0,00;38min;-1.330,00 +WINJ26;27/02/2026 13:06:00;27/02/2026 13:12:00;6min;1;1;V;193.395,00;193.450,00;192.345,00;Sim;11,00;55,00;487;11,00;55,00;0,00;0,00;0,00;18min;-1.319,00 +WINJ26;27/02/2026 15:22:00;27/02/2026 15:26:00;4min;1;1;V;192.595,00;192.620,00;192.345,00;No;5,00;25,00;488;5,00;25,00;0,00;0,00;0,00;2h16min;-1.314,00 +WINJ26;27/02/2026 15:38:00;27/02/2026 15:46:00;8min;1;1;V;192.595,00;192.715,00;192.345,00;Sim;24,00;120,00;489;24,00;120,00;0,00;0,00;0,00;16min;-1.290,00 +WINJ26;27/02/2026 16:06:00;27/02/2026 16:10:00;4min;1;1;V;192.660,00;192.765,00;192.345,00;Sim;21,00;105,00;490;21,00;105,00;0,00;0,00;0,00;28min;-1.269,00 +WINJ26;27/02/2026 17:40:00;27/02/2026 17:46:00;6min;1;1;V;192.050,00;192.065,00;192.345,00;No;3,00;15,00;491;3,00;15,00;0,00;0,00;0,00;1h34min;-1.266,00 +WINJ26;02/03/2026 10:10:00;02/03/2026 10:14:00;4min;1;1;V;190.085,00;190.205,00;192.345,00;No;24,00;120,00;492;24,00;120,00;0,00;0,00;0,00;2d16h;-1.242,00 +WINJ26;02/03/2026 10:44:00;02/03/2026 10:46:00;2min;1;1;V;190.545,00;190.760,00;192.345,00;Sim;43,00;215,00;493;43,00;215,00;0,00;0,00;0,00;34min;-1.199,00 +WINJ26;02/03/2026 11:12:00;02/03/2026 11:18:00;6min;1;1;V;190.090,00;190.355,00;192.345,00;No;53,00;265,00;494;53,00;265,00;0,00;0,00;0,00;28min;-1.146,00 +WINJ26;02/03/2026 11:34:00;02/03/2026 12:00:00;26min;1;1;V;191.375,00;190.355,00;192.345,00;No;-204,00;-1.020,00;495;-204,00;-1.020,00;0,00;0,00;0,00;22min;-1.350,00 +WINJ26;02/03/2026 12:30:00;02/03/2026 12:56:00;26min;1;1;C;191.410,00;191.140,00;192.345,00;Sim;-54,00;-270,00;496;-54,00;-270,00;0,00;0,00;0,00;56min;-1.404,00 +WINJ26;02/03/2026 13:18:00;02/03/2026 13:28:00;10min;1;1;V;191.230,00;191.315,00;192.345,00;Sim;17,00;85,00;497;17,00;85,00;0,00;0,00;0,00;48min;-1.387,00 +WINJ26;02/03/2026 13:36:00;02/03/2026 13:38:00;2min;1;1;C;191.365,00;191.395,00;192.345,00;Sim;6,00;30,00;498;6,00;30,00;0,00;0,00;0,00;18min;-1.381,00 +WINJ26;02/03/2026 14:04:00;02/03/2026 14:06:00;2min;1;1;C;191.470,00;191.600,00;192.345,00;No;26,00;130,00;499;26,00;130,00;0,00;0,00;0,00;28min;-1.355,00 +WINJ26;02/03/2026 14:42:00;02/03/2026 14:46:00;4min;1;1;C;191.785,00;191.765,00;192.345,00;No;-4,00;-20,00;500;-4,00;-20,00;0,00;0,00;0,00;38min;-1.359,00 +WINJ26;02/03/2026 15:28:00;02/03/2026 15:30:00;2min;1;1;C;192.030,00;192.075,00;192.345,00;No;9,00;45,00;501;9,00;45,00;0,00;0,00;0,00;46min;-1.350,00 +WINJ26;02/03/2026 16:52:00;02/03/2026 17:18:00;26min;1;1;C;192.920,00;192.305,00;192.345,00;No;-123,00;-615,00;502;-123,00;-615,00;0,00;0,00;0,00;1h24min;-1.473,00 +WINJ26;02/03/2026 17:32:00;02/03/2026 17:54:00;22min;1;1;C;192.240,00;192.315,00;192.345,00;Sim;15,00;75,00;503;15,00;75,00;0,00;0,00;0,00;40min;-1.458,00 +WINJ26;02/03/2026 18:02:00;02/03/2026 18:04:00;2min;1;1;C;192.260,00;192.345,00;192.345,00;No;17,00;85,00;504;17,00;85,00;0,00;0,00;0,00;30min;-1.441,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv new file mode 100644 index 0000000..7f7eb11 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv @@ -0,0 +1,293 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:20:00;27/08/2025 09:10:00;14h50min;1;1;C;149.050,00;148.200,00;192.370,00;No;-170,00;-850,00;1;-170,00;-850,00;0,00;0,00;0,00; - ;-170,00 +WINJ26;28/08/2025 09:10:00;28/08/2025 09:15:00;5min;1;1;C;151.000,00;150.940,00;192.370,00;No;-12,00;-60,00;2;-12,00;-60,00;0,00;0,00;0,00;1d14h;-182,00 +WINJ26;02/09/2025 10:50:00;02/09/2025 11:00:00;10min;1;1;C;151.500,00;151.700,00;192.370,00;No;40,00;200,00;3;40,00;200,00;0,00;0,00;0,00;5d1h;-142,00 +WINJ26;03/09/2025 11:00:00;04/09/2025 09:30:00;22h30min;1;1;C;150.950,00;150.705,00;192.370,00;Sim;-49,00;-245,00;4;-49,00;-245,00;0,00;0,00;0,00;1d;-191,00 +WINJ26;09/09/2025 09:05:00;10/09/2025 10:00:00;1d;1;1;C;152.550,00;152.350,00;192.370,00;No;-40,00;-200,00;5;-40,00;-200,00;0,00;0,00;0,00;5d22h;-231,00 +WINJ26;11/09/2025 09:35:00;11/09/2025 10:00:00;25min;1;1;C;153.500,00;153.500,00;192.370,00;No;0;0;6;0;0;0,00;0,00;0,00;2d;-231,00 +WINJ26;12/09/2025 11:00:00;12/09/2025 15:30:00;4h30min;1;1;C;153.400,00;153.200,00;192.370,00;Sim;-40,00;-200,00;7;-40,00;-200,00;0,00;0,00;0,00;1d1h;-271,00 +WINJ26;15/09/2025 17:10:00;16/09/2025 09:40:00;16h30min;1;1;C;154.130,00;154.700,00;192.370,00;No;114,00;570,00;8;114,00;570,00;0,00;0,00;0,00;3d6h;-157,00 +WINJ26;16/09/2025 10:40:00;16/09/2025 14:10:00;3h30min;1;1;C;155.000,00;154.120,00;192.370,00;No;-176,00;-880,00;9;-176,00;-880,00;0,00;0,00;0,00;17h30min;-333,00 +WINJ26;22/09/2025 14:45:00;22/09/2025 16:35:00;1h50min;1;1;C;155.650,00;155.500,00;192.370,00;No;-30,00;-150,00;10;-30,00;-150,00;0,00;0,00;0,00;6d4h;-363,00 +WINJ26;23/09/2025 09:40:00;23/09/2025 12:05:00;2h25min;1;1;C;155.600,00;156.880,00;192.370,00;Sim;256,00;1.280,00;11;256,00;1.280,00;0,00;0,00;0,00;18h55min;-107,00 +WINJ26;25/09/2025 10:15:00;26/09/2025 15:30:00;1d5h;1;1;C;156.250,00;155.500,00;192.370,00;No;-150,00;-750,00;12;-150,00;-750,00;0,00;0,00;0,00;2d;-257,00 +WINJ26;29/09/2025 09:20:00;29/09/2025 09:25:00;5min;1;1;C;156.500,00;156.650,00;192.370,00;No;30,00;150,00;13;30,00;150,00;0,00;0,00;0,00;3d23h;-227,00 +WINJ26;30/09/2025 09:15:00;30/09/2025 09:45:00;30min;1;1;C;156.450,00;156.800,00;192.370,00;Sim;70,00;350,00;14;70,00;350,00;0,00;0,00;0,00;23h55min;-157,00 +WINJ26;30/09/2025 11:50:00;01/10/2025 09:05:00;21h15min;1;1;C;156.150,00;156.000,00;192.370,00;Sim;-30,00;-150,00;15;-30,00;-150,00;0,00;0,00;0,00;2h35min;-187,00 +WINJ26;01/10/2025 09:40:00;01/10/2025 10:05:00;25min;1;1;C;157.000,00;156.750,00;192.370,00;No;-50,00;-250,00;16;-50,00;-250,00;0,00;0,00;0,00;21h50min;-237,00 +WINJ26;01/10/2025 15:45:00;02/10/2025 12:00:00;20h15min;1;1;C;155.450,00;153.750,00;192.370,00;Sim;-340,00;-1.700,00;17;-340,00;-1.700,00;0,00;0,00;0,00;6h5min;-577,00 +WINJ26;14/10/2025 10:40:00;14/10/2025 11:15:00;35min;1;1;V;151.165,00;150.805,00;192.370,00;No;-72,00;-360,00;18;-72,00;-360,00;0,00;0,00;0,00;12d18h;-649,00 +WINJ26;14/10/2025 11:40:00;14/10/2025 13:35:00;1h55min;1;1;V;151.180,00;151.140,00;192.370,00;Sim;-8,00;-40,00;19;-8,00;-40,00;0,00;0,00;0,00;1h;-657,00 +WINJ26;14/10/2025 15:15:00;14/10/2025 15:30:00;15min;1;1;V;150.880,00;151.020,00;192.370,00;No;28,00;140,00;20;28,00;140,00;0,00;0,00;0,00;3h35min;-629,00 +WINJ26;15/10/2025 13:00:00;15/10/2025 14:25:00;1h25min;1;1;V;151.195,00;151.200,00;192.370,00;Sim;1,00;5,00;21;1,00;5,00;0,00;0,00;0,00;21h45min;-628,00 +WINJ26;15/10/2025 15:10:00;16/10/2025 09:50:00;18h40min;1;1;V;150.600,00;151.500,00;192.370,00;Sim;180,00;900,00;22;180,00;900,00;0,00;0,00;0,00;2h10min;-448,00 +WINJ26;16/10/2025 13:30:00;16/10/2025 13:45:00;15min;1;1;V;151.210,00;150.875,00;192.370,00;No;-67,00;-335,00;23;-67,00;-335,00;0,00;0,00;0,00;22h20min;-515,00 +WINJ26;17/10/2025 09:20:00;17/10/2025 10:35:00;1h15min;1;1;V;150.800,00;151.210,00;192.370,00;Sim;82,00;410,00;24;82,00;410,00;0,00;0,00;0,00;19h50min;-433,00 +WINJ26;17/10/2025 11:20:00;20/10/2025 10:35:00;2d23h;1;1;V;152.500,00;151.340,00;192.370,00;Sim;-232,00;-1.160,00;25;-232,00;-1.160,00;0,00;0,00;0,00;2h;-665,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 10:50:00;1h20min;1;1;C;153.200,00;152.950,00;192.370,00;Sim;-50,00;-250,00;26;-50,00;-250,00;0,00;0,00;0,00;3d22h;-715,00 +WINJ26;21/10/2025 11:15:00;21/10/2025 11:40:00;25min;1;1;C;153.200,00;153.000,00;192.370,00;No;-40,00;-200,00;27;-40,00;-200,00;0,00;0,00;0,00;1h45min;-755,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.370,00;Sim;-40,00;-200,00;28;-40,00;-200,00;0,00;0,00;0,00;4h45min;-795,00 +WINJ26;22/10/2025 09:30:00;22/10/2025 09:45:00;15min;1;1;C;152.900,00;153.250,00;192.370,00;No;70,00;350,00;29;70,00;350,00;0,00;0,00;0,00;17h30min;-725,00 +WINJ26;24/10/2025 09:05:00;24/10/2025 09:15:00;10min;1;1;C;154.690,00;154.700,00;192.370,00;No;2,00;10,00;30;2,00;10,00;0,00;0,00;0,00;1d23h;-723,00 +WINJ26;27/10/2025 09:10:00;27/10/2025 09:25:00;15min;1;1;C;156.000,00;156.050,00;192.370,00;No;10,00;50,00;31;10,00;50,00;0,00;0,00;0,00;3d;-713,00 +WINJ26;27/10/2025 16:35:00;28/10/2025 11:15:00;18h40min;1;1;C;155.550,00;155.985,00;192.370,00;Sim;87,00;435,00;32;87,00;435,00;0,00;0,00;0,00;7h25min;-626,00 +WINJ26;30/10/2025 10:55:00;30/10/2025 11:40:00;45min;1;1;C;157.250,00;157.335,00;192.370,00;No;17,00;85,00;33;17,00;85,00;0,00;0,00;0,00;2d18h;-609,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 11:50:00;1h35min;1;1;C;158.540,00;159.000,00;192.370,00;No;92,00;460,00;34;92,00;460,00;0,00;0,00;0,00;4d23h;-517,00 +WINJ26;04/11/2025 16:50:00;04/11/2025 17:35:00;45min;1;1;C;158.660,00;158.840,00;192.370,00;No;36,00;180,00;35;36,00;180,00;0,00;0,00;0,00;6h35min;-481,00 +WINJ26;05/11/2025 10:30:00;05/11/2025 10:40:00;10min;1;1;C;159.040,00;159.375,00;192.370,00;No;67,00;335,00;36;67,00;335,00;0,00;0,00;0,00;17h40min;-414,00 +WINJ26;06/11/2025 16:00:00;06/11/2025 17:50:00;1h50min;1;1;C;161.855,00;162.100,00;192.370,00;No;49,00;245,00;37;49,00;245,00;0,00;0,00;0,00;1d5h;-365,00 +WINJ26;07/11/2025 14:15:00;07/11/2025 16:15:00;2h;1;1;C;161.250,00;161.875,00;192.370,00;Sim;125,00;625,00;38;125,00;625,00;0,00;0,00;0,00;22h15min;-240,00 +WINJ26;12/11/2025 10:10:00;12/11/2025 10:35:00;25min;1;1;C;166.270,00;166.300,00;192.370,00;No;6,00;30,00;39;6,00;30,00;0,00;0,00;0,00;4d19h;-234,00 +WINJ26;12/11/2025 17:25:00;12/11/2025 17:45:00;20min;1;1;C;165.800,00;166.000,00;192.370,00;Sim;40,00;200,00;40;40,00;200,00;0,00;0,00;0,00;7h15min;-194,00 +WINJ26;13/11/2025 17:05:00;13/11/2025 17:15:00;10min;1;1;C;165.500,00;165.250,00;192.370,00;Sim;-50,00;-250,00;41;-50,00;-250,00;0,00;0,00;0,00;23h40min;-244,00 +WINJ26;13/11/2025 18:10:00;14/11/2025 09:00:00;14h50min;1;1;C;165.525,00;165.300,00;192.370,00;No;-45,00;-225,00;42;-45,00;-225,00;0,00;0,00;0,00;1h5min;-289,00 +WINJ26;14/11/2025 09:40:00;14/11/2025 10:15:00;35min;1;1;C;165.050,00;165.180,00;192.370,00;Sim;26,00;130,00;43;26,00;130,00;0,00;0,00;0,00;15h30min;-263,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.370,00;No;69,00;345,00;44;69,00;345,00;0,00;0,00;0,00;3d2h;-194,00 +WINJ26;17/11/2025 18:20:00;18/11/2025 10:30:00;16h10min;1;1;C;165.225,00;164.740,00;192.370,00;Sim;-97,00;-485,00;45;-97,00;-485,00;0,00;0,00;0,00;6h35min;-291,00 +WINJ26;21/11/2025 15:35:00;24/11/2025 12:20:00;2d20h;1;1;V;163.240,00;162.400,00;192.370,00;Sim;-168,00;-840,00;46;-168,00;-840,00;0,00;0,00;0,00;3d21h;-459,00 +WINJ26;24/11/2025 12:35:00;24/11/2025 17:55:00;5h20min;1;1;V;162.800,00;163.100,00;192.370,00;Sim;60,00;300,00;47;60,00;300,00;0,00;0,00;0,00;2d21h;-399,00 +WINJ26;25/11/2025 09:25:00;25/11/2025 09:45:00;20min;1;1;V;163.025,00;162.850,00;192.370,00;No;-35,00;-175,00;48;-35,00;-175,00;0,00;0,00;0,00;20h50min;-434,00 +WINJ26;25/11/2025 10:55:00;25/11/2025 11:15:00;20min;1;1;V;162.780,00;162.935,00;192.370,00;Sim;31,00;155,00;49;31,00;155,00;0,00;0,00;0,00;1h30min;-403,00 +WINJ26;27/11/2025 15:45:00;28/11/2025 10:05:00;18h20min;1;1;C;165.810,00;166.235,00;192.370,00;No;85,00;425,00;50;85,00;425,00;0,00;0,00;0,00;2d4h;-318,00 +WINJ26;28/11/2025 18:20:00;01/12/2025 09:05:00;2d14h;1;1;C;166.785,00;166.630,00;192.370,00;No;-31,00;-155,00;51;-31,00;-155,00;0,00;0,00;0,00;1d2h;-349,00 +WINJ26;01/12/2025 09:30:00;01/12/2025 11:00:00;1h30min;1;1;C;166.560,00;165.945,00;192.370,00;Sim;-123,00;-615,00;52;-123,00;-615,00;0,00;0,00;0,00;2d15h;-472,00 +WINJ26;01/12/2025 11:40:00;01/12/2025 11:45:00;5min;1;1;C;166.410,00;166.320,00;192.370,00;Sim;-18,00;-90,00;53;-18,00;-90,00;0,00;0,00;0,00;2h10min;-490,00 +WINJ26;01/12/2025 13:30:00;02/12/2025 09:00:00;19h30min;1;1;C;166.055,00;166.040,00;192.370,00;Sim;-3,00;-15,00;54;-3,00;-15,00;0,00;0,00;0,00;1h50min;-493,00 +WINJ26;05/12/2025 11:45:00;05/12/2025 11:50:00;5min;1;1;C;171.805,00;172.000,00;192.370,00;No;39,00;195,00;55;39,00;195,00;0,00;0,00;0,00;3d22h;-454,00 +WINJ26;08/12/2025 11:25:00;08/12/2025 12:35:00;1h10min;1;1;V;164.800,00;165.950,00;192.370,00;Sim;230,00;1.150,00;56;230,00;1.150,00;0,00;0,00;0,00;2d23h;-224,00 +WINJ26;08/12/2025 17:20:00;08/12/2025 17:55:00;35min;1;1;V;164.960,00;165.630,00;192.370,00;No;134,00;670,00;57;134,00;670,00;0,00;0,00;0,00;5h55min;-90,00 +WINJ26;09/12/2025 12:05:00;09/12/2025 14:45:00;2h40min;1;1;V;164.700,00;163.800,00;192.370,00;No;-180,00;-900,00;58;-180,00;-900,00;0,00;0,00;0,00;18h45min;-270,00 +WINJ26;09/12/2025 17:40:00;10/12/2025 09:00:00;15h20min;1;1;V;165.750,00;165.175,00;192.370,00;Sim;-115,00;-575,00;59;-115,00;-575,00;0,00;0,00;0,00;5h35min;-385,00 +WINJ26;10/12/2025 09:35:00;10/12/2025 10:25:00;50min;1;1;V;164.850,00;165.705,00;192.370,00;Sim;171,00;855,00;60;171,00;855,00;0,00;0,00;0,00;15h55min;-214,00 +WINJ26;10/12/2025 11:50:00;10/12/2025 15:20:00;3h30min;1;1;V;165.300,00;165.545,00;192.370,00;No;49,00;245,00;61;49,00;245,00;0,00;0,00;0,00;2h15min;-165,00 +WINJ26;10/12/2025 17:05:00;10/12/2025 17:10:00;5min;1;1;C;166.440,00;166.500,00;192.370,00;Sim;12,00;60,00;62;12,00;60,00;0,00;0,00;0,00;5h15min;-153,00 +WINJ26;10/12/2025 17:50:00;11/12/2025 09:05:00;15h15min;1;1;V;165.195,00;166.000,00;192.370,00;Sim;161,00;805,00;63;161,00;805,00;0,00;0,00;0,00;45min;8,00 +WINJ26;11/12/2025 12:15:00;12/12/2025 09:10:00;20h55min;1;1;V;166.575,00;166.215,00;192.370,00;Sim;-72,00;-360,00;64;-72,00;-360,00;0,00;0,00;0,00;18h25min;-64,00 +WINJ26;12/12/2025 14:40:00;12/12/2025 14:45:00;5min;1;1;C;167.350,00;167.400,00;192.370,00;No;10,00;50,00;65;10,00;50,00;0,00;0,00;0,00;1d2h;-54,00 +WINJ26;15/12/2025 17:10:00;16/12/2025 09:00:00;15h50min;1;1;C;169.380,00;168.995,00;192.370,00;No;-77,00;-385,00;66;-77,00;-385,00;0,00;0,00;0,00;3d2h;-131,00 +WINJ26;16/12/2025 10:05:00;16/12/2025 10:10:00;5min;1;1;C;167.675,00;167.515,00;192.370,00;Sim;-32,00;-160,00;67;-32,00;-160,00;0,00;0,00;0,00;16h55min;-163,00 +WINJ26;16/12/2025 10:20:00;16/12/2025 12:00:00;1h40min;1;1;C;167.375,00;166.675,00;192.370,00;Sim;-140,00;-700,00;68;-140,00;-700,00;0,00;0,00;0,00;15min;-303,00 +WINJ26;16/12/2025 14:30:00;16/12/2025 14:45:00;15min;1;1;V;166.800,00;166.550,00;192.370,00;Sim;-50,00;-250,00;69;-50,00;-250,00;0,00;0,00;0,00;4h10min;-353,00 +WINJ26;17/12/2025 11:50:00;17/12/2025 12:20:00;30min;1;1;V;163.790,00;164.140,00;192.370,00;No;70,00;350,00;70;70,00;350,00;0,00;0,00;0,00;21h20min;-283,00 +WINJ26;17/12/2025 14:25:00;17/12/2025 14:55:00;30min;1;1;V;163.600,00;163.740,00;192.370,00;No;28,00;140,00;71;28,00;140,00;0,00;0,00;0,00;2h35min;-255,00 +WINJ26;17/12/2025 16:25:00;17/12/2025 18:00:00;1h35min;1;1;V;163.850,00;163.655,00;192.370,00;No;-39,00;-195,00;72;-39,00;-195,00;0,00;0,00;0,00;2h;-294,00 +WINJ26;18/12/2025 09:00:00;18/12/2025 09:05:00;5min;1;1;V;163.485,00;164.080,00;192.370,00;Sim;119,00;595,00;73;119,00;595,00;0,00;0,00;0,00;16h35min;-175,00 +WINJ26;18/12/2025 10:50:00;18/12/2025 11:00:00;10min;1;1;V;163.735,00;163.985,00;192.370,00;No;50,00;250,00;74;50,00;250,00;0,00;0,00;0,00;1h50min;-125,00 +WINJ26;18/12/2025 11:15:00;18/12/2025 11:45:00;30min;1;1;V;163.785,00;163.965,00;192.370,00;No;36,00;180,00;75;36,00;180,00;0,00;0,00;0,00;25min;-89,00 +WINJ26;18/12/2025 12:20:00;18/12/2025 13:25:00;1h5min;1;1;V;165.025,00;164.115,00;192.370,00;Sim;-182,00;-910,00;76;-182,00;-910,00;0,00;0,00;0,00;1h5min;-271,00 +WINJ26;18/12/2025 14:10:00;18/12/2025 14:15:00;5min;1;1;V;164.200,00;164.585,00;192.370,00;Sim;77,00;385,00;77;77,00;385,00;0,00;0,00;0,00;1h50min;-194,00 +WINJ26;18/12/2025 18:00:00;19/12/2025 09:00:00;15h;1;1;V;164.250,00;164.480,00;192.370,00;No;46,00;230,00;78;46,00;230,00;0,00;0,00;0,00;3h50min;-148,00 +WINJ26;19/12/2025 10:45:00;19/12/2025 11:50:00;1h5min;1;1;V;165.825,00;164.835,00;192.370,00;Sim;-198,00;-990,00;79;-198,00;-990,00;0,00;0,00;0,00;16h45min;-346,00 +WINJ26;19/12/2025 13:50:00;19/12/2025 14:20:00;30min;1;1;C;165.470,00;165.450,00;192.370,00;Sim;-4,00;-20,00;80;-4,00;-20,00;0,00;0,00;0,00;3h5min;-350,00 +WINJ26;19/12/2025 16:25:00;19/12/2025 16:45:00;20min;1;1;C;165.085,00;165.020,00;192.370,00;Sim;-13,00;-65,00;81;-13,00;-65,00;0,00;0,00;0,00;2h35min;-363,00 +WINJ26;19/12/2025 17:00:00;19/12/2025 17:25:00;25min;1;1;C;165.060,00;165.060,00;192.370,00;Sim;0;0;82;0;0;0,00;0,00;0,00;35min;-363,00 +WINJ26;22/12/2025 09:00:00;22/12/2025 09:05:00;5min;1;1;C;165.430,00;165.500,00;192.370,00;No;14,00;70,00;83;14,00;70,00;0,00;0,00;0,00;2d16h;-349,00 +WINJ26;22/12/2025 09:15:00;22/12/2025 09:40:00;25min;1;1;V;164.800,00;165.050,00;192.370,00;Sim;50,00;250,00;84;50,00;250,00;0,00;0,00;0,00;15min;-299,00 +WINJ26;22/12/2025 13:35:00;22/12/2025 14:40:00;1h5min;1;1;V;164.495,00;164.070,00;192.370,00;No;-85,00;-425,00;85;-85,00;-425,00;0,00;0,00;0,00;4h20min;-384,00 +WINJ26;22/12/2025 14:50:00;22/12/2025 14:55:00;5min;1;1;V;164.340,00;164.375,00;192.370,00;Sim;7,00;35,00;86;7,00;35,00;0,00;0,00;0,00;1h15min;-377,00 +WINJ26;22/12/2025 16:05:00;22/12/2025 16:20:00;15min;1;1;V;164.265,00;164.400,00;192.370,00;Sim;27,00;135,00;87;27,00;135,00;0,00;0,00;0,00;1h15min;-350,00 +WINJ26;22/12/2025 17:00:00;22/12/2025 17:35:00;35min;1;1;V;164.255,00;164.375,00;192.370,00;No;24,00;120,00;88;24,00;120,00;0,00;0,00;0,00;55min;-326,00 +WINJ26;23/12/2025 15:25:00;23/12/2025 15:50:00;25min;1;1;C;166.425,00;166.465,00;192.370,00;No;8,00;40,00;89;8,00;40,00;0,00;0,00;0,00;22h25min;-318,00 +WINJ26;23/12/2025 16:40:00;23/12/2025 17:25:00;45min;1;1;C;166.540,00;166.455,00;192.370,00;No;-17,00;-85,00;90;-17,00;-85,00;0,00;0,00;0,00;1h15min;-335,00 +WINJ26;26/12/2025 10:05:00;26/12/2025 10:10:00;5min;1;1;C;165.865,00;166.000,00;192.370,00;Sim;27,00;135,00;91;27,00;135,00;0,00;0,00;0,00;2d17h;-308,00 +WINJ26;26/12/2025 10:35:00;26/12/2025 11:30:00;55min;1;1;C;165.870,00;165.920,00;192.370,00;No;10,00;50,00;92;10,00;50,00;0,00;0,00;0,00;30min;-298,00 +WINJ26;26/12/2025 14:05:00;26/12/2025 14:10:00;5min;1;1;C;166.230,00;166.465,00;192.370,00;No;47,00;235,00;93;47,00;235,00;0,00;0,00;0,00;3h30min;-251,00 +WINJ26;29/12/2025 09:35:00;29/12/2025 10:40:00;1h5min;1;1;C;167.115,00;166.700,00;192.370,00;No;-83,00;-415,00;94;-83,00;-415,00;0,00;0,00;0,00;2d19h;-334,00 +WINJ26;29/12/2025 11:45:00;29/12/2025 11:50:00;5min;1;1;C;166.635,00;166.545,00;192.370,00;Sim;-18,00;-90,00;95;-18,00;-90,00;0,00;0,00;0,00;2h10min;-352,00 +WINJ26;29/12/2025 12:00:00;29/12/2025 13:05:00;1h5min;1;1;C;166.490,00;165.990,00;192.370,00;Sim;-100,00;-500,00;96;-100,00;-500,00;0,00;0,00;0,00;15min;-452,00 +WINJ26;29/12/2025 14:30:00;29/12/2025 14:55:00;25min;1;1;V;166.150,00;166.205,00;192.370,00;Sim;11,00;55,00;97;11,00;55,00;0,00;0,00;0,00;2h30min;-441,00 +WINJ26;29/12/2025 15:30:00;29/12/2025 15:35:00;5min;1;1;V;166.130,00;166.000,00;192.370,00;No;-26,00;-130,00;98;-26,00;-130,00;0,00;0,00;0,00;1h;-467,00 +WINJ26;29/12/2025 17:35:00;29/12/2025 17:45:00;10min;1;1;V;166.070,00;166.155,00;192.370,00;Sim;17,00;85,00;99;17,00;85,00;0,00;0,00;0,00;2h5min;-450,00 +WINJ26;29/12/2025 18:00:00;30/12/2025 09:40:00;15h40min;1;1;V;167.780,00;166.210,00;192.370,00;Sim;-314,00;-1.570,00;100;-314,00;-1.570,00;0,00;0,00;0,00;25min;-764,00 +WINJ26;30/12/2025 11:10:00;30/12/2025 11:15:00;5min;1;1;C;167.635,00;167.420,00;192.370,00;No;-43,00;-215,00;101;-43,00;-215,00;0,00;0,00;0,00;17h10min;-807,00 +WINJ26;30/12/2025 11:40:00;30/12/2025 12:40:00;1h;1;1;C;167.345,00;167.405,00;192.370,00;Sim;12,00;60,00;102;12,00;60,00;0,00;0,00;0,00;30min;-795,00 +WINJ26;30/12/2025 15:25:00;30/12/2025 15:30:00;5min;1;1;C;167.770,00;167.815,00;192.370,00;No;9,00;45,00;103;9,00;45,00;0,00;0,00;0,00;3h45min;-786,00 +WINJ26;30/12/2025 16:10:00;30/12/2025 16:15:00;5min;1;1;C;167.780,00;167.735,00;192.370,00;No;-9,00;-45,00;104;-9,00;-45,00;0,00;0,00;0,00;45min;-795,00 +WINJ26;30/12/2025 16:45:00;30/12/2025 17:20:00;35min;1;1;C;167.710,00;167.675,00;192.370,00;Sim;-7,00;-35,00;105;-7,00;-35,00;0,00;0,00;0,00;35min;-802,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.370,00;No;-65,00;-325,00;106;-65,00;-325,00;0,00;0,00;0,00;2d16h;-867,00 +WINJ26;02/01/2026 15:30:00;02/01/2026 15:45:00;15min;1;1;V;165.975,00;166.055,00;192.370,00;No;16,00;80,00;107;16,00;80,00;0,00;0,00;0,00;6h25min;-851,00 +WINJ26;02/01/2026 16:50:00;02/01/2026 17:15:00;25min;1;1;V;166.165,00;166.220,00;192.370,00;Sim;11,00;55,00;108;11,00;55,00;0,00;0,00;0,00;1h20min;-840,00 +WINJ26;05/01/2026 09:15:00;05/01/2026 10:05:00;50min;1;1;V;166.320,00;166.275,00;192.370,00;Sim;-9,00;-45,00;109;-9,00;-45,00;0,00;0,00;0,00;2d16h;-849,00 +WINJ26;05/01/2026 11:15:00;05/01/2026 11:50:00;35min;1;1;V;166.170,00;166.440,00;192.370,00;Sim;54,00;270,00;110;54,00;270,00;0,00;0,00;0,00;2h;-795,00 +WINJ26;05/01/2026 17:30:00;05/01/2026 17:35:00;5min;1;1;C;167.580,00;167.650,00;192.370,00;Sim;14,00;70,00;111;14,00;70,00;0,00;0,00;0,00;6h15min;-781,00 +WINJ26;06/01/2026 09:00:00;06/01/2026 09:05:00;5min;1;1;C;167.640,00;167.890,00;192.370,00;No;50,00;250,00;112;50,00;250,00;0,00;0,00;0,00;15h30min;-731,00 +WINJ26;06/01/2026 11:40:00;06/01/2026 11:45:00;5min;1;1;C;169.420,00;169.430,00;192.370,00;No;2,00;10,00;113;2,00;10,00;0,00;0,00;0,00;2h40min;-729,00 +WINJ26;06/01/2026 12:45:00;06/01/2026 12:55:00;10min;1;1;C;169.470,00;169.445,00;192.370,00;No;-5,00;-25,00;114;-5,00;-25,00;0,00;0,00;0,00;1h5min;-734,00 +WINJ26;06/01/2026 13:30:00;06/01/2026 13:40:00;10min;1;1;C;169.405,00;169.430,00;192.370,00;Sim;5,00;25,00;115;5,00;25,00;0,00;0,00;0,00;45min;-729,00 +WINJ26;06/01/2026 14:30:00;06/01/2026 14:35:00;5min;1;1;C;169.470,00;169.500,00;192.370,00;No;6,00;30,00;116;6,00;30,00;0,00;0,00;0,00;1h;-723,00 +WINJ26;06/01/2026 15:40:00;06/01/2026 15:50:00;10min;1;1;C;169.380,00;169.500,00;192.370,00;Sim;24,00;120,00;117;24,00;120,00;0,00;0,00;0,00;1h10min;-699,00 +WINJ26;06/01/2026 17:15:00;06/01/2026 17:30:00;15min;1;1;C;169.165,00;169.210,00;192.370,00;Sim;9,00;45,00;118;9,00;45,00;0,00;0,00;0,00;1h35min;-690,00 +WINJ26;06/01/2026 17:40:00;06/01/2026 17:45:00;5min;1;1;C;169.325,00;169.320,00;192.370,00;No;-1,00;-5,00;119;-1,00;-5,00;0,00;0,00;0,00;25min;-691,00 +WINJ26;07/01/2026 09:20:00;07/01/2026 10:25:00;1h5min;1;1;C;169.335,00;168.555,00;192.370,00;No;-156,00;-780,00;120;-156,00;-780,00;0,00;0,00;0,00;15h40min;-847,00 +WINJ26;07/01/2026 13:40:00;07/01/2026 13:50:00;10min;1;1;V;167.680,00;167.665,00;192.370,00;Sim;-3,00;-15,00;121;-3,00;-15,00;0,00;0,00;0,00;4h20min;-850,00 +WINJ26;07/01/2026 14:50:00;07/01/2026 14:55:00;5min;1;1;V;167.565,00;167.620,00;192.370,00;No;11,00;55,00;122;11,00;55,00;0,00;0,00;0,00;1h10min;-839,00 +WINJ26;07/01/2026 15:50:00;07/01/2026 16:45:00;55min;1;1;V;167.630,00;167.700,00;192.370,00;Sim;14,00;70,00;123;14,00;70,00;0,00;0,00;0,00;1h;-825,00 +WINJ26;07/01/2026 17:15:00;07/01/2026 17:30:00;15min;1;1;V;167.650,00;167.660,00;192.370,00;No;2,00;10,00;124;2,00;10,00;0,00;0,00;0,00;1h25min;-823,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:35:00;5min;1;1;V;167.410,00;167.460,00;192.370,00;No;10,00;50,00;125;10,00;50,00;0,00;0,00;0,00;16h15min;-813,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 10:20:00;20min;1;1;V;167.550,00;167.525,00;192.370,00;Sim;-5,00;-25,00;126;-5,00;-25,00;0,00;0,00;0,00;30min;-818,00 +WINJ26;08/01/2026 10:50:00;08/01/2026 10:55:00;5min;1;1;V;167.565,00;167.665,00;192.370,00;Sim;20,00;100,00;127;20,00;100,00;0,00;0,00;0,00;50min;-798,00 +WINJ26;08/01/2026 11:55:00;08/01/2026 12:00:00;5min;1;1;V;167.765,00;167.890,00;192.370,00;Sim;25,00;125,00;128;25,00;125,00;0,00;0,00;0,00;1h5min;-773,00 +WINJ26;08/01/2026 12:30:00;08/01/2026 12:45:00;15min;1;1;V;167.820,00;167.865,00;192.370,00;No;9,00;45,00;129;9,00;45,00;0,00;0,00;0,00;35min;-764,00 +WINJ26;08/01/2026 13:05:00;08/01/2026 13:20:00;15min;1;1;V;167.845,00;167.895,00;192.370,00;Sim;10,00;50,00;130;10,00;50,00;0,00;0,00;0,00;35min;-754,00 +WINJ26;08/01/2026 13:30:00;08/01/2026 13:35:00;5min;1;1;C;167.950,00;168.030,00;192.370,00;Sim;16,00;80,00;131;16,00;80,00;0,00;0,00;0,00;25min;-738,00 +WINJ26;08/01/2026 14:35:00;08/01/2026 15:35:00;1h;1;1;C;167.970,00;167.925,00;192.370,00;No;-9,00;-45,00;132;-9,00;-45,00;0,00;0,00;0,00;1h5min;-747,00 +WINJ26;08/01/2026 16:00:00;08/01/2026 17:05:00;1h5min;1;1;V;167.940,00;167.910,00;192.370,00;Sim;-6,00;-30,00;133;-6,00;-30,00;0,00;0,00;0,00;1h25min;-753,00 +WINJ26;08/01/2026 17:35:00;08/01/2026 17:40:00;5min;1;1;C;168.130,00;168.170,00;192.370,00;No;8,00;40,00;134;8,00;40,00;0,00;0,00;0,00;1h35min;-745,00 +WINJ26;09/01/2026 09:55:00;09/01/2026 10:00:00;5min;1;1;C;168.100,00;168.245,00;192.370,00;Sim;29,00;145,00;135;29,00;145,00;0,00;0,00;0,00;16h20min;-716,00 +WINJ26;09/01/2026 13:05:00;09/01/2026 13:10:00;5min;1;1;C;169.215,00;169.270,00;192.370,00;No;11,00;55,00;136;11,00;55,00;0,00;0,00;0,00;3h10min;-705,00 +WINJ26;09/01/2026 15:00:00;09/01/2026 16:05:00;1h5min;1;1;C;169.440,00;169.180,00;192.370,00;No;-52,00;-260,00;137;-52,00;-260,00;0,00;0,00;0,00;1h55min;-757,00 +WINJ26;09/01/2026 17:30:00;12/01/2026 09:10:00;2d15h;1;1;C;169.025,00;168.650,00;192.370,00;Sim;-75,00;-375,00;138;-75,00;-375,00;0,00;0,00;0,00;2h30min;-832,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 09:20:00;5min;1;1;C;168.975,00;168.900,00;192.370,00;Sim;-15,00;-75,00;139;-15,00;-75,00;0,00;0,00;0,00;2d15h;-847,00 +WINJ26;12/01/2026 09:45:00;12/01/2026 09:50:00;5min;1;1;V;168.560,00;168.590,00;192.370,00;Sim;6,00;30,00;140;6,00;30,00;0,00;0,00;0,00;30min;-841,00 +WINJ26;12/01/2026 11:50:00;12/01/2026 12:55:00;1h5min;1;1;V;168.750,00;168.400,00;192.370,00;No;-70,00;-350,00;141;-70,00;-350,00;0,00;0,00;0,00;2h5min;-911,00 +WINJ26;12/01/2026 15:45:00;12/01/2026 16:00:00;15min;1;1;V;168.590,00;168.610,00;192.370,00;Sim;4,00;20,00;142;4,00;20,00;0,00;0,00;0,00;3h55min;-907,00 +WINJ26;12/01/2026 17:00:00;12/01/2026 17:10:00;10min;1;1;C;168.610,00;168.645,00;192.370,00;Sim;7,00;35,00;143;7,00;35,00;0,00;0,00;0,00;1h15min;-900,00 +WINJ26;12/01/2026 17:15:00;12/01/2026 17:20:00;5min;1;1;V;168.545,00;168.580,00;192.370,00;No;7,00;35,00;144;7,00;35,00;0,00;0,00;0,00;15min;-893,00 +WINJ26;13/01/2026 09:10:00;13/01/2026 09:15:00;5min;1;1;V;168.290,00;168.430,00;192.370,00;No;28,00;140,00;145;28,00;140,00;0,00;0,00;0,00;15h55min;-865,00 +WINJ26;13/01/2026 10:50:00;13/01/2026 10:55:00;5min;1;1;V;167.490,00;167.700,00;192.370,00;No;42,00;210,00;146;42,00;210,00;0,00;0,00;0,00;1h40min;-823,00 +WINJ26;13/01/2026 11:15:00;13/01/2026 11:40:00;25min;1;1;V;167.690,00;167.920,00;192.370,00;Sim;46,00;230,00;147;46,00;230,00;0,00;0,00;0,00;25min;-777,00 +WINJ26;13/01/2026 14:00:00;13/01/2026 14:40:00;40min;1;1;V;167.260,00;167.175,00;192.370,00;No;-17,00;-85,00;148;-17,00;-85,00;0,00;0,00;0,00;2h45min;-794,00 +WINJ26;13/01/2026 15:00:00;13/01/2026 15:05:00;5min;1;1;V;167.215,00;167.295,00;192.370,00;Sim;16,00;80,00;149;16,00;80,00;0,00;0,00;0,00;1h;-778,00 +WINJ26;13/01/2026 15:30:00;13/01/2026 15:35:00;5min;1;1;V;167.290,00;167.200,00;192.370,00;No;-18,00;-90,00;150;-18,00;-90,00;0,00;0,00;0,00;30min;-796,00 +WINJ26;13/01/2026 17:20:00;13/01/2026 17:25:00;5min;1;1;V;167.160,00;167.180,00;192.370,00;No;4,00;20,00;151;4,00;20,00;0,00;0,00;0,00;1h50min;-792,00 +WINJ26;14/01/2026 11:25:00;14/01/2026 11:35:00;10min;1;1;C;168.105,00;168.225,00;192.370,00;Sim;24,00;120,00;152;24,00;120,00;0,00;0,00;0,00;18h5min;-768,00 +WINJ26;14/01/2026 12:55:00;14/01/2026 13:15:00;20min;1;1;C;168.625,00;168.725,00;192.370,00;No;20,00;100,00;153;20,00;100,00;0,00;0,00;0,00;1h30min;-748,00 +WINJ26;15/01/2026 11:00:00;15/01/2026 12:05:00;1h5min;1;1;C;170.400,00;170.320,00;192.370,00;No;-16,00;-80,00;154;-16,00;-80,00;0,00;0,00;0,00;22h5min;-764,00 +WINJ26;15/01/2026 16:20:00;15/01/2026 17:30:00;1h10min;1;1;C;171.110,00;170.630,00;192.370,00;No;-96,00;-480,00;155;-96,00;-480,00;0,00;0,00;0,00;5h20min;-860,00 +WINJ26;15/01/2026 18:05:00;15/01/2026 18:15:00;10min;1;1;C;170.680,00;170.845,00;192.370,00;Sim;33,00;165,00;156;33,00;165,00;0,00;0,00;0,00;1h45min;-827,00 +WINJ26;16/01/2026 13:35:00;16/01/2026 14:00:00;25min;1;1;V;169.535,00;169.630,00;192.370,00;Sim;19,00;95,00;157;19,00;95,00;0,00;0,00;0,00;19h30min;-808,00 +WINJ26;16/01/2026 15:45:00;16/01/2026 16:55:00;1h10min;1;1;V;169.670,00;169.580,00;192.370,00;No;-18,00;-90,00;158;-18,00;-90,00;0,00;0,00;0,00;2h10min;-826,00 +WINJ26;16/01/2026 17:00:00;16/01/2026 17:45:00;45min;1;1;V;169.550,00;169.665,00;192.370,00;Sim;23,00;115,00;159;23,00;115,00;0,00;0,00;0,00;1h15min;-803,00 +WINJ26;19/01/2026 09:05:00;19/01/2026 09:10:00;5min;1;1;V;169.120,00;168.975,00;192.370,00;No;-29,00;-145,00;160;-29,00;-145,00;0,00;0,00;0,00;2d16h;-832,00 +WINJ26;19/01/2026 09:55:00;19/01/2026 10:25:00;30min;1;1;V;169.355,00;169.515,00;192.370,00;Sim;32,00;160,00;161;32,00;160,00;0,00;0,00;0,00;50min;-800,00 +WINJ26;19/01/2026 11:45:00;19/01/2026 12:25:00;40min;1;1;V;169.440,00;169.545,00;192.370,00;Sim;21,00;105,00;162;21,00;105,00;0,00;0,00;0,00;1h50min;-779,00 +WINJ26;19/01/2026 13:00:00;19/01/2026 13:50:00;50min;1;1;V;169.780,00;169.700,00;192.370,00;Sim;-16,00;-80,00;163;-16,00;-80,00;0,00;0,00;0,00;1h15min;-795,00 +WINJ26;19/01/2026 14:00:00;19/01/2026 14:05:00;5min;1;1;C;169.845,00;169.895,00;192.370,00;Sim;10,00;50,00;164;10,00;50,00;0,00;0,00;0,00;1h;-785,00 +WINJ26;19/01/2026 16:25:00;19/01/2026 16:40:00;15min;1;1;V;169.670,00;169.655,00;192.370,00;No;-3,00;-15,00;165;-3,00;-15,00;0,00;0,00;0,00;2h25min;-788,00 +WINJ26;19/01/2026 17:25:00;20/01/2026 09:05:00;15h40min;1;1;V;169.245,00;169.640,00;192.370,00;No;79,00;395,00;166;79,00;395,00;0,00;0,00;0,00;1h;-709,00 +WINJ26;20/01/2026 10:30:00;20/01/2026 10:35:00;5min;1;1;V;168.385,00;168.895,00;192.370,00;No;102,00;510,00;167;102,00;510,00;0,00;0,00;0,00;17h5min;-607,00 +WINJ26;20/01/2026 11:10:00;20/01/2026 12:15:00;1h5min;1;1;V;170.305,00;169.015,00;192.370,00;Sim;-258,00;-1.290,00;168;-258,00;-1.290,00;0,00;0,00;0,00;40min;-865,00 +WINJ26;20/01/2026 15:40:00;20/01/2026 16:45:00;1h5min;1;1;C;170.940,00;170.805,00;192.370,00;No;-27,00;-135,00;169;-27,00;-135,00;0,00;0,00;0,00;4h30min;-892,00 +WINJ26;20/01/2026 17:20:00;20/01/2026 17:30:00;10min;1;1;C;170.800,00;170.800,00;192.370,00;Sim;0;0;170;0;0;0,00;0,00;0,00;1h40min;-892,00 +WINJ26;21/01/2026 09:05:00;21/01/2026 09:10:00;5min;1;1;C;171.985,00;172.225,00;192.370,00;No;48,00;240,00;171;48,00;240,00;0,00;0,00;0,00;15h45min;-844,00 +WINJ26;21/01/2026 14:40:00;21/01/2026 14:50:00;10min;1;1;C;174.890,00;174.955,00;192.370,00;No;13,00;65,00;172;13,00;65,00;0,00;0,00;0,00;5h35min;-831,00 +WINJ26;22/01/2026 14:30:00;22/01/2026 14:35:00;5min;1;1;C;181.570,00;181.925,00;192.370,00;No;71,00;355,00;173;71,00;355,00;0,00;0,00;0,00;23h50min;-760,00 +WINJ26;22/01/2026 16:30:00;22/01/2026 16:35:00;5min;1;1;C;181.150,00;181.150,00;192.370,00;Sim;0;0;174;0;0;0,00;0,00;0,00;2h;-760,00 +WINJ26;22/01/2026 17:35:00;22/01/2026 17:45:00;10min;1;1;C;180.960,00;180.900,00;192.370,00;Sim;-12,00;-60,00;175;-12,00;-60,00;0,00;0,00;0,00;1h5min;-772,00 +WINJ26;22/01/2026 18:00:00;22/01/2026 18:10:00;10min;1;1;C;180.810,00;180.930,00;192.370,00;Sim;24,00;120,00;176;24,00;120,00;0,00;0,00;0,00;25min;-748,00 +WINJ26;23/01/2026 11:10:00;23/01/2026 12:10:00;1h;1;1;C;181.445,00;181.495,00;192.370,00;No;10,00;50,00;177;10,00;50,00;0,00;0,00;0,00;17h10min;-738,00 +WINJ26;23/01/2026 14:20:00;23/01/2026 14:30:00;10min;1;1;C;182.100,00;182.290,00;192.370,00;No;38,00;190,00;178;38,00;190,00;0,00;0,00;0,00;3h10min;-700,00 +WINJ26;23/01/2026 15:25:00;23/01/2026 15:30:00;5min;1;1;C;182.200,00;182.325,00;192.370,00;No;25,00;125,00;179;25,00;125,00;0,00;0,00;0,00;1h5min;-675,00 +WINJ26;26/01/2026 09:45:00;26/01/2026 10:50:00;1h5min;1;1;C;185.010,00;183.440,00;192.370,00;No;-314,00;-1.570,00;180;-314,00;-1.570,00;0,00;0,00;0,00;2d18h;-989,00 +WINJ26;26/01/2026 11:35:00;26/01/2026 11:40:00;5min;1;1;C;183.955,00;183.955,00;192.370,00;Sim;0;0;181;0;0;0,00;0,00;0,00;1h50min;-989,00 +WINJ26;26/01/2026 12:00:00;26/01/2026 12:05:00;5min;1;1;C;183.680,00;183.650,00;192.370,00;Sim;-6,00;-30,00;182;-6,00;-30,00;0,00;0,00;0,00;25min;-995,00 +WINJ26;26/01/2026 12:25:00;26/01/2026 12:50:00;25min;1;1;C;183.635,00;183.540,00;192.370,00;Sim;-19,00;-95,00;183;-19,00;-95,00;0,00;0,00;0,00;25min;-1.014,00 +WINJ26;26/01/2026 13:20:00;26/01/2026 14:05:00;45min;1;1;C;183.445,00;183.550,00;192.370,00;Sim;21,00;105,00;184;21,00;105,00;0,00;0,00;0,00;55min;-993,00 +WINJ26;26/01/2026 15:40:00;26/01/2026 15:50:00;10min;1;1;C;183.550,00;183.755,00;192.370,00;No;41,00;205,00;185;41,00;205,00;0,00;0,00;0,00;2h20min;-952,00 +WINJ26;26/01/2026 16:25:00;26/01/2026 16:50:00;25min;1;1;C;183.140,00;183.330,00;192.370,00;Sim;38,00;190,00;186;38,00;190,00;0,00;0,00;0,00;45min;-914,00 +WINJ26;26/01/2026 18:15:00;27/01/2026 09:05:00;14h50min;1;1;C;183.435,00;185.380,00;192.370,00;No;389,00;1.945,00;187;389,00;1.945,00;0,00;0,00;0,00;1h50min;-525,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:25:00;1h5min;1;1;C;187.310,00;187.200,00;192.370,00;No;-22,00;-110,00;188;-22,00;-110,00;0,00;0,00;0,00;21h5min;-547,00 +WINJ26;27/01/2026 16:35:00;27/01/2026 17:05:00;30min;1;1;C;187.080,00;187.470,00;192.370,00;Sim;78,00;390,00;189;78,00;390,00;0,00;0,00;0,00;1h15min;-469,00 +WINJ26;27/01/2026 17:40:00;27/01/2026 17:50:00;10min;1;1;C;187.280,00;187.165,00;192.370,00;No;-23,00;-115,00;190;-23,00;-115,00;0,00;0,00;0,00;1h5min;-492,00 +WINJ26;28/01/2026 09:05:00;28/01/2026 09:10:00;5min;1;1;C;187.425,00;187.740,00;192.370,00;No;63,00;315,00;191;63,00;315,00;0,00;0,00;0,00;15h25min;-429,00 +WINJ26;28/01/2026 13:05:00;28/01/2026 13:10:00;5min;1;1;C;188.985,00;188.870,00;192.370,00;No;-23,00;-115,00;192;-23,00;-115,00;0,00;0,00;0,00;4h;-452,00 +WINJ26;28/01/2026 13:20:00;28/01/2026 13:30:00;10min;1;1;C;188.820,00;188.930,00;192.370,00;Sim;22,00;110,00;193;22,00;110,00;0,00;0,00;0,00;15min;-430,00 +WINJ26;28/01/2026 13:40:00;28/01/2026 13:50:00;10min;1;1;C;188.805,00;188.890,00;192.370,00;Sim;17,00;85,00;194;17,00;85,00;0,00;0,00;0,00;20min;-413,00 +WINJ26;28/01/2026 14:00:00;28/01/2026 14:05:00;5min;1;1;C;188.675,00;188.840,00;192.370,00;Sim;33,00;165,00;195;33,00;165,00;0,00;0,00;0,00;20min;-380,00 +WINJ26;28/01/2026 14:45:00;28/01/2026 14:55:00;10min;1;1;C;188.440,00;188.835,00;192.370,00;Sim;79,00;395,00;196;79,00;395,00;0,00;0,00;0,00;45min;-301,00 +WINJ26;28/01/2026 15:20:00;28/01/2026 16:25:00;1h5min;1;1;C;188.460,00;188.260,00;192.370,00;No;-40,00;-200,00;197;-40,00;-200,00;0,00;0,00;0,00;35min;-341,00 +WINJ26;28/01/2026 16:40:00;28/01/2026 16:50:00;10min;1;1;C;188.100,00;188.700,00;192.370,00;Sim;120,00;600,00;198;120,00;600,00;0,00;0,00;0,00;1h20min;-221,00 +WINJ26;29/01/2026 11:20:00;29/01/2026 11:45:00;25min;1;1;C;190.960,00;191.235,00;192.370,00;No;55,00;275,00;199;55,00;275,00;0,00;0,00;0,00;18h40min;-166,00 +WINJ26;29/01/2026 14:55:00;29/01/2026 15:00:00;5min;1;1;V;187.860,00;187.850,00;192.370,00;Sim;-2,00;-10,00;200;-2,00;-10,00;0,00;0,00;0,00;3h35min;-168,00 +WINJ26;29/01/2026 15:25:00;29/01/2026 15:40:00;15min;1;1;V;188.015,00;187.970,00;192.370,00;Sim;-9,00;-45,00;201;-9,00;-45,00;0,00;0,00;0,00;30min;-177,00 +WINJ26;29/01/2026 16:35:00;29/01/2026 17:00:00;25min;1;1;V;187.975,00;188.260,00;192.370,00;Sim;57,00;285,00;202;57,00;285,00;0,00;0,00;0,00;1h10min;-120,00 +WINJ26;29/01/2026 17:45:00;29/01/2026 17:50:00;5min;1;1;V;188.130,00;188.280,00;192.370,00;Sim;30,00;150,00;203;30,00;150,00;0,00;0,00;0,00;1h10min;-90,00 +WINJ26;30/01/2026 10:40:00;30/01/2026 10:45:00;5min;1;1;V;187.580,00;187.750,00;192.370,00;No;34,00;170,00;204;34,00;170,00;0,00;0,00;0,00;16h55min;-56,00 +WINJ26;30/01/2026 11:40:00;30/01/2026 12:00:00;20min;1;1;V;187.670,00;187.400,00;192.370,00;No;-54,00;-270,00;205;-54,00;-270,00;0,00;0,00;0,00;1h;-110,00 +WINJ26;30/01/2026 12:30:00;30/01/2026 13:00:00;30min;1;1;V;187.775,00;187.650,00;192.370,00;Sim;-25,00;-125,00;206;-25,00;-125,00;0,00;0,00;0,00;50min;-135,00 +WINJ26;30/01/2026 16:35:00;30/01/2026 17:10:00;35min;1;1;V;185.730,00;186.150,00;192.370,00;No;84,00;420,00;207;84,00;420,00;0,00;0,00;0,00;4h5min;-51,00 +WINJ26;02/02/2026 09:05:00;02/02/2026 09:10:00;5min;1;1;V;185.910,00;185.720,00;192.370,00;No;-38,00;-190,00;208;-38,00;-190,00;0,00;0,00;0,00;2d16h;-89,00 +WINJ26;02/02/2026 10:05:00;02/02/2026 10:10:00;5min;1;1;V;186.320,00;186.350,00;192.370,00;Sim;6,00;30,00;209;6,00;30,00;0,00;0,00;0,00;1h;-83,00 +WINJ26;02/02/2026 11:15:00;02/02/2026 11:20:00;5min;1;1;V;186.650,00;187.055,00;192.370,00;Sim;81,00;405,00;210;81,00;405,00;0,00;0,00;0,00;1h10min;-2,00 +WINJ26;02/02/2026 12:30:00;02/02/2026 12:45:00;15min;1;1;V;186.685,00;186.680,00;192.370,00;No;-1,00;-5,00;211;-1,00;-5,00;0,00;0,00;0,00;1h15min;-3,00 +WINJ26;02/02/2026 15:05:00;02/02/2026 15:10:00;5min;1;1;V;186.820,00;186.870,00;192.370,00;Sim;10,00;50,00;212;10,00;50,00;0,00;0,00;0,00;2h35min;7,00 +WINJ26;03/02/2026 12:20:00;03/02/2026 12:25:00;5min;1;1;C;191.170,00;191.125,00;192.370,00;No;-9,00;-45,00;213;-9,00;-45,00;0,00;0,00;0,00;21h15min;-2,00 +WINJ26;03/02/2026 12:50:00;03/02/2026 13:40:00;50min;1;1;C;191.055,00;191.070,00;192.370,00;Sim;3,00;15,00;214;3,00;15,00;0,00;0,00;0,00;30min;1,00 +WINJ26;03/02/2026 16:15:00;03/02/2026 16:20:00;5min;1;1;C;189.965,00;190.200,00;192.370,00;Sim;47,00;235,00;215;47,00;235,00;0,00;0,00;0,00;3h25min;48,00 +WINJ26;03/02/2026 17:00:00;03/02/2026 17:10:00;10min;1;1;C;189.800,00;190.135,00;192.370,00;Sim;67,00;335,00;216;67,00;335,00;0,00;0,00;0,00;45min;115,00 +WINJ26;04/02/2026 09:55:00;04/02/2026 11:00:00;1h5min;1;1;C;189.505,00;188.525,00;192.370,00;Sim;-196,00;-980,00;217;-196,00;-980,00;0,00;0,00;0,00;16h55min;-81,00 +WINJ26;04/02/2026 18:00:00;05/02/2026 09:40:00;15h40min;1;1;V;186.285,00;185.730,00;192.370,00;No;-111,00;-555,00;218;-111,00;-555,00;0,00;0,00;0,00;8h5min;-192,00 +WINJ26;05/02/2026 11:00:00;05/02/2026 12:05:00;1h5min;1;1;V;187.290,00;186.980,00;192.370,00;Sim;-62,00;-310,00;219;-62,00;-310,00;0,00;0,00;0,00;17h;-254,00 +WINJ26;05/02/2026 14:20:00;05/02/2026 14:25:00;5min;1;1;C;187.260,00;187.545,00;192.370,00;Sim;57,00;285,00;220;57,00;285,00;0,00;0,00;0,00;3h20min;-197,00 +WINJ26;05/02/2026 16:00:00;05/02/2026 16:05:00;5min;1;1;C;187.450,00;187.600,00;192.370,00;No;30,00;150,00;221;30,00;150,00;0,00;0,00;0,00;1h40min;-167,00 +WINJ26;05/02/2026 17:00:00;05/02/2026 18:05:00;1h5min;1;1;C;187.375,00;186.645,00;192.370,00;Sim;-146,00;-730,00;222;-146,00;-730,00;0,00;0,00;0,00;1h;-313,00 +WINJ26;06/02/2026 09:20:00;06/02/2026 09:25:00;5min;1;1;V;186.610,00;186.900,00;192.370,00;No;58,00;290,00;223;58,00;290,00;0,00;0,00;0,00;16h20min;-255,00 +WINJ26;06/02/2026 11:15:00;06/02/2026 11:40:00;25min;1;1;V;186.500,00;186.520,00;192.370,00;No;4,00;20,00;224;4,00;20,00;0,00;0,00;0,00;1h55min;-251,00 +WINJ26;06/02/2026 12:25:00;06/02/2026 12:55:00;30min;1;1;V;186.200,00;186.320,00;192.370,00;No;24,00;120,00;225;24,00;120,00;0,00;0,00;0,00;1h10min;-227,00 +WINJ26;06/02/2026 14:40:00;06/02/2026 15:00:00;20min;1;1;V;186.790,00;186.835,00;192.370,00;Sim;9,00;45,00;226;9,00;45,00;0,00;0,00;0,00;2h15min;-218,00 +WINJ26;06/02/2026 16:30:00;06/02/2026 16:40:00;10min;1;1;V;186.465,00;186.510,00;192.370,00;No;9,00;45,00;227;9,00;45,00;0,00;0,00;0,00;1h50min;-209,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:05:00;5min;1;1;C;187.805,00;187.560,00;192.370,00;No;-49,00;-245,00;228;-49,00;-245,00;0,00;0,00;0,00;2d16h;-258,00 +WINJ26;09/02/2026 10:45:00;09/02/2026 11:30:00;45min;1;1;C;187.740,00;187.770,00;192.370,00;Sim;6,00;30,00;229;6,00;30,00;0,00;0,00;0,00;1h45min;-252,00 +WINJ26;09/02/2026 13:10:00;09/02/2026 13:15:00;5min;1;1;C;187.925,00;188.095,00;192.370,00;No;34,00;170,00;230;34,00;170,00;0,00;0,00;0,00;2h25min;-218,00 +WINJ26;10/02/2026 09:25:00;10/02/2026 10:25:00;1h;1;1;C;190.145,00;190.040,00;192.370,00;No;-21,00;-105,00;231;-21,00;-105,00;0,00;0,00;0,00;20h15min;-239,00 +WINJ26;10/02/2026 11:10:00;10/02/2026 11:15:00;5min;1;1;C;189.910,00;189.890,00;192.370,00;Sim;-4,00;-20,00;232;-4,00;-20,00;0,00;0,00;0,00;1h45min;-243,00 +WINJ26;10/02/2026 13:55:00;10/02/2026 15:00:00;1h5min;1;1;C;190.420,00;190.045,00;192.370,00;No;-75,00;-375,00;233;-75,00;-375,00;0,00;0,00;0,00;2h45min;-318,00 +WINJ26;10/02/2026 16:30:00;10/02/2026 16:35:00;5min;1;1;C;189.690,00;189.850,00;192.370,00;Sim;32,00;160,00;234;32,00;160,00;0,00;0,00;0,00;2h35min;-286,00 +WINJ26;10/02/2026 17:55:00;10/02/2026 18:20:00;25min;1;1;C;190.075,00;190.185,00;192.370,00;No;22,00;110,00;235;22,00;110,00;0,00;0,00;0,00;1h25min;-264,00 +WINJ26;11/02/2026 09:05:00;11/02/2026 09:10:00;5min;1;1;C;191.960,00;191.905,00;192.370,00;No;-11,00;-55,00;236;-11,00;-55,00;0,00;0,00;0,00;15h10min;-275,00 +WINJ26;11/02/2026 12:45:00;11/02/2026 12:50:00;5min;1;1;C;192.755,00;192.960,00;192.370,00;No;41,00;205,00;237;41,00;205,00;0,00;0,00;0,00;3h40min;-234,00 +WINJ26;11/02/2026 16:05:00;11/02/2026 16:10:00;5min;1;1;C;193.940,00;194.050,00;192.370,00;No;22,00;110,00;238;22,00;110,00;0,00;0,00;0,00;3h20min;-212,00 +WINJ26;11/02/2026 17:30:00;11/02/2026 17:35:00;5min;1;1;C;193.995,00;194.170,00;192.370,00;No;35,00;175,00;239;35,00;175,00;0,00;0,00;0,00;1h25min;-177,00 +WINJ26;12/02/2026 10:05:00;12/02/2026 10:20:00;15min;1;1;C;193.185,00;193.430,00;192.370,00;Sim;49,00;245,00;240;49,00;245,00;0,00;0,00;0,00;16h35min;-128,00 +WINJ26;12/02/2026 11:10:00;12/02/2026 11:15:00;5min;1;1;C;193.220,00;193.465,00;192.370,00;No;49,00;245,00;241;49,00;245,00;0,00;0,00;0,00;1h5min;-79,00 +WINJ26;12/02/2026 12:00:00;12/02/2026 12:05:00;5min;1;1;C;193.430,00;193.655,00;192.370,00;No;45,00;225,00;242;45,00;225,00;0,00;0,00;0,00;50min;-34,00 +WINJ26;12/02/2026 13:05:00;12/02/2026 14:10:00;1h5min;1;1;C;193.485,00;192.495,00;192.370,00;No;-198,00;-990,00;243;-198,00;-990,00;0,00;0,00;0,00;1h5min;-232,00 +WINJ26;12/02/2026 16:30:00;12/02/2026 17:30:00;1h;1;1;V;191.960,00;191.710,00;192.370,00;Sim;-50,00;-250,00;244;-50,00;-250,00;0,00;0,00;0,00;3h25min;-282,00 +WINJ26;12/02/2026 17:50:00;12/02/2026 18:00:00;10min;1;1;V;191.970,00;192.015,00;192.370,00;Sim;9,00;45,00;245;9,00;45,00;0,00;0,00;0,00;1h20min;-273,00 +WINJ26;13/02/2026 12:45:00;13/02/2026 13:50:00;1h5min;1;1;V;189.355,00;188.780,00;192.370,00;No;-115,00;-575,00;246;-115,00;-575,00;0,00;0,00;0,00;18h55min;-388,00 +WINJ26;13/02/2026 14:20:00;13/02/2026 15:25:00;1h5min;1;1;V;189.895,00;189.340,00;192.370,00;Sim;-111,00;-555,00;247;-111,00;-555,00;0,00;0,00;0,00;1h35min;-499,00 +WINJ26;13/02/2026 16:15:00;13/02/2026 16:20:00;5min;1;1;V;189.465,00;189.945,00;192.370,00;Sim;96,00;480,00;248;96,00;480,00;0,00;0,00;0,00;1h55min;-403,00 +WINJ26;13/02/2026 16:40:00;13/02/2026 17:00:00;20min;1;1;V;189.870,00;190.075,00;192.370,00;Sim;41,00;205,00;249;41,00;205,00;0,00;0,00;0,00;25min;-362,00 +WINJ26;18/02/2026 14:45:00;18/02/2026 15:00:00;15min;1;1;V;190.185,00;190.405,00;192.370,00;Sim;44,00;220,00;250;44,00;220,00;0,00;0,00;0,00;4d22h;-318,00 +WINJ26;19/02/2026 09:40:00;19/02/2026 10:05:00;25min;1;1;V;189.915,00;190.075,00;192.370,00;No;32,00;160,00;251;32,00;160,00;0,00;0,00;0,00;18h55min;-286,00 +WINJ26;19/02/2026 10:20:00;19/02/2026 10:35:00;15min;1;1;C;190.265,00;190.330,00;192.370,00;Sim;13,00;65,00;252;13,00;65,00;0,00;0,00;0,00;40min;-273,00 +WINJ26;19/02/2026 15:15:00;19/02/2026 16:20:00;1h5min;1;1;C;192.230,00;191.895,00;192.370,00;No;-67,00;-335,00;253;-67,00;-335,00;0,00;0,00;0,00;4h55min;-340,00 +WINJ26;19/02/2026 16:30:00;19/02/2026 17:35:00;1h5min;1;1;C;191.895,00;192.035,00;192.370,00;Sim;28,00;140,00;254;28,00;140,00;0,00;0,00;0,00;1h15min;-312,00 +WINJ26;20/02/2026 14:40:00;20/02/2026 14:50:00;10min;1;1;C;191.860,00;192.135,00;192.370,00;Sim;55,00;275,00;255;55,00;275,00;0,00;0,00;0,00;22h10min;-257,00 +WINJ26;23/02/2026 10:10:00;23/02/2026 10:30:00;20min;1;1;C;193.150,00;193.110,00;192.370,00;No;-8,00;-40,00;256;-8,00;-40,00;0,00;0,00;0,00;2d19h;-265,00 +WINJ26;23/02/2026 10:50:00;23/02/2026 11:00:00;10min;1;1;C;192.950,00;193.025,00;192.370,00;Sim;15,00;75,00;257;15,00;75,00;0,00;0,00;0,00;40min;-250,00 +WINJ26;23/02/2026 14:55:00;23/02/2026 15:00:00;5min;1;1;C;192.665,00;192.665,00;192.370,00;Sim;0;0;258;0;0;0,00;0,00;0,00;4h5min;-250,00 +WINJ26;23/02/2026 17:45:00;23/02/2026 18:05:00;20min;1;1;V;192.435,00;192.480,00;192.370,00;Sim;9,00;45,00;259;9,00;45,00;0,00;0,00;0,00;2h50min;-241,00 +WINJ26;24/02/2026 10:55:00;24/02/2026 11:00:00;5min;1;1;C;193.365,00;193.505,00;192.370,00;No;28,00;140,00;260;28,00;140,00;0,00;0,00;0,00;17h10min;-213,00 +WINJ26;24/02/2026 11:40:00;24/02/2026 11:45:00;5min;1;1;C;193.500,00;193.630,00;192.370,00;No;26,00;130,00;261;26,00;130,00;0,00;0,00;0,00;45min;-187,00 +WINJ26;24/02/2026 15:05:00;24/02/2026 15:45:00;40min;1;1;C;195.000,00;195.165,00;192.370,00;No;33,00;165,00;262;33,00;165,00;0,00;0,00;0,00;3h25min;-154,00 +WINJ26;24/02/2026 16:00:00;24/02/2026 16:05:00;5min;1;1;C;194.930,00;195.040,00;192.370,00;Sim;22,00;110,00;263;22,00;110,00;0,00;0,00;0,00;55min;-132,00 +WINJ26;24/02/2026 16:15:00;24/02/2026 16:35:00;20min;1;1;C;194.920,00;194.930,00;192.370,00;Sim;2,00;10,00;264;2,00;10,00;0,00;0,00;0,00;15min;-130,00 +WINJ26;24/02/2026 17:20:00;24/02/2026 17:45:00;25min;1;1;C;194.785,00;195.035,00;192.370,00;Sim;50,00;250,00;265;50,00;250,00;0,00;0,00;0,00;1h5min;-80,00 +WINJ26;25/02/2026 11:15:00;25/02/2026 11:25:00;10min;1;1;C;195.305,00;195.520,00;192.370,00;No;43,00;215,00;266;43,00;215,00;0,00;0,00;0,00;17h55min;-37,00 +WINJ26;25/02/2026 12:55:00;25/02/2026 13:15:00;20min;1;1;C;194.485,00;194.680,00;192.370,00;Sim;39,00;195,00;267;39,00;195,00;0,00;0,00;0,00;1h40min;2,00 +WINJ26;25/02/2026 13:55:00;25/02/2026 14:00:00;5min;1;1;C;194.525,00;194.640,00;192.370,00;No;23,00;115,00;268;23,00;115,00;0,00;0,00;0,00;1h;25,00 +WINJ26;25/02/2026 17:55:00;26/02/2026 09:00:00;15h5min;1;1;V;194.005,00;194.345,00;192.370,00;Sim;68,00;340,00;269;68,00;340,00;0,00;0,00;0,00;4h;93,00 +WINJ26;26/02/2026 09:20:00;26/02/2026 09:35:00;15min;1;1;V;193.975,00;194.220,00;192.370,00;No;49,00;245,00;270;49,00;245,00;0,00;0,00;0,00;15h25min;142,00 +WINJ26;26/02/2026 10:20:00;26/02/2026 10:25:00;5min;1;1;V;194.185,00;194.240,00;192.370,00;Sim;11,00;55,00;271;11,00;55,00;0,00;0,00;0,00;1h;153,00 +WINJ26;26/02/2026 11:15:00;26/02/2026 11:25:00;10min;1;1;V;194.095,00;194.250,00;192.370,00;Sim;31,00;155,00;272;31,00;155,00;0,00;0,00;0,00;55min;184,00 +WINJ26;26/02/2026 13:45:00;26/02/2026 13:50:00;5min;1;1;V;193.460,00;193.535,00;192.370,00;No;15,00;75,00;273;15,00;75,00;0,00;0,00;0,00;2h30min;199,00 +WINJ26;26/02/2026 15:25:00;26/02/2026 16:30:00;1h5min;1;1;V;194.010,00;193.430,00;192.370,00;No;-116,00;-580,00;274;-116,00;-580,00;0,00;0,00;0,00;1h40min;83,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 10:05:00;1h5min;1;1;C;194.155,00;193.555,00;192.370,00;Sim;-120,00;-600,00;275;-120,00;-600,00;0,00;0,00;0,00;17h35min;-37,00 +WINJ26;27/02/2026 11:20:00;27/02/2026 12:00:00;40min;1;1;V;193.065,00;193.015,00;192.370,00;No;-10,00;-50,00;276;-10,00;-50,00;0,00;0,00;0,00;2h20min;-47,00 +WINJ26;27/02/2026 12:50:00;27/02/2026 13:25:00;35min;1;1;V;193.125,00;193.435,00;192.370,00;Sim;62,00;310,00;277;62,00;310,00;0,00;0,00;0,00;1h30min;15,00 +WINJ26;27/02/2026 15:25:00;27/02/2026 15:45:00;20min;1;1;V;192.670,00;192.665,00;192.370,00;No;-1,00;-5,00;278;-1,00;-5,00;0,00;0,00;0,00;2h35min;14,00 +WINJ26;27/02/2026 16:10:00;27/02/2026 16:15:00;5min;1;1;V;192.620,00;192.660,00;192.370,00;No;8,00;40,00;279;8,00;40,00;0,00;0,00;0,00;45min;22,00 +WINJ26;27/02/2026 17:40:00;27/02/2026 17:50:00;10min;1;1;V;192.020,00;192.065,00;192.370,00;No;9,00;45,00;280;9,00;45,00;0,00;0,00;0,00;1h30min;31,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 10:50:00;20min;1;1;V;190.155,00;190.695,00;192.370,00;No;108,00;540,00;281;108,00;540,00;0,00;0,00;0,00;2d16h;139,00 +WINJ26;02/03/2026 12:45:00;02/03/2026 12:55:00;10min;1;1;V;191.160,00;191.365,00;192.370,00;Sim;41,00;205,00;282;41,00;205,00;0,00;0,00;0,00;2h15min;180,00 +WINJ26;02/03/2026 13:20:00;02/03/2026 14:25:00;1h5min;1;1;V;191.620,00;191.265,00;192.370,00;No;-71,00;-355,00;283;-71,00;-355,00;0,00;0,00;0,00;35min;109,00 +WINJ26;02/03/2026 14:40:00;02/03/2026 15:45:00;1h5min;1;1;V;192.095,00;191.595,00;192.370,00;Sim;-100,00;-500,00;284;-100,00;-500,00;0,00;0,00;0,00;1h20min;9,00 +WINJ26;02/03/2026 15:50:00;02/03/2026 16:55:00;1h5min;1;1;V;192.880,00;192.040,00;192.370,00;Sim;-168,00;-840,00;285;-168,00;-840,00;0,00;0,00;0,00;1h10min;-159,00 +WINJ26;02/03/2026 17:10:00;02/03/2026 17:15:00;5min;1;1;V;191.950,00;192.110,00;192.370,00;Sim;32,00;160,00;286;32,00;160,00;0,00;0,00;0,00;1h20min;-127,00 +WINJ26;02/03/2026 17:40:00; - ; - ;1;0;C;192.295,00;192.350,00;192.350,00;Sim;11,00;55,00;287;11,00;55,00;0,00;0,00;0,00;30min;-116,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv new file mode 100644 index 0000000..4c43bb5 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv @@ -0,0 +1,131 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:15:00;28/08/2025 09:00:00;1d14h;1;1;C;149.050,00;151.000,00;192.370,00;No;390,00;1.950,00;1;390,00;1.950,00;0,00;0,00;0,00; - ;390,00 +WINJ26;02/09/2025 10:30:00;02/09/2025 11:00:00;30min;1;1;C;151.005,00;151.700,00;192.370,00;No;139,00;695,00;2;139,00;695,00;0,00;0,00;0,00;6d16h;529,00 +WINJ26;03/09/2025 12:15:00;04/09/2025 12:00:00;23h45min;1;1;C;150.950,00;151.100,00;192.370,00;Sim;30,00;150,00;3;30,00;150,00;0,00;0,00;0,00;1d1h;559,00 +WINJ26;12/09/2025 11:00:00;12/09/2025 15:30:00;4h30min;1;1;C;153.400,00;153.200,00;192.370,00;No;-40,00;-200,00;4;-40,00;-200,00;0,00;0,00;0,00;8d22h;519,00 +WINJ26;16/09/2025 10:30:00;16/09/2025 14:00:00;3h30min;1;1;C;155.000,00;154.120,00;192.370,00;No;-176,00;-880,00;5;-176,00;-880,00;0,00;0,00;0,00;3d23h;343,00 +WINJ26;22/09/2025 14:45:00;23/09/2025 12:00:00;21h15min;1;1;C;155.650,00;156.680,00;192.370,00;No;206,00;1.030,00;6;206,00;1.030,00;0,00;0,00;0,00;6d4h;549,00 +WINJ26;25/09/2025 13:15:00;29/09/2025 09:00:00;3d19h;1;1;C;156.680,00;156.400,00;192.370,00;No;-56,00;-280,00;7;-56,00;-280,00;0,00;0,00;0,00;2d22h;493,00 +WINJ26;29/09/2025 09:15:00;29/09/2025 09:30:00;15min;1;1;C;156.500,00;156.700,00;192.370,00;Sim;40,00;200,00;8;40,00;200,00;0,00;0,00;0,00;3d20h;533,00 +WINJ26;30/09/2025 18:15:00;01/10/2025 09:30:00;15h15min;1;1;C;156.375,00;157.000,00;192.370,00;Sim;125,00;625,00;9;125,00;625,00;0,00;0,00;0,00;1d9h;658,00 +WINJ26;02/10/2025 10:00:00;03/10/2025 11:00:00;1d1h;1;1;C;155.000,00;153.700,00;192.370,00;Sim;-260,00;-1.300,00;10;-260,00;-1.300,00;0,00;0,00;0,00;1d15h;398,00 +WINJ26;14/10/2025 10:30:00;14/10/2025 11:15:00;45min;1;1;V;151.165,00;150.805,00;192.370,00;No;-72,00;-360,00;11;-72,00;-360,00;0,00;0,00;0,00;12d;326,00 +WINJ26;14/10/2025 12:30:00;14/10/2025 15:30:00;3h;1;1;V;150.880,00;151.190,00;192.370,00;Sim;62,00;310,00;12;62,00;310,00;0,00;0,00;0,00;2h;388,00 +WINJ26;15/10/2025 13:00:00;16/10/2025 09:45:00;20h45min;1;1;V;150.600,00;151.200,00;192.370,00;Sim;120,00;600,00;13;120,00;600,00;0,00;0,00;0,00;1d;508,00 +WINJ26;16/10/2025 13:30:00;16/10/2025 13:45:00;15min;1;1;V;151.210,00;150.875,00;192.370,00;No;-67,00;-335,00;14;-67,00;-335,00;0,00;0,00;0,00;1d;441,00 +WINJ26;17/10/2025 09:15:00;17/10/2025 10:30:00;1h15min;1;1;V;150.800,00;151.210,00;192.370,00;Sim;82,00;410,00;15;82,00;410,00;0,00;0,00;0,00;19h45min;523,00 +WINJ26;17/10/2025 11:15:00;20/10/2025 10:45:00;2d23h;1;1;V;152.550,00;151.340,00;192.370,00;Sim;-242,00;-1.210,00;16;-242,00;-1.210,00;0,00;0,00;0,00;2h;281,00 +WINJ26;21/10/2025 09:30:00;21/10/2025 11:30:00;2h;1;1;C;153.200,00;153.000,00;192.370,00;Sim;-40,00;-200,00;17;-40,00;-200,00;0,00;0,00;0,00;3d22h;241,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.370,00;Sim;-40,00;-200,00;18;-40,00;-200,00;0,00;0,00;0,00;6h30min;201,00 +WINJ26;22/10/2025 09:30:00;22/10/2025 09:45:00;15min;1;1;C;152.900,00;153.250,00;192.370,00;No;70,00;350,00;19;70,00;350,00;0,00;0,00;0,00;17h30min;271,00 +WINJ26;23/10/2025 18:15:00;24/10/2025 09:00:00;14h45min;1;1;C;154.600,00;154.690,00;192.370,00;No;18,00;90,00;20;18,00;90,00;0,00;0,00;0,00;1d8h;289,00 +WINJ26;28/10/2025 09:45:00;28/10/2025 11:15:00;1h30min;1;1;C;155.400,00;155.985,00;192.370,00;No;117,00;585,00;21;117,00;585,00;0,00;0,00;0,00;4d15h;406,00 +WINJ26;30/10/2025 10:45:00;30/10/2025 11:30:00;45min;1;1;C;157.250,00;157.335,00;192.370,00;No;17,00;85,00;22;17,00;85,00;0,00;0,00;0,00;2d1h;423,00 +WINJ26;04/11/2025 10:15:00;04/11/2025 10:30:00;15min;1;1;C;158.540,00;158.520,00;192.370,00;No;-4,00;-20,00;23;-4,00;-20,00;0,00;0,00;0,00;4d23h;419,00 +WINJ26;04/11/2025 16:45:00;04/11/2025 17:30:00;45min;1;1;C;158.660,00;158.840,00;192.370,00;No;36,00;180,00;24;36,00;180,00;0,00;0,00;0,00;6h30min;455,00 +WINJ26;07/11/2025 14:15:00;07/11/2025 16:15:00;2h;1;1;C;161.250,00;161.875,00;192.370,00;No;125,00;625,00;25;125,00;625,00;0,00;0,00;0,00;2d21h;580,00 +WINJ26;12/11/2025 11:30:00;12/11/2025 17:15:00;5h45min;1;1;C;166.000,00;165.800,00;192.370,00;No;-40,00;-200,00;26;-40,00;-200,00;0,00;0,00;0,00;4d21h;540,00 +WINJ26;13/11/2025 17:15:00;14/11/2025 11:00:00;17h45min;1;1;C;165.250,00;165.350,00;192.370,00;Sim;20,00;100,00;27;20,00;100,00;0,00;0,00;0,00;1d5h;560,00 +WINJ26;17/11/2025 11:45:00;17/11/2025 13:30:00;1h45min;1;1;C;165.655,00;166.000,00;192.370,00;No;69,00;345,00;28;69,00;345,00;0,00;0,00;0,00;3d18h;629,00 +WINJ26;18/11/2025 09:00:00;18/11/2025 17:15:00;8h15min;1;1;C;164.750,00;164.900,00;192.370,00;Sim;30,00;150,00;29;30,00;150,00;0,00;0,00;0,00;21h15min;659,00 +WINJ26;19/11/2025 12:00:00;21/11/2025 09:45:00;1d21h;1;1;C;164.100,00;162.930,00;192.370,00;Sim;-234,00;-1.170,00;30;-234,00;-1.170,00;0,00;0,00;0,00;1d3h;425,00 +WINJ26;24/11/2025 11:15:00;24/11/2025 18:00:00;6h45min;1;1;V;163.020,00;163.340,00;192.370,00;Sim;64,00;320,00;31;64,00;320,00;0,00;0,00;0,00;4d23h;489,00 +WINJ26;25/11/2025 09:45:00;25/11/2025 10:00:00;15min;1;1;V;163.435,00;163.025,00;192.370,00;No;-82,00;-410,00;32;-82,00;-410,00;0,00;0,00;0,00;22h30min;407,00 +WINJ26;25/11/2025 11:15:00;25/11/2025 11:30:00;15min;1;1;V;162.700,00;162.780,00;192.370,00;No;16,00;80,00;33;16,00;80,00;0,00;0,00;0,00;1h30min;423,00 +WINJ26;01/12/2025 11:45:00;01/12/2025 12:00:00;15min;1;1;C;166.320,00;166.560,00;192.370,00;No;48,00;240,00;34;48,00;240,00;0,00;0,00;0,00;6d;471,00 +WINJ26;01/12/2025 13:30:00;02/12/2025 09:15:00;19h45min;1;1;C;166.055,00;166.580,00;192.370,00;Sim;105,00;525,00;35;105,00;525,00;0,00;0,00;0,00;1h45min;576,00 +WINJ26;08/12/2025 17:15:00;08/12/2025 17:45:00;30min;1;1;V;165.000,00;165.630,00;192.370,00;Sim;126,00;630,00;36;126,00;630,00;0,00;0,00;0,00;7d3h;702,00 +WINJ26;09/12/2025 14:15:00;10/12/2025 09:00:00;18h45min;1;1;V;165.750,00;164.600,00;192.370,00;No;-230,00;-1.150,00;37;-230,00;-1.150,00;0,00;0,00;0,00;21h;472,00 +WINJ26;10/12/2025 10:30:00;10/12/2025 10:45:00;15min;1;1;V;165.310,00;164.850,00;192.370,00;Sim;-92,00;-460,00;38;-92,00;-460,00;0,00;0,00;0,00;20h15min;380,00 +WINJ26;10/12/2025 14:15:00;10/12/2025 17:00:00;2h45min;1;1;V;165.625,00;165.230,00;192.370,00;Sim;-79,00;-395,00;39;-79,00;-395,00;0,00;0,00;0,00;3h45min;301,00 +WINJ26;10/12/2025 17:15:00;10/12/2025 17:30:00;15min;1;1;C;166.605,00;166.200,00;192.370,00;No;-81,00;-405,00;40;-81,00;-405,00;0,00;0,00;0,00;3h;220,00 +WINJ26;11/12/2025 10:00:00;11/12/2025 11:00:00;1h;1;1;V;165.500,00;165.615,00;192.370,00;Sim;23,00;115,00;41;23,00;115,00;0,00;0,00;0,00;16h45min;243,00 +WINJ26;12/12/2025 14:30:00;12/12/2025 14:45:00;15min;1;1;C;167.060,00;167.400,00;192.370,00;No;68,00;340,00;42;68,00;340,00;0,00;0,00;0,00;1d4h;311,00 +WINJ26;16/12/2025 09:15:00;16/12/2025 09:30:00;15min;1;1;V;166.840,00;166.960,00;192.370,00;Sim;24,00;120,00;43;24,00;120,00;0,00;0,00;0,00;3d18h;335,00 +WINJ26;16/12/2025 14:15:00;17/12/2025 09:00:00;18h45min;1;1;C;166.680,00;164.410,00;192.370,00;Sim;-454,00;-2.270,00;44;-454,00;-2.270,00;0,00;0,00;0,00;5h;-119,00 +WINJ26;17/12/2025 18:00:00;18/12/2025 09:15:00;15h15min;1;1;V;163.555,00;163.850,00;192.370,00;No;59,00;295,00;45;59,00;295,00;0,00;0,00;0,00;1d3h;-60,00 +WINJ26;18/12/2025 11:00:00;18/12/2025 14:15:00;3h15min;1;1;V;164.200,00;163.735,00;192.370,00;No;-93,00;-465,00;46;-93,00;-465,00;0,00;0,00;0,00;17h;-153,00 +WINJ26;18/12/2025 16:15:00;18/12/2025 16:45:00;30min;1;1;V;164.300,00;164.655,00;192.370,00;Sim;71,00;355,00;47;71,00;355,00;0,00;0,00;0,00;5h15min;-82,00 +WINJ26;18/12/2025 18:00:00;19/12/2025 09:00:00;15h;1;1;V;164.250,00;164.480,00;192.370,00;No;46,00;230,00;48;46,00;230,00;0,00;0,00;0,00;1h45min;-36,00 +WINJ26;19/12/2025 09:30:00;19/12/2025 09:45:00;15min;1;1;V;164.475,00;164.520,00;192.370,00;Sim;9,00;45,00;49;9,00;45,00;0,00;0,00;0,00;15h30min;-27,00 +WINJ26;19/12/2025 10:45:00;19/12/2025 14:00:00;3h15min;1;1;V;165.495,00;164.835,00;192.370,00;Sim;-132,00;-660,00;50;-132,00;-660,00;0,00;0,00;0,00;1h15min;-159,00 +WINJ26;19/12/2025 14:30:00;19/12/2025 14:45:00;15min;1;1;V;165.150,00;165.175,00;192.370,00;Sim;5,00;25,00;51;5,00;25,00;0,00;0,00;0,00;3h45min;-154,00 +WINJ26;22/12/2025 09:15:00;22/12/2025 09:30:00;15min;1;1;V;164.980,00;165.050,00;192.370,00;No;14,00;70,00;52;14,00;70,00;0,00;0,00;0,00;2d18h;-140,00 +WINJ26;22/12/2025 14:30:00;22/12/2025 15:15:00;45min;1;1;V;164.205,00;164.410,00;192.370,00;No;41,00;205,00;53;41,00;205,00;0,00;0,00;0,00;5h15min;-99,00 +WINJ26;22/12/2025 16:15:00;22/12/2025 16:30:00;15min;1;1;V;164.295,00;164.340,00;192.370,00;No;9,00;45,00;54;9,00;45,00;0,00;0,00;0,00;1h45min;-90,00 +WINJ26;22/12/2025 17:45:00;22/12/2025 18:15:00;30min;1;1;V;164.250,00;164.345,00;192.370,00;Sim;19,00;95,00;55;19,00;95,00;0,00;0,00;0,00;1h30min;-71,00 +WINJ26;26/12/2025 11:30:00;26/12/2025 11:45:00;15min;1;1;C;165.920,00;166.015,00;192.370,00;Sim;19,00;95,00;56;19,00;95,00;0,00;0,00;0,00;3d17h;-52,00 +WINJ26;29/12/2025 11:45:00;29/12/2025 14:45:00;3h;1;1;C;166.635,00;166.380,00;192.370,00;No;-51,00;-255,00;57;-51,00;-255,00;0,00;0,00;0,00;3d;-103,00 +WINJ26;29/12/2025 15:15:00;29/12/2025 17:15:00;2h;1;1;C;166.285,00;166.345,00;192.370,00;Sim;12,00;60,00;58;12,00;60,00;0,00;0,00;0,00;3h30min;-91,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.370,00;No;-21,00;-105,00;59;-21,00;-105,00;0,00;0,00;0,00;3d18h;-112,00 +WINJ26;05/01/2026 10:15:00;05/01/2026 10:30:00;15min;1;1;V;165.975,00;166.290,00;192.370,00;Sim;63,00;315,00;60;63,00;315,00;0,00;0,00;0,00;3d1h;-49,00 +WINJ26;05/01/2026 11:15:00;05/01/2026 12:00:00;45min;1;1;V;166.200,00;166.440,00;192.370,00;Sim;48,00;240,00;61;48,00;240,00;0,00;0,00;0,00;1h;-1,00 +WINJ26;05/01/2026 12:15:00;05/01/2026 12:30:00;15min;1;1;C;166.525,00;166.940,00;192.370,00;Sim;83,00;415,00;62;83,00;415,00;0,00;0,00;0,00;1h;82,00 +WINJ26;06/01/2026 17:15:00;06/01/2026 17:45:00;30min;1;1;C;169.165,00;169.320,00;192.370,00;No;31,00;155,00;63;31,00;155,00;0,00;0,00;0,00;1d5h;113,00 +WINJ26;07/01/2026 09:30:00;07/01/2026 12:45:00;3h15min;1;1;C;169.295,00;167.515,00;192.370,00;No;-356,00;-1.780,00;64;-356,00;-1.780,00;0,00;0,00;0,00;16h15min;-243,00 +WINJ26;07/01/2026 16:00:00;08/01/2026 09:45:00;17h45min;1;1;C;167.710,00;167.630,00;192.370,00;Sim;-16,00;-80,00;65;-16,00;-80,00;0,00;0,00;0,00;6h30min;-259,00 +WINJ26;08/01/2026 11:00:00;08/01/2026 14:15:00;3h15min;1;1;V;168.085,00;167.590,00;192.370,00;Sim;-99,00;-495,00;66;-99,00;-495,00;0,00;0,00;0,00;19h;-358,00 +WINJ26;08/01/2026 15:30:00;08/01/2026 16:15:00;45min;1;1;C;167.920,00;167.980,00;192.370,00;No;12,00;60,00;67;12,00;60,00;0,00;0,00;0,00;4h30min;-346,00 +WINJ26;09/01/2026 10:00:00;09/01/2026 10:30:00;30min;1;1;C;168.245,00;168.640,00;192.370,00;No;79,00;395,00;68;79,00;395,00;0,00;0,00;0,00;18h30min;-267,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 12:00:00;2h45min;1;1;C;168.975,00;168.425,00;192.370,00;No;-110,00;-550,00;69;-110,00;-550,00;0,00;0,00;0,00;2d23h;-377,00 +WINJ26;12/01/2026 14:15:00;12/01/2026 14:45:00;30min;1;1;C;168.595,00;168.610,00;192.370,00;Sim;3,00;15,00;70;3,00;15,00;0,00;0,00;0,00;5h;-374,00 +WINJ26;12/01/2026 18:15:00;13/01/2026 09:00:00;14h45min;1;1;C;168.505,00;168.590,00;192.370,00;Sim;17,00;85,00;71;17,00;85,00;0,00;0,00;0,00;4h;-357,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 14:30:00;3h15min;1;1;V;168.975,00;167.705,00;192.370,00;Sim;-254,00;-1.270,00;72;-254,00;-1.270,00;0,00;0,00;0,00;1d17h;-611,00 +WINJ26;15/01/2026 12:00:00;15/01/2026 12:15:00;15min;1;1;C;170.120,00;170.375,00;192.370,00;No;51,00;255,00;73;51,00;255,00;0,00;0,00;0,00;1d;-560,00 +WINJ26;15/01/2026 18:15:00;16/01/2026 09:00:00;14h45min;1;1;C;170.845,00;171.100,00;192.370,00;No;51,00;255,00;74;51,00;255,00;0,00;0,00;0,00;6h15min;-509,00 +WINJ26;16/01/2026 15:30:00;16/01/2026 17:15:00;1h45min;1;1;C;169.680,00;169.725,00;192.370,00;Sim;9,00;45,00;75;9,00;45,00;0,00;0,00;0,00;21h15min;-500,00 +WINJ26;16/01/2026 18:15:00;19/01/2026 09:00:00;2d14h;1;1;C;169.705,00;169.140,00;192.370,00;No;-113,00;-565,00;76;-113,00;-565,00;0,00;0,00;0,00;2h45min;-613,00 +WINJ26;19/01/2026 09:45:00;19/01/2026 10:00:00;15min;1;1;C;169.600,00;169.685,00;192.370,00;Sim;17,00;85,00;77;17,00;85,00;0,00;0,00;0,00;2d15h;-596,00 +WINJ26;19/01/2026 10:45:00;19/01/2026 12:00:00;1h15min;1;1;C;169.490,00;169.745,00;192.370,00;Sim;51,00;255,00;78;51,00;255,00;0,00;0,00;0,00;1h;-545,00 +WINJ26;19/01/2026 15:45:00;19/01/2026 17:30:00;1h45min;1;1;C;169.665,00;169.755,00;192.370,00;No;18,00;90,00;79;18,00;90,00;0,00;0,00;0,00;5h;-527,00 +WINJ26;20/01/2026 09:15:00;20/01/2026 09:30:00;15min;1;1;V;168.260,00;168.485,00;192.370,00;Sim;45,00;225,00;80;45,00;225,00;0,00;0,00;0,00;17h30min;-482,00 +WINJ26;22/01/2026 17:45:00;22/01/2026 18:15:00;30min;1;1;C;180.900,00;181.025,00;192.370,00;No;25,00;125,00;81;25,00;125,00;0,00;0,00;0,00;2d8h;-457,00 +WINJ26;23/01/2026 12:00:00;23/01/2026 12:15:00;15min;1;1;C;181.270,00;181.685,00;192.370,00;No;83,00;415,00;82;83,00;415,00;0,00;0,00;0,00;18h15min;-374,00 +WINJ26;26/01/2026 11:45:00;26/01/2026 14:30:00;2h45min;1;1;C;184.000,00;183.700,00;192.370,00;No;-60,00;-300,00;83;-60,00;-300,00;0,00;0,00;0,00;2d23h;-434,00 +WINJ26;26/01/2026 16:30:00;26/01/2026 17:15:00;45min;1;1;C;183.430,00;183.685,00;192.370,00;Sim;51,00;255,00;84;51,00;255,00;0,00;0,00;0,00;4h45min;-383,00 +WINJ26;27/01/2026 15:30:00;27/01/2026 17:15:00;1h45min;1;1;C;187.300,00;187.755,00;192.370,00;No;91,00;455,00;85;91,00;455,00;0,00;0,00;0,00;23h;-292,00 +WINJ26;28/01/2026 09:15:00;28/01/2026 09:30:00;15min;1;1;C;187.655,00;187.510,00;192.370,00;No;-29,00;-145,00;86;-29,00;-145,00;0,00;0,00;0,00;17h45min;-321,00 +WINJ26;28/01/2026 14:45:00;28/01/2026 17:15:00;2h30min;1;1;C;188.440,00;189.090,00;192.370,00;No;130,00;650,00;87;130,00;650,00;0,00;0,00;0,00;5h30min;-191,00 +WINJ26;29/01/2026 14:30:00;29/01/2026 16:30:00;2h;1;1;C;188.500,00;188.410,00;192.370,00;No;-18,00;-90,00;88;-18,00;-90,00;0,00;0,00;0,00;23h45min;-209,00 +WINJ26;29/01/2026 17:15:00;29/01/2026 17:30:00;15min;1;1;C;188.525,00;188.370,00;192.370,00;No;-31,00;-155,00;89;-31,00;-155,00;0,00;0,00;0,00;2h45min;-240,00 +WINJ26;29/01/2026 18:15:00;30/01/2026 10:30:00;16h15min;1;1;C;187.970,00;187.965,00;192.370,00;Sim;-1,00;-5,00;90;-1,00;-5,00;0,00;0,00;0,00;1h;-241,00 +WINJ26;30/01/2026 11:30:00;30/01/2026 12:45:00;1h15min;1;1;C;187.625,00;188.475,00;192.370,00;Sim;170,00;850,00;91;170,00;850,00;0,00;0,00;0,00;17h15min;-71,00 +WINJ26;30/01/2026 16:15:00;02/02/2026 09:00:00;2d16h;1;1;C;186.390,00;184.655,00;192.370,00;Sim;-347,00;-1.735,00;92;-347,00;-1.735,00;0,00;0,00;0,00;4h45min;-418,00 +WINJ26;02/02/2026 11:45:00;02/02/2026 13:15:00;1h30min;1;1;C;186.640,00;186.715,00;192.370,00;No;15,00;75,00;93;15,00;75,00;0,00;0,00;0,00;2d19h;-403,00 +WINJ26;02/02/2026 17:15:00;02/02/2026 17:30:00;15min;1;1;C;186.735,00;187.045,00;192.370,00;No;62,00;310,00;94;62,00;310,00;0,00;0,00;0,00;5h30min;-341,00 +WINJ26;03/02/2026 16:15:00;03/02/2026 17:45:00;1h30min;1;1;C;189.965,00;190.410,00;192.370,00;No;89,00;445,00;95;89,00;445,00;0,00;0,00;0,00;23h;-252,00 +WINJ26;05/02/2026 09:45:00;05/02/2026 13:00:00;3h15min;1;1;V;187.265,00;186.105,00;192.370,00;Sim;-232,00;-1.160,00;96;-232,00;-1.160,00;0,00;0,00;0,00;1d17h;-484,00 +WINJ26;05/02/2026 13:15:00;05/02/2026 16:30:00;3h15min;1;1;V;187.715,00;186.990,00;192.370,00;Sim;-145,00;-725,00;97;-145,00;-725,00;0,00;0,00;0,00;3h30min;-629,00 +WINJ26;06/02/2026 09:15:00;06/02/2026 11:30:00;2h15min;1;1;C;187.460,00;186.785,00;192.370,00;Sim;-135,00;-675,00;98;-135,00;-675,00;0,00;0,00;0,00;20h;-764,00 +WINJ26;06/02/2026 15:00:00;06/02/2026 15:15:00;15min;1;1;V;186.620,00;186.790,00;192.370,00;No;34,00;170,00;99;34,00;170,00;0,00;0,00;0,00;5h45min;-730,00 +WINJ26;10/02/2026 09:30:00;10/02/2026 10:15:00;45min;1;1;C;189.915,00;190.000,00;192.370,00;No;17,00;85,00;100;17,00;85,00;0,00;0,00;0,00;3d18h;-713,00 +WINJ26;10/02/2026 11:15:00;10/02/2026 11:30:00;15min;1;1;C;189.890,00;189.975,00;192.370,00;Sim;17,00;85,00;101;17,00;85,00;0,00;0,00;0,00;1h45min;-696,00 +WINJ26;10/02/2026 16:45:00;10/02/2026 17:15:00;30min;1;1;C;189.895,00;190.545,00;192.370,00;No;130,00;650,00;102;130,00;650,00;0,00;0,00;0,00;5h30min;-566,00 +WINJ26;12/02/2026 10:30:00;12/02/2026 11:30:00;1h;1;1;C;193.410,00;193.715,00;192.370,00;No;61,00;305,00;103;61,00;305,00;0,00;0,00;0,00;1d17h;-505,00 +WINJ26;12/02/2026 17:00:00;13/02/2026 10:45:00;17h45min;1;1;C;192.050,00;189.255,00;192.370,00;Sim;-559,00;-2.795,00;104;-559,00;-2.795,00;0,00;0,00;0,00;6h30min;-1.064,00 +WINJ26;13/02/2026 14:30:00;13/02/2026 17:45:00;3h15min;1;1;V;189.840,00;189.380,00;192.370,00;Sim;-92,00;-460,00;105;-92,00;-460,00;0,00;0,00;0,00;21h30min;-1.156,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:15:00;45min;1;1;V;189.820,00;190.075,00;192.370,00;Sim;51,00;255,00;106;51,00;255,00;0,00;0,00;0,00;4d23h;-1.105,00 +WINJ26;18/02/2026 14:30:00;18/02/2026 14:45:00;15min;1;1;C;190.575,00;190.405,00;192.370,00;Sim;-34,00;-170,00;107;-34,00;-170,00;0,00;0,00;0,00;1h;-1.139,00 +WINJ26;18/02/2026 15:00:00;18/02/2026 15:15:00;15min;1;1;V;189.525,00;190.185,00;192.370,00;Sim;132,00;660,00;108;132,00;660,00;0,00;0,00;0,00;30min;-1.007,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 13:30:00;3h15min;1;1;V;192.240,00;189.830,00;192.370,00;No;-482,00;-2.410,00;109;-482,00;-2.410,00;0,00;0,00;0,00;19h15min;-1.489,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.370,00;No;42,00;210,00;110;42,00;210,00;0,00;0,00;0,00;1d1h;-1.447,00 +WINJ26;20/02/2026 14:45:00;20/02/2026 15:00:00;15min;1;1;C;191.865,00;192.435,00;192.370,00;No;114,00;570,00;111;114,00;570,00;0,00;0,00;0,00;3h15min;-1.333,00 +WINJ26;23/02/2026 10:15:00;23/02/2026 11:45:00;1h30min;1;1;C;193.015,00;194.030,00;192.370,00;No;203,00;1.015,00;112;203,00;1.015,00;0,00;0,00;0,00;2d19h;-1.130,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:15:00;15min;1;1;C;192.665,00;192.810,00;192.370,00;Sim;29,00;145,00;113;29,00;145,00;0,00;0,00;0,00;4h45min;-1.101,00 +WINJ26;23/02/2026 17:45:00;24/02/2026 09:15:00;15h30min;1;1;C;192.480,00;194.165,00;192.370,00;Sim;337,00;1.685,00;114;337,00;1.685,00;0,00;0,00;0,00;2h45min;-764,00 +WINJ26;25/02/2026 11:15:00;25/02/2026 14:30:00;3h15min;1;1;C;195.305,00;194.640,00;192.370,00;No;-133,00;-665,00;115;-133,00;-665,00;0,00;0,00;0,00;1d17h;-897,00 +WINJ26;25/02/2026 14:45:00;25/02/2026 15:00:00;15min;1;1;C;194.855,00;195.080,00;192.370,00;Sim;45,00;225,00;116;45,00;225,00;0,00;0,00;0,00;3h30min;-852,00 +WINJ26;25/02/2026 17:45:00;25/02/2026 18:00:00;15min;1;1;C;194.555,00;194.495,00;192.370,00;Sim;-12,00;-60,00;117;-12,00;-60,00;0,00;0,00;0,00;3h;-864,00 +WINJ26;26/02/2026 10:00:00;26/02/2026 10:15:00;15min;1;1;C;194.295,00;194.690,00;192.370,00;Sim;79,00;395,00;118;79,00;395,00;0,00;0,00;0,00;16h15min;-785,00 +WINJ26;26/02/2026 10:45:00;26/02/2026 13:30:00;2h45min;1;1;C;194.155,00;193.930,00;192.370,00;Sim;-45,00;-225,00;119;-45,00;-225,00;0,00;0,00;0,00;45min;-830,00 +WINJ26;26/02/2026 14:15:00;26/02/2026 15:45:00;1h30min;1;1;C;193.535,00;193.840,00;192.370,00;Sim;61,00;305,00;120;61,00;305,00;0,00;0,00;0,00;3h30min;-769,00 +WINJ26;27/02/2026 09:15:00;27/02/2026 09:30:00;15min;1;1;V;193.430,00;193.035,00;192.370,00;Sim;-79,00;-395,00;121;-79,00;-395,00;0,00;0,00;0,00;19h;-848,00 +WINJ26;27/02/2026 10:00:00;27/02/2026 12:45:00;2h45min;1;1;C;193.615,00;193.580,00;192.370,00;No;-7,00;-35,00;122;-7,00;-35,00;0,00;0,00;0,00;45min;-855,00 +WINJ26;27/02/2026 13:30:00;27/02/2026 13:45:00;15min;1;1;V;192.980,00;192.980,00;192.370,00;No;0;0;123;0;0;0,00;0,00;0,00;3h30min;-855,00 +WINJ26;02/03/2026 12:30:00;02/03/2026 15:45:00;3h15min;1;1;V;192.095,00;191.410,00;192.370,00;No;-137,00;-685,00;124;-137,00;-685,00;0,00;0,00;0,00;2d23h;-992,00 +WINJ26;02/03/2026 17:15:00;02/03/2026 17:30:00;15min;1;1;V;192.005,00;191.950,00;192.370,00;Sim;-11,00;-55,00;125;-11,00;-55,00;0,00;0,00;0,00;4h45min;-1.003,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv new file mode 100644 index 0000000..278ac7e --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv @@ -0,0 +1,67 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.360,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;02/09/2025 10:30:00;02/09/2025 11:00:00;30min;1;1;C;151.005,00;151.700,00;192.360,00;No;139,00;695,00;2;139,00;695,00;0,00;0,00;0,00;6d1h;699,00 +WINJ26;03/09/2025 12:00:00;04/09/2025 12:00:00;1d;1;1;C;150.950,00;151.100,00;192.360,00;Sim;30,00;150,00;3;30,00;150,00;0,00;0,00;0,00;1d1h;729,00 +WINJ26;22/09/2025 15:00:00;23/09/2025 13:30:00;22h30min;1;1;C;155.850,00;157.050,00;192.360,00;No;240,00;1.200,00;4;240,00;1.200,00;0,00;0,00;0,00;19d3h;969,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:30:00;1h30min;1;1;C;156.680,00;155.750,00;192.360,00;No;-186,00;-930,00;5;-186,00;-930,00;0,00;0,00;0,00;2d22h;783,00 +WINJ26;26/09/2025 10:30:00;29/09/2025 09:30:00;2d23h;1;1;C;155.500,00;156.700,00;192.360,00;Sim;240,00;1.200,00;6;240,00;1.200,00;0,00;0,00;0,00;21h30min;1.023,00 +WINJ26;30/09/2025 18:00:00;01/10/2025 09:30:00;15h30min;1;1;C;156.375,00;157.000,00;192.360,00;No;125,00;625,00;7;125,00;625,00;0,00;0,00;0,00;4d7h;1.148,00 +WINJ26;14/10/2025 12:30:00;14/10/2025 13:30:00;1h;1;1;V;151.180,00;151.190,00;192.360,00;No;2,00;10,00;8;2,00;10,00;0,00;0,00;0,00;13d18h;1.150,00 +WINJ26;15/10/2025 13:00:00;16/10/2025 09:30:00;20h30min;1;1;V;150.600,00;151.200,00;192.360,00;Sim;120,00;600,00;9;120,00;600,00;0,00;0,00;0,00;1d;1.270,00 +WINJ26;16/10/2025 13:30:00;17/10/2025 10:30:00;21h;1;1;V;150.800,00;150.875,00;192.360,00;No;15,00;75,00;10;15,00;75,00;0,00;0,00;0,00;1d;1.285,00 +WINJ26;17/10/2025 15:00:00;20/10/2025 16:30:00;3d1h;1;1;V;153.300,00;151.850,00;192.360,00;Sim;-290,00;-1.450,00;11;-290,00;-1.450,00;0,00;0,00;0,00;1d1h;995,00 +WINJ26;21/10/2025 11:30:00;21/10/2025 12:00:00;30min;1;1;C;153.000,00;153.100,00;192.360,00;Sim;20,00;100,00;12;20,00;100,00;0,00;0,00;0,00;3d20h;1.015,00 +WINJ26;21/10/2025 16:00:00;22/10/2025 09:00:00;17h;1;1;C;152.700,00;152.500,00;192.360,00;Sim;-40,00;-200,00;13;-40,00;-200,00;0,00;0,00;0,00;4h30min;975,00 +WINJ26;30/10/2025 11:30:00;30/10/2025 12:00:00;30min;1;1;C;157.335,00;157.460,00;192.360,00;No;25,00;125,00;14;25,00;125,00;0,00;0,00;0,00;8d19h;1.000,00 +WINJ26;04/11/2025 10:30:00;04/11/2025 11:00:00;30min;1;1;C;158.520,00;158.620,00;192.360,00;No;20,00;100,00;15;20,00;100,00;0,00;0,00;0,00;4d23h;1.020,00 +WINJ26;07/11/2025 12:30:00;07/11/2025 14:00:00;1h30min;1;1;C;161.500,00;161.250,00;192.360,00;No;-50,00;-250,00;16;-50,00;-250,00;0,00;0,00;0,00;3d2h;970,00 +WINJ26;12/11/2025 17:30:00;12/11/2025 18:00:00;30min;1;1;C;166.000,00;166.100,00;192.360,00;No;20,00;100,00;17;20,00;100,00;0,00;0,00;0,00;5d5h;990,00 +WINJ26;13/11/2025 18:00:00;14/11/2025 11:30:00;17h30min;1;1;C;165.525,00;165.600,00;192.360,00;Sim;15,00;75,00;18;15,00;75,00;0,00;0,00;0,00;1d;1.005,00 +WINJ26;17/11/2025 11:30:00;17/11/2025 14:00:00;2h30min;1;1;C;165.655,00;165.840,00;192.360,00;No;37,00;185,00;19;37,00;185,00;0,00;0,00;0,00;3d17h;1.042,00 +WINJ26;18/11/2025 10:30:00;18/11/2025 17:00:00;6h30min;1;1;C;164.740,00;164.900,00;192.360,00;Sim;32,00;160,00;20;32,00;160,00;0,00;0,00;0,00;23h;1.074,00 +WINJ26;19/11/2025 12:00:00;21/11/2025 14:00:00;2d2h;1;1;C;164.100,00;162.570,00;192.360,00;Sim;-306,00;-1.530,00;21;-306,00;-1.530,00;0,00;0,00;0,00;1d1h;768,00 +WINJ26;21/11/2025 15:00:00;24/11/2025 11:30:00;2d20h;1;1;C;162.250,00;163.600,00;192.360,00;Sim;270,00;1.350,00;22;270,00;1.350,00;0,00;0,00;0,00;2d3h;1.038,00 +WINJ26;25/11/2025 12:00:00;25/11/2025 12:30:00;30min;1;1;C;163.185,00;163.150,00;192.360,00;No;-7,00;-35,00;23;-7,00;-35,00;0,00;0,00;0,00;3d21h;1.031,00 +WINJ26;01/12/2025 12:00:00;02/12/2025 09:30:00;21h30min;1;1;C;166.560,00;166.840,00;192.360,00;No;56,00;280,00;24;56,00;280,00;0,00;0,00;0,00;6d;1.087,00 +WINJ26;08/12/2025 15:30:00;09/12/2025 13:30:00;22h;1;1;C;165.630,00;165.000,00;192.360,00;Sim;-126,00;-630,00;25;-126,00;-630,00;0,00;0,00;0,00;7d3h;961,00 +WINJ26;10/12/2025 09:00:00;10/12/2025 10:30:00;1h30min;1;1;V;164.850,00;165.750,00;192.360,00;Sim;180,00;900,00;26;180,00;900,00;0,00;0,00;0,00;1d17h;1.141,00 +WINJ26;10/12/2025 14:00:00;10/12/2025 17:00:00;3h;1;1;V;165.625,00;165.230,00;192.360,00;No;-79,00;-395,00;27;-79,00;-395,00;0,00;0,00;0,00;5h;1.062,00 +WINJ26;11/12/2025 10:00:00;11/12/2025 11:00:00;1h;1;1;V;165.500,00;165.615,00;192.360,00;Sim;23,00;115,00;28;23,00;115,00;0,00;0,00;0,00;20h;1.085,00 +WINJ26;18/12/2025 14:30:00;18/12/2025 17:00:00;2h30min;1;1;V;164.205,00;164.180,00;192.360,00;No;-5,00;-25,00;29;-5,00;-25,00;0,00;0,00;0,00;7d4h;1.080,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 16:00:00;1h;1;1;V;165.000,00;165.135,00;192.360,00;Sim;27,00;135,00;30;27,00;135,00;0,00;0,00;0,00;1d;1.107,00 +WINJ26;22/12/2025 09:30:00;22/12/2025 10:00:00;30min;1;1;V;164.740,00;164.980,00;192.360,00;No;48,00;240,00;31;48,00;240,00;0,00;0,00;0,00;2d18h;1.155,00 +WINJ26;26/12/2025 11:30:00;26/12/2025 12:30:00;1h;1;1;C;165.920,00;166.450,00;192.360,00;No;106,00;530,00;32;106,00;530,00;0,00;0,00;0,00;4d2h;1.261,00 +WINJ26;29/12/2025 17:00:00;29/12/2025 17:30:00;30min;1;1;C;166.175,00;166.330,00;192.360,00;No;31,00;155,00;33;31,00;155,00;0,00;0,00;0,00;3d5h;1.292,00 +WINJ26;02/01/2026 09:30:00;02/01/2026 10:00:00;30min;1;1;C;167.610,00;168.095,00;192.360,00;No;97,00;485,00;34;97,00;485,00;0,00;0,00;0,00;3d16h;1.389,00 +WINJ26;05/01/2026 09:30:00;05/01/2026 11:00:00;1h30min;1;1;C;166.655,00;166.500,00;192.360,00;Sim;-31,00;-155,00;35;-31,00;-155,00;0,00;0,00;0,00;3d;1.358,00 +WINJ26;08/01/2026 10:30:00;08/01/2026 11:30:00;1h;1;1;C;167.945,00;167.850,00;192.360,00;No;-19,00;-95,00;36;-19,00;-95,00;0,00;0,00;0,00;3d1h;1.339,00 +WINJ26;12/01/2026 09:30:00;12/01/2026 12:30:00;3h;1;1;C;168.765,00;168.635,00;192.360,00;No;-26,00;-130,00;37;-26,00;-130,00;0,00;0,00;0,00;3d23h;1.313,00 +WINJ26;12/01/2026 14:30:00;13/01/2026 11:30:00;21h;1;1;C;168.625,00;167.935,00;192.360,00;Sim;-138,00;-690,00;38;-138,00;-690,00;0,00;0,00;0,00;5h;1.175,00 +WINJ26;14/01/2026 09:30:00;14/01/2026 10:00:00;30min;1;1;C;167.920,00;168.200,00;192.360,00;Sim;56,00;280,00;39;56,00;280,00;0,00;0,00;0,00;1d19h;1.231,00 +WINJ26;19/01/2026 09:00:00;19/01/2026 13:30:00;4h30min;1;1;C;169.140,00;169.895,00;192.360,00;No;151,00;755,00;40;151,00;755,00;0,00;0,00;0,00;4d23h;1.382,00 +WINJ26;19/01/2026 17:30:00;20/01/2026 09:00:00;15h30min;1;1;C;169.755,00;169.110,00;192.360,00;No;-129,00;-645,00;41;-129,00;-645,00;0,00;0,00;0,00;8h30min;1.253,00 +WINJ26;20/01/2026 09:30:00;20/01/2026 10:00:00;30min;1;1;V;169.010,00;168.260,00;192.360,00;Sim;-150,00;-750,00;42;-150,00;-750,00;0,00;0,00;0,00;16h;1.103,00 +WINJ26;20/01/2026 11:30:00;20/01/2026 12:00:00;30min;1;1;C;169.330,00;170.520,00;192.360,00;Sim;238,00;1.190,00;43;238,00;1.190,00;0,00;0,00;0,00;2h;1.341,00 +WINJ26;29/01/2026 14:30:00;30/01/2026 11:30:00;21h;1;1;C;188.500,00;187.625,00;192.360,00;No;-175,00;-875,00;44;-175,00;-875,00;0,00;0,00;0,00;9d3h;1.166,00 +WINJ26;30/01/2026 12:30:00;02/02/2026 09:30:00;2d21h;1;1;C;187.650,00;186.550,00;192.360,00;Sim;-220,00;-1.100,00;45;-220,00;-1.100,00;0,00;0,00;0,00;22h;946,00 +WINJ26;02/02/2026 12:30:00;02/02/2026 13:30:00;1h;1;1;C;186.680,00;186.900,00;192.360,00;Sim;44,00;220,00;46;44,00;220,00;0,00;0,00;0,00;3d;990,00 +WINJ26;02/02/2026 17:00:00;02/02/2026 17:30:00;30min;1;1;C;186.445,00;187.045,00;192.360,00;Sim;120,00;600,00;47;120,00;600,00;0,00;0,00;0,00;4h30min;1.110,00 +WINJ26;05/02/2026 09:30:00;05/02/2026 10:30:00;1h;1;1;C;186.415,00;186.885,00;192.360,00;Sim;94,00;470,00;48;94,00;470,00;0,00;0,00;0,00;2d16h;1.204,00 +WINJ26;06/02/2026 11:30:00;06/02/2026 13:30:00;2h;1;1;C;186.785,00;186.770,00;192.360,00;No;-3,00;-15,00;49;-3,00;-15,00;0,00;0,00;0,00;1d2h;1.201,00 +WINJ26;06/02/2026 16:30:00;06/02/2026 17:30:00;1h;1;1;C;186.510,00;187.210,00;192.360,00;Sim;140,00;700,00;50;140,00;700,00;0,00;0,00;0,00;5h;1.341,00 +WINJ26;10/02/2026 17:00:00;10/02/2026 17:30:00;30min;1;1;C;189.975,00;190.565,00;192.360,00;No;118,00;590,00;51;118,00;590,00;0,00;0,00;0,00;4d;1.459,00 +WINJ26;12/02/2026 10:30:00;12/02/2026 11:30:00;1h;1;1;C;193.410,00;193.715,00;192.360,00;No;61,00;305,00;52;61,00;305,00;0,00;0,00;0,00;1d17h;1.520,00 +WINJ26;13/02/2026 15:00:00;13/02/2026 16:00:00;1h;1;1;C;190.025,00;190.145,00;192.360,00;Sim;24,00;120,00;53;24,00;120,00;0,00;0,00;0,00;1d4h;1.544,00 +WINJ26;18/02/2026 18:00:00;19/02/2026 09:00:00;15h;1;1;C;189.910,00;190.465,00;192.360,00;Sim;111,00;555,00;54;111,00;555,00;0,00;0,00;0,00;5d3h;1.655,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 12:00:00;30min;1;1;C;191.115,00;191.405,00;192.360,00;No;58,00;290,00;55;58,00;290,00;0,00;0,00;0,00;1d17h;1.713,00 +WINJ26;23/02/2026 15:00:00;24/02/2026 09:30:00;18h30min;1;1;C;192.665,00;193.240,00;192.360,00;No;115,00;575,00;56;115,00;575,00;0,00;0,00;0,00;3d3h;1.828,00 +WINJ26;25/02/2026 14:00:00;25/02/2026 15:00:00;1h;1;1;C;194.640,00;195.080,00;192.360,00;No;88,00;440,00;57;88,00;440,00;0,00;0,00;0,00;1d23h;1.916,00 +WINJ26;25/02/2026 18:00:00;26/02/2026 15:00:00;21h;1;1;C;194.495,00;193.295,00;192.360,00;Sim;-240,00;-1.200,00;58;-240,00;-1.200,00;0,00;0,00;0,00;4h;1.676,00 +WINJ26;26/02/2026 16:00:00;26/02/2026 16:30:00;30min;1;1;C;193.800,00;194.010,00;192.360,00;Sim;42,00;210,00;59;42,00;210,00;0,00;0,00;0,00;22h;1.718,00 +WINJ26;27/02/2026 13:00:00;02/03/2026 10:00:00;2d21h;1;1;C;193.480,00;189.875,00;192.360,00;Sim;-721,00;-3.605,00;60;-721,00;-3.605,00;0,00;0,00;0,00;21h;997,00 +WINJ26;02/03/2026 17:30:00; - ; - ;0;1;V;192.375,00;192.005,00;192.375,00;Sim;-74,00;-370,00;61;-74,00;-370,00;0,00;0,00;0,00;3d4h;923,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv new file mode 100644 index 0000000..42b6fee --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv @@ -0,0 +1,49 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.410,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;04/09/2025 09:00:00;04/09/2025 12:00:00;3h;1;1;C;150.705,00;151.100,00;192.410,00;No;79,00;395,00;2;79,00;395,00;0,00;0,00;0,00;8d;639,00 +WINJ26;22/09/2025 15:00:00;23/09/2025 13:00:00;22h;1;1;C;155.850,00;157.050,00;192.410,00;No;240,00;1.200,00;3;240,00;1.200,00;0,00;0,00;0,00;18d6h;879,00 +WINJ26;25/09/2025 13:00:00;25/09/2025 14:00:00;1h;1;1;C;156.680,00;155.750,00;192.410,00;No;-186,00;-930,00;4;-186,00;-930,00;0,00;0,00;0,00;2d22h;693,00 +WINJ26;29/09/2025 10:00:00;29/09/2025 11:00:00;1h;1;1;C;157.250,00;156.600,00;192.410,00;No;-130,00;-650,00;5;-130,00;-650,00;0,00;0,00;0,00;3d21h;563,00 +WINJ26;30/09/2025 18:00:00;01/10/2025 10:00:00;16h;1;1;C;156.375,00;156.750,00;192.410,00;Sim;75,00;375,00;6;75,00;375,00;0,00;0,00;0,00;1d8h;638,00 +WINJ26;13/10/2025 15:00:00;15/10/2025 11:00:00;1d20h;1;1;C;151.370,00;151.200,00;192.410,00;Sim;-34,00;-170,00;7;-34,00;-170,00;0,00;0,00;0,00;12d21h;604,00 +WINJ26;16/10/2025 12:00:00;16/10/2025 13:00:00;1h;1;1;C;151.645,00;151.250,00;192.410,00;No;-79,00;-395,00;8;-79,00;-395,00;0,00;0,00;0,00;2d21h;525,00 +WINJ26;17/10/2025 11:00:00;17/10/2025 12:00:00;1h;1;1;C;151.365,00;151.925,00;192.410,00;Sim;112,00;560,00;9;112,00;560,00;0,00;0,00;0,00;23h;637,00 +WINJ26;17/10/2025 15:00:00;21/10/2025 10:00:00;3d19h;1;1;V;152.700,00;151.850,00;192.410,00;No;-170,00;-850,00;10;-170,00;-850,00;0,00;0,00;0,00;4h;467,00 +WINJ26;21/10/2025 13:00:00;21/10/2025 14:00:00;1h;1;1;V;152.950,00;152.725,00;192.410,00;Sim;-45,00;-225,00;11;-45,00;-225,00;0,00;0,00;0,00;3d22h;422,00 +WINJ26;22/10/2025 11:00:00;24/10/2025 13:00:00;2d2h;1;1;V;154.830,00;153.000,00;192.410,00;Sim;-366,00;-1.830,00;12;-366,00;-1.830,00;0,00;0,00;0,00;22h;56,00 +WINJ26;30/10/2025 11:00:00;30/10/2025 12:00:00;1h;1;1;C;157.335,00;157.460,00;192.410,00;No;25,00;125,00;13;25,00;125,00;0,00;0,00;0,00;8d;81,00 +WINJ26;04/11/2025 11:00:00;04/11/2025 12:00:00;1h;1;1;C;158.620,00;159.240,00;192.410,00;No;124,00;620,00;14;124,00;620,00;0,00;0,00;0,00;5d;205,00 +WINJ26;07/11/2025 14:00:00;07/11/2025 16:00:00;2h;1;1;C;161.250,00;161.875,00;192.410,00;No;125,00;625,00;15;125,00;625,00;0,00;0,00;0,00;3d3h;330,00 +WINJ26;13/11/2025 18:00:00;14/11/2025 12:00:00;18h;1;1;C;165.525,00;166.105,00;192.410,00;No;116,00;580,00;16;116,00;580,00;0,00;0,00;0,00;6d4h;446,00 +WINJ26;17/11/2025 12:00:00;17/11/2025 14:00:00;2h;1;1;C;165.855,00;165.840,00;192.410,00;No;-3,00;-15,00;17;-3,00;-15,00;0,00;0,00;0,00;3d18h;443,00 +WINJ26;18/11/2025 16:00:00;21/11/2025 13:00:00;2d21h;1;1;C;165.100,00;161.990,00;192.410,00;Sim;-622,00;-3.110,00;18;-622,00;-3.110,00;0,00;0,00;0,00;1d4h;-179,00 +WINJ26;24/11/2025 12:00:00;25/11/2025 09:00:00;21h;1;1;C;163.240,00;163.300,00;192.410,00;Sim;12,00;60,00;19;12,00;60,00;0,00;0,00;0,00;5d20h;-167,00 +WINJ26;25/11/2025 13:00:00;25/11/2025 16:00:00;3h;1;1;C;162.890,00;163.320,00;192.410,00;Sim;86,00;430,00;20;86,00;430,00;0,00;0,00;0,00;1d1h;-81,00 +WINJ26;01/12/2025 12:00:00;02/12/2025 10:00:00;22h;1;1;C;166.560,00;166.390,00;192.410,00;No;-34,00;-170,00;21;-34,00;-170,00;0,00;0,00;0,00;5d23h;-115,00 +WINJ26;08/12/2025 15:00:00;10/12/2025 10:00:00;1d19h;1;1;C;165.630,00;165.030,00;192.410,00;Sim;-120,00;-600,00;22;-120,00;-600,00;0,00;0,00;0,00;7d3h;-235,00 +WINJ26;11/12/2025 11:00:00;11/12/2025 12:00:00;1h;1;1;C;165.500,00;166.215,00;192.410,00;Sim;143,00;715,00;23;143,00;715,00;0,00;0,00;0,00;2d20h;-92,00 +WINJ26;18/12/2025 15:00:00;18/12/2025 17:00:00;2h;1;1;V;164.205,00;164.735,00;192.410,00;Sim;106,00;530,00;24;106,00;530,00;0,00;0,00;0,00;7d4h;14,00 +WINJ26;19/12/2025 16:00:00;19/12/2025 18:00:00;2h;1;1;V;164.745,00;165.000,00;192.410,00;Sim;51,00;255,00;25;51,00;255,00;0,00;0,00;0,00;1d1h;65,00 +WINJ26;22/12/2025 10:00:00;22/12/2025 11:00:00;1h;1;1;V;164.250,00;164.740,00;192.410,00;No;98,00;490,00;26;98,00;490,00;0,00;0,00;0,00;2d18h;163,00 +WINJ26;26/12/2025 12:00:00;26/12/2025 13:00:00;1h;1;1;C;166.005,00;166.420,00;192.410,00;No;83,00;415,00;27;83,00;415,00;0,00;0,00;0,00;4d2h;246,00 +WINJ26;29/12/2025 15:00:00;30/12/2025 09:00:00;18h;1;1;C;166.185,00;166.530,00;192.410,00;No;69,00;345,00;28;69,00;345,00;0,00;0,00;0,00;3d3h;315,00 +WINJ26;05/01/2026 10:00:00;05/01/2026 13:00:00;3h;1;1;C;166.535,00;167.270,00;192.410,00;No;147,00;735,00;29;147,00;735,00;0,00;0,00;0,00;6d19h;462,00 +WINJ26;08/01/2026 12:00:00;08/01/2026 13:00:00;1h;1;1;C;167.765,00;168.000,00;192.410,00;No;47,00;235,00;30;47,00;235,00;0,00;0,00;0,00;3d2h;509,00 +WINJ26;12/01/2026 12:00:00;12/01/2026 13:00:00;1h;1;1;C;168.425,00;168.755,00;192.410,00;No;66,00;330,00;31;66,00;330,00;0,00;0,00;0,00;4d;575,00 +WINJ26;14/01/2026 10:00:00;14/01/2026 11:00:00;1h;1;1;C;168.200,00;168.220,00;192.410,00;Sim;4,00;20,00;32;4,00;20,00;0,00;0,00;0,00;1d22h;579,00 +WINJ26;19/01/2026 09:00:00;20/01/2026 09:00:00;1d;1;1;C;169.140,00;169.110,00;192.410,00;No;-6,00;-30,00;33;-6,00;-30,00;0,00;0,00;0,00;4d23h;573,00 +WINJ26;20/01/2026 12:00:00;20/01/2026 13:00:00;1h;1;1;C;170.520,00;171.065,00;192.410,00;No;109,00;545,00;34;109,00;545,00;0,00;0,00;0,00;1d3h;682,00 +WINJ26;29/01/2026 15:00:00;30/01/2026 18:00:00;1d3h;1;1;C;187.860,00;186.010,00;192.410,00;No;-370,00;-1.850,00;35;-370,00;-1.850,00;0,00;0,00;0,00;9d3h;312,00 +WINJ26;02/02/2026 11:00:00;02/02/2026 14:00:00;3h;1;1;C;187.505,00;187.145,00;192.410,00;Sim;-72,00;-360,00;36;-72,00;-360,00;0,00;0,00;0,00;3d20h;240,00 +WINJ26;02/02/2026 18:00:00;03/02/2026 09:00:00;15h;1;1;C;187.580,00;188.195,00;192.410,00;No;123,00;615,00;37;123,00;615,00;0,00;0,00;0,00;7h;363,00 +WINJ26;05/02/2026 11:00:00;05/02/2026 12:00:00;1h;1;1;C;186.980,00;187.535,00;192.410,00;Sim;111,00;555,00;38;111,00;555,00;0,00;0,00;0,00;2d17h;474,00 +WINJ26;06/02/2026 14:00:00;06/02/2026 18:00:00;4h;1;1;C;187.115,00;187.265,00;192.410,00;No;30,00;150,00;39;30,00;150,00;0,00;0,00;0,00;1d3h;504,00 +WINJ26;13/02/2026 16:00:00;19/02/2026 10:00:00;5d18h;1;1;C;190.145,00;190.580,00;192.410,00;No;87,00;435,00;40;87,00;435,00;0,00;0,00;0,00;7d2h;591,00 +WINJ26;20/02/2026 12:00:00;20/02/2026 13:00:00;1h;1;1;C;191.405,00;192.250,00;192.410,00;No;169,00;845,00;41;169,00;845,00;0,00;0,00;0,00;6d20h;760,00 +WINJ26;26/02/2026 16:00:00;26/02/2026 17:00:00;1h;1;1;C;193.800,00;194.145,00;192.410,00;No;69,00;345,00;42;69,00;345,00;0,00;0,00;0,00;6d4h;829,00 +WINJ26;02/03/2026 15:00:00;02/03/2026 17:00:00;2h;1;1;C;192.040,00;192.895,00;192.410,00;Sim;171,00;855,00;43;171,00;855,00;0,00;0,00;0,00;3d23h;1.000,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv new file mode 100644 index 0000000..8f42519 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv @@ -0,0 +1,299 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:48:00;19/12/2025 15:50:00;2min;1;1;C;165.090,00;165.130,00;192.345,00;No;8,00;40,00;1;8,00;40,00;0,00;0,00;0,00; - ;8,00 +WINJ26;19/12/2025 16:28:00;19/12/2025 16:38:00;10min;1;1;C;165.050,00;165.080,00;192.345,00;Sim;6,00;30,00;2;6,00;30,00;0,00;0,00;0,00;40min;14,00 +WINJ26;19/12/2025 16:40:00;19/12/2025 16:42:00;2min;1;1;V;165.070,00;165.020,00;192.345,00;No;-10,00;-50,00;3;-10,00;-50,00;0,00;0,00;0,00;12min;4,00 +WINJ26;22/12/2025 09:00:00;22/12/2025 09:02:00;2min;1;1;C;165.430,00;165.585,00;192.345,00;No;31,00;155,00;4;31,00;155,00;0,00;0,00;0,00;2d16h;35,00 +WINJ26;22/12/2025 10:00:00;22/12/2025 10:06:00;6min;1;1;C;164.740,00;164.650,00;192.345,00;Sim;-18,00;-90,00;5;-18,00;-90,00;0,00;0,00;0,00;1h;17,00 +WINJ26;22/12/2025 10:14:00;22/12/2025 10:16:00;2min;1;1;V;164.425,00;164.280,00;192.345,00;No;-29,00;-145,00;6;-29,00;-145,00;0,00;0,00;0,00;14min;-12,00 +WINJ26;22/12/2025 10:32:00;22/12/2025 10:34:00;2min;1;1;V;164.280,00;164.260,00;192.345,00;No;-4,00;-20,00;7;-4,00;-20,00;0,00;0,00;0,00;18min;-16,00 +WINJ26;23/12/2025 10:02:00;23/12/2025 10:04:00;2min;1;1;V;165.100,00;164.950,00;192.345,00;Sim;-30,00;-150,00;8;-30,00;-150,00;0,00;0,00;0,00;23h30min;-46,00 +WINJ26;23/12/2025 10:14:00;23/12/2025 10:16:00;2min;1;1;C;165.480,00;165.375,00;192.345,00;No;-21,00;-105,00;9;-21,00;-105,00;0,00;0,00;0,00;12min;-67,00 +WINJ26;23/12/2025 10:18:00;23/12/2025 10:20:00;2min;1;1;C;165.670,00;165.715,00;192.345,00;No;9,00;45,00;10;9,00;45,00;0,00;0,00;0,00;4min;-58,00 +WINJ26;23/12/2025 10:32:00;23/12/2025 10:36:00;4min;1;1;V;165.255,00;165.365,00;192.345,00;Sim;22,00;110,00;11;22,00;110,00;0,00;0,00;0,00;14min;-36,00 +WINJ26;23/12/2025 11:34:00;23/12/2025 11:38:00;4min;1;1;C;165.550,00;165.650,00;192.345,00;Sim;20,00;100,00;12;20,00;100,00;0,00;0,00;0,00;1h2min;-16,00 +WINJ26;23/12/2025 12:32:00;23/12/2025 12:34:00;2min;1;1;C;166.615,00;166.640,00;192.345,00;No;5,00;25,00;13;5,00;25,00;0,00;0,00;0,00;58min;-11,00 +WINJ26;23/12/2025 13:26:00;23/12/2025 13:28:00;2min;1;1;V;166.360,00;166.380,00;192.345,00;Sim;4,00;20,00;14;4,00;20,00;0,00;0,00;0,00;54min;-7,00 +WINJ26;23/12/2025 13:56:00;23/12/2025 14:06:00;10min;1;1;V;166.400,00;166.490,00;192.345,00;Sim;18,00;90,00;15;18,00;90,00;0,00;0,00;0,00;30min;11,00 +WINJ26;23/12/2025 14:16:00;23/12/2025 14:18:00;2min;1;1;C;166.570,00;166.580,00;192.345,00;Sim;2,00;10,00;16;2,00;10,00;0,00;0,00;0,00;20min;13,00 +WINJ26;23/12/2025 16:08:00;23/12/2025 16:32:00;24min;1;1;V;166.440,00;166.435,00;192.345,00;No;-1,00;-5,00;17;-1,00;-5,00;0,00;0,00;0,00;1h52min;12,00 +WINJ26;26/12/2025 12:04:00;26/12/2025 12:06:00;2min;1;1;C;166.250,00;166.285,00;192.345,00;Sim;7,00;35,00;18;7,00;35,00;0,00;0,00;0,00;2d19h;19,00 +WINJ26;26/12/2025 12:46:00;26/12/2025 12:48:00;2min;1;1;V;166.355,00;166.335,00;192.345,00;No;-4,00;-20,00;19;-4,00;-20,00;0,00;0,00;0,00;42min;15,00 +WINJ26;26/12/2025 13:12:00;26/12/2025 13:36:00;24min;1;1;C;166.435,00;166.130,00;192.345,00;No;-61,00;-305,00;20;-61,00;-305,00;0,00;0,00;0,00;26min;-46,00 +WINJ26;26/12/2025 13:44:00;26/12/2025 13:46:00;2min;1;1;V;166.055,00;166.050,00;192.345,00;No;-1,00;-5,00;21;-1,00;-5,00;0,00;0,00;0,00;32min;-47,00 +WINJ26;26/12/2025 13:54:00;26/12/2025 13:56:00;2min;1;1;V;165.990,00;165.985,00;192.345,00;No;-1,00;-5,00;22;-1,00;-5,00;0,00;0,00;0,00;10min;-48,00 +WINJ26;26/12/2025 13:58:00;26/12/2025 14:02:00;4min;1;1;C;166.085,00;166.145,00;192.345,00;Sim;12,00;60,00;23;12,00;60,00;0,00;0,00;0,00;4min;-36,00 +WINJ26;26/12/2025 18:20:00;26/12/2025 18:22:00;2min;1;1;C;167.350,00;167.290,00;192.345,00;No;-12,00;-60,00;24;-12,00;-60,00;0,00;0,00;0,00;4h22min;-48,00 +WINJ26;29/12/2025 11:20:00;29/12/2025 11:22:00;2min;1;1;V;166.370,00;166.340,00;192.345,00;Sim;-6,00;-30,00;25;-6,00;-30,00;0,00;0,00;0,00;2d17h;-54,00 +WINJ26;29/12/2025 11:24:00;29/12/2025 11:30:00;6min;1;1;C;166.425,00;166.510,00;192.345,00;Sim;17,00;85,00;26;17,00;85,00;0,00;0,00;0,00;4min;-37,00 +WINJ26;30/12/2025 11:24:00;30/12/2025 11:40:00;16min;1;1;C;167.500,00;167.345,00;192.345,00;No;-31,00;-155,00;27;-31,00;-155,00;0,00;0,00;0,00;1d;-68,00 +WINJ26;30/12/2025 14:48:00;30/12/2025 14:50:00;2min;1;1;C;167.840,00;167.855,00;192.345,00;No;3,00;15,00;28;3,00;15,00;0,00;0,00;0,00;3h24min;-65,00 +WINJ26;30/12/2025 15:34:00;30/12/2025 15:36:00;2min;1;1;V;167.725,00;167.755,00;192.345,00;Sim;6,00;30,00;29;6,00;30,00;0,00;0,00;0,00;46min;-59,00 +WINJ26;30/12/2025 16:28:00;30/12/2025 16:30:00;2min;1;1;V;167.650,00;167.670,00;192.345,00;No;4,00;20,00;30;4,00;20,00;0,00;0,00;0,00;54min;-55,00 +WINJ26;02/01/2026 12:18:00;02/01/2026 12:20:00;2min;1;1;V;166.535,00;166.530,00;192.345,00;No;-1,00;-5,00;31;-1,00;-5,00;0,00;0,00;0,00;2d19h;-56,00 +WINJ26;02/01/2026 12:22:00;02/01/2026 12:24:00;2min;1;1;V;166.225,00;166.370,00;192.345,00;No;29,00;145,00;32;29,00;145,00;0,00;0,00;0,00;4min;-27,00 +WINJ26;02/01/2026 13:52:00;02/01/2026 13:54:00;2min;1;1;V;166.065,00;166.045,00;192.345,00;No;-4,00;-20,00;33;-4,00;-20,00;0,00;0,00;0,00;1h30min;-31,00 +WINJ26;05/01/2026 11:32:00;05/01/2026 11:34:00;2min;1;1;V;166.525,00;166.630,00;192.345,00;Sim;21,00;105,00;34;21,00;105,00;0,00;0,00;0,00;2d21h;-10,00 +WINJ26;05/01/2026 11:48:00;05/01/2026 11:50:00;2min;1;1;V;166.170,00;166.300,00;192.345,00;No;26,00;130,00;35;26,00;130,00;0,00;0,00;0,00;16min;16,00 +WINJ26;05/01/2026 12:50:00;05/01/2026 12:52:00;2min;1;1;C;167.050,00;167.080,00;192.345,00;Sim;6,00;30,00;36;6,00;30,00;0,00;0,00;0,00;1h2min;22,00 +WINJ26;05/01/2026 13:14:00;05/01/2026 13:18:00;4min;1;1;C;167.095,00;167.140,00;192.345,00;No;9,00;45,00;37;9,00;45,00;0,00;0,00;0,00;24min;31,00 +WINJ26;05/01/2026 13:36:00;05/01/2026 13:38:00;2min;1;1;C;167.225,00;167.245,00;192.345,00;No;4,00;20,00;38;4,00;20,00;0,00;0,00;0,00;22min;35,00 +WINJ26;05/01/2026 17:26:00;05/01/2026 17:30:00;4min;1;1;C;167.540,00;167.580,00;192.345,00;No;8,00;40,00;39;8,00;40,00;0,00;0,00;0,00;3h50min;43,00 +WINJ26;06/01/2026 10:02:00;06/01/2026 10:24:00;22min;1;1;V;169.410,00;168.670,00;192.345,00;Sim;-148,00;-740,00;40;-148,00;-740,00;0,00;0,00;0,00;16h36min;-105,00 +WINJ26;06/01/2026 10:32:00;06/01/2026 10:34:00;2min;1;1;C;169.550,00;169.515,00;192.345,00;No;-7,00;-35,00;41;-7,00;-35,00;0,00;0,00;0,00;30min;-112,00 +WINJ26;06/01/2026 11:00:00;06/01/2026 11:02:00;2min;1;1;V;169.345,00;169.355,00;192.345,00;Sim;2,00;10,00;42;2,00;10,00;0,00;0,00;0,00;28min;-110,00 +WINJ26;06/01/2026 11:32:00;06/01/2026 11:34:00;2min;1;1;V;169.105,00;169.105,00;192.345,00;No;0;0;43;0;0;0,00;0,00;0,00;32min;-110,00 +WINJ26;06/01/2026 13:30:00;06/01/2026 13:36:00;6min;1;1;C;169.405,00;169.425,00;192.345,00;Sim;4,00;20,00;44;4,00;20,00;0,00;0,00;0,00;1h58min;-106,00 +WINJ26;06/01/2026 13:48:00;06/01/2026 13:50:00;2min;1;1;C;169.540,00;169.450,00;192.345,00;No;-18,00;-90,00;45;-18,00;-90,00;0,00;0,00;0,00;18min;-124,00 +WINJ26;06/01/2026 14:06:00;06/01/2026 14:08:00;2min;1;1;C;169.550,00;169.540,00;192.345,00;No;-2,00;-10,00;46;-2,00;-10,00;0,00;0,00;0,00;18min;-126,00 +WINJ26;06/01/2026 14:52:00;06/01/2026 14:54:00;2min;1;1;C;169.545,00;169.550,00;192.345,00;Sim;1,00;5,00;47;1,00;5,00;0,00;0,00;0,00;46min;-125,00 +WINJ26;06/01/2026 15:00:00;06/01/2026 15:02:00;2min;1;1;V;169.490,00;169.405,00;192.345,00;Sim;-17,00;-85,00;48;-17,00;-85,00;0,00;0,00;0,00;8min;-142,00 +WINJ26;06/01/2026 16:54:00;06/01/2026 16:56:00;2min;1;1;V;169.095,00;169.115,00;192.345,00;No;4,00;20,00;49;4,00;20,00;0,00;0,00;0,00;1h54min;-138,00 +WINJ26;07/01/2026 09:22:00;07/01/2026 09:32:00;10min;1;1;C;169.280,00;169.105,00;192.345,00;Sim;-35,00;-175,00;50;-35,00;-175,00;0,00;0,00;0,00;16h28min;-173,00 +WINJ26;07/01/2026 09:36:00;07/01/2026 09:38:00;2min;1;1;V;168.975,00;168.975,00;192.345,00;No;0;0;51;0;0;0,00;0,00;0,00;14min;-173,00 +WINJ26;07/01/2026 09:44:00;07/01/2026 09:50:00;6min;1;1;C;169.125,00;169.150,00;192.345,00;Sim;5,00;25,00;52;5,00;25,00;0,00;0,00;0,00;8min;-168,00 +WINJ26;07/01/2026 10:36:00;07/01/2026 10:38:00;2min;1;1;C;168.605,00;168.765,00;192.345,00;Sim;32,00;160,00;53;32,00;160,00;0,00;0,00;0,00;52min;-136,00 +WINJ26;07/01/2026 11:22:00;07/01/2026 11:44:00;22min;1;1;C;168.120,00;167.665,00;192.345,00;Sim;-91,00;-455,00;54;-91,00;-455,00;0,00;0,00;0,00;46min;-227,00 +WINJ26;07/01/2026 12:26:00;07/01/2026 12:34:00;8min;1;1;C;167.450,00;167.575,00;192.345,00;Sim;25,00;125,00;55;25,00;125,00;0,00;0,00;0,00;1h4min;-202,00 +WINJ26;07/01/2026 12:44:00;07/01/2026 12:46:00;2min;1;1;V;167.570,00;167.515,00;192.345,00;No;-11,00;-55,00;56;-11,00;-55,00;0,00;0,00;0,00;18min;-213,00 +WINJ26;08/01/2026 09:02:00;08/01/2026 09:04:00;2min;1;1;V;167.105,00;167.345,00;192.345,00;No;48,00;240,00;57;48,00;240,00;0,00;0,00;0,00;20h18min;-165,00 +WINJ26;08/01/2026 10:48:00;08/01/2026 10:50:00;2min;1;1;V;167.665,00;167.795,00;192.345,00;Sim;26,00;130,00;58;26,00;130,00;0,00;0,00;0,00;1h46min;-139,00 +WINJ26;08/01/2026 13:50:00;08/01/2026 14:12:00;22min;1;1;V;168.005,00;168.100,00;192.345,00;Sim;19,00;95,00;59;19,00;95,00;0,00;0,00;0,00;3h2min;-120,00 +WINJ26;08/01/2026 14:42:00;08/01/2026 14:44:00;2min;1;1;V;167.935,00;167.900,00;192.345,00;No;-7,00;-35,00;60;-7,00;-35,00;0,00;0,00;0,00;52min;-127,00 +WINJ26;08/01/2026 14:48:00;08/01/2026 14:56:00;8min;1;1;V;167.870,00;167.850,00;192.345,00;No;-4,00;-20,00;61;-4,00;-20,00;0,00;0,00;0,00;6min;-131,00 +WINJ26;08/01/2026 15:26:00;08/01/2026 15:28:00;2min;1;1;C;167.855,00;167.900,00;192.345,00;No;9,00;45,00;62;9,00;45,00;0,00;0,00;0,00;38min;-122,00 +WINJ26;08/01/2026 16:24:00;08/01/2026 16:26:00;2min;1;1;C;168.110,00;168.080,00;192.345,00;No;-6,00;-30,00;63;-6,00;-30,00;0,00;0,00;0,00;58min;-128,00 +WINJ26;08/01/2026 17:46:00;08/01/2026 17:48:00;2min;1;1;C;168.155,00;168.195,00;192.345,00;No;8,00;40,00;64;8,00;40,00;0,00;0,00;0,00;1h22min;-120,00 +WINJ26;08/01/2026 18:12:00;08/01/2026 18:14:00;2min;1;1;C;168.245,00;168.250,00;192.345,00;No;1,00;5,00;65;1,00;5,00;0,00;0,00;0,00;26min;-119,00 +WINJ26;09/01/2026 09:52:00;09/01/2026 09:54:00;2min;1;1;C;168.010,00;168.025,00;192.345,00;Sim;3,00;15,00;66;3,00;15,00;0,00;0,00;0,00;15h40min;-116,00 +WINJ26;09/01/2026 10:32:00;09/01/2026 10:34:00;2min;1;1;C;168.715,00;168.785,00;192.345,00;No;14,00;70,00;67;14,00;70,00;0,00;0,00;0,00;40min;-102,00 +WINJ26;09/01/2026 11:20:00;09/01/2026 11:22:00;2min;1;1;V;168.920,00;168.890,00;192.345,00;Sim;-6,00;-30,00;68;-6,00;-30,00;0,00;0,00;0,00;48min;-108,00 +WINJ26;09/01/2026 11:24:00;09/01/2026 11:26:00;2min;1;1;V;168.770,00;168.775,00;192.345,00;No;1,00;5,00;69;1,00;5,00;0,00;0,00;0,00;4min;-107,00 +WINJ26;09/01/2026 16:42:00;09/01/2026 16:46:00;4min;1;1;V;169.030,00;169.050,00;192.345,00;Sim;4,00;20,00;70;4,00;20,00;0,00;0,00;0,00;5h18min;-103,00 +WINJ26;09/01/2026 16:50:00;09/01/2026 16:52:00;2min;1;1;C;169.075,00;169.085,00;192.345,00;No;2,00;10,00;71;2,00;10,00;0,00;0,00;0,00;8min;-101,00 +WINJ26;12/01/2026 10:00:00;12/01/2026 10:02:00;2min;1;1;V;168.255,00;168.180,00;192.345,00;No;-15,00;-75,00;72;-15,00;-75,00;0,00;0,00;0,00;2d17h;-116,00 +WINJ26;12/01/2026 10:16:00;12/01/2026 10:18:00;2min;1;1;V;168.235,00;168.045,00;192.345,00;No;-38,00;-190,00;73;-38,00;-190,00;0,00;0,00;0,00;16min;-154,00 +WINJ26;12/01/2026 10:32:00;12/01/2026 10:38:00;6min;1;1;C;168.305,00;168.335,00;192.345,00;Sim;6,00;30,00;74;6,00;30,00;0,00;0,00;0,00;16min;-148,00 +WINJ26;12/01/2026 10:40:00;12/01/2026 10:42:00;2min;1;1;V;168.180,00;168.275,00;192.345,00;Sim;19,00;95,00;75;19,00;95,00;0,00;0,00;0,00;8min;-129,00 +WINJ26;12/01/2026 11:24:00;12/01/2026 11:26:00;2min;1;1;C;167.950,00;168.025,00;192.345,00;Sim;15,00;75,00;76;15,00;75,00;0,00;0,00;0,00;44min;-114,00 +WINJ26;12/01/2026 12:42:00;12/01/2026 12:44:00;2min;1;1;C;168.825,00;168.820,00;192.345,00;No;-1,00;-5,00;77;-1,00;-5,00;0,00;0,00;0,00;1h18min;-115,00 +WINJ26;12/01/2026 13:02:00;12/01/2026 13:30:00;28min;1;1;C;168.690,00;168.655,00;192.345,00;Sim;-7,00;-35,00;78;-7,00;-35,00;0,00;0,00;0,00;20min;-122,00 +WINJ26;12/01/2026 14:48:00;12/01/2026 14:54:00;6min;1;1;C;168.660,00;168.660,00;192.345,00;Sim;0;0;79;0;0;0,00;0,00;0,00;1h46min;-122,00 +WINJ26;12/01/2026 15:24:00;12/01/2026 15:26:00;2min;1;1;V;168.675,00;168.690,00;192.345,00;Sim;3,00;15,00;80;3,00;15,00;0,00;0,00;0,00;36min;-119,00 +WINJ26;12/01/2026 17:54:00;12/01/2026 17:56:00;2min;1;1;C;168.520,00;168.460,00;192.345,00;Sim;-12,00;-60,00;81;-12,00;-60,00;0,00;0,00;0,00;2h30min;-131,00 +WINJ26;13/01/2026 09:12:00;13/01/2026 09:16:00;4min;1;1;V;168.290,00;168.370,00;192.345,00;No;16,00;80,00;82;16,00;80,00;0,00;0,00;0,00;15h18min;-115,00 +WINJ26;13/01/2026 10:10:00;13/01/2026 10:12:00;2min;1;1;V;167.495,00;167.400,00;192.345,00;No;-19,00;-95,00;83;-19,00;-95,00;0,00;0,00;0,00;58min;-134,00 +WINJ26;13/01/2026 10:30:00;13/01/2026 10:46:00;16min;1;1;V;167.705,00;167.430,00;192.345,00;Sim;-55,00;-275,00;84;-55,00;-275,00;0,00;0,00;0,00;20min;-189,00 +WINJ26;13/01/2026 13:28:00;13/01/2026 13:50:00;22min;1;1;V;167.325,00;167.005,00;192.345,00;No;-64,00;-320,00;85;-64,00;-320,00;0,00;0,00;0,00;2h58min;-253,00 +WINJ26;13/01/2026 14:32:00;13/01/2026 14:40:00;8min;1;1;V;167.260,00;167.330,00;192.345,00;Sim;14,00;70,00;86;14,00;70,00;0,00;0,00;0,00;1h4min;-239,00 +WINJ26;13/01/2026 16:02:00;13/01/2026 16:04:00;2min;1;1;V;167.120,00;167.150,00;192.345,00;No;6,00;30,00;87;6,00;30,00;0,00;0,00;0,00;1h30min;-233,00 +WINJ26;14/01/2026 09:00:00;14/01/2026 09:02:00;2min;1;1;C;167.305,00;167.260,00;192.345,00;Sim;-9,00;-45,00;88;-9,00;-45,00;0,00;0,00;0,00;16h58min;-242,00 +WINJ26;14/01/2026 09:10:00;14/01/2026 09:12:00;2min;1;1;C;167.675,00;167.755,00;192.345,00;No;16,00;80,00;89;16,00;80,00;0,00;0,00;0,00;10min;-226,00 +WINJ26;14/01/2026 10:02:00;14/01/2026 10:04:00;2min;1;1;C;168.315,00;168.100,00;192.345,00;No;-43,00;-215,00;90;-43,00;-215,00;0,00;0,00;0,00;52min;-269,00 +WINJ26;14/01/2026 10:32:00;14/01/2026 10:34:00;2min;1;1;C;168.545,00;168.485,00;192.345,00;No;-12,00;-60,00;91;-12,00;-60,00;0,00;0,00;0,00;30min;-281,00 +WINJ26;14/01/2026 10:54:00;14/01/2026 10:56:00;2min;1;1;V;168.345,00;168.375,00;192.345,00;Sim;6,00;30,00;92;6,00;30,00;0,00;0,00;0,00;22min;-275,00 +WINJ26;14/01/2026 11:00:00;14/01/2026 11:02:00;2min;1;1;V;168.080,00;168.220,00;192.345,00;No;28,00;140,00;93;28,00;140,00;0,00;0,00;0,00;6min;-247,00 +WINJ26;14/01/2026 12:02:00;14/01/2026 12:04:00;2min;1;1;C;168.845,00;168.935,00;192.345,00;No;18,00;90,00;94;18,00;90,00;0,00;0,00;0,00;1h2min;-229,00 +WINJ26;14/01/2026 14:38:00;14/01/2026 14:48:00;10min;1;1;V;168.900,00;168.870,00;192.345,00;Sim;-6,00;-30,00;95;-6,00;-30,00;0,00;0,00;0,00;2h36min;-235,00 +WINJ26;14/01/2026 16:28:00;14/01/2026 16:50:00;22min;1;1;V;169.995,00;169.700,00;192.345,00;Sim;-59,00;-295,00;96;-59,00;-295,00;0,00;0,00;0,00;1h50min;-294,00 +WINJ26;15/01/2026 09:06:00;15/01/2026 09:20:00;14min;1;1;V;170.475,00;170.205,00;192.345,00;Sim;-54,00;-270,00;97;-54,00;-270,00;0,00;0,00;0,00;16h38min;-348,00 +WINJ26;15/01/2026 10:28:00;15/01/2026 10:36:00;8min;1;1;C;170.610,00;170.575,00;192.345,00;No;-7,00;-35,00;98;-7,00;-35,00;0,00;0,00;0,00;1h22min;-355,00 +WINJ26;15/01/2026 10:48:00;15/01/2026 10:50:00;2min;1;1;V;170.225,00;170.240,00;192.345,00;Sim;3,00;15,00;99;3,00;15,00;0,00;0,00;0,00;20min;-352,00 +WINJ26;15/01/2026 12:00:00;15/01/2026 12:02:00;2min;1;1;C;170.120,00;170.305,00;192.345,00;Sim;37,00;185,00;100;37,00;185,00;0,00;0,00;0,00;1h12min;-315,00 +WINJ26;15/01/2026 14:04:00;15/01/2026 14:06:00;2min;1;1;C;170.775,00;170.725,00;192.345,00;No;-10,00;-50,00;101;-10,00;-50,00;0,00;0,00;0,00;2h4min;-325,00 +WINJ26;16/01/2026 09:02:00;16/01/2026 09:24:00;22min;1;1;V;171.150,00;170.760,00;192.345,00;Sim;-78,00;-390,00;102;-78,00;-390,00;0,00;0,00;0,00;18h58min;-403,00 +WINJ26;16/01/2026 10:02:00;16/01/2026 10:04:00;2min;1;1;V;170.825,00;170.785,00;192.345,00;Sim;-8,00;-40,00;103;-8,00;-40,00;0,00;0,00;0,00;1h;-411,00 +WINJ26;16/01/2026 10:10:00;16/01/2026 10:12:00;2min;1;1;V;170.700,00;170.700,00;192.345,00;No;0;0;104;0;0;0,00;0,00;0,00;8min;-411,00 +WINJ26;16/01/2026 13:06:00;16/01/2026 13:08:00;2min;1;1;V;169.305,00;169.280,00;192.345,00;No;-5,00;-25,00;105;-5,00;-25,00;0,00;0,00;0,00;2h56min;-416,00 +WINJ26;16/01/2026 13:40:00;16/01/2026 13:42:00;2min;1;1;C;169.675,00;169.730,00;192.345,00;Sim;11,00;55,00;106;11,00;55,00;0,00;0,00;0,00;34min;-405,00 +WINJ26;16/01/2026 15:10:00;16/01/2026 15:36:00;26min;1;1;V;169.555,00;169.560,00;192.345,00;Sim;1,00;5,00;107;1,00;5,00;0,00;0,00;0,00;1h30min;-404,00 +WINJ26;16/01/2026 16:30:00;16/01/2026 16:42:00;12min;1;1;V;169.620,00;169.665,00;192.345,00;Sim;9,00;45,00;108;9,00;45,00;0,00;0,00;0,00;1h20min;-395,00 +WINJ26;16/01/2026 18:16:00;19/01/2026 09:02:00;2d14h;1;1;V;169.210,00;169.670,00;192.345,00;Sim;92,00;460,00;109;92,00;460,00;0,00;0,00;0,00;1h46min;-303,00 +WINJ26;19/01/2026 09:52:00;19/01/2026 09:54:00;2min;1;1;V;169.485,00;169.500,00;192.345,00;No;3,00;15,00;110;3,00;15,00;0,00;0,00;0,00;2d15h;-300,00 +WINJ26;19/01/2026 12:24:00;19/01/2026 12:26:00;2min;1;1;V;169.490,00;169.450,00;192.345,00;No;-8,00;-40,00;111;-8,00;-40,00;0,00;0,00;0,00;2h32min;-308,00 +WINJ26;20/01/2026 09:00:00;20/01/2026 09:22:00;22min;1;1;C;169.110,00;168.340,00;192.345,00;Sim;-154,00;-770,00;112;-154,00;-770,00;0,00;0,00;0,00;20h36min;-462,00 +WINJ26;20/01/2026 10:10:00;20/01/2026 10:12:00;2min;1;1;C;168.835,00;168.800,00;192.345,00;Sim;-7,00;-35,00;113;-7,00;-35,00;0,00;0,00;0,00;1h10min;-469,00 +WINJ26;20/01/2026 10:44:00;20/01/2026 10:48:00;4min;1;1;C;168.865,00;169.090,00;192.345,00;No;45,00;225,00;114;45,00;225,00;0,00;0,00;0,00;34min;-424,00 +WINJ26;20/01/2026 14:02:00;20/01/2026 14:04:00;2min;1;1;C;171.220,00;171.255,00;192.345,00;No;7,00;35,00;115;7,00;35,00;0,00;0,00;0,00;3h18min;-417,00 +WINJ26;20/01/2026 16:42:00;20/01/2026 16:44:00;2min;1;1;C;170.845,00;170.795,00;192.345,00;Sim;-10,00;-50,00;116;-10,00;-50,00;0,00;0,00;0,00;2h40min;-427,00 +WINJ26;20/01/2026 17:40:00;20/01/2026 17:42:00;2min;1;1;C;170.970,00;170.980,00;192.345,00;No;2,00;10,00;117;2,00;10,00;0,00;0,00;0,00;58min;-425,00 +WINJ26;21/01/2026 09:56:00;21/01/2026 09:58:00;2min;1;1;C;173.095,00;173.050,00;192.345,00;No;-9,00;-45,00;118;-9,00;-45,00;0,00;0,00;0,00;16h16min;-434,00 +WINJ26;21/01/2026 10:16:00;21/01/2026 10:18:00;2min;1;1;C;173.535,00;173.530,00;192.345,00;No;-1,00;-5,00;119;-1,00;-5,00;0,00;0,00;0,00;20min;-435,00 +WINJ26;21/01/2026 10:54:00;21/01/2026 10:56:00;2min;1;1;C;173.575,00;173.670,00;192.345,00;No;19,00;95,00;120;19,00;95,00;0,00;0,00;0,00;38min;-416,00 +WINJ26;21/01/2026 12:34:00;21/01/2026 12:36:00;2min;1;1;V;174.325,00;174.335,00;192.345,00;Sim;2,00;10,00;121;2,00;10,00;0,00;0,00;0,00;1h40min;-414,00 +WINJ26;21/01/2026 13:26:00;21/01/2026 13:28:00;2min;1;1;C;174.905,00;174.990,00;192.345,00;No;17,00;85,00;122;17,00;85,00;0,00;0,00;0,00;52min;-397,00 +WINJ26;21/01/2026 14:48:00;21/01/2026 14:50:00;2min;1;1;C;174.935,00;174.955,00;192.345,00;No;4,00;20,00;123;4,00;20,00;0,00;0,00;0,00;1h22min;-393,00 +WINJ26;21/01/2026 16:40:00;21/01/2026 17:02:00;22min;1;1;V;176.765,00;175.920,00;192.345,00;Sim;-169,00;-845,00;124;-169,00;-845,00;0,00;0,00;0,00;1h52min;-562,00 +WINJ26;22/01/2026 09:02:00;22/01/2026 09:24:00;22min;1;1;V;177.605,00;176.995,00;192.345,00;Sim;-122,00;-610,00;125;-122,00;-610,00;0,00;0,00;0,00;16h22min;-684,00 +WINJ26;22/01/2026 09:26:00;22/01/2026 09:48:00;22min;1;1;V;177.980,00;177.480,00;192.345,00;Sim;-100,00;-500,00;126;-100,00;-500,00;0,00;0,00;0,00;24min;-784,00 +WINJ26;22/01/2026 11:44:00;22/01/2026 12:06:00;22min;1;1;V;179.835,00;179.510,00;192.345,00;Sim;-65,00;-325,00;127;-65,00;-325,00;0,00;0,00;0,00;2h18min;-849,00 +WINJ26;22/01/2026 12:16:00;22/01/2026 12:18:00;2min;1;1;C;180.050,00;180.235,00;192.345,00;No;37,00;185,00;128;37,00;185,00;0,00;0,00;0,00;32min;-812,00 +WINJ26;22/01/2026 13:44:00;22/01/2026 13:46:00;2min;1;1;V;181.750,00;181.525,00;192.345,00;Sim;-45,00;-225,00;129;-45,00;-225,00;0,00;0,00;0,00;1h28min;-857,00 +WINJ26;22/01/2026 15:00:00;22/01/2026 15:02:00;2min;1;1;V;181.550,00;181.610,00;192.345,00;Sim;12,00;60,00;130;12,00;60,00;0,00;0,00;0,00;1h16min;-845,00 +WINJ26;22/01/2026 17:02:00;22/01/2026 17:04:00;2min;1;1;V;180.500,00;180.590,00;192.345,00;No;18,00;90,00;131;18,00;90,00;0,00;0,00;0,00;2h2min;-827,00 +WINJ26;22/01/2026 17:32:00;22/01/2026 17:36:00;4min;1;1;C;180.875,00;180.960,00;192.345,00;No;17,00;85,00;132;17,00;85,00;0,00;0,00;0,00;30min;-810,00 +WINJ26;23/01/2026 09:00:00;23/01/2026 09:18:00;18min;1;1;V;181.370,00;182.000,00;192.345,00;Sim;126,00;630,00;133;126,00;630,00;0,00;0,00;0,00;15h28min;-684,00 +WINJ26;23/01/2026 10:32:00;23/01/2026 10:34:00;2min;1;1;V;181.420,00;181.450,00;192.345,00;No;6,00;30,00;134;6,00;30,00;0,00;0,00;0,00;1h32min;-678,00 +WINJ26;23/01/2026 12:06:00;23/01/2026 12:08:00;2min;1;1;C;181.340,00;181.480,00;192.345,00;No;28,00;140,00;135;28,00;140,00;0,00;0,00;0,00;1h34min;-650,00 +WINJ26;23/01/2026 12:12:00;23/01/2026 12:14:00;2min;1;1;C;181.630,00;181.570,00;192.345,00;No;-12,00;-60,00;136;-12,00;-60,00;0,00;0,00;0,00;6min;-662,00 +WINJ26;23/01/2026 12:44:00;23/01/2026 12:46:00;2min;1;1;V;182.000,00;182.195,00;192.345,00;Sim;39,00;195,00;137;39,00;195,00;0,00;0,00;0,00;32min;-623,00 +WINJ26;23/01/2026 14:10:00;23/01/2026 14:12:00;2min;1;1;V;182.090,00;181.975,00;192.345,00;No;-23,00;-115,00;138;-23,00;-115,00;0,00;0,00;0,00;1h26min;-646,00 +WINJ26;23/01/2026 16:30:00;23/01/2026 16:52:00;22min;1;1;V;183.260,00;183.050,00;192.345,00;Sim;-42,00;-210,00;139;-42,00;-210,00;0,00;0,00;0,00;2h20min;-688,00 +WINJ26;23/01/2026 18:22:00;23/01/2026 18:24:00;2min;1;1;C;184.300,00;184.250,00;192.345,00;No;-10,00;-50,00;140;-10,00;-50,00;0,00;0,00;0,00;1h52min;-698,00 +WINJ26;26/01/2026 10:00:00;26/01/2026 10:22:00;22min;1;1;C;184.825,00;183.835,00;192.345,00;No;-198,00;-990,00;141;-198,00;-990,00;0,00;0,00;0,00;2d15h;-896,00 +WINJ26;26/01/2026 10:48:00;26/01/2026 10:50:00;2min;1;1;V;183.440,00;183.505,00;192.345,00;Sim;13,00;65,00;142;13,00;65,00;0,00;0,00;0,00;48min;-883,00 +WINJ26;26/01/2026 16:12:00;26/01/2026 16:14:00;2min;1;1;V;183.095,00;183.170,00;192.345,00;No;15,00;75,00;143;15,00;75,00;0,00;0,00;0,00;5h24min;-868,00 +WINJ26;26/01/2026 18:06:00;26/01/2026 18:08:00;2min;1;1;V;183.520,00;183.620,00;192.345,00;Sim;20,00;100,00;144;20,00;100,00;0,00;0,00;0,00;1h54min;-848,00 +WINJ26;26/01/2026 18:16:00;26/01/2026 18:18:00;2min;1;1;V;183.390,00;183.395,00;192.345,00;No;1,00;5,00;145;1,00;5,00;0,00;0,00;0,00;10min;-847,00 +WINJ26;27/01/2026 09:50:00;27/01/2026 10:06:00;16min;1;1;V;185.825,00;186.220,00;192.345,00;Sim;79,00;395,00;146;79,00;395,00;0,00;0,00;0,00;15h34min;-768,00 +WINJ26;27/01/2026 13:04:00;27/01/2026 13:06:00;2min;1;1;C;187.820,00;187.700,00;192.345,00;No;-24,00;-120,00;147;-24,00;-120,00;0,00;0,00;0,00;3h14min;-792,00 +WINJ26;27/01/2026 14:50:00;27/01/2026 14:52:00;2min;1;1;V;187.340,00;187.650,00;192.345,00;Sim;62,00;310,00;148;62,00;310,00;0,00;0,00;0,00;1h46min;-730,00 +WINJ26;27/01/2026 15:44:00;27/01/2026 15:46:00;2min;1;1;V;187.080,00;187.100,00;192.345,00;No;4,00;20,00;149;4,00;20,00;0,00;0,00;0,00;54min;-726,00 +WINJ26;27/01/2026 16:34:00;27/01/2026 16:56:00;22min;1;1;C;187.230,00;187.130,00;192.345,00;Sim;-20,00;-100,00;150;-20,00;-100,00;0,00;0,00;0,00;50min;-746,00 +WINJ26;28/01/2026 10:02:00;28/01/2026 10:06:00;4min;1;1;V;187.800,00;188.020,00;192.345,00;Sim;44,00;220,00;151;44,00;220,00;0,00;0,00;0,00;17h28min;-702,00 +WINJ26;28/01/2026 14:38:00;28/01/2026 14:44:00;6min;1;1;C;188.400,00;188.480,00;192.345,00;No;16,00;80,00;152;16,00;80,00;0,00;0,00;0,00;4h36min;-686,00 +WINJ26;28/01/2026 17:32:00;28/01/2026 17:34:00;2min;1;1;C;189.100,00;189.085,00;192.345,00;No;-3,00;-15,00;153;-3,00;-15,00;0,00;0,00;0,00;2h54min;-689,00 +WINJ26;29/01/2026 10:02:00;29/01/2026 10:04:00;2min;1;1;V;191.110,00;191.245,00;192.345,00;Sim;27,00;135,00;154;27,00;135,00;0,00;0,00;0,00;16h30min;-662,00 +WINJ26;29/01/2026 11:14:00;29/01/2026 11:16:00;2min;1;1;V;190.800,00;190.685,00;192.345,00;No;-23,00;-115,00;155;-23,00;-115,00;0,00;0,00;0,00;1h12min;-685,00 +WINJ26;29/01/2026 11:28:00;29/01/2026 11:30:00;2min;1;1;V;190.745,00;190.945,00;192.345,00;Sim;40,00;200,00;156;40,00;200,00;0,00;0,00;0,00;14min;-645,00 +WINJ26;29/01/2026 12:18:00;29/01/2026 12:20:00;2min;1;1;V;188.835,00;188.325,00;192.345,00;No;-102,00;-510,00;157;-102,00;-510,00;0,00;0,00;0,00;50min;-747,00 +WINJ26;29/01/2026 14:08:00;29/01/2026 14:10:00;2min;1;1;C;187.900,00;187.775,00;192.345,00;Sim;-25,00;-125,00;158;-25,00;-125,00;0,00;0,00;0,00;1h50min;-772,00 +WINJ26;29/01/2026 17:18:00;29/01/2026 17:32:00;14min;1;1;V;188.360,00;188.370,00;192.345,00;Sim;2,00;10,00;159;2,00;10,00;0,00;0,00;0,00;3h10min;-770,00 +WINJ26;30/01/2026 09:12:00;30/01/2026 09:14:00;2min;1;1;V;187.180,00;186.725,00;192.345,00;No;-91,00;-455,00;160;-91,00;-455,00;0,00;0,00;0,00;15h54min;-861,00 +WINJ26;30/01/2026 09:18:00;30/01/2026 09:20:00;2min;1;1;C;187.520,00;187.580,00;192.345,00;Sim;12,00;60,00;161;12,00;60,00;0,00;0,00;0,00;6min;-849,00 +WINJ26;30/01/2026 10:58:00;30/01/2026 11:00:00;2min;1;1;V;187.585,00;187.495,00;192.345,00;Sim;-18,00;-90,00;162;-18,00;-90,00;0,00;0,00;0,00;1h40min;-867,00 +WINJ26;30/01/2026 11:16:00;30/01/2026 11:18:00;2min;1;1;C;187.675,00;187.625,00;192.345,00;No;-10,00;-50,00;163;-10,00;-50,00;0,00;0,00;0,00;18min;-877,00 +WINJ26;30/01/2026 14:00:00;30/01/2026 14:22:00;22min;1;1;C;187.080,00;186.440,00;192.345,00;Sim;-128,00;-640,00;164;-128,00;-640,00;0,00;0,00;0,00;2h44min;-1.005,00 +WINJ26;30/01/2026 14:40:00;30/01/2026 14:42:00;2min;1;1;V;186.480,00;186.525,00;192.345,00;No;9,00;45,00;165;9,00;45,00;0,00;0,00;0,00;40min;-996,00 +WINJ26;30/01/2026 14:46:00;30/01/2026 14:48:00;2min;1;1;V;186.380,00;186.500,00;192.345,00;No;24,00;120,00;166;24,00;120,00;0,00;0,00;0,00;6min;-972,00 +WINJ26;30/01/2026 14:54:00;30/01/2026 14:56:00;2min;1;1;V;186.155,00;186.150,00;192.345,00;No;-1,00;-5,00;167;-1,00;-5,00;0,00;0,00;0,00;8min;-973,00 +WINJ26;30/01/2026 15:10:00;30/01/2026 15:12:00;2min;1;1;V;185.730,00;185.825,00;192.345,00;No;19,00;95,00;168;19,00;95,00;0,00;0,00;0,00;16min;-954,00 +WINJ26;30/01/2026 16:24:00;30/01/2026 16:26:00;2min;1;1;C;186.610,00;186.400,00;192.345,00;Sim;-42,00;-210,00;169;-42,00;-210,00;0,00;0,00;0,00;1h14min;-996,00 +WINJ26;30/01/2026 17:24:00;30/01/2026 17:26:00;2min;1;1;C;185.830,00;185.795,00;192.345,00;Sim;-7,00;-35,00;170;-7,00;-35,00;0,00;0,00;0,00;1h;-1.003,00 +WINJ26;30/01/2026 18:02:00;30/01/2026 18:04:00;2min;1;1;C;186.170,00;186.085,00;192.345,00;No;-17,00;-85,00;171;-17,00;-85,00;0,00;0,00;0,00;38min;-1.020,00 +WINJ26;30/01/2026 18:12:00;30/01/2026 18:14:00;2min;1;1;C;186.155,00;186.130,00;192.345,00;Sim;-5,00;-25,00;172;-5,00;-25,00;0,00;0,00;0,00;10min;-1.025,00 +WINJ26;02/02/2026 09:50:00;02/02/2026 09:52:00;2min;1;1;C;186.635,00;186.660,00;192.345,00;No;5,00;25,00;173;5,00;25,00;0,00;0,00;0,00;2d15h;-1.020,00 +WINJ26;02/02/2026 10:02:00;02/02/2026 10:16:00;14min;1;1;C;186.725,00;186.470,00;192.345,00;No;-51,00;-255,00;174;-51,00;-255,00;0,00;0,00;0,00;12min;-1.071,00 +WINJ26;02/02/2026 11:02:00;02/02/2026 11:10:00;8min;1;1;V;187.205,00;187.375,00;192.345,00;Sim;34,00;170,00;175;34,00;170,00;0,00;0,00;0,00;1h;-1.037,00 +WINJ26;02/02/2026 11:52:00;02/02/2026 12:10:00;18min;1;1;C;186.835,00;186.810,00;192.345,00;No;-5,00;-25,00;176;-5,00;-25,00;0,00;0,00;0,00;50min;-1.042,00 +WINJ26;02/02/2026 15:32:00;02/02/2026 15:34:00;2min;1;1;V;186.680,00;186.640,00;192.345,00;No;-8,00;-40,00;177;-8,00;-40,00;0,00;0,00;0,00;3h40min;-1.050,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:34:00;22min;1;1;C;186.555,00;186.390,00;192.345,00;Sim;-33,00;-165,00;178;-33,00;-165,00;0,00;0,00;0,00;40min;-1.083,00 +WINJ26;02/02/2026 16:50:00;02/02/2026 17:12:00;22min;1;1;V;186.685,00;186.540,00;192.345,00;No;-29,00;-145,00;179;-29,00;-145,00;0,00;0,00;0,00;38min;-1.112,00 +WINJ26;02/02/2026 17:28:00;02/02/2026 17:30:00;2min;1;1;C;187.025,00;187.045,00;192.345,00;No;4,00;20,00;180;4,00;20,00;0,00;0,00;0,00;38min;-1.108,00 +WINJ26;02/02/2026 18:20:00;03/02/2026 09:16:00;14h56min;1;1;V;189.065,00;187.500,00;192.345,00;Sim;-313,00;-1.565,00;181;-313,00;-1.565,00;0,00;0,00;0,00;52min;-1.421,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:50:00;22min;1;1;V;191.935,00;191.120,00;192.345,00;Sim;-163,00;-815,00;182;-163,00;-815,00;0,00;0,00;0,00;17h8min;-1.584,00 +WINJ26;03/02/2026 13:54:00;03/02/2026 13:56:00;2min;1;1;V;190.850,00;190.800,00;192.345,00;No;-10,00;-50,00;183;-10,00;-50,00;0,00;0,00;0,00;2h26min;-1.594,00 +WINJ26;03/02/2026 14:10:00;03/02/2026 14:12:00;2min;1;1;V;190.520,00;190.390,00;192.345,00;No;-26,00;-130,00;184;-26,00;-130,00;0,00;0,00;0,00;16min;-1.620,00 +WINJ26;03/02/2026 14:14:00;03/02/2026 14:16:00;2min;1;1;V;190.135,00;190.350,00;192.345,00;No;43,00;215,00;185;43,00;215,00;0,00;0,00;0,00;4min;-1.577,00 +WINJ26;03/02/2026 14:38:00;03/02/2026 15:00:00;22min;1;1;C;190.280,00;189.980,00;192.345,00;No;-60,00;-300,00;186;-60,00;-300,00;0,00;0,00;0,00;24min;-1.637,00 +WINJ26;03/02/2026 15:18:00;03/02/2026 15:20:00;2min;1;1;V;189.655,00;189.555,00;192.345,00;No;-20,00;-100,00;187;-20,00;-100,00;0,00;0,00;0,00;40min;-1.657,00 +WINJ26;03/02/2026 16:26:00;03/02/2026 16:32:00;6min;1;1;V;189.840,00;189.940,00;192.345,00;Sim;20,00;100,00;188;20,00;100,00;0,00;0,00;0,00;1h8min;-1.637,00 +WINJ26;04/02/2026 10:10:00;04/02/2026 10:12:00;2min;1;1;V;188.890,00;188.940,00;192.345,00;No;10,00;50,00;189;10,00;50,00;0,00;0,00;0,00;17h44min;-1.627,00 +WINJ26;04/02/2026 10:48:00;04/02/2026 10:50:00;2min;1;1;V;188.980,00;188.795,00;192.345,00;No;-37,00;-185,00;190;-37,00;-185,00;0,00;0,00;0,00;38min;-1.664,00 +WINJ26;04/02/2026 12:52:00;04/02/2026 12:54:00;2min;1;1;V;187.280,00;187.400,00;192.345,00;No;24,00;120,00;191;24,00;120,00;0,00;0,00;0,00;2h4min;-1.640,00 +WINJ26;04/02/2026 13:38:00;04/02/2026 13:40:00;2min;1;1;V;186.390,00;186.470,00;192.345,00;No;16,00;80,00;192;16,00;80,00;0,00;0,00;0,00;46min;-1.624,00 +WINJ26;04/02/2026 13:52:00;04/02/2026 13:54:00;2min;1;1;V;186.205,00;186.000,00;192.345,00;No;-41,00;-205,00;193;-41,00;-205,00;0,00;0,00;0,00;14min;-1.665,00 +WINJ26;04/02/2026 14:10:00;04/02/2026 14:12:00;2min;1;1;V;185.970,00;186.070,00;192.345,00;Sim;20,00;100,00;194;20,00;100,00;0,00;0,00;0,00;18min;-1.645,00 +WINJ26;04/02/2026 14:56:00;04/02/2026 15:18:00;22min;1;1;C;185.555,00;185.250,00;192.345,00;Sim;-61,00;-305,00;195;-61,00;-305,00;0,00;0,00;0,00;46min;-1.706,00 +WINJ26;05/02/2026 09:02:00;05/02/2026 09:04:00;2min;1;1;C;186.330,00;186.545,00;192.345,00;No;43,00;215,00;196;43,00;215,00;0,00;0,00;0,00;18h6min;-1.663,00 +WINJ26;05/02/2026 12:02:00;05/02/2026 12:04:00;2min;1;1;V;187.335,00;187.375,00;192.345,00;Sim;8,00;40,00;197;8,00;40,00;0,00;0,00;0,00;3h;-1.655,00 +WINJ26;05/02/2026 15:12:00;05/02/2026 15:14:00;2min;1;1;C;187.680,00;187.650,00;192.345,00;No;-6,00;-30,00;198;-6,00;-30,00;0,00;0,00;0,00;3h10min;-1.661,00 +WINJ26;05/02/2026 15:30:00;05/02/2026 15:32:00;2min;1;1;C;187.770,00;187.755,00;192.345,00;No;-3,00;-15,00;199;-3,00;-15,00;0,00;0,00;0,00;18min;-1.664,00 +WINJ26;05/02/2026 16:40:00;05/02/2026 16:42:00;2min;1;1;V;187.360,00;187.470,00;192.345,00;Sim;22,00;110,00;200;22,00;110,00;0,00;0,00;0,00;1h10min;-1.642,00 +WINJ26;05/02/2026 17:22:00;05/02/2026 17:24:00;2min;1;1;V;186.660,00;186.930,00;192.345,00;No;54,00;270,00;201;54,00;270,00;0,00;0,00;0,00;42min;-1.588,00 +WINJ26;06/02/2026 09:50:00;06/02/2026 09:52:00;2min;1;1;V;186.710,00;186.575,00;192.345,00;No;-27,00;-135,00;202;-27,00;-135,00;0,00;0,00;0,00;16h28min;-1.615,00 +WINJ26;06/02/2026 10:04:00;06/02/2026 10:06:00;2min;1;1;V;186.455,00;186.540,00;192.345,00;No;17,00;85,00;203;17,00;85,00;0,00;0,00;0,00;14min;-1.598,00 +WINJ26;06/02/2026 10:12:00;06/02/2026 10:14:00;2min;1;1;V;186.355,00;186.420,00;192.345,00;No;13,00;65,00;204;13,00;65,00;0,00;0,00;0,00;8min;-1.585,00 +WINJ26;06/02/2026 11:36:00;06/02/2026 11:38:00;2min;1;1;V;186.605,00;186.570,00;192.345,00;Sim;-7,00;-35,00;205;-7,00;-35,00;0,00;0,00;0,00;1h24min;-1.592,00 +WINJ26;06/02/2026 12:34:00;06/02/2026 12:42:00;8min;1;1;V;186.295,00;186.420,00;192.345,00;No;25,00;125,00;206;25,00;125,00;0,00;0,00;0,00;58min;-1.567,00 +WINJ26;06/02/2026 14:54:00;06/02/2026 14:58:00;4min;1;1;V;186.905,00;186.975,00;192.345,00;Sim;14,00;70,00;207;14,00;70,00;0,00;0,00;0,00;2h20min;-1.553,00 +WINJ26;06/02/2026 15:00:00;06/02/2026 15:02:00;2min;1;1;V;186.770,00;186.790,00;192.345,00;No;4,00;20,00;208;4,00;20,00;0,00;0,00;0,00;6min;-1.549,00 +WINJ26;06/02/2026 15:14:00;06/02/2026 15:16:00;2min;1;1;V;186.525,00;186.500,00;192.345,00;No;-5,00;-25,00;209;-5,00;-25,00;0,00;0,00;0,00;14min;-1.554,00 +WINJ26;06/02/2026 16:46:00;06/02/2026 16:48:00;2min;1;1;C;186.560,00;186.640,00;192.345,00;Sim;16,00;80,00;210;16,00;80,00;0,00;0,00;0,00;1h32min;-1.538,00 +WINJ26;06/02/2026 17:16:00;06/02/2026 17:38:00;22min;1;1;V;187.240,00;187.005,00;192.345,00;Sim;-47,00;-235,00;211;-47,00;-235,00;0,00;0,00;0,00;30min;-1.585,00 +WINJ26;06/02/2026 17:50:00;06/02/2026 17:52:00;2min;1;1;C;187.270,00;187.420,00;192.345,00;No;30,00;150,00;212;30,00;150,00;0,00;0,00;0,00;34min;-1.555,00 +WINJ26;09/02/2026 09:24:00;09/02/2026 09:26:00;2min;1;1;C;187.750,00;187.800,00;192.345,00;No;10,00;50,00;213;10,00;50,00;0,00;0,00;0,00;2d15h;-1.545,00 +WINJ26;09/02/2026 10:52:00;09/02/2026 10:54:00;2min;1;1;V;187.595,00;187.575,00;192.345,00;Sim;-4,00;-20,00;214;-4,00;-20,00;0,00;0,00;0,00;1h28min;-1.549,00 +WINJ26;09/02/2026 11:32:00;09/02/2026 11:34:00;2min;1;1;C;187.880,00;187.650,00;192.345,00;No;-46,00;-230,00;215;-46,00;-230,00;0,00;0,00;0,00;40min;-1.595,00 +WINJ26;09/02/2026 12:42:00;09/02/2026 12:44:00;2min;1;1;V;187.995,00;187.990,00;192.345,00;Sim;-1,00;-5,00;216;-1,00;-5,00;0,00;0,00;0,00;1h10min;-1.596,00 +WINJ26;09/02/2026 12:58:00;09/02/2026 13:00:00;2min;1;1;V;187.835,00;187.865,00;192.345,00;No;6,00;30,00;217;6,00;30,00;0,00;0,00;0,00;16min;-1.590,00 +WINJ26;09/02/2026 13:08:00;09/02/2026 13:10:00;2min;1;1;V;187.925,00;187.805,00;192.345,00;No;-24,00;-120,00;218;-24,00;-120,00;0,00;0,00;0,00;10min;-1.614,00 +WINJ26;09/02/2026 13:40:00;09/02/2026 13:42:00;2min;1;1;C;188.530,00;188.510,00;192.345,00;No;-4,00;-20,00;219;-4,00;-20,00;0,00;0,00;0,00;32min;-1.618,00 +WINJ26;09/02/2026 14:36:00;09/02/2026 14:38:00;2min;1;1;C;189.635,00;189.565,00;192.345,00;No;-14,00;-70,00;220;-14,00;-70,00;0,00;0,00;0,00;56min;-1.632,00 +WINJ26;09/02/2026 15:10:00;09/02/2026 15:12:00;2min;1;1;C;189.670,00;189.700,00;192.345,00;No;6,00;30,00;221;6,00;30,00;0,00;0,00;0,00;34min;-1.626,00 +WINJ26;09/02/2026 15:22:00;09/02/2026 15:44:00;22min;1;1;V;189.990,00;189.350,00;192.345,00;Sim;-128,00;-640,00;222;-128,00;-640,00;0,00;0,00;0,00;12min;-1.754,00 +WINJ26;09/02/2026 17:50:00;09/02/2026 17:52:00;2min;1;1;C;190.570,00;190.735,00;192.345,00;No;33,00;165,00;223;33,00;165,00;0,00;0,00;0,00;2h28min;-1.721,00 +WINJ26;09/02/2026 18:10:00;09/02/2026 18:14:00;4min;1;1;V;190.540,00;190.545,00;192.345,00;Sim;1,00;5,00;224;1,00;5,00;0,00;0,00;0,00;20min;-1.720,00 +WINJ26;10/02/2026 09:00:00;10/02/2026 09:02:00;2min;1;1;V;190.260,00;189.885,00;192.345,00;No;-75,00;-375,00;225;-75,00;-375,00;0,00;0,00;0,00;14h50min;-1.795,00 +WINJ26;10/02/2026 09:44:00;10/02/2026 09:52:00;8min;1;1;C;190.010,00;189.775,00;192.345,00;Sim;-47,00;-235,00;226;-47,00;-235,00;0,00;0,00;0,00;44min;-1.842,00 +WINJ26;10/02/2026 11:44:00;10/02/2026 11:46:00;2min;1;1;C;190.065,00;189.980,00;192.345,00;No;-17,00;-85,00;227;-17,00;-85,00;0,00;0,00;0,00;2h;-1.859,00 +WINJ26;10/02/2026 13:00:00;10/02/2026 13:06:00;6min;1;1;V;190.790,00;190.815,00;192.345,00;Sim;5,00;25,00;228;5,00;25,00;0,00;0,00;0,00;1h16min;-1.854,00 +WINJ26;10/02/2026 13:32:00;10/02/2026 13:54:00;22min;1;1;C;190.635,00;190.385,00;192.345,00;No;-50,00;-250,00;229;-50,00;-250,00;0,00;0,00;0,00;32min;-1.904,00 +WINJ26;10/02/2026 14:02:00;10/02/2026 14:04:00;2min;1;1;V;190.300,00;190.350,00;192.345,00;No;10,00;50,00;230;10,00;50,00;0,00;0,00;0,00;30min;-1.894,00 +WINJ26;10/02/2026 14:26:00;10/02/2026 14:30:00;4min;1;1;C;190.320,00;190.375,00;192.345,00;Sim;11,00;55,00;231;11,00;55,00;0,00;0,00;0,00;24min;-1.883,00 +WINJ26;10/02/2026 14:34:00;10/02/2026 14:36:00;2min;1;1;V;190.290,00;190.285,00;192.345,00;No;-1,00;-5,00;232;-1,00;-5,00;0,00;0,00;0,00;8min;-1.884,00 +WINJ26;10/02/2026 16:16:00;10/02/2026 16:18:00;2min;1;1;V;189.540,00;189.500,00;192.345,00;No;-8,00;-40,00;233;-8,00;-40,00;0,00;0,00;0,00;1h42min;-1.892,00 +WINJ26;10/02/2026 16:56:00;10/02/2026 16:58:00;2min;1;1;C;189.950,00;189.985,00;192.345,00;Sim;7,00;35,00;234;7,00;35,00;0,00;0,00;0,00;40min;-1.885,00 +WINJ26;11/02/2026 10:10:00;11/02/2026 10:12:00;2min;1;1;V;191.915,00;191.995,00;192.345,00;Sim;16,00;80,00;235;16,00;80,00;0,00;0,00;0,00;17h14min;-1.869,00 +WINJ26;11/02/2026 11:02:00;11/02/2026 11:04:00;2min;1;1;C;192.715,00;192.840,00;192.345,00;No;25,00;125,00;236;25,00;125,00;0,00;0,00;0,00;52min;-1.844,00 +WINJ26;11/02/2026 12:00:00;11/02/2026 12:02:00;2min;1;1;V;193.150,00;193.035,00;192.345,00;Sim;-23,00;-115,00;237;-23,00;-115,00;0,00;0,00;0,00;58min;-1.867,00 +WINJ26;11/02/2026 12:04:00;11/02/2026 12:06:00;2min;1;1;V;192.860,00;192.950,00;192.345,00;No;18,00;90,00;238;18,00;90,00;0,00;0,00;0,00;4min;-1.849,00 +WINJ26;11/02/2026 13:08:00;11/02/2026 13:10:00;2min;1;1;C;193.595,00;193.645,00;192.345,00;No;10,00;50,00;239;10,00;50,00;0,00;0,00;0,00;1h4min;-1.839,00 +WINJ26;11/02/2026 14:28:00;11/02/2026 14:30:00;2min;1;1;V;194.525,00;194.660,00;192.345,00;Sim;27,00;135,00;240;27,00;135,00;0,00;0,00;0,00;1h20min;-1.812,00 +WINJ26;12/02/2026 09:00:00;12/02/2026 09:02:00;2min;1;1;C;194.625,00;194.380,00;192.345,00;No;-49,00;-245,00;241;-49,00;-245,00;0,00;0,00;0,00;18h32min;-1.861,00 +WINJ26;12/02/2026 09:52:00;12/02/2026 09:54:00;2min;1;1;V;192.885,00;192.710,00;192.345,00;No;-35,00;-175,00;242;-35,00;-175,00;0,00;0,00;0,00;52min;-1.896,00 +WINJ26;12/02/2026 11:20:00;12/02/2026 11:22:00;2min;1;1;C;193.780,00;193.830,00;192.345,00;Sim;10,00;50,00;243;10,00;50,00;0,00;0,00;0,00;1h28min;-1.886,00 +WINJ26;12/02/2026 14:30:00;12/02/2026 14:32:00;2min;1;1;V;192.520,00;192.535,00;192.345,00;No;3,00;15,00;244;3,00;15,00;0,00;0,00;0,00;3h10min;-1.883,00 +WINJ26;12/02/2026 16:46:00;12/02/2026 16:48:00;2min;1;1;C;192.045,00;191.960,00;192.345,00;Sim;-17,00;-85,00;245;-17,00;-85,00;0,00;0,00;0,00;2h16min;-1.900,00 +WINJ26;12/02/2026 17:06:00;12/02/2026 17:08:00;2min;1;1;C;192.185,00;192.430,00;192.345,00;No;49,00;245,00;246;49,00;245,00;0,00;0,00;0,00;20min;-1.851,00 +WINJ26;13/02/2026 10:32:00;13/02/2026 10:38:00;6min;1;1;V;188.995,00;188.830,00;192.345,00;No;-33,00;-165,00;247;-33,00;-165,00;0,00;0,00;0,00;17h26min;-1.884,00 +WINJ26;13/02/2026 13:32:00;13/02/2026 13:34:00;2min;1;1;C;189.490,00;189.300,00;192.345,00;Sim;-38,00;-190,00;248;-38,00;-190,00;0,00;0,00;0,00;3h;-1.922,00 +WINJ26;13/02/2026 17:54:00;13/02/2026 17:56:00;2min;1;1;C;190.095,00;190.250,00;192.345,00;No;31,00;155,00;249;31,00;155,00;0,00;0,00;0,00;4h22min;-1.891,00 +WINJ26;13/02/2026 18:22:00;13/02/2026 18:24:00;2min;1;1;C;190.600,00;190.565,00;192.345,00;No;-7,00;-35,00;250;-7,00;-35,00;0,00;0,00;0,00;28min;-1.898,00 +WINJ26;18/02/2026 15:30:00;18/02/2026 15:42:00;12min;1;1;C;189.720,00;189.635,00;192.345,00;Sim;-17,00;-85,00;251;-17,00;-85,00;0,00;0,00;0,00;4d21h;-1.915,00 +WINJ26;19/02/2026 10:16:00;19/02/2026 10:18:00;2min;1;1;C;190.075,00;190.240,00;192.345,00;No;33,00;165,00;252;33,00;165,00;0,00;0,00;0,00;18h46min;-1.882,00 +WINJ26;19/02/2026 10:32:00;19/02/2026 10:34:00;2min;1;1;C;190.240,00;190.275,00;192.345,00;No;7,00;35,00;253;7,00;35,00;0,00;0,00;0,00;16min;-1.875,00 +WINJ26;19/02/2026 10:38:00;19/02/2026 10:40:00;2min;1;1;C;190.580,00;190.715,00;192.345,00;No;27,00;135,00;254;27,00;135,00;0,00;0,00;0,00;6min;-1.848,00 +WINJ26;19/02/2026 13:48:00;19/02/2026 13:50:00;2min;1;1;V;192.085,00;192.105,00;192.345,00;Sim;4,00;20,00;255;4,00;20,00;0,00;0,00;0,00;3h10min;-1.844,00 +WINJ26;20/02/2026 09:00:00;20/02/2026 09:04:00;4min;1;1;C;192.345,00;192.245,00;192.345,00;No;-20,00;-100,00;256;-20,00;-100,00;0,00;0,00;0,00;19h12min;-1.864,00 +WINJ26;20/02/2026 10:02:00;20/02/2026 10:04:00;2min;1;1;V;190.590,00;190.600,00;192.345,00;No;2,00;10,00;257;2,00;10,00;0,00;0,00;0,00;1h2min;-1.862,00 +WINJ26;20/02/2026 10:32:00;20/02/2026 10:34:00;2min;1;1;V;190.470,00;190.610,00;192.345,00;Sim;28,00;140,00;258;28,00;140,00;0,00;0,00;0,00;30min;-1.834,00 +WINJ26;20/02/2026 12:42:00;20/02/2026 12:44:00;2min;1;1;C;192.110,00;192.190,00;192.345,00;Sim;16,00;80,00;259;16,00;80,00;0,00;0,00;0,00;2h10min;-1.818,00 +WINJ26;20/02/2026 15:50:00;20/02/2026 16:00:00;10min;1;1;V;192.960,00;193.045,00;192.345,00;Sim;17,00;85,00;260;17,00;85,00;0,00;0,00;0,00;3h8min;-1.801,00 +WINJ26;20/02/2026 17:06:00;20/02/2026 17:08:00;2min;1;1;C;194.085,00;194.055,00;192.345,00;No;-6,00;-30,00;261;-6,00;-30,00;0,00;0,00;0,00;1h16min;-1.807,00 +WINJ26;20/02/2026 17:46:00;20/02/2026 17:48:00;2min;1;1;V;194.050,00;193.995,00;192.345,00;Sim;-11,00;-55,00;262;-11,00;-55,00;0,00;0,00;0,00;40min;-1.818,00 +WINJ26;23/02/2026 12:26:00;23/02/2026 12:28:00;2min;1;1;V;193.135,00;193.275,00;192.345,00;No;28,00;140,00;263;28,00;140,00;0,00;0,00;0,00;2d18h;-1.790,00 +WINJ26;24/02/2026 09:34:00;24/02/2026 09:36:00;2min;1;1;V;193.230,00;193.125,00;192.345,00;No;-21,00;-105,00;264;-21,00;-105,00;0,00;0,00;0,00;21h8min;-1.811,00 +WINJ26;24/02/2026 10:34:00;24/02/2026 10:36:00;2min;1;1;C;193.990,00;194.190,00;192.345,00;Sim;40,00;200,00;265;40,00;200,00;0,00;0,00;0,00;1h;-1.771,00 +WINJ26;24/02/2026 13:08:00;24/02/2026 13:10:00;2min;1;1;C;194.930,00;194.935,00;192.345,00;No;1,00;5,00;266;1,00;5,00;0,00;0,00;0,00;2h34min;-1.770,00 +WINJ26;24/02/2026 14:36:00;24/02/2026 14:38:00;2min;1;1;C;195.330,00;195.335,00;192.345,00;No;1,00;5,00;267;1,00;5,00;0,00;0,00;0,00;1h28min;-1.769,00 +WINJ26;24/02/2026 17:36:00;24/02/2026 17:38:00;2min;1;1;C;194.840,00;194.925,00;192.345,00;Sim;17,00;85,00;268;17,00;85,00;0,00;0,00;0,00;3h;-1.752,00 +WINJ26;25/02/2026 09:08:00;25/02/2026 09:10:00;2min;1;1;C;197.580,00;197.585,00;192.345,00;No;1,00;5,00;269;1,00;5,00;0,00;0,00;0,00;15h32min;-1.751,00 +WINJ26;25/02/2026 11:28:00;25/02/2026 11:34:00;6min;1;1;V;195.235,00;195.260,00;192.345,00;Sim;5,00;25,00;270;5,00;25,00;0,00;0,00;0,00;2h20min;-1.746,00 +WINJ26;25/02/2026 12:16:00;25/02/2026 12:38:00;22min;1;1;C;194.570,00;194.240,00;192.345,00;Sim;-66,00;-330,00;271;-66,00;-330,00;0,00;0,00;0,00;48min;-1.812,00 +WINJ26;25/02/2026 13:28:00;25/02/2026 13:30:00;2min;1;1;V;194.580,00;194.570,00;192.345,00;No;-2,00;-10,00;272;-2,00;-10,00;0,00;0,00;0,00;1h12min;-1.814,00 +WINJ26;25/02/2026 17:08:00;25/02/2026 17:20:00;12min;1;1;C;194.190,00;194.095,00;192.345,00;Sim;-19,00;-95,00;273;-19,00;-95,00;0,00;0,00;0,00;3h40min;-1.833,00 +WINJ26;26/02/2026 09:02:00;26/02/2026 09:04:00;2min;1;1;V;194.150,00;194.105,00;192.345,00;No;-9,00;-45,00;274;-9,00;-45,00;0,00;0,00;0,00;15h54min;-1.842,00 +WINJ26;26/02/2026 09:20:00;26/02/2026 09:22:00;2min;1;1;V;194.245,00;194.220,00;192.345,00;Sim;-5,00;-25,00;275;-5,00;-25,00;0,00;0,00;0,00;18min;-1.847,00 +WINJ26;26/02/2026 10:00:00;26/02/2026 10:02:00;2min;1;1;C;194.295,00;194.750,00;192.345,00;No;91,00;455,00;276;91,00;455,00;0,00;0,00;0,00;40min;-1.756,00 +WINJ26;26/02/2026 14:42:00;26/02/2026 14:44:00;2min;1;1;V;193.340,00;193.190,00;192.345,00;No;-30,00;-150,00;277;-30,00;-150,00;0,00;0,00;0,00;4h42min;-1.786,00 +WINJ26;26/02/2026 15:18:00;26/02/2026 15:20:00;2min;1;1;C;193.595,00;193.515,00;192.345,00;Sim;-16,00;-80,00;278;-16,00;-80,00;0,00;0,00;0,00;36min;-1.802,00 +WINJ26;26/02/2026 16:48:00;26/02/2026 16:50:00;2min;1;1;C;194.110,00;194.135,00;192.345,00;No;5,00;25,00;279;5,00;25,00;0,00;0,00;0,00;1h30min;-1.797,00 +WINJ26;26/02/2026 16:56:00;26/02/2026 16:58:00;2min;1;1;C;194.205,00;194.155,00;192.345,00;No;-10,00;-50,00;280;-10,00;-50,00;0,00;0,00;0,00;8min;-1.807,00 +WINJ26;26/02/2026 17:52:00;26/02/2026 17:54:00;2min;1;1;V;194.285,00;194.345,00;192.345,00;Sim;12,00;60,00;281;12,00;60,00;0,00;0,00;0,00;56min;-1.795,00 +WINJ26;26/02/2026 18:16:00;26/02/2026 18:18:00;2min;1;1;V;194.105,00;194.150,00;192.345,00;No;9,00;45,00;282;9,00;45,00;0,00;0,00;0,00;24min;-1.786,00 +WINJ26;27/02/2026 09:00:00;27/02/2026 09:20:00;20min;1;1;C;194.155,00;193.550,00;192.345,00;Sim;-121,00;-605,00;283;-121,00;-605,00;0,00;0,00;0,00;14h44min;-1.907,00 +WINJ26;27/02/2026 12:14:00;27/02/2026 12:16:00;2min;1;1;V;193.090,00;193.215,00;192.345,00;No;25,00;125,00;284;25,00;125,00;0,00;0,00;0,00;3h14min;-1.882,00 +WINJ26;27/02/2026 13:14:00;27/02/2026 13:16:00;2min;1;1;C;193.650,00;193.585,00;192.345,00;Sim;-13,00;-65,00;285;-13,00;-65,00;0,00;0,00;0,00;1h;-1.895,00 +WINJ26;27/02/2026 13:18:00;27/02/2026 13:20:00;2min;1;1;C;193.670,00;193.490,00;192.345,00;No;-36,00;-180,00;286;-36,00;-180,00;0,00;0,00;0,00;4min;-1.931,00 +WINJ26;27/02/2026 14:32:00;27/02/2026 14:34:00;2min;1;1;V;192.480,00;192.395,00;192.345,00;No;-17,00;-85,00;287;-17,00;-85,00;0,00;0,00;0,00;1h14min;-1.948,00 +WINJ26;27/02/2026 15:22:00;27/02/2026 15:24:00;2min;1;1;V;192.625,00;192.620,00;192.345,00;Sim;-1,00;-5,00;288;-1,00;-5,00;0,00;0,00;0,00;50min;-1.949,00 +WINJ26;27/02/2026 17:22:00;27/02/2026 17:24:00;2min;1;1;C;192.150,00;192.140,00;192.345,00;Sim;-2,00;-10,00;289;-2,00;-10,00;0,00;0,00;0,00;2h;-1.951,00 +WINJ26;27/02/2026 17:52:00;27/02/2026 17:54:00;2min;1;1;V;191.790,00;191.890,00;192.345,00;No;20,00;100,00;290;20,00;100,00;0,00;0,00;0,00;30min;-1.931,00 +WINJ26;27/02/2026 18:10:00;27/02/2026 18:12:00;2min;1;1;V;191.770,00;191.755,00;192.345,00;No;-3,00;-15,00;291;-3,00;-15,00;0,00;0,00;0,00;18min;-1.934,00 +WINJ26;02/03/2026 09:00:00;02/03/2026 09:02:00;2min;1;1;V;190.185,00;190.135,00;192.345,00;No;-10,00;-50,00;292;-10,00;-50,00;0,00;0,00;0,00;2d14h;-1.944,00 +WINJ26;02/03/2026 11:32:00;02/03/2026 11:36:00;4min;1;1;C;190.620,00;190.525,00;192.345,00;Sim;-19,00;-95,00;293;-19,00;-95,00;0,00;0,00;0,00;2h32min;-1.963,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv new file mode 100644 index 0000000..3ab4c38 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv @@ -0,0 +1,176 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;15/09/2025 16:45:00;15/09/2025 16:50:00;5min;1;1;V;153.970,00;154.020,00;192.335,00;No;10,00;50,00;1;10,00;50,00;0,00;0,00;0,00; - ;10,00 +WINJ26;10/10/2025 09:20:00;10/10/2025 16:30:00;7h10min;1;1;C;151.200,00;150.050,00;192.335,00;No;-230,00;-1.150,00;2;-230,00;-1.150,00;0,00;0,00;0,00;24d16h;-220,00 +WINJ26;17/10/2025 11:50:00;17/10/2025 12:05:00;15min;1;1;C;151.850,00;151.925,00;192.335,00;No;15,00;75,00;3;15,00;75,00;0,00;0,00;0,00;7d2h;-205,00 +WINJ26;20/10/2025 16:55:00;21/10/2025 09:25:00;16h30min;1;1;V;153.250,00;153.280,00;192.335,00;No;6,00;30,00;4;6,00;30,00;0,00;0,00;0,00;3d5h;-199,00 +WINJ26;21/10/2025 10:45:00;21/10/2025 11:05:00;20min;1;1;V;152.950,00;153.180,00;192.335,00;No;46,00;230,00;5;46,00;230,00;0,00;0,00;0,00;17h50min;-153,00 +WINJ26;10/11/2025 09:10:00;10/11/2025 09:55:00;45min;1;1;C;163.000,00;163.150,00;192.335,00;No;30,00;150,00;6;30,00;150,00;0,00;0,00;0,00;19d22h;-123,00 +WINJ26;11/11/2025 17:50:00;12/11/2025 09:25:00;15h35min;1;1;V;166.300,00;166.490,00;192.335,00;Sim;38,00;190,00;7;38,00;190,00;0,00;0,00;0,00;1d8h;-85,00 +WINJ26;13/11/2025 09:05:00;13/11/2025 10:15:00;1h10min;1;1;V;166.350,00;166.000,00;192.335,00;No;-70,00;-350,00;8;-70,00;-350,00;0,00;0,00;0,00;1d15h;-155,00 +WINJ26;14/11/2025 11:10:00;14/11/2025 11:15:00;5min;1;1;C;165.350,00;165.500,00;192.335,00;No;30,00;150,00;9;30,00;150,00;0,00;0,00;0,00;1d2h;-125,00 +WINJ26;26/11/2025 10:15:00;26/11/2025 11:35:00;1h20min;1;1;V;165.255,00;164.250,00;192.335,00;No;-201,00;-1.005,00;10;-201,00;-1.005,00;0,00;0,00;0,00;11d23h;-326,00 +WINJ26;01/12/2025 18:00:00;01/12/2025 18:20:00;20min;1;1;V;166.180,00;165.930,00;192.335,00;Sim;-50,00;-250,00;11;-50,00;-250,00;0,00;0,00;0,00;5d7h;-376,00 +WINJ26;02/12/2025 09:05:00;02/12/2025 09:20:00;15min;1;1;C;166.750,00;166.580,00;192.335,00;No;-34,00;-170,00;12;-34,00;-170,00;0,00;0,00;0,00;15h5min;-410,00 +WINJ26;05/12/2025 14:30:00;05/12/2025 14:45:00;15min;1;1;V;168.350,00;169.300,00;192.335,00;Sim;190,00;950,00;13;190,00;950,00;0,00;0,00;0,00;3d5h;-220,00 +WINJ26;05/12/2025 17:00:00;08/12/2025 09:05:00;2d16h;1;1;C;165.730,00;166.250,00;192.335,00;Sim;104,00;520,00;14;104,00;520,00;0,00;0,00;0,00;2h30min;-116,00 +WINJ26;09/12/2025 11:30:00;09/12/2025 11:45:00;15min;1;1;V;163.750,00;163.080,00;192.335,00;No;-134,00;-670,00;15;-134,00;-670,00;0,00;0,00;0,00;3d18h;-250,00 +WINJ26;17/12/2025 11:35:00;17/12/2025 11:40:00;5min;1;1;C;164.235,00;164.040,00;192.335,00;Sim;-39,00;-195,00;16;-39,00;-195,00;0,00;0,00;0,00;8d;-289,00 +WINJ26;18/12/2025 09:05:00;18/12/2025 09:10:00;5min;1;1;V;163.580,00;163.485,00;192.335,00;Sim;-19,00;-95,00;17;-19,00;-95,00;0,00;0,00;0,00;21h30min;-308,00 +WINJ26;18/12/2025 11:40:00;18/12/2025 12:00:00;20min;1;1;C;164.055,00;164.050,00;192.335,00;Sim;-1,00;-5,00;18;-1,00;-5,00;0,00;0,00;0,00;2h35min;-309,00 +WINJ26;19/12/2025 09:05:00;19/12/2025 09:10:00;5min;1;1;C;165.045,00;164.905,00;192.335,00;No;-28,00;-140,00;19;-28,00;-140,00;0,00;0,00;0,00;21h25min;-337,00 +WINJ26;19/12/2025 11:20:00;19/12/2025 12:15:00;55min;1;1;V;165.550,00;164.925,00;192.335,00;Sim;-125,00;-625,00;20;-125,00;-625,00;0,00;0,00;0,00;2h15min;-462,00 +WINJ26;19/12/2025 16:40:00;19/12/2025 16:50:00;10min;1;1;V;164.975,00;165.020,00;192.335,00;Sim;9,00;45,00;21;9,00;45,00;0,00;0,00;0,00;5h20min;-453,00 +WINJ26;19/12/2025 17:15:00;19/12/2025 17:20:00;5min;1;1;V;165.005,00;164.995,00;192.335,00;No;-2,00;-10,00;22;-2,00;-10,00;0,00;0,00;0,00;35min;-455,00 +WINJ26;22/12/2025 10:35:00;22/12/2025 10:40:00;5min;1;1;V;164.200,00;164.225,00;192.335,00;No;5,00;25,00;23;5,00;25,00;0,00;0,00;0,00;2d17h;-450,00 +WINJ26;22/12/2025 13:35:00;22/12/2025 14:25:00;50min;1;1;V;164.310,00;164.070,00;192.335,00;No;-48,00;-240,00;24;-48,00;-240,00;0,00;0,00;0,00;3h;-498,00 +WINJ26;22/12/2025 14:40:00;22/12/2025 14:45:00;5min;1;1;C;164.495,00;164.445,00;192.335,00;Sim;-10,00;-50,00;25;-10,00;-50,00;0,00;0,00;0,00;1h5min;-508,00 +WINJ26;22/12/2025 15:50:00;22/12/2025 15:55:00;5min;1;1;C;164.375,00;164.495,00;192.335,00;Sim;24,00;120,00;26;24,00;120,00;0,00;0,00;0,00;1h10min;-484,00 +WINJ26;23/12/2025 09:00:00;23/12/2025 09:55:00;55min;1;1;V;165.120,00;164.310,00;192.335,00;Sim;-162,00;-810,00;27;-162,00;-810,00;0,00;0,00;0,00;17h10min;-646,00 +WINJ26;23/12/2025 14:35:00;23/12/2025 14:40:00;5min;1;1;C;166.600,00;166.605,00;192.335,00;No;1,00;5,00;28;1,00;5,00;0,00;0,00;0,00;5h35min;-645,00 +WINJ26;23/12/2025 17:10:00;23/12/2025 17:15:00;5min;1;1;V;166.415,00;166.395,00;192.335,00;Sim;-4,00;-20,00;29;-4,00;-20,00;0,00;0,00;0,00;2h35min;-649,00 +WINJ26;23/12/2025 17:25:00;23/12/2025 17:30:00;5min;1;1;C;166.455,00;166.420,00;192.335,00;Sim;-7,00;-35,00;30;-7,00;-35,00;0,00;0,00;0,00;15min;-656,00 +WINJ26;23/12/2025 17:55:00;23/12/2025 18:00:00;5min;1;1;C;166.575,00;166.590,00;192.335,00;No;3,00;15,00;31;3,00;15,00;0,00;0,00;0,00;30min;-653,00 +WINJ26;26/12/2025 09:35:00;26/12/2025 09:40:00;5min;1;1;V;165.705,00;165.675,00;192.335,00;No;-6,00;-30,00;32;-6,00;-30,00;0,00;0,00;0,00;2d15h;-659,00 +WINJ26;26/12/2025 10:55:00;26/12/2025 11:00:00;5min;1;1;V;165.420,00;165.415,00;192.335,00;No;-1,00;-5,00;33;-1,00;-5,00;0,00;0,00;0,00;1h20min;-660,00 +WINJ26;29/12/2025 09:05:00;29/12/2025 09:10:00;5min;1;1;C;167.435,00;167.375,00;192.335,00;No;-12,00;-60,00;34;-12,00;-60,00;0,00;0,00;0,00;2d22h;-672,00 +WINJ26;29/12/2025 11:45:00;29/12/2025 11:50:00;5min;1;1;C;166.635,00;166.545,00;192.335,00;Sim;-18,00;-90,00;35;-18,00;-90,00;0,00;0,00;0,00;2h40min;-690,00 +WINJ26;29/12/2025 12:10:00;29/12/2025 12:15:00;5min;1;1;V;166.185,00;166.200,00;192.335,00;Sim;3,00;15,00;36;3,00;15,00;0,00;0,00;0,00;25min;-687,00 +WINJ26;29/12/2025 13:05:00;29/12/2025 13:10:00;5min;1;1;V;166.160,00;165.990,00;192.335,00;No;-34,00;-170,00;37;-34,00;-170,00;0,00;0,00;0,00;55min;-721,00 +WINJ26;29/12/2025 14:15:00;29/12/2025 14:20:00;5min;1;1;V;166.075,00;166.045,00;192.335,00;Sim;-6,00;-30,00;38;-6,00;-30,00;0,00;0,00;0,00;1h10min;-727,00 +WINJ26;29/12/2025 16:55:00;29/12/2025 17:00:00;5min;1;1;C;166.105,00;166.175,00;192.335,00;Sim;14,00;70,00;39;14,00;70,00;0,00;0,00;0,00;2h40min;-713,00 +WINJ26;29/12/2025 17:35:00;29/12/2025 17:45:00;10min;1;1;V;166.070,00;166.155,00;192.335,00;Sim;17,00;85,00;40;17,00;85,00;0,00;0,00;0,00;40min;-696,00 +WINJ26;30/12/2025 09:35:00;30/12/2025 09:40:00;5min;1;1;C;167.835,00;167.780,00;192.335,00;No;-11,00;-55,00;41;-11,00;-55,00;0,00;0,00;0,00;16h;-707,00 +WINJ26;30/12/2025 12:55:00;30/12/2025 13:00:00;5min;1;1;C;167.535,00;167.505,00;192.335,00;Sim;-6,00;-30,00;42;-6,00;-30,00;0,00;0,00;0,00;3h20min;-713,00 +WINJ26;30/12/2025 13:50:00;30/12/2025 14:15:00;25min;1;1;V;167.640,00;167.565,00;192.335,00;Sim;-15,00;-75,00;43;-15,00;-75,00;0,00;0,00;0,00;55min;-728,00 +WINJ26;30/12/2025 17:50:00;30/12/2025 17:55:00;5min;1;1;V;167.350,00;167.360,00;192.335,00;No;2,00;10,00;44;2,00;10,00;0,00;0,00;0,00;4h;-726,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.335,00;Sim;-9,00;-45,00;45;-9,00;-45,00;0,00;0,00;0,00;2d16h;-735,00 +WINJ26;02/01/2026 12:20:00;02/01/2026 12:25:00;5min;1;1;V;166.325,00;166.535,00;192.335,00;No;42,00;210,00;46;42,00;210,00;0,00;0,00;0,00;2h10min;-693,00 +WINJ26;02/01/2026 14:50:00;02/01/2026 14:55:00;5min;1;1;V;165.995,00;166.020,00;192.335,00;No;5,00;25,00;47;5,00;25,00;0,00;0,00;0,00;2h30min;-688,00 +WINJ26;02/01/2026 15:20:00;02/01/2026 15:25:00;5min;1;1;C;166.080,00;166.140,00;192.335,00;Sim;12,00;60,00;48;12,00;60,00;0,00;0,00;0,00;30min;-676,00 +WINJ26;05/01/2026 10:20:00;05/01/2026 10:25:00;5min;1;1;V;166.040,00;166.005,00;192.335,00;No;-7,00;-35,00;49;-7,00;-35,00;0,00;0,00;0,00;2d19h;-683,00 +WINJ26;05/01/2026 12:10:00;05/01/2026 12:15:00;5min;1;1;C;166.355,00;166.525,00;192.335,00;No;34,00;170,00;50;34,00;170,00;0,00;0,00;0,00;1h50min;-649,00 +WINJ26;05/01/2026 18:15:00;05/01/2026 18:20:00;5min;1;1;V;167.570,00;167.590,00;192.335,00;Sim;4,00;20,00;51;4,00;20,00;0,00;0,00;0,00;6h5min;-645,00 +WINJ26;06/01/2026 14:25:00;06/01/2026 15:00:00;35min;1;1;V;169.405,00;169.370,00;192.335,00;Sim;-7,00;-35,00;52;-7,00;-35,00;0,00;0,00;0,00;20h10min;-652,00 +WINJ26;07/01/2026 09:05:00;07/01/2026 09:10:00;5min;1;1;V;169.250,00;169.045,00;192.335,00;No;-41,00;-205,00;53;-41,00;-205,00;0,00;0,00;0,00;18h40min;-693,00 +WINJ26;07/01/2026 12:50:00;07/01/2026 12:55:00;5min;1;1;C;167.725,00;167.755,00;192.335,00;No;6,00;30,00;54;6,00;30,00;0,00;0,00;0,00;3h45min;-687,00 +WINJ26;07/01/2026 13:50:00;07/01/2026 13:55:00;5min;1;1;V;167.650,00;167.680,00;192.335,00;No;6,00;30,00;55;6,00;30,00;0,00;0,00;0,00;1h;-681,00 +WINJ26;07/01/2026 16:55:00;07/01/2026 17:15:00;20min;1;1;V;167.660,00;167.690,00;192.335,00;Sim;6,00;30,00;56;6,00;30,00;0,00;0,00;0,00;3h5min;-675,00 +WINJ26;08/01/2026 09:05:00;08/01/2026 09:10:00;5min;1;1;V;167.300,00;167.255,00;192.335,00;No;-9,00;-45,00;57;-9,00;-45,00;0,00;0,00;0,00;16h10min;-684,00 +WINJ26;08/01/2026 10:50:00;08/01/2026 10:55:00;5min;1;1;V;167.565,00;167.665,00;192.335,00;Sim;20,00;100,00;58;20,00;100,00;0,00;0,00;0,00;1h45min;-664,00 +WINJ26;08/01/2026 15:05:00;08/01/2026 15:10:00;5min;1;1;V;167.790,00;167.815,00;192.335,00;Sim;5,00;25,00;59;5,00;25,00;0,00;0,00;0,00;4h15min;-659,00 +WINJ26;08/01/2026 15:50:00;08/01/2026 15:55:00;5min;1;1;C;167.970,00;168.010,00;192.335,00;No;8,00;40,00;60;8,00;40,00;0,00;0,00;0,00;45min;-651,00 +WINJ26;08/01/2026 16:20:00;08/01/2026 16:25:00;5min;1;1;C;168.085,00;168.080,00;192.335,00;No;-1,00;-5,00;61;-1,00;-5,00;0,00;0,00;0,00;30min;-652,00 +WINJ26;09/01/2026 10:35:00;09/01/2026 10:40:00;5min;1;1;C;168.805,00;169.245,00;192.335,00;No;88,00;440,00;62;88,00;440,00;0,00;0,00;0,00;18h15min;-564,00 +WINJ26;09/01/2026 14:00:00;09/01/2026 14:05:00;5min;1;1;C;169.570,00;169.640,00;192.335,00;No;14,00;70,00;63;14,00;70,00;0,00;0,00;0,00;3h25min;-550,00 +WINJ26;09/01/2026 15:25:00;09/01/2026 15:30:00;5min;1;1;V;169.345,00;169.275,00;192.335,00;Sim;-14,00;-70,00;64;-14,00;-70,00;0,00;0,00;0,00;1h25min;-564,00 +WINJ26;09/01/2026 17:05:00;09/01/2026 17:10:00;5min;1;1;V;169.020,00;169.040,00;192.335,00;No;4,00;20,00;65;4,00;20,00;0,00;0,00;0,00;1h40min;-560,00 +WINJ26;12/01/2026 09:55:00;12/01/2026 10:00:00;5min;1;1;V;168.180,00;168.410,00;192.335,00;No;46,00;230,00;66;46,00;230,00;0,00;0,00;0,00;2d16h;-514,00 +WINJ26;12/01/2026 10:20:00;12/01/2026 11:15:00;55min;1;1;C;168.475,00;167.890,00;192.335,00;Sim;-117,00;-585,00;67;-117,00;-585,00;0,00;0,00;0,00;25min;-631,00 +WINJ26;12/01/2026 13:10:00;12/01/2026 13:50:00;40min;1;1;V;168.620,00;168.670,00;192.335,00;Sim;10,00;50,00;68;10,00;50,00;0,00;0,00;0,00;2h50min;-621,00 +WINJ26;12/01/2026 15:45:00;12/01/2026 16:00:00;15min;1;1;V;168.590,00;168.610,00;192.335,00;No;4,00;20,00;69;4,00;20,00;0,00;0,00;0,00;2h35min;-617,00 +WINJ26;13/01/2026 09:50:00;13/01/2026 09:55:00;5min;1;1;V;167.760,00;167.710,00;192.335,00;No;-10,00;-50,00;70;-10,00;-50,00;0,00;0,00;0,00;18h5min;-627,00 +WINJ26;13/01/2026 16:05:00;13/01/2026 16:10:00;5min;1;1;V;167.125,00;167.075,00;192.335,00;No;-10,00;-50,00;71;-10,00;-50,00;0,00;0,00;0,00;6h15min;-637,00 +WINJ26;14/01/2026 09:00:00;14/01/2026 09:05:00;5min;1;1;C;167.305,00;167.395,00;192.335,00;Sim;18,00;90,00;72;18,00;90,00;0,00;0,00;0,00;16h55min;-619,00 +WINJ26;14/01/2026 09:25:00;14/01/2026 09:30:00;5min;1;1;C;167.920,00;167.920,00;192.335,00;No;0;0;73;0;0;0,00;0,00;0,00;25min;-619,00 +WINJ26;14/01/2026 11:40:00;14/01/2026 11:45:00;5min;1;1;C;168.635,00;168.600,00;192.335,00;No;-7,00;-35,00;74;-7,00;-35,00;0,00;0,00;0,00;2h15min;-626,00 +WINJ26;14/01/2026 12:05:00;14/01/2026 12:10:00;5min;1;1;C;169.010,00;168.820,00;192.335,00;No;-38,00;-190,00;75;-38,00;-190,00;0,00;0,00;0,00;25min;-664,00 +WINJ26;14/01/2026 15:15:00;14/01/2026 15:20:00;5min;1;1;C;169.050,00;169.150,00;192.335,00;No;20,00;100,00;76;20,00;100,00;0,00;0,00;0,00;3h10min;-644,00 +WINJ26;14/01/2026 16:40:00;14/01/2026 16:45:00;5min;1;1;C;169.865,00;169.865,00;192.335,00;No;0;0;77;0;0;0,00;0,00;0,00;1h25min;-644,00 +WINJ26;15/01/2026 16:45:00;15/01/2026 16:50:00;5min;1;1;V;170.930,00;170.950,00;192.335,00;Sim;4,00;20,00;78;4,00;20,00;0,00;0,00;0,00;1d;-640,00 +WINJ26;16/01/2026 09:05:00;16/01/2026 09:10:00;5min;1;1;C;170.965,00;171.100,00;192.335,00;No;27,00;135,00;79;27,00;135,00;0,00;0,00;0,00;16h20min;-613,00 +WINJ26;16/01/2026 10:55:00;16/01/2026 11:00:00;5min;1;1;V;170.060,00;170.260,00;192.335,00;No;40,00;200,00;80;40,00;200,00;0,00;0,00;0,00;1h50min;-573,00 +WINJ26;16/01/2026 15:40:00;16/01/2026 15:45:00;5min;1;1;C;169.680,00;169.580,00;192.335,00;Sim;-20,00;-100,00;81;-20,00;-100,00;0,00;0,00;0,00;4h45min;-593,00 +WINJ26;16/01/2026 18:20:00;19/01/2026 09:00:00;2d14h;1;1;C;169.780,00;169.140,00;192.335,00;No;-128,00;-640,00;82;-128,00;-640,00;0,00;0,00;0,00;2h40min;-721,00 +WINJ26;19/01/2026 11:05:00;19/01/2026 11:35:00;30min;1;1;C;169.605,00;169.575,00;192.335,00;Sim;-6,00;-30,00;83;-6,00;-30,00;0,00;0,00;0,00;2d16h;-727,00 +WINJ26;19/01/2026 14:30:00;19/01/2026 14:35:00;5min;1;1;V;169.610,00;169.740,00;192.335,00;No;26,00;130,00;84;26,00;130,00;0,00;0,00;0,00;3h25min;-701,00 +WINJ26;19/01/2026 16:55:00;19/01/2026 17:00:00;5min;1;1;V;169.550,00;169.545,00;192.335,00;No;-1,00;-5,00;85;-1,00;-5,00;0,00;0,00;0,00;2h25min;-702,00 +WINJ26;20/01/2026 10:20:00;20/01/2026 10:25:00;5min;1;1;C;169.085,00;169.155,00;192.335,00;Sim;14,00;70,00;86;14,00;70,00;0,00;0,00;0,00;17h25min;-688,00 +WINJ26;20/01/2026 15:10:00;20/01/2026 15:15:00;5min;1;1;V;170.885,00;170.740,00;192.335,00;Sim;-29,00;-145,00;87;-29,00;-145,00;0,00;0,00;0,00;4h50min;-717,00 +WINJ26;20/01/2026 17:15:00;20/01/2026 18:10:00;55min;1;1;V;171.060,00;170.755,00;192.335,00;Sim;-61,00;-305,00;88;-61,00;-305,00;0,00;0,00;0,00;2h5min;-778,00 +WINJ26;21/01/2026 14:50:00;21/01/2026 14:55:00;5min;1;1;C;174.955,00;175.025,00;192.335,00;No;14,00;70,00;89;14,00;70,00;0,00;0,00;0,00;21h35min;-764,00 +WINJ26;22/01/2026 09:05:00;22/01/2026 09:10:00;5min;1;1;C;177.380,00;177.350,00;192.335,00;No;-6,00;-30,00;90;-6,00;-30,00;0,00;0,00;0,00;18h15min;-770,00 +WINJ26;22/01/2026 15:25:00;22/01/2026 15:30:00;5min;1;1;V;181.395,00;181.505,00;192.335,00;Sim;22,00;110,00;91;22,00;110,00;0,00;0,00;0,00;6h20min;-748,00 +WINJ26;22/01/2026 17:35:00;22/01/2026 17:40:00;5min;1;1;C;180.960,00;180.805,00;192.335,00;No;-31,00;-155,00;92;-31,00;-155,00;0,00;0,00;0,00;2h10min;-779,00 +WINJ26;22/01/2026 17:55:00;22/01/2026 18:00:00;5min;1;1;V;180.810,00;180.930,00;192.335,00;No;24,00;120,00;93;24,00;120,00;0,00;0,00;0,00;20min;-755,00 +WINJ26;23/01/2026 09:50:00;23/01/2026 10:05:00;15min;1;1;V;181.300,00;181.300,00;192.335,00;Sim;0;0;94;0;0;0,00;0,00;0,00;15h55min;-755,00 +WINJ26;23/01/2026 17:00:00;23/01/2026 17:55:00;55min;1;1;V;183.955,00;183.165,00;192.335,00;Sim;-158,00;-790,00;95;-158,00;-790,00;0,00;0,00;0,00;7h10min;-913,00 +WINJ26;26/01/2026 11:30:00;26/01/2026 11:35:00;5min;1;1;C;183.185,00;183.955,00;192.335,00;No;154,00;770,00;96;154,00;770,00;0,00;0,00;0,00;2d18h;-759,00 +WINJ26;26/01/2026 13:40:00;26/01/2026 13:45:00;5min;1;1;V;183.170,00;183.100,00;192.335,00;No;-14,00;-70,00;97;-14,00;-70,00;0,00;0,00;0,00;2h10min;-773,00 +WINJ26;27/01/2026 10:05:00;27/01/2026 11:00:00;55min;1;1;V;186.850,00;185.810,00;192.335,00;Sim;-208,00;-1.040,00;98;-208,00;-1.040,00;0,00;0,00;0,00;20h25min;-981,00 +WINJ26;27/01/2026 15:55:00;27/01/2026 16:00:00;5min;1;1;V;187.130,00;187.030,00;192.335,00;Sim;-20,00;-100,00;99;-20,00;-100,00;0,00;0,00;0,00;5h50min;-1.001,00 +WINJ26;28/01/2026 11:05:00;28/01/2026 11:10:00;5min;1;1;C;189.410,00;188.900,00;192.335,00;No;-102,00;-510,00;100;-102,00;-510,00;0,00;0,00;0,00;19h10min;-1.103,00 +WINJ26;28/01/2026 11:35:00;28/01/2026 12:10:00;35min;1;1;V;189.125,00;188.935,00;192.335,00;Sim;-38,00;-190,00;101;-38,00;-190,00;0,00;0,00;0,00;30min;-1.141,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 12:35:00;5min;1;1;V;188.375,00;188.475,00;192.335,00;No;20,00;100,00;102;20,00;100,00;0,00;0,00;0,00;55min;-1.121,00 +WINJ26;28/01/2026 13:35:00;28/01/2026 13:55:00;20min;1;1;V;188.620,00;188.660,00;192.335,00;Sim;8,00;40,00;103;8,00;40,00;0,00;0,00;0,00;1h5min;-1.113,00 +WINJ26;28/01/2026 14:45:00;28/01/2026 14:55:00;10min;1;1;C;188.440,00;188.835,00;192.335,00;Sim;79,00;395,00;104;79,00;395,00;0,00;0,00;0,00;1h10min;-1.034,00 +WINJ26;28/01/2026 16:25:00;28/01/2026 16:40:00;15min;1;1;C;188.260,00;188.100,00;192.335,00;Sim;-32,00;-160,00;105;-32,00;-160,00;0,00;0,00;0,00;1h40min;-1.066,00 +WINJ26;29/01/2026 10:05:00;29/01/2026 10:10:00;5min;1;1;V;190.880,00;191.230,00;192.335,00;Sim;70,00;350,00;106;70,00;350,00;0,00;0,00;0,00;17h40min;-996,00 +WINJ26;29/01/2026 15:20:00;29/01/2026 15:30:00;10min;1;1;C;188.230,00;188.075,00;192.335,00;Sim;-31,00;-155,00;107;-31,00;-155,00;0,00;0,00;0,00;5h15min;-1.027,00 +WINJ26;29/01/2026 18:00:00;29/01/2026 18:05:00;5min;1;1;V;188.060,00;187.970,00;192.335,00;No;-18,00;-90,00;108;-18,00;-90,00;0,00;0,00;0,00;2h40min;-1.045,00 +WINJ26;30/01/2026 10:20:00;30/01/2026 10:25:00;5min;1;1;C;187.790,00;188.060,00;192.335,00;Sim;54,00;270,00;109;54,00;270,00;0,00;0,00;0,00;16h20min;-991,00 +WINJ26;30/01/2026 15:20:00;30/01/2026 15:25:00;5min;1;1;V;185.180,00;185.630,00;192.335,00;No;90,00;450,00;110;90,00;450,00;0,00;0,00;0,00;5h;-901,00 +WINJ26;02/02/2026 10:05:00;02/02/2026 10:10:00;5min;1;1;V;186.320,00;186.350,00;192.335,00;Sim;6,00;30,00;111;6,00;30,00;0,00;0,00;0,00;2d18h;-895,00 +WINJ26;02/02/2026 11:05:00;02/02/2026 11:10:00;5min;1;1;C;187.550,00;187.205,00;192.335,00;Sim;-69,00;-345,00;112;-69,00;-345,00;0,00;0,00;0,00;1h;-964,00 +WINJ26;02/02/2026 11:55:00;02/02/2026 12:00:00;5min;1;1;V;186.230,00;186.520,00;192.335,00;Sim;58,00;290,00;113;58,00;290,00;0,00;0,00;0,00;50min;-906,00 +WINJ26;02/02/2026 13:30:00;02/02/2026 13:35:00;5min;1;1;C;186.900,00;186.980,00;192.335,00;Sim;16,00;80,00;114;16,00;80,00;0,00;0,00;0,00;1h35min;-890,00 +WINJ26;02/02/2026 15:20:00;02/02/2026 15:25:00;5min;1;1;V;186.795,00;186.695,00;192.335,00;Sim;-20,00;-100,00;115;-20,00;-100,00;0,00;0,00;0,00;1h50min;-910,00 +WINJ26;03/02/2026 09:50:00;03/02/2026 09:55:00;5min;1;1;C;189.890,00;189.795,00;192.335,00;No;-19,00;-95,00;116;-19,00;-95,00;0,00;0,00;0,00;18h30min;-929,00 +WINJ26;03/02/2026 12:40:00;03/02/2026 12:45:00;5min;1;1;V;190.935,00;191.055,00;192.335,00;Sim;24,00;120,00;117;24,00;120,00;0,00;0,00;0,00;2h50min;-905,00 +WINJ26;03/02/2026 13:30:00;03/02/2026 13:35:00;5min;1;1;V;191.020,00;190.815,00;192.335,00;No;-41,00;-205,00;118;-41,00;-205,00;0,00;0,00;0,00;50min;-946,00 +WINJ26;03/02/2026 14:15:00;03/02/2026 14:20:00;5min;1;1;V;190.335,00;190.295,00;192.335,00;No;-8,00;-40,00;119;-8,00;-40,00;0,00;0,00;0,00;45min;-954,00 +WINJ26;03/02/2026 18:10:00;03/02/2026 18:15:00;5min;1;1;V;190.195,00;190.315,00;192.335,00;Sim;24,00;120,00;120;24,00;120,00;0,00;0,00;0,00;3h55min;-930,00 +WINJ26;04/02/2026 09:05:00;04/02/2026 09:10:00;5min;1;1;V;189.495,00;189.700,00;192.335,00;No;41,00;205,00;121;41,00;205,00;0,00;0,00;0,00;14h55min;-889,00 +WINJ26;04/02/2026 15:10:00;04/02/2026 15:15:00;5min;1;1;V;185.255,00;185.250,00;192.335,00;No;-1,00;-5,00;122;-1,00;-5,00;0,00;0,00;0,00;6h5min;-890,00 +WINJ26;05/02/2026 09:05:00;05/02/2026 09:10:00;5min;1;1;C;186.510,00;186.370,00;192.335,00;Sim;-28,00;-140,00;123;-28,00;-140,00;0,00;0,00;0,00;17h55min;-918,00 +WINJ26;05/02/2026 16:05:00;05/02/2026 16:10:00;5min;1;1;C;187.600,00;187.685,00;192.335,00;No;17,00;85,00;124;17,00;85,00;0,00;0,00;0,00;7h;-901,00 +WINJ26;06/02/2026 10:15:00;06/02/2026 10:20:00;5min;1;1;V;186.590,00;186.325,00;192.335,00;Sim;-53,00;-265,00;125;-53,00;-265,00;0,00;0,00;0,00;18h10min;-954,00 +WINJ26;06/02/2026 10:25:00;06/02/2026 10:30:00;5min;1;1;V;186.200,00;186.230,00;192.335,00;No;6,00;30,00;126;6,00;30,00;0,00;0,00;0,00;10min;-948,00 +WINJ26;06/02/2026 11:55:00;06/02/2026 12:00:00;5min;1;1;V;185.950,00;186.165,00;192.335,00;No;43,00;215,00;127;43,00;215,00;0,00;0,00;0,00;1h30min;-905,00 +WINJ26;06/02/2026 12:20:00;06/02/2026 12:30:00;10min;1;1;C;186.390,00;186.485,00;192.335,00;Sim;19,00;95,00;128;19,00;95,00;0,00;0,00;0,00;25min;-886,00 +WINJ26;06/02/2026 14:05:00;06/02/2026 14:40:00;35min;1;1;V;186.835,00;186.980,00;192.335,00;Sim;29,00;145,00;129;29,00;145,00;0,00;0,00;0,00;1h45min;-857,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:05:00;5min;1;1;C;187.805,00;187.560,00;192.335,00;No;-49,00;-245,00;130;-49,00;-245,00;0,00;0,00;0,00;2d18h;-906,00 +WINJ26;09/02/2026 11:40:00;09/02/2026 11:45:00;5min;1;1;C;188.180,00;188.365,00;192.335,00;No;37,00;185,00;131;37,00;185,00;0,00;0,00;0,00;2h40min;-869,00 +WINJ26;09/02/2026 13:50:00;09/02/2026 13:55:00;5min;1;1;C;188.715,00;188.775,00;192.335,00;No;12,00;60,00;132;12,00;60,00;0,00;0,00;0,00;2h10min;-857,00 +WINJ26;09/02/2026 16:45:00;09/02/2026 17:40:00;55min;1;1;V;190.420,00;190.320,00;192.335,00;Sim;-20,00;-100,00;133;-20,00;-100,00;0,00;0,00;0,00;2h55min;-877,00 +WINJ26;10/02/2026 09:45:00;10/02/2026 09:50:00;5min;1;1;V;189.740,00;189.750,00;192.335,00;No;2,00;10,00;134;2,00;10,00;0,00;0,00;0,00;17h;-875,00 +WINJ26;10/02/2026 10:05:00;10/02/2026 10:15:00;10min;1;1;C;189.915,00;190.000,00;192.335,00;No;17,00;85,00;135;17,00;85,00;0,00;0,00;0,00;20min;-858,00 +WINJ26;10/02/2026 10:30:00;10/02/2026 10:35:00;5min;1;1;V;189.500,00;189.555,00;192.335,00;No;11,00;55,00;136;11,00;55,00;0,00;0,00;0,00;25min;-847,00 +WINJ26;10/02/2026 11:55:00;10/02/2026 12:00:00;5min;1;1;C;190.190,00;190.215,00;192.335,00;No;5,00;25,00;137;5,00;25,00;0,00;0,00;0,00;1h25min;-842,00 +WINJ26;10/02/2026 16:35:00;10/02/2026 16:40:00;5min;1;1;C;189.850,00;189.925,00;192.335,00;Sim;15,00;75,00;138;15,00;75,00;0,00;0,00;0,00;4h40min;-827,00 +WINJ26;11/02/2026 09:00:00;11/02/2026 09:55:00;55min;1;1;V;192.250,00;190.595,00;192.335,00;Sim;-331,00;-1.655,00;139;-331,00;-1.655,00;0,00;0,00;0,00;16h25min;-1.158,00 +WINJ26;11/02/2026 11:05:00;11/02/2026 11:10:00;5min;1;1;C;192.985,00;193.180,00;192.335,00;No;39,00;195,00;140;39,00;195,00;0,00;0,00;0,00;2h5min;-1.119,00 +WINJ26;11/02/2026 11:40:00;11/02/2026 11:45:00;5min;1;1;C;193.550,00;193.340,00;192.335,00;No;-42,00;-210,00;141;-42,00;-210,00;0,00;0,00;0,00;35min;-1.161,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:05:00;35min;1;1;V;194.340,00;194.525,00;192.335,00;Sim;37,00;185,00;142;37,00;185,00;0,00;0,00;0,00;2h50min;-1.124,00 +WINJ26;11/02/2026 16:05:00;11/02/2026 16:10:00;5min;1;1;C;193.940,00;194.050,00;192.335,00;No;22,00;110,00;143;22,00;110,00;0,00;0,00;0,00;1h35min;-1.102,00 +WINJ26;12/02/2026 09:05:00;12/02/2026 09:10:00;5min;1;1;V;193.400,00;193.580,00;192.335,00;No;36,00;180,00;144;36,00;180,00;0,00;0,00;0,00;17h;-1.066,00 +WINJ26;12/02/2026 09:20:00;12/02/2026 09:25:00;5min;1;1;V;193.070,00;193.205,00;192.335,00;No;27,00;135,00;145;27,00;135,00;0,00;0,00;0,00;15min;-1.039,00 +WINJ26;12/02/2026 12:35:00;12/02/2026 12:45:00;10min;1;1;V;193.565,00;193.515,00;192.335,00;Sim;-10,00;-50,00;146;-10,00;-50,00;0,00;0,00;0,00;3h15min;-1.049,00 +WINJ26;13/02/2026 11:35:00;13/02/2026 11:40:00;5min;1;1;V;187.815,00;188.415,00;192.335,00;No;120,00;600,00;147;120,00;600,00;0,00;0,00;0,00;23h;-929,00 +WINJ26;13/02/2026 17:25:00;13/02/2026 17:30:00;5min;1;1;V;189.770,00;189.785,00;192.335,00;Sim;3,00;15,00;148;3,00;15,00;0,00;0,00;0,00;5h50min;-926,00 +WINJ26;13/02/2026 17:50:00;13/02/2026 17:55:00;5min;1;1;C;190.005,00;190.255,00;192.335,00;Sim;50,00;250,00;149;50,00;250,00;0,00;0,00;0,00;25min;-876,00 +WINJ26;18/02/2026 13:05:00;18/02/2026 13:10:00;5min;1;1;C;191.525,00;190.960,00;192.335,00;No;-113,00;-565,00;150;-113,00;-565,00;0,00;0,00;0,00;4d19h;-989,00 +WINJ26;18/02/2026 14:30:00;18/02/2026 14:35:00;5min;1;1;C;190.575,00;190.475,00;192.335,00;Sim;-20,00;-100,00;151;-20,00;-100,00;0,00;0,00;0,00;1h25min;-1.009,00 +WINJ26;18/02/2026 15:00:00;18/02/2026 15:05:00;5min;1;1;V;189.780,00;190.185,00;192.335,00;Sim;81,00;405,00;152;81,00;405,00;0,00;0,00;0,00;30min;-928,00 +WINJ26;19/02/2026 16:40:00;19/02/2026 16:45:00;5min;1;1;V;191.660,00;191.665,00;192.335,00;Sim;1,00;5,00;153;1,00;5,00;0,00;0,00;0,00;1d1h;-927,00 +WINJ26;19/02/2026 17:05:00;19/02/2026 17:35:00;30min;1;1;C;191.805,00;192.035,00;192.335,00;No;46,00;230,00;154;46,00;230,00;0,00;0,00;0,00;25min;-881,00 +WINJ26;20/02/2026 09:05:00;20/02/2026 09:10:00;5min;1;1;V;191.405,00;191.965,00;192.335,00;Sim;112,00;560,00;155;112,00;560,00;0,00;0,00;0,00;16h;-769,00 +WINJ26;20/02/2026 10:35:00;20/02/2026 10:40:00;5min;1;1;V;190.755,00;190.510,00;192.335,00;No;-49,00;-245,00;156;-49,00;-245,00;0,00;0,00;0,00;1h30min;-818,00 +WINJ26;20/02/2026 12:20:00;20/02/2026 12:25:00;5min;1;1;C;192.545,00;192.020,00;192.335,00;No;-105,00;-525,00;157;-105,00;-525,00;0,00;0,00;0,00;1h45min;-923,00 +WINJ26;20/02/2026 16:00:00;20/02/2026 16:55:00;55min;1;1;V;193.970,00;192.960,00;192.335,00;Sim;-202,00;-1.010,00;158;-202,00;-1.010,00;0,00;0,00;0,00;3h40min;-1.125,00 +WINJ26;23/02/2026 11:00:00;23/02/2026 11:05:00;5min;1;1;C;193.025,00;193.050,00;192.335,00;No;5,00;25,00;159;5,00;25,00;0,00;0,00;0,00;2d19h;-1.120,00 +WINJ26;25/02/2026 15:50:00;25/02/2026 15:55:00;5min;1;1;V;194.365,00;194.295,00;192.335,00;Sim;-14,00;-70,00;160;-14,00;-70,00;0,00;0,00;0,00;2d4h;-1.134,00 +WINJ26;25/02/2026 17:45:00;25/02/2026 17:50:00;5min;1;1;C;194.555,00;194.565,00;192.335,00;No;2,00;10,00;161;2,00;10,00;0,00;0,00;0,00;1h55min;-1.132,00 +WINJ26;26/02/2026 09:05:00;26/02/2026 09:20:00;15min;1;1;V;194.220,00;194.015,00;192.335,00;No;-41,00;-205,00;162;-41,00;-205,00;0,00;0,00;0,00;15h20min;-1.173,00 +WINJ26;26/02/2026 12:40:00;26/02/2026 13:00:00;20min;1;1;C;192.980,00;193.370,00;192.335,00;Sim;78,00;390,00;163;78,00;390,00;0,00;0,00;0,00;3h35min;-1.095,00 +WINJ26;26/02/2026 13:15:00;26/02/2026 13:20:00;5min;1;1;C;193.550,00;193.805,00;192.335,00;No;51,00;255,00;164;51,00;255,00;0,00;0,00;0,00;35min;-1.044,00 +WINJ26;26/02/2026 15:35:00;26/02/2026 15:40:00;5min;1;1;C;193.690,00;193.880,00;192.335,00;No;38,00;190,00;165;38,00;190,00;0,00;0,00;0,00;2h20min;-1.006,00 +WINJ26;26/02/2026 16:50:00;26/02/2026 16:55:00;5min;1;1;C;194.135,00;194.110,00;192.335,00;No;-5,00;-25,00;166;-5,00;-25,00;0,00;0,00;0,00;1h15min;-1.011,00 +WINJ26;27/02/2026 09:05:00;27/02/2026 09:10:00;5min;1;1;V;192.575,00;192.490,00;192.335,00;No;-17,00;-85,00;167;-17,00;-85,00;0,00;0,00;0,00;16h15min;-1.028,00 +WINJ26;27/02/2026 10:25:00;27/02/2026 10:30:00;5min;1;1;V;192.865,00;193.030,00;192.335,00;Sim;33,00;165,00;168;33,00;165,00;0,00;0,00;0,00;1h20min;-995,00 +WINJ26;02/03/2026 14:15:00;02/03/2026 14:20:00;5min;1;1;C;191.780,00;191.755,00;192.335,00;Sim;-5,00;-25,00;169;-5,00;-25,00;0,00;0,00;0,00;3d3h;-1.000,00 +WINJ26;02/03/2026 15:40:00;02/03/2026 15:45:00;5min;1;1;C;192.290,00;192.095,00;192.335,00;No;-39,00;-195,00;170;-39,00;-195,00;0,00;0,00;0,00;1h25min;-1.039,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv new file mode 100644 index 0000000..f34ddb4 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv @@ -0,0 +1,73 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;30/09/2025 12:00:00;30/09/2025 12:30:00;30min;1;1;V;155.875,00;156.000,00;192.285,00;No;25,00;125,00;1;25,00;125,00;0,00;0,00;0,00; - ;25,00 +WINJ26;03/10/2025 10:00:00;07/10/2025 10:45:00;4d;1;1;C;153.755,00;151.040,00;192.285,00;No;-543,00;-2.715,00;2;-543,00;-2.715,00;0,00;0,00;0,00;2d22h;-518,00 +WINJ26;10/10/2025 09:15:00;13/10/2025 10:15:00;3d1h;1;1;C;151.200,00;151.100,00;192.285,00;Sim;-20,00;-100,00;3;-20,00;-100,00;0,00;0,00;0,00;6d23h;-538,00 +WINJ26;17/10/2025 11:45:00;17/10/2025 12:00:00;15min;1;1;C;151.850,00;151.925,00;192.285,00;No;15,00;75,00;4;15,00;75,00;0,00;0,00;0,00;7d2h;-523,00 +WINJ26;21/10/2025 10:45:00;21/10/2025 11:00:00;15min;1;1;V;152.950,00;153.180,00;192.285,00;No;46,00;230,00;5;46,00;230,00;0,00;0,00;0,00;3d23h;-477,00 +WINJ26;05/11/2025 12:15:00;05/11/2025 12:45:00;30min;1;1;C;160.705,00;160.720,00;192.285,00;No;3,00;15,00;6;3,00;15,00;0,00;0,00;0,00;15d1h;-474,00 +WINJ26;10/11/2025 09:45:00;10/11/2025 10:00:00;15min;1;1;C;163.150,00;163.365,00;192.285,00;No;43,00;215,00;7;43,00;215,00;0,00;0,00;0,00;4d21h;-431,00 +WINJ26;11/11/2025 09:15:00;11/11/2025 09:30:00;15min;1;1;C;164.810,00;164.730,00;192.285,00;No;-16,00;-80,00;8;-16,00;-80,00;0,00;0,00;0,00;23h30min;-447,00 +WINJ26;26/11/2025 10:15:00;26/11/2025 15:00:00;4h45min;1;1;V;165.900,00;164.250,00;192.285,00;Sim;-330,00;-1.650,00;9;-330,00;-1.650,00;0,00;0,00;0,00;15d1h;-777,00 +WINJ26;28/11/2025 10:00:00;28/11/2025 10:30:00;30min;1;1;C;166.235,00;166.100,00;192.285,00;No;-27,00;-135,00;10;-27,00;-135,00;0,00;0,00;0,00;1d23h;-804,00 +WINJ26;01/12/2025 09:15:00;01/12/2025 10:15:00;1h;1;1;V;166.090,00;166.745,00;192.285,00;Sim;131,00;655,00;11;131,00;655,00;0,00;0,00;0,00;2d23h;-673,00 +WINJ26;02/12/2025 09:15:00;02/12/2025 09:30:00;15min;1;1;C;166.580,00;166.840,00;192.285,00;No;52,00;260,00;12;52,00;260,00;0,00;0,00;0,00;1d;-621,00 +WINJ26;04/12/2025 12:15:00;04/12/2025 18:00:00;5h45min;1;1;V;172.000,00;171.435,00;192.285,00;Sim;-113,00;-565,00;13;-113,00;-565,00;0,00;0,00;0,00;2d3h;-734,00 +WINJ26;09/12/2025 13:45:00;10/12/2025 09:00:00;19h15min;1;1;V;165.750,00;164.500,00;192.285,00;No;-250,00;-1.250,00;14;-250,00;-1.250,00;0,00;0,00;0,00;5d1h;-984,00 +WINJ26;17/12/2025 14:00:00;17/12/2025 16:00:00;2h;1;1;C;163.675,00;163.670,00;192.285,00;Sim;-1,00;-5,00;15;-1,00;-5,00;0,00;0,00;0,00;8d;-985,00 +WINJ26;19/12/2025 09:15:00;19/12/2025 09:30:00;15min;1;1;C;164.745,00;164.520,00;192.285,00;No;-45,00;-225,00;16;-45,00;-225,00;0,00;0,00;0,00;1d19h;-1.030,00 +WINJ26;19/12/2025 12:45:00;19/12/2025 14:30:00;1h45min;1;1;V;165.175,00;165.475,00;192.285,00;Sim;60,00;300,00;17;60,00;300,00;0,00;0,00;0,00;3h30min;-970,00 +WINJ26;23/12/2025 10:15:00;23/12/2025 10:30:00;15min;1;1;C;165.455,00;165.390,00;192.285,00;No;-13,00;-65,00;18;-13,00;-65,00;0,00;0,00;0,00;3d21h;-983,00 +WINJ26;23/12/2025 18:00:00;23/12/2025 18:15:00;15min;1;1;C;166.590,00;166.690,00;192.285,00;No;20,00;100,00;19;20,00;100,00;0,00;0,00;0,00;7h45min;-963,00 +WINJ26;29/12/2025 15:30:00;29/12/2025 15:45:00;15min;1;1;V;165.920,00;166.000,00;192.285,00;Sim;16,00;80,00;20;16,00;80,00;0,00;0,00;0,00;5d21h;-947,00 +WINJ26;30/12/2025 09:00:00;30/12/2025 09:15:00;15min;1;1;C;166.530,00;167.400,00;192.285,00;Sim;174,00;870,00;21;174,00;870,00;0,00;0,00;0,00;17h30min;-773,00 +WINJ26;30/12/2025 15:45:00;30/12/2025 17:15:00;1h30min;1;1;V;167.630,00;167.680,00;192.285,00;Sim;10,00;50,00;22;10,00;50,00;0,00;0,00;0,00;6h45min;-763,00 +WINJ26;02/01/2026 15:00:00;02/01/2026 15:15:00;15min;1;1;V;165.950,00;165.965,00;192.285,00;No;3,00;15,00;23;3,00;15,00;0,00;0,00;0,00;2d23h;-760,00 +WINJ26;05/01/2026 17:00:00;06/01/2026 10:15:00;17h15min;1;1;V;169.415,00;167.545,00;192.285,00;Sim;-374,00;-1.870,00;24;-374,00;-1.870,00;0,00;0,00;0,00;3d2h;-1.134,00 +WINJ26;06/01/2026 11:15:00;06/01/2026 11:30:00;15min;1;1;C;169.740,00;169.305,00;192.285,00;No;-87,00;-435,00;25;-87,00;-435,00;0,00;0,00;0,00;18h15min;-1.221,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:30:00;15min;1;1;V;167.460,00;167.350,00;192.285,00;No;-22,00;-110,00;26;-22,00;-110,00;0,00;0,00;0,00;1d22h;-1.243,00 +WINJ26;08/01/2026 09:45:00;08/01/2026 10:30:00;45min;1;1;C;167.630,00;167.945,00;192.285,00;Sim;63,00;315,00;27;63,00;315,00;0,00;0,00;0,00;30min;-1.180,00 +WINJ26;08/01/2026 15:15:00;08/01/2026 15:45:00;30min;1;1;V;167.870,00;167.775,00;192.285,00;Sim;-19,00;-95,00;28;-19,00;-95,00;0,00;0,00;0,00;5h30min;-1.199,00 +WINJ26;09/01/2026 09:15:00;09/01/2026 09:30:00;15min;1;1;V;168.050,00;168.115,00;192.285,00;Sim;13,00;65,00;29;13,00;65,00;0,00;0,00;0,00;18h;-1.186,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.285,00;No;-87,00;-435,00;30;-87,00;-435,00;0,00;0,00;0,00;3d;-1.273,00 +WINJ26;12/01/2026 15:00:00;12/01/2026 15:15:00;15min;1;1;C;168.670,00;168.745,00;192.285,00;Sim;15,00;75,00;31;15,00;75,00;0,00;0,00;0,00;5h45min;-1.258,00 +WINJ26;13/01/2026 09:15:00;13/01/2026 09:30:00;15min;1;1;V;167.890,00;168.290,00;192.285,00;Sim;80,00;400,00;32;80,00;400,00;0,00;0,00;0,00;18h15min;-1.178,00 +WINJ26;13/01/2026 10:30:00;13/01/2026 10:45:00;15min;1;1;V;167.910,00;167.430,00;192.285,00;No;-96,00;-480,00;33;-96,00;-480,00;0,00;0,00;0,00;1h15min;-1.274,00 +WINJ26;13/01/2026 14:15:00;13/01/2026 17:00:00;2h45min;1;1;C;167.355,00;167.335,00;192.285,00;Sim;-4,00;-20,00;34;-4,00;-20,00;0,00;0,00;0,00;3h45min;-1.278,00 +WINJ26;14/01/2026 10:00:00;14/01/2026 10:15:00;15min;1;1;C;168.200,00;168.390,00;192.285,00;No;38,00;190,00;35;38,00;190,00;0,00;0,00;0,00;19h45min;-1.240,00 +WINJ26;14/01/2026 14:15:00;14/01/2026 14:30:00;15min;1;1;C;168.920,00;168.975,00;192.285,00;No;11,00;55,00;36;11,00;55,00;0,00;0,00;0,00;4h15min;-1.229,00 +WINJ26;16/01/2026 09:15:00;16/01/2026 09:30:00;15min;1;1;C;171.245,00;171.005,00;192.285,00;No;-48,00;-240,00;37;-48,00;-240,00;0,00;0,00;0,00;1d19h;-1.277,00 +WINJ26;16/01/2026 17:45:00;16/01/2026 18:00:00;15min;1;1;V;169.595,00;169.550,00;192.285,00;Sim;-9,00;-45,00;38;-9,00;-45,00;0,00;0,00;0,00;8h30min;-1.286,00 +WINJ26;21/01/2026 16:30:00;21/01/2026 16:45:00;15min;1;1;C;176.065,00;176.080,00;192.285,00;No;3,00;15,00;39;3,00;15,00;0,00;0,00;0,00;4d22h;-1.283,00 +WINJ26;22/01/2026 09:15:00;22/01/2026 09:30:00;15min;1;1;C;177.635,00;177.520,00;192.285,00;No;-23,00;-115,00;40;-23,00;-115,00;0,00;0,00;0,00;16h45min;-1.306,00 +WINJ26;22/01/2026 16:15:00;22/01/2026 16:45:00;30min;1;1;V;180.900,00;180.825,00;192.285,00;Sim;-15,00;-75,00;41;-15,00;-75,00;0,00;0,00;0,00;7h;-1.321,00 +WINJ26;23/01/2026 17:15:00;23/01/2026 17:30:00;15min;1;1;C;184.290,00;185.375,00;192.285,00;No;217,00;1.085,00;42;217,00;1.085,00;0,00;0,00;0,00;1d1h;-1.104,00 +WINJ26;27/01/2026 15:00:00;27/01/2026 15:15:00;15min;1;1;V;187.120,00;187.170,00;192.285,00;Sim;10,00;50,00;43;10,00;50,00;0,00;0,00;0,00;3d21h;-1.094,00 +WINJ26;28/01/2026 11:45:00;28/01/2026 12:00:00;15min;1;1;C;189.455,00;189.550,00;192.285,00;No;19,00;95,00;44;19,00;95,00;0,00;0,00;0,00;20h45min;-1.075,00 +WINJ26;29/01/2026 11:45:00;29/01/2026 14:30:00;2h45min;1;1;C;191.235,00;188.500,00;192.285,00;No;-547,00;-2.735,00;45;-547,00;-2.735,00;0,00;0,00;0,00;1d;-1.622,00 +WINJ26;30/01/2026 12:45:00;30/01/2026 15:30:00;2h45min;1;1;C;188.475,00;185.180,00;192.285,00;Sim;-659,00;-3.295,00;46;-659,00;-3.295,00;0,00;0,00;0,00;1d1h;-2.281,00 +WINJ26;02/02/2026 10:15:00;02/02/2026 11:30:00;1h15min;1;1;V;186.240,00;186.300,00;192.285,00;No;12,00;60,00;47;12,00;60,00;0,00;0,00;0,00;2d21h;-2.269,00 +WINJ26;02/02/2026 17:15:00;02/02/2026 17:30:00;15min;1;1;C;186.735,00;187.045,00;192.285,00;Sim;62,00;310,00;48;62,00;310,00;0,00;0,00;0,00;7h;-2.207,00 +WINJ26;03/02/2026 13:30:00;03/02/2026 14:15:00;45min;1;1;V;190.295,00;190.815,00;192.285,00;Sim;104,00;520,00;49;104,00;520,00;0,00;0,00;0,00;20h15min;-2.103,00 +WINJ26;03/02/2026 16:15:00;03/02/2026 16:45:00;30min;1;1;C;189.965,00;190.160,00;192.285,00;No;39,00;195,00;50;39,00;195,00;0,00;0,00;0,00;2h45min;-2.064,00 +WINJ26;04/02/2026 09:15:00;04/02/2026 09:30:00;15min;1;1;V;189.150,00;189.705,00;192.285,00;No;111,00;555,00;51;111,00;555,00;0,00;0,00;0,00;17h;-1.953,00 +WINJ26;04/02/2026 11:00:00;04/02/2026 11:15:00;15min;1;1;V;188.415,00;188.525,00;192.285,00;No;22,00;110,00;52;22,00;110,00;0,00;0,00;0,00;1h45min;-1.931,00 +WINJ26;05/02/2026 11:45:00;05/02/2026 12:00:00;15min;1;1;C;188.290,00;187.535,00;192.285,00;Sim;-151,00;-755,00;53;-151,00;-755,00;0,00;0,00;0,00;1d;-2.082,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:15:00;15min;1;1;C;187.805,00;187.650,00;192.285,00;Sim;-31,00;-155,00;54;-31,00;-155,00;0,00;0,00;0,00;3d21h;-2.113,00 +WINJ26;11/02/2026 10:30:00;11/02/2026 10:45:00;15min;1;1;C;192.455,00;192.455,00;192.285,00;No;0;0;55;0;0;0,00;0,00;0,00;2d1h;-2.113,00 +WINJ26;12/02/2026 09:15:00;12/02/2026 09:30:00;15min;1;1;V;193.200,00;193.365,00;192.285,00;Sim;33,00;165,00;56;33,00;165,00;0,00;0,00;0,00;22h45min;-2.080,00 +WINJ26;18/02/2026 16:15:00;18/02/2026 16:30:00;15min;1;1;V;188.970,00;189.050,00;192.285,00;No;16,00;80,00;57;16,00;80,00;0,00;0,00;0,00;6d7h;-2.064,00 +WINJ26;19/02/2026 09:15:00;19/02/2026 09:30:00;15min;1;1;C;190.305,00;190.380,00;192.285,00;Sim;15,00;75,00;58;15,00;75,00;0,00;0,00;0,00;17h;-2.049,00 +WINJ26;19/02/2026 16:45:00;19/02/2026 17:00:00;15min;1;1;V;191.675,00;191.660,00;192.285,00;Sim;-3,00;-15,00;59;-3,00;-15,00;0,00;0,00;0,00;7h30min;-2.052,00 +WINJ26;20/02/2026 09:15:00;20/02/2026 09:30:00;15min;1;1;V;191.020,00;191.230,00;192.285,00;No;42,00;210,00;60;42,00;210,00;0,00;0,00;0,00;16h30min;-2.010,00 +WINJ26;20/02/2026 10:45:00;20/02/2026 11:00:00;15min;1;1;V;190.595,00;190.505,00;192.285,00;No;-18,00;-90,00;61;-18,00;-90,00;0,00;0,00;0,00;1h30min;-2.028,00 +WINJ26;25/02/2026 17:15:00;25/02/2026 17:30:00;15min;1;1;V;194.090,00;193.910,00;192.285,00;Sim;-36,00;-180,00;62;-36,00;-180,00;0,00;0,00;0,00;5d6h;-2.064,00 +WINJ26;26/02/2026 12:15:00;26/02/2026 12:30:00;15min;1;1;V;192.665,00;193.005,00;192.285,00;No;68,00;340,00;63;68,00;340,00;0,00;0,00;0,00;19h;-1.996,00 +WINJ26;26/02/2026 15:45:00;26/02/2026 16:00:00;15min;1;1;C;193.840,00;193.800,00;192.285,00;No;-8,00;-40,00;64;-8,00;-40,00;0,00;0,00;0,00;3h30min;-2.004,00 +WINJ26;27/02/2026 09:15:00;27/02/2026 09:30:00;15min;1;1;V;193.430,00;193.035,00;192.285,00;Sim;-79,00;-395,00;65;-79,00;-395,00;0,00;0,00;0,00;17h30min;-2.083,00 +WINJ26;27/02/2026 14:00:00;27/02/2026 14:15:00;15min;1;1;V;192.775,00;192.800,00;192.285,00;No;5,00;25,00;66;5,00;25,00;0,00;0,00;0,00;4h45min;-2.078,00 +WINJ26;02/03/2026 13:45:00;02/03/2026 14:00:00;15min;1;1;C;191.625,00;191.365,00;192.285,00;Sim;-52,00;-260,00;67;-52,00;-260,00;0,00;0,00;0,00;2d23h;-2.130,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv new file mode 100644 index 0000000..a6e8da2 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv @@ -0,0 +1,44 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;01/10/2025 09:30:00;01/10/2025 10:00:00;30min;1;1;C;157.000,00;156.750,00;192.245,00;No;-50,00;-250,00;1;-50,00;-250,00;0,00;0,00;0,00; - ;-50,00 +WINJ26;03/10/2025 10:00:00;09/10/2025 15:00:00;6d5h;1;1;C;153.755,00;150.950,00;192.245,00;Sim;-561,00;-2.805,00;2;-561,00;-2.805,00;0,00;0,00;0,00;2d;-611,00 +WINJ26;10/10/2025 09:30:00;13/10/2025 12:00:00;3d2h;1;1;C;151.300,00;151.200,00;192.245,00;Sim;-20,00;-100,00;3;-20,00;-100,00;0,00;0,00;0,00;6d23h;-631,00 +WINJ26;17/10/2025 11:00:00;17/10/2025 11:30:00;30min;1;1;C;151.365,00;151.850,00;192.245,00;No;97,00;485,00;4;97,00;485,00;0,00;0,00;0,00;7d1h;-534,00 +WINJ26;29/10/2025 11:30:00;29/10/2025 12:00:00;30min;1;1;C;157.000,00;157.250,00;192.245,00;No;50,00;250,00;5;50,00;250,00;0,00;0,00;0,00;12d;-484,00 +WINJ26;30/10/2025 15:00:00;30/10/2025 16:00:00;1h;1;1;C;157.475,00;157.295,00;192.245,00;No;-36,00;-180,00;6;-36,00;-180,00;0,00;0,00;0,00;1d3h;-520,00 +WINJ26;05/11/2025 10:00:00;05/11/2025 18:00:00;8h;1;1;V;161.940,00;158.820,00;192.245,00;No;-624,00;-3.120,00;7;-624,00;-3.120,00;0,00;0,00;0,00;5d19h;-1.144,00 +WINJ26;07/11/2025 17:30:00;07/11/2025 18:00:00;30min;1;1;C;162.235,00;162.420,00;192.245,00;No;37,00;185,00;8;37,00;185,00;0,00;0,00;0,00;2d7h;-1.107,00 +WINJ26;10/11/2025 09:30:00;10/11/2025 10:00:00;30min;1;1;C;163.150,00;163.365,00;192.245,00;No;43,00;215,00;9;43,00;215,00;0,00;0,00;0,00;2d16h;-1.064,00 +WINJ26;10/11/2025 11:30:00;10/11/2025 12:00:00;30min;1;1;C;163.370,00;163.405,00;192.245,00;No;7,00;35,00;10;7,00;35,00;0,00;0,00;0,00;2h;-1.057,00 +WINJ26;11/11/2025 10:30:00;11/11/2025 11:00:00;30min;1;1;C;165.400,00;166.075,00;192.245,00;No;135,00;675,00;11;135,00;675,00;0,00;0,00;0,00;23h;-922,00 +WINJ26;12/11/2025 11:00:00;12/11/2025 12:30:00;1h30min;1;1;V;165.300,00;165.880,00;192.245,00;Sim;116,00;580,00;12;116,00;580,00;0,00;0,00;0,00;1d;-806,00 +WINJ26;13/11/2025 10:30:00;13/11/2025 11:00:00;30min;1;1;C;166.000,00;165.920,00;192.245,00;No;-16,00;-80,00;13;-16,00;-80,00;0,00;0,00;0,00;23h30min;-822,00 +WINJ26;26/11/2025 10:30:00;26/11/2025 11:00:00;30min;1;1;C;164.900,00;165.300,00;192.245,00;Sim;80,00;400,00;14;80,00;400,00;0,00;0,00;0,00;13d;-742,00 +WINJ26;28/11/2025 10:00:00;28/11/2025 10:30:00;30min;1;1;C;166.235,00;166.100,00;192.245,00;No;-27,00;-135,00;15;-27,00;-135,00;0,00;0,00;0,00;1d23h;-769,00 +WINJ26;04/12/2025 10:30:00;04/12/2025 11:00:00;30min;1;1;C;170.850,00;171.250,00;192.245,00;No;80,00;400,00;16;80,00;400,00;0,00;0,00;0,00;6d;-689,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 13:30:00;30min;1;1;V;168.115,00;170.835,00;192.245,00;Sim;544,00;2.720,00;17;544,00;2.720,00;0,00;0,00;0,00;1d2h;-145,00 +WINJ26;10/12/2025 17:00:00;11/12/2025 10:00:00;17h;1;1;V;165.615,00;165.625,00;192.245,00;No;2,00;10,00;18;2,00;10,00;0,00;0,00;0,00;5d4h;-143,00 +WINJ26;22/12/2025 11:30:00;22/12/2025 12:00:00;30min;1;1;V;163.750,00;163.620,00;192.245,00;No;-26,00;-130,00;19;-26,00;-130,00;0,00;0,00;0,00;11d18h;-169,00 +WINJ26;22/12/2025 14:00:00;22/12/2025 16:00:00;2h;1;1;C;164.520,00;164.360,00;192.245,00;Sim;-32,00;-160,00;20;-32,00;-160,00;0,00;0,00;0,00;2h30min;-201,00 +WINJ26;30/12/2025 14:30:00;30/12/2025 15:00:00;30min;1;1;C;167.795,00;167.845,00;192.245,00;No;10,00;50,00;21;10,00;50,00;0,00;0,00;0,00;8d;-191,00 +WINJ26;02/01/2026 12:30:00;02/01/2026 13:00:00;30min;1;1;V;166.355,00;166.460,00;192.245,00;Sim;21,00;105,00;22;21,00;105,00;0,00;0,00;0,00;2d22h;-170,00 +WINJ26;13/01/2026 09:30:00;13/01/2026 10:00:00;30min;1;1;V;167.705,00;167.890,00;192.245,00;Sim;37,00;185,00;23;37,00;185,00;0,00;0,00;0,00;10d21h;-133,00 +WINJ26;14/01/2026 14:30:00;14/01/2026 15:00:00;30min;1;1;C;168.975,00;168.930,00;192.245,00;No;-9,00;-45,00;24;-9,00;-45,00;0,00;0,00;0,00;1d5h;-142,00 +WINJ26;23/01/2026 15:00:00;26/01/2026 11:00:00;2d20h;1;1;V;183.135,00;181.920,00;192.245,00;Sim;-243,00;-1.215,00;25;-243,00;-1.215,00;0,00;0,00;0,00;9d;-385,00 +WINJ26;28/01/2026 12:00:00;28/01/2026 12:30:00;30min;1;1;C;189.550,00;188.475,00;192.245,00;No;-215,00;-1.075,00;26;-215,00;-1.075,00;0,00;0,00;0,00;4d21h;-600,00 +WINJ26;29/01/2026 12:00:00;29/01/2026 12:30:00;30min;1;1;V;188.090,00;189.110,00;192.245,00;Sim;204,00;1.020,00;27;204,00;1.020,00;0,00;0,00;0,00;1d;-396,00 +WINJ26;02/02/2026 10:30:00;02/02/2026 11:00:00;30min;1;1;C;187.055,00;187.505,00;192.245,00;Sim;90,00;450,00;28;90,00;450,00;0,00;0,00;0,00;3d22h;-306,00 +WINJ26;04/02/2026 09:30:00;04/02/2026 10:00:00;30min;1;1;V;188.980,00;189.150,00;192.245,00;Sim;34,00;170,00;29;34,00;170,00;0,00;0,00;0,00;1d23h;-272,00 +WINJ26;05/02/2026 14:30:00;05/02/2026 15:00:00;30min;1;1;C;187.760,00;187.595,00;192.245,00;No;-33,00;-165,00;30;-33,00;-165,00;0,00;0,00;0,00;1d5h;-305,00 +WINJ26;09/02/2026 09:00:00;09/02/2026 09:30:00;30min;1;1;C;187.805,00;187.980,00;192.245,00;No;35,00;175,00;31;35,00;175,00;0,00;0,00;0,00;3d18h;-270,00 +WINJ26;09/02/2026 15:30:00;09/02/2026 16:00:00;30min;1;1;C;189.885,00;190.105,00;192.245,00;No;44,00;220,00;32;44,00;220,00;0,00;0,00;0,00;6h30min;-226,00 +WINJ26;12/02/2026 09:30:00;12/02/2026 10:00:00;30min;1;1;V;192.980,00;193.200,00;192.245,00;Sim;44,00;220,00;33;44,00;220,00;0,00;0,00;0,00;2d18h;-182,00 +WINJ26;19/02/2026 09:30:00;19/02/2026 10:00:00;30min;1;1;C;190.380,00;190.580,00;192.245,00;No;40,00;200,00;34;40,00;200,00;0,00;0,00;0,00;7d;-142,00 +WINJ26;20/02/2026 09:30:00;20/02/2026 10:00:00;30min;1;1;V;190.705,00;191.020,00;192.245,00;No;63,00;315,00;35;63,00;315,00;0,00;0,00;0,00;1d;-79,00 +WINJ26;20/02/2026 14:30:00;23/02/2026 10:00:00;2d19h;1;1;V;192.560,00;191.415,00;192.245,00;Sim;-229,00;-1.145,00;36;-229,00;-1.145,00;0,00;0,00;0,00;5h;-308,00 +WINJ26;24/02/2026 18:00:00;25/02/2026 09:00:00;15h;1;1;C;195.185,00;196.500,00;192.245,00;No;263,00;1.315,00;37;263,00;1.315,00;0,00;0,00;0,00;4d3h;-45,00 +WINJ26;27/02/2026 16:30:00;27/02/2026 17:00:00;30min;1;1;V;191.835,00;191.960,00;192.245,00;Sim;25,00;125,00;38;25,00;125,00;0,00;0,00;0,00;2d22h;-20,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv new file mode 100644 index 0000000..9aa6cce --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv @@ -0,0 +1,35 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;30/09/2025 10:00:00;30/09/2025 11:00:00;1h;1;1;C;157.125,00;156.725,00;192.220,00;No;-80,00;-400,00;1;-80,00;-400,00;0,00;0,00;0,00; - ;-80,00 +WINJ26;01/10/2025 10:00:00;01/10/2025 11:00:00;1h;1;1;C;156.750,00;156.000,00;192.220,00;Sim;-150,00;-750,00;2;-150,00;-750,00;0,00;0,00;0,00;1d;-230,00 +WINJ26;10/10/2025 10:00:00;14/10/2025 10:00:00;4d;1;1;C;151.240,00;150.805,00;192.220,00;Sim;-87,00;-435,00;3;-87,00;-435,00;0,00;0,00;0,00;9d;-317,00 +WINJ26;15/10/2025 11:00:00;15/10/2025 13:00:00;2h;1;1;C;151.200,00;151.200,00;192.220,00;Sim;0;0;4;0;0;0,00;0,00;0,00;5d1h;-317,00 +WINJ26;15/10/2025 15:00:00;15/10/2025 17:00:00;2h;1;1;C;151.150,00;151.330,00;192.220,00;Sim;36,00;180,00;5;36,00;180,00;0,00;0,00;0,00;4h;-281,00 +WINJ26;16/10/2025 10:00:00;16/10/2025 11:00:00;1h;1;1;V;150.965,00;150.600,00;192.220,00;No;-73,00;-365,00;6;-73,00;-365,00;0,00;0,00;0,00;19h;-354,00 +WINJ26;17/10/2025 11:00:00;17/10/2025 12:00:00;1h;1;1;C;151.365,00;151.925,00;192.220,00;No;112,00;560,00;7;112,00;560,00;0,00;0,00;0,00;1d1h;-242,00 +WINJ26;20/10/2025 11:00:00;20/10/2025 12:00:00;1h;1;1;C;153.160,00;153.725,00;192.220,00;No;113,00;565,00;8;113,00;565,00;0,00;0,00;0,00;3d;-129,00 +WINJ26;22/10/2025 10:00:00;22/10/2025 11:00:00;1h;1;1;C;153.350,00;153.000,00;192.220,00;No;-70,00;-350,00;9;-70,00;-350,00;0,00;0,00;0,00;1d23h;-199,00 +WINJ26;30/10/2025 15:00:00;30/10/2025 16:00:00;1h;1;1;C;157.475,00;157.295,00;192.220,00;No;-36,00;-180,00;10;-36,00;-180,00;0,00;0,00;0,00;8d5h;-235,00 +WINJ26;07/11/2025 17:00:00;07/11/2025 18:00:00;1h;1;1;C;162.235,00;162.420,00;192.220,00;No;37,00;185,00;11;37,00;185,00;0,00;0,00;0,00;8d2h;-198,00 +WINJ26;10/11/2025 10:00:00;10/11/2025 11:00:00;1h;1;1;C;163.365,00;163.370,00;192.220,00;No;1,00;5,00;12;1,00;5,00;0,00;0,00;0,00;2d17h;-197,00 +WINJ26;21/11/2025 16:00:00;24/11/2025 17:00:00;3d1h;1;1;C;162.500,00;163.065,00;192.220,00;Sim;113,00;565,00;13;113,00;565,00;0,00;0,00;0,00;11d6h;-84,00 +WINJ26;28/11/2025 10:00:00;28/11/2025 11:00:00;1h;1;1;C;166.235,00;166.300,00;192.220,00;No;13,00;65,00;14;13,00;65,00;0,00;0,00;0,00;6d18h;-71,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.220,00;Sim;387,00;1.935,00;15;387,00;1.935,00;0,00;0,00;0,00;7d3h;316,00 +WINJ26;10/12/2025 17:00:00;11/12/2025 10:00:00;17h;1;1;V;165.615,00;165.625,00;192.220,00;No;2,00;10,00;16;2,00;10,00;0,00;0,00;0,00;5d4h;318,00 +WINJ26;18/12/2025 10:00:00;18/12/2025 11:00:00;1h;1;1;V;163.735,00;163.440,00;192.220,00;No;-59,00;-295,00;17;-59,00;-295,00;0,00;0,00;0,00;7d17h;259,00 +WINJ26;02/01/2026 11:00:00;02/01/2026 12:00:00;1h;1;1;V;166.845,00;166.705,00;192.220,00;Sim;-28,00;-140,00;18;-28,00;-140,00;0,00;0,00;0,00;15d1h;231,00 +WINJ26;07/01/2026 10:00:00;07/01/2026 11:00:00;1h;1;1;V;168.330,00;168.900,00;192.220,00;Sim;114,00;570,00;19;114,00;570,00;0,00;0,00;0,00;4d23h;345,00 +WINJ26;08/01/2026 18:00:00;09/01/2026 09:00:00;15h;1;1;C;168.190,00;168.615,00;192.220,00;No;85,00;425,00;20;85,00;425,00;0,00;0,00;0,00;1d8h;430,00 +WINJ26;12/01/2026 10:00:00;12/01/2026 11:00:00;1h;1;1;V;167.985,00;168.180,00;192.220,00;No;39,00;195,00;21;39,00;195,00;0,00;0,00;0,00;3d16h;469,00 +WINJ26;13/01/2026 10:00:00;13/01/2026 11:00:00;1h;1;1;V;167.645,00;167.705,00;192.220,00;No;12,00;60,00;22;12,00;60,00;0,00;0,00;0,00;1d;481,00 +WINJ26;02/02/2026 10:00:00;02/02/2026 11:00:00;1h;1;1;C;186.765,00;187.505,00;192.220,00;No;148,00;740,00;23;148,00;740,00;0,00;0,00;0,00;20d;629,00 +WINJ26;04/02/2026 10:00:00;04/02/2026 11:00:00;1h;1;1;V;188.525,00;188.980,00;192.220,00;Sim;91,00;455,00;24;91,00;455,00;0,00;0,00;0,00;2d;720,00 +WINJ26;09/02/2026 14:00:00;09/02/2026 15:00:00;1h;1;1;C;188.945,00;189.605,00;192.220,00;No;132,00;660,00;25;132,00;660,00;0,00;0,00;0,00;5d4h;852,00 +WINJ26;12/02/2026 10:00:00;12/02/2026 14:00:00;4h;1;1;V;192.510,00;192.980,00;192.220,00;Sim;94,00;470,00;26;94,00;470,00;0,00;0,00;0,00;2d20h;946,00 +WINJ26;19/02/2026 10:00:00;19/02/2026 11:00:00;1h;1;1;C;190.580,00;190.235,00;192.220,00;No;-69,00;-345,00;27;-69,00;-345,00;0,00;0,00;0,00;7d;877,00 +WINJ26;20/02/2026 10:00:00;20/02/2026 11:00:00;1h;1;1;V;190.595,00;190.705,00;192.220,00;No;22,00;110,00;28;22,00;110,00;0,00;0,00;0,00;1d;899,00 +WINJ26;27/02/2026 17:00:00;27/02/2026 18:00:00;1h;1;1;V;191.920,00;191.835,00;192.220,00;Sim;-17,00;-85,00;29;-17,00;-85,00;0,00;0,00;0,00;7d7h;882,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv new file mode 100644 index 0000000..8c90d5c --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv @@ -0,0 +1,135 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:28:00;19/12/2025 15:50:00;22min;1;1;C;165.120,00;165.130,00;192.250,00;No;2,00;10,00;1;2,00;10,00;0,00;0,00;0,00; - ;2,00 +WINJ26;19/12/2025 17:48:00;19/12/2025 18:06:00;18min;1;1;C;164.730,00;164.800,00;192.250,00;Sim;14,00;70,00;2;14,00;70,00;0,00;0,00;0,00;2h20min;16,00 +WINJ26;22/12/2025 11:32:00;22/12/2025 11:46:00;14min;1;1;C;163.570,00;163.840,00;192.250,00;Sim;54,00;270,00;3;54,00;270,00;0,00;0,00;0,00;2d17h;70,00 +WINJ26;23/12/2025 11:26:00;23/12/2025 11:34:00;8min;1;1;C;165.355,00;165.550,00;192.250,00;No;39,00;195,00;4;39,00;195,00;0,00;0,00;0,00;23h54min;109,00 +WINJ26;29/12/2025 09:02:00;29/12/2025 09:16:00;14min;1;1;V;167.000,00;167.230,00;192.250,00;No;46,00;230,00;5;46,00;230,00;0,00;0,00;0,00;5d21h;155,00 +WINJ26;30/12/2025 11:04:00;30/12/2025 11:08:00;4min;1;1;C;167.355,00;167.485,00;192.250,00;No;26,00;130,00;6;26,00;130,00;0,00;0,00;0,00;1d2h;181,00 +WINJ26;30/12/2025 13:14:00;30/12/2025 13:36:00;22min;1;1;V;167.780,00;167.660,00;192.250,00;Sim;-24,00;-120,00;7;-24,00;-120,00;0,00;0,00;0,00;2h10min;157,00 +WINJ26;30/12/2025 17:58:00;30/12/2025 18:20:00;22min;1;1;C;167.470,00;167.180,00;192.250,00;No;-58,00;-290,00;8;-58,00;-290,00;0,00;0,00;0,00;4h44min;99,00 +WINJ26;02/01/2026 09:56:00;02/01/2026 10:10:00;14min;1;1;V;167.810,00;167.965,00;192.250,00;Sim;31,00;155,00;9;31,00;155,00;0,00;0,00;0,00;2d15h;130,00 +WINJ26;02/01/2026 12:26:00;02/01/2026 12:34:00;8min;1;1;C;166.380,00;166.525,00;192.250,00;Sim;29,00;145,00;10;29,00;145,00;0,00;0,00;0,00;2h30min;159,00 +WINJ26;02/01/2026 17:32:00;02/01/2026 17:44:00;12min;1;1;C;166.120,00;166.150,00;192.250,00;Sim;6,00;30,00;11;6,00;30,00;0,00;0,00;0,00;5h6min;165,00 +WINJ26;05/01/2026 13:06:00;05/01/2026 13:10:00;4min;1;1;V;167.030,00;167.080,00;192.250,00;No;10,00;50,00;12;10,00;50,00;0,00;0,00;0,00;2d19h;175,00 +WINJ26;07/01/2026 16:00:00;07/01/2026 16:12:00;12min;1;1;V;167.600,00;167.710,00;192.250,00;Sim;22,00;110,00;13;22,00;110,00;0,00;0,00;0,00;2d2h;197,00 +WINJ26;08/01/2026 15:56:00;08/01/2026 15:58:00;2min;1;1;V;167.895,00;168.010,00;192.250,00;Sim;23,00;115,00;14;23,00;115,00;0,00;0,00;0,00;23h56min;220,00 +WINJ26;09/01/2026 09:04:00;09/01/2026 09:12:00;8min;1;1;V;168.140,00;168.305,00;192.250,00;Sim;33,00;165,00;15;33,00;165,00;0,00;0,00;0,00;17h8min;253,00 +WINJ26;12/01/2026 14:04:00;12/01/2026 14:30:00;26min;1;1;C;168.615,00;168.625,00;192.250,00;No;2,00;10,00;16;2,00;10,00;0,00;0,00;0,00;3d5h;255,00 +WINJ26;14/01/2026 10:04:00;14/01/2026 10:26:00;22min;1;1;V;168.410,00;168.100,00;192.250,00;No;-62,00;-310,00;17;-62,00;-310,00;0,00;0,00;0,00;1d20h;193,00 +WINJ26;15/01/2026 10:06:00;15/01/2026 10:08:00;2min;1;1;V;170.600,00;170.840,00;192.250,00;Sim;48,00;240,00;18;48,00;240,00;0,00;0,00;0,00;1d;241,00 +WINJ26;15/01/2026 11:44:00;15/01/2026 12:00:00;16min;1;1;C;170.070,00;170.120,00;192.250,00;No;10,00;50,00;19;10,00;50,00;0,00;0,00;0,00;1h38min;251,00 +WINJ26;15/01/2026 17:58:00;15/01/2026 18:02:00;4min;1;1;C;170.600,00;170.700,00;192.250,00;No;20,00;100,00;20;20,00;100,00;0,00;0,00;0,00;6h14min;271,00 +WINJ26;16/01/2026 10:54:00;16/01/2026 11:16:00;22min;1;1;C;170.335,00;169.980,00;192.250,00;Sim;-71,00;-355,00;21;-71,00;-355,00;0,00;0,00;0,00;16h56min;200,00 +WINJ26;19/01/2026 09:00:00;19/01/2026 09:02:00;2min;1;1;V;169.210,00;169.140,00;192.250,00;No;-14,00;-70,00;22;-14,00;-70,00;0,00;0,00;0,00;2d22h;186,00 +WINJ26;19/01/2026 10:30:00;19/01/2026 10:38:00;8min;1;1;C;169.420,00;169.615,00;192.250,00;Sim;39,00;195,00;23;39,00;195,00;0,00;0,00;0,00;1h30min;225,00 +WINJ26;21/01/2026 09:02:00;21/01/2026 09:04:00;2min;1;1;C;171.830,00;171.800,00;192.250,00;No;-6,00;-30,00;24;-6,00;-30,00;0,00;0,00;0,00;1d22h;219,00 +WINJ26;21/01/2026 10:32:00;21/01/2026 10:44:00;12min;1;1;V;173.400,00;173.430,00;192.250,00;Sim;6,00;30,00;25;6,00;30,00;0,00;0,00;0,00;1h30min;225,00 +WINJ26;21/01/2026 13:38:00;21/01/2026 13:56:00;18min;1;1;V;174.945,00;174.990,00;192.250,00;Sim;9,00;45,00;26;9,00;45,00;0,00;0,00;0,00;3h6min;234,00 +WINJ26;21/01/2026 18:02:00;21/01/2026 18:12:00;10min;1;1;V;176.820,00;177.100,00;192.250,00;Sim;56,00;280,00;27;56,00;280,00;0,00;0,00;0,00;4h24min;290,00 +WINJ26;22/01/2026 10:04:00;22/01/2026 10:06:00;2min;1;1;V;177.800,00;177.870,00;192.250,00;Sim;14,00;70,00;28;14,00;70,00;0,00;0,00;0,00;16h2min;304,00 +WINJ26;22/01/2026 10:22:00;22/01/2026 10:34:00;12min;1;1;V;177.825,00;178.095,00;192.250,00;Sim;54,00;270,00;29;54,00;270,00;0,00;0,00;0,00;18min;358,00 +WINJ26;22/01/2026 11:38:00;22/01/2026 12:00:00;22min;1;1;V;180.030,00;179.710,00;192.250,00;Sim;-64,00;-320,00;30;-64,00;-320,00;0,00;0,00;0,00;1h16min;294,00 +WINJ26;22/01/2026 12:48:00;22/01/2026 13:10:00;22min;1;1;V;181.885,00;181.945,00;192.250,00;Sim;12,00;60,00;31;12,00;60,00;0,00;0,00;0,00;1h10min;306,00 +WINJ26;22/01/2026 15:12:00;22/01/2026 15:18:00;6min;1;1;V;181.700,00;181.840,00;192.250,00;No;28,00;140,00;32;28,00;140,00;0,00;0,00;0,00;2h24min;334,00 +WINJ26;22/01/2026 17:54:00;22/01/2026 18:04:00;10min;1;1;V;180.810,00;180.810,00;192.250,00;No;0;0;33;0;0;0,00;0,00;0,00;2h42min;334,00 +WINJ26;23/01/2026 13:04:00;23/01/2026 13:12:00;8min;1;1;V;182.350,00;182.505,00;192.250,00;Sim;31,00;155,00;34;31,00;155,00;0,00;0,00;0,00;19h10min;365,00 +WINJ26;23/01/2026 15:56:00;23/01/2026 16:18:00;22min;1;1;V;183.000,00;182.600,00;192.250,00;Sim;-80,00;-400,00;35;-80,00;-400,00;0,00;0,00;0,00;2h52min;285,00 +WINJ26;23/01/2026 16:34:00;23/01/2026 16:56:00;22min;1;1;V;183.355,00;183.160,00;192.250,00;Sim;-39,00;-195,00;36;-39,00;-195,00;0,00;0,00;0,00;38min;246,00 +WINJ26;23/01/2026 17:32:00;23/01/2026 17:34:00;2min;1;1;V;184.350,00;184.505,00;192.250,00;Sim;31,00;155,00;37;31,00;155,00;0,00;0,00;0,00;58min;277,00 +WINJ26;26/01/2026 11:28:00;26/01/2026 11:30:00;2min;1;1;C;182.940,00;183.185,00;192.250,00;No;49,00;245,00;38;49,00;245,00;0,00;0,00;0,00;2d17h;326,00 +WINJ26;26/01/2026 11:34:00;26/01/2026 11:48:00;14min;1;1;V;183.390,00;184.025,00;192.250,00;No;127,00;635,00;39;127,00;635,00;0,00;0,00;0,00;6min;453,00 +WINJ26;26/01/2026 14:40:00;26/01/2026 14:52:00;12min;1;1;V;183.835,00;184.030,00;192.250,00;Sim;39,00;195,00;40;39,00;195,00;0,00;0,00;0,00;3h6min;492,00 +WINJ26;26/01/2026 18:12:00;27/01/2026 09:02:00;14h50min;1;1;C;183.440,00;185.465,00;192.250,00;No;405,00;2.025,00;41;405,00;2.025,00;0,00;0,00;0,00;3h32min;897,00 +WINJ26;27/01/2026 10:44:00;27/01/2026 11:06:00;22min;1;1;V;187.100,00;186.440,00;192.250,00;Sim;-132,00;-660,00;42;-132,00;-660,00;0,00;0,00;0,00;16h32min;765,00 +WINJ26;27/01/2026 17:18:00;27/01/2026 17:26:00;8min;1;1;V;187.305,00;187.650,00;192.250,00;Sim;69,00;345,00;43;69,00;345,00;0,00;0,00;0,00;6h34min;834,00 +WINJ26;28/01/2026 09:04:00;28/01/2026 09:26:00;22min;1;1;V;187.490,00;187.440,00;192.250,00;No;-10,00;-50,00;44;-10,00;-50,00;0,00;0,00;0,00;15h46min;824,00 +WINJ26;28/01/2026 10:46:00;28/01/2026 11:08:00;22min;1;1;V;189.010,00;189.300,00;192.250,00;Sim;58,00;290,00;45;58,00;290,00;0,00;0,00;0,00;1h42min;882,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:10:00;10min;1;1;C;187.955,00;188.025,00;192.250,00;No;14,00;70,00;46;14,00;70,00;0,00;0,00;0,00;5h14min;896,00 +WINJ26;28/01/2026 17:20:00;28/01/2026 17:44:00;24min;1;1;V;189.375,00;188.875,00;192.250,00;No;-100,00;-500,00;47;-100,00;-500,00;0,00;0,00;0,00;1h20min;796,00 +WINJ26;29/01/2026 12:04:00;29/01/2026 12:26:00;22min;1;1;C;189.130,00;188.500,00;192.250,00;No;-126,00;-630,00;48;-126,00;-630,00;0,00;0,00;0,00;18h44min;670,00 +WINJ26;29/01/2026 14:34:00;29/01/2026 14:42:00;8min;1;1;V;188.215,00;188.415,00;192.250,00;No;40,00;200,00;49;40,00;200,00;0,00;0,00;0,00;2h30min;710,00 +WINJ26;29/01/2026 16:28:00;29/01/2026 16:34:00;6min;1;1;V;188.195,00;188.345,00;192.250,00;No;30,00;150,00;50;30,00;150,00;0,00;0,00;0,00;1h54min;740,00 +WINJ26;30/01/2026 09:14:00;30/01/2026 09:18:00;4min;1;1;C;187.180,00;187.520,00;192.250,00;Sim;68,00;340,00;51;68,00;340,00;0,00;0,00;0,00;16h46min;808,00 +WINJ26;30/01/2026 13:10:00;30/01/2026 13:34:00;24min;1;1;C;187.560,00;187.495,00;192.250,00;No;-13,00;-65,00;52;-13,00;-65,00;0,00;0,00;0,00;3h56min;795,00 +WINJ26;30/01/2026 15:28:00;30/01/2026 15:46:00;18min;1;1;C;185.350,00;185.350,00;192.250,00;Sim;0;0;53;0;0;0,00;0,00;0,00;2h18min;795,00 +WINJ26;02/02/2026 09:26:00;02/02/2026 09:48:00;22min;1;1;V;186.615,00;186.370,00;192.250,00;No;-49,00;-245,00;54;-49,00;-245,00;0,00;0,00;0,00;2d17h;746,00 +WINJ26;02/02/2026 10:44:00;02/02/2026 11:06:00;22min;1;1;V;187.575,00;187.300,00;192.250,00;Sim;-55,00;-275,00;55;-55,00;-275,00;0,00;0,00;0,00;1h18min;691,00 +WINJ26;02/02/2026 11:32:00;02/02/2026 11:36:00;4min;1;1;C;186.780,00;186.980,00;192.250,00;No;40,00;200,00;56;40,00;200,00;0,00;0,00;0,00;48min;731,00 +WINJ26;02/02/2026 15:10:00;02/02/2026 15:32:00;22min;1;1;C;186.820,00;186.640,00;192.250,00;No;-36,00;-180,00;57;-36,00;-180,00;0,00;0,00;0,00;3h38min;695,00 +WINJ26;02/02/2026 18:02:00;02/02/2026 18:24:00;22min;1;1;V;187.475,00;187.400,00;192.250,00;Sim;-15,00;-75,00;58;-15,00;-75,00;0,00;0,00;0,00;2h52min;680,00 +WINJ26;03/02/2026 11:28:00;03/02/2026 11:50:00;22min;1;1;V;191.935,00;191.120,00;192.250,00;Sim;-163,00;-815,00;59;-163,00;-815,00;0,00;0,00;0,00;17h26min;517,00 +WINJ26;03/02/2026 12:18:00;03/02/2026 12:28:00;10min;1;1;C;190.980,00;191.170,00;192.250,00;No;38,00;190,00;60;38,00;190,00;0,00;0,00;0,00;50min;555,00 +WINJ26;03/02/2026 14:48:00;03/02/2026 15:10:00;22min;1;1;C;189.870,00;189.910,00;192.250,00;Sim;8,00;40,00;61;8,00;40,00;0,00;0,00;0,00;2h30min;563,00 +WINJ26;04/02/2026 12:28:00;04/02/2026 12:32:00;4min;1;1;V;187.745,00;187.850,00;192.250,00;No;21,00;105,00;62;21,00;105,00;0,00;0,00;0,00;21h40min;584,00 +WINJ26;04/02/2026 13:54:00;04/02/2026 13:58:00;4min;1;1;C;186.205,00;186.385,00;192.250,00;Sim;36,00;180,00;63;36,00;180,00;0,00;0,00;0,00;1h26min;620,00 +WINJ26;04/02/2026 14:44:00;04/02/2026 15:06:00;22min;1;1;C;185.535,00;185.500,00;192.250,00;Sim;-7,00;-35,00;64;-7,00;-35,00;0,00;0,00;0,00;50min;613,00 +WINJ26;05/02/2026 09:06:00;05/02/2026 09:14:00;8min;1;1;V;186.250,00;186.235,00;192.250,00;No;-3,00;-15,00;65;-3,00;-15,00;0,00;0,00;0,00;18h22min;610,00 +WINJ26;05/02/2026 11:06:00;05/02/2026 11:28:00;22min;1;1;V;187.460,00;187.320,00;192.250,00;Sim;-28,00;-140,00;66;-28,00;-140,00;0,00;0,00;0,00;2h;582,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.250,00;No;41,00;205,00;67;41,00;205,00;0,00;0,00;0,00;1h26min;623,00 +WINJ26;06/02/2026 13:24:00;06/02/2026 13:28:00;4min;1;1;V;186.600,00;186.730,00;192.250,00;No;26,00;130,00;68;26,00;130,00;0,00;0,00;0,00;1d;649,00 +WINJ26;06/02/2026 15:16:00;06/02/2026 15:40:00;24min;1;1;C;186.525,00;186.430,00;192.250,00;Sim;-19,00;-95,00;69;-19,00;-95,00;0,00;0,00;0,00;1h52min;630,00 +WINJ26;06/02/2026 17:36:00;06/02/2026 17:40:00;4min;1;1;V;187.165,00;187.305,00;192.250,00;Sim;28,00;140,00;70;28,00;140,00;0,00;0,00;0,00;2h20min;658,00 +WINJ26;09/02/2026 09:08:00;09/02/2026 09:30:00;22min;1;1;V;187.980,00;187.495,00;192.250,00;Sim;-97,00;-485,00;71;-97,00;-485,00;0,00;0,00;0,00;2d15h;561,00 +WINJ26;09/02/2026 17:56:00;09/02/2026 18:02:00;6min;1;1;V;190.635,00;190.630,00;192.250,00;Sim;-1,00;-5,00;72;-1,00;-5,00;0,00;0,00;0,00;8h48min;560,00 +WINJ26;10/02/2026 09:48:00;10/02/2026 09:52:00;4min;1;1;C;189.660,00;189.775,00;192.250,00;No;23,00;115,00;73;23,00;115,00;0,00;0,00;0,00;15h52min;583,00 +WINJ26;10/02/2026 12:38:00;10/02/2026 13:00:00;22min;1;1;V;190.815,00;190.860,00;192.250,00;Sim;9,00;45,00;74;9,00;45,00;0,00;0,00;0,00;2h50min;592,00 +WINJ26;10/02/2026 13:46:00;10/02/2026 14:08:00;22min;1;1;C;190.440,00;190.350,00;192.250,00;No;-18,00;-90,00;75;-18,00;-90,00;0,00;0,00;0,00;1h8min;574,00 +WINJ26;11/02/2026 11:42:00;11/02/2026 11:50:00;8min;1;1;V;193.275,00;193.415,00;192.250,00;Sim;28,00;140,00;76;28,00;140,00;0,00;0,00;0,00;21h56min;602,00 +WINJ26;11/02/2026 13:26:00;11/02/2026 13:48:00;22min;1;1;V;194.635,00;193.950,00;192.250,00;Sim;-137,00;-685,00;77;-137,00;-685,00;0,00;0,00;0,00;1h44min;465,00 +WINJ26;11/02/2026 17:26:00;11/02/2026 17:28:00;2min;1;1;C;193.840,00;194.025,00;192.250,00;No;37,00;185,00;78;37,00;185,00;0,00;0,00;0,00;4h;502,00 +WINJ26;12/02/2026 09:04:00;12/02/2026 09:06:00;2min;1;1;V;193.410,00;193.330,00;192.250,00;No;-16,00;-80,00;79;-16,00;-80,00;0,00;0,00;0,00;15h38min;486,00 +WINJ26;12/02/2026 11:02:00;12/02/2026 11:10:00;8min;1;1;C;192.990,00;193.220,00;192.250,00;Sim;46,00;230,00;80;46,00;230,00;0,00;0,00;0,00;1h58min;532,00 +WINJ26;12/02/2026 11:28:00;12/02/2026 11:32:00;4min;1;1;V;193.405,00;193.735,00;192.250,00;Sim;66,00;330,00;81;66,00;330,00;0,00;0,00;0,00;26min;598,00 +WINJ26;12/02/2026 13:34:00;12/02/2026 13:38:00;4min;1;1;C;192.545,00;192.905,00;192.250,00;Sim;72,00;360,00;82;72,00;360,00;0,00;0,00;0,00;2h6min;670,00 +WINJ26;13/02/2026 10:22:00;13/02/2026 10:24:00;2min;1;1;C;188.785,00;189.060,00;192.250,00;Sim;55,00;275,00;83;55,00;275,00;0,00;0,00;0,00;20h48min;725,00 +WINJ26;13/02/2026 11:44:00;13/02/2026 11:46:00;2min;1;1;C;188.130,00;188.625,00;192.250,00;Sim;99,00;495,00;84;99,00;495,00;0,00;0,00;0,00;1h22min;824,00 +WINJ26;13/02/2026 12:44:00;13/02/2026 12:48:00;4min;1;1;V;188.760,00;189.100,00;192.250,00;No;68,00;340,00;85;68,00;340,00;0,00;0,00;0,00;1h;892,00 +WINJ26;13/02/2026 13:34:00;13/02/2026 13:56:00;22min;1;1;V;189.615,00;189.300,00;192.250,00;Sim;-63,00;-315,00;86;-63,00;-315,00;0,00;0,00;0,00;50min;829,00 +WINJ26;13/02/2026 15:38:00;13/02/2026 15:42:00;4min;1;1;V;190.025,00;190.205,00;192.250,00;Sim;36,00;180,00;87;36,00;180,00;0,00;0,00;0,00;2h4min;865,00 +WINJ26;13/02/2026 17:28:00;13/02/2026 17:50:00;22min;1;1;C;189.750,00;190.005,00;192.250,00;No;51,00;255,00;88;51,00;255,00;0,00;0,00;0,00;1h50min;916,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:16:00;16min;1;1;V;190.390,00;190.460,00;192.250,00;Sim;14,00;70,00;89;14,00;70,00;0,00;0,00;0,00;4d19h;930,00 +WINJ26;18/02/2026 16:42:00;18/02/2026 16:44:00;2min;1;1;C;188.940,00;189.045,00;192.250,00;Sim;21,00;105,00;90;21,00;105,00;0,00;0,00;0,00;3h42min;951,00 +WINJ26;18/02/2026 17:06:00;18/02/2026 17:14:00;8min;1;1;V;189.055,00;189.270,00;192.250,00;No;43,00;215,00;91;43,00;215,00;0,00;0,00;0,00;24min;994,00 +WINJ26;19/02/2026 09:02:00;19/02/2026 09:22:00;20min;1;1;V;190.145,00;190.090,00;192.250,00;Sim;-11,00;-55,00;92;-11,00;-55,00;0,00;0,00;0,00;15h56min;983,00 +WINJ26;19/02/2026 10:42:00;19/02/2026 10:44:00;2min;1;1;V;190.290,00;190.575,00;192.250,00;Sim;57,00;285,00;93;57,00;285,00;0,00;0,00;0,00;1h40min;1.040,00 +WINJ26;19/02/2026 13:54:00;19/02/2026 13:56:00;2min;1;1;C;192.075,00;192.255,00;192.250,00;No;36,00;180,00;94;36,00;180,00;0,00;0,00;0,00;3h12min;1.076,00 +WINJ26;19/02/2026 15:14:00;19/02/2026 15:16:00;2min;1;1;C;192.155,00;192.185,00;192.250,00;No;6,00;30,00;95;6,00;30,00;0,00;0,00;0,00;1h20min;1.082,00 +WINJ26;19/02/2026 16:52:00;19/02/2026 17:02:00;10min;1;1;C;191.670,00;191.780,00;192.250,00;Sim;22,00;110,00;96;22,00;110,00;0,00;0,00;0,00;1h38min;1.104,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:28:00;8min;1;1;C;191.630,00;191.690,00;192.250,00;Sim;12,00;60,00;97;12,00;60,00;0,00;0,00;0,00;28min;1.116,00 +WINJ26;19/02/2026 17:42:00;19/02/2026 18:04:00;22min;1;1;V;192.260,00;191.920,00;192.250,00;Sim;-68,00;-340,00;98;-68,00;-340,00;0,00;0,00;0,00;22min;1.048,00 +WINJ26;20/02/2026 11:38:00;20/02/2026 12:00:00;22min;1;1;V;191.405,00;190.995,00;192.250,00;No;-82,00;-410,00;99;-82,00;-410,00;0,00;0,00;0,00;17h56min;966,00 +WINJ26;20/02/2026 14:34:00;20/02/2026 14:40:00;6min;1;1;C;191.685,00;191.860,00;192.250,00;No;35,00;175,00;100;35,00;175,00;0,00;0,00;0,00;2h56min;1.001,00 +WINJ26;20/02/2026 15:36:00;20/02/2026 15:58:00;22min;1;1;V;193.020,00;192.815,00;192.250,00;Sim;-41,00;-205,00;101;-41,00;-205,00;0,00;0,00;0,00;1h2min;960,00 +WINJ26;20/02/2026 17:24:00;20/02/2026 17:30:00;6min;1;1;V;194.065,00;194.225,00;192.250,00;Sim;32,00;160,00;102;32,00;160,00;0,00;0,00;0,00;1h48min;992,00 +WINJ26;23/02/2026 13:14:00;23/02/2026 13:34:00;20min;1;1;C;192.385,00;192.395,00;192.250,00;No;2,00;10,00;103;2,00;10,00;0,00;0,00;0,00;2d19h;994,00 +WINJ26;23/02/2026 15:00:00;23/02/2026 15:22:00;22min;1;1;V;192.800,00;192.665,00;192.250,00;No;-27,00;-135,00;104;-27,00;-135,00;0,00;0,00;0,00;1h46min;967,00 +WINJ26;23/02/2026 15:34:00;23/02/2026 15:38:00;4min;1;1;V;192.765,00;192.795,00;192.250,00;Sim;6,00;30,00;105;6,00;30,00;0,00;0,00;0,00;34min;973,00 +WINJ26;23/02/2026 16:22:00;23/02/2026 16:28:00;6min;1;1;C;192.320,00;192.515,00;192.250,00;Sim;39,00;195,00;106;39,00;195,00;0,00;0,00;0,00;48min;1.012,00 +WINJ26;24/02/2026 10:38:00;24/02/2026 10:40:00;2min;1;1;V;193.690,00;193.925,00;192.250,00;Sim;47,00;235,00;107;47,00;235,00;0,00;0,00;0,00;18h16min;1.059,00 +WINJ26;24/02/2026 13:34:00;24/02/2026 13:44:00;10min;1;1;V;194.955,00;195.030,00;192.250,00;Sim;15,00;75,00;108;15,00;75,00;0,00;0,00;0,00;2h56min;1.074,00 +WINJ26;24/02/2026 16:12:00;24/02/2026 16:30:00;18min;1;1;C;194.780,00;194.815,00;192.250,00;No;7,00;35,00;109;7,00;35,00;0,00;0,00;0,00;2h38min;1.081,00 +WINJ26;24/02/2026 16:48:00;24/02/2026 16:56:00;8min;1;1;V;194.830,00;195.030,00;192.250,00;No;40,00;200,00;110;40,00;200,00;0,00;0,00;0,00;36min;1.121,00 +WINJ26;25/02/2026 09:16:00;25/02/2026 09:30:00;14min;1;1;V;196.370,00;196.870,00;192.250,00;Sim;100,00;500,00;111;100,00;500,00;0,00;0,00;0,00;16h28min;1.221,00 +WINJ26;25/02/2026 15:04:00;25/02/2026 15:10:00;6min;1;1;V;194.875,00;194.960,00;192.250,00;No;17,00;85,00;112;17,00;85,00;0,00;0,00;0,00;5h48min;1.238,00 +WINJ26;25/02/2026 17:38:00;25/02/2026 18:00:00;22min;1;1;V;194.495,00;194.325,00;192.250,00;No;-34,00;-170,00;113;-34,00;-170,00;0,00;0,00;0,00;2h34min;1.204,00 +WINJ26;26/02/2026 09:08:00;26/02/2026 09:10:00;2min;1;1;C;194.135,00;194.385,00;192.250,00;Sim;50,00;250,00;114;50,00;250,00;0,00;0,00;0,00;15h30min;1.254,00 +WINJ26;26/02/2026 10:04:00;26/02/2026 10:18:00;14min;1;1;V;194.510,00;194.585,00;192.250,00;Sim;15,00;75,00;115;15,00;75,00;0,00;0,00;0,00;56min;1.269,00 +WINJ26;26/02/2026 11:34:00;26/02/2026 11:56:00;22min;1;1;C;193.905,00;193.320,00;192.250,00;Sim;-117,00;-585,00;116;-117,00;-585,00;0,00;0,00;0,00;1h30min;1.152,00 +WINJ26;26/02/2026 14:34:00;26/02/2026 14:36:00;2min;1;1;C;193.475,00;193.425,00;192.250,00;Sim;-10,00;-50,00;117;-10,00;-50,00;0,00;0,00;0,00;3h;1.142,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:10:00;22min;1;1;V;193.895,00;193.760,00;192.250,00;No;-27,00;-135,00;118;-27,00;-135,00;0,00;0,00;0,00;1h14min;1.115,00 +WINJ26;27/02/2026 09:14:00;27/02/2026 09:20:00;6min;1;1;C;192.865,00;193.550,00;192.250,00;Sim;137,00;685,00;119;137,00;685,00;0,00;0,00;0,00;17h26min;1.252,00 +WINJ26;27/02/2026 11:18:00;27/02/2026 11:20:00;2min;1;1;V;193.015,00;192.990,00;192.250,00;No;-5,00;-25,00;120;-5,00;-25,00;0,00;0,00;0,00;2h4min;1.247,00 +WINJ26;27/02/2026 11:38:00;27/02/2026 11:42:00;4min;1;1;V;193.335,00;193.610,00;192.250,00;Sim;55,00;275,00;121;55,00;275,00;0,00;0,00;0,00;20min;1.302,00 +WINJ26;27/02/2026 15:14:00;27/02/2026 15:22:00;8min;1;1;V;192.620,00;192.685,00;192.250,00;No;13,00;65,00;122;13,00;65,00;0,00;0,00;0,00;3h36min;1.315,00 +WINJ26;27/02/2026 16:04:00;27/02/2026 16:10:00;6min;1;1;V;192.660,00;192.845,00;192.250,00;Sim;37,00;185,00;123;37,00;185,00;0,00;0,00;0,00;50min;1.352,00 +WINJ26;27/02/2026 16:46:00;27/02/2026 17:02:00;16min;1;1;C;191.815,00;191.940,00;192.250,00;Sim;25,00;125,00;124;25,00;125,00;0,00;0,00;0,00;42min;1.377,00 +WINJ26;02/03/2026 09:50:00;02/03/2026 10:08:00;18min;1;1;C;190.195,00;190.380,00;192.250,00;Sim;37,00;185,00;125;37,00;185,00;0,00;0,00;0,00;2d17h;1.414,00 +WINJ26;02/03/2026 11:06:00;02/03/2026 11:08:00;2min;1;1;C;190.110,00;190.315,00;192.250,00;Sim;41,00;205,00;126;41,00;205,00;0,00;0,00;0,00;1h16min;1.455,00 +WINJ26;02/03/2026 13:52:00;02/03/2026 13:58:00;6min;1;1;V;191.425,00;191.540,00;192.250,00;No;23,00;115,00;127;23,00;115,00;0,00;0,00;0,00;2h46min;1.478,00 +WINJ26;02/03/2026 15:04:00;02/03/2026 15:08:00;4min;1;1;V;191.885,00;191.895,00;192.250,00;Sim;2,00;10,00;128;2,00;10,00;0,00;0,00;0,00;1h12min;1.480,00 +WINJ26;02/03/2026 17:18:00;02/03/2026 17:38:00;20min;1;1;C;192.305,00;192.310,00;192.250,00;No;1,00;5,00;129;1,00;5,00;0,00;0,00;0,00;2h14min;1.481,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv new file mode 100644 index 0000000..a805db6 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv @@ -0,0 +1,78 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 17:25:00;26/08/2025 18:20:00;55min;1;1;C;148.400,00;149.050,00;192.250,00;No;130,00;650,00;1;130,00;650,00;0,00;0,00;0,00; - ;130,00 +WINJ26;03/10/2025 09:45:00;03/10/2025 11:00:00;1h15min;1;1;C;153.935,00;153.700,00;192.250,00;No;-47,00;-235,00;2;-47,00;-235,00;0,00;0,00;0,00;1m6d16h;83,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 11:20:00;5min;1;1;C;151.200,00;151.050,00;192.250,00;Sim;-30,00;-150,00;3;-30,00;-150,00;0,00;0,00;0,00;12d1h;53,00 +WINJ26;10/11/2025 10:30:00;10/11/2025 18:20:00;7h50min;1;1;V;164.000,00;162.950,00;192.250,00;No;-210,00;-1.050,00;4;-210,00;-1.050,00;0,00;0,00;0,00;25d23h;-157,00 +WINJ26;02/12/2025 09:25:00;02/12/2025 11:05:00;1h40min;1;1;V;167.730,00;166.820,00;192.250,00;Sim;-182,00;-910,00;5;-182,00;-910,00;0,00;0,00;0,00;21d22h;-339,00 +WINJ26;05/12/2025 09:05:00;05/12/2025 11:35:00;2h30min;1;1;V;171.570,00;172.000,00;192.250,00;Sim;86,00;430,00;6;86,00;430,00;0,00;0,00;0,00;2d23h;-253,00 +WINJ26;05/12/2025 17:20:00;08/12/2025 09:05:00;2d15h;1;1;C;165.000,00;166.250,00;192.250,00;No;250,00;1.250,00;7;250,00;1.250,00;0,00;0,00;0,00;8h15min;-3,00 +WINJ26;09/12/2025 13:45:00;09/12/2025 18:15:00;4h30min;1;1;V;164.700,00;164.500,00;192.250,00;No;-40,00;-200,00;8;-40,00;-200,00;0,00;0,00;0,00;3d20h;-43,00 +WINJ26;17/12/2025 09:15:00;17/12/2025 10:20:00;1h5min;1;1;C;164.810,00;163.620,00;192.250,00;Sim;-238,00;-1.190,00;9;-238,00;-1.190,00;0,00;0,00;0,00;7d19h;-281,00 +WINJ26;17/12/2025 10:45:00;17/12/2025 11:25:00;40min;1;1;C;163.200,00;163.815,00;192.250,00;Sim;123,00;615,00;10;123,00;615,00;0,00;0,00;0,00;1h30min;-158,00 +WINJ26;19/12/2025 11:10:00;19/12/2025 12:05:00;55min;1;1;V;165.800,00;165.155,00;192.250,00;Sim;-129,00;-645,00;11;-129,00;-645,00;0,00;0,00;0,00;2d;-287,00 +WINJ26;19/12/2025 12:10:00;19/12/2025 12:45:00;35min;1;1;V;165.475,00;165.645,00;192.250,00;Sim;34,00;170,00;12;34,00;170,00;0,00;0,00;0,00;1h;-253,00 +WINJ26;19/12/2025 15:00:00;19/12/2025 15:55:00;55min;1;1;C;165.135,00;165.090,00;192.250,00;No;-9,00;-45,00;13;-9,00;-45,00;0,00;0,00;0,00;2h50min;-262,00 +WINJ26;19/12/2025 18:00:00;19/12/2025 18:10:00;10min;1;1;C;164.745,00;164.905,00;192.250,00;Sim;32,00;160,00;14;32,00;160,00;0,00;0,00;0,00;3h;-230,00 +WINJ26;22/12/2025 09:10:00;22/12/2025 09:15:00;5min;1;1;V;165.050,00;165.200,00;192.250,00;No;30,00;150,00;15;30,00;150,00;0,00;0,00;0,00;2d15h;-200,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 12:10:00;25min;1;1;C;163.790,00;163.980,00;192.250,00;Sim;38,00;190,00;16;38,00;190,00;0,00;0,00;0,00;2h35min;-162,00 +WINJ26;22/12/2025 15:35:00;22/12/2025 15:40:00;5min;1;1;C;164.200,00;164.315,00;192.250,00;No;23,00;115,00;17;23,00;115,00;0,00;0,00;0,00;3h50min;-139,00 +WINJ26;23/12/2025 09:05:00;23/12/2025 09:10:00;5min;1;1;C;164.500,00;164.510,00;192.250,00;No;2,00;10,00;18;2,00;10,00;0,00;0,00;0,00;17h30min;-137,00 +WINJ26;23/12/2025 12:45:00;23/12/2025 13:30:00;45min;1;1;V;166.345,00;166.380,00;192.250,00;Sim;7,00;35,00;19;7,00;35,00;0,00;0,00;0,00;3h40min;-130,00 +WINJ26;29/12/2025 10:25:00;29/12/2025 11:20:00;55min;1;1;C;166.635,00;166.340,00;192.250,00;No;-59,00;-295,00;20;-59,00;-295,00;0,00;0,00;0,00;5d21h;-189,00 +WINJ26;02/01/2026 09:05:00;02/01/2026 09:10:00;5min;1;1;C;167.910,00;167.585,00;192.250,00;No;-65,00;-325,00;21;-65,00;-325,00;0,00;0,00;0,00;3d22h;-254,00 +WINJ26;02/01/2026 10:10:00;02/01/2026 10:15:00;5min;1;1;V;167.855,00;167.810,00;192.250,00;Sim;-9,00;-45,00;22;-9,00;-45,00;0,00;0,00;0,00;1h5min;-263,00 +WINJ26;02/01/2026 13:45:00;02/01/2026 14:40:00;55min;1;1;C;166.210,00;166.000,00;192.250,00;Sim;-42,00;-210,00;23;-42,00;-210,00;0,00;0,00;0,00;3h35min;-305,00 +WINJ26;05/01/2026 13:10:00;05/01/2026 14:05:00;55min;1;1;V;167.475,00;167.030,00;192.250,00;No;-89,00;-445,00;24;-89,00;-445,00;0,00;0,00;0,00;2d23h;-394,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.250,00;No;21,00;105,00;25;21,00;105,00;0,00;0,00;0,00;4h;-373,00 +WINJ26;07/01/2026 17:55:00;08/01/2026 09:20:00;15h25min;1;1;C;167.510,00;167.500,00;192.250,00;Sim;-2,00;-10,00;26;-2,00;-10,00;0,00;0,00;0,00;2d;-375,00 +WINJ26;09/01/2026 12:10:00;09/01/2026 12:50:00;40min;1;1;V;169.215,00;169.350,00;192.250,00;Sim;27,00;135,00;27;27,00;135,00;0,00;0,00;0,00;1d18h;-348,00 +WINJ26;12/01/2026 17:55:00;12/01/2026 18:15:00;20min;1;1;C;168.520,00;168.505,00;192.250,00;No;-3,00;-15,00;28;-3,00;-15,00;0,00;0,00;0,00;3d5h;-351,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.250,00;Sim;20,00;100,00;29;20,00;100,00;0,00;0,00;0,00;16h40min;-331,00 +WINJ26;14/01/2026 11:15:00;14/01/2026 11:25:00;10min;1;1;C;167.705,00;168.105,00;192.250,00;Sim;80,00;400,00;30;80,00;400,00;0,00;0,00;0,00;1d;-251,00 +WINJ26;15/01/2026 09:05:00;15/01/2026 09:40:00;35min;1;1;V;170.365,00;170.365,00;192.250,00;Sim;0;0;31;0;0;0,00;0,00;0,00;21h50min;-251,00 +WINJ26;15/01/2026 14:25:00;15/01/2026 15:20:00;55min;1;1;V;171.250,00;170.715,00;192.250,00;Sim;-107,00;-535,00;32;-107,00;-535,00;0,00;0,00;0,00;5h20min;-358,00 +WINJ26;19/01/2026 09:15:00;19/01/2026 09:25:00;10min;1;1;C;169.330,00;169.495,00;192.250,00;No;33,00;165,00;33;33,00;165,00;0,00;0,00;0,00;3d18h;-325,00 +WINJ26;19/01/2026 17:05:00;19/01/2026 17:15:00;10min;1;1;C;169.650,00;169.655,00;192.250,00;No;1,00;5,00;34;1,00;5,00;0,00;0,00;0,00;7h50min;-324,00 +WINJ26;20/01/2026 15:15:00;20/01/2026 15:40:00;25min;1;1;C;170.885,00;170.940,00;192.250,00;No;11,00;55,00;35;11,00;55,00;0,00;0,00;0,00;22h10min;-313,00 +WINJ26;20/01/2026 16:10:00;20/01/2026 16:40:00;30min;1;1;C;170.650,00;170.725,00;192.250,00;Sim;15,00;75,00;36;15,00;75,00;0,00;0,00;0,00;55min;-298,00 +WINJ26;20/01/2026 18:10:00;21/01/2026 09:00:00;14h50min;1;1;V;170.910,00;171.060,00;192.250,00;Sim;30,00;150,00;37;30,00;150,00;0,00;0,00;0,00;2h;-268,00 +WINJ26;21/01/2026 16:40:00;21/01/2026 17:35:00;55min;1;1;V;176.795,00;175.920,00;192.250,00;Sim;-175,00;-875,00;38;-175,00;-875,00;0,00;0,00;0,00;22h30min;-443,00 +WINJ26;23/01/2026 17:35:00;23/01/2026 17:55:00;20min;1;1;V;183.955,00;184.630,00;192.250,00;Sim;135,00;675,00;39;135,00;675,00;0,00;0,00;0,00;2d;-308,00 +WINJ26;26/01/2026 14:50:00;26/01/2026 15:00:00;10min;1;1;V;183.500,00;183.890,00;192.250,00;No;78,00;390,00;40;78,00;390,00;0,00;0,00;0,00;2d21h;-230,00 +WINJ26;27/01/2026 10:20:00;27/01/2026 11:15:00;55min;1;1;V;187.555,00;185.930,00;192.250,00;Sim;-325,00;-1.625,00;41;-325,00;-1.625,00;0,00;0,00;0,00;19h30min;-555,00 +WINJ26;27/01/2026 12:30:00;27/01/2026 13:15:00;45min;1;1;V;187.575,00;187.690,00;192.250,00;Sim;23,00;115,00;42;23,00;115,00;0,00;0,00;0,00;2h10min;-532,00 +WINJ26;28/01/2026 16:10:00;28/01/2026 16:25:00;15min;1;1;C;188.025,00;188.260,00;192.250,00;No;47,00;235,00;43;47,00;235,00;0,00;0,00;0,00;1d3h;-485,00 +WINJ26;29/01/2026 13:15:00;29/01/2026 14:10:00;55min;1;1;C;187.605,00;187.775,00;192.250,00;Sim;34,00;170,00;44;34,00;170,00;0,00;0,00;0,00;21h5min;-451,00 +WINJ26;29/01/2026 16:30:00;29/01/2026 17:00:00;30min;1;1;V;187.975,00;188.410,00;192.250,00;Sim;87,00;435,00;45;87,00;435,00;0,00;0,00;0,00;3h15min;-364,00 +WINJ26;30/01/2026 09:20:00;30/01/2026 10:15:00;55min;1;1;C;187.580,00;187.365,00;192.250,00;Sim;-43,00;-215,00;46;-43,00;-215,00;0,00;0,00;0,00;16h50min;-407,00 +WINJ26;04/02/2026 09:15:00;04/02/2026 10:10:00;55min;1;1;C;189.705,00;188.940,00;192.250,00;No;-153,00;-765,00;47;-153,00;-765,00;0,00;0,00;0,00;4d23h;-560,00 +WINJ26;04/02/2026 16:10:00;04/02/2026 16:50:00;40min;1;1;C;184.950,00;185.340,00;192.250,00;Sim;78,00;390,00;48;78,00;390,00;0,00;0,00;0,00;6h55min;-482,00 +WINJ26;06/02/2026 14:05:00;06/02/2026 14:40:00;35min;1;1;V;186.835,00;186.980,00;192.250,00;No;29,00;145,00;49;29,00;145,00;0,00;0,00;0,00;1d21h;-453,00 +WINJ26;06/02/2026 17:40:00;06/02/2026 18:15:00;35min;1;1;V;187.040,00;187.165,00;192.250,00;Sim;25,00;125,00;50;25,00;125,00;0,00;0,00;0,00;3h35min;-428,00 +WINJ26;09/02/2026 17:20:00;09/02/2026 18:15:00;55min;1;1;V;190.545,00;190.445,00;192.250,00;Sim;-20,00;-100,00;51;-20,00;-100,00;0,00;0,00;0,00;2d23h;-448,00 +WINJ26;10/02/2026 12:40:00;10/02/2026 13:25:00;45min;1;1;V;190.585,00;190.760,00;192.250,00;Sim;35,00;175,00;52;35,00;175,00;0,00;0,00;0,00;19h20min;-413,00 +WINJ26;11/02/2026 10:35:00;11/02/2026 11:30:00;55min;1;1;V;193.365,00;192.200,00;192.250,00;Sim;-233,00;-1.165,00;53;-233,00;-1.165,00;0,00;0,00;0,00;21h55min;-646,00 +WINJ26;13/02/2026 10:25:00;13/02/2026 11:20:00;55min;1;1;C;189.085,00;188.945,00;192.250,00;No;-28,00;-140,00;54;-28,00;-140,00;0,00;0,00;0,00;1d23h;-674,00 +WINJ26;13/02/2026 11:45:00;13/02/2026 12:30:00;45min;1;1;C;188.385,00;188.875,00;192.250,00;Sim;98,00;490,00;55;98,00;490,00;0,00;0,00;0,00;1h20min;-576,00 +WINJ26;18/02/2026 13:10:00;18/02/2026 13:25:00;15min;1;1;V;190.280,00;190.960,00;192.250,00;No;136,00;680,00;56;136,00;680,00;0,00;0,00;0,00;5d1h;-440,00 +WINJ26;20/02/2026 10:40:00;20/02/2026 11:20:00;40min;1;1;C;190.755,00;190.745,00;192.250,00;No;-2,00;-10,00;57;-2,00;-10,00;0,00;0,00;0,00;1d21h;-442,00 +WINJ26;20/02/2026 14:35:00;20/02/2026 14:50:00;15min;1;1;C;191.665,00;192.135,00;192.250,00;No;94,00;470,00;58;94,00;470,00;0,00;0,00;0,00;3h55min;-348,00 +WINJ26;23/02/2026 10:05:00;23/02/2026 10:10:00;5min;1;1;C;192.910,00;193.150,00;192.250,00;No;48,00;240,00;59;48,00;240,00;0,00;0,00;0,00;2d19h;-300,00 +WINJ26;23/02/2026 12:05:00;23/02/2026 12:15:00;10min;1;1;V;193.480,00;194.040,00;192.250,00;Sim;112,00;560,00;60;112,00;560,00;0,00;0,00;0,00;2h;-188,00 +WINJ26;23/02/2026 15:35:00;23/02/2026 16:05:00;30min;1;1;V;192.565,00;192.790,00;192.250,00;No;45,00;225,00;61;45,00;225,00;0,00;0,00;0,00;3h30min;-143,00 +WINJ26;23/02/2026 16:25:00;23/02/2026 17:10:00;45min;1;1;C;192.470,00;192.485,00;192.250,00;Sim;3,00;15,00;62;3,00;15,00;0,00;0,00;0,00;50min;-140,00 +WINJ26;24/02/2026 09:25:00;24/02/2026 10:20:00;55min;1;1;V;193.600,00;193.475,00;192.250,00;Sim;-25,00;-125,00;63;-25,00;-125,00;0,00;0,00;0,00;17h;-165,00 +WINJ26;24/02/2026 10:40:00;24/02/2026 10:50:00;10min;1;1;V;193.260,00;193.690,00;192.250,00;Sim;86,00;430,00;64;86,00;430,00;0,00;0,00;0,00;1h15min;-79,00 +WINJ26;24/02/2026 13:35:00;24/02/2026 14:30:00;55min;1;1;V;195.235,00;194.985,00;192.250,00;Sim;-50,00;-250,00;65;-50,00;-250,00;0,00;0,00;0,00;2h55min;-129,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 10:05:00;35min;1;1;V;196.035,00;196.370,00;192.250,00;Sim;67,00;335,00;66;67,00;335,00;0,00;0,00;0,00;19h55min;-62,00 +WINJ26;25/02/2026 15:05:00;25/02/2026 15:15:00;10min;1;1;V;194.800,00;195.000,00;192.250,00;No;40,00;200,00;67;40,00;200,00;0,00;0,00;0,00;5h35min;-22,00 +WINJ26;25/02/2026 16:20:00;25/02/2026 17:15:00;55min;1;1;C;194.200,00;193.910,00;192.250,00;No;-58,00;-290,00;68;-58,00;-290,00;0,00;0,00;0,00;1h15min;-80,00 +WINJ26;26/02/2026 17:55:00;26/02/2026 18:10:00;15min;1;1;V;194.220,00;194.275,00;192.250,00;No;11,00;55,00;69;11,00;55,00;0,00;0,00;0,00;1d1h;-69,00 +WINJ26;27/02/2026 17:20:00;27/02/2026 17:25:00;5min;1;1;C;192.075,00;192.145,00;192.250,00;Sim;14,00;70,00;70;14,00;70,00;0,00;0,00;0,00;23h25min;-55,00 +WINJ26;02/03/2026 09:15:00;02/03/2026 10:10:00;55min;1;1;C;191.035,00;190.205,00;192.250,00;Sim;-166,00;-830,00;71;-166,00;-830,00;0,00;0,00;0,00;2d15h;-221,00 +WINJ26;02/03/2026 17:20:00; - ; - ;1;0;C;192.225,00;192.235,00;192.235,00;No;2,00;10,00;72;2,00;10,00;0,00;0,00;0,00;8h5min;-219,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv new file mode 100644 index 0000000..c30d90a --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv @@ -0,0 +1,46 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;26/08/2025 18:00:00;26/08/2025 18:15:00;15min;1;1;C;149.000,00;149.050,00;192.265,00;No;10,00;50,00;1;10,00;50,00;0,00;0,00;0,00; - ;10,00 +WINJ26;01/09/2025 13:15:00;02/09/2025 09:45:00;20h30min;1;1;V;150.600,00;152.000,00;192.265,00;No;280,00;1.400,00;2;280,00;1.400,00;0,00;0,00;0,00;5d19h;290,00 +WINJ26;25/09/2025 09:15:00;25/09/2025 10:15:00;1h;1;1;V;156.250,00;157.700,00;192.265,00;Sim;290,00;1.450,00;3;290,00;1.450,00;0,00;0,00;0,00;23d20h;580,00 +WINJ26;15/10/2025 11:15:00;15/10/2025 13:00:00;1h45min;1;1;C;151.200,00;151.200,00;192.265,00;No;0;0;4;0;0;0,00;0,00;0,00;20d2h;580,00 +WINJ26;23/10/2025 12:15:00;23/10/2025 12:45:00;30min;1;1;V;153.950,00;153.700,00;192.265,00;No;-50,00;-250,00;5;-50,00;-250,00;0,00;0,00;0,00;8d1h;530,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.265,00;Sim;147,00;735,00;6;147,00;735,00;0,00;0,00;0,00;1m11d23h;677,00 +WINJ26;09/12/2025 17:30:00;10/12/2025 09:00:00;15h30min;1;1;V;165.750,00;165.225,00;192.265,00;No;-105,00;-525,00;7;-105,00;-525,00;0,00;0,00;0,00;4d6h;572,00 +WINJ26;10/12/2025 10:15:00;10/12/2025 10:30:00;15min;1;1;V;164.850,00;165.030,00;192.265,00;No;36,00;180,00;8;36,00;180,00;0,00;0,00;0,00;16h45min;608,00 +WINJ26;12/12/2025 12:15:00;12/12/2025 13:30:00;1h15min;1;1;V;166.300,00;166.900,00;192.265,00;Sim;120,00;600,00;9;120,00;600,00;0,00;0,00;0,00;2d2h;728,00 +WINJ26;15/12/2025 13:45:00;15/12/2025 15:15:00;1h30min;1;1;V;169.100,00;169.565,00;192.265,00;Sim;93,00;465,00;10;93,00;465,00;0,00;0,00;0,00;3d1h;821,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 14:15:00;2h45min;1;1;C;163.775,00;163.740,00;192.265,00;No;-7,00;-35,00;11;-7,00;-35,00;0,00;0,00;0,00;1d21h;814,00 +WINJ26;23/12/2025 10:00:00;23/12/2025 12:45:00;2h45min;1;1;V;166.380,00;165.025,00;192.265,00;No;-271,00;-1.355,00;12;-271,00;-1.355,00;0,00;0,00;0,00;5d22h;543,00 +WINJ26;23/12/2025 15:15:00;23/12/2025 18:00:00;2h45min;1;1;V;166.590,00;166.230,00;192.265,00;Sim;-72,00;-360,00;13;-72,00;-360,00;0,00;0,00;0,00;5h15min;471,00 +WINJ26;26/12/2025 10:15:00;26/12/2025 11:45:00;1h30min;1;1;C;165.975,00;166.015,00;192.265,00;No;8,00;40,00;14;8,00;40,00;0,00;0,00;0,00;2d19h;479,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 10:30:00;1h;1;1;V;166.705,00;167.005,00;192.265,00;Sim;60,00;300,00;15;60,00;300,00;0,00;0,00;0,00;2d23h;539,00 +WINJ26;29/12/2025 11:30:00;29/12/2025 14:15:00;2h45min;1;1;C;166.510,00;166.045,00;192.265,00;No;-93,00;-465,00;16;-93,00;-465,00;0,00;0,00;0,00;2h;446,00 +WINJ26;02/01/2026 09:15:00;02/01/2026 09:30:00;15min;1;1;C;167.715,00;167.610,00;192.265,00;No;-21,00;-105,00;17;-21,00;-105,00;0,00;0,00;0,00;3d21h;425,00 +WINJ26;06/01/2026 11:30:00;06/01/2026 14:15:00;2h45min;1;1;V;169.390,00;169.305,00;192.265,00;Sim;-17,00;-85,00;18;-17,00;-85,00;0,00;0,00;0,00;4d2h;408,00 +WINJ26;08/01/2026 09:30:00;08/01/2026 09:45:00;15min;1;1;C;167.460,00;167.630,00;192.265,00;Sim;34,00;170,00;19;34,00;170,00;0,00;0,00;0,00;1d22h;442,00 +WINJ26;12/01/2026 09:15:00;12/01/2026 11:45:00;2h30min;1;1;C;168.975,00;168.540,00;192.265,00;No;-87,00;-435,00;20;-87,00;-435,00;0,00;0,00;0,00;3d23h;355,00 +WINJ26;13/01/2026 10:45:00;13/01/2026 13:30:00;2h45min;1;1;C;167.910,00;167.085,00;192.265,00;Sim;-165,00;-825,00;21;-165,00;-825,00;0,00;0,00;0,00;1d1h;190,00 +WINJ26;15/01/2026 10:45:00;15/01/2026 11:45:00;1h;1;1;V;170.010,00;170.305,00;192.265,00;Sim;59,00;295,00;22;59,00;295,00;0,00;0,00;0,00;2d;249,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 11:15:00;1h15min;1;1;C;169.010,00;169.310,00;192.265,00;No;60,00;300,00;23;60,00;300,00;0,00;0,00;0,00;4d23h;309,00 +WINJ26;23/01/2026 12:45:00;23/01/2026 15:00:00;2h15min;1;1;V;181.920,00;182.130,00;192.265,00;Sim;42,00;210,00;24;42,00;210,00;0,00;0,00;0,00;3d2h;351,00 +WINJ26;23/01/2026 18:00:00;26/01/2026 10:30:00;2d16h;1;1;V;183.870,00;184.095,00;192.265,00;Sim;45,00;225,00;25;45,00;225,00;0,00;0,00;0,00;5h15min;396,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 09:00:00;2d17h;1;1;C;186.180,00;184.655,00;192.265,00;No;-305,00;-1.525,00;26;-305,00;-1.525,00;0,00;0,00;0,00;6d22h;91,00 +WINJ26;04/02/2026 17:00:00;04/02/2026 18:15:00;1h15min;1;1;C;185.455,00;186.115,00;192.265,00;Sim;132,00;660,00;27;132,00;660,00;0,00;0,00;0,00;5d1h;223,00 +WINJ26;05/02/2026 12:00:00;05/02/2026 12:15:00;15min;1;1;V;186.700,00;187.535,00;192.265,00;Sim;167,00;835,00;28;167,00;835,00;0,00;0,00;0,00;19h;390,00 +WINJ26;09/02/2026 09:15:00;09/02/2026 12:00:00;2h45min;1;1;V;188.270,00;187.650,00;192.265,00;Sim;-124,00;-620,00;29;-124,00;-620,00;0,00;0,00;0,00;3d21h;266,00 +WINJ26;11/02/2026 10:15:00;11/02/2026 13:00:00;2h45min;1;1;V;193.300,00;191.810,00;192.265,00;Sim;-298,00;-1.490,00;30;-298,00;-1.490,00;0,00;0,00;0,00;2d1h;-32,00 +WINJ26;12/02/2026 15:45:00;12/02/2026 17:45:00;2h;1;1;C;191.565,00;192.210,00;192.265,00;No;129,00;645,00;31;129,00;645,00;0,00;0,00;0,00;1d5h;97,00 +WINJ26;13/02/2026 12:30:00;13/02/2026 13:30:00;1h;1;1;C;188.875,00;189.405,00;192.265,00;Sim;106,00;530,00;32;106,00;530,00;0,00;0,00;0,00;20h45min;203,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 14:00:00;30min;1;1;V;189.975,00;190.075,00;192.265,00;No;20,00;100,00;33;20,00;100,00;0,00;0,00;0,00;5d1h;223,00 +WINJ26;19/02/2026 10:15:00;19/02/2026 11:45:00;1h30min;1;1;V;190.010,00;189.830,00;192.265,00;No;-36,00;-180,00;34;-36,00;-180,00;0,00;0,00;0,00;20h45min;187,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:45:00;15min;1;1;C;191.115,00;191.325,00;192.265,00;No;42,00;210,00;35;42,00;210,00;0,00;0,00;0,00;1d1h;229,00 +WINJ26;24/02/2026 09:30:00;24/02/2026 12:15:00;2h45min;1;1;V;194.605,00;193.240,00;192.265,00;Sim;-273,00;-1.365,00;36;-273,00;-1.365,00;0,00;0,00;0,00;3d22h;-44,00 +WINJ26;25/02/2026 10:15:00;25/02/2026 10:45:00;30min;1;1;V;195.155,00;195.870,00;192.265,00;Sim;143,00;715,00;37;143,00;715,00;0,00;0,00;0,00;1d;99,00 +WINJ26;26/02/2026 12:45:00;26/02/2026 13:30:00;45min;1;1;C;193.110,00;193.930,00;192.265,00;No;164,00;820,00;38;164,00;820,00;0,00;0,00;0,00;1d2h;263,00 +WINJ26;27/02/2026 09:30:00;27/02/2026 12:15:00;2h45min;1;1;C;193.430,00;193.070,00;192.265,00;No;-72,00;-360,00;39;-72,00;-360,00;0,00;0,00;0,00;20h45min;191,00 +WINJ26;02/03/2026 10:30:00;02/03/2026 12:00:00;1h30min;1;1;C;190.695,00;191.375,00;192.265,00;Sim;136,00;680,00;40;136,00;680,00;0,00;0,00;0,00;3d1h;327,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv new file mode 100644 index 0000000..448c717 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv @@ -0,0 +1,26 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.260,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;01/09/2025 13:00:00;02/09/2025 10:00:00;21h;1;1;V;150.500,00;152.000,00;192.260,00;No;300,00;1.500,00;2;300,00;1.500,00;0,00;0,00;0,00;5d4h;860,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 10:30:00;30min;1;1;V;156.000,00;156.250,00;192.260,00;Sim;50,00;250,00;3;50,00;250,00;0,00;0,00;0,00;23d21h;910,00 +WINJ26;04/11/2025 10:00:00;04/11/2025 16:00:00;6h;1;1;V;158.520,00;158.430,00;192.260,00;Sim;-18,00;-90,00;4;-18,00;-90,00;0,00;0,00;0,00;1m9d;892,00 +WINJ26;12/11/2025 09:30:00;12/11/2025 12:30:00;3h;1;1;V;165.300,00;166.300,00;192.260,00;Sim;200,00;1.000,00;5;200,00;1.000,00;0,00;0,00;0,00;7d23h;1.092,00 +WINJ26;09/12/2025 12:00:00;09/12/2025 13:00:00;1h;1;1;C;163.700,00;164.830,00;192.260,00;No;226,00;1.130,00;6;226,00;1.130,00;0,00;0,00;0,00;27d2h;1.318,00 +WINJ26;16/12/2025 17:00:00;17/12/2025 13:00:00;20h;1;1;C;166.200,00;163.480,00;192.260,00;No;-544,00;-2.720,00;7;-544,00;-2.720,00;0,00;0,00;0,00;7d5h;774,00 +WINJ26;23/12/2025 15:30:00;26/12/2025 09:30:00;2d18h;1;1;V;165.790,00;166.390,00;192.260,00;Sim;120,00;600,00;8;120,00;600,00;0,00;0,00;0,00;6d22h;894,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 11:00:00;1h30min;1;1;V;166.510,00;167.005,00;192.260,00;Sim;99,00;495,00;9;99,00;495,00;0,00;0,00;0,00;5d18h;993,00 +WINJ26;30/12/2025 11:00:00;30/12/2025 16:30:00;5h30min;1;1;V;167.650,00;167.200,00;192.260,00;Sim;-90,00;-450,00;10;-90,00;-450,00;0,00;0,00;0,00;1d1h;903,00 +WINJ26;20/01/2026 10:00:00;20/01/2026 12:00:00;2h;1;1;C;169.010,00;170.520,00;192.260,00;No;302,00;1.510,00;11;302,00;1.510,00;0,00;0,00;0,00;20d23h;1.205,00 +WINJ26;28/01/2026 12:30:00;28/01/2026 16:00:00;3h30min;1;1;V;187.955,00;188.475,00;192.260,00;Sim;104,00;520,00;12;104,00;520,00;0,00;0,00;0,00;8d2h;1.309,00 +WINJ26;29/01/2026 13:30:00;30/01/2026 09:30:00;20h;1;1;C;187.690,00;187.670,00;192.260,00;No;-4,00;-20,00;13;-4,00;-20,00;0,00;0,00;0,00;1d1h;1.305,00 +WINJ26;30/01/2026 16:00:00;02/02/2026 10:00:00;2d18h;1;1;C;186.180,00;186.765,00;192.260,00;Sim;117,00;585,00;14;117,00;585,00;0,00;0,00;0,00;1d2h;1.422,00 +WINJ26;09/02/2026 10:30:00;09/02/2026 16:00:00;5h30min;1;1;V;190.105,00;187.640,00;192.260,00;No;-493,00;-2.465,00;15;-493,00;-2.465,00;0,00;0,00;0,00;9d18h;929,00 +WINJ26;11/02/2026 12:30:00;11/02/2026 18:00:00;5h30min;1;1;V;194.180,00;192.495,00;192.260,00;Sim;-337,00;-1.685,00;16;-337,00;-1.685,00;0,00;0,00;0,00;2d2h;592,00 +WINJ26;12/02/2026 16:00:00;13/02/2026 12:00:00;20h;1;1;C;191.680,00;187.795,00;192.260,00;No;-777,00;-3.885,00;17;-777,00;-3.885,00;0,00;0,00;0,00;1d3h;-185,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 11:00:00;30min;1;1;V;194.965,00;195.645,00;192.260,00;Sim;136,00;680,00;18;136,00;680,00;0,00;0,00;0,00;12d18h;-49,00 +WINJ26;26/02/2026 13:00:00;26/02/2026 16:00:00;3h;1;1;C;193.370,00;193.800,00;192.260,00;No;86,00;430,00;19;86,00;430,00;0,00;0,00;0,00;1d2h;37,00 +WINJ26;02/03/2026 11:30:00;02/03/2026 14:30:00;3h;1;1;C;190.460,00;191.805,00;192.260,00;Sim;269,00;1.345,00;20;269,00;1.345,00;0,00;0,00;0,00;3d22h;306,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv new file mode 100644 index 0000000..be7e582 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv @@ -0,0 +1,18 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/08/2025 09:00:00;28/08/2025 09:00:00;1d;1;1;C;148.200,00;151.000,00;192.220,00;No;560,00;2.800,00;1;560,00;2.800,00;0,00;0,00;0,00; - ;560,00 +WINJ26;25/09/2025 10:00:00;25/09/2025 11:00:00;1h;1;1;V;155.750,00;156.250,00;192.220,00;No;100,00;500,00;2;100,00;500,00;0,00;0,00;0,00;1m1d1h;660,00 +WINJ26;04/11/2025 10:00:00;05/11/2025 12:00:00;1d2h;1;1;V;160.120,00;158.430,00;192.220,00;Sim;-338,00;-1.690,00;3;-338,00;-1.690,00;0,00;0,00;0,00;1m9d;322,00 +WINJ26;18/11/2025 11:00:00;19/11/2025 18:00:00;1d7h;1;1;C;164.500,00;163.470,00;192.220,00;No;-206,00;-1.030,00;4;-206,00;-1.030,00;0,00;0,00;0,00;14d1h;116,00 +WINJ26;28/11/2025 17:00:00;01/12/2025 11:00:00;2d18h;1;1;V;165.945,00;166.915,00;192.220,00;Sim;194,00;970,00;5;194,00;970,00;0,00;0,00;0,00;10d6h;310,00 +WINJ26;15/12/2025 15:00:00;16/12/2025 10:00:00;19h;1;1;V;167.270,00;169.100,00;192.220,00;Sim;366,00;1.830,00;6;366,00;1.830,00;0,00;0,00;0,00;16d22h;676,00 +WINJ26;29/12/2025 10:00:00;29/12/2025 13:00:00;3h;1;1;V;166.250,00;166.885,00;192.220,00;No;127,00;635,00;7;127,00;635,00;0,00;0,00;0,00;13d19h;803,00 +WINJ26;30/12/2025 11:00:00;02/01/2026 09:00:00;2d22h;1;1;V;167.265,00;167.200,00;192.220,00;Sim;-13,00;-65,00;8;-13,00;-65,00;0,00;0,00;0,00;1d1h;790,00 +WINJ26;28/01/2026 13:00:00;29/01/2026 13:00:00;1d;1;1;V;186.785,00;188.670,00;192.220,00;Sim;377,00;1.885,00;9;377,00;1.885,00;0,00;0,00;0,00;1m1d2h;1.167,00 +WINJ26;13/02/2026 14:00:00;19/02/2026 09:00:00;5d19h;1;1;C;189.405,00;190.465,00;192.220,00;No;212,00;1.060,00;10;212,00;1.060,00;0,00;0,00;0,00;16d1h;1.379,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.220,00;Sim;131,00;655,00;11;131,00;655,00;0,00;0,00;0,00;11d21h;1.510,00 +WINJ26;02/03/2026 12:00:00;02/03/2026 15:00:00;3h;1;1;C;191.375,00;192.040,00;192.220,00;No;133,00;665,00;12;133,00;665,00;0,00;0,00;0,00;5d1h;1.643,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv new file mode 100644 index 0000000..1e1c1a2 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv @@ -0,0 +1,18 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/12/2025 14:50:00;29/12/2025 14:52:00;2min;1;1;V;166.265,00;166.290,00;192.285,00;No;5,00;25,00;1;5,00;25,00;0,00;0,00;0,00; - ;5,00 +WINJ26;29/12/2025 17:16:00;29/12/2025 17:36:00;20min;1;1;V;166.185,00;166.345,00;192.285,00;Sim;32,00;160,00;2;32,00;160,00;0,00;0,00;0,00;2h26min;37,00 +WINJ26;06/01/2026 11:36:00;06/01/2026 11:38:00;2min;1;1;C;169.290,00;169.445,00;192.285,00;No;31,00;155,00;3;31,00;155,00;0,00;0,00;0,00;7d18h;68,00 +WINJ26;06/01/2026 16:48:00;06/01/2026 17:12:00;24min;1;1;C;169.130,00;169.195,00;192.285,00;Sim;13,00;65,00;4;13,00;65,00;0,00;0,00;0,00;5h12min;81,00 +WINJ26;09/01/2026 16:22:00;09/01/2026 16:50:00;28min;1;1;C;169.035,00;169.075,00;192.285,00;Sim;8,00;40,00;5;8,00;40,00;0,00;0,00;0,00;2d23h;89,00 +WINJ26;02/02/2026 16:12:00;02/02/2026 16:34:00;22min;1;1;C;186.555,00;186.390,00;192.285,00;No;-33,00;-165,00;6;-33,00;-165,00;0,00;0,00;0,00;23d23h;56,00 +WINJ26;05/02/2026 12:32:00;05/02/2026 12:44:00;12min;1;1;C;186.895,00;187.100,00;192.285,00;No;41,00;205,00;7;41,00;205,00;0,00;0,00;0,00;2d20h;97,00 +WINJ26;11/02/2026 17:26:00;11/02/2026 17:28:00;2min;1;1;C;193.840,00;194.025,00;192.285,00;No;37,00;185,00;8;37,00;185,00;0,00;0,00;0,00;6d4h;134,00 +WINJ26;18/02/2026 18:16:00;19/02/2026 09:12:00;14h56min;1;1;V;190.430,00;189.995,00;192.285,00;Sim;-87,00;-435,00;9;-87,00;-435,00;0,00;0,00;0,00;7d;47,00 +WINJ26;24/02/2026 15:02:00;24/02/2026 15:24:00;22min;1;1;C;195.005,00;194.820,00;192.285,00;No;-37,00;-185,00;10;-37,00;-185,00;0,00;0,00;0,00;5d20h;10,00 +WINJ26;24/02/2026 16:28:00;24/02/2026 16:30:00;2min;1;1;C;194.770,00;194.815,00;192.285,00;Sim;9,00;45,00;11;9,00;45,00;0,00;0,00;0,00;1h26min;19,00 +WINJ26;26/02/2026 15:48:00;26/02/2026 16:10:00;22min;1;1;V;193.895,00;193.760,00;192.285,00;Sim;-27,00;-135,00;12;-27,00;-135,00;0,00;0,00;0,00;1d23h;-8,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv new file mode 100644 index 0000000..3627212 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv @@ -0,0 +1,8 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;09/09/2025 09:00:00;09/09/2025 09:05:00;5min;1;1;V;152.550,00;152.300,00;192.260,00;No;-50,00;-250,00;1;-50,00;-250,00;0,00;0,00;0,00; - ;-50,00 +WINJ26;27/01/2026 15:20:00;27/01/2026 16:15:00;55min;1;1;C;187.310,00;187.265,00;192.260,00;No;-9,00;-45,00;2;-9,00;-45,00;0,00;0,00;0,00;4m17d6h;-59,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv new file mode 100644 index 0000000..83dd780 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv @@ -0,0 +1,8 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;27/11/2025 11:15:00;27/11/2025 16:00:00;4h45min;1;1;V;165.810,00;165.940,00;192.260,00;No;26,00;130,00;1;26,00;130,00;0,00;0,00;0,00; - ;26,00 +WINJ26;05/12/2025 11:30:00;05/12/2025 13:00:00;1h30min;1;1;V;170.835,00;171.570,00;192.260,00;Sim;147,00;735,00;2;147,00;735,00;0,00;0,00;0,00;8d;173,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv new file mode 100644 index 0000000..585caf1 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv @@ -0,0 +1,9 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;23/10/2025 18:00:00;28/10/2025 10:00:00;4d16h;1;1;V;155.150,00;154.600,00;192.235,00;No;-110,00;-550,00;1;-110,00;-550,00;0,00;0,00;0,00; - ;-110,00 +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.235,00;Sim;387,00;1.935,00;2;387,00;1.935,00;0,00;0,00;0,00;1m11d19h;277,00 +WINJ26;29/01/2026 12:00:00;29/01/2026 13:00:00;1h;1;1;V;186.785,00;189.110,00;192.235,00;Sim;465,00;2.325,00;3;465,00;2.325,00;0,00;0,00;0,00;1m23d23h;742,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv new file mode 100644 index 0000000..558146f --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv @@ -0,0 +1,190 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:38:00;19/12/2025 15:52:00;14min;1;1;C;165.010,00;165.100,00;192.290,00;No;18,00;90,00;1;18,00;90,00;0,00;0,00;0,00; - ;18,00 +WINJ26;19/12/2025 17:46:00;19/12/2025 18:08:00;22min;1;1;C;164.655,00;164.855,00;192.290,00;Sim;40,00;200,00;2;40,00;200,00;0,00;0,00;0,00;2h8min;58,00 +WINJ26;22/12/2025 09:56:00;22/12/2025 11:02:00;1h6min;1;1;C;164.710,00;164.430,00;192.290,00;No;-56,00;-280,00;3;-56,00;-280,00;0,00;0,00;0,00;2d16h;2,00 +WINJ26;22/12/2025 11:42:00;22/12/2025 12:08:00;26min;1;1;C;163.535,00;163.920,00;192.290,00;Sim;77,00;385,00;4;77,00;385,00;0,00;0,00;0,00;1h46min;79,00 +WINJ26;22/12/2025 15:08:00;22/12/2025 15:36:00;28min;1;1;C;164.280,00;164.255,00;192.290,00;No;-5,00;-25,00;5;-5,00;-25,00;0,00;0,00;0,00;3h26min;74,00 +WINJ26;22/12/2025 16:12:00;22/12/2025 16:14:00;2min;1;1;C;164.385,00;164.365,00;192.290,00;No;-4,00;-20,00;6;-4,00;-20,00;0,00;0,00;0,00;1h4min;70,00 +WINJ26;23/12/2025 09:02:00;23/12/2025 10:02:00;1h;1;1;V;164.950,00;164.440,00;192.290,00;No;-102,00;-510,00;7;-102,00;-510,00;0,00;0,00;0,00;16h50min;-32,00 +WINJ26;23/12/2025 10:20:00;23/12/2025 10:36:00;16min;1;1;V;165.255,00;165.715,00;192.290,00;Sim;92,00;460,00;8;92,00;460,00;0,00;0,00;0,00;1h18min;60,00 +WINJ26;23/12/2025 12:28:00;23/12/2025 12:46:00;18min;1;1;V;166.300,00;166.525,00;192.290,00;Sim;45,00;225,00;9;45,00;225,00;0,00;0,00;0,00;2h8min;105,00 +WINJ26;23/12/2025 18:08:00;23/12/2025 18:20:00;12min;1;1;V;166.530,00;166.745,00;192.290,00;Sim;43,00;215,00;10;43,00;215,00;0,00;0,00;0,00;5h40min;148,00 +WINJ26;26/12/2025 16:18:00;29/12/2025 09:02:00;2d16h;1;1;V;167.230,00;166.725,00;192.290,00;No;-101,00;-505,00;11;-101,00;-505,00;0,00;0,00;0,00;2d22h;47,00 +WINJ26;29/12/2025 17:06:00;29/12/2025 17:36:00;30min;1;1;V;166.185,00;166.305,00;192.290,00;No;24,00;120,00;12;24,00;120,00;0,00;0,00;0,00;3d;71,00 +WINJ26;30/12/2025 09:04:00;30/12/2025 10:04:00;1h;1;1;V;167.540,00;166.930,00;192.290,00;Sim;-122,00;-610,00;13;-122,00;-610,00;0,00;0,00;0,00;15h58min;-51,00 +WINJ26;30/12/2025 13:34:00;30/12/2025 13:50:00;16min;1;1;V;167.565,00;167.775,00;192.290,00;Sim;42,00;210,00;14;42,00;210,00;0,00;0,00;0,00;4h30min;-9,00 +WINJ26;30/12/2025 14:36:00;30/12/2025 15:20:00;44min;1;1;V;167.735,00;167.820,00;192.290,00;Sim;17,00;85,00;15;17,00;85,00;0,00;0,00;0,00;1h2min;8,00 +WINJ26;30/12/2025 17:28:00;30/12/2025 17:38:00;10min;1;1;V;167.625,00;167.640,00;192.290,00;No;3,00;15,00;16;3,00;15,00;0,00;0,00;0,00;2h52min;11,00 +WINJ26;02/01/2026 11:04:00;02/01/2026 11:16:00;12min;1;1;C;166.665,00;167.150,00;192.290,00;No;97,00;485,00;17;97,00;485,00;0,00;0,00;0,00;2d17h;108,00 +WINJ26;02/01/2026 13:00:00;02/01/2026 15:20:00;2h20min;1;1;C;166.355,00;166.080,00;192.290,00;Sim;-55,00;-275,00;18;-55,00;-275,00;0,00;0,00;0,00;1h56min;53,00 +WINJ26;02/01/2026 15:26:00;02/01/2026 15:50:00;24min;1;1;V;165.910,00;166.030,00;192.290,00;No;24,00;120,00;19;24,00;120,00;0,00;0,00;0,00;2h26min;77,00 +WINJ26;05/01/2026 09:38:00;05/01/2026 09:48:00;10min;1;1;V;166.580,00;166.815,00;192.290,00;Sim;47,00;235,00;20;47,00;235,00;0,00;0,00;0,00;2d18h;124,00 +WINJ26;05/01/2026 10:00:00;05/01/2026 10:42:00;42min;1;1;C;166.535,00;166.175,00;192.290,00;No;-72,00;-360,00;21;-72,00;-360,00;0,00;0,00;0,00;22min;52,00 +WINJ26;05/01/2026 11:22:00;05/01/2026 11:38:00;16min;1;1;V;166.465,00;166.725,00;192.290,00;No;52,00;260,00;22;52,00;260,00;0,00;0,00;0,00;1h22min;104,00 +WINJ26;05/01/2026 12:14:00;05/01/2026 14:28:00;2h14min;1;1;V;167.405,00;166.450,00;192.290,00;No;-191,00;-955,00;23;-191,00;-955,00;0,00;0,00;0,00;52min;-87,00 +WINJ26;05/01/2026 14:40:00;05/01/2026 15:46:00;1h6min;1;1;V;167.675,00;167.520,00;192.290,00;Sim;-31,00;-155,00;24;-31,00;-155,00;0,00;0,00;0,00;2h26min;-118,00 +WINJ26;05/01/2026 16:02:00;05/01/2026 16:26:00;24min;1;1;V;167.690,00;167.835,00;192.290,00;Sim;29,00;145,00;25;29,00;145,00;0,00;0,00;0,00;1h22min;-89,00 +WINJ26;05/01/2026 17:22:00;05/01/2026 17:32:00;10min;1;1;C;167.520,00;167.680,00;192.290,00;No;32,00;160,00;26;32,00;160,00;0,00;0,00;0,00;1h20min;-57,00 +WINJ26;06/01/2026 09:20:00;06/01/2026 11:00:00;1h40min;1;1;V;169.355,00;168.545,00;192.290,00;Sim;-162,00;-810,00;27;-162,00;-810,00;0,00;0,00;0,00;15h58min;-219,00 +WINJ26;06/01/2026 11:30:00;06/01/2026 11:40:00;10min;1;1;C;169.305,00;169.420,00;192.290,00;No;23,00;115,00;28;23,00;115,00;0,00;0,00;0,00;2h10min;-196,00 +WINJ26;06/01/2026 15:20:00;06/01/2026 15:38:00;18min;1;1;C;169.335,00;169.365,00;192.290,00;No;6,00;30,00;29;6,00;30,00;0,00;0,00;0,00;3h50min;-190,00 +WINJ26;06/01/2026 15:52:00;06/01/2026 16:18:00;26min;1;1;V;169.390,00;169.500,00;192.290,00;Sim;22,00;110,00;30;22,00;110,00;0,00;0,00;0,00;32min;-168,00 +WINJ26;07/01/2026 09:48:00;07/01/2026 12:36:00;2h48min;1;1;C;169.090,00;167.585,00;192.290,00;Sim;-301,00;-1.505,00;31;-301,00;-1.505,00;0,00;0,00;0,00;17h56min;-469,00 +WINJ26;08/01/2026 09:26:00;08/01/2026 09:32:00;6min;1;1;V;167.330,00;167.535,00;192.290,00;No;41,00;205,00;32;41,00;205,00;0,00;0,00;0,00;23h38min;-428,00 +WINJ26;08/01/2026 10:52:00;08/01/2026 11:30:00;38min;1;1;C;167.675,00;167.850,00;192.290,00;Sim;35,00;175,00;33;35,00;175,00;0,00;0,00;0,00;1h26min;-393,00 +WINJ26;08/01/2026 11:32:00;08/01/2026 11:52:00;20min;1;1;V;167.805,00;167.920,00;192.290,00;Sim;23,00;115,00;34;23,00;115,00;0,00;0,00;0,00;40min;-370,00 +WINJ26;08/01/2026 15:52:00;08/01/2026 16:58:00;1h6min;1;1;V;168.075,00;167.995,00;192.290,00;Sim;-16,00;-80,00;35;-16,00;-80,00;0,00;0,00;0,00;4h20min;-386,00 +WINJ26;08/01/2026 17:54:00;09/01/2026 09:12:00;15h18min;1;1;V;168.140,00;168.215,00;192.290,00;Sim;15,00;75,00;36;15,00;75,00;0,00;0,00;0,00;2h2min;-371,00 +WINJ26;09/01/2026 10:08:00;09/01/2026 11:02:00;54min;1;1;V;169.045,00;168.300,00;192.290,00;Sim;-149,00;-745,00;37;-149,00;-745,00;0,00;0,00;0,00;16h14min;-520,00 +WINJ26;09/01/2026 11:40:00;09/01/2026 12:18:00;38min;1;1;V;169.285,00;169.280,00;192.290,00;Sim;-1,00;-5,00;38;-1,00;-5,00;0,00;0,00;0,00;1h32min;-521,00 +WINJ26;09/01/2026 15:14:00;09/01/2026 17:16:00;2h2min;1;1;C;169.335,00;169.050,00;192.290,00;No;-57,00;-285,00;39;-57,00;-285,00;0,00;0,00;0,00;3h34min;-578,00 +WINJ26;09/01/2026 17:56:00;12/01/2026 09:02:00;2d15h;1;1;C;168.725,00;168.705,00;192.290,00;Sim;-4,00;-20,00;40;-4,00;-20,00;0,00;0,00;0,00;2h42min;-582,00 +WINJ26;12/01/2026 12:44:00;12/01/2026 13:12:00;28min;1;1;V;168.670,00;168.820,00;192.290,00;No;30,00;150,00;41;30,00;150,00;0,00;0,00;0,00;2d18h;-552,00 +WINJ26;13/01/2026 09:04:00;13/01/2026 09:08:00;4min;1;1;V;168.400,00;168.725,00;192.290,00;No;65,00;325,00;42;65,00;325,00;0,00;0,00;0,00;20h20min;-487,00 +WINJ26;13/01/2026 09:34:00;13/01/2026 10:32:00;58min;1;1;C;167.860,00;167.865,00;192.290,00;Sim;1,00;5,00;43;1,00;5,00;0,00;0,00;0,00;30min;-486,00 +WINJ26;13/01/2026 11:12:00;13/01/2026 11:32:00;20min;1;1;V;167.765,00;168.125,00;192.290,00;No;72,00;360,00;44;72,00;360,00;0,00;0,00;0,00;1h38min;-414,00 +WINJ26;13/01/2026 12:26:00;13/01/2026 12:52:00;26min;1;1;C;167.140,00;167.285,00;192.290,00;Sim;29,00;145,00;45;29,00;145,00;0,00;0,00;0,00;1h14min;-385,00 +WINJ26;13/01/2026 14:42:00;13/01/2026 14:46:00;4min;1;1;C;167.280,00;167.370,00;192.290,00;No;18,00;90,00;46;18,00;90,00;0,00;0,00;0,00;2h16min;-367,00 +WINJ26;13/01/2026 18:02:00;14/01/2026 09:00:00;14h58min;1;1;C;167.110,00;167.305,00;192.290,00;Sim;39,00;195,00;47;39,00;195,00;0,00;0,00;0,00;3h20min;-328,00 +WINJ26;14/01/2026 09:52:00;14/01/2026 09:54:00;2min;1;1;C;167.995,00;167.980,00;192.290,00;No;-3,00;-15,00;48;-3,00;-15,00;0,00;0,00;0,00;15h50min;-331,00 +WINJ26;14/01/2026 11:12:00;14/01/2026 11:22:00;10min;1;1;C;167.600,00;168.170,00;192.290,00;Sim;114,00;570,00;49;114,00;570,00;0,00;0,00;0,00;1h20min;-217,00 +WINJ26;14/01/2026 15:50:00;14/01/2026 17:04:00;1h14min;1;1;V;169.700,00;169.475,00;192.290,00;Sim;-45,00;-225,00;50;-45,00;-225,00;0,00;0,00;0,00;4h38min;-262,00 +WINJ26;14/01/2026 17:42:00;15/01/2026 09:02:00;15h20min;1;1;V;170.355,00;170.265,00;192.290,00;Sim;-18,00;-90,00;51;-18,00;-90,00;0,00;0,00;0,00;1h52min;-280,00 +WINJ26;15/01/2026 09:48:00;15/01/2026 10:16:00;28min;1;1;V;170.560,00;170.570,00;192.290,00;Sim;2,00;10,00;52;2,00;10,00;0,00;0,00;0,00;16h6min;-278,00 +WINJ26;15/01/2026 11:34:00;15/01/2026 12:02:00;28min;1;1;C;170.180,00;170.305,00;192.290,00;No;25,00;125,00;53;25,00;125,00;0,00;0,00;0,00;1h46min;-253,00 +WINJ26;15/01/2026 12:30:00;15/01/2026 12:32:00;2min;1;1;C;170.380,00;170.450,00;192.290,00;No;14,00;70,00;54;14,00;70,00;0,00;0,00;0,00;56min;-239,00 +WINJ26;15/01/2026 16:28:00;15/01/2026 18:06:00;1h38min;1;1;C;171.070,00;170.680,00;192.290,00;No;-78,00;-390,00;55;-78,00;-390,00;0,00;0,00;0,00;3h58min;-317,00 +WINJ26;16/01/2026 09:54:00;16/01/2026 11:48:00;1h54min;1;1;C;170.930,00;169.830,00;192.290,00;Sim;-220,00;-1.100,00;56;-220,00;-1.100,00;0,00;0,00;0,00;17h26min;-537,00 +WINJ26;16/01/2026 12:42:00;16/01/2026 12:52:00;10min;1;1;C;169.155,00;169.415,00;192.290,00;Sim;52,00;260,00;57;52,00;260,00;0,00;0,00;0,00;2h48min;-485,00 +WINJ26;16/01/2026 13:24:00;16/01/2026 13:58:00;34min;1;1;V;169.505,00;169.505,00;192.290,00;No;0;0;58;0;0;0,00;0,00;0,00;42min;-485,00 +WINJ26;16/01/2026 15:32:00;16/01/2026 15:48:00;16min;1;1;V;169.600,00;169.665,00;192.290,00;Sim;13,00;65,00;59;13,00;65,00;0,00;0,00;0,00;2h8min;-472,00 +WINJ26;19/01/2026 12:00:00;19/01/2026 12:18:00;18min;1;1;V;169.575,00;169.745,00;192.290,00;Sim;34,00;170,00;60;34,00;170,00;0,00;0,00;0,00;2d20h;-438,00 +WINJ26;19/01/2026 13:04:00;19/01/2026 13:46:00;42min;1;1;V;169.865,00;169.775,00;192.290,00;Sim;-18,00;-90,00;61;-18,00;-90,00;0,00;0,00;0,00;1h4min;-456,00 +WINJ26;20/01/2026 09:18:00;20/01/2026 09:48:00;30min;1;1;C;168.355,00;168.800,00;192.290,00;Sim;89,00;445,00;62;89,00;445,00;0,00;0,00;0,00;20h14min;-367,00 +WINJ26;20/01/2026 09:52:00;20/01/2026 10:16:00;24min;1;1;V;168.660,00;168.810,00;192.290,00;No;30,00;150,00;63;30,00;150,00;0,00;0,00;0,00;34min;-337,00 +WINJ26;20/01/2026 12:14:00;20/01/2026 12:22:00;8min;1;1;C;170.215,00;170.550,00;192.290,00;No;67,00;335,00;64;67,00;335,00;0,00;0,00;0,00;2h22min;-270,00 +WINJ26;20/01/2026 12:36:00;20/01/2026 13:44:00;1h8min;1;1;V;171.190,00;170.880,00;192.290,00;Sim;-62,00;-310,00;65;-62,00;-310,00;0,00;0,00;0,00;22min;-332,00 +WINJ26;20/01/2026 13:50:00;20/01/2026 13:58:00;8min;1;1;C;171.075,00;171.255,00;192.290,00;No;36,00;180,00;66;36,00;180,00;0,00;0,00;0,00;1h14min;-296,00 +WINJ26;20/01/2026 15:42:00;20/01/2026 15:46:00;4min;1;1;V;170.830,00;170.950,00;192.290,00;Sim;24,00;120,00;67;24,00;120,00;0,00;0,00;0,00;1h52min;-272,00 +WINJ26;20/01/2026 16:22:00;20/01/2026 16:24:00;2min;1;1;V;170.615,00;170.655,00;192.290,00;No;8,00;40,00;68;8,00;40,00;0,00;0,00;0,00;40min;-264,00 +WINJ26;21/01/2026 10:14:00;21/01/2026 12:26:00;2h12min;1;1;V;174.395,00;173.440,00;192.290,00;Sim;-191,00;-955,00;69;-191,00;-955,00;0,00;0,00;0,00;17h52min;-455,00 +WINJ26;21/01/2026 14:10:00;21/01/2026 14:16:00;6min;1;1;V;174.915,00;175.050,00;192.290,00;Sim;27,00;135,00;70;27,00;135,00;0,00;0,00;0,00;3h56min;-428,00 +WINJ26;21/01/2026 15:18:00;21/01/2026 18:12:00;2h54min;1;1;V;176.820,00;175.195,00;192.290,00;Sim;-325,00;-1.625,00;71;-325,00;-1.625,00;0,00;0,00;0,00;1h8min;-753,00 +WINJ26;22/01/2026 09:06:00;22/01/2026 10:08:00;1h2min;1;1;V;177.620,00;177.305,00;192.290,00;Sim;-63,00;-315,00;72;-63,00;-315,00;0,00;0,00;0,00;17h48min;-816,00 +WINJ26;22/01/2026 12:40:00;22/01/2026 13:32:00;52min;1;1;V;181.750,00;182.510,00;192.290,00;Sim;152,00;760,00;73;152,00;760,00;0,00;0,00;0,00;3h34min;-664,00 +WINJ26;22/01/2026 15:48:00;22/01/2026 16:30:00;42min;1;1;C;181.150,00;181.150,00;192.290,00;No;0;0;74;0;0;0,00;0,00;0,00;3h8min;-664,00 +WINJ26;22/01/2026 16:56:00;22/01/2026 17:32:00;36min;1;1;C;180.750,00;180.875,00;192.290,00;Sim;25,00;125,00;75;25,00;125,00;0,00;0,00;0,00;1h8min;-639,00 +WINJ26;23/01/2026 14:50:00;23/01/2026 15:22:00;32min;1;1;C;182.075,00;182.150,00;192.290,00;No;15,00;75,00;76;15,00;75,00;0,00;0,00;0,00;21h54min;-624,00 +WINJ26;23/01/2026 15:50:00;23/01/2026 17:50:00;2h;1;1;V;184.400,00;182.700,00;192.290,00;Sim;-340,00;-1.700,00;77;-340,00;-1.700,00;0,00;0,00;0,00;1h;-964,00 +WINJ26;26/01/2026 09:06:00;26/01/2026 09:32:00;26min;1;1;V;185.100,00;186.240,00;192.290,00;Sim;228,00;1.140,00;78;228,00;1.140,00;0,00;0,00;0,00;2d17h;-736,00 +WINJ26;26/01/2026 10:38:00;26/01/2026 11:32:00;54min;1;1;C;183.685,00;185.005,00;192.290,00;No;264,00;1.320,00;79;264,00;1.320,00;0,00;0,00;0,00;1h32min;-472,00 +WINJ26;26/01/2026 13:30:00;26/01/2026 13:50:00;20min;1;1;C;183.100,00;183.435,00;192.290,00;Sim;67,00;335,00;80;67,00;335,00;0,00;0,00;0,00;2h52min;-405,00 +WINJ26;26/01/2026 14:06:00;26/01/2026 14:56:00;50min;1;1;V;183.525,00;183.585,00;192.290,00;No;12,00;60,00;81;12,00;60,00;0,00;0,00;0,00;36min;-393,00 +WINJ26;26/01/2026 16:10:00;26/01/2026 16:30:00;20min;1;1;C;183.170,00;183.430,00;192.290,00;No;52,00;260,00;82;52,00;260,00;0,00;0,00;0,00;2h4min;-341,00 +WINJ26;26/01/2026 18:12:00;27/01/2026 09:02:00;14h50min;1;1;C;183.440,00;185.465,00;192.290,00;No;405,00;2.025,00;83;405,00;2.025,00;0,00;0,00;0,00;2h2min;64,00 +WINJ26;27/01/2026 09:30:00;27/01/2026 10:06:00;36min;1;1;V;185.825,00;185.570,00;192.290,00;Sim;-51,00;-255,00;84;-51,00;-255,00;0,00;0,00;0,00;15h18min;13,00 +WINJ26;27/01/2026 10:22:00;27/01/2026 10:32:00;10min;1;1;C;185.795,00;186.115,00;192.290,00;No;64,00;320,00;85;64,00;320,00;0,00;0,00;0,00;52min;77,00 +WINJ26;27/01/2026 11:08:00;27/01/2026 12:28:00;1h20min;1;1;V;187.570,00;187.090,00;192.290,00;Sim;-96,00;-480,00;86;-96,00;-480,00;0,00;0,00;0,00;46min;-19,00 +WINJ26;27/01/2026 14:34:00;27/01/2026 15:20:00;46min;1;1;C;187.750,00;187.310,00;192.290,00;No;-88,00;-440,00;87;-88,00;-440,00;0,00;0,00;0,00;3h26min;-107,00 +WINJ26;28/01/2026 12:22:00;28/01/2026 12:52:00;30min;1;1;C;188.735,00;188.665,00;192.290,00;No;-14,00;-70,00;88;-14,00;-70,00;0,00;0,00;0,00;21h48min;-121,00 +WINJ26;28/01/2026 14:22:00;28/01/2026 14:52:00;30min;1;1;C;188.450,00;188.665,00;192.290,00;Sim;43,00;215,00;89;43,00;215,00;0,00;0,00;0,00;2h;-78,00 +WINJ26;28/01/2026 16:52:00;29/01/2026 09:30:00;16h38min;1;1;V;191.020,00;188.875,00;192.290,00;Sim;-429,00;-2.145,00;90;-429,00;-2.145,00;0,00;0,00;0,00;2h30min;-507,00 +WINJ26;29/01/2026 10:12:00;29/01/2026 10:32:00;20min;1;1;C;190.950,00;191.025,00;192.290,00;No;15,00;75,00;91;15,00;75,00;0,00;0,00;0,00;17h20min;-492,00 +WINJ26;29/01/2026 11:22:00;29/01/2026 11:30:00;8min;1;1;V;190.745,00;191.020,00;192.290,00;Sim;55,00;275,00;92;55,00;275,00;0,00;0,00;0,00;1h10min;-437,00 +WINJ26;29/01/2026 13:20:00;29/01/2026 13:44:00;24min;1;1;V;187.360,00;187.735,00;192.290,00;No;75,00;375,00;93;75,00;375,00;0,00;0,00;0,00;1h58min;-362,00 +WINJ26;29/01/2026 14:56:00;29/01/2026 15:18:00;22min;1;1;C;187.720,00;188.205,00;192.290,00;Sim;97,00;485,00;94;97,00;485,00;0,00;0,00;0,00;1h36min;-265,00 +WINJ26;29/01/2026 15:22:00;29/01/2026 15:26:00;4min;1;1;V;187.965,00;188.205,00;192.290,00;Sim;48,00;240,00;95;48,00;240,00;0,00;0,00;0,00;26min;-217,00 +WINJ26;29/01/2026 17:54:00;30/01/2026 09:26:00;15h32min;1;1;C;188.245,00;187.815,00;192.290,00;No;-86,00;-430,00;96;-86,00;-430,00;0,00;0,00;0,00;2h32min;-303,00 +WINJ26;30/01/2026 11:32:00;30/01/2026 11:40:00;8min;1;1;V;187.400,00;187.750,00;192.290,00;No;70,00;350,00;97;70,00;350,00;0,00;0,00;0,00;17h38min;-233,00 +WINJ26;30/01/2026 12:22:00;30/01/2026 12:30:00;8min;1;1;V;187.650,00;188.040,00;192.290,00;Sim;78,00;390,00;98;78,00;390,00;0,00;0,00;0,00;50min;-155,00 +WINJ26;30/01/2026 12:46:00;30/01/2026 12:56:00;10min;1;1;V;187.890,00;188.325,00;192.290,00;Sim;87,00;435,00;99;87,00;435,00;0,00;0,00;0,00;24min;-68,00 +WINJ26;30/01/2026 13:14:00;30/01/2026 15:50:00;2h36min;1;1;C;187.460,00;185.535,00;192.290,00;Sim;-385,00;-1.925,00;100;-385,00;-1.925,00;0,00;0,00;0,00;28min;-453,00 +WINJ26;30/01/2026 16:14:00;30/01/2026 16:32:00;18min;1;1;V;186.000,00;186.420,00;192.290,00;No;84,00;420,00;101;84,00;420,00;0,00;0,00;0,00;3h;-369,00 +WINJ26;30/01/2026 18:04:00;02/02/2026 09:02:00;2d14h;1;1;V;185.650,00;186.085,00;192.290,00;No;87,00;435,00;102;87,00;435,00;0,00;0,00;0,00;1h50min;-282,00 +WINJ26;02/02/2026 10:52:00;02/02/2026 11:16:00;24min;1;1;V;186.850,00;187.415,00;192.290,00;Sim;113,00;565,00;103;113,00;565,00;0,00;0,00;0,00;2d16h;-169,00 +WINJ26;02/02/2026 13:16:00;02/02/2026 14:18:00;1h2min;1;1;V;187.030,00;186.665,00;192.290,00;No;-73,00;-365,00;104;-73,00;-365,00;0,00;0,00;0,00;2h24min;-242,00 +WINJ26;02/02/2026 14:22:00;02/02/2026 14:32:00;10min;1;1;C;187.020,00;187.215,00;192.290,00;Sim;39,00;195,00;105;39,00;195,00;0,00;0,00;0,00;1h6min;-203,00 +WINJ26;02/02/2026 15:10:00;02/02/2026 15:50:00;40min;1;1;C;186.820,00;186.805,00;192.290,00;Sim;-3,00;-15,00;106;-3,00;-15,00;0,00;0,00;0,00;48min;-206,00 +WINJ26;02/02/2026 16:32:00;02/02/2026 16:44:00;12min;1;1;C;186.355,00;186.480,00;192.290,00;Sim;25,00;125,00;107;25,00;125,00;0,00;0,00;0,00;1h22min;-181,00 +WINJ26;02/02/2026 18:12:00;03/02/2026 10:16:00;16h4min;1;1;V;189.330,00;187.675,00;192.290,00;Sim;-331,00;-1.655,00;108;-331,00;-1.655,00;0,00;0,00;0,00;1h40min;-512,00 +WINJ26;03/02/2026 10:52:00;03/02/2026 12:06:00;1h14min;1;1;V;191.325,00;190.320,00;192.290,00;Sim;-201,00;-1.005,00;109;-201,00;-1.005,00;0,00;0,00;0,00;16h40min;-713,00 +WINJ26;03/02/2026 12:10:00;03/02/2026 12:52:00;42min;1;1;C;191.300,00;191.105,00;192.290,00;No;-39,00;-195,00;110;-39,00;-195,00;0,00;0,00;0,00;1h18min;-752,00 +WINJ26;03/02/2026 14:12:00;03/02/2026 15:58:00;1h46min;1;1;C;190.520,00;189.800,00;192.290,00;Sim;-144,00;-720,00;111;-144,00;-720,00;0,00;0,00;0,00;2h2min;-896,00 +WINJ26;03/02/2026 17:42:00;03/02/2026 18:14:00;32min;1;1;V;190.195,00;190.375,00;192.290,00;Sim;36,00;180,00;112;36,00;180,00;0,00;0,00;0,00;3h30min;-860,00 +WINJ26;04/02/2026 09:22:00;04/02/2026 09:54:00;32min;1;1;C;189.340,00;189.580,00;192.290,00;Sim;48,00;240,00;113;48,00;240,00;0,00;0,00;0,00;15h40min;-812,00 +WINJ26;04/02/2026 11:02:00;04/02/2026 12:10:00;1h8min;1;1;C;188.460,00;187.700,00;192.290,00;Sim;-152,00;-760,00;114;-152,00;-760,00;0,00;0,00;0,00;1h40min;-964,00 +WINJ26;04/02/2026 16:56:00;04/02/2026 17:34:00;38min;1;1;V;185.535,00;185.370,00;192.290,00;No;-33,00;-165,00;115;-33,00;-165,00;0,00;0,00;0,00;5h54min;-997,00 +WINJ26;04/02/2026 18:04:00;05/02/2026 09:22:00;15h18min;1;1;V;186.175,00;186.010,00;192.290,00;Sim;-33,00;-165,00;116;-33,00;-165,00;0,00;0,00;0,00;1h8min;-1.030,00 +WINJ26;05/02/2026 09:46:00;05/02/2026 09:54:00;8min;1;1;C;186.185,00;186.445,00;192.290,00;Sim;52,00;260,00;117;52,00;260,00;0,00;0,00;0,00;15h42min;-978,00 +WINJ26;05/02/2026 10:26:00;05/02/2026 11:00:00;34min;1;1;V;186.980,00;187.125,00;192.290,00;Sim;29,00;145,00;118;29,00;145,00;0,00;0,00;0,00;40min;-949,00 +WINJ26;05/02/2026 11:42:00;05/02/2026 12:00:00;18min;1;1;V;187.535,00;187.900,00;192.290,00;Sim;73,00;365,00;119;73,00;365,00;0,00;0,00;0,00;1h16min;-876,00 +WINJ26;05/02/2026 12:30:00;05/02/2026 12:44:00;14min;1;1;C;186.695,00;187.100,00;192.290,00;No;81,00;405,00;120;81,00;405,00;0,00;0,00;0,00;48min;-795,00 +WINJ26;05/02/2026 13:24:00;05/02/2026 14:08:00;44min;1;1;V;187.180,00;187.375,00;192.290,00;No;39,00;195,00;121;39,00;195,00;0,00;0,00;0,00;54min;-756,00 +WINJ26;05/02/2026 14:28:00;05/02/2026 15:24:00;56min;1;1;V;187.545,00;187.645,00;192.290,00;Sim;20,00;100,00;122;20,00;100,00;0,00;0,00;0,00;1h4min;-736,00 +WINJ26;05/02/2026 16:08:00;05/02/2026 16:34:00;26min;1;1;V;187.575,00;187.585,00;192.290,00;No;2,00;10,00;123;2,00;10,00;0,00;0,00;0,00;1h40min;-734,00 +WINJ26;05/02/2026 17:10:00;05/02/2026 17:16:00;6min;1;1;V;187.260,00;187.485,00;192.290,00;No;45,00;225,00;124;45,00;225,00;0,00;0,00;0,00;1h2min;-689,00 +WINJ26;05/02/2026 17:28:00;05/02/2026 17:58:00;30min;1;1;C;186.585,00;186.505,00;192.290,00;Sim;-16,00;-80,00;125;-16,00;-80,00;0,00;0,00;0,00;18min;-705,00 +WINJ26;06/02/2026 09:00:00;06/02/2026 09:20:00;20min;1;1;V;186.900,00;187.500,00;192.290,00;Sim;120,00;600,00;126;120,00;600,00;0,00;0,00;0,00;15h32min;-585,00 +WINJ26;06/02/2026 10:28:00;06/02/2026 11:02:00;34min;1;1;C;186.190,00;186.540,00;192.290,00;Sim;70,00;350,00;127;70,00;350,00;0,00;0,00;0,00;1h28min;-515,00 +WINJ26;06/02/2026 11:38:00;06/02/2026 12:20:00;42min;1;1;C;186.605,00;186.390,00;192.290,00;No;-43,00;-215,00;128;-43,00;-215,00;0,00;0,00;0,00;1h10min;-558,00 +WINJ26;06/02/2026 12:56:00;06/02/2026 13:06:00;10min;1;1;C;186.290,00;186.350,00;192.290,00;Sim;12,00;60,00;129;12,00;60,00;0,00;0,00;0,00;1h18min;-546,00 +WINJ26;06/02/2026 13:50:00;06/02/2026 14:14:00;24min;1;1;V;186.970,00;187.120,00;192.290,00;No;30,00;150,00;130;30,00;150,00;0,00;0,00;0,00;54min;-516,00 +WINJ26;06/02/2026 15:10:00;06/02/2026 16:06:00;56min;1;1;C;186.590,00;186.515,00;192.290,00;No;-15,00;-75,00;131;-15,00;-75,00;0,00;0,00;0,00;1h20min;-531,00 +WINJ26;06/02/2026 16:08:00;06/02/2026 16:40:00;32min;1;1;V;186.465,00;186.500,00;192.290,00;No;7,00;35,00;132;7,00;35,00;0,00;0,00;0,00;58min;-524,00 +WINJ26;09/02/2026 09:02:00;09/02/2026 09:52:00;50min;1;1;V;188.005,00;187.735,00;192.290,00;Sim;-54,00;-270,00;133;-54,00;-270,00;0,00;0,00;0,00;2d16h;-578,00 +WINJ26;09/02/2026 12:56:00;09/02/2026 13:14:00;18min;1;1;C;187.975,00;188.070,00;192.290,00;No;19,00;95,00;134;19,00;95,00;0,00;0,00;0,00;3h54min;-559,00 +WINJ26;09/02/2026 13:32:00;09/02/2026 14:56:00;1h24min;1;1;V;189.360,00;188.325,00;192.290,00;Sim;-207,00;-1.035,00;135;-207,00;-1.035,00;0,00;0,00;0,00;36min;-766,00 +WINJ26;09/02/2026 15:30:00;09/02/2026 16:48:00;1h18min;1;1;V;190.275,00;189.885,00;192.290,00;Sim;-78,00;-390,00;136;-78,00;-390,00;0,00;0,00;0,00;1h58min;-844,00 +WINJ26;10/02/2026 12:00:00;10/02/2026 13:08:00;1h8min;1;1;V;190.650,00;190.215,00;192.290,00;Sim;-87,00;-435,00;137;-87,00;-435,00;0,00;0,00;0,00;20h30min;-931,00 +WINJ26;10/02/2026 13:10:00;10/02/2026 13:14:00;4min;1;1;C;190.690,00;190.805,00;192.290,00;No;23,00;115,00;138;23,00;115,00;0,00;0,00;0,00;1h10min;-908,00 +WINJ26;10/02/2026 13:22:00;10/02/2026 16:10:00;2h48min;1;1;C;190.645,00;189.645,00;192.290,00;Sim;-200,00;-1.000,00;139;-200,00;-1.000,00;0,00;0,00;0,00;12min;-1.108,00 +WINJ26;10/02/2026 16:36:00;10/02/2026 17:42:00;1h6min;1;1;V;190.325,00;189.735,00;192.290,00;No;-118,00;-590,00;140;-118,00;-590,00;0,00;0,00;0,00;3h14min;-1.226,00 +WINJ26;11/02/2026 11:22:00;11/02/2026 11:54:00;32min;1;1;V;193.160,00;193.230,00;192.290,00;Sim;14,00;70,00;141;14,00;70,00;0,00;0,00;0,00;18h46min;-1.212,00 +WINJ26;11/02/2026 12:22:00;11/02/2026 12:44:00;22min;1;1;C;192.580,00;192.735,00;192.290,00;No;31,00;155,00;142;31,00;155,00;0,00;0,00;0,00;1h;-1.181,00 +WINJ26;11/02/2026 12:58:00;11/02/2026 14:30:00;1h32min;1;1;V;194.525,00;193.255,00;192.290,00;Sim;-254,00;-1.270,00;143;-254,00;-1.270,00;0,00;0,00;0,00;36min;-1.435,00 +WINJ26;12/02/2026 09:26:00;12/02/2026 10:06:00;40min;1;1;C;193.150,00;193.380,00;192.290,00;No;46,00;230,00;144;46,00;230,00;0,00;0,00;0,00;20h28min;-1.389,00 +WINJ26;12/02/2026 10:22:00;12/02/2026 10:46:00;24min;1;1;V;193.215,00;193.555,00;192.290,00;Sim;68,00;340,00;145;68,00;340,00;0,00;0,00;0,00;56min;-1.321,00 +WINJ26;12/02/2026 11:18:00;12/02/2026 11:42:00;24min;1;1;V;193.380,00;193.555,00;192.290,00;No;35,00;175,00;146;35,00;175,00;0,00;0,00;0,00;56min;-1.286,00 +WINJ26;12/02/2026 11:44:00;12/02/2026 12:02:00;18min;1;1;C;193.410,00;193.700,00;192.290,00;No;58,00;290,00;147;58,00;290,00;0,00;0,00;0,00;26min;-1.228,00 +WINJ26;12/02/2026 13:04:00;12/02/2026 13:38:00;34min;1;1;C;193.350,00;192.905,00;192.290,00;Sim;-89,00;-445,00;148;-89,00;-445,00;0,00;0,00;0,00;1h20min;-1.317,00 +WINJ26;13/02/2026 09:28:00;13/02/2026 10:34:00;1h6min;1;1;C;189.335,00;189.205,00;192.290,00;Sim;-26,00;-130,00;149;-26,00;-130,00;0,00;0,00;0,00;20h24min;-1.343,00 +WINJ26;13/02/2026 13:02:00;13/02/2026 13:18:00;16min;1;1;C;188.665,00;188.975,00;192.290,00;Sim;62,00;310,00;150;62,00;310,00;0,00;0,00;0,00;3h34min;-1.281,00 +WINJ26;18/02/2026 14:02:00;18/02/2026 14:20:00;18min;1;1;C;189.915,00;190.220,00;192.290,00;No;61,00;305,00;151;61,00;305,00;0,00;0,00;0,00;5d1h;-1.220,00 +WINJ26;18/02/2026 15:46:00;18/02/2026 16:02:00;16min;1;1;C;189.415,00;189.570,00;192.290,00;Sim;31,00;155,00;152;31,00;155,00;0,00;0,00;0,00;1h44min;-1.189,00 +WINJ26;18/02/2026 17:48:00;19/02/2026 09:38:00;15h50min;1;1;V;190.080,00;189.300,00;192.290,00;No;-156,00;-780,00;153;-156,00;-780,00;0,00;0,00;0,00;2h2min;-1.345,00 +WINJ26;19/02/2026 10:10:00;19/02/2026 10:18:00;8min;1;1;C;189.870,00;190.240,00;192.290,00;No;74,00;370,00;154;74,00;370,00;0,00;0,00;0,00;16h22min;-1.271,00 +WINJ26;19/02/2026 11:30:00;19/02/2026 11:50:00;20min;1;1;C;190.090,00;190.200,00;192.290,00;No;22,00;110,00;155;22,00;110,00;0,00;0,00;0,00;1h20min;-1.249,00 +WINJ26;19/02/2026 12:32:00;19/02/2026 13:46:00;1h14min;1;1;V;192.180,00;191.790,00;192.290,00;Sim;-78,00;-390,00;156;-78,00;-390,00;0,00;0,00;0,00;1h2min;-1.327,00 +WINJ26;19/02/2026 14:28:00;19/02/2026 14:48:00;20min;1;1;V;192.195,00;192.425,00;192.290,00;Sim;46,00;230,00;157;46,00;230,00;0,00;0,00;0,00;1h56min;-1.281,00 +WINJ26;19/02/2026 16:42:00;19/02/2026 17:04:00;22min;1;1;C;191.730,00;191.830,00;192.290,00;No;20,00;100,00;158;20,00;100,00;0,00;0,00;0,00;2h14min;-1.261,00 +WINJ26;19/02/2026 18:10:00;20/02/2026 09:02:00;14h52min;1;1;V;191.905,00;192.300,00;192.290,00;No;79,00;395,00;159;79,00;395,00;0,00;0,00;0,00;1h28min;-1.182,00 +WINJ26;20/02/2026 09:36:00;20/02/2026 10:16:00;40min;1;1;C;190.920,00;190.820,00;192.290,00;Sim;-20,00;-100,00;160;-20,00;-100,00;0,00;0,00;0,00;15h26min;-1.202,00 +WINJ26;20/02/2026 13:26:00;20/02/2026 13:36:00;10min;1;1;C;191.945,00;192.145,00;192.290,00;No;40,00;200,00;161;40,00;200,00;0,00;0,00;0,00;3h50min;-1.162,00 +WINJ26;20/02/2026 15:02:00;20/02/2026 17:32:00;2h30min;1;1;V;193.945,00;192.470,00;192.290,00;Sim;-295,00;-1.475,00;162;-295,00;-1.475,00;0,00;0,00;0,00;1h36min;-1.457,00 +WINJ26;23/02/2026 09:04:00;23/02/2026 10:04:00;1h;1;1;C;193.760,00;193.000,00;192.290,00;No;-152,00;-760,00;163;-152,00;-760,00;0,00;0,00;0,00;2d18h;-1.609,00 +WINJ26;23/02/2026 11:40:00;23/02/2026 12:06:00;26min;1;1;V;193.950,00;193.930,00;192.290,00;Sim;-4,00;-20,00;164;-4,00;-20,00;0,00;0,00;0,00;2h36min;-1.613,00 +WINJ26;23/02/2026 12:24:00;23/02/2026 14:02:00;1h38min;1;1;C;193.450,00;192.555,00;192.290,00;Sim;-179,00;-895,00;165;-179,00;-895,00;0,00;0,00;0,00;44min;-1.792,00 +WINJ26;23/02/2026 15:30:00;23/02/2026 15:46:00;16min;1;1;V;192.740,00;192.890,00;192.290,00;No;30,00;150,00;166;30,00;150,00;0,00;0,00;0,00;3h6min;-1.762,00 +WINJ26;24/02/2026 09:10:00;24/02/2026 09:34:00;24min;1;1;V;193.125,00;193.360,00;192.290,00;Sim;47,00;235,00;167;47,00;235,00;0,00;0,00;0,00;17h40min;-1.715,00 +WINJ26;24/02/2026 10:02:00;24/02/2026 10:08:00;6min;1;1;C;193.310,00;193.455,00;192.290,00;Sim;29,00;145,00;168;29,00;145,00;0,00;0,00;0,00;52min;-1.686,00 +WINJ26;24/02/2026 11:48:00;24/02/2026 13:46:00;1h58min;1;1;V;194.895,00;193.645,00;192.290,00;Sim;-250,00;-1.250,00;169;-250,00;-1.250,00;0,00;0,00;0,00;1h46min;-1.936,00 +WINJ26;24/02/2026 15:54:00;24/02/2026 16:34:00;40min;1;1;C;194.990,00;194.915,00;192.290,00;No;-15,00;-75,00;170;-15,00;-75,00;0,00;0,00;0,00;4h6min;-1.951,00 +WINJ26;25/02/2026 11:22:00;25/02/2026 11:40:00;18min;1;1;V;195.150,00;195.315,00;192.290,00;Sim;33,00;165,00;171;33,00;165,00;0,00;0,00;0,00;19h28min;-1.918,00 +WINJ26;25/02/2026 13:18:00;25/02/2026 13:34:00;16min;1;1;V;194.510,00;194.690,00;192.290,00;No;36,00;180,00;172;36,00;180,00;0,00;0,00;0,00;1h56min;-1.882,00 +WINJ26;26/02/2026 09:58:00;26/02/2026 10:20:00;22min;1;1;V;194.240,00;194.150,00;192.290,00;No;-18,00;-90,00;173;-18,00;-90,00;0,00;0,00;0,00;20h40min;-1.900,00 +WINJ26;26/02/2026 10:54:00;26/02/2026 10:58:00;4min;1;1;V;194.075,00;194.140,00;192.290,00;No;13,00;65,00;174;13,00;65,00;0,00;0,00;0,00;56min;-1.887,00 +WINJ26;26/02/2026 11:26:00;26/02/2026 12:40:00;1h14min;1;1;C;194.200,00;192.980,00;192.290,00;Sim;-244,00;-1.220,00;175;-244,00;-1.220,00;0,00;0,00;0,00;32min;-2.131,00 +WINJ26;26/02/2026 13:04:00;26/02/2026 13:44:00;40min;1;1;V;193.650,00;193.325,00;192.290,00;No;-65,00;-325,00;176;-65,00;-325,00;0,00;0,00;0,00;1h38min;-2.196,00 +WINJ26;26/02/2026 14:04:00;26/02/2026 14:34:00;30min;1;1;C;193.420,00;193.475,00;192.290,00;Sim;11,00;55,00;177;11,00;55,00;0,00;0,00;0,00;1h;-2.185,00 +WINJ26;26/02/2026 15:38:00;26/02/2026 17:24:00;1h46min;1;1;V;194.165,00;193.745,00;192.290,00;Sim;-84,00;-420,00;178;-84,00;-420,00;0,00;0,00;0,00;1h34min;-2.269,00 +WINJ26;27/02/2026 14:14:00;27/02/2026 15:02:00;48min;1;1;C;192.760,00;192.550,00;192.290,00;Sim;-42,00;-210,00;179;-42,00;-210,00;0,00;0,00;0,00;22h36min;-2.311,00 +WINJ26;27/02/2026 17:04:00;27/02/2026 17:08:00;4min;1;1;V;191.845,00;191.900,00;192.290,00;No;11,00;55,00;180;11,00;55,00;0,00;0,00;0,00;2h50min;-2.300,00 +WINJ26;02/03/2026 10:18:00;02/03/2026 10:46:00;28min;1;1;V;190.545,00;190.465,00;192.290,00;No;-16,00;-80,00;181;-16,00;-80,00;0,00;0,00;0,00;2d17h;-2.316,00 +WINJ26;02/03/2026 13:00:00;02/03/2026 13:10:00;10min;1;1;C;191.005,00;191.385,00;192.290,00;Sim;76,00;380,00;182;76,00;380,00;0,00;0,00;0,00;2h42min;-2.240,00 +WINJ26;02/03/2026 14:52:00;02/03/2026 15:22:00;30min;1;1;V;191.850,00;191.885,00;192.290,00;Sim;7,00;35,00;183;7,00;35,00;0,00;0,00;0,00;1h52min;-2.233,00 +WINJ26;02/03/2026 17:12:00; - ; - ;1;0;C;192.200,00;192.250,00;192.250,00;No;10,00;50,00;184;10,00;50,00;0,00;0,00;0,00;2h20min;-2.223,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv new file mode 100644 index 0000000..295749b --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv @@ -0,0 +1,103 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;21/10/2025 12:15:00;21/10/2025 13:55:00;1h40min;1;1;V;152.500,00;153.100,00;192.275,00;No;120,00;600,00;1;120,00;600,00;0,00;0,00;0,00; - ;120,00 +WINJ26;05/11/2025 10:50:00;06/11/2025 15:25:00;1d4h;1;1;V;161.800,00;159.620,00;192.275,00;Sim;-436,00;-2.180,00;2;-436,00;-2.180,00;0,00;0,00;0,00;14d22h;-316,00 +WINJ26;13/11/2025 09:05:00;13/11/2025 14:05:00;5h;1;1;V;165.640,00;166.000,00;192.275,00;Sim;72,00;360,00;3;72,00;360,00;0,00;0,00;0,00;7d22h;-244,00 +WINJ26;19/11/2025 18:20:00;21/11/2025 14:35:00;1d20h;1;1;C;163.200,00;162.635,00;192.275,00;No;-113,00;-565,00;4;-113,00;-565,00;0,00;0,00;0,00;6d9h;-357,00 +WINJ26;28/11/2025 14:05:00;28/11/2025 18:15:00;4h10min;1;1;V;166.770,00;166.900,00;192.275,00;Sim;26,00;130,00;5;26,00;130,00;0,00;0,00;0,00;8d19h;-331,00 +WINJ26;17/12/2025 17:40:00;17/12/2025 18:00:00;20min;1;1;V;163.850,00;163.870,00;192.275,00;No;4,00;20,00;6;4,00;20,00;0,00;0,00;0,00;19d3h;-327,00 +WINJ26;18/12/2025 09:50:00;18/12/2025 10:20:00;30min;1;1;C;163.385,00;163.945,00;192.275,00;No;112,00;560,00;7;112,00;560,00;0,00;0,00;0,00;16h10min;-215,00 +WINJ26;18/12/2025 13:00:00;18/12/2025 14:10:00;1h10min;1;1;V;164.585,00;164.805,00;192.275,00;Sim;44,00;220,00;8;44,00;220,00;0,00;0,00;0,00;3h10min;-171,00 +WINJ26;18/12/2025 16:50:00;18/12/2025 17:40:00;50min;1;1;C;164.320,00;164.555,00;192.275,00;No;47,00;235,00;9;47,00;235,00;0,00;0,00;0,00;3h50min;-124,00 +WINJ26;18/12/2025 17:50:00;19/12/2025 09:25:00;15h35min;1;1;V;164.540,00;164.670,00;192.275,00;No;26,00;130,00;10;26,00;130,00;0,00;0,00;0,00;1h;-98,00 +WINJ26;19/12/2025 12:50:00;19/12/2025 13:10:00;20min;1;1;C;165.550,00;165.605,00;192.275,00;No;11,00;55,00;11;11,00;55,00;0,00;0,00;0,00;19h;-87,00 +WINJ26;19/12/2025 14:50:00;22/12/2025 09:00:00;2d18h;1;1;C;165.180,00;165.430,00;192.275,00;Sim;50,00;250,00;12;50,00;250,00;0,00;0,00;0,00;2h;-37,00 +WINJ26;22/12/2025 13:00:00;22/12/2025 15:10:00;2h10min;1;1;V;164.205,00;164.135,00;192.275,00;No;-14,00;-70,00;13;-14,00;-70,00;0,00;0,00;0,00;2d22h;-51,00 +WINJ26;22/12/2025 17:25:00;22/12/2025 17:35:00;10min;1;1;V;164.255,00;164.405,00;192.275,00;Sim;30,00;150,00;14;30,00;150,00;0,00;0,00;0,00;4h25min;-21,00 +WINJ26;23/12/2025 11:50:00;23/12/2025 15:10:00;3h20min;1;1;V;166.310,00;165.910,00;192.275,00;Sim;-80,00;-400,00;15;-80,00;-400,00;0,00;0,00;0,00;18h25min;-101,00 +WINJ26;23/12/2025 18:10:00;26/12/2025 09:05:00;2d14h;1;1;V;165.720,00;166.705,00;192.275,00;Sim;197,00;985,00;16;197,00;985,00;0,00;0,00;0,00;6h20min;96,00 +WINJ26;26/12/2025 13:30:00;26/12/2025 14:10:00;40min;1;1;C;166.195,00;166.465,00;192.275,00;No;54,00;270,00;17;54,00;270,00;0,00;0,00;0,00;2d19h;150,00 +WINJ26;26/12/2025 14:45:00;29/12/2025 09:30:00;2d18h;1;1;V;167.005,00;166.490,00;192.275,00;No;-103,00;-515,00;18;-103,00;-515,00;0,00;0,00;0,00;1h15min;47,00 +WINJ26;29/12/2025 11:50:00;29/12/2025 11:55:00;5min;1;1;V;166.395,00;166.545,00;192.275,00;Sim;30,00;150,00;19;30,00;150,00;0,00;0,00;0,00;2d21h;77,00 +WINJ26;29/12/2025 12:15:00;29/12/2025 14:25:00;2h10min;1;1;C;166.185,00;166.105,00;192.275,00;Sim;-16,00;-80,00;20;-16,00;-80,00;0,00;0,00;0,00;25min;61,00 +WINJ26;29/12/2025 17:00:00;29/12/2025 17:45:00;45min;1;1;V;166.070,00;166.175,00;192.275,00;No;21,00;105,00;21;21,00;105,00;0,00;0,00;0,00;4h45min;82,00 +WINJ26;30/12/2025 09:25:00;30/12/2025 10:50:00;1h25min;1;1;V;167.335,00;167.545,00;192.275,00;Sim;42,00;210,00;22;42,00;210,00;0,00;0,00;0,00;16h25min;124,00 +WINJ26;30/12/2025 13:15:00;30/12/2025 15:20:00;2h5min;1;1;V;167.735,00;167.660,00;192.275,00;Sim;-15,00;-75,00;23;-15,00;-75,00;0,00;0,00;0,00;3h50min;109,00 +WINJ26;02/01/2026 11:45:00;02/01/2026 15:20:00;3h35min;1;1;C;166.575,00;166.080,00;192.275,00;No;-99,00;-495,00;24;-99,00;-495,00;0,00;0,00;0,00;2d22h;10,00 +WINJ26;05/01/2026 13:45:00;05/01/2026 16:55:00;3h10min;1;1;V;167.635,00;167.265,00;192.275,00;No;-74,00;-370,00;25;-74,00;-370,00;0,00;0,00;0,00;3d2h;-64,00 +WINJ26;05/01/2026 17:10:00;05/01/2026 17:35:00;25min;1;1;C;167.545,00;167.650,00;192.275,00;No;21,00;105,00;26;21,00;105,00;0,00;0,00;0,00;3h25min;-43,00 +WINJ26;06/01/2026 09:55:00;06/01/2026 11:30:00;1h35min;1;1;V;169.305,00;168.835,00;192.275,00;Sim;-94,00;-470,00;27;-94,00;-470,00;0,00;0,00;0,00;16h45min;-137,00 +WINJ26;06/01/2026 13:25:00;06/01/2026 13:30:00;5min;1;1;C;169.245,00;169.405,00;192.275,00;No;32,00;160,00;28;32,00;160,00;0,00;0,00;0,00;3h30min;-105,00 +WINJ26;06/01/2026 14:10:00;06/01/2026 14:25:00;15min;1;1;V;169.370,00;169.570,00;192.275,00;Sim;40,00;200,00;29;40,00;200,00;0,00;0,00;0,00;45min;-65,00 +WINJ26;06/01/2026 15:20:00;06/01/2026 15:55:00;35min;1;1;C;169.335,00;169.510,00;192.275,00;No;35,00;175,00;30;35,00;175,00;0,00;0,00;0,00;1h10min;-30,00 +WINJ26;07/01/2026 09:50:00;07/01/2026 13:30:00;3h40min;1;1;C;169.150,00;167.830,00;192.275,00;Sim;-264,00;-1.320,00;31;-264,00;-1.320,00;0,00;0,00;0,00;18h30min;-294,00 +WINJ26;08/01/2026 09:00:00;08/01/2026 09:20:00;20min;1;1;C;167.500,00;167.500,00;192.275,00;Sim;0;0;32;0;0;0,00;0,00;0,00;23h10min;-294,00 +WINJ26;08/01/2026 17:55:00;09/01/2026 09:15:00;15h20min;1;1;V;168.115,00;168.220,00;192.275,00;No;21,00;105,00;33;21,00;105,00;0,00;0,00;0,00;8h55min;-273,00 +WINJ26;09/01/2026 11:40:00;09/01/2026 12:55:00;1h15min;1;1;V;169.160,00;169.280,00;192.275,00;Sim;24,00;120,00;34;24,00;120,00;0,00;0,00;0,00;17h45min;-249,00 +WINJ26;09/01/2026 18:00:00;12/01/2026 09:15:00;2d15h;1;1;C;168.675,00;168.975,00;192.275,00;No;60,00;300,00;35;60,00;300,00;0,00;0,00;0,00;6h20min;-189,00 +WINJ26;12/01/2026 09:20:00;12/01/2026 09:45:00;25min;1;1;V;168.590,00;168.900,00;192.275,00;No;62,00;310,00;36;62,00;310,00;0,00;0,00;0,00;2d15h;-127,00 +WINJ26;13/01/2026 10:30:00;13/01/2026 10:45:00;15min;1;1;C;167.430,00;167.910,00;192.275,00;Sim;96,00;480,00;37;96,00;480,00;0,00;0,00;0,00;1d1h;-31,00 +WINJ26;13/01/2026 13:30:00;13/01/2026 13:45:00;15min;1;1;C;167.085,00;167.250,00;192.275,00;Sim;33,00;165,00;38;33,00;165,00;0,00;0,00;0,00;3h;2,00 +WINJ26;14/01/2026 10:20:00;14/01/2026 11:05:00;45min;1;1;V;168.005,00;168.375,00;192.275,00;No;74,00;370,00;39;74,00;370,00;0,00;0,00;0,00;20h50min;76,00 +WINJ26;14/01/2026 11:50:00;14/01/2026 12:50:00;1h;1;1;V;168.545,00;168.580,00;192.275,00;Sim;7,00;35,00;40;7,00;35,00;0,00;0,00;0,00;1h30min;83,00 +WINJ26;14/01/2026 12:55:00;14/01/2026 13:25:00;30min;1;1;C;168.625,00;168.790,00;192.275,00;No;33,00;165,00;41;33,00;165,00;0,00;0,00;0,00;1h5min;116,00 +WINJ26;14/01/2026 15:50:00;15/01/2026 10:45:00;18h55min;1;1;V;170.305,00;169.475,00;192.275,00;Sim;-166,00;-830,00;42;-166,00;-830,00;0,00;0,00;0,00;2h55min;-50,00 +WINJ26;15/01/2026 11:20:00;15/01/2026 12:05:00;45min;1;1;C;170.265,00;170.320,00;192.275,00;No;11,00;55,00;43;11,00;55,00;0,00;0,00;0,00;19h30min;-39,00 +WINJ26;15/01/2026 12:45:00;15/01/2026 16:15:00;3h30min;1;1;V;171.050,00;170.505,00;192.275,00;Sim;-109,00;-545,00;44;-109,00;-545,00;0,00;0,00;0,00;1h25min;-148,00 +WINJ26;15/01/2026 16:30:00;15/01/2026 18:15:00;1h45min;1;1;C;171.010,00;170.845,00;192.275,00;No;-33,00;-165,00;45;-33,00;-165,00;0,00;0,00;0,00;3h45min;-181,00 +WINJ26;16/01/2026 11:35:00;16/01/2026 13:30:00;1h55min;1;1;C;169.550,00;169.625,00;192.275,00;Sim;15,00;75,00;46;15,00;75,00;0,00;0,00;0,00;19h5min;-166,00 +WINJ26;16/01/2026 13:35:00;16/01/2026 14:00:00;25min;1;1;V;169.535,00;169.630,00;192.275,00;No;19,00;95,00;47;19,00;95,00;0,00;0,00;0,00;2h;-147,00 +WINJ26;20/01/2026 12:50:00;20/01/2026 14:35:00;1h45min;1;1;V;170.910,00;171.015,00;192.275,00;Sim;21,00;105,00;48;21,00;105,00;0,00;0,00;0,00;3d23h;-126,00 +WINJ26;20/01/2026 14:50:00;20/01/2026 16:55:00;2h5min;1;1;C;170.965,00;170.915,00;192.275,00;No;-10,00;-50,00;49;-10,00;-50,00;0,00;0,00;0,00;2h;-136,00 +WINJ26;21/01/2026 11:10:00;21/01/2026 14:30:00;3h20min;1;1;V;174.820,00;174.045,00;192.275,00;Sim;-155,00;-775,00;50;-155,00;-775,00;0,00;0,00;0,00;20h20min;-291,00 +WINJ26;21/01/2026 16:55:00;22/01/2026 14:25:00;21h30min;1;1;V;180.970,00;176.275,00;192.275,00;Sim;-939,00;-4.695,00;51;-939,00;-4.695,00;0,00;0,00;0,00;5h45min;-1.230,00 +WINJ26;23/01/2026 09:15:00;23/01/2026 10:55:00;1h40min;1;1;V;181.280,00;181.975,00;192.275,00;Sim;139,00;695,00;52;139,00;695,00;0,00;0,00;0,00;1d16h;-1.091,00 +WINJ26;26/01/2026 18:15:00;27/01/2026 09:05:00;14h50min;1;1;C;183.435,00;185.380,00;192.275,00;No;389,00;1.945,00;53;389,00;1.945,00;0,00;0,00;0,00;3d9h;-702,00 +WINJ26;27/01/2026 10:45:00;27/01/2026 14:15:00;3h30min;1;1;V;187.785,00;186.480,00;192.275,00;Sim;-261,00;-1.305,00;54;-261,00;-1.305,00;0,00;0,00;0,00;16h30min;-963,00 +WINJ26;27/01/2026 14:35:00;27/01/2026 17:05:00;2h30min;1;1;C;187.700,00;187.470,00;192.275,00;No;-46,00;-230,00;55;-46,00;-230,00;0,00;0,00;0,00;3h50min;-1.009,00 +WINJ26;28/01/2026 12:25:00;28/01/2026 13:10:00;45min;1;1;C;188.765,00;188.870,00;192.275,00;No;21,00;105,00;56;21,00;105,00;0,00;0,00;0,00;21h50min;-988,00 +WINJ26;28/01/2026 16:55:00;29/01/2026 11:10:00;18h15min;1;1;V;190.770,00;188.650,00;192.275,00;Sim;-424,00;-2.120,00;57;-424,00;-2.120,00;0,00;0,00;0,00;4h30min;-1.412,00 +WINJ26;29/01/2026 16:15:00;29/01/2026 17:00:00;45min;1;1;V;187.975,00;188.205,00;192.275,00;No;46,00;230,00;58;46,00;230,00;0,00;0,00;0,00;23h20min;-1.366,00 +WINJ26;29/01/2026 18:10:00;30/01/2026 10:20:00;16h10min;1;1;C;188.215,00;187.790,00;192.275,00;Sim;-85,00;-425,00;59;-85,00;-425,00;0,00;0,00;0,00;1h55min;-1.451,00 +WINJ26;30/01/2026 12:25:00;30/01/2026 13:05:00;40min;1;1;V;187.590,00;187.960,00;192.275,00;No;74,00;370,00;60;74,00;370,00;0,00;0,00;0,00;18h15min;-1.377,00 +WINJ26;02/02/2026 09:25:00;02/02/2026 10:15:00;50min;1;1;V;186.300,00;186.435,00;192.275,00;No;27,00;135,00;61;27,00;135,00;0,00;0,00;0,00;2d21h;-1.350,00 +WINJ26;02/02/2026 12:05:00;02/02/2026 12:25:00;20min;1;1;C;186.380,00;186.960,00;192.275,00;Sim;116,00;580,00;62;116,00;580,00;0,00;0,00;0,00;2h40min;-1.234,00 +WINJ26;02/02/2026 13:40:00;02/02/2026 15:05:00;1h25min;1;1;V;186.870,00;187.030,00;192.275,00;Sim;32,00;160,00;63;32,00;160,00;0,00;0,00;0,00;1h35min;-1.202,00 +WINJ26;02/02/2026 15:10:00;02/02/2026 17:10:00;2h;1;1;C;186.820,00;186.725,00;192.275,00;No;-19,00;-95,00;64;-19,00;-95,00;0,00;0,00;0,00;1h30min;-1.221,00 +WINJ26;02/02/2026 17:20:00;03/02/2026 12:15:00;18h55min;1;1;V;190.975,00;186.780,00;192.275,00;No;-839,00;-4.195,00;65;-839,00;-4.195,00;0,00;0,00;0,00;2h10min;-2.060,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 16:15:00;1h55min;1;1;C;190.335,00;189.965,00;192.275,00;No;-74,00;-370,00;66;-74,00;-370,00;0,00;0,00;0,00;21h;-2.134,00 +WINJ26;03/02/2026 18:00:00;03/02/2026 18:20:00;20min;1;1;V;190.190,00;190.400,00;192.275,00;Sim;42,00;210,00;67;42,00;210,00;0,00;0,00;0,00;3h40min;-2.092,00 +WINJ26;04/02/2026 09:25:00;04/02/2026 16:50:00;7h25min;1;1;C;189.400,00;185.340,00;192.275,00;Sim;-812,00;-4.060,00;68;-812,00;-4.060,00;0,00;0,00;0,00;15h25min;-2.904,00 +WINJ26;04/02/2026 18:10:00;05/02/2026 12:15:00;18h5min;1;1;V;186.700,00;186.145,00;192.275,00;No;-111,00;-555,00;69;-111,00;-555,00;0,00;0,00;0,00;8h45min;-3.015,00 +WINJ26;05/02/2026 12:40:00;05/02/2026 13:20:00;40min;1;1;C;186.490,00;187.355,00;192.275,00;Sim;173,00;865,00;70;173,00;865,00;0,00;0,00;0,00;18h30min;-2.842,00 +WINJ26;05/02/2026 17:35:00;06/02/2026 09:05:00;15h30min;1;1;C;186.445,00;188.150,00;192.275,00;Sim;341,00;1.705,00;71;341,00;1.705,00;0,00;0,00;0,00;4h55min;-2.501,00 +WINJ26;06/02/2026 10:30:00;06/02/2026 11:05:00;35min;1;1;C;186.200,00;186.645,00;192.275,00;Sim;89,00;445,00;72;89,00;445,00;0,00;0,00;0,00;16h55min;-2.412,00 +WINJ26;06/02/2026 15:30:00;06/02/2026 16:20:00;50min;1;1;C;186.340,00;186.645,00;192.275,00;No;61,00;305,00;73;61,00;305,00;0,00;0,00;0,00;5h;-2.351,00 +WINJ26;06/02/2026 17:15:00;06/02/2026 18:20:00;1h5min;1;1;V;186.945,00;186.985,00;192.275,00;Sim;8,00;40,00;74;8,00;40,00;0,00;0,00;0,00;1h45min;-2.343,00 +WINJ26;09/02/2026 10:25:00;09/02/2026 11:40:00;1h15min;1;1;C;187.630,00;188.180,00;192.275,00;No;110,00;550,00;75;110,00;550,00;0,00;0,00;0,00;2d17h;-2.233,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:55:00;1h5min;1;1;V;187.900,00;188.185,00;192.275,00;Sim;57,00;285,00;76;57,00;285,00;0,00;0,00;0,00;1h25min;-2.176,00 +WINJ26;09/02/2026 14:35:00;10/02/2026 09:05:00;18h30min;1;1;V;189.775,00;189.590,00;192.275,00;Sim;-37,00;-185,00;77;-37,00;-185,00;0,00;0,00;0,00;2h45min;-2.213,00 +WINJ26;10/02/2026 15:20:00;10/02/2026 16:35:00;1h15min;1;1;C;190.060,00;189.850,00;192.275,00;No;-42,00;-210,00;78;-42,00;-210,00;0,00;0,00;0,00;1d;-2.255,00 +WINJ26;10/02/2026 17:35:00;10/02/2026 17:50:00;15min;1;1;V;189.940,00;190.555,00;192.275,00;Sim;123,00;615,00;79;123,00;615,00;0,00;0,00;0,00;2h15min;-2.132,00 +WINJ26;11/02/2026 12:40:00;11/02/2026 12:50:00;10min;1;1;C;192.485,00;192.960,00;192.275,00;No;95,00;475,00;80;95,00;475,00;0,00;0,00;0,00;19h5min;-2.037,00 +WINJ26;12/02/2026 13:05:00;12/02/2026 16:20:00;3h15min;1;1;C;193.485,00;192.195,00;192.275,00;No;-258,00;-1.290,00;81;-258,00;-1.290,00;0,00;0,00;0,00;1d;-2.295,00 +WINJ26;12/02/2026 17:10:00;12/02/2026 17:35:00;25min;1;1;V;191.875,00;192.305,00;192.275,00;Sim;86,00;430,00;82;86,00;430,00;0,00;0,00;0,00;4h5min;-2.209,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:30:00;30min;1;1;V;190.075,00;190.460,00;192.275,00;No;77,00;385,00;83;77,00;385,00;0,00;0,00;0,00;5d19h;-2.132,00 +WINJ26;19/02/2026 11:45:00;19/02/2026 11:55:00;10min;1;1;C;190.010,00;190.240,00;192.275,00;Sim;46,00;230,00;84;46,00;230,00;0,00;0,00;0,00;22h45min;-2.086,00 +WINJ26;19/02/2026 12:45:00;19/02/2026 15:00:00;2h15min;1;1;V;192.050,00;191.920,00;192.275,00;Sim;-26,00;-130,00;85;-26,00;-130,00;0,00;0,00;0,00;1h;-2.112,00 +WINJ26;19/02/2026 17:20:00;19/02/2026 17:35:00;15min;1;1;C;191.630,00;192.035,00;192.275,00;No;81,00;405,00;86;81,00;405,00;0,00;0,00;0,00;4h35min;-2.031,00 +WINJ26;20/02/2026 09:25:00;20/02/2026 11:25:00;2h;1;1;C;191.075,00;190.950,00;192.275,00;Sim;-25,00;-125,00;87;-25,00;-125,00;0,00;0,00;0,00;16h5min;-2.056,00 +WINJ26;20/02/2026 11:35:00;20/02/2026 14:15:00;2h40min;1;1;V;191.950,00;191.035,00;192.275,00;No;-183,00;-915,00;88;-183,00;-915,00;0,00;0,00;0,00;2h10min;-2.239,00 +WINJ26;23/02/2026 09:45:00;23/02/2026 11:10:00;1h25min;1;1;C;192.730,00;193.190,00;192.275,00;No;92,00;460,00;89;92,00;460,00;0,00;0,00;0,00;2d22h;-2.147,00 +WINJ26;23/02/2026 17:45:00;24/02/2026 10:50:00;17h5min;1;1;V;193.260,00;192.480,00;192.275,00;Sim;-156,00;-780,00;90;-156,00;-780,00;0,00;0,00;0,00;8h;-2.303,00 +WINJ26;24/02/2026 17:35:00;24/02/2026 17:45:00;10min;1;1;C;194.745,00;195.035,00;192.275,00;No;58,00;290,00;91;58,00;290,00;0,00;0,00;0,00;23h50min;-2.245,00 +WINJ26;25/02/2026 15:55:00;25/02/2026 17:35:00;1h40min;1;1;C;194.365,00;194.475,00;192.275,00;Sim;22,00;110,00;92;22,00;110,00;0,00;0,00;0,00;22h20min;-2.223,00 +WINJ26;26/02/2026 10:15:00;26/02/2026 10:25:00;10min;1;1;V;194.185,00;194.690,00;192.275,00;Sim;101,00;505,00;93;101,00;505,00;0,00;0,00;0,00;18h20min;-2.122,00 +WINJ26;27/02/2026 12:20:00;27/02/2026 12:45:00;25min;1;1;C;193.145,00;193.580,00;192.275,00;Sim;87,00;435,00;94;87,00;435,00;0,00;0,00;0,00;1d2h;-2.035,00 +WINJ26;02/03/2026 11:05:00;02/03/2026 11:45:00;40min;1;1;C;189.780,00;190.680,00;192.275,00;Sim;180,00;900,00;95;180,00;900,00;0,00;0,00;0,00;2d22h;-1.855,00 +WINJ26;02/03/2026 12:10:00;02/03/2026 13:00:00;50min;1;1;V;191.005,00;191.590,00;192.275,00;No;117,00;585,00;96;117,00;585,00;0,00;0,00;0,00;1h5min;-1.738,00 +WINJ26;02/03/2026 14:35:00;02/03/2026 17:10:00;2h35min;1;1;V;192.110,00;191.735,00;192.275,00;Sim;-75,00;-375,00;97;-75,00;-375,00;0,00;0,00;0,00;2h25min;-1.813,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv new file mode 100644 index 0000000..7804707 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv @@ -0,0 +1,37 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;03/11/2025 12:15:00;04/11/2025 10:00:00;21h45min;1;1;V;158.430,00;158.620,00;192.355,00;No;38,00;190,00;1;38,00;190,00;0,00;0,00;0,00; - ;38,00 +WINJ26;13/11/2025 09:15:00;13/11/2025 14:00:00;4h45min;1;1;V;165.640,00;166.000,00;192.355,00;Sim;72,00;360,00;2;72,00;360,00;0,00;0,00;0,00;9d21h;110,00 +WINJ26;04/12/2025 09:30:00;05/12/2025 13:00:00;1d3h;1;1;V;170.835,00;170.000,00;192.355,00;Sim;-167,00;-835,00;3;-167,00;-835,00;0,00;0,00;0,00;21d;-57,00 +WINJ26;17/12/2025 10:45:00;17/12/2025 17:30:00;6h45min;1;1;C;163.200,00;164.000,00;192.355,00;No;160,00;800,00;4;160,00;800,00;0,00;0,00;0,00;13d1h;103,00 +WINJ26;19/12/2025 11:15:00;19/12/2025 14:45:00;3h30min;1;1;V;165.150,00;165.195,00;192.355,00;No;9,00;45,00;5;9,00;45,00;0,00;0,00;0,00;2d;112,00 +WINJ26;19/12/2025 17:00:00;22/12/2025 09:00:00;2d16h;1;1;C;165.060,00;165.430,00;192.355,00;No;74,00;370,00;6;74,00;370,00;0,00;0,00;0,00;5h45min;186,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 14:00:00;2h15min;1;1;C;163.790,00;164.520,00;192.355,00;Sim;146,00;730,00;7;146,00;730,00;0,00;0,00;0,00;2d18h;332,00 +WINJ26;23/12/2025 10:30:00;26/12/2025 09:15:00;2d22h;1;1;V;165.980,00;165.390,00;192.355,00;Sim;-118,00;-590,00;8;-118,00;-590,00;0,00;0,00;0,00;22h45min;214,00 +WINJ26;29/12/2025 09:15:00;29/12/2025 10:30:00;1h15min;1;1;V;166.705,00;167.245,00;192.355,00;Sim;108,00;540,00;9;108,00;540,00;0,00;0,00;0,00;5d22h;322,00 +WINJ26;29/12/2025 12:30:00;29/12/2025 17:15:00;4h45min;1;1;C;166.205,00;166.345,00;192.355,00;No;28,00;140,00;10;28,00;140,00;0,00;0,00;0,00;3h15min;350,00 +WINJ26;05/01/2026 09:45:00;05/01/2026 10:30:00;45min;1;1;V;165.975,00;166.515,00;192.355,00;No;108,00;540,00;11;108,00;540,00;0,00;0,00;0,00;6d21h;458,00 +WINJ26;08/01/2026 10:00:00;08/01/2026 15:15:00;5h15min;1;1;V;167.775,00;167.525,00;192.355,00;Sim;-50,00;-250,00;12;-50,00;-250,00;0,00;0,00;0,00;3d;408,00 +WINJ26;08/01/2026 17:45:00;09/01/2026 09:45:00;16h;1;1;V;167.845,00;168.155,00;192.355,00;Sim;62,00;310,00;13;62,00;310,00;0,00;0,00;0,00;7h45min;470,00 +WINJ26;12/01/2026 11:15:00;12/01/2026 12:30:00;1h15min;1;1;C;167.890,00;168.635,00;192.355,00;No;149,00;745,00;14;149,00;745,00;0,00;0,00;0,00;3d17h;619,00 +WINJ26;15/01/2026 11:30:00;15/01/2026 12:15:00;45min;1;1;C;170.290,00;170.375,00;192.355,00;No;17,00;85,00;15;17,00;85,00;0,00;0,00;0,00;3d;636,00 +WINJ26;16/01/2026 17:00:00;16/01/2026 17:45:00;45min;1;1;V;169.550,00;169.665,00;192.355,00;Sim;23,00;115,00;16;23,00;115,00;0,00;0,00;0,00;1d5h;659,00 +WINJ26;20/01/2026 13:30:00;22/01/2026 17:15:00;2d3h;1;1;V;180.590,00;171.250,00;192.355,00;Sim;-1.868,00;-9.340,00;17;-1.868,00;-9.340,00;0,00;0,00;0,00;3d20h;-1.209,00 +WINJ26;26/01/2026 11:30:00;26/01/2026 14:45:00;3h15min;1;1;C;183.185,00;184.130,00;192.355,00;No;189,00;945,00;18;189,00;945,00;0,00;0,00;0,00;5d22h;-1.020,00 +WINJ26;27/01/2026 11:30:00;27/01/2026 15:15:00;3h45min;1;1;V;187.120,00;187.470,00;192.355,00;Sim;70,00;350,00;19;70,00;350,00;0,00;0,00;0,00;1d;-950,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 14:30:00;2h30min;1;1;V;190.200,00;191.565,00;192.355,00;Sim;273,00;1.365,00;20;273,00;1.365,00;0,00;0,00;0,00;7d;-677,00 +WINJ26;03/02/2026 17:00:00;03/02/2026 17:45:00;45min;1;1;C;189.800,00;190.410,00;192.355,00;No;122,00;610,00;21;122,00;610,00;0,00;0,00;0,00;5h;-555,00 +WINJ26;04/02/2026 10:45:00;04/02/2026 18:15:00;7h30min;1;1;C;188.925,00;186.115,00;192.355,00;Sim;-562,00;-2.810,00;22;-562,00;-2.810,00;0,00;0,00;0,00;17h45min;-1.117,00 +WINJ26;05/02/2026 12:45:00;05/02/2026 13:00:00;15min;1;1;C;187.085,00;187.265,00;192.355,00;Sim;36,00;180,00;23;36,00;180,00;0,00;0,00;0,00;1d2h;-1.081,00 +WINJ26;06/02/2026 12:15:00;06/02/2026 13:30:00;1h15min;1;1;C;186.175,00;186.770,00;192.355,00;Sim;119,00;595,00;24;119,00;595,00;0,00;0,00;0,00;23h30min;-962,00 +WINJ26;11/02/2026 11:00:00;12/02/2026 09:15:00;22h15min;1;1;V;193.365,00;192.560,00;192.355,00;Sim;-161,00;-805,00;25;-161,00;-805,00;0,00;0,00;0,00;4d22h;-1.123,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 14:15:00;3h45min;1;1;C;189.095,00;189.535,00;192.355,00;No;88,00;440,00;26;88,00;440,00;0,00;0,00;0,00;1d23h;-1.035,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 14:15:00;1h15min;1;1;V;189.820,00;190.460,00;192.355,00;No;128,00;640,00;27;128,00;640,00;0,00;0,00;0,00;5d2h;-907,00 +WINJ26;18/02/2026 16:00:00;18/02/2026 18:00:00;2h;1;1;C;189.450,00;189.910,00;192.355,00;No;92,00;460,00;28;92,00;460,00;0,00;0,00;0,00;3h;-815,00 +WINJ26;19/02/2026 10:45:00;20/02/2026 09:15:00;22h30min;1;1;V;191.230,00;190.305,00;192.355,00;No;-185,00;-925,00;29;-185,00;-925,00;0,00;0,00;0,00;18h45min;-1.000,00 +WINJ26;24/02/2026 13:00:00;25/02/2026 10:45:00;21h45min;1;1;V;195.155,00;194.750,00;192.355,00;Sim;-81,00;-405,00;30;-81,00;-405,00;0,00;0,00;0,00;5d2h;-1.081,00 +WINJ26;26/02/2026 10:45:00;26/02/2026 15:45:00;5h;1;1;C;194.155,00;193.840,00;192.355,00;No;-63,00;-315,00;31;-63,00;-315,00;0,00;0,00;0,00;1d21h;-1.144,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv new file mode 100644 index 0000000..4e6fac0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv @@ -0,0 +1,25 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;21/11/2025 09:00:00;24/11/2025 11:30:00;3d2h;1;1;C;161.865,00;163.600,00;192.305,00;No;347,00;1.735,00;1;347,00;1.735,00;0,00;0,00;0,00; - ;347,00 +WINJ26;28/11/2025 15:00:00;01/12/2025 10:30:00;2d19h;1;1;V;165.625,00;167.000,00;192.305,00;No;275,00;1.375,00;2;275,00;1.375,00;0,00;0,00;0,00;7d6h;622,00 +WINJ26;01/12/2025 11:00:00;02/12/2025 09:30:00;22h30min;1;1;C;165.945,00;166.840,00;192.305,00;No;179,00;895,00;3;179,00;895,00;0,00;0,00;0,00;2d20h;801,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 13:00:00;4h;1;1;V;170.835,00;171.890,00;192.305,00;Sim;211,00;1.055,00;4;211,00;1.055,00;0,00;0,00;0,00;3d22h;1.012,00 +WINJ26;18/12/2025 11:00:00;19/12/2025 18:00:00;1d7h;1;1;V;164.745,00;163.735,00;192.305,00;No;-202,00;-1.010,00;5;-202,00;-1.010,00;0,00;0,00;0,00;13d2h;810,00 +WINJ26;23/12/2025 11:30:00;26/12/2025 09:30:00;2d22h;1;1;V;165.790,00;165.435,00;192.305,00;Sim;-71,00;-355,00;6;-71,00;-355,00;0,00;0,00;0,00;5d;739,00 +WINJ26;29/12/2025 09:30:00;29/12/2025 11:00:00;1h30min;1;1;V;166.510,00;167.005,00;192.305,00;Sim;99,00;495,00;7;99,00;495,00;0,00;0,00;0,00;5d22h;838,00 +WINJ26;02/01/2026 12:00:00;05/01/2026 09:30:00;2d21h;1;1;C;166.845,00;166.655,00;192.305,00;No;-38,00;-190,00;8;-38,00;-190,00;0,00;0,00;0,00;4d2h;800,00 +WINJ26;06/01/2026 11:00:00;07/01/2026 10:00:00;23h;1;1;V;168.900,00;169.355,00;192.305,00;Sim;91,00;455,00;9;91,00;455,00;0,00;0,00;0,00;3d23h;891,00 +WINJ26;08/01/2026 12:00:00;09/01/2026 18:00:00;1d6h;1;1;V;168.675,00;167.765,00;192.305,00;No;-182,00;-910,00;10;-182,00;-910,00;0,00;0,00;0,00;2d1h;709,00 +WINJ26;12/01/2026 11:30:00;14/01/2026 09:30:00;1d22h;1;1;C;168.150,00;167.920,00;192.305,00;No;-46,00;-230,00;11;-46,00;-230,00;0,00;0,00;0,00;3d23h;663,00 +WINJ26;15/01/2026 09:30:00;16/01/2026 11:00:00;1d1h;1;1;V;170.060,00;170.390,00;192.305,00;Sim;66,00;330,00;12;66,00;330,00;0,00;0,00;0,00;2d22h;729,00 +WINJ26;26/01/2026 09:30:00;29/01/2026 12:30:00;3d3h;1;1;V;188.090,00;185.365,00;192.305,00;Sim;-545,00;-2.725,00;13;-545,00;-2.725,00;0,00;0,00;0,00;11d;184,00 +WINJ26;04/02/2026 15:30:00;05/02/2026 11:00:00;19h30min;1;1;C;185.485,00;186.980,00;192.305,00;No;299,00;1.495,00;14;299,00;1.495,00;0,00;0,00;0,00;9d6h;483,00 +WINJ26;18/02/2026 13:30:00;18/02/2026 15:30:00;2h;1;1;V;189.720,00;190.075,00;192.305,00;Sim;71,00;355,00;15;71,00;355,00;0,00;0,00;0,00;13d22h;554,00 +WINJ26;18/02/2026 17:00:00;19/02/2026 09:00:00;16h;1;1;C;189.070,00;190.465,00;192.305,00;No;279,00;1.395,00;16;279,00;1.395,00;0,00;0,00;0,00;3h30min;833,00 +WINJ26;19/02/2026 11:00:00;20/02/2026 09:30:00;22h30min;1;1;V;191.020,00;190.235,00;192.305,00;Sim;-157,00;-785,00;17;-157,00;-785,00;0,00;0,00;0,00;18h;676,00 +WINJ26;26/02/2026 11:00:00;26/02/2026 17:00:00;6h;1;1;C;194.240,00;194.145,00;192.305,00;No;-19,00;-95,00;18;-19,00;-95,00;0,00;0,00;0,00;7d;657,00 +WINJ26;27/02/2026 09:30:00;02/03/2026 15:00:00;3d5h;1;1;C;193.430,00;192.040,00;192.305,00;Sim;-278,00;-1.390,00;19;-278,00;-1.390,00;0,00;0,00;0,00;22h30min;379,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv new file mode 100644 index 0000000..f21fc56 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv @@ -0,0 +1,16 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;01/10/2025 15:00:00;15/10/2025 15:00:00;14d;1;1;C;155.260,00;151.150,00;192.315,00;No;-822,00;-4.110,00;1;-822,00;-4.110,00;0,00;0,00;0,00; - ;-822,00 +WINJ26;21/11/2025 09:00:00;26/11/2025 09:00:00;5d;1;1;C;161.865,00;163.850,00;192.315,00;No;397,00;1.985,00;2;397,00;1.985,00;0,00;0,00;0,00;1m19d18h;-425,00 +WINJ26;28/11/2025 12:00:00;01/12/2025 11:00:00;2d23h;1;1;V;165.945,00;166.300,00;192.315,00;No;71,00;355,00;3;71,00;355,00;0,00;0,00;0,00;7d3h;-354,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 13:00:00;4h;1;1;V;170.835,00;171.890,00;192.315,00;Sim;211,00;1.055,00;4;211,00;1.055,00;0,00;0,00;0,00;6d21h;-143,00 +WINJ26;15/12/2025 14:00:00;16/12/2025 10:00:00;20h;1;1;V;167.270,00;169.505,00;192.315,00;No;447,00;2.235,00;5;447,00;2.235,00;0,00;0,00;0,00;10d5h;304,00 +WINJ26;19/12/2025 10:00:00;22/12/2025 11:00:00;3d1h;1;1;V;164.250,00;164.435,00;192.315,00;No;37,00;185,00;6;37,00;185,00;0,00;0,00;0,00;3d20h;341,00 +WINJ26;26/12/2025 09:00:00;26/12/2025 11:00:00;2h;1;1;V;165.420,00;166.295,00;192.315,00;Sim;175,00;875,00;7;175,00;875,00;0,00;0,00;0,00;6d23h;516,00 +WINJ26;29/12/2025 10:00:00;29/12/2025 14:00:00;4h;1;1;V;166.130,00;166.885,00;192.315,00;Sim;151,00;755,00;8;151,00;755,00;0,00;0,00;0,00;3d1h;667,00 +WINJ26;09/01/2026 13:00:00;12/01/2026 10:00:00;2d21h;1;1;V;168.180,00;169.215,00;192.315,00;Sim;207,00;1.035,00;9;207,00;1.035,00;0,00;0,00;0,00;11d3h;874,00 +WINJ26;15/01/2026 11:00:00;16/01/2026 12:00:00;1d1h;1;1;V;169.830,00;170.400,00;192.315,00;Sim;114,00;570,00;10;114,00;570,00;0,00;0,00;0,00;5d22h;988,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv new file mode 100644 index 0000000..394bbc7 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv @@ -0,0 +1,124 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:26:00;19/12/2025 15:50:00;24min;1;1;C;165.150,00;165.130,00;192.380,00;No;-4,00;-20,00;1;-4,00;-20,00;0,00;0,00;0,00; - ;-4,00 +WINJ26;23/12/2025 18:08:00;23/12/2025 18:20:00;12min;1;1;V;166.530,00;166.745,00;192.380,00;No;43,00;215,00;2;43,00;215,00;0,00;0,00;0,00;4d2h;39,00 +WINJ26;26/12/2025 10:56:00;26/12/2025 11:06:00;10min;1;1;C;165.475,00;165.655,00;192.380,00;No;36,00;180,00;3;36,00;180,00;0,00;0,00;0,00;2d16h;75,00 +WINJ26;26/12/2025 16:18:00;26/12/2025 16:46:00;28min;1;1;V;166.750,00;166.725,00;192.380,00;No;-5,00;-25,00;4;-5,00;-25,00;0,00;0,00;0,00;5h22min;70,00 +WINJ26;26/12/2025 17:46:00;29/12/2025 09:02:00;2d15h;1;1;V;167.230,00;167.045,00;192.380,00;Sim;-37,00;-185,00;5;-37,00;-185,00;0,00;0,00;0,00;1h28min;33,00 +WINJ26;30/12/2025 09:18:00;30/12/2025 10:02:00;44min;1;1;V;167.550,00;167.400,00;192.380,00;Sim;-30,00;-150,00;6;-30,00;-150,00;0,00;0,00;0,00;3d15h;3,00 +WINJ26;02/01/2026 14:12:00;02/01/2026 14:48:00;36min;1;1;C;166.070,00;166.050,00;192.380,00;No;-4,00;-20,00;7;-4,00;-20,00;0,00;0,00;0,00;3d4h;-1,00 +WINJ26;02/01/2026 15:04:00;02/01/2026 15:12:00;8min;1;1;C;165.905,00;165.995,00;192.380,00;Sim;18,00;90,00;8;18,00;90,00;0,00;0,00;0,00;52min;17,00 +WINJ26;05/01/2026 10:22:00;05/01/2026 10:40:00;18min;1;1;C;165.895,00;166.075,00;192.380,00;Sim;36,00;180,00;9;36,00;180,00;0,00;0,00;0,00;2d19h;53,00 +WINJ26;05/01/2026 14:08:00;05/01/2026 14:28:00;20min;1;1;V;167.405,00;167.485,00;192.380,00;Sim;16,00;80,00;10;16,00;80,00;0,00;0,00;0,00;3h46min;69,00 +WINJ26;05/01/2026 14:54:00;05/01/2026 15:38:00;44min;1;1;V;167.645,00;167.655,00;192.380,00;Sim;2,00;10,00;11;2,00;10,00;0,00;0,00;0,00;46min;71,00 +WINJ26;05/01/2026 16:02:00;05/01/2026 16:08:00;6min;1;1;V;167.720,00;167.835,00;192.380,00;Sim;23,00;115,00;12;23,00;115,00;0,00;0,00;0,00;1h8min;94,00 +WINJ26;05/01/2026 17:22:00;05/01/2026 17:30:00;8min;1;1;C;167.520,00;167.580,00;192.380,00;No;12,00;60,00;13;12,00;60,00;0,00;0,00;0,00;1h20min;106,00 +WINJ26;06/01/2026 09:20:00;06/01/2026 10:56:00;1h36min;1;1;V;169.525,00;168.545,00;192.380,00;Sim;-196,00;-980,00;14;-196,00;-980,00;0,00;0,00;0,00;15h58min;-90,00 +WINJ26;07/01/2026 11:18:00;07/01/2026 12:34:00;1h16min;1;1;C;168.005,00;167.575,00;192.380,00;No;-86,00;-430,00;15;-86,00;-430,00;0,00;0,00;0,00;1d1h;-176,00 +WINJ26;09/01/2026 11:40:00;09/01/2026 12:10:00;30min;1;1;V;169.350,00;169.280,00;192.380,00;Sim;-14,00;-70,00;16;-14,00;-70,00;0,00;0,00;0,00;2d;-190,00 +WINJ26;09/01/2026 14:26:00;09/01/2026 14:42:00;16min;1;1;V;169.555,00;169.650,00;192.380,00;Sim;19,00;95,00;17;19,00;95,00;0,00;0,00;0,00;2h46min;-171,00 +WINJ26;09/01/2026 15:14:00;09/01/2026 15:42:00;28min;1;1;C;169.335,00;169.355,00;192.380,00;No;4,00;20,00;18;4,00;20,00;0,00;0,00;0,00;48min;-167,00 +WINJ26;09/01/2026 17:56:00;12/01/2026 09:02:00;2d15h;1;1;C;168.725,00;168.705,00;192.380,00;Sim;-4,00;-20,00;19;-4,00;-20,00;0,00;0,00;0,00;2h42min;-171,00 +WINJ26;12/01/2026 13:58:00;12/01/2026 14:30:00;32min;1;1;C;168.525,00;168.625,00;192.380,00;Sim;20,00;100,00;20;20,00;100,00;0,00;0,00;0,00;2d20h;-151,00 +WINJ26;13/01/2026 09:04:00;13/01/2026 09:08:00;4min;1;1;V;168.400,00;168.725,00;192.380,00;No;65,00;325,00;21;65,00;325,00;0,00;0,00;0,00;19h6min;-86,00 +WINJ26;13/01/2026 12:26:00;13/01/2026 12:42:00;16min;1;1;C;167.140,00;167.210,00;192.380,00;Sim;14,00;70,00;22;14,00;70,00;0,00;0,00;0,00;3h22min;-72,00 +WINJ26;13/01/2026 16:04:00;13/01/2026 16:38:00;34min;1;1;C;167.120,00;167.200,00;192.380,00;Sim;16,00;80,00;23;16,00;80,00;0,00;0,00;0,00;3h38min;-56,00 +WINJ26;14/01/2026 09:12:00;14/01/2026 10:54:00;1h42min;1;1;V;168.375,00;167.755,00;192.380,00;No;-124,00;-620,00;24;-124,00;-620,00;0,00;0,00;0,00;17h8min;-180,00 +WINJ26;14/01/2026 12:24:00;14/01/2026 12:32:00;8min;1;1;V;168.815,00;168.970,00;192.380,00;Sim;31,00;155,00;25;31,00;155,00;0,00;0,00;0,00;3h12min;-149,00 +WINJ26;14/01/2026 14:10:00;14/01/2026 14:38:00;28min;1;1;V;168.870,00;168.950,00;192.380,00;No;16,00;80,00;26;16,00;80,00;0,00;0,00;0,00;1h46min;-133,00 +WINJ26;14/01/2026 15:18:00;14/01/2026 17:02:00;1h44min;1;1;V;169.750,00;169.105,00;192.380,00;Sim;-129,00;-645,00;27;-129,00;-645,00;0,00;0,00;0,00;1h8min;-262,00 +WINJ26;14/01/2026 18:14:00;15/01/2026 09:02:00;14h48min;1;1;V;170.355,00;170.500,00;192.380,00;Sim;29,00;145,00;28;29,00;145,00;0,00;0,00;0,00;2h56min;-233,00 +WINJ26;15/01/2026 11:18:00;15/01/2026 11:28:00;10min;1;1;C;170.180,00;170.280,00;192.380,00;No;20,00;100,00;29;20,00;100,00;0,00;0,00;0,00;17h4min;-213,00 +WINJ26;15/01/2026 13:50:00;15/01/2026 13:58:00;8min;1;1;V;170.640,00;170.670,00;192.380,00;Sim;6,00;30,00;30;6,00;30,00;0,00;0,00;0,00;2h32min;-207,00 +WINJ26;15/01/2026 17:10:00;15/01/2026 18:02:00;52min;1;1;C;170.650,00;170.700,00;192.380,00;No;10,00;50,00;31;10,00;50,00;0,00;0,00;0,00;3h20min;-197,00 +WINJ26;16/01/2026 11:02:00;16/01/2026 11:48:00;46min;1;1;C;169.955,00;169.830,00;192.380,00;Sim;-25,00;-125,00;32;-25,00;-125,00;0,00;0,00;0,00;17h52min;-222,00 +WINJ26;19/01/2026 12:00:00;19/01/2026 12:06:00;6min;1;1;V;169.640,00;169.745,00;192.380,00;No;21,00;105,00;33;21,00;105,00;0,00;0,00;0,00;3d;-201,00 +WINJ26;19/01/2026 13:56:00;19/01/2026 14:00:00;4min;1;1;C;169.775,00;169.845,00;192.380,00;Sim;14,00;70,00;34;14,00;70,00;0,00;0,00;0,00;1h56min;-187,00 +WINJ26;20/01/2026 11:46:00;20/01/2026 12:04:00;18min;1;1;V;170.240,00;170.700,00;192.380,00;Sim;92,00;460,00;35;92,00;460,00;0,00;0,00;0,00;21h50min;-95,00 +WINJ26;20/01/2026 12:36:00;20/01/2026 13:44:00;1h8min;1;1;V;171.190,00;170.880,00;192.380,00;Sim;-62,00;-310,00;36;-62,00;-310,00;0,00;0,00;0,00;50min;-157,00 +WINJ26;20/01/2026 13:50:00;20/01/2026 13:58:00;8min;1;1;C;171.075,00;171.255,00;192.380,00;No;36,00;180,00;37;36,00;180,00;0,00;0,00;0,00;1h14min;-121,00 +WINJ26;20/01/2026 14:36:00;20/01/2026 15:32:00;56min;1;1;C;170.995,00;170.895,00;192.380,00;Sim;-20,00;-100,00;38;-20,00;-100,00;0,00;0,00;0,00;46min;-141,00 +WINJ26;20/01/2026 15:54:00;20/01/2026 16:28:00;34min;1;1;C;170.665,00;170.715,00;192.380,00;Sim;10,00;50,00;39;10,00;50,00;0,00;0,00;0,00;1h18min;-131,00 +WINJ26;20/01/2026 17:42:00;20/01/2026 18:22:00;40min;1;1;V;171.015,00;170.980,00;192.380,00;Sim;-7,00;-35,00;40;-7,00;-35,00;0,00;0,00;0,00;1h48min;-138,00 +WINJ26;21/01/2026 09:14:00;21/01/2026 10:44:00;1h30min;1;1;V;173.400,00;172.495,00;192.380,00;Sim;-181,00;-905,00;41;-181,00;-905,00;0,00;0,00;0,00;15h32min;-319,00 +WINJ26;21/01/2026 14:34:00;21/01/2026 14:40:00;6min;1;1;C;174.760,00;174.890,00;192.380,00;No;26,00;130,00;42;26,00;130,00;0,00;0,00;0,00;5h20min;-293,00 +WINJ26;21/01/2026 17:48:00;21/01/2026 18:12:00;24min;1;1;V;176.820,00;176.980,00;192.380,00;Sim;32,00;160,00;43;32,00;160,00;0,00;0,00;0,00;3h14min;-261,00 +WINJ26;22/01/2026 11:12:00;22/01/2026 12:12:00;1h;1;1;V;179.820,00;178.670,00;192.380,00;Sim;-230,00;-1.150,00;44;-230,00;-1.150,00;0,00;0,00;0,00;17h24min;-491,00 +WINJ26;22/01/2026 12:30:00;22/01/2026 13:14:00;44min;1;1;V;181.695,00;181.395,00;192.380,00;Sim;-60,00;-300,00;45;-60,00;-300,00;0,00;0,00;0,00;1h18min;-551,00 +WINJ26;22/01/2026 15:48:00;22/01/2026 16:02:00;14min;1;1;C;181.150,00;181.220,00;192.380,00;No;14,00;70,00;46;14,00;70,00;0,00;0,00;0,00;3h18min;-537,00 +WINJ26;23/01/2026 12:10:00;23/01/2026 12:46:00;36min;1;1;V;182.000,00;181.495,00;192.380,00;Sim;-101,00;-505,00;47;-101,00;-505,00;0,00;0,00;0,00;20h22min;-638,00 +WINJ26;23/01/2026 16:18:00;23/01/2026 16:58:00;40min;1;1;V;183.170,00;183.000,00;192.380,00;Sim;-34,00;-170,00;48;-34,00;-170,00;0,00;0,00;0,00;4h8min;-672,00 +WINJ26;26/01/2026 09:06:00;26/01/2026 09:26:00;20min;1;1;V;185.255,00;186.240,00;192.380,00;Sim;197,00;985,00;49;197,00;985,00;0,00;0,00;0,00;2d16h;-475,00 +WINJ26;26/01/2026 09:38:00;26/01/2026 09:44:00;6min;1;1;C;184.555,00;185.040,00;192.380,00;No;97,00;485,00;50;97,00;485,00;0,00;0,00;0,00;32min;-378,00 +WINJ26;26/01/2026 10:38:00;26/01/2026 11:30:00;52min;1;1;C;183.685,00;183.185,00;192.380,00;Sim;-100,00;-500,00;51;-100,00;-500,00;0,00;0,00;0,00;1h;-478,00 +WINJ26;27/01/2026 09:04:00;27/01/2026 10:06:00;1h2min;1;1;V;185.825,00;185.405,00;192.380,00;No;-84,00;-420,00;52;-84,00;-420,00;0,00;0,00;0,00;22h26min;-562,00 +WINJ26;27/01/2026 13:32:00;27/01/2026 14:08:00;36min;1;1;V;188.055,00;188.080,00;192.380,00;Sim;5,00;25,00;53;5,00;25,00;0,00;0,00;0,00;4h28min;-557,00 +WINJ26;27/01/2026 14:12:00;27/01/2026 15:20:00;1h8min;1;1;C;187.895,00;187.310,00;192.380,00;No;-117,00;-585,00;54;-117,00;-585,00;0,00;0,00;0,00;40min;-674,00 +WINJ26;28/01/2026 10:32:00;28/01/2026 11:08:00;36min;1;1;V;189.010,00;189.345,00;192.380,00;Sim;67,00;335,00;55;67,00;335,00;0,00;0,00;0,00;20h20min;-607,00 +WINJ26;28/01/2026 12:38:00;28/01/2026 12:48:00;10min;1;1;C;188.355,00;188.640,00;192.380,00;No;57,00;285,00;56;57,00;285,00;0,00;0,00;0,00;2h6min;-550,00 +WINJ26;28/01/2026 14:20:00;28/01/2026 14:44:00;24min;1;1;C;188.450,00;188.480,00;192.380,00;No;6,00;30,00;57;6,00;30,00;0,00;0,00;0,00;1h42min;-544,00 +WINJ26;28/01/2026 17:42:00;29/01/2026 09:28:00;15h46min;1;1;V;191.285,00;189.415,00;192.380,00;Sim;-374,00;-1.870,00;58;-374,00;-1.870,00;0,00;0,00;0,00;3h22min;-918,00 +WINJ26;29/01/2026 14:32:00;29/01/2026 14:42:00;10min;1;1;V;188.215,00;188.600,00;192.380,00;No;77,00;385,00;59;77,00;385,00;0,00;0,00;0,00;20h50min;-841,00 +WINJ26;30/01/2026 12:22:00;30/01/2026 12:28:00;6min;1;1;V;187.695,00;188.040,00;192.380,00;No;69,00;345,00;60;69,00;345,00;0,00;0,00;0,00;21h50min;-772,00 +WINJ26;30/01/2026 12:46:00;30/01/2026 12:54:00;8min;1;1;V;188.070,00;188.325,00;192.380,00;Sim;51,00;255,00;61;51,00;255,00;0,00;0,00;0,00;24min;-721,00 +WINJ26;30/01/2026 15:04:00;30/01/2026 15:46:00;42min;1;1;C;185.960,00;185.350,00;192.380,00;Sim;-122,00;-610,00;62;-122,00;-610,00;0,00;0,00;0,00;2h18min;-843,00 +WINJ26;30/01/2026 16:14:00;30/01/2026 16:32:00;18min;1;1;V;186.000,00;186.420,00;192.380,00;No;84,00;420,00;63;84,00;420,00;0,00;0,00;0,00;1h10min;-759,00 +WINJ26;02/02/2026 16:32:00;02/02/2026 16:42:00;10min;1;1;C;186.355,00;186.500,00;192.380,00;No;29,00;145,00;64;29,00;145,00;0,00;0,00;0,00;3d;-730,00 +WINJ26;03/02/2026 10:52:00;03/02/2026 12:00:00;1h8min;1;1;V;191.565,00;190.320,00;192.380,00;Sim;-249,00;-1.245,00;65;-249,00;-1.245,00;0,00;0,00;0,00;18h20min;-979,00 +WINJ26;03/02/2026 14:12:00;03/02/2026 15:40:00;1h28min;1;1;C;190.520,00;189.700,00;192.380,00;No;-164,00;-820,00;66;-164,00;-820,00;0,00;0,00;0,00;3h20min;-1.143,00 +WINJ26;03/02/2026 17:36:00;03/02/2026 18:10:00;34min;1;1;V;190.315,00;190.385,00;192.380,00;Sim;14,00;70,00;67;14,00;70,00;0,00;0,00;0,00;3h24min;-1.129,00 +WINJ26;04/02/2026 09:02:00;04/02/2026 09:04:00;2min;1;1;V;190.090,00;190.645,00;192.380,00;Sim;111,00;555,00;68;111,00;555,00;0,00;0,00;0,00;15h26min;-1.018,00 +WINJ26;04/02/2026 11:04:00;04/02/2026 12:08:00;1h4min;1;1;C;188.320,00;187.655,00;192.380,00;Sim;-133,00;-665,00;69;-133,00;-665,00;0,00;0,00;0,00;2h2min;-1.151,00 +WINJ26;04/02/2026 13:10:00;04/02/2026 13:58:00;48min;1;1;C;186.810,00;186.385,00;192.380,00;Sim;-85,00;-425,00;70;-85,00;-425,00;0,00;0,00;0,00;2h6min;-1.236,00 +WINJ26;04/02/2026 16:56:00;04/02/2026 17:34:00;38min;1;1;V;185.535,00;185.370,00;192.380,00;No;-33,00;-165,00;71;-33,00;-165,00;0,00;0,00;0,00;3h46min;-1.269,00 +WINJ26;05/02/2026 12:38:00;05/02/2026 12:44:00;6min;1;1;C;186.095,00;187.100,00;192.380,00;Sim;201,00;1.005,00;72;201,00;1.005,00;0,00;0,00;0,00;19h42min;-1.068,00 +WINJ26;05/02/2026 14:28:00;05/02/2026 14:58:00;30min;1;1;V;187.560,00;187.645,00;192.380,00;Sim;17,00;85,00;73;17,00;85,00;0,00;0,00;0,00;1h50min;-1.051,00 +WINJ26;06/02/2026 13:48:00;06/02/2026 14:06:00;18min;1;1;V;186.955,00;187.140,00;192.380,00;No;37,00;185,00;74;37,00;185,00;0,00;0,00;0,00;23h20min;-1.014,00 +WINJ26;06/02/2026 15:10:00;06/02/2026 15:48:00;38min;1;1;C;186.590,00;186.440,00;192.380,00;No;-30,00;-150,00;75;-30,00;-150,00;0,00;0,00;0,00;1h22min;-1.044,00 +WINJ26;09/02/2026 13:32:00;09/02/2026 14:54:00;1h22min;1;1;V;189.485,00;188.325,00;192.380,00;Sim;-232,00;-1.160,00;76;-232,00;-1.160,00;0,00;0,00;0,00;2d22h;-1.276,00 +WINJ26;09/02/2026 15:12:00;09/02/2026 15:22:00;10min;1;1;V;189.350,00;189.700,00;192.380,00;Sim;70,00;350,00;77;70,00;350,00;0,00;0,00;0,00;1h40min;-1.206,00 +WINJ26;09/02/2026 16:34:00;09/02/2026 16:46:00;12min;1;1;V;190.320,00;190.465,00;192.380,00;Sim;29,00;145,00;78;29,00;145,00;0,00;0,00;0,00;1h22min;-1.177,00 +WINJ26;09/02/2026 17:10:00;09/02/2026 17:18:00;8min;1;1;V;190.445,00;190.675,00;192.380,00;Sim;46,00;230,00;79;46,00;230,00;0,00;0,00;0,00;36min;-1.131,00 +WINJ26;10/02/2026 12:16:00;10/02/2026 13:00:00;44min;1;1;V;190.815,00;190.375,00;192.380,00;No;-88,00;-440,00;80;-88,00;-440,00;0,00;0,00;0,00;19h6min;-1.219,00 +WINJ26;10/02/2026 14:56:00;10/02/2026 16:08:00;1h12min;1;1;C;190.050,00;189.690,00;192.380,00;No;-72,00;-360,00;81;-72,00;-360,00;0,00;0,00;0,00;2h40min;-1.291,00 +WINJ26;10/02/2026 17:16:00;10/02/2026 17:40:00;24min;1;1;V;190.420,00;190.475,00;192.380,00;Sim;11,00;55,00;82;11,00;55,00;0,00;0,00;0,00;2h20min;-1.280,00 +WINJ26;11/02/2026 11:22:00;11/02/2026 11:50:00;28min;1;1;V;193.275,00;193.230,00;192.380,00;Sim;-9,00;-45,00;83;-9,00;-45,00;0,00;0,00;0,00;18h6min;-1.289,00 +WINJ26;11/02/2026 12:22:00;11/02/2026 12:42:00;20min;1;1;C;192.580,00;192.680,00;192.380,00;No;20,00;100,00;84;20,00;100,00;0,00;0,00;0,00;1h;-1.269,00 +WINJ26;11/02/2026 13:06:00;11/02/2026 14:02:00;56min;1;1;V;194.450,00;193.375,00;192.380,00;Sim;-215,00;-1.075,00;85;-215,00;-1.075,00;0,00;0,00;0,00;44min;-1.484,00 +WINJ26;11/02/2026 17:14:00;11/02/2026 17:28:00;14min;1;1;C;193.865,00;194.025,00;192.380,00;No;32,00;160,00;86;32,00;160,00;0,00;0,00;0,00;4h8min;-1.452,00 +WINJ26;11/02/2026 17:38:00;11/02/2026 17:50:00;12min;1;1;V;194.075,00;194.330,00;192.380,00;Sim;51,00;255,00;87;51,00;255,00;0,00;0,00;0,00;24min;-1.401,00 +WINJ26;12/02/2026 11:18:00;12/02/2026 11:32:00;14min;1;1;V;193.405,00;193.555,00;192.380,00;No;30,00;150,00;88;30,00;150,00;0,00;0,00;0,00;17h40min;-1.371,00 +WINJ26;12/02/2026 13:04:00;12/02/2026 13:38:00;34min;1;1;C;193.350,00;192.905,00;192.380,00;Sim;-89,00;-445,00;89;-89,00;-445,00;0,00;0,00;0,00;1h46min;-1.460,00 +WINJ26;13/02/2026 11:36:00;13/02/2026 11:46:00;10min;1;1;C;188.555,00;188.625,00;192.380,00;Sim;14,00;70,00;90;14,00;70,00;0,00;0,00;0,00;22h32min;-1.446,00 +WINJ26;13/02/2026 15:34:00;13/02/2026 15:42:00;8min;1;1;V;190.025,00;190.130,00;192.380,00;No;21,00;105,00;91;21,00;105,00;0,00;0,00;0,00;3h58min;-1.425,00 +WINJ26;18/02/2026 14:22:00;18/02/2026 14:46:00;24min;1;1;V;190.305,00;190.295,00;192.380,00;Sim;-2,00;-10,00;92;-2,00;-10,00;0,00;0,00;0,00;4d22h;-1.427,00 +WINJ26;18/02/2026 16:14:00;18/02/2026 16:44:00;30min;1;1;C;189.085,00;189.045,00;192.380,00;No;-8,00;-40,00;93;-8,00;-40,00;0,00;0,00;0,00;1h52min;-1.435,00 +WINJ26;18/02/2026 18:00:00;19/02/2026 09:22:00;15h22min;1;1;V;190.145,00;189.910,00;192.380,00;No;-47,00;-235,00;94;-47,00;-235,00;0,00;0,00;0,00;1h46min;-1.482,00 +WINJ26;19/02/2026 14:22:00;19/02/2026 14:38:00;16min;1;1;V;192.280,00;192.415,00;192.380,00;Sim;27,00;135,00;95;27,00;135,00;0,00;0,00;0,00;20h22min;-1.455,00 +WINJ26;19/02/2026 15:00:00;19/02/2026 15:14:00;14min;1;1;C;192.050,00;192.155,00;192.380,00;No;21,00;105,00;96;21,00;105,00;0,00;0,00;0,00;38min;-1.434,00 +WINJ26;20/02/2026 09:52:00;20/02/2026 10:16:00;24min;1;1;C;190.655,00;190.820,00;192.380,00;Sim;33,00;165,00;97;33,00;165,00;0,00;0,00;0,00;18h52min;-1.401,00 +WINJ26;20/02/2026 11:22:00;20/02/2026 12:34:00;1h12min;1;1;V;191.900,00;190.840,00;192.380,00;No;-212,00;-1.060,00;98;-212,00;-1.060,00;0,00;0,00;0,00;1h30min;-1.613,00 +WINJ26;20/02/2026 13:44:00;20/02/2026 14:10:00;26min;1;1;V;192.140,00;192.255,00;192.380,00;Sim;23,00;115,00;99;23,00;115,00;0,00;0,00;0,00;2h22min;-1.590,00 +WINJ26;20/02/2026 17:08:00;20/02/2026 17:30:00;22min;1;1;V;194.065,00;194.055,00;192.380,00;Sim;-2,00;-10,00;100;-2,00;-10,00;0,00;0,00;0,00;3h24min;-1.592,00 +WINJ26;23/02/2026 09:20:00;23/02/2026 10:04:00;44min;1;1;C;192.780,00;193.000,00;192.380,00;No;44,00;220,00;101;44,00;220,00;0,00;0,00;0,00;2d16h;-1.548,00 +WINJ26;23/02/2026 12:54:00;23/02/2026 13:34:00;40min;1;1;C;192.840,00;192.395,00;192.380,00;No;-89,00;-445,00;102;-89,00;-445,00;0,00;0,00;0,00;3h34min;-1.637,00 +WINJ26;23/02/2026 15:14:00;23/02/2026 15:38:00;24min;1;1;V;192.765,00;192.840,00;192.380,00;No;15,00;75,00;103;15,00;75,00;0,00;0,00;0,00;2h20min;-1.622,00 +WINJ26;24/02/2026 09:10:00;24/02/2026 09:30:00;20min;1;1;V;193.240,00;193.360,00;192.380,00;Sim;24,00;120,00;104;24,00;120,00;0,00;0,00;0,00;17h56min;-1.598,00 +WINJ26;24/02/2026 12:18:00;24/02/2026 13:18:00;1h;1;1;V;194.750,00;194.630,00;192.380,00;Sim;-24,00;-120,00;105;-24,00;-120,00;0,00;0,00;0,00;3h8min;-1.622,00 +WINJ26;24/02/2026 14:14:00;24/02/2026 14:44:00;30min;1;1;V;195.225,00;195.260,00;192.380,00;Sim;7,00;35,00;106;7,00;35,00;0,00;0,00;0,00;1h56min;-1.615,00 +WINJ26;25/02/2026 10:46:00;25/02/2026 11:04:00;18min;1;1;C;195.210,00;195.250,00;192.380,00;No;8,00;40,00;107;8,00;40,00;0,00;0,00;0,00;20h32min;-1.607,00 +WINJ26;25/02/2026 13:16:00;25/02/2026 13:28:00;12min;1;1;V;194.570,00;194.725,00;192.380,00;No;31,00;155,00;108;31,00;155,00;0,00;0,00;0,00;2h30min;-1.576,00 +WINJ26;25/02/2026 15:42:00;25/02/2026 16:20:00;38min;1;1;C;194.615,00;194.200,00;192.380,00;Sim;-83,00;-415,00;109;-83,00;-415,00;0,00;0,00;0,00;2h26min;-1.659,00 +WINJ26;26/02/2026 13:04:00;26/02/2026 13:40:00;36min;1;1;V;193.685,00;193.325,00;192.380,00;No;-72,00;-360,00;110;-72,00;-360,00;0,00;0,00;0,00;21h22min;-1.731,00 +WINJ26;26/02/2026 15:16:00;26/02/2026 15:26:00;10min;1;1;V;193.400,00;193.490,00;192.380,00;Sim;18,00;90,00;111;18,00;90,00;0,00;0,00;0,00;2h12min;-1.713,00 +WINJ26;26/02/2026 15:38:00;26/02/2026 16:30:00;52min;1;1;V;194.010,00;193.745,00;192.380,00;Sim;-53,00;-265,00;112;-53,00;-265,00;0,00;0,00;0,00;22min;-1.766,00 +WINJ26;26/02/2026 17:08:00;26/02/2026 17:24:00;16min;1;1;V;194.165,00;194.330,00;192.380,00;Sim;33,00;165,00;113;33,00;165,00;0,00;0,00;0,00;1h30min;-1.733,00 +WINJ26;02/03/2026 09:06:00;02/03/2026 09:18:00;12min;1;1;C;190.440,00;191.150,00;192.380,00;Sim;142,00;710,00;114;142,00;710,00;0,00;0,00;0,00;3d15h;-1.591,00 +WINJ26;02/03/2026 13:00:00;02/03/2026 13:06:00;6min;1;1;C;191.005,00;191.245,00;192.380,00;No;48,00;240,00;115;48,00;240,00;0,00;0,00;0,00;3h54min;-1.543,00 +WINJ26;02/03/2026 13:48:00;02/03/2026 13:58:00;10min;1;1;V;191.425,00;191.745,00;192.380,00;No;64,00;320,00;116;64,00;320,00;0,00;0,00;0,00;48min;-1.479,00 +WINJ26;02/03/2026 14:58:00;02/03/2026 15:08:00;10min;1;1;V;191.885,00;192.025,00;192.380,00;Sim;28,00;140,00;117;28,00;140,00;0,00;0,00;0,00;1h10min;-1.451,00 +WINJ26;02/03/2026 16:18:00;02/03/2026 16:46:00;28min;1;1;V;192.950,00;192.955,00;192.380,00;Sim;1,00;5,00;118;1,00;5,00;0,00;0,00;0,00;1h20min;-1.450,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv new file mode 100644 index 0000000..c59d80c --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv @@ -0,0 +1,68 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;05/11/2025 17:55:00;06/11/2025 15:25:00;21h30min;1;1;V;161.800,00;161.980,00;192.290,00;No;36,00;180,00;1;36,00;180,00;0,00;0,00;0,00; - ;36,00 +WINJ26;19/11/2025 18:20:00;21/11/2025 11:15:00;1d16h;1;1;C;163.200,00;161.780,00;192.290,00;No;-284,00;-1.420,00;2;-284,00;-1.420,00;0,00;0,00;0,00;14d;-248,00 +WINJ26;03/12/2025 09:10:00;05/12/2025 11:35:00;2d2h;1;1;V;171.570,00;168.930,00;192.290,00;Sim;-528,00;-2.640,00;3;-528,00;-2.640,00;0,00;0,00;0,00;13d14h;-776,00 +WINJ26;18/12/2025 14:20:00;18/12/2025 14:45:00;25min;1;1;C;164.095,00;164.745,00;192.290,00;No;130,00;650,00;4;130,00;650,00;0,00;0,00;0,00;15d5h;-646,00 +WINJ26;18/12/2025 16:25:00;18/12/2025 17:30:00;1h5min;1;1;C;164.550,00;164.490,00;192.290,00;No;-12,00;-60,00;5;-12,00;-60,00;0,00;0,00;0,00;2h5min;-658,00 +WINJ26;18/12/2025 17:50:00;18/12/2025 18:00:00;10min;1;1;V;164.480,00;164.670,00;192.290,00;No;38,00;190,00;6;38,00;190,00;0,00;0,00;0,00;1h25min;-620,00 +WINJ26;19/12/2025 14:50:00;19/12/2025 16:45:00;1h55min;1;1;C;165.180,00;165.020,00;192.290,00;No;-32,00;-160,00;7;-32,00;-160,00;0,00;0,00;0,00;21h;-652,00 +WINJ26;23/12/2025 15:15:00;23/12/2025 15:50:00;35min;1;1;C;166.230,00;166.465,00;192.290,00;No;47,00;235,00;8;47,00;235,00;0,00;0,00;0,00;4d;-605,00 +WINJ26;26/12/2025 13:55:00;26/12/2025 14:05:00;10min;1;1;C;165.990,00;166.230,00;192.290,00;Sim;48,00;240,00;9;48,00;240,00;0,00;0,00;0,00;2d22h;-557,00 +WINJ26;26/12/2025 15:05:00;26/12/2025 15:20:00;15min;1;1;V;166.480,00;166.580,00;192.290,00;Sim;20,00;100,00;10;20,00;100,00;0,00;0,00;0,00;1h10min;-537,00 +WINJ26;29/12/2025 09:10:00;29/12/2025 09:30:00;20min;1;1;V;167.005,00;167.375,00;192.290,00;Sim;74,00;370,00;11;74,00;370,00;0,00;0,00;0,00;2d18h;-463,00 +WINJ26;29/12/2025 15:50:00;29/12/2025 16:35:00;45min;1;1;C;165.790,00;166.015,00;192.290,00;Sim;45,00;225,00;12;45,00;225,00;0,00;0,00;0,00;6h40min;-418,00 +WINJ26;30/12/2025 09:25:00;30/12/2025 10:45:00;1h20min;1;1;V;167.570,00;167.545,00;192.290,00;Sim;-5,00;-25,00;13;-5,00;-25,00;0,00;0,00;0,00;17h35min;-423,00 +WINJ26;30/12/2025 13:15:00;30/12/2025 13:50:00;35min;1;1;V;167.565,00;167.660,00;192.290,00;Sim;19,00;95,00;14;19,00;95,00;0,00;0,00;0,00;3h50min;-404,00 +WINJ26;30/12/2025 18:10:00;02/01/2026 09:05:00;2d14h;1;1;C;167.155,00;167.910,00;192.290,00;No;151,00;755,00;15;151,00;755,00;0,00;0,00;0,00;4h55min;-253,00 +WINJ26;02/01/2026 16:20:00;02/01/2026 17:15:00;55min;1;1;V;166.165,00;166.230,00;192.290,00;No;13,00;65,00;16;13,00;65,00;0,00;0,00;0,00;2d22h;-240,00 +WINJ26;05/01/2026 13:45:00;05/01/2026 16:25:00;2h40min;1;1;V;167.710,00;167.265,00;192.290,00;Sim;-89,00;-445,00;17;-89,00;-445,00;0,00;0,00;0,00;2d21h;-329,00 +WINJ26;06/01/2026 10:15:00;06/01/2026 11:25:00;1h10min;1;1;V;169.295,00;169.415,00;192.290,00;Sim;24,00;120,00;18;24,00;120,00;0,00;0,00;0,00;20h30min;-305,00 +WINJ26;06/01/2026 16:30:00;06/01/2026 17:30:00;1h;1;1;C;169.185,00;169.210,00;192.290,00;No;5,00;25,00;19;5,00;25,00;0,00;0,00;0,00;6h15min;-300,00 +WINJ26;08/01/2026 09:00:00;08/01/2026 09:20:00;20min;1;1;C;167.500,00;167.500,00;192.290,00;Sim;0;0;20;0;0;0,00;0,00;0,00;1d16h;-300,00 +WINJ26;09/01/2026 14:30:00;09/01/2026 14:55:00;25min;1;1;V;169.405,00;169.675,00;192.290,00;Sim;54,00;270,00;21;54,00;270,00;0,00;0,00;0,00;1d5h;-246,00 +WINJ26;09/01/2026 15:30:00;12/01/2026 09:15:00;2d17h;1;1;C;169.345,00;168.975,00;192.290,00;No;-74,00;-370,00;22;-74,00;-370,00;0,00;0,00;0,00;1h;-320,00 +WINJ26;13/01/2026 09:05:00;13/01/2026 09:10:00;5min;1;1;V;168.430,00;168.805,00;192.290,00;No;75,00;375,00;23;75,00;375,00;0,00;0,00;0,00;3d17h;-245,00 +WINJ26;13/01/2026 12:40:00;13/01/2026 13:45:00;1h5min;1;1;C;167.170,00;167.250,00;192.290,00;Sim;16,00;80,00;24;16,00;80,00;0,00;0,00;0,00;3h35min;-229,00 +WINJ26;14/01/2026 15:25:00;14/01/2026 17:10:00;1h45min;1;1;V;169.685,00;169.200,00;192.290,00;Sim;-97,00;-485,00;25;-97,00;-485,00;0,00;0,00;0,00;1d2h;-326,00 +WINJ26;15/01/2026 13:50:00;15/01/2026 16:15:00;2h25min;1;1;V;171.050,00;170.670,00;192.290,00;Sim;-76,00;-380,00;26;-76,00;-380,00;0,00;0,00;0,00;22h25min;-402,00 +WINJ26;15/01/2026 17:55:00;15/01/2026 18:10:00;15min;1;1;C;170.595,00;170.785,00;192.290,00;No;38,00;190,00;27;38,00;190,00;0,00;0,00;0,00;4h5min;-364,00 +WINJ26;16/01/2026 09:00:00;16/01/2026 09:45:00;45min;1;1;V;170.975,00;171.100,00;192.290,00;Sim;25,00;125,00;28;25,00;125,00;0,00;0,00;0,00;15h5min;-339,00 +WINJ26;16/01/2026 11:35:00;16/01/2026 13:30:00;1h55min;1;1;C;169.550,00;169.625,00;192.290,00;Sim;15,00;75,00;29;15,00;75,00;0,00;0,00;0,00;2h35min;-324,00 +WINJ26;16/01/2026 17:50:00;16/01/2026 18:10:00;20min;1;1;C;169.495,00;169.690,00;192.290,00;Sim;39,00;195,00;30;39,00;195,00;0,00;0,00;0,00;6h15min;-285,00 +WINJ26;20/01/2026 13:05:00;20/01/2026 14:25:00;1h20min;1;1;V;171.100,00;171.025,00;192.290,00;No;-15,00;-75,00;31;-15,00;-75,00;0,00;0,00;0,00;3d19h;-300,00 +WINJ26;20/01/2026 16:00:00;20/01/2026 16:40:00;40min;1;1;C;170.615,00;170.725,00;192.290,00;No;22,00;110,00;32;22,00;110,00;0,00;0,00;0,00;2h55min;-278,00 +WINJ26;20/01/2026 17:45:00;21/01/2026 09:00:00;15h15min;1;1;V;170.910,00;170.980,00;192.290,00;No;14,00;70,00;33;14,00;70,00;0,00;0,00;0,00;1h45min;-264,00 +WINJ26;21/01/2026 13:10:00;21/01/2026 14:25:00;1h15min;1;1;V;174.860,00;174.910,00;192.290,00;Sim;10,00;50,00;34;10,00;50,00;0,00;0,00;0,00;19h25min;-254,00 +WINJ26;21/01/2026 15:30:00;22/01/2026 14:20:00;22h50min;1;1;V;181.465,00;175.380,00;192.290,00;Sim;-1.217,00;-6.085,00;35;-1.217,00;-6.085,00;0,00;0,00;0,00;2h20min;-1.471,00 +WINJ26;23/01/2026 15:05:00;23/01/2026 15:25:00;20min;1;1;C;181.765,00;182.200,00;192.290,00;No;87,00;435,00;36;87,00;435,00;0,00;0,00;0,00;1d23h;-1.384,00 +WINJ26;23/01/2026 15:35:00;23/01/2026 17:55:00;2h20min;1;1;V;183.955,00;182.385,00;192.290,00;Sim;-314,00;-1.570,00;37;-314,00;-1.570,00;0,00;0,00;0,00;30min;-1.698,00 +WINJ26;26/01/2026 14:45:00;26/01/2026 15:00:00;15min;1;1;V;183.500,00;184.130,00;192.290,00;Sim;126,00;630,00;38;126,00;630,00;0,00;0,00;0,00;2d23h;-1.572,00 +WINJ26;26/01/2026 17:35:00;26/01/2026 18:10:00;35min;1;1;V;183.605,00;183.905,00;192.290,00;No;60,00;300,00;39;60,00;300,00;0,00;0,00;0,00;2h50min;-1.512,00 +WINJ26;27/01/2026 13:45:00;27/01/2026 14:15:00;30min;1;1;V;187.785,00;188.300,00;192.290,00;Sim;103,00;515,00;40;103,00;515,00;0,00;0,00;0,00;20h10min;-1.409,00 +WINJ26;27/01/2026 16:55:00;27/01/2026 17:05:00;10min;1;1;C;187.180,00;187.470,00;192.290,00;No;58,00;290,00;41;58,00;290,00;0,00;0,00;0,00;3h10min;-1.351,00 +WINJ26;29/01/2026 09:05:00;29/01/2026 10:10:00;1h5min;1;1;V;190.880,00;191.840,00;192.290,00;Sim;192,00;960,00;42;192,00;960,00;0,00;0,00;0,00;1d16h;-1.159,00 +WINJ26;02/02/2026 17:35:00;03/02/2026 12:15:00;18h40min;1;1;V;190.975,00;187.110,00;192.290,00;No;-773,00;-3.865,00;43;-773,00;-3.865,00;0,00;0,00;0,00;4d8h;-1.932,00 +WINJ26;03/02/2026 14:20:00;03/02/2026 16:15:00;1h55min;1;1;C;190.335,00;189.965,00;192.290,00;No;-74,00;-370,00;44;-74,00;-370,00;0,00;0,00;0,00;20h45min;-2.006,00 +WINJ26;04/02/2026 13:10:00;04/02/2026 16:50:00;3h40min;1;1;C;186.810,00;185.340,00;192.290,00;Sim;-294,00;-1.470,00;45;-294,00;-1.470,00;0,00;0,00;0,00;22h50min;-2.300,00 +WINJ26;04/02/2026 18:10:00;05/02/2026 09:45:00;15h35min;1;1;V;186.105,00;186.145,00;192.290,00;No;8,00;40,00;46;8,00;40,00;0,00;0,00;0,00;5h;-2.292,00 +WINJ26;06/02/2026 15:30:00;06/02/2026 16:10:00;40min;1;1;C;186.340,00;186.590,00;192.290,00;Sim;50,00;250,00;47;50,00;250,00;0,00;0,00;0,00;1d21h;-2.242,00 +WINJ26;06/02/2026 17:15:00;06/02/2026 18:15:00;1h;1;1;V;187.040,00;186.985,00;192.290,00;Sim;-11,00;-55,00;48;-11,00;-55,00;0,00;0,00;0,00;1h45min;-2.253,00 +WINJ26;09/02/2026 11:50:00;09/02/2026 12:35:00;45min;1;1;V;188.110,00;188.185,00;192.290,00;Sim;15,00;75,00;49;15,00;75,00;0,00;0,00;0,00;2d18h;-2.238,00 +WINJ26;09/02/2026 14:35:00;09/02/2026 18:20:00;3h45min;1;1;V;190.475,00;189.590,00;192.290,00;Sim;-177,00;-885,00;50;-177,00;-885,00;0,00;0,00;0,00;2h45min;-2.415,00 +WINJ26;10/02/2026 15:40:00;10/02/2026 16:35:00;55min;1;1;C;189.580,00;189.850,00;192.290,00;No;54,00;270,00;51;54,00;270,00;0,00;0,00;0,00;1d1h;-2.361,00 +WINJ26;11/02/2026 13:45:00;11/02/2026 15:05:00;1h20min;1;1;V;194.340,00;194.685,00;192.290,00;Sim;69,00;345,00;52;69,00;345,00;0,00;0,00;0,00;22h5min;-2.292,00 +WINJ26;11/02/2026 17:20:00;11/02/2026 17:35:00;15min;1;1;C;193.825,00;194.170,00;192.290,00;No;69,00;345,00;53;69,00;345,00;0,00;0,00;0,00;3h35min;-2.223,00 +WINJ26;12/02/2026 13:25:00;12/02/2026 14:25:00;1h;1;1;C;192.615,00;192.730,00;192.290,00;Sim;23,00;115,00;54;23,00;115,00;0,00;0,00;0,00;20h5min;-2.200,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 13:25:00;25min;1;1;V;190.280,00;190.460,00;192.290,00;No;36,00;180,00;55;36,00;180,00;0,00;0,00;0,00;5d23h;-2.164,00 +WINJ26;18/02/2026 18:05:00;19/02/2026 10:05:00;16h;1;1;V;189.915,00;189.985,00;192.290,00;No;14,00;70,00;56;14,00;70,00;0,00;0,00;0,00;5h5min;-2.150,00 +WINJ26;19/02/2026 12:15:00;19/02/2026 14:05:00;1h50min;1;1;V;191.955,00;191.340,00;192.290,00;Sim;-123,00;-615,00;57;-123,00;-615,00;0,00;0,00;0,00;18h10min;-2.273,00 +WINJ26;23/02/2026 15:30:00;23/02/2026 16:05:00;35min;1;1;V;192.565,00;192.890,00;192.290,00;Sim;65,00;325,00;58;65,00;325,00;0,00;0,00;0,00;4d3h;-2.208,00 +WINJ26;24/02/2026 14:30:00;24/02/2026 14:50:00;20min;1;1;V;194.945,00;195.235,00;192.290,00;Sim;58,00;290,00;59;58,00;290,00;0,00;0,00;0,00;23h;-2.150,00 +WINJ26;25/02/2026 15:55:00;25/02/2026 17:35:00;1h40min;1;1;C;194.365,00;194.475,00;192.290,00;No;22,00;110,00;60;22,00;110,00;0,00;0,00;0,00;1d1h;-2.128,00 +WINJ26;26/02/2026 16:25:00;26/02/2026 18:10:00;1h45min;1;1;V;194.220,00;194.160,00;192.290,00;No;-12,00;-60,00;61;-12,00;-60,00;0,00;0,00;0,00;1d;-2.140,00 +WINJ26;27/02/2026 17:15:00;27/02/2026 17:25:00;10min;1;1;C;191.830,00;192.145,00;192.290,00;Sim;63,00;315,00;62;63,00;315,00;0,00;0,00;0,00;1d;-2.077,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv new file mode 100644 index 0000000..e9829b2 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv @@ -0,0 +1,31 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/09/2025 11:45:00;29/09/2025 15:00:00;3h15min;1;1;V;156.340,00;156.600,00;192.285,00;No;52,00;260,00;1;52,00;260,00;0,00;0,00;0,00; - ;52,00 +WINJ26;03/11/2025 11:15:00;04/11/2025 10:00:00;22h45min;1;1;V;158.430,00;158.605,00;192.285,00;Sim;35,00;175,00;2;35,00;175,00;0,00;0,00;0,00;1m3d23h;87,00 +WINJ26;05/11/2025 17:45:00;07/11/2025 10:00:00;1d16h;1;1;V;161.250,00;161.900,00;192.285,00;Sim;130,00;650,00;3;130,00;650,00;0,00;0,00;0,00;2d6h;217,00 +WINJ26;11/11/2025 11:15:00;12/11/2025 11:00:00;23h45min;1;1;V;165.880,00;166.205,00;192.285,00;Sim;65,00;325,00;4;65,00;325,00;0,00;0,00;0,00;5d17h;282,00 +WINJ26;02/12/2025 18:15:00;05/12/2025 13:00:00;2d18h;1;1;V;170.835,00;168.805,00;192.285,00;Sim;-406,00;-2.030,00;5;-406,00;-2.030,00;0,00;0,00;0,00;21d7h;-124,00 +WINJ26;17/12/2025 09:00:00;17/12/2025 16:00:00;7h;1;1;C;164.410,00;163.670,00;192.285,00;No;-148,00;-740,00;6;-148,00;-740,00;0,00;0,00;0,00;14d14h;-272,00 +WINJ26;19/12/2025 18:00:00;22/12/2025 09:00:00;2d15h;1;1;C;164.745,00;165.430,00;192.285,00;No;137,00;685,00;7;137,00;685,00;0,00;0,00;0,00;2d9h;-135,00 +WINJ26;23/12/2025 09:30:00;26/12/2025 09:15:00;2d23h;1;1;V;165.980,00;164.900,00;192.285,00;No;-216,00;-1.080,00;8;-216,00;-1.080,00;0,00;0,00;0,00;3d15h;-351,00 +WINJ26;26/12/2025 09:45:00;26/12/2025 11:45:00;2h;1;1;C;165.890,00;166.015,00;192.285,00;No;25,00;125,00;9;25,00;125,00;0,00;0,00;0,00;3d;-326,00 +WINJ26;29/12/2025 09:15:00;29/12/2025 10:30:00;1h15min;1;1;V;166.705,00;167.245,00;192.285,00;Sim;108,00;540,00;10;108,00;540,00;0,00;0,00;0,00;2d23h;-218,00 +WINJ26;30/12/2025 09:45:00;30/12/2025 12:00:00;2h15min;1;1;V;167.060,00;167.675,00;192.285,00;Sim;123,00;615,00;11;123,00;615,00;0,00;0,00;0,00;1d;-95,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 16:30:00;7h;1;1;V;169.185,00;168.485,00;192.285,00;Sim;-140,00;-700,00;12;-140,00;-700,00;0,00;0,00;0,00;6d23h;-235,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:45:00;30min;1;1;C;167.350,00;167.630,00;192.285,00;No;56,00;280,00;13;56,00;280,00;0,00;0,00;0,00;1d23h;-179,00 +WINJ26;12/01/2026 09:00:00;12/01/2026 09:15:00;15min;1;1;C;168.590,00;168.975,00;192.285,00;No;77,00;385,00;14;77,00;385,00;0,00;0,00;0,00;3d23h;-102,00 +WINJ26;14/01/2026 09:45:00;14/01/2026 11:15:00;1h30min;1;1;V;167.705,00;168.000,00;192.285,00;No;59,00;295,00;15;59,00;295,00;0,00;0,00;0,00;2d;-43,00 +WINJ26;21/01/2026 12:00:00;22/01/2026 16:15:00;1d4h;1;1;V;180.825,00;174.590,00;192.285,00;Sim;-1.247,00;-6.235,00;16;-1.247,00;-6.235,00;0,00;0,00;0,00;7d2h;-1.290,00 +WINJ26;27/01/2026 11:30:00;27/01/2026 15:00:00;3h30min;1;1;V;187.170,00;187.470,00;192.285,00;Sim;60,00;300,00;17;60,00;300,00;0,00;0,00;0,00;5d23h;-1.230,00 +WINJ26;30/01/2026 15:45:00;02/02/2026 09:00:00;2d17h;1;1;C;185.235,00;184.655,00;192.285,00;No;-116,00;-580,00;18;-116,00;-580,00;0,00;0,00;0,00;3d4h;-1.346,00 +WINJ26;03/02/2026 11:30:00;03/02/2026 14:15:00;2h45min;1;1;V;190.295,00;191.180,00;192.285,00;Sim;177,00;885,00;19;177,00;885,00;0,00;0,00;0,00;3d19h;-1.169,00 +WINJ26;04/02/2026 11:30:00;04/02/2026 18:15:00;6h45min;1;1;C;188.270,00;186.115,00;192.285,00;No;-431,00;-2.155,00;20;-431,00;-2.155,00;0,00;0,00;0,00;1d;-1.600,00 +WINJ26;05/02/2026 10:30:00;05/02/2026 12:15:00;1h45min;1;1;V;186.700,00;186.885,00;192.285,00;No;37,00;185,00;21;37,00;185,00;0,00;0,00;0,00;23h;-1.563,00 +WINJ26;09/02/2026 14:30:00;10/02/2026 09:15:00;18h45min;1;1;V;189.800,00;189.515,00;192.285,00;Sim;-57,00;-285,00;22;-57,00;-285,00;0,00;0,00;0,00;4d4h;-1.620,00 +WINJ26;18/02/2026 13:00:00;18/02/2026 14:00:00;1h;1;1;V;189.975,00;190.460,00;192.285,00;Sim;97,00;485,00;23;97,00;485,00;0,00;0,00;0,00;8d22h;-1.523,00 +WINJ26;19/02/2026 18:15:00;20/02/2026 09:15:00;15h;1;1;V;191.230,00;192.225,00;192.285,00;Sim;199,00;995,00;24;199,00;995,00;0,00;0,00;0,00;1d5h;-1.324,00 +WINJ26;20/02/2026 11:15:00;20/02/2026 11:45:00;30min;1;1;C;190.520,00;191.325,00;192.285,00;No;161,00;805,00;25;161,00;805,00;0,00;0,00;0,00;17h;-1.163,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv new file mode 100644 index 0000000..0735db3 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv @@ -0,0 +1,28 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/09/2025 11:30:00;30/09/2025 11:30:00;1d;1;1;V;156.250,00;156.600,00;192.300,00;No;70,00;350,00;1;70,00;350,00;0,00;0,00;0,00; - ;70,00 +WINJ26;03/10/2025 11:00:00;13/10/2025 13:30:00;10d2h;1;1;C;153.700,00;151.240,00;192.300,00;No;-492,00;-2.460,00;2;-492,00;-2.460,00;0,00;0,00;0,00;3d23h;-422,00 +WINJ26;23/10/2025 09:30:00;23/10/2025 12:30:00;3h;1;1;V;153.950,00;154.700,00;192.300,00;No;150,00;750,00;3;150,00;750,00;0,00;0,00;0,00;19d22h;-272,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 10:00:00;1d16h;1;1;V;161.250,00;161.940,00;192.300,00;Sim;138,00;690,00;4;138,00;690,00;0,00;0,00;0,00;13d8h;-134,00 +WINJ26;28/11/2025 15:00:00;01/12/2025 10:30:00;2d19h;1;1;V;165.625,00;167.000,00;192.300,00;Sim;275,00;1.375,00;5;275,00;1.375,00;0,00;0,00;0,00;22d21h;141,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 13:00:00;4h;1;1;V;170.835,00;171.890,00;192.300,00;Sim;211,00;1.055,00;6;211,00;1.055,00;0,00;0,00;0,00;6d18h;352,00 +WINJ26;09/12/2025 11:00:00;09/12/2025 13:00:00;2h;1;1;C;163.150,00;164.830,00;192.300,00;No;336,00;1.680,00;7;336,00;1.680,00;0,00;0,00;0,00;4d2h;688,00 +WINJ26;17/12/2025 11:00:00;18/12/2025 11:30:00;1d;1;1;C;163.230,00;164.010,00;192.300,00;No;156,00;780,00;8;156,00;780,00;0,00;0,00;0,00;8d;844,00 +WINJ26;22/12/2025 11:00:00;22/12/2025 14:00:00;3h;1;1;C;164.250,00;164.520,00;192.300,00;No;54,00;270,00;9;54,00;270,00;0,00;0,00;0,00;5d;898,00 +WINJ26;23/12/2025 11:30:00;26/12/2025 09:30:00;2d22h;1;1;V;165.790,00;165.435,00;192.300,00;No;-71,00;-355,00;10;-71,00;-355,00;0,00;0,00;0,00;1d;827,00 +WINJ26;29/12/2025 13:30:00;29/12/2025 17:30:00;4h;1;1;C;166.175,00;166.330,00;192.300,00;No;31,00;155,00;11;31,00;155,00;0,00;0,00;0,00;6d2h;858,00 +WINJ26;06/01/2026 11:00:00;07/01/2026 10:00:00;23h;1;1;V;168.900,00;169.355,00;192.300,00;Sim;91,00;455,00;12;91,00;455,00;0,00;0,00;0,00;7d21h;949,00 +WINJ26;07/01/2026 14:30:00;08/01/2026 10:30:00;20h;1;1;C;167.680,00;167.945,00;192.300,00;No;53,00;265,00;13;53,00;265,00;0,00;0,00;0,00;1d3h;1.002,00 +WINJ26;12/01/2026 11:30:00;12/01/2026 12:30:00;1h;1;1;C;168.150,00;168.635,00;192.300,00;No;97,00;485,00;14;97,00;485,00;0,00;0,00;0,00;4d21h;1.099,00 +WINJ26;15/01/2026 09:30:00;16/01/2026 10:30:00;1d1h;1;1;V;170.625,00;170.390,00;192.300,00;Sim;-47,00;-235,00;15;-47,00;-235,00;0,00;0,00;0,00;2d22h;1.052,00 +WINJ26;21/01/2026 11:30:00;26/01/2026 11:00:00;4d23h;1;1;V;183.135,00;173.915,00;192.300,00;Sim;-1.844,00;-9.220,00;16;-1.844,00;-9.220,00;0,00;0,00;0,00;6d2h;-792,00 +WINJ26;27/01/2026 12:30:00;28/01/2026 09:00:00;20h30min;1;1;V;187.620,00;187.690,00;192.300,00;Sim;14,00;70,00;17;14,00;70,00;0,00;0,00;0,00;6d1h;-778,00 +WINJ26;28/01/2026 11:00:00;28/01/2026 16:00:00;5h;1;1;V;187.955,00;189.035,00;192.300,00;Sim;216,00;1.080,00;18;216,00;1.080,00;0,00;0,00;0,00;22h30min;-562,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 15:30:00;3h30min;1;1;V;189.500,00;191.565,00;192.300,00;Sim;413,00;2.065,00;19;413,00;2.065,00;0,00;0,00;0,00;6d1h;-149,00 +WINJ26;04/02/2026 15:30:00;05/02/2026 10:30:00;19h;1;1;C;185.485,00;186.885,00;192.300,00;No;280,00;1.400,00;20;280,00;1.400,00;0,00;0,00;0,00;1d3h;131,00 +WINJ26;06/02/2026 11:00:00;06/02/2026 11:30:00;30min;1;1;C;186.115,00;186.785,00;192.300,00;No;134,00;670,00;21;134,00;670,00;0,00;0,00;0,00;1d19h;265,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 15:00:00;4h30min;1;1;C;189.095,00;190.025,00;192.300,00;No;186,00;930,00;22;186,00;930,00;0,00;0,00;0,00;6d23h;451,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv new file mode 100644 index 0000000..a74ff9d --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv @@ -0,0 +1,17 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/10/2025 12:00:00;30/10/2025 10:00:00;22h;1;1;V;156.695,00;157.250,00;192.300,00;No;111,00;555,00;1;111,00;555,00;0,00;0,00;0,00; - ;111,00 +WINJ26;03/11/2025 17:00:00;04/11/2025 10:00:00;17h;1;1;V;158.430,00;158.720,00;192.300,00;Sim;58,00;290,00;2;58,00;290,00;0,00;0,00;0,00;5d5h;169,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 11:00:00;1d17h;1;1;V;161.000,00;161.940,00;192.300,00;Sim;188,00;940,00;3;188,00;940,00;0,00;0,00;0,00;2d1h;357,00 +WINJ26;28/11/2025 15:00:00;01/12/2025 11:00:00;2d20h;1;1;V;165.945,00;167.000,00;192.300,00;Sim;211,00;1.055,00;4;211,00;1.055,00;0,00;0,00;0,00;22d21h;568,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 13:00:00;4h;1;1;V;170.835,00;171.890,00;192.300,00;Sim;211,00;1.055,00;5;211,00;1.055,00;0,00;0,00;0,00;6d18h;779,00 +WINJ26;15/12/2025 14:00:00;16/12/2025 10:00:00;20h;1;1;V;167.270,00;169.505,00;192.300,00;No;447,00;2.235,00;6;447,00;2.235,00;0,00;0,00;0,00;10d5h;1.226,00 +WINJ26;23/12/2025 17:00:00;26/12/2025 10:00:00;2d17h;1;1;V;165.700,00;166.370,00;192.300,00;No;134,00;670,00;7;134,00;670,00;0,00;0,00;0,00;8d3h;1.360,00 +WINJ26;13/01/2026 17:00:00;14/01/2026 10:00:00;17h;1;1;C;167.335,00;168.200,00;192.300,00;No;173,00;865,00;8;173,00;865,00;0,00;0,00;0,00;21d;1.533,00 +WINJ26;26/01/2026 10:00:00;29/01/2026 13:00:00;3d3h;1;1;V;186.785,00;184.825,00;192.300,00;Sim;-392,00;-1.960,00;9;-392,00;-1.960,00;0,00;0,00;0,00;12d17h;1.141,00 +WINJ26;11/02/2026 17:00:00;12/02/2026 14:00:00;21h;1;1;V;192.510,00;193.990,00;192.300,00;Sim;296,00;1.480,00;10;296,00;1.480,00;0,00;0,00;0,00;16d7h;1.437,00 +WINJ26;24/02/2026 15:00:00;25/02/2026 16:00:00;1d1h;1;1;V;194.310,00;194.940,00;192.300,00;Sim;126,00;630,00;11;126,00;630,00;0,00;0,00;0,00;12d22h;1.563,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv new file mode 100644 index 0000000..e67a608 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv @@ -0,0 +1,159 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;19/12/2025 15:26:00;19/12/2025 15:40:00;14min;1;1;C;165.150,00;165.005,00;192.300,00;No;-29,00;-145,00;1;-29,00;-145,00;0,00;0,00;0,00; - ;-29,00 +WINJ26;19/12/2025 17:44:00;19/12/2025 18:06:00;22min;1;1;C;164.715,00;164.800,00;192.300,00;Sim;17,00;85,00;2;17,00;85,00;0,00;0,00;0,00;2h18min;-12,00 +WINJ26;22/12/2025 15:22:00;22/12/2025 15:26:00;4min;1;1;C;164.065,00;164.075,00;192.300,00;Sim;2,00;10,00;3;2,00;10,00;0,00;0,00;0,00;2d21h;-10,00 +WINJ26;23/12/2025 09:46:00;23/12/2025 10:00:00;14min;1;1;V;165.025,00;165.350,00;192.300,00;No;65,00;325,00;4;65,00;325,00;0,00;0,00;0,00;18h24min;55,00 +WINJ26;23/12/2025 10:20:00;23/12/2025 10:28:00;8min;1;1;V;165.360,00;165.715,00;192.300,00;Sim;71,00;355,00;5;71,00;355,00;0,00;0,00;0,00;34min;126,00 +WINJ26;23/12/2025 12:12:00;23/12/2025 12:16:00;4min;1;1;V;166.465,00;166.410,00;192.300,00;Sim;-11,00;-55,00;6;-11,00;-55,00;0,00;0,00;0,00;1h52min;115,00 +WINJ26;23/12/2025 15:12:00;23/12/2025 15:24:00;12min;1;1;C;166.305,00;166.425,00;192.300,00;No;24,00;120,00;7;24,00;120,00;0,00;0,00;0,00;3h;139,00 +WINJ26;23/12/2025 18:08:00;23/12/2025 18:20:00;12min;1;1;V;166.530,00;166.745,00;192.300,00;Sim;43,00;215,00;8;43,00;215,00;0,00;0,00;0,00;2h56min;182,00 +WINJ26;26/12/2025 17:46:00;26/12/2025 18:12:00;26min;1;1;V;167.225,00;167.045,00;192.300,00;Sim;-36,00;-180,00;9;-36,00;-180,00;0,00;0,00;0,00;2d23h;146,00 +WINJ26;29/12/2025 14:48:00;29/12/2025 14:52:00;4min;1;1;V;166.265,00;166.325,00;192.300,00;No;12,00;60,00;10;12,00;60,00;0,00;0,00;0,00;2d21h;158,00 +WINJ26;29/12/2025 15:48:00;29/12/2025 16:00:00;12min;1;1;C;165.880,00;165.800,00;192.300,00;Sim;-16,00;-80,00;11;-16,00;-80,00;0,00;0,00;0,00;1h;142,00 +WINJ26;29/12/2025 17:06:00;29/12/2025 17:32:00;26min;1;1;V;166.330,00;166.305,00;192.300,00;No;-5,00;-25,00;12;-5,00;-25,00;0,00;0,00;0,00;1h18min;137,00 +WINJ26;30/12/2025 09:04:00;30/12/2025 09:10:00;6min;1;1;V;167.200,00;166.930,00;192.300,00;Sim;-54,00;-270,00;13;-54,00;-270,00;0,00;0,00;0,00;15h58min;83,00 +WINJ26;30/12/2025 09:18:00;30/12/2025 09:40:00;22min;1;1;V;167.780,00;167.400,00;192.300,00;Sim;-76,00;-380,00;14;-76,00;-380,00;0,00;0,00;0,00;14min;7,00 +WINJ26;30/12/2025 17:52:00;30/12/2025 18:14:00;22min;1;1;C;167.390,00;167.070,00;192.300,00;No;-64,00;-320,00;15;-64,00;-320,00;0,00;0,00;0,00;8h34min;-57,00 +WINJ26;02/01/2026 11:04:00;02/01/2026 11:14:00;10min;1;1;C;166.665,00;167.125,00;192.300,00;Sim;92,00;460,00;16;92,00;460,00;0,00;0,00;0,00;2d17h;35,00 +WINJ26;05/01/2026 09:40:00;05/01/2026 09:46:00;6min;1;1;V;166.465,00;166.785,00;192.300,00;No;64,00;320,00;17;64,00;320,00;0,00;0,00;0,00;2d22h;99,00 +WINJ26;05/01/2026 14:08:00;05/01/2026 14:16:00;8min;1;1;V;167.445,00;167.485,00;192.300,00;Sim;8,00;40,00;18;8,00;40,00;0,00;0,00;0,00;4h28min;107,00 +WINJ26;05/01/2026 14:54:00;05/01/2026 15:18:00;24min;1;1;V;167.695,00;167.655,00;192.300,00;Sim;-8,00;-40,00;19;-8,00;-40,00;0,00;0,00;0,00;46min;99,00 +WINJ26;06/01/2026 09:18:00;06/01/2026 09:40:00;22min;1;1;V;168.710,00;168.505,00;192.300,00;Sim;-41,00;-205,00;20;-41,00;-205,00;0,00;0,00;0,00;18h24min;58,00 +WINJ26;06/01/2026 09:48:00;06/01/2026 10:10:00;22min;1;1;V;169.300,00;168.810,00;192.300,00;Sim;-98,00;-490,00;21;-98,00;-490,00;0,00;0,00;0,00;30min;-40,00 +WINJ26;07/01/2026 11:18:00;07/01/2026 11:20:00;2min;1;1;C;168.005,00;167.945,00;192.300,00;No;-12,00;-60,00;22;-12,00;-60,00;0,00;0,00;0,00;1d1h;-52,00 +WINJ26;07/01/2026 12:04:00;07/01/2026 12:14:00;10min;1;1;C;167.445,00;167.545,00;192.300,00;Sim;20,00;100,00;23;20,00;100,00;0,00;0,00;0,00;46min;-32,00 +WINJ26;08/01/2026 10:34:00;08/01/2026 10:48:00;14min;1;1;V;167.795,00;167.995,00;192.300,00;No;40,00;200,00;24;40,00;200,00;0,00;0,00;0,00;22h30min;8,00 +WINJ26;09/01/2026 09:02:00;09/01/2026 09:12:00;10min;1;1;V;168.140,00;168.600,00;192.300,00;Sim;92,00;460,00;25;92,00;460,00;0,00;0,00;0,00;22h28min;100,00 +WINJ26;09/01/2026 10:34:00;09/01/2026 10:56:00;22min;1;1;V;169.290,00;168.785,00;192.300,00;Sim;-101,00;-505,00;26;-101,00;-505,00;0,00;0,00;0,00;1h32min;-1,00 +WINJ26;09/01/2026 17:56:00;09/01/2026 18:20:00;24min;1;1;C;168.725,00;168.545,00;192.300,00;No;-36,00;-180,00;27;-36,00;-180,00;0,00;0,00;0,00;7h22min;-37,00 +WINJ26;13/01/2026 09:04:00;13/01/2026 09:08:00;4min;1;1;V;168.400,00;168.725,00;192.300,00;No;65,00;325,00;28;65,00;325,00;0,00;0,00;0,00;3d15h;28,00 +WINJ26;13/01/2026 09:22:00;13/01/2026 09:40:00;18min;1;1;C;168.105,00;167.775,00;192.300,00;Sim;-66,00;-330,00;29;-66,00;-330,00;0,00;0,00;0,00;18min;-38,00 +WINJ26;13/01/2026 10:04:00;13/01/2026 10:22:00;18min;1;1;C;167.545,00;167.625,00;192.300,00;Sim;16,00;80,00;30;16,00;80,00;0,00;0,00;0,00;42min;-22,00 +WINJ26;13/01/2026 11:12:00;13/01/2026 11:16:00;4min;1;1;V;167.750,00;168.125,00;192.300,00;No;75,00;375,00;31;75,00;375,00;0,00;0,00;0,00;1h8min;53,00 +WINJ26;14/01/2026 09:04:00;14/01/2026 09:26:00;22min;1;1;V;168.015,00;167.295,00;192.300,00;No;-144,00;-720,00;32;-144,00;-720,00;0,00;0,00;0,00;21h52min;-91,00 +WINJ26;14/01/2026 11:04:00;14/01/2026 11:06:00;2min;1;1;C;168.095,00;168.005,00;192.300,00;No;-18,00;-90,00;33;-18,00;-90,00;0,00;0,00;0,00;2h;-109,00 +WINJ26;14/01/2026 11:12:00;14/01/2026 11:22:00;10min;1;1;C;167.600,00;168.170,00;192.300,00;Sim;114,00;570,00;34;114,00;570,00;0,00;0,00;0,00;8min;5,00 +WINJ26;14/01/2026 15:22:00;14/01/2026 15:44:00;22min;1;1;V;169.370,00;169.165,00;192.300,00;Sim;-41,00;-205,00;35;-41,00;-205,00;0,00;0,00;0,00;4h10min;-36,00 +WINJ26;14/01/2026 16:32:00;14/01/2026 16:40:00;8min;1;1;V;169.865,00;169.815,00;192.300,00;Sim;-10,00;-50,00;36;-10,00;-50,00;0,00;0,00;0,00;1h10min;-46,00 +WINJ26;14/01/2026 17:34:00;14/01/2026 17:38:00;4min;1;1;V;170.190,00;170.200,00;192.300,00;Sim;2,00;10,00;37;2,00;10,00;0,00;0,00;0,00;1h2min;-44,00 +WINJ26;14/01/2026 17:42:00;14/01/2026 18:04:00;22min;1;1;V;170.365,00;170.265,00;192.300,00;Sim;-20,00;-100,00;38;-20,00;-100,00;0,00;0,00;0,00;8min;-64,00 +WINJ26;14/01/2026 18:14:00;15/01/2026 09:02:00;14h48min;1;1;V;170.355,00;170.500,00;192.300,00;Sim;29,00;145,00;39;29,00;145,00;0,00;0,00;0,00;32min;-35,00 +WINJ26;15/01/2026 17:10:00;15/01/2026 17:34:00;24min;1;1;C;170.650,00;170.645,00;192.300,00;No;-1,00;-5,00;40;-1,00;-5,00;0,00;0,00;0,00;22h56min;-36,00 +WINJ26;15/01/2026 17:56:00;15/01/2026 18:02:00;6min;1;1;C;170.595,00;170.700,00;192.300,00;Sim;21,00;105,00;41;21,00;105,00;0,00;0,00;0,00;46min;-15,00 +WINJ26;16/01/2026 11:02:00;16/01/2026 11:14:00;12min;1;1;C;169.955,00;170.020,00;192.300,00;Sim;13,00;65,00;42;13,00;65,00;0,00;0,00;0,00;17h6min;-2,00 +WINJ26;16/01/2026 11:18:00;16/01/2026 11:40:00;22min;1;1;C;169.930,00;169.650,00;192.300,00;Sim;-56,00;-280,00;43;-56,00;-280,00;0,00;0,00;0,00;16min;-58,00 +WINJ26;16/01/2026 12:42:00;16/01/2026 12:50:00;8min;1;1;C;169.155,00;169.500,00;192.300,00;Sim;69,00;345,00;44;69,00;345,00;0,00;0,00;0,00;1h24min;11,00 +WINJ26;19/01/2026 09:08:00;19/01/2026 09:10:00;2min;1;1;C;169.095,00;169.120,00;192.300,00;Sim;5,00;25,00;45;5,00;25,00;0,00;0,00;0,00;2d20h;16,00 +WINJ26;19/01/2026 10:12:00;19/01/2026 10:20:00;8min;1;1;V;169.640,00;169.930,00;192.300,00;No;58,00;290,00;46;58,00;290,00;0,00;0,00;0,00;1h4min;74,00 +WINJ26;20/01/2026 09:18:00;20/01/2026 09:26:00;8min;1;1;C;168.355,00;168.360,00;192.300,00;Sim;1,00;5,00;47;1,00;5,00;0,00;0,00;0,00;23h6min;75,00 +WINJ26;20/01/2026 11:46:00;20/01/2026 12:02:00;16min;1;1;V;170.540,00;170.700,00;192.300,00;Sim;32,00;160,00;48;32,00;160,00;0,00;0,00;0,00;2h28min;107,00 +WINJ26;20/01/2026 12:36:00;20/01/2026 12:40:00;4min;1;1;V;170.915,00;170.880,00;192.300,00;Sim;-7,00;-35,00;49;-7,00;-35,00;0,00;0,00;0,00;50min;100,00 +WINJ26;20/01/2026 12:46:00;20/01/2026 13:00:00;14min;1;1;V;171.065,00;171.040,00;192.300,00;Sim;-5,00;-25,00;50;-5,00;-25,00;0,00;0,00;0,00;10min;95,00 +WINJ26;20/01/2026 13:16:00;20/01/2026 13:22:00;6min;1;1;V;171.320,00;171.295,00;192.300,00;Sim;-5,00;-25,00;51;-5,00;-25,00;0,00;0,00;0,00;30min;90,00 +WINJ26;20/01/2026 14:36:00;20/01/2026 15:00:00;24min;1;1;C;170.995,00;170.935,00;192.300,00;No;-12,00;-60,00;52;-12,00;-60,00;0,00;0,00;0,00;1h20min;78,00 +WINJ26;20/01/2026 15:54:00;20/01/2026 16:16:00;22min;1;1;C;170.665,00;170.565,00;192.300,00;Sim;-20,00;-100,00;53;-20,00;-100,00;0,00;0,00;0,00;1h18min;58,00 +WINJ26;20/01/2026 17:54:00;20/01/2026 17:56:00;2min;1;1;V;171.130,00;171.105,00;192.300,00;No;-5,00;-25,00;54;-5,00;-25,00;0,00;0,00;0,00;2h;53,00 +WINJ26;20/01/2026 17:58:00;20/01/2026 18:16:00;18min;1;1;V;171.055,00;171.085,00;192.300,00;No;6,00;30,00;55;6,00;30,00;0,00;0,00;0,00;4min;59,00 +WINJ26;21/01/2026 09:14:00;21/01/2026 09:36:00;22min;1;1;V;172.570,00;172.495,00;192.300,00;Sim;-15,00;-75,00;56;-15,00;-75,00;0,00;0,00;0,00;15h16min;44,00 +WINJ26;21/01/2026 10:06:00;21/01/2026 10:28:00;22min;1;1;V;173.640,00;173.220,00;192.300,00;Sim;-84,00;-420,00;57;-84,00;-420,00;0,00;0,00;0,00;52min;-40,00 +WINJ26;21/01/2026 10:30:00;21/01/2026 10:44:00;14min;1;1;V;173.400,00;173.685,00;192.300,00;Sim;57,00;285,00;58;57,00;285,00;0,00;0,00;0,00;24min;17,00 +WINJ26;21/01/2026 14:34:00;21/01/2026 14:40:00;6min;1;1;C;174.760,00;174.890,00;192.300,00;No;26,00;130,00;59;26,00;130,00;0,00;0,00;0,00;4h4min;43,00 +WINJ26;21/01/2026 15:30:00;21/01/2026 15:44:00;14min;1;1;V;175.615,00;175.380,00;192.300,00;Sim;-47,00;-235,00;60;-47,00;-235,00;0,00;0,00;0,00;56min;-4,00 +WINJ26;21/01/2026 15:46:00;21/01/2026 16:02:00;16min;1;1;V;175.800,00;175.690,00;192.300,00;Sim;-22,00;-110,00;61;-22,00;-110,00;0,00;0,00;0,00;16min;-26,00 +WINJ26;21/01/2026 17:02:00;21/01/2026 17:26:00;24min;1;1;V;176.730,00;176.765,00;192.300,00;Sim;7,00;35,00;62;7,00;35,00;0,00;0,00;0,00;1h16min;-19,00 +WINJ26;21/01/2026 17:48:00;21/01/2026 18:12:00;24min;1;1;V;176.820,00;176.980,00;192.300,00;Sim;32,00;160,00;63;32,00;160,00;0,00;0,00;0,00;46min;13,00 +WINJ26;22/01/2026 11:12:00;22/01/2026 11:34:00;22min;1;1;V;179.980,00;178.670,00;192.300,00;Sim;-262,00;-1.310,00;64;-262,00;-1.310,00;0,00;0,00;0,00;17h24min;-249,00 +WINJ26;22/01/2026 12:30:00;22/01/2026 12:42:00;12min;1;1;V;181.805,00;181.395,00;192.300,00;Sim;-82,00;-410,00;65;-82,00;-410,00;0,00;0,00;0,00;1h18min;-331,00 +WINJ26;22/01/2026 12:46:00;22/01/2026 12:56:00;10min;1;1;V;182.115,00;182.390,00;192.300,00;Sim;55,00;275,00;66;55,00;275,00;0,00;0,00;0,00;16min;-276,00 +WINJ26;23/01/2026 09:06:00;23/01/2026 09:18:00;12min;1;1;V;181.370,00;182.050,00;192.300,00;No;136,00;680,00;67;136,00;680,00;0,00;0,00;0,00;20h20min;-140,00 +WINJ26;23/01/2026 12:34:00;23/01/2026 12:46:00;12min;1;1;V;182.000,00;182.650,00;192.300,00;Sim;130,00;650,00;68;130,00;650,00;0,00;0,00;0,00;3h28min;-10,00 +WINJ26;23/01/2026 15:50:00;23/01/2026 15:52:00;2min;1;1;V;182.690,00;182.700,00;192.300,00;Sim;2,00;10,00;69;2,00;10,00;0,00;0,00;0,00;3h16min;-8,00 +WINJ26;23/01/2026 16:18:00;23/01/2026 16:40:00;22min;1;1;V;183.220,00;183.000,00;192.300,00;Sim;-44,00;-220,00;70;-44,00;-220,00;0,00;0,00;0,00;28min;-52,00 +WINJ26;23/01/2026 17:10:00;23/01/2026 17:32:00;22min;1;1;V;184.505,00;183.680,00;192.300,00;Sim;-165,00;-825,00;71;-165,00;-825,00;0,00;0,00;0,00;52min;-217,00 +WINJ26;26/01/2026 09:06:00;26/01/2026 09:10:00;4min;1;1;V;186.135,00;186.240,00;192.300,00;Sim;21,00;105,00;72;21,00;105,00;0,00;0,00;0,00;2d15h;-196,00 +WINJ26;26/01/2026 10:58:00;26/01/2026 11:04:00;6min;1;1;C;183.090,00;183.195,00;192.300,00;No;21,00;105,00;73;21,00;105,00;0,00;0,00;0,00;1h52min;-175,00 +WINJ26;27/01/2026 09:04:00;27/01/2026 09:14:00;10min;1;1;V;185.195,00;185.405,00;192.300,00;No;42,00;210,00;74;42,00;210,00;0,00;0,00;0,00;22h6min;-133,00 +WINJ26;27/01/2026 09:18:00;27/01/2026 09:22:00;4min;1;1;V;185.210,00;185.150,00;192.300,00;No;-12,00;-60,00;75;-12,00;-60,00;0,00;0,00;0,00;14min;-145,00 +WINJ26;27/01/2026 09:36:00;27/01/2026 09:58:00;22min;1;1;V;185.950,00;185.985,00;192.300,00;Sim;7,00;35,00;76;7,00;35,00;0,00;0,00;0,00;18min;-138,00 +WINJ26;27/01/2026 11:08:00;27/01/2026 11:30:00;22min;1;1;V;187.470,00;187.090,00;192.300,00;Sim;-76,00;-380,00;77;-76,00;-380,00;0,00;0,00;0,00;1h32min;-214,00 +WINJ26;27/01/2026 14:56:00;27/01/2026 15:20:00;24min;1;1;C;187.250,00;187.310,00;192.300,00;No;12,00;60,00;78;12,00;60,00;0,00;0,00;0,00;3h48min;-202,00 +WINJ26;27/01/2026 18:16:00;27/01/2026 18:20:00;4min;1;1;C;186.615,00;186.500,00;192.300,00;Sim;-23,00;-115,00;79;-23,00;-115,00;0,00;0,00;0,00;3h20min;-225,00 +WINJ26;28/01/2026 10:32:00;28/01/2026 10:46:00;14min;1;1;V;189.300,00;189.345,00;192.300,00;Sim;9,00;45,00;80;9,00;45,00;0,00;0,00;0,00;16h16min;-216,00 +WINJ26;28/01/2026 12:38:00;28/01/2026 12:48:00;10min;1;1;C;188.355,00;188.640,00;192.300,00;No;57,00;285,00;81;57,00;285,00;0,00;0,00;0,00;2h6min;-159,00 +WINJ26;28/01/2026 17:42:00;28/01/2026 18:04:00;22min;1;1;V;189.755,00;189.415,00;192.300,00;Sim;-68,00;-340,00;82;-68,00;-340,00;0,00;0,00;0,00;5h4min;-227,00 +WINJ26;29/01/2026 14:32:00;29/01/2026 14:42:00;10min;1;1;V;188.215,00;188.600,00;192.300,00;No;77,00;385,00;83;77,00;385,00;0,00;0,00;0,00;20h50min;-150,00 +WINJ26;30/01/2026 12:46:00;30/01/2026 12:54:00;8min;1;1;V;188.070,00;188.325,00;192.300,00;No;51,00;255,00;84;51,00;255,00;0,00;0,00;0,00;22h14min;-99,00 +WINJ26;30/01/2026 15:04:00;30/01/2026 15:06:00;2min;1;1;C;185.960,00;185.900,00;192.300,00;Sim;-12,00;-60,00;85;-12,00;-60,00;0,00;0,00;0,00;2h18min;-111,00 +WINJ26;30/01/2026 15:08:00;30/01/2026 15:12:00;4min;1;1;C;186.005,00;185.730,00;192.300,00;No;-55,00;-275,00;86;-55,00;-275,00;0,00;0,00;0,00;4min;-166,00 +WINJ26;30/01/2026 16:02:00;30/01/2026 16:06:00;4min;1;1;V;186.165,00;186.385,00;192.300,00;No;44,00;220,00;87;44,00;220,00;0,00;0,00;0,00;54min;-122,00 +WINJ26;30/01/2026 16:14:00;30/01/2026 16:32:00;18min;1;1;V;186.000,00;186.420,00;192.300,00;Sim;84,00;420,00;88;84,00;420,00;0,00;0,00;0,00;12min;-38,00 +WINJ26;02/02/2026 10:32:00;02/02/2026 10:54:00;22min;1;1;V;187.450,00;187.105,00;192.300,00;Sim;-69,00;-345,00;89;-69,00;-345,00;0,00;0,00;0,00;2d18h;-107,00 +WINJ26;03/02/2026 11:04:00;03/02/2026 11:26:00;22min;1;1;V;191.295,00;190.935,00;192.300,00;Sim;-72,00;-360,00;90;-72,00;-360,00;0,00;0,00;0,00;1d;-179,00 +WINJ26;03/02/2026 11:52:00;03/02/2026 12:00:00;8min;1;1;V;191.565,00;191.945,00;192.300,00;Sim;76,00;380,00;91;76,00;380,00;0,00;0,00;0,00;48min;-103,00 +WINJ26;03/02/2026 14:12:00;03/02/2026 14:34:00;22min;1;1;C;190.520,00;190.215,00;192.300,00;No;-61,00;-305,00;92;-61,00;-305,00;0,00;0,00;0,00;2h20min;-164,00 +WINJ26;04/02/2026 09:02:00;04/02/2026 09:04:00;2min;1;1;V;190.090,00;190.645,00;192.300,00;No;111,00;555,00;93;111,00;555,00;0,00;0,00;0,00;18h50min;-53,00 +WINJ26;04/02/2026 13:04:00;04/02/2026 13:22:00;18min;1;1;C;186.855,00;186.400,00;192.300,00;Sim;-91,00;-455,00;94;-91,00;-455,00;0,00;0,00;0,00;4h2min;-144,00 +WINJ26;04/02/2026 14:36:00;04/02/2026 14:58:00;22min;1;1;C;185.500,00;185.485,00;192.300,00;Sim;-3,00;-15,00;95;-3,00;-15,00;0,00;0,00;0,00;1h32min;-147,00 +WINJ26;04/02/2026 15:54:00;04/02/2026 16:00:00;6min;1;1;C;184.810,00;184.885,00;192.300,00;Sim;15,00;75,00;96;15,00;75,00;0,00;0,00;0,00;1h18min;-132,00 +WINJ26;04/02/2026 16:56:00;04/02/2026 17:04:00;8min;1;1;V;185.635,00;185.370,00;192.300,00;No;-53,00;-265,00;97;-53,00;-265,00;0,00;0,00;0,00;1h2min;-185,00 +WINJ26;05/02/2026 12:16:00;05/02/2026 12:18:00;2min;1;1;C;186.750,00;186.850,00;192.300,00;No;20,00;100,00;98;20,00;100,00;0,00;0,00;0,00;19h20min;-165,00 +WINJ26;05/02/2026 12:30:00;05/02/2026 12:44:00;14min;1;1;C;186.695,00;187.100,00;192.300,00;Sim;81,00;405,00;99;81,00;405,00;0,00;0,00;0,00;14min;-84,00 +WINJ26;05/02/2026 17:28:00;05/02/2026 17:50:00;22min;1;1;C;186.585,00;186.410,00;192.300,00;Sim;-35,00;-175,00;100;-35,00;-175,00;0,00;0,00;0,00;4h58min;-119,00 +WINJ26;06/02/2026 17:08:00;06/02/2026 17:30:00;22min;1;1;V;187.210,00;187.040,00;192.300,00;Sim;-34,00;-170,00;101;-34,00;-170,00;0,00;0,00;0,00;23h40min;-153,00 +WINJ26;09/02/2026 11:48:00;09/02/2026 11:54:00;6min;1;1;V;188.095,00;188.560,00;192.300,00;Sim;93,00;465,00;102;93,00;465,00;0,00;0,00;0,00;2d18h;-60,00 +WINJ26;09/02/2026 13:44:00;09/02/2026 14:06:00;22min;1;1;V;189.080,00;188.535,00;192.300,00;No;-109,00;-545,00;103;-109,00;-545,00;0,00;0,00;0,00;1h56min;-169,00 +WINJ26;09/02/2026 14:08:00;09/02/2026 14:24:00;16min;1;1;V;189.520,00;189.110,00;192.300,00;Sim;-82,00;-410,00;104;-82,00;-410,00;0,00;0,00;0,00;24min;-251,00 +WINJ26;09/02/2026 14:28:00;09/02/2026 14:50:00;22min;1;1;V;189.600,00;189.460,00;192.300,00;Sim;-28,00;-140,00;105;-28,00;-140,00;0,00;0,00;0,00;20min;-279,00 +WINJ26;09/02/2026 16:34:00;09/02/2026 16:46:00;12min;1;1;V;190.320,00;190.465,00;192.300,00;Sim;29,00;145,00;106;29,00;145,00;0,00;0,00;0,00;2h6min;-250,00 +WINJ26;09/02/2026 17:08:00;09/02/2026 17:18:00;10min;1;1;V;190.445,00;190.650,00;192.300,00;Sim;41,00;205,00;107;41,00;205,00;0,00;0,00;0,00;34min;-209,00 +WINJ26;09/02/2026 17:54:00;09/02/2026 18:02:00;8min;1;1;V;190.635,00;190.740,00;192.300,00;Sim;21,00;105,00;108;21,00;105,00;0,00;0,00;0,00;46min;-188,00 +WINJ26;10/02/2026 09:10:00;10/02/2026 09:14:00;4min;1;1;C;189.860,00;189.855,00;192.300,00;No;-1,00;-5,00;109;-1,00;-5,00;0,00;0,00;0,00;15h16min;-189,00 +WINJ26;10/02/2026 12:22:00;10/02/2026 12:44:00;22min;1;1;V;190.845,00;190.630,00;192.300,00;No;-43,00;-215,00;110;-43,00;-215,00;0,00;0,00;0,00;3h12min;-232,00 +WINJ26;10/02/2026 14:56:00;10/02/2026 15:18:00;22min;1;1;C;190.050,00;190.030,00;192.300,00;No;-4,00;-20,00;111;-4,00;-20,00;0,00;0,00;0,00;2h34min;-236,00 +WINJ26;10/02/2026 15:38:00;10/02/2026 15:48:00;10min;1;1;C;189.575,00;189.570,00;192.300,00;Sim;-1,00;-5,00;112;-1,00;-5,00;0,00;0,00;0,00;42min;-237,00 +WINJ26;10/02/2026 17:16:00;10/02/2026 17:22:00;6min;1;1;V;190.515,00;190.475,00;192.300,00;No;-8,00;-40,00;113;-8,00;-40,00;0,00;0,00;0,00;1h38min;-245,00 +WINJ26;10/02/2026 17:24:00;10/02/2026 17:30:00;6min;1;1;V;190.565,00;190.515,00;192.300,00;Sim;-10,00;-50,00;114;-10,00;-50,00;0,00;0,00;0,00;8min;-255,00 +WINJ26;11/02/2026 09:16:00;11/02/2026 09:20:00;4min;1;1;V;191.770,00;191.810,00;192.300,00;Sim;8,00;40,00;115;8,00;40,00;0,00;0,00;0,00;15h52min;-247,00 +WINJ26;11/02/2026 09:46:00;11/02/2026 10:08:00;22min;1;1;V;192.100,00;192.195,00;192.300,00;Sim;19,00;95,00;116;19,00;95,00;0,00;0,00;0,00;30min;-228,00 +WINJ26;11/02/2026 11:20:00;11/02/2026 11:26:00;6min;1;1;V;193.300,00;193.285,00;192.300,00;Sim;-3,00;-15,00;117;-3,00;-15,00;0,00;0,00;0,00;1h34min;-231,00 +WINJ26;11/02/2026 12:56:00;11/02/2026 13:18:00;22min;1;1;V;194.295,00;193.280,00;192.300,00;No;-203,00;-1.015,00;118;-203,00;-1.015,00;0,00;0,00;0,00;1h36min;-434,00 +WINJ26;11/02/2026 13:54:00;11/02/2026 14:02:00;8min;1;1;V;194.450,00;194.740,00;192.300,00;Sim;58,00;290,00;119;58,00;290,00;0,00;0,00;0,00;58min;-376,00 +WINJ26;11/02/2026 15:38:00;11/02/2026 16:00:00;22min;1;1;C;193.700,00;193.695,00;192.300,00;No;-1,00;-5,00;120;-1,00;-5,00;0,00;0,00;0,00;1h44min;-377,00 +WINJ26;11/02/2026 16:18:00;11/02/2026 16:40:00;22min;1;1;V;194.370,00;194.360,00;192.300,00;No;-2,00;-10,00;121;-2,00;-10,00;0,00;0,00;0,00;40min;-379,00 +WINJ26;11/02/2026 17:14:00;11/02/2026 17:28:00;14min;1;1;C;193.865,00;194.025,00;192.300,00;No;32,00;160,00;122;32,00;160,00;0,00;0,00;0,00;56min;-347,00 +WINJ26;11/02/2026 17:38:00;11/02/2026 17:40:00;2min;1;1;V;194.315,00;194.330,00;192.300,00;No;3,00;15,00;123;3,00;15,00;0,00;0,00;0,00;24min;-344,00 +WINJ26;11/02/2026 17:42:00;11/02/2026 17:50:00;8min;1;1;V;194.075,00;194.365,00;192.300,00;Sim;58,00;290,00;124;58,00;290,00;0,00;0,00;0,00;4min;-286,00 +WINJ26;12/02/2026 09:02:00;12/02/2026 09:04:00;2min;1;1;V;193.330,00;194.380,00;192.300,00;Sim;210,00;1.050,00;125;210,00;1.050,00;0,00;0,00;0,00;15h20min;-76,00 +WINJ26;12/02/2026 11:22:00;12/02/2026 11:32:00;10min;1;1;V;193.405,00;193.830,00;192.300,00;No;85,00;425,00;126;85,00;425,00;0,00;0,00;0,00;2h20min;9,00 +WINJ26;12/02/2026 12:16:00;12/02/2026 12:22:00;6min;1;1;V;193.620,00;194.010,00;192.300,00;Sim;78,00;390,00;127;78,00;390,00;0,00;0,00;0,00;54min;87,00 +WINJ26;12/02/2026 13:20:00;12/02/2026 13:38:00;18min;1;1;C;192.680,00;192.905,00;192.300,00;Sim;45,00;225,00;128;45,00;225,00;0,00;0,00;0,00;1h4min;132,00 +WINJ26;12/02/2026 15:38:00;12/02/2026 15:42:00;4min;1;1;C;191.185,00;191.430,00;192.300,00;Sim;49,00;245,00;129;49,00;245,00;0,00;0,00;0,00;2h18min;181,00 +WINJ26;13/02/2026 09:28:00;13/02/2026 09:46:00;18min;1;1;C;189.335,00;189.585,00;192.300,00;Sim;50,00;250,00;130;50,00;250,00;0,00;0,00;0,00;17h50min;231,00 +WINJ26;13/02/2026 11:36:00;13/02/2026 11:46:00;10min;1;1;C;188.555,00;188.625,00;192.300,00;Sim;14,00;70,00;131;14,00;70,00;0,00;0,00;0,00;2h8min;245,00 +WINJ26;13/02/2026 12:38:00;13/02/2026 12:48:00;10min;1;1;V;188.760,00;189.400,00;192.300,00;No;128,00;640,00;132;128,00;640,00;0,00;0,00;0,00;1h2min;373,00 +WINJ26;13/02/2026 18:20:00;18/02/2026 13:16:00;4d18h;1;1;V;190.390,00;190.490,00;192.300,00;Sim;20,00;100,00;133;20,00;100,00;0,00;0,00;0,00;5h42min;393,00 +WINJ26;18/02/2026 14:06:00;18/02/2026 14:16:00;10min;1;1;C;189.710,00;189.960,00;192.300,00;No;50,00;250,00;134;50,00;250,00;0,00;0,00;0,00;4d19h;443,00 +WINJ26;18/02/2026 16:20:00;18/02/2026 16:32:00;12min;1;1;C;189.005,00;188.940,00;192.300,00;Sim;-13,00;-65,00;135;-13,00;-65,00;0,00;0,00;0,00;2h14min;430,00 +WINJ26;18/02/2026 17:04:00;18/02/2026 17:14:00;10min;1;1;V;189.055,00;189.375,00;192.300,00;No;64,00;320,00;136;64,00;320,00;0,00;0,00;0,00;44min;494,00 +WINJ26;18/02/2026 18:00:00;18/02/2026 18:08:00;8min;1;1;V;190.005,00;189.910,00;192.300,00;Sim;-19,00;-95,00;137;-19,00;-95,00;0,00;0,00;0,00;56min;475,00 +WINJ26;19/02/2026 12:14:00;19/02/2026 12:36:00;22min;1;1;V;191.950,00;191.580,00;192.300,00;Sim;-74,00;-370,00;138;-74,00;-370,00;0,00;0,00;0,00;18h14min;401,00 +WINJ26;19/02/2026 12:38:00;19/02/2026 13:00:00;22min;1;1;V;192.285,00;192.005,00;192.300,00;Sim;-56,00;-280,00;139;-56,00;-280,00;0,00;0,00;0,00;24min;345,00 +WINJ26;19/02/2026 14:22:00;19/02/2026 14:38:00;16min;1;1;V;192.280,00;192.415,00;192.300,00;Sim;27,00;135,00;140;27,00;135,00;0,00;0,00;0,00;1h44min;372,00 +WINJ26;19/02/2026 15:04:00;19/02/2026 15:14:00;10min;1;1;C;192.015,00;192.155,00;192.300,00;No;28,00;140,00;141;28,00;140,00;0,00;0,00;0,00;42min;400,00 +WINJ26;19/02/2026 17:40:00;19/02/2026 17:50:00;10min;1;1;V;192.085,00;192.035,00;192.300,00;No;-10,00;-50,00;142;-10,00;-50,00;0,00;0,00;0,00;2h36min;390,00 +WINJ26;19/02/2026 18:10:00;19/02/2026 18:22:00;12min;1;1;V;192.155,00;192.300,00;192.300,00;Sim;29,00;145,00;143;29,00;145,00;0,00;0,00;0,00;30min;419,00 +WINJ26;20/02/2026 09:26:00;20/02/2026 09:34:00;8min;1;1;C;191.090,00;190.870,00;192.300,00;Sim;-44,00;-220,00;144;-44,00;-220,00;0,00;0,00;0,00;15h16min;375,00 +WINJ26;20/02/2026 09:36:00;20/02/2026 09:58:00;22min;1;1;C;190.920,00;190.720,00;192.300,00;Sim;-40,00;-200,00;145;-40,00;-200,00;0,00;0,00;0,00;10min;335,00 +WINJ26;20/02/2026 11:30:00;20/02/2026 11:36:00;6min;1;1;V;191.210,00;191.115,00;192.300,00;No;-19,00;-95,00;146;-19,00;-95,00;0,00;0,00;0,00;1h54min;316,00 +WINJ26;20/02/2026 15:00:00;20/02/2026 15:22:00;22min;1;1;V;192.525,00;192.435,00;192.300,00;Sim;-18,00;-90,00;147;-18,00;-90,00;0,00;0,00;0,00;3h30min;298,00 +WINJ26;20/02/2026 17:08:00;20/02/2026 17:18:00;10min;1;1;V;194.375,00;194.055,00;192.300,00;Sim;-64,00;-320,00;148;-64,00;-320,00;0,00;0,00;0,00;2h8min;234,00 +WINJ26;20/02/2026 17:22:00;20/02/2026 17:30:00;8min;1;1;V;194.065,00;194.310,00;192.300,00;Sim;49,00;245,00;149;49,00;245,00;0,00;0,00;0,00;14min;283,00 +WINJ26;23/02/2026 09:20:00;23/02/2026 09:42:00;22min;1;1;C;192.780,00;192.695,00;192.300,00;No;-17,00;-85,00;150;-17,00;-85,00;0,00;0,00;0,00;2d15h;266,00 +WINJ26;23/02/2026 11:40:00;23/02/2026 12:02:00;22min;1;1;V;194.460,00;193.930,00;192.300,00;No;-106,00;-530,00;151;-106,00;-530,00;0,00;0,00;0,00;2h20min;160,00 +WINJ26;23/02/2026 15:14:00;23/02/2026 15:24:00;10min;1;1;V;192.835,00;192.840,00;192.300,00;No;1,00;5,00;152;1,00;5,00;0,00;0,00;0,00;3h34min;161,00 +WINJ26;23/02/2026 15:30:00;23/02/2026 15:38:00;8min;1;1;V;192.765,00;192.890,00;192.300,00;Sim;25,00;125,00;153;25,00;125,00;0,00;0,00;0,00;16min;186,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv new file mode 100644 index 0000000..a707b91 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv @@ -0,0 +1,113 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;05/11/2025 17:55:00;06/11/2025 14:00:00;20h5min;1;1;V;162.000,00;161.980,00;192.300,00;No;-4,00;-20,00;1;-4,00;-20,00;0,00;0,00;0,00; - ;-4,00 +WINJ26;10/11/2025 10:10:00;10/11/2025 17:30:00;7h20min;1;1;V;163.300,00;163.235,00;192.300,00;Sim;-13,00;-65,00;2;-13,00;-65,00;0,00;0,00;0,00;4d16h;-17,00 +WINJ26;26/11/2025 10:40:00;26/11/2025 13:25:00;2h45min;1;1;V;165.600,00;165.000,00;192.300,00;Sim;-120,00;-600,00;3;-120,00;-600,00;0,00;0,00;0,00;16d;-137,00 +WINJ26;03/12/2025 09:10:00;04/12/2025 09:00:00;23h50min;1;1;V;169.480,00;168.930,00;192.300,00;Sim;-110,00;-550,00;4;-110,00;-550,00;0,00;0,00;0,00;6d22h;-247,00 +WINJ26;05/12/2025 13:45:00;05/12/2025 15:25:00;1h40min;1;1;C;168.350,00;167.000,00;192.300,00;No;-270,00;-1.350,00;5;-270,00;-1.350,00;0,00;0,00;0,00;2d4h;-517,00 +WINJ26;18/12/2025 16:50:00;18/12/2025 17:20:00;30min;1;1;C;164.320,00;164.390,00;192.300,00;Sim;14,00;70,00;6;14,00;70,00;0,00;0,00;0,00;13d3h;-503,00 +WINJ26;19/12/2025 11:05:00;19/12/2025 12:00:00;55min;1;1;V;165.800,00;165.365,00;192.300,00;No;-87,00;-435,00;7;-87,00;-435,00;0,00;0,00;0,00;18h15min;-590,00 +WINJ26;19/12/2025 12:05:00;19/12/2025 12:40:00;35min;1;1;V;165.630,00;165.800,00;192.300,00;Sim;34,00;170,00;8;34,00;170,00;0,00;0,00;0,00;1h;-556,00 +WINJ26;19/12/2025 14:50:00;19/12/2025 15:15:00;25min;1;1;C;165.180,00;165.190,00;192.300,00;No;2,00;10,00;9;2,00;10,00;0,00;0,00;0,00;2h45min;-554,00 +WINJ26;23/12/2025 11:10:00;23/12/2025 11:25:00;15min;1;1;V;165.325,00;165.960,00;192.300,00;Sim;127,00;635,00;10;127,00;635,00;0,00;0,00;0,00;3d20h;-427,00 +WINJ26;23/12/2025 12:00:00;23/12/2025 12:55:00;55min;1;1;V;166.360,00;166.130,00;192.300,00;Sim;-46,00;-230,00;11;-46,00;-230,00;0,00;0,00;0,00;50min;-473,00 +WINJ26;26/12/2025 09:25:00;26/12/2025 10:00:00;35min;1;1;C;165.655,00;165.700,00;192.300,00;No;9,00;45,00;12;9,00;45,00;0,00;0,00;0,00;2d21h;-464,00 +WINJ26;26/12/2025 15:05:00;26/12/2025 15:20:00;15min;1;1;V;166.480,00;166.580,00;192.300,00;Sim;20,00;100,00;13;20,00;100,00;0,00;0,00;0,00;5h40min;-444,00 +WINJ26;29/12/2025 09:10:00;29/12/2025 09:20:00;10min;1;1;V;167.240,00;167.375,00;192.300,00;Sim;27,00;135,00;14;27,00;135,00;0,00;0,00;0,00;2d18h;-417,00 +WINJ26;30/12/2025 09:25:00;30/12/2025 10:00:00;35min;1;1;V;167.590,00;167.545,00;192.300,00;Sim;-9,00;-45,00;15;-9,00;-45,00;0,00;0,00;0,00;1d;-426,00 +WINJ26;30/12/2025 10:20:00;30/12/2025 10:45:00;25min;1;1;V;167.570,00;167.925,00;192.300,00;Sim;71,00;355,00;16;71,00;355,00;0,00;0,00;0,00;55min;-355,00 +WINJ26;30/12/2025 17:55:00;30/12/2025 18:00:00;5min;1;1;C;167.350,00;167.355,00;192.300,00;No;1,00;5,00;17;1,00;5,00;0,00;0,00;0,00;7h35min;-354,00 +WINJ26;30/12/2025 18:10:00;02/01/2026 09:05:00;2d14h;1;1;C;167.155,00;167.910,00;192.300,00;Sim;151,00;755,00;18;151,00;755,00;0,00;0,00;0,00;15min;-203,00 +WINJ26;05/01/2026 09:40:00;05/01/2026 09:50:00;10min;1;1;V;166.655,00;166.785,00;192.300,00;No;26,00;130,00;19;26,00;130,00;0,00;0,00;0,00;5d15h;-177,00 +WINJ26;05/01/2026 12:30:00;05/01/2026 12:40:00;10min;1;1;V;166.820,00;166.940,00;192.300,00;Sim;24,00;120,00;20;24,00;120,00;0,00;0,00;0,00;2h50min;-153,00 +WINJ26;05/01/2026 13:45:00;05/01/2026 14:30:00;45min;1;1;V;167.400,00;167.265,00;192.300,00;Sim;-27,00;-135,00;21;-27,00;-135,00;0,00;0,00;0,00;1h15min;-180,00 +WINJ26;05/01/2026 14:40:00;05/01/2026 15:00:00;20min;1;1;V;167.720,00;167.520,00;192.300,00;Sim;-40,00;-200,00;22;-40,00;-200,00;0,00;0,00;0,00;55min;-220,00 +WINJ26;05/01/2026 15:15:00;05/01/2026 15:35:00;20min;1;1;V;167.705,00;167.695,00;192.300,00;Sim;-2,00;-10,00;23;-2,00;-10,00;0,00;0,00;0,00;35min;-222,00 +WINJ26;06/01/2026 09:55:00;06/01/2026 10:40:00;45min;1;1;V;169.600,00;168.835,00;192.300,00;Sim;-153,00;-765,00;24;-153,00;-765,00;0,00;0,00;0,00;18h40min;-375,00 +WINJ26;07/01/2026 10:30:00;07/01/2026 11:25:00;55min;1;1;C;168.425,00;168.050,00;192.300,00;No;-75,00;-375,00;25;-75,00;-375,00;0,00;0,00;0,00;1d;-450,00 +WINJ26;07/01/2026 12:10:00;07/01/2026 12:50:00;40min;1;1;C;167.475,00;167.725,00;192.300,00;Sim;50,00;250,00;26;50,00;250,00;0,00;0,00;0,00;1h40min;-400,00 +WINJ26;08/01/2026 09:10:00;08/01/2026 09:20:00;10min;1;1;C;167.300,00;167.500,00;192.300,00;Sim;40,00;200,00;27;40,00;200,00;0,00;0,00;0,00;21h;-360,00 +WINJ26;08/01/2026 11:40:00;08/01/2026 12:00:00;20min;1;1;V;167.765,00;168.240,00;192.300,00;No;95,00;475,00;28;95,00;475,00;0,00;0,00;0,00;2h30min;-265,00 +WINJ26;09/01/2026 10:45:00;09/01/2026 11:25:00;40min;1;1;V;168.770,00;169.270,00;192.300,00;Sim;100,00;500,00;29;100,00;500,00;0,00;0,00;0,00;23h5min;-165,00 +WINJ26;09/01/2026 16:10:00;09/01/2026 17:05:00;55min;1;1;C;169.155,00;169.040,00;192.300,00;No;-23,00;-115,00;30;-23,00;-115,00;0,00;0,00;0,00;5h25min;-188,00 +WINJ26;09/01/2026 18:00:00;12/01/2026 09:05:00;2d15h;1;1;C;168.675,00;168.590,00;192.300,00;Sim;-17,00;-85,00;31;-17,00;-85,00;0,00;0,00;0,00;1h50min;-205,00 +WINJ26;12/01/2026 11:00:00;12/01/2026 11:35:00;35min;1;1;C;167.985,00;168.345,00;192.300,00;Sim;72,00;360,00;32;72,00;360,00;0,00;0,00;0,00;2d17h;-133,00 +WINJ26;13/01/2026 10:20:00;13/01/2026 10:35:00;15min;1;1;C;167.580,00;167.805,00;192.300,00;Sim;45,00;225,00;33;45,00;225,00;0,00;0,00;0,00;23h20min;-88,00 +WINJ26;14/01/2026 09:30:00;14/01/2026 10:25:00;55min;1;1;V;168.325,00;167.920,00;192.300,00;No;-81,00;-405,00;34;-81,00;-405,00;0,00;0,00;0,00;23h10min;-169,00 +WINJ26;14/01/2026 15:25:00;14/01/2026 16:20:00;55min;1;1;V;169.715,00;169.200,00;192.300,00;Sim;-103,00;-515,00;35;-103,00;-515,00;0,00;0,00;0,00;5h55min;-272,00 +WINJ26;14/01/2026 16:25:00;14/01/2026 17:10:00;45min;1;1;V;169.685,00;169.725,00;192.300,00;Sim;8,00;40,00;36;8,00;40,00;0,00;0,00;0,00;1h;-264,00 +WINJ26;14/01/2026 17:45:00;14/01/2026 18:20:00;35min;1;1;V;170.490,00;170.280,00;192.300,00;Sim;-42,00;-210,00;37;-42,00;-210,00;0,00;0,00;0,00;1h20min;-306,00 +WINJ26;15/01/2026 15:25:00;15/01/2026 16:15:00;50min;1;1;V;171.050,00;171.245,00;192.300,00;Sim;39,00;195,00;38;39,00;195,00;0,00;0,00;0,00;21h40min;-267,00 +WINJ26;15/01/2026 17:55:00;15/01/2026 18:00:00;5min;1;1;C;170.595,00;170.670,00;192.300,00;No;15,00;75,00;39;15,00;75,00;0,00;0,00;0,00;2h30min;-252,00 +WINJ26;16/01/2026 10:50:00;16/01/2026 10:55:00;5min;1;1;C;170.270,00;170.260,00;192.300,00;Sim;-2,00;-10,00;40;-2,00;-10,00;0,00;0,00;0,00;16h55min;-254,00 +WINJ26;16/01/2026 11:35:00;16/01/2026 11:45:00;10min;1;1;C;169.550,00;169.675,00;192.300,00;Sim;25,00;125,00;41;25,00;125,00;0,00;0,00;0,00;45min;-229,00 +WINJ26;20/01/2026 09:05:00;20/01/2026 10:00:00;55min;1;1;C;169.245,00;169.010,00;192.300,00;Sim;-47,00;-235,00;42;-47,00;-235,00;0,00;0,00;0,00;3d21h;-276,00 +WINJ26;20/01/2026 11:55:00;20/01/2026 12:15:00;20min;1;1;V;170.305,00;170.690,00;192.300,00;No;77,00;385,00;43;77,00;385,00;0,00;0,00;0,00;2h50min;-199,00 +WINJ26;20/01/2026 12:50:00;20/01/2026 13:40:00;50min;1;1;V;171.280,00;171.015,00;192.300,00;Sim;-53,00;-265,00;44;-53,00;-265,00;0,00;0,00;0,00;55min;-252,00 +WINJ26;20/01/2026 17:55:00;21/01/2026 09:00:00;15h5min;1;1;V;170.910,00;171.105,00;192.300,00;Sim;39,00;195,00;45;39,00;195,00;0,00;0,00;0,00;5h5min;-213,00 +WINJ26;21/01/2026 10:30:00;21/01/2026 10:45:00;15min;1;1;V;173.520,00;173.685,00;192.300,00;Sim;33,00;165,00;46;33,00;165,00;0,00;0,00;0,00;16h35min;-180,00 +WINJ26;21/01/2026 11:10:00;21/01/2026 12:05:00;55min;1;1;V;174.605,00;174.045,00;192.300,00;Sim;-112,00;-560,00;47;-112,00;-560,00;0,00;0,00;0,00;40min;-292,00 +WINJ26;21/01/2026 12:20:00;21/01/2026 12:35:00;15min;1;1;V;174.325,00;174.675,00;192.300,00;Sim;70,00;350,00;48;70,00;350,00;0,00;0,00;0,00;1h10min;-222,00 +WINJ26;21/01/2026 13:10:00;21/01/2026 13:55:00;45min;1;1;V;175.030,00;174.910,00;192.300,00;Sim;-24,00;-120,00;49;-24,00;-120,00;0,00;0,00;0,00;50min;-246,00 +WINJ26;21/01/2026 15:30:00;21/01/2026 16:20:00;50min;1;1;V;175.715,00;175.380,00;192.300,00;Sim;-67,00;-335,00;50;-67,00;-335,00;0,00;0,00;0,00;2h20min;-313,00 +WINJ26;21/01/2026 16:55:00;21/01/2026 17:50:00;55min;1;1;V;177.000,00;176.275,00;192.300,00;Sim;-145,00;-725,00;51;-145,00;-725,00;0,00;0,00;0,00;1h25min;-458,00 +WINJ26;22/01/2026 09:20:00;22/01/2026 10:15:00;55min;1;1;V;177.835,00;177.720,00;192.300,00;Sim;-23,00;-115,00;52;-23,00;-115,00;0,00;0,00;0,00;16h25min;-481,00 +WINJ26;22/01/2026 11:10:00;22/01/2026 12:05:00;55min;1;1;V;179.835,00;178.660,00;192.300,00;Sim;-235,00;-1.175,00;53;-235,00;-1.175,00;0,00;0,00;0,00;1h50min;-716,00 +WINJ26;22/01/2026 12:55:00;22/01/2026 13:50:00;55min;1;1;V;182.005,00;182.060,00;192.300,00;Sim;11,00;55,00;54;11,00;55,00;0,00;0,00;0,00;1h45min;-705,00 +WINJ26;23/01/2026 09:15:00;23/01/2026 10:05:00;50min;1;1;V;181.300,00;181.975,00;192.300,00;No;135,00;675,00;55;135,00;675,00;0,00;0,00;0,00;20h20min;-570,00 +WINJ26;23/01/2026 16:25:00;23/01/2026 17:20:00;55min;1;1;V;184.945,00;183.190,00;192.300,00;Sim;-351,00;-1.755,00;56;-351,00;-1.755,00;0,00;0,00;0,00;7h10min;-921,00 +WINJ26;26/01/2026 09:10:00;26/01/2026 09:30:00;20min;1;1;V;185.365,00;186.135,00;192.300,00;Sim;154,00;770,00;57;154,00;770,00;0,00;0,00;0,00;2d16h;-767,00 +WINJ26;26/01/2026 14:45:00;26/01/2026 15:00:00;15min;1;1;V;183.500,00;184.130,00;192.300,00;No;126,00;630,00;58;126,00;630,00;0,00;0,00;0,00;5h35min;-641,00 +WINJ26;27/01/2026 09:10:00;27/01/2026 10:05:00;55min;1;1;V;185.810,00;185.260,00;192.300,00;Sim;-110,00;-550,00;59;-110,00;-550,00;0,00;0,00;0,00;18h25min;-751,00 +WINJ26;27/01/2026 10:45:00;27/01/2026 11:35:00;50min;1;1;V;187.300,00;186.480,00;192.300,00;Sim;-164,00;-820,00;60;-164,00;-820,00;0,00;0,00;0,00;1h35min;-915,00 +WINJ26;28/01/2026 16:00:00;28/01/2026 16:25:00;25min;1;1;C;187.955,00;188.260,00;192.300,00;No;61,00;305,00;61;61,00;305,00;0,00;0,00;0,00;1d5h;-854,00 +WINJ26;28/01/2026 17:45:00;28/01/2026 18:10:00;25min;1;1;V;189.915,00;189.375,00;192.300,00;Sim;-108,00;-540,00;62;-108,00;-540,00;0,00;0,00;0,00;1h45min;-962,00 +WINJ26;29/01/2026 09:05:00;29/01/2026 10:00:00;55min;1;1;V;191.650,00;191.840,00;192.300,00;Sim;38,00;190,00;63;38,00;190,00;0,00;0,00;0,00;15h20min;-924,00 +WINJ26;29/01/2026 12:20:00;29/01/2026 13:00:00;40min;1;1;C;188.835,00;186.785,00;192.300,00;No;-410,00;-2.050,00;64;-410,00;-2.050,00;0,00;0,00;0,00;3h15min;-1.334,00 +WINJ26;30/01/2026 09:15:00;30/01/2026 10:10:00;55min;1;1;C;187.195,00;187.415,00;192.300,00;Sim;44,00;220,00;65;44,00;220,00;0,00;0,00;0,00;20h55min;-1.290,00 +WINJ26;02/02/2026 10:50:00;02/02/2026 11:05:00;15min;1;1;V;187.550,00;187.450,00;192.300,00;No;-20,00;-100,00;66;-20,00;-100,00;0,00;0,00;0,00;3d1h;-1.310,00 +WINJ26;02/02/2026 17:35:00;03/02/2026 09:05:00;15h30min;1;1;V;188.565,00;187.110,00;192.300,00;No;-291,00;-1.455,00;67;-291,00;-1.455,00;0,00;0,00;0,00;6h45min;-1.601,00 +WINJ26;03/02/2026 09:25:00;03/02/2026 10:20:00;55min;1;1;V;189.145,00;189.180,00;192.300,00;Sim;7,00;35,00;68;7,00;35,00;0,00;0,00;0,00;15h50min;-1.594,00 +WINJ26;03/02/2026 10:55:00;03/02/2026 11:50:00;55min;1;1;V;191.935,00;190.400,00;192.300,00;Sim;-307,00;-1.535,00;69;-307,00;-1.535,00;0,00;0,00;0,00;1h30min;-1.901,00 +WINJ26;04/02/2026 09:40:00;04/02/2026 10:10:00;30min;1;1;C;189.085,00;188.940,00;192.300,00;No;-29,00;-145,00;70;-29,00;-145,00;0,00;0,00;0,00;22h45min;-1.930,00 +WINJ26;04/02/2026 11:10:00;04/02/2026 12:05:00;55min;1;1;C;188.335,00;187.525,00;192.300,00;Sim;-162,00;-810,00;71;-162,00;-810,00;0,00;0,00;0,00;1h30min;-2.092,00 +WINJ26;04/02/2026 13:10:00;04/02/2026 13:15:00;5min;1;1;C;186.810,00;186.875,00;192.300,00;Sim;13,00;65,00;72;13,00;65,00;0,00;0,00;0,00;2h;-2.079,00 +WINJ26;04/02/2026 13:25:00;04/02/2026 13:30:00;5min;1;1;C;186.490,00;186.550,00;192.300,00;Sim;12,00;60,00;73;12,00;60,00;0,00;0,00;0,00;15min;-2.067,00 +WINJ26;04/02/2026 13:50:00;04/02/2026 14:35:00;45min;1;1;C;186.110,00;185.515,00;192.300,00;Sim;-119,00;-595,00;74;-119,00;-595,00;0,00;0,00;0,00;25min;-2.186,00 +WINJ26;04/02/2026 15:15:00;04/02/2026 15:40:00;25min;1;1;C;185.255,00;185.330,00;192.300,00;Sim;15,00;75,00;75;15,00;75,00;0,00;0,00;0,00;1h25min;-2.171,00 +WINJ26;05/02/2026 17:35:00;05/02/2026 17:45:00;10min;1;1;C;186.445,00;186.300,00;192.300,00;No;-29,00;-145,00;76;-29,00;-145,00;0,00;0,00;0,00;1d2h;-2.200,00 +WINJ26;05/02/2026 17:50:00;05/02/2026 18:00:00;10min;1;1;C;186.410,00;186.585,00;192.300,00;Sim;35,00;175,00;77;35,00;175,00;0,00;0,00;0,00;15min;-2.165,00 +WINJ26;06/02/2026 15:30:00;06/02/2026 15:35:00;5min;1;1;C;186.340,00;186.315,00;192.300,00;Sim;-5,00;-25,00;78;-5,00;-25,00;0,00;0,00;0,00;21h40min;-2.170,00 +WINJ26;09/02/2026 14:35:00;09/02/2026 15:30:00;55min;1;1;V;189.885,00;189.590,00;192.300,00;No;-59,00;-295,00;79;-59,00;-295,00;0,00;0,00;0,00;2d23h;-2.229,00 +WINJ26;09/02/2026 15:45:00;09/02/2026 16:05:00;20min;1;1;V;190.135,00;189.920,00;192.300,00;Sim;-43,00;-215,00;80;-43,00;-215,00;0,00;0,00;0,00;1h10min;-2.272,00 +WINJ26;09/02/2026 16:15:00;09/02/2026 16:50:00;35min;1;1;V;190.320,00;190.150,00;192.300,00;Sim;-34,00;-170,00;81;-34,00;-170,00;0,00;0,00;0,00;30min;-2.306,00 +WINJ26;09/02/2026 17:10:00;09/02/2026 17:25:00;15min;1;1;V;190.425,00;190.675,00;192.300,00;Sim;50,00;250,00;82;50,00;250,00;0,00;0,00;0,00;55min;-2.256,00 +WINJ26;10/02/2026 12:35:00;10/02/2026 13:25:00;50min;1;1;V;190.585,00;191.030,00;192.300,00;Sim;89,00;445,00;83;89,00;445,00;0,00;0,00;0,00;19h25min;-2.167,00 +WINJ26;10/02/2026 15:40:00;10/02/2026 16:35:00;55min;1;1;C;189.580,00;189.850,00;192.300,00;No;54,00;270,00;84;54,00;270,00;0,00;0,00;0,00;3h5min;-2.113,00 +WINJ26;10/02/2026 17:35:00;10/02/2026 17:45:00;10min;1;1;V;190.205,00;190.555,00;192.300,00;No;70,00;350,00;85;70,00;350,00;0,00;0,00;0,00;1h55min;-2.043,00 +WINJ26;11/02/2026 09:10:00;11/02/2026 10:05:00;55min;1;1;V;192.195,00;191.905,00;192.300,00;Sim;-58,00;-290,00;86;-58,00;-290,00;0,00;0,00;0,00;15h35min;-2.101,00 +WINJ26;11/02/2026 13:20:00;11/02/2026 14:10:00;50min;1;1;V;194.595,00;194.140,00;192.300,00;Sim;-91,00;-455,00;87;-91,00;-455,00;0,00;0,00;0,00;4h10min;-2.192,00 +WINJ26;11/02/2026 14:15:00;11/02/2026 15:05:00;50min;1;1;V;194.340,00;194.640,00;192.300,00;Sim;60,00;300,00;88;60,00;300,00;0,00;0,00;0,00;55min;-2.132,00 +WINJ26;12/02/2026 13:25:00;12/02/2026 14:20:00;55min;1;1;C;192.615,00;192.350,00;192.300,00;No;-53,00;-265,00;89;-53,00;-265,00;0,00;0,00;0,00;23h10min;-2.185,00 +WINJ26;13/02/2026 09:55:00;13/02/2026 10:50:00;55min;1;1;C;189.145,00;189.230,00;192.300,00;Sim;17,00;85,00;90;17,00;85,00;0,00;0,00;0,00;20h30min;-2.168,00 +WINJ26;18/02/2026 18:05:00;18/02/2026 18:10:00;5min;1;1;V;190.070,00;189.985,00;192.300,00;No;-17,00;-85,00;91;-17,00;-85,00;0,00;0,00;0,00;5d8h;-2.185,00 +WINJ26;19/02/2026 09:15:00;19/02/2026 09:25:00;10min;1;1;V;190.250,00;190.305,00;192.300,00;Sim;11,00;55,00;92;11,00;55,00;0,00;0,00;0,00;15h10min;-2.174,00 +WINJ26;19/02/2026 12:15:00;19/02/2026 12:20:00;5min;1;1;V;191.465,00;191.340,00;192.300,00;Sim;-25,00;-125,00;93;-25,00;-125,00;0,00;0,00;0,00;3h;-2.199,00 +WINJ26;19/02/2026 12:35:00;19/02/2026 13:30:00;55min;1;1;V;192.240,00;191.810,00;192.300,00;Sim;-86,00;-430,00;94;-86,00;-430,00;0,00;0,00;0,00;20min;-2.285,00 +WINJ26;20/02/2026 09:25:00;20/02/2026 10:20:00;55min;1;1;C;191.075,00;190.810,00;192.300,00;No;-53,00;-265,00;95;-53,00;-265,00;0,00;0,00;0,00;20h50min;-2.338,00 +WINJ26;20/02/2026 17:20:00;20/02/2026 17:35:00;15min;1;1;V;194.120,00;194.325,00;192.300,00;Sim;41,00;205,00;96;41,00;205,00;0,00;0,00;0,00;7h55min;-2.297,00 +WINJ26;23/02/2026 09:40:00;23/02/2026 09:55:00;15min;1;1;C;192.830,00;192.700,00;192.300,00;No;-26,00;-130,00;97;-26,00;-130,00;0,00;0,00;0,00;2d16h;-2.323,00 +WINJ26;23/02/2026 13:05:00;23/02/2026 13:15:00;10min;1;1;C;192.440,00;192.295,00;192.300,00;Sim;-29,00;-145,00;98;-29,00;-145,00;0,00;0,00;0,00;3h25min;-2.352,00 +WINJ26;23/02/2026 15:30:00;23/02/2026 15:40:00;10min;1;1;V;192.785,00;192.890,00;192.300,00;No;21,00;105,00;99;21,00;105,00;0,00;0,00;0,00;2h25min;-2.331,00 +WINJ26;25/02/2026 12:00:00;25/02/2026 12:55:00;55min;1;1;C;194.525,00;194.485,00;192.300,00;No;-8,00;-40,00;100;-8,00;-40,00;0,00;0,00;0,00;1d20h;-2.339,00 +WINJ26;25/02/2026 15:55:00;25/02/2026 16:00:00;5min;1;1;C;194.365,00;194.310,00;192.300,00;Sim;-11,00;-55,00;101;-11,00;-55,00;0,00;0,00;0,00;3h55min;-2.350,00 +WINJ26;26/02/2026 16:25:00;26/02/2026 17:20:00;55min;1;1;V;194.310,00;194.160,00;192.300,00;Sim;-30,00;-150,00;102;-30,00;-150,00;0,00;0,00;0,00;1d;-2.380,00 +WINJ26;27/02/2026 14:35:00;27/02/2026 15:10:00;35min;1;1;C;192.515,00;192.710,00;192.300,00;Sim;39,00;195,00;103;39,00;195,00;0,00;0,00;0,00;22h10min;-2.341,00 +WINJ26;27/02/2026 16:35:00;27/02/2026 17:05:00;30min;1;1;C;191.990,00;191.855,00;192.300,00;Sim;-27,00;-135,00;104;-27,00;-135,00;0,00;0,00;0,00;2h;-2.368,00 +WINJ26;27/02/2026 17:15:00;27/02/2026 17:25:00;10min;1;1;C;191.830,00;192.145,00;192.300,00;Sim;63,00;315,00;105;63,00;315,00;0,00;0,00;0,00;40min;-2.305,00 +WINJ26;02/03/2026 09:50:00;02/03/2026 10:25:00;35min;1;1;C;190.195,00;190.965,00;192.300,00;Sim;154,00;770,00;106;154,00;770,00;0,00;0,00;0,00;2d16h;-2.151,00 +WINJ26;02/03/2026 16:25:00;02/03/2026 17:10:00;45min;1;1;V;192.110,00;193.030,00;192.300,00;No;184,00;920,00;107;184,00;920,00;0,00;0,00;0,00;6h35min;-1.967,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv new file mode 100644 index 0000000..cb794b9 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv @@ -0,0 +1,59 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;29/09/2025 11:45:00;29/09/2025 15:00:00;3h15min;1;1;V;156.340,00;156.600,00;192.245,00;No;52,00;260,00;1;52,00;260,00;0,00;0,00;0,00; - ;52,00 +WINJ26;03/11/2025 11:15:00;03/11/2025 16:45:00;5h30min;1;1;V;158.660,00;158.605,00;192.245,00;Sim;-11,00;-55,00;2;-11,00;-55,00;0,00;0,00;0,00;1m3d23h;41,00 +WINJ26;05/11/2025 17:45:00;06/11/2025 15:00:00;21h15min;1;1;V;161.750,00;161.900,00;192.245,00;Sim;30,00;150,00;3;30,00;150,00;0,00;0,00;0,00;2d6h;71,00 +WINJ26;11/11/2025 11:15:00;11/11/2025 14:00:00;2h45min;1;1;V;165.980,00;166.205,00;192.245,00;Sim;45,00;225,00;4;45,00;225,00;0,00;0,00;0,00;5d17h;116,00 +WINJ26;02/12/2025 18:15:00;03/12/2025 18:15:00;1d;1;1;V;169.345,00;168.805,00;192.245,00;Sim;-108,00;-540,00;5;-108,00;-540,00;0,00;0,00;0,00;21d7h;8,00 +WINJ26;04/12/2025 09:30:00;04/12/2025 12:45:00;3h15min;1;1;V;171.500,00;170.000,00;192.245,00;Sim;-300,00;-1.500,00;6;-300,00;-1.500,00;0,00;0,00;0,00;1d15h;-292,00 +WINJ26;17/12/2025 09:00:00;17/12/2025 11:45:00;2h45min;1;1;C;164.410,00;164.140,00;192.245,00;No;-54,00;-270,00;7;-54,00;-270,00;0,00;0,00;0,00;12d23h;-346,00 +WINJ26;19/12/2025 18:00:00;22/12/2025 09:00:00;2d15h;1;1;C;164.745,00;165.430,00;192.245,00;No;137,00;685,00;8;137,00;685,00;0,00;0,00;0,00;2d9h;-209,00 +WINJ26;22/12/2025 11:00:00;22/12/2025 11:15:00;15min;1;1;C;164.250,00;164.230,00;192.245,00;Sim;-4,00;-20,00;9;-4,00;-20,00;0,00;0,00;0,00;2d17h;-213,00 +WINJ26;22/12/2025 11:45:00;22/12/2025 12:15:00;30min;1;1;C;163.790,00;163.780,00;192.245,00;Sim;-2,00;-10,00;10;-2,00;-10,00;0,00;0,00;0,00;45min;-215,00 +WINJ26;23/12/2025 09:30:00;23/12/2025 10:45:00;1h15min;1;1;V;165.375,00;164.900,00;192.245,00;No;-95,00;-475,00;11;-95,00;-475,00;0,00;0,00;0,00;21h45min;-310,00 +WINJ26;23/12/2025 11:15:00;23/12/2025 12:30:00;1h15min;1;1;V;166.500,00;165.710,00;192.245,00;Sim;-158,00;-790,00;12;-158,00;-790,00;0,00;0,00;0,00;1h45min;-468,00 +WINJ26;23/12/2025 12:45:00;23/12/2025 13:00:00;15min;1;1;V;166.360,00;166.380,00;192.245,00;Sim;4,00;20,00;13;4,00;20,00;0,00;0,00;0,00;1h30min;-464,00 +WINJ26;29/12/2025 09:15:00;29/12/2025 10:30:00;1h15min;1;1;V;166.705,00;167.245,00;192.245,00;Sim;108,00;540,00;14;108,00;540,00;0,00;0,00;0,00;5d20h;-356,00 +WINJ26;30/12/2025 09:45:00;30/12/2025 11:45:00;2h;1;1;V;167.450,00;167.675,00;192.245,00;Sim;45,00;225,00;15;45,00;225,00;0,00;0,00;0,00;1d;-311,00 +WINJ26;02/01/2026 14:00:00;02/01/2026 15:45:00;1h45min;1;1;C;166.220,00;165.975,00;192.245,00;No;-49,00;-245,00;16;-49,00;-245,00;0,00;0,00;0,00;3d4h;-360,00 +WINJ26;06/01/2026 09:30:00;06/01/2026 11:45:00;2h15min;1;1;V;169.430,00;168.485,00;192.245,00;Sim;-189,00;-945,00;17;-189,00;-945,00;0,00;0,00;0,00;3d19h;-549,00 +WINJ26;07/01/2026 13:15:00;07/01/2026 16:00:00;2h45min;1;1;C;167.675,00;167.710,00;192.245,00;No;7,00;35,00;18;7,00;35,00;0,00;0,00;0,00;1d3h;-542,00 +WINJ26;08/01/2026 09:15:00;08/01/2026 09:45:00;30min;1;1;C;167.350,00;167.630,00;192.245,00;Sim;56,00;280,00;19;56,00;280,00;0,00;0,00;0,00;20h;-486,00 +WINJ26;09/01/2026 12:15:00;09/01/2026 13:00:00;45min;1;1;V;169.215,00;169.365,00;192.245,00;Sim;30,00;150,00;20;30,00;150,00;0,00;0,00;0,00;1d3h;-456,00 +WINJ26;09/01/2026 14:15:00;09/01/2026 15:30:00;1h15min;1;1;V;169.345,00;169.560,00;192.245,00;Sim;43,00;215,00;21;43,00;215,00;0,00;0,00;0,00;2h;-413,00 +WINJ26;12/01/2026 09:00:00;12/01/2026 09:15:00;15min;1;1;C;168.590,00;168.975,00;192.245,00;No;77,00;385,00;22;77,00;385,00;0,00;0,00;0,00;2d18h;-336,00 +WINJ26;12/01/2026 11:15:00;12/01/2026 11:45:00;30min;1;1;C;167.890,00;168.540,00;192.245,00;Sim;130,00;650,00;23;130,00;650,00;0,00;0,00;0,00;2h15min;-206,00 +WINJ26;13/01/2026 09:45:00;13/01/2026 12:30:00;2h45min;1;1;C;167.880,00;167.060,00;192.245,00;Sim;-164,00;-820,00;24;-164,00;-820,00;0,00;0,00;0,00;22h30min;-370,00 +WINJ26;14/01/2026 09:45:00;14/01/2026 11:15:00;1h30min;1;1;V;167.705,00;168.000,00;192.245,00;No;59,00;295,00;25;59,00;295,00;0,00;0,00;0,00;1d;-311,00 +WINJ26;14/01/2026 12:30:00;14/01/2026 13:00:00;30min;1;1;V;168.615,00;168.865,00;192.245,00;Sim;50,00;250,00;26;50,00;250,00;0,00;0,00;0,00;2h45min;-261,00 +WINJ26;15/01/2026 10:00:00;15/01/2026 11:30:00;1h30min;1;1;V;170.290,00;170.605,00;192.245,00;Sim;63,00;315,00;27;63,00;315,00;0,00;0,00;0,00;21h30min;-198,00 +WINJ26;16/01/2026 11:15:00;16/01/2026 13:00:00;1h45min;1;1;C;170.040,00;169.280,00;192.245,00;No;-152,00;-760,00;28;-152,00;-760,00;0,00;0,00;0,00;1d1h;-350,00 +WINJ26;20/01/2026 13:30:00;20/01/2026 15:00:00;1h30min;1;1;V;170.935,00;171.250,00;192.245,00;Sim;63,00;315,00;29;63,00;315,00;0,00;0,00;0,00;4d2h;-287,00 +WINJ26;21/01/2026 12:00:00;21/01/2026 14:45:00;2h45min;1;1;V;174.880,00;174.590,00;192.245,00;Sim;-58,00;-290,00;30;-58,00;-290,00;0,00;0,00;0,00;22h30min;-345,00 +WINJ26;21/01/2026 16:45:00;22/01/2026 10:00:00;17h15min;1;1;V;177.995,00;176.080,00;192.245,00;Sim;-383,00;-1.915,00;31;-383,00;-1.915,00;0,00;0,00;0,00;4h45min;-728,00 +WINJ26;22/01/2026 14:00:00;22/01/2026 14:30:00;30min;1;1;V;181.570,00;181.830,00;192.245,00;Sim;52,00;260,00;32;52,00;260,00;0,00;0,00;0,00;21h15min;-676,00 +WINJ26;27/01/2026 11:30:00;27/01/2026 12:45:00;1h15min;1;1;V;187.765,00;187.470,00;192.245,00;Sim;-59,00;-295,00;33;-59,00;-295,00;0,00;0,00;0,00;4d21h;-735,00 +WINJ26;28/01/2026 10:45:00;28/01/2026 11:45:00;1h;1;1;V;189.455,00;189.300,00;192.245,00;Sim;-31,00;-155,00;34;-31,00;-155,00;0,00;0,00;0,00;23h15min;-766,00 +WINJ26;28/01/2026 12:00:00;28/01/2026 12:30:00;30min;1;1;V;188.475,00;189.550,00;192.245,00;Sim;215,00;1.075,00;35;215,00;1.075,00;0,00;0,00;0,00;1h15min;-551,00 +WINJ26;30/01/2026 15:45:00;02/02/2026 09:00:00;2d17h;1;1;C;185.235,00;184.655,00;192.245,00;No;-116,00;-580,00;36;-116,00;-580,00;0,00;0,00;0,00;2d3h;-667,00 +WINJ26;03/02/2026 09:30:00;03/02/2026 10:30:00;1h;1;1;V;189.735,00;189.050,00;192.245,00;No;-137,00;-685,00;37;-137,00;-685,00;0,00;0,00;0,00;3d17h;-804,00 +WINJ26;03/02/2026 11:30:00;03/02/2026 14:15:00;2h45min;1;1;V;190.295,00;191.180,00;192.245,00;Sim;177,00;885,00;38;177,00;885,00;0,00;0,00;0,00;2h;-627,00 +WINJ26;04/02/2026 10:45:00;04/02/2026 13:30:00;2h45min;1;1;C;188.925,00;186.550,00;192.245,00;No;-475,00;-2.375,00;39;-475,00;-2.375,00;0,00;0,00;0,00;23h15min;-1.102,00 +WINJ26;04/02/2026 14:15:00;04/02/2026 17:00:00;2h45min;1;1;C;186.330,00;185.455,00;192.245,00;Sim;-175,00;-875,00;40;-175,00;-875,00;0,00;0,00;0,00;3h30min;-1.277,00 +WINJ26;05/02/2026 10:45:00;05/02/2026 12:15:00;1h30min;1;1;V;186.700,00;186.900,00;192.245,00;No;40,00;200,00;41;40,00;200,00;0,00;0,00;0,00;20h30min;-1.237,00 +WINJ26;09/02/2026 14:30:00;09/02/2026 15:00:00;30min;1;1;V;189.605,00;189.515,00;192.245,00;Sim;-18,00;-90,00;42;-18,00;-90,00;0,00;0,00;0,00;4d3h;-1.255,00 +WINJ26;09/02/2026 17:45:00;10/02/2026 09:15:00;15h30min;1;1;V;189.800,00;190.415,00;192.245,00;Sim;123,00;615,00;43;123,00;615,00;0,00;0,00;0,00;3h15min;-1.132,00 +WINJ26;11/02/2026 11:00:00;11/02/2026 13:45:00;2h45min;1;1;V;194.685,00;192.560,00;192.245,00;Sim;-425,00;-2.125,00;44;-425,00;-2.125,00;0,00;0,00;0,00;1d17h;-1.557,00 +WINJ26;11/02/2026 14:30:00;11/02/2026 15:45:00;1h15min;1;1;V;193.700,00;194.525,00;192.245,00;Sim;165,00;825,00;45;165,00;825,00;0,00;0,00;0,00;3h30min;-1.392,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 11:15:00;45min;1;1;C;189.095,00;188.765,00;192.245,00;No;-66,00;-330,00;46;-66,00;-330,00;0,00;0,00;0,00;1d20h;-1.458,00 +WINJ26;13/02/2026 11:45:00;13/02/2026 12:45:00;1h;1;1;C;188.385,00;188.780,00;192.245,00;Sim;79,00;395,00;47;79,00;395,00;0,00;0,00;0,00;1h15min;-1.379,00 +WINJ26;18/02/2026 13:15:00;18/02/2026 14:00:00;45min;1;1;V;189.975,00;190.590,00;192.245,00;No;123,00;615,00;48;123,00;615,00;0,00;0,00;0,00;5d1h;-1.256,00 +WINJ26;19/02/2026 13:30:00;19/02/2026 16:15:00;2h45min;1;1;V;191.930,00;192.240,00;192.245,00;Sim;62,00;310,00;49;62,00;310,00;0,00;0,00;0,00;1d;-1.194,00 +WINJ26;20/02/2026 10:15:00;20/02/2026 11:45:00;1h30min;1;1;C;190.735,00;191.325,00;192.245,00;No;118,00;590,00;50;118,00;590,00;0,00;0,00;0,00;20h45min;-1.076,00 +WINJ26;20/02/2026 12:30:00;20/02/2026 14:30:00;2h;1;1;V;191.415,00;192.160,00;192.245,00;No;149,00;745,00;51;149,00;745,00;0,00;0,00;0,00;2h15min;-927,00 +WINJ26;24/02/2026 13:00:00;24/02/2026 15:45:00;2h45min;1;1;V;195.165,00;194.750,00;192.245,00;Sim;-83,00;-415,00;52;-83,00;-415,00;0,00;0,00;0,00;4d;-1.010,00 +WINJ26;26/02/2026 12:00:00;26/02/2026 13:30:00;1h30min;1;1;C;193.350,00;193.930,00;192.245,00;No;116,00;580,00;53;116,00;580,00;0,00;0,00;0,00;1d23h;-894,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv new file mode 100644 index 0000000..bb93b20 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv @@ -0,0 +1,33 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;20/10/2025 12:00:00;21/10/2025 09:30:00;21h30min;1;1;V;153.200,00;153.725,00;192.185,00;No;105,00;525,00;1;105,00;525,00;0,00;0,00;0,00; - ;105,00 +WINJ26;23/10/2025 09:30:00;23/10/2025 12:30:00;3h;1;1;V;153.950,00;154.700,00;192.185,00;Sim;150,00;750,00;2;150,00;750,00;0,00;0,00;0,00;2d21h;255,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 09:30:00;1d15h;1;1;V;161.700,00;161.940,00;192.185,00;Sim;48,00;240,00;3;48,00;240,00;0,00;0,00;0,00;13d8h;303,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 11:00:00;2h;1;1;V;171.690,00;171.890,00;192.185,00;Sim;40,00;200,00;4;40,00;200,00;0,00;0,00;0,00;1m1d15h;343,00 +WINJ26;09/12/2025 11:00:00;09/12/2025 13:00:00;2h;1;1;C;163.150,00;164.830,00;192.185,00;No;336,00;1.680,00;5;336,00;1.680,00;0,00;0,00;0,00;4d2h;679,00 +WINJ26;16/12/2025 13:00:00;16/12/2025 15:00:00;2h;1;1;C;166.450,00;166.655,00;192.185,00;No;41,00;205,00;6;41,00;205,00;0,00;0,00;0,00;7d2h;720,00 +WINJ26;17/12/2025 11:00:00;17/12/2025 16:30:00;5h30min;1;1;C;163.230,00;163.670,00;192.185,00;Sim;88,00;440,00;7;88,00;440,00;0,00;0,00;0,00;22h;808,00 +WINJ26;23/12/2025 13:30:00;26/12/2025 09:30:00;2d20h;1;1;V;165.790,00;166.345,00;192.185,00;No;111,00;555,00;8;111,00;555,00;0,00;0,00;0,00;6d2h;919,00 +WINJ26;06/01/2026 11:00:00;06/01/2026 13:30:00;2h30min;1;1;V;169.405,00;169.355,00;192.185,00;Sim;-10,00;-50,00;9;-10,00;-50,00;0,00;0,00;0,00;13d21h;909,00 +WINJ26;06/01/2026 14:00:00;07/01/2026 10:00:00;20h;1;1;V;168.900,00;169.505,00;192.185,00;Sim;121,00;605,00;10;121,00;605,00;0,00;0,00;0,00;3h;1.030,00 +WINJ26;13/01/2026 13:30:00;13/01/2026 16:00:00;2h30min;1;1;C;167.085,00;167.235,00;192.185,00;No;30,00;150,00;11;30,00;150,00;0,00;0,00;0,00;6d23h;1.060,00 +WINJ26;15/01/2026 09:30:00;15/01/2026 11:30:00;2h;1;1;V;170.290,00;170.390,00;192.185,00;Sim;20,00;100,00;12;20,00;100,00;0,00;0,00;0,00;1d20h;1.080,00 +WINJ26;21/01/2026 11:30:00;21/01/2026 17:00:00;5h30min;1;1;V;176.665,00;173.915,00;192.185,00;Sim;-550,00;-2.750,00;13;-550,00;-2.750,00;0,00;0,00;0,00;6d2h;530,00 +WINJ26;22/01/2026 13:00:00;22/01/2026 16:30:00;3h30min;1;1;V;181.150,00;182.045,00;192.185,00;Sim;179,00;895,00;14;179,00;895,00;0,00;0,00;0,00;1d1h;709,00 +WINJ26;23/01/2026 17:00:00;26/01/2026 09:00:00;2d16h;1;1;V;184.620,00;183.165,00;192.185,00;Sim;-291,00;-1.455,00;15;-291,00;-1.455,00;0,00;0,00;0,00;1d4h;418,00 +WINJ26;26/01/2026 09:30:00;26/01/2026 11:00:00;1h30min;1;1;V;183.135,00;185.365,00;192.185,00;Sim;446,00;2.230,00;16;446,00;2.230,00;0,00;0,00;0,00;2d16h;864,00 +WINJ26;27/01/2026 10:30:00;27/01/2026 15:30:00;5h;1;1;V;187.300,00;185.905,00;192.185,00;Sim;-279,00;-1.395,00;17;-279,00;-1.395,00;0,00;0,00;0,00;1d1h;585,00 +WINJ26;28/01/2026 11:00:00;28/01/2026 15:30:00;4h30min;1;1;V;188.545,00;189.035,00;192.185,00;Sim;98,00;490,00;18;98,00;490,00;0,00;0,00;0,00;1d;683,00 +WINJ26;29/01/2026 09:30:00;29/01/2026 12:00:00;2h30min;1;1;V;189.110,00;191.020,00;192.185,00;Sim;382,00;1.910,00;19;382,00;1.910,00;0,00;0,00;0,00;22h30min;1.065,00 +WINJ26;03/02/2026 12:00:00;03/02/2026 15:30:00;3h30min;1;1;V;189.500,00;191.565,00;192.185,00;Sim;413,00;2.065,00;20;413,00;2.065,00;0,00;0,00;0,00;5d2h;1.478,00 +WINJ26;04/02/2026 14:00:00;05/02/2026 10:00:00;20h;1;1;C;186.360,00;186.500,00;192.185,00;No;28,00;140,00;21;28,00;140,00;0,00;0,00;0,00;1d2h;1.506,00 +WINJ26;09/02/2026 10:00:00;09/02/2026 15:00:00;5h;1;1;V;189.605,00;188.045,00;192.185,00;No;-312,00;-1.560,00;22;-312,00;-1.560,00;0,00;0,00;0,00;4d20h;1.194,00 +WINJ26;09/02/2026 17:30:00;10/02/2026 12:00:00;18h30min;1;1;V;190.215,00;190.370,00;192.185,00;Sim;31,00;155,00;23;31,00;155,00;0,00;0,00;0,00;7h30min;1.225,00 +WINJ26;11/02/2026 15:00:00;12/02/2026 09:30:00;18h30min;1;1;V;193.200,00;194.505,00;192.185,00;Sim;261,00;1.305,00;24;261,00;1.305,00;0,00;0,00;0,00;1d21h;1.486,00 +WINJ26;13/02/2026 10:30:00;13/02/2026 15:00:00;4h30min;1;1;C;189.095,00;190.025,00;192.185,00;No;186,00;930,00;25;186,00;930,00;0,00;0,00;0,00;1d19h;1.672,00 +WINJ26;20/02/2026 17:30:00;23/02/2026 10:00:00;2d16h;1;1;V;192.560,00;194.065,00;192.185,00;No;301,00;1.505,00;26;301,00;1.505,00;0,00;0,00;0,00;7d7h;1.973,00 +WINJ26;25/02/2026 09:30:00;25/02/2026 11:00:00;1h30min;1;1;V;194.965,00;196.370,00;192.185,00;Sim;281,00;1.405,00;27;281,00;1.405,00;0,00;0,00;0,00;4d16h;2.254,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv new file mode 100644 index 0000000..5913c86 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv @@ -0,0 +1,24 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;20/10/2025 12:00:00;21/10/2025 11:00:00;23h;1;1;V;152.950,00;153.725,00;192.200,00;No;155,00;775,00;1;155,00;775,00;0,00;0,00;0,00; - ;155,00 +WINJ26;23/10/2025 10:00:00;27/10/2025 10:00:00;4d;1;1;V;156.500,00;154.795,00;192.200,00;Sim;-341,00;-1.705,00;2;-341,00;-1.705,00;0,00;0,00;0,00;2d22h;-186,00 +WINJ26;29/10/2025 12:00:00;30/10/2025 09:00:00;21h;1;1;V;157.000,00;157.250,00;192.200,00;Sim;50,00;250,00;3;50,00;250,00;0,00;0,00;0,00;6d2h;-136,00 +WINJ26;05/11/2025 18:00:00;07/11/2025 10:00:00;1d16h;1;1;V;161.250,00;161.940,00;192.200,00;Sim;138,00;690,00;4;138,00;690,00;0,00;0,00;0,00;7d6h;2,00 +WINJ26;11/11/2025 15:00:00;12/11/2025 13:00:00;22h;1;1;V;165.180,00;166.170,00;192.200,00;Sim;198,00;990,00;5;198,00;990,00;0,00;0,00;0,00;5d21h;200,00 +WINJ26;28/11/2025 15:00:00;01/12/2025 11:00:00;2d20h;1;1;V;165.945,00;167.000,00;192.200,00;Sim;211,00;1.055,00;6;211,00;1.055,00;0,00;0,00;0,00;17d;411,00 +WINJ26;05/12/2025 09:00:00;05/12/2025 11:00:00;2h;1;1;V;171.690,00;171.890,00;192.200,00;Sim;40,00;200,00;7;40,00;200,00;0,00;0,00;0,00;6d18h;451,00 +WINJ26;05/12/2025 12:00:00;05/12/2025 13:00:00;1h;1;1;V;170.835,00;172.240,00;192.200,00;Sim;281,00;1.405,00;8;281,00;1.405,00;0,00;0,00;0,00;3h;732,00 +WINJ26;15/12/2025 14:00:00;16/12/2025 10:00:00;20h;1;1;V;167.270,00;169.505,00;192.200,00;No;447,00;2.235,00;9;447,00;2.235,00;0,00;0,00;0,00;10d2h;1.179,00 +WINJ26;17/12/2025 14:00:00;18/12/2025 09:00:00;19h;1;1;C;163.675,00;164.080,00;192.200,00;No;81,00;405,00;10;81,00;405,00;0,00;0,00;0,00;2d;1.260,00 +WINJ26;06/01/2026 12:00:00;06/01/2026 16:00:00;4h;1;1;V;169.540,00;169.365,00;192.200,00;No;-35,00;-175,00;11;-35,00;-175,00;0,00;0,00;0,00;19d22h;1.225,00 +WINJ26;09/01/2026 13:00:00;12/01/2026 09:00:00;2d20h;1;1;V;168.590,00;169.215,00;192.200,00;No;125,00;625,00;12;125,00;625,00;0,00;0,00;0,00;3d1h;1.350,00 +WINJ26;15/01/2026 11:00:00;16/01/2026 11:00:00;1d;1;1;V;170.060,00;170.400,00;192.200,00;Sim;68,00;340,00;13;68,00;340,00;0,00;0,00;0,00;5d22h;1.418,00 +WINJ26;26/01/2026 10:00:00;26/01/2026 16:00:00;6h;1;1;V;183.520,00;184.825,00;192.200,00;Sim;261,00;1.305,00;14;261,00;1.305,00;0,00;0,00;0,00;10d23h;1.679,00 +WINJ26;27/01/2026 13:00:00;28/01/2026 10:00:00;21h;1;1;V;188.030,00;187.625,00;192.200,00;Sim;-81,00;-405,00;15;-81,00;-405,00;0,00;0,00;0,00;1d3h;1.598,00 +WINJ26;11/02/2026 17:00:00;12/02/2026 14:00:00;21h;1;1;V;192.510,00;193.990,00;192.200,00;Sim;296,00;1.480,00;16;296,00;1.480,00;0,00;0,00;0,00;15d4h;1.894,00 +WINJ26;24/02/2026 15:00:00;24/02/2026 18:00:00;3h;1;1;V;195.185,00;194.940,00;192.200,00;Sim;-49,00;-245,00;17;-49,00;-245,00;0,00;0,00;0,00;12d22h;1.845,00 +WINJ26;25/02/2026 10:00:00;25/02/2026 16:00:00;6h;1;1;V;194.310,00;196.660,00;192.200,00;Sim;470,00;2.350,00;18;470,00;2.350,00;0,00;0,00;0,00;19h;2.315,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv new file mode 100644 index 0000000..6d0f204 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv @@ -0,0 +1,16 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;21/01/2026 10:16:00;21/01/2026 10:44:00;28min;1;1;V;173.400,00;173.535,00;192.235,00;No;27,00;135,00;1;27,00;135,00;0,00;0,00;0,00; - ;27,00 +WINJ26;23/01/2026 09:08:00;23/01/2026 09:18:00;10min;1;1;V;181.370,00;181.900,00;192.235,00;Sim;106,00;530,00;2;106,00;530,00;0,00;0,00;0,00;1d22h;133,00 +WINJ26;26/01/2026 09:08:00;26/01/2026 09:26:00;18min;1;1;V;185.255,00;186.205,00;192.235,00;Sim;190,00;950,00;3;190,00;950,00;0,00;0,00;0,00;3d;323,00 +WINJ26;26/01/2026 11:00:00;26/01/2026 11:30:00;30min;1;1;C;183.135,00;183.185,00;192.235,00;No;10,00;50,00;4;10,00;50,00;0,00;0,00;0,00;1h52min;333,00 +WINJ26;03/02/2026 11:14:00;03/02/2026 11:38:00;24min;1;1;V;191.595,00;191.120,00;192.235,00;Sim;-95,00;-475,00;5;-95,00;-475,00;0,00;0,00;0,00;8d;238,00 +WINJ26;11/02/2026 09:52:00;11/02/2026 10:08:00;16min;1;1;V;192.100,00;192.200,00;192.235,00;Sim;20,00;100,00;6;20,00;100,00;0,00;0,00;0,00;7d22h;258,00 +WINJ26;23/02/2026 09:24:00;23/02/2026 10:02:00;38min;1;1;C;192.860,00;192.710,00;192.235,00;No;-30,00;-150,00;7;-30,00;-150,00;0,00;0,00;0,00;11d23h;228,00 +WINJ26;24/02/2026 09:20:00;24/02/2026 09:30:00;10min;1;1;V;193.240,00;193.760,00;192.235,00;Sim;104,00;520,00;8;104,00;520,00;0,00;0,00;0,00;23h56min;332,00 +WINJ26;25/02/2026 09:08:00;25/02/2026 09:30:00;22min;1;1;V;196.370,00;197.580,00;192.235,00;Sim;242,00;1.210,00;9;242,00;1.210,00;0,00;0,00;0,00;23h48min;574,00 +WINJ26;02/03/2026 09:08:00;02/03/2026 09:18:00;10min;1;1;C;190.700,00;191.150,00;192.235,00;Sim;90,00;450,00;10;90,00;450,00;0,00;0,00;0,00;5d;664,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv new file mode 100644 index 0000000..b8a36da --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv @@ -0,0 +1,18 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;03/12/2025 09:35:00;04/12/2025 10:25:00;1d;1;1;V;170.650,00;168.900,00;192.225,00;No;-350,00;-1.750,00;1;-350,00;-1.750,00;0,00;0,00;0,00; - ;-350,00 +WINJ26;19/12/2025 11:10:00;19/12/2025 12:45:00;1h35min;1;1;V;165.475,00;165.155,00;192.225,00;No;-64,00;-320,00;2;-64,00;-320,00;0,00;0,00;0,00;16d1h;-414,00 +WINJ26;07/01/2026 10:40:00;07/01/2026 12:15:00;1h35min;1;1;C;168.780,00;167.545,00;192.225,00;No;-247,00;-1.235,00;3;-247,00;-1.235,00;0,00;0,00;0,00;18d23h;-661,00 +WINJ26;13/01/2026 10:35:00;13/01/2026 10:40:00;5min;1;1;C;167.805,00;167.905,00;192.225,00;Sim;20,00;100,00;4;20,00;100,00;0,00;0,00;0,00;5d23h;-641,00 +WINJ26;14/01/2026 10:25:00;14/01/2026 11:00:00;35min;1;1;V;168.220,00;168.325,00;192.225,00;Sim;21,00;105,00;5;21,00;105,00;0,00;0,00;0,00;23h50min;-620,00 +WINJ26;16/01/2026 11:40:00;16/01/2026 13:15:00;1h35min;1;1;C;169.650,00;169.440,00;192.225,00;No;-42,00;-210,00;6;-42,00;-210,00;0,00;0,00;0,00;2d1h;-662,00 +WINJ26;21/01/2026 11:15:00;21/01/2026 12:50:00;1h35min;1;1;V;174.465,00;173.925,00;192.225,00;Sim;-108,00;-540,00;7;-108,00;-540,00;0,00;0,00;0,00;4d23h;-770,00 +WINJ26;03/02/2026 09:30:00;03/02/2026 11:05:00;1h35min;1;1;V;190.960,00;189.050,00;192.225,00;Sim;-382,00;-1.910,00;8;-382,00;-1.910,00;0,00;0,00;0,00;12d22h;-1.152,00 +WINJ26;11/02/2026 09:20:00;11/02/2026 10:55:00;1h35min;1;1;V;192.490,00;191.770,00;192.225,00;Sim;-144,00;-720,00;9;-144,00;-720,00;0,00;0,00;0,00;7d23h;-1.296,00 +WINJ26;13/02/2026 10:00:00;13/02/2026 11:35:00;1h35min;1;1;C;189.220,00;188.415,00;192.225,00;No;-161,00;-805,00;10;-161,00;-805,00;0,00;0,00;0,00;2d;-1.457,00 +WINJ26;19/02/2026 09:20:00;19/02/2026 09:25:00;5min;1;1;V;190.250,00;190.315,00;192.225,00;No;13,00;65,00;11;13,00;65,00;0,00;0,00;0,00;5d23h;-1.444,00 +WINJ26;23/02/2026 09:55:00;23/02/2026 10:10:00;15min;1;1;C;192.700,00;193.150,00;192.225,00;No;90,00;450,00;12;90,00;450,00;0,00;0,00;0,00;4d;-1.354,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv new file mode 100644 index 0000000..8dad10e --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv @@ -0,0 +1,13 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;03/11/2025 11:30:00;04/11/2025 10:00:00;22h30min;1;1;V;158.430,00;158.705,00;192.220,00;No;55,00;275,00;1;55,00;275,00;0,00;0,00;0,00; - ;55,00 +WINJ26;17/12/2025 11:30:00;17/12/2025 11:45:00;15min;1;1;C;163.775,00;164.140,00;192.220,00;No;73,00;365,00;2;73,00;365,00;0,00;0,00;0,00;1m13d;128,00 +WINJ26;30/12/2025 10:15:00;30/12/2025 12:00:00;1h45min;1;1;V;167.060,00;167.755,00;192.220,00;Sim;139,00;695,00;3;139,00;695,00;0,00;0,00;0,00;12d22h;267,00 +WINJ26;14/01/2026 10:00:00;14/01/2026 11:15:00;1h15min;1;1;V;167.705,00;168.200,00;192.220,00;Sim;99,00;495,00;4;99,00;495,00;0,00;0,00;0,00;14d23h;366,00 +WINJ26;28/01/2026 11:15:00;28/01/2026 11:45:00;30min;1;1;V;189.455,00;188.985,00;192.220,00;Sim;-94,00;-470,00;5;-94,00;-470,00;0,00;0,00;0,00;14d1h;272,00 +WINJ26;11/02/2026 12:00:00;11/02/2026 15:45:00;3h45min;1;1;V;193.700,00;193.035,00;192.220,00;Sim;-133,00;-665,00;6;-133,00;-665,00;0,00;0,00;0,00;14d;139,00 +WINJ26;13/02/2026 10:45:00;13/02/2026 12:45:00;2h;1;1;C;189.255,00;188.780,00;192.220,00;No;-95,00;-475,00;7;-95,00;-475,00;0,00;0,00;0,00;1d22h;44,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv new file mode 100644 index 0000000..c3e1473 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv @@ -0,0 +1,13 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;17/12/2025 11:30:00;18/12/2025 11:00:00;23h30min;1;1;C;163.775,00;163.735,00;192.180,00;No;-8,00;-40,00;1;-8,00;-40,00;0,00;0,00;0,00; - ;-8,00 +WINJ26;06/01/2026 12:00:00;07/01/2026 10:00:00;22h;1;1;V;168.900,00;169.365,00;192.180,00;No;93,00;465,00;2;93,00;465,00;0,00;0,00;0,00;20d;85,00 +WINJ26;15/01/2026 11:00:00;15/01/2026 11:30:00;30min;1;1;V;170.290,00;170.400,00;192.180,00;Sim;22,00;110,00;3;22,00;110,00;0,00;0,00;0,00;8d23h;107,00 +WINJ26;29/01/2026 10:00:00;29/01/2026 12:00:00;2h;1;1;V;189.110,00;191.650,00;192.180,00;Sim;508,00;2.540,00;4;508,00;2.540,00;0,00;0,00;0,00;13d23h;615,00 +WINJ26;03/02/2026 12:30:00;03/02/2026 15:30:00;3h;1;1;V;189.500,00;191.120,00;192.180,00;No;324,00;1.620,00;5;324,00;1.620,00;0,00;0,00;0,00;5d2h;939,00 +WINJ26;13/02/2026 11:00:00;13/02/2026 15:00:00;4h;1;1;C;188.945,00;190.025,00;192.180,00;No;216,00;1.080,00;6;216,00;1.080,00;0,00;0,00;0,00;9d22h;1.155,00 +WINJ26;25/02/2026 10:30:00;25/02/2026 11:00:00;30min;1;1;V;194.965,00;195.645,00;192.180,00;Sim;136,00;680,00;7;136,00;680,00;0,00;0,00;0,00;11d23h;1.291,00 diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv new file mode 100644 index 0000000..e296e87 --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv @@ -0,0 +1,10 @@ +Conta: 103166893 +Titular: Wesley Gomes Da Silva +Data Inicial: 02/03/2025 +Data Final: 02/03/2026 + +Ativo;Abertura;Fechamento;Tempo Operao;Qtd Compra;Qtd Venda;Lado;Preo Compra;Preo Venda;Preo de Mercado;Mdio;Res. Intervalo Bruto;Res. Intervalo (%);Nmero Operao;Res. Operao;Res. Operao (%);Drawdown;Ganho Max.;Perda Max.;TET;Total +WINJ26;05/12/2025 13:00:00;05/12/2025 14:00:00;1h;1;1;V;168.900,00;170.835,00;192.255,00;No;387,00;1.935,00;1;387,00;1.935,00;0,00;0,00;0,00; - ;387,00 +WINJ26;15/01/2026 12:00:00;16/01/2026 11:00:00;23h;1;1;V;170.060,00;170.120,00;192.255,00;No;12,00;60,00;2;12,00;60,00;0,00;0,00;0,00;1m9d23h;399,00 +WINJ26;26/01/2026 11:00:00;28/01/2026 10:00:00;1d23h;1;1;V;188.030,00;183.135,00;192.255,00;Sim;-979,00;-4.895,00;3;-979,00;-4.895,00;0,00;0,00;0,00;10d23h;-580,00 +WINJ26;25/02/2026 11:00:00;25/02/2026 16:00:00;5h;1;1;V;194.310,00;194.965,00;192.255,00;Sim;131,00;655,00;4;131,00;655,00;0,00;0,00;0,00;30d;-449,00 diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt new file mode 100644 index 0000000..0f51f4e --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt @@ -0,0 +1,71 @@ +{ + Estrategia: robo_ifr_v10_balanceado_regime + Autor: Wesley + Descricao: Abordagem balanceada com logica por regime de mercado. + Em tendencia usa pullback no IFR; em lateral usa reversao 30/70. +} + +input + PeriodoIFR(9); + NivelPullbackCompra(45); + NivelPullbackVenda(55); + IFRExtremoCompra(30); + IFRExtremoVenda(70); + PeriodoMMERapida(9); + PeriodoMMELenta(21); + PeriodoMediaVolume(20); + FatorVolume(1.0); + UsarFiltroVolume(false); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fMME9, fMME9Anterior, fMME21, vMediaVol : float; + bVolumeAlto, bRegimeTendenciaAlta, bRegimeTendenciaBaixa, bRegimeLateral : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME9 := MediaExp(PeriodoMMERapida, Close); + fMME9Anterior := MediaExp(PeriodoMMERapida, Close)[1]; + fMME21 := MediaExp(PeriodoMMELenta, Close); + vMediaVol := Media(PeriodoMediaVolume, Volume); + + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + bRegimeTendenciaAlta := (Close > fMME21) and (fMME9 > fMME21) and (fMME9 > fMME9Anterior); + bRegimeTendenciaBaixa := (Close < fMME21) and (fMME9 < fMME21) and (fMME9 < fMME9Anterior); + bRegimeLateral := (not bRegimeTendenciaAlta) and (not bRegimeTendenciaBaixa); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + if bRegimeTendenciaAlta and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then + begin + BuyAtMarket; + end + else if bRegimeTendenciaBaixa and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then + begin + SellShortAtMarket; + end + else if bRegimeLateral and (fIFR[1] <= IFRExtremoCompra) and (fIFR > IFRExtremoCompra) then + begin + BuyAtMarket; + end + else if bRegimeLateral and (fIFR[1] >= IFRExtremoVenda) and (fIFR < IFRExtremoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt new file mode 100644 index 0000000..fd01ce0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v11_agressivo_reentrada + Autor: Wesley + Descricao: Abordagem agressiva com zona IFR mais aberta e uma reentrada por direcao. + Foco em maior numero de oportunidades com controle por tempo. +} + +input + PeriodoIFR(9); + IFREntradaCompra(40); + IFREntradaVenda(60); + IFRExtremoCompra(30); + IFRExtremoVenda(70); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + MaxReentradasDirecao(1); + +var + iBarrasEmPosicao, iReentradaCompra, iReentradaVenda : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREntradaCompra) and (iReentradaCompra <= MaxReentradasDirecao) then + begin + BuyAtMarket; + iReentradaCompra := iReentradaCompra + 1; + iReentradaVenda := 0; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREntradaVenda) and (iReentradaVenda <= MaxReentradasDirecao) then + begin + SellShortAtMarket; + iReentradaVenda := iReentradaVenda + 1; + iReentradaCompra := 0; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt new file mode 100644 index 0000000..8558872 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v18_bandas_dinamicas + Autor: Wesley + Descricao: Bandas dinamicas de IFR baseadas em range do proprio indicador. + Objetivo: substituir niveis fixos por gatilhos adaptativos. +} + +input + PeriodoIFR(9); + LookbackBandas(50); + PercentilCompra(0.25); + PercentilVenda(0.75); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fMinIFR, fMaxIFR, fRangeIFR, fNivelCompra, fNivelVenda : float; + +begin + fIFR := IFR(PeriodoIFR); + fMinIFR := Lowest(IFR(PeriodoIFR), LookbackBandas); + fMaxIFR := Highest(IFR(PeriodoIFR), LookbackBandas); + fRangeIFR := fMaxIFR - fMinIFR; + + fNivelCompra := fMinIFR + (fRangeIFR * PercentilCompra); + fNivelVenda := fMinIFR + (fRangeIFR * PercentilVenda); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= fNivelCompra) and (fIFR > fNivelCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= fNivelVenda) and (fIFR < fNivelVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt new file mode 100644 index 0000000..740a35c --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt @@ -0,0 +1,73 @@ +{ + Estrategia: robo_ifr_v1_reversao_extremos + Autor: Wesley + Descricao: Reversao por extremos de IFR com candle de rejeicao + volume. + Entrada em extremos e saida no IFR 50. +} + +input + PeriodoIFR(9); + IFREntradaCompra(30); + IFREntradaVenda(70); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarFiltroVolume(true); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + DojiMaxCorpoPerc(0.12); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao >= 0.50); + + bDojiBaixa := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao < 0.50); + + bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); + bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + BuyAtMarket + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 50) then + ClosePosition; + + if IsSold and (fIFR <= 50) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt new file mode 100644 index 0000000..0cb75ac --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt @@ -0,0 +1,47 @@ +{ + Estrategia: robo_ifr_v20_ifr_assimetrico_lado + Autor: Wesley + Descricao: IFR com niveis assimetricos para compra e venda. + Ajusta sensibilidade por lado para refletir comportamento diferente do mercado. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(32); + IFREtornoCompra(38); + IFRExtremoVenda(68); + IFREtornoVenda(62); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt new file mode 100644 index 0000000..0fffaf0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt @@ -0,0 +1,54 @@ +{ + Estrategia: robo_ifr_v23_dupla_confirmacao + Autor: Wesley + Descricao: IFR com zona neutra (no-trade zone) e confirmacao por 2 candles. + Objetivo: reduzir falsos sinais de retorno sem continuidade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(36); + IFRExtremoVenda(70); + IFREtornoVenda(64); + ZonaNeutraMin(45); + ZonaNeutraMax(55); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR : float; + bConfirmacaoCompra, bConfirmacaoVenda, bForaZonaNeutra : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + bConfirmacaoCompra := (Close > Close[1]) and (Close[1] > Close[2]); + bConfirmacaoVenda := (Close < Close[1]) and (Close[1] < Close[2]); + bForaZonaNeutra := (fIFR < ZonaNeutraMin) or (fIFR > ZonaNeutraMax); + + if (not IsBought) and (not IsSold) and bForaZonaNeutra then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfirmacaoCompra then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfirmacaoVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt new file mode 100644 index 0000000..9e39c92 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt @@ -0,0 +1,70 @@ +{ + Estrategia: robo_ifr_v24_controle_risco_diario + Autor: Wesley + Descricao: IFR com controle diario de risco por limite de trades e saidas por tempo. + Objetivo: interromper operacao do dia em condicoes adversas. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MaxTradesDia(6); + MaxSaidasTempoDia(2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao, iTradesDia, iSaidasTempoDia : integer; + fIFR : float; + bBloqueadoDia, bSaiuPorTempo : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iTradesDia := 0; + iSaidasTempoDia := 0; + end; + + bBloqueadoDia := (iTradesDia >= MaxTradesDia) or (iSaidasTempoDia >= MaxSaidasTempoDia); + + if (not IsBought) and (not IsSold) and (not bBloqueadoDia) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesDia := iTradesDia + 1; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesDia := iTradesDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt new file mode 100644 index 0000000..7e430ae --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt @@ -0,0 +1,53 @@ +{ + Estrategia: robo_ifr_v25_ifr_mme200_contexto + Autor: Wesley + Descricao: IFR com filtro de contexto pela MME200. + Compra apenas acima da MME200 e venda apenas abaixo da MME200. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMMEContexto(200); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fMME200 : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMMEContexto, Close); + + bContextoCompra := (Close > fMME200); + bContextoVenda := (Close < fMME200); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt new file mode 100644 index 0000000..c263b4c --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt @@ -0,0 +1,59 @@ +{ + Estrategia: robo_ifr_v27_um_trade_por_direcao + Autor: Wesley + Descricao: IFR com limite de 1 trade por direcao por sessao e risco curto por tempo. + Objetivo: reduzir overtrading em dias erraticos. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(8); + +var + iBarrasEmPosicao, iTradesCompraDia, iTradesVendaDia : integer; + fIFR : float; + bPodeComprar, bPodeVender : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iTradesCompraDia := 0; + iTradesVendaDia := 0; + end; + + bPodeComprar := (iTradesCompraDia = 0); + bPodeVender := (iTradesVendaDia = 0); + + if (not IsBought) and (not IsSold) then + begin + if bPodeComprar and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesCompraDia := iTradesCompraDia + 1; + end + else if bPodeVender and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesVendaDia := iTradesVendaDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt new file mode 100644 index 0000000..d0cdd73 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v28_ifr_adx_filtro + Autor: Wesley + Descricao: IFR com filtro de forca de tendencia por ADX. + Opera apenas quando ADX estiver acima do nivel minimo. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoADX(14); + ADXMinimo(20); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fADX : float; + bTendenciaValida : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fADX := ADX(PeriodoADX, PeriodoADX); + bTendenciaValida := (fADX >= ADXMinimo); + + if (not IsBought) and (not IsSold) and bTendenciaValida then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt new file mode 100644 index 0000000..36a4646 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt @@ -0,0 +1,48 @@ +{ + Estrategia: robo_ifr_v31_reversao_volume_relativo + Autor: Wesley + Descricao: Reversao IFR com filtro de volume relativo. + Entra apenas com volume acima da media recente. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, vMediaVol : float; + bVolumeAlto : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (Volume >= (vMediaVol * FatorVolume)); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + BuyAtMarket + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt new file mode 100644 index 0000000..435062a --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt @@ -0,0 +1,47 @@ +{ + Estrategia: robo_ifr_v33_pullback_mme200 + Autor: Wesley + Descricao: Pullback de IFR com contexto pela MME200. + Compra acima da MME200 e venda abaixo da MME200. +} + +input + PeriodoIFR(9); + NivelPullbackCompra(45); + NivelPullbackVenda(55); + PeriodoMMEContexto(200); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fMME200 : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMMEContexto, Close); + + bContextoCompra := (Close > fMME200); + bContextoVenda := (Close < fMME200); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then + BuyAtMarket + else if bContextoVenda and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt new file mode 100644 index 0000000..61d1667 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt @@ -0,0 +1,52 @@ +{ + Estrategia: robo_ifr_v36_divergencia_regular_pivo + Autor: Wesley + Descricao: Divergencia regular de IFR com confirmacao por rompimento de pivo curto. + Compra em divergencia de fundo e venda em divergencia de topo. +} + +input + PeriodoIFR(9); + DeltaIFRMinimo(2.0); + LookbackPivo(3); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fIFRAnt, fPivoAlta, fPivoBaixa : float; + bDivCompra, bDivVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fIFRAnt := IFR(PeriodoIFR)[1]; + fPivoAlta := Highest(High, LookbackPivo)[1]; + fPivoBaixa := Lowest(Low, LookbackPivo)[1]; + + bDivCompra := (Low < Low[1]) and (fIFR > (fIFRAnt + DeltaIFRMinimo)); + bDivVenda := (High > High[1]) and (fIFR < (fIFRAnt - DeltaIFRMinimo)); + + if (not IsBought) and (not IsSold) then + begin + if bDivCompra and (Close > fPivoAlta) then + begin + BuyAtMarket; + end + else if bDivVenda and (Close < fPivoBaixa) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt new file mode 100644 index 0000000..20cfde9 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt @@ -0,0 +1,60 @@ +{ + Estrategia: robo_ifr_v45_volume_por_horario + Autor: Wesley + Descricao: IFR com filtro de volume relativo por janela horaria simples. + Na abertura exige volume maior; depois exige volume moderado. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + HoraAberturaFim(1030); + FatorVolumeAbertura(1.3); + FatorVolumeMeio(1.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, vMediaVol, fFatorAtual : float; + bVolumeOk : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + + if Time <= HoraAberturaFim then + fFatorAtual := FatorVolumeAbertura + else + fFatorAtual := FatorVolumeMeio; + + bVolumeOk := (Volume >= (vMediaVol * fFatorAtual)); + + if (not IsBought) and (not IsSold) and bVolumeOk then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt new file mode 100644 index 0000000..948d7c8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt @@ -0,0 +1,66 @@ +{ + Estrategia: robo_ifr_v47_orb_confirmacao_dupla + Autor: Wesley + Descricao: ORB + IFR com dupla confirmacao de direcao por candles. + Rompimento da ORB e dois fechamentos na direcao do trade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraFimORB(930); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fORBHigh, fORBLow : float; + bConfCompra, bConfVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + fORBHigh := High; + fORBLow := Low; + end; + + if Time <= HoraFimORB then + begin + if High > fORBHigh then + fORBHigh := High; + if Low < fORBLow then + fORBLow := Low; + end; + + bConfCompra := (Close > Close[1]) and (Close[1] > Close[2]); + bConfVenda := (Close < Close[1]) and (Close[1] < Close[2]); + + if (not IsBought) and (not IsSold) and (Time > HoraFimORB) then + begin + if (Close > fORBHigh) and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfCompra then + begin + BuyAtMarket; + end + else if (Close < fORBLow) and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt new file mode 100644 index 0000000..534595a --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt @@ -0,0 +1,58 @@ +{ + Estrategia: robo_ifr_v4_divergencia_confirmada + Autor: Wesley + Descricao: Divergencia simples de IFR com confirmacao por candle de rejeicao. + Compra: preco faz fundo menor e IFR fundo maior. + Venda: preco faz topo maior e IFR topo menor. +} + +input + PeriodoIFR(9); + LookbackDivergencia(12); + PeriodoMediaVolume(20); + FatorVolume(1.0); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto, bMartelo, bEstrela : boolean; + bDivergenciaAlta, bDivergenciaBaixa : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDivergenciaAlta := (Low < Lowest(Low, LookbackDivergencia)[1]) and (fIFR > Lowest(fIFR, LookbackDivergencia)[1]); + bDivergenciaBaixa := (High > Highest(High, LookbackDivergencia)[1]) and (fIFR < Highest(fIFR, LookbackDivergencia)[1]); + + if (not IsBought) and (not IsSold) then + begin + if bDivergenciaAlta and bMartelo and bVolumeAlto then + BuyAtMarket + else if bDivergenciaBaixa and bEstrela and bVolumeAlto then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 55) then + ClosePosition; + + if IsSold and (fIFR <= 45) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt new file mode 100644 index 0000000..61459c6 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt @@ -0,0 +1,78 @@ +{ + Estrategia: robo_ifr_v5_regime_volatilidade + Autor: Wesley + Descricao: Ajusta extremos de IFR por regime de volatilidade (ATR relativo). + Alta volatilidade usa extremos mais amplos; baixa volatilidade mais estreitos. +} + +input + PeriodoIFR(9); + PeriodoATR(14); + PeriodoATRMedia(50); + IFREntradaCompraAltaVol(20); + IFREntradaVendaAltaVol(80); + IFREntradaCompraBaixaVol(35); + IFREntradaVendaBaixaVol(65); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + +var + fIFR, vMediaVol, fATR, fATRMedio : float; + fCompraNivel, fVendaNivel : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto, bAltaVolatilidade : boolean; + bMartelo, bEstrela : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fATR := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoATRMedia, fATR); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bAltaVolatilidade := (fATR >= fATRMedio); + + if bAltaVolatilidade then + begin + fCompraNivel := IFREntradaCompraAltaVol; + fVendaNivel := IFREntradaVendaAltaVol; + end + else + begin + fCompraNivel := IFREntradaCompraBaixaVol; + fVendaNivel := IFREntradaVendaBaixaVol; + end; + + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= fCompraNivel) and bMartelo and bVolumeAlto then + BuyAtMarket + else if (fIFR >= fVendaNivel) and bEstrela and bVolumeAlto then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 50) then + ClosePosition; + + if IsSold and (fIFR <= 50) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt new file mode 100644 index 0000000..06b7ae6 --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt @@ -0,0 +1,95 @@ +{ + Estrategia: robo_ifr_v6_saida_hibrida + Autor: Wesley + Descricao: Entrada por extremos de IFR e saida hibrida: + sinal contrario forte OU IFR 50 OU tempo maximo em barras. +} + +input + PeriodoIFR(9); + IFREntradaCompra(30); + IFREntradaVenda(70); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + DojiMaxCorpoPerc(0.12); + UsarSaidaPorSinalContrario(true); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda : boolean; + bForcaContrariaCompra, bForcaContrariaVenda : boolean; + iBarrasEmPosicao : integer; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao >= 0.50); + + bDojiBaixa := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao < 0.50); + + bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); + bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); + + bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); + bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + BuyAtMarket + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + SellShortAtMarket; + end; + + if IsBought and ( + (UsarSaidaPorSinalContrario and bForcaContrariaCompra) + or (UsarSaidaIFR50 and (fIFR >= 50)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + ) then + ClosePosition; + + if IsSold and ( + (UsarSaidaPorSinalContrario and bForcaContrariaVenda) + or (UsarSaidaIFR50 and (fIFR <= 50)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + ) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt b/automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt new file mode 100644 index 0000000..a6ecbaf --- /dev/null +++ b/automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt @@ -0,0 +1,152 @@ +{ + Estrategia: robo_ifr_v7_resgate_contexto + Autor: Wesley + Descricao: Versao de resgate com filtro de contexto para reduzir falso sinal. + Reversao em extremo IFR + rejeicao + afastamento da MME20 + confirmacao. +} + +input + PeriodoIFR(9); + IFREntradaCompra(25); + IFREntradaVenda(75); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarFiltroVolume(true); + PeriodoMME(20); + DistMinMME20Perc(0.20); + UsarJanelaHorario(true); + HoraInicio(900); + HoraFim(1130); + MultiplicadorPavio(1.6); + MaxPavioOpostoCorpo(1.1); + DojiMaxCorpoPerc(0.10); + MaxBarrasConfirmacao(3); + UsarSaidaIFR50(true); + UsarSaidaSinalContrario(true); + MaxBarrasPosicao(20); + +var + iHoraAtualHHMM, iBarrasAguardarCompra, iBarrasAguardarVenda, iBarrasEmPosicao : integer; + fIFR, vMediaVol, fMME20, fDistMME20Perc : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + fNivelCompra, fNivelVenda : float; + bJanelaOK, bVolumeAlto, bLongeMME20 : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda, bForcaContrariaCompra, bForcaContrariaVenda : boolean; + bArmarCompra, bArmarVenda : boolean; + +begin + iHoraAtualHHMM := Time; + if iHoraAtualHHMM > 2400 then + iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); + + bJanelaOK := (not UsarJanelaHorario) or ((iHoraAtualHHMM >= HoraInicio) and (iHoraAtualHHMM <= HoraFim)); + + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + fMME20 := MediaExp(PeriodoMME, Close); + if fMME20 > 0 then + fDistMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 + else + fDistMME20Perc := 999; + + bLongeMME20 := (fDistMME20Perc >= DistMinMME20Perc); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao >= 0.50); + bDojiBaixa := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao < 0.50); + + bSinalCompra := bJanelaOK and bVolumeAlto and bLongeMME20 and (bMartelo or bDojiAlta); + bSinalVenda := bJanelaOK and bVolumeAlto and bLongeMME20 and (bEstrela or bDojiBaixa); + + if Date <> Date[1] then + begin + bArmarCompra := False; + bArmarVenda := False; + iBarrasAguardarCompra := 0; + iBarrasAguardarVenda := 0; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + begin + bArmarCompra := True; + bArmarVenda := False; + fNivelCompra := High; + iBarrasAguardarCompra := 0; + end + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + begin + bArmarVenda := True; + bArmarCompra := False; + fNivelVenda := Low; + iBarrasAguardarVenda := 0; + end; + + if bArmarCompra then + begin + iBarrasAguardarCompra := iBarrasAguardarCompra + 1; + if High > fNivelCompra then + begin + BuyAtMarket; + bArmarCompra := False; + end + else if iBarrasAguardarCompra > MaxBarrasConfirmacao then + bArmarCompra := False; + end; + + if bArmarVenda then + begin + iBarrasAguardarVenda := iBarrasAguardarVenda + 1; + if Low < fNivelVenda then + begin + SellShortAtMarket; + bArmarVenda := False; + end + else if iBarrasAguardarVenda > MaxBarrasConfirmacao then + bArmarVenda := False; + end; + end; + + bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); + bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ( + (UsarSaidaIFR50 and (fIFR >= 50)) + or (UsarSaidaSinalContrario and bForcaContrariaCompra) + or (iBarrasEmPosicao >= MaxBarrasPosicao) + ) then + ClosePosition; + + if IsSold and ( + (UsarSaidaIFR50 and (fIFR <= 50)) + or (UsarSaidaSinalContrario and bForcaContrariaVenda) + or (iBarrasEmPosicao >= MaxBarrasPosicao) + ) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robos_IFR.txt b/automacao_backtests/IFR_RSI/robos_IFR.txt new file mode 100644 index 0000000..43f7cef --- /dev/null +++ b/automacao_backtests/IFR_RSI/robos_IFR.txt @@ -0,0 +1,278 @@ +PLANO DE ESTUDOS - ROBÔS IFR (RSI) PARA MINI ÍNDICE (WIN) + +1) OBJETIVO GERAL +- Usar IFR parametrizável para intraday no WIN. +- Priorizar período da manhã (maior volatilidade e deslocamento inicial). +- Usar sinais de rejeição em Price Action para entrada. +- Buscar capturar o maior range possível até sinal de enfraquecimento/virada via volume e candle. + +2) PREMISSAS OPERACIONAIS +- Timeframes foco: 2 minutos e 5 minutos. +- Janela principal: abertura até metade da manhã (ex.: 09:00-11:30). +- IFR padrão inicial: 9 e 14 (comparar os dois). +- Zonas de trabalho: + - agressiva: 35/65 + - balanceada: 30/70 + - conservadora: 20/80 + - extrema: 10/90 + +3) GATILHOS BASE (PRICE ACTION + VOLUME) +- Rejeição de fundo (compra): martelo/pavio inferior dominante + fechamento no terço superior + volume acima da média. +- Rejeição de topo (venda): estrela/pavio superior dominante + fechamento no terço inferior + volume acima da média. +- Doji contextual: válido quando acompanhado por volume e extremo de IFR. +- Confirmação opcional: rompimento da máxima/mínima do candle de sinal no candle seguinte. + +4) OPÇÕES DE ESTRATÉGIA COM IFR (ALÉM DO BÁSICO) +- Reversão por extremos: entrada em IFR extremo com rejeição, saída por sinal contrário forte. +- Reversão por retorno da zona: entrada quando IFR sai do extremo e cruza de volta o nível (filtro de timing). +- Tendência com pullback: operar apenas a favor da direção do IFR (acima/abaixo de 50) e entrar em correções. +- Divergência IFR + Price Action: operar apenas quando houver divergência e candle de confirmação. +- Regime por volatilidade: mudar parâmetros IFR/volume conforme ATR ou horário. +- Saída híbrida: IFR alvo + trailing por candle contrário + proteção por tempo máximo em posição. + +5) VERSÕES DE ROBÔ PARA BACKTEST +- V1 Base Extremos: simples, mais sinais. +- V2 Newton/Força: exige aceleração/força na direção da entrada. +- V3 Confirmação: exige confirmação de rompimento do candle de sinal. +- V4 Score Conservador: pontuação mínima de rejeição (pavio + fechamento + volume + extremo). + +6) MATRIZ MÍNIMA DE BACKTEST +- Timeframe: 2m e 5m. +- IFR período: 9 e 14. +- Zonas IFR: 35/65, 30/70, 20/80. +- Filtro de volume: ligado/desligado (fator 1.0, 1.2, 1.4). +- Entrada: no candle de sinal vs confirmação no seguinte. +- Saída: IFR50 vs sinal contrário forte vs híbrida. + +7) MÉTRICAS OBRIGATÓRIAS +- Taxa de acerto (%). +- Fator de lucro. +- Drawdown máximo. +- Resultado líquido por dia e por horário. +- Expectância por trade. +- Número de trades (evitar overfitting por baixa amostra). + +8) CRITÉRIOS DE APROVAÇÃO +- Fator de lucro > 1.20 em amostra de treino e validação. +- Drawdown compatível com o risco aceitável da conta. +- Estabilidade entre 2m e 5m (não depender de um único setup frágil). +- Consistência por faixa de horário, sem concentrar tudo em 1 ou 2 dias. + +9) PRÓXIMOS PASSOS PRÁTICOS +- Rodar grid inicial (V1-V4 x IFR 9/14 x zonas 35/65-30/70-20/80). +- Selecionar top 2 por fator de lucro com drawdown controlado. +- Fazer teste fora da amostra (out-of-sample). +- Definir versão candidata para paper trade antes de colocar em conta real. + +10) STATUS ATUAL APÓS RENOMEAÇÃO DOS ARQUIVOS +- Convenção adotada: + - Arquivos aprovados: nome inclui melhor timeframe e % de vencedoras. + - Arquivos reprovados: sufixo REPROVADO. + +- Aprovados (melhor resultado identificado): + - robo_ifr_v1_reversao_extremos60min71%.txt + - robo_ifr_v4_divergencia_confirmada60min90%.txt + - robo_ifr_v5_regime_volatilidade60min90%.txt + - robo_ifr_v6_saida_hibrida60min77%.txt + - robo_ifr_v7_resgate_contexto30min84%.txt + +- Reprovados (desempenho fraco em múltiplos timeframes): + - Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt + - Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt + - Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt + +11) PRÓXIMA ETAPA RECOMENDADA +- Rodar validação fora da amostra nos aprovados (janela e período diferentes dos usados no ajuste). +- Priorizar v4, v5 e v7 para comparação final por fator de lucro, drawdown e número de trades. + +12) NOVOS ROBÔS CRIADOS (V9-V11) +- V9 Conservador Contexto (`robo_ifr_v9_conservador_contexto.txt`) + - Lógica: retorno de IFR extremo com filtros de tendência (MME9/21) e volume mais rígido. + - Perfil: menos trades, maior seletividade. + - Base: IFR(9), retorno 30->35 compra e 70->65 venda, volume fator 1.2. + +- V10 Balanceado Regime (`robo_ifr_v10_balanceado_regime.txt`) + - Lógica: alterna comportamento por regime. + - Em tendência: pullback IFR (45/55). + - Em lateral: reversão por extremos (30/70). + - Perfil: equilíbrio entre frequência e qualidade de sinal. + +- V11 Agressivo Reentrada (`robo_ifr_v11_agressivo_reentrada.txt`) + - Lógica: entradas mais cedo (40/60) após extremos (30/70) com 1 reentrada por direção. + - Perfil: maior número de operações e maior sensibilidade a ruído. + - Base: saída em IFR50 e/ou tempo máximo em posição. + +13) STATUS DE VALIDAÇÃO (HOJE) +- Versões validadas: + - v1, v4, v5, v6, v7 + - v10 (`robo_ifr_v10_balanceado_regime60min63%.txt`) + - v11 (`robo_ifr_v11_agressivo_reentrada30min58%.txt`) + - v18 (`robo_ifr_v18_bandas_dinamicas60min60%.txt`) + +- Versões reprovadas: + - v2, v3, v8, v9 + - v12 (`Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt`) + - v13 (`Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt`) + - v15 (`Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt`) + - v16 (`Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt`) + - v17 (`Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt`) + +14) NOVAS OPÇÕES CRIADAS PARA PRÓXIMA RODADA +- V12 Multi-timeframe Alinhado (`robo_ifr_v12_multitimeframe_alinhado.txt`) + - Entrada no timeframe atual com filtro direcional por IFR de contexto. + - Objetivo: reduzir entradas contra o fluxo predominante. + +- V13 Divergência + Estrutura (`robo_ifr_v13_divergencia_estrutura.txt`) + - Exige divergência de IFR e confirmação por quebra curta de estrutura. + - Objetivo: evitar divergência sem confirmação de preço. + +- V15 Saída em Estágio + Trailing (`robo_ifr_v15_saida_estagio_trailing.txt`) + - Após atingir IFR 50, ativa estágio de saída por trailing simples de candle. + - Objetivo: capturar mais continuidade quando o movimento estica. + +15) RESULTADO DA RODADA V12-V13-V15 +- As três variações foram reprovadas na validação atual e movidas para a pasta `Reprovados`. +- Permanecem como candidatas válidas: v1, v4, v5, v6, v7, v10, v11 e v18. + +16) NOVAS SUGESTÕES IMPLEMENTADAS (V16-V18) +- V16 Slope + Cooldown (`robo_ifr_v16_slope_cooldown.txt`) + - Entrada por retorno de extremo com inclinação mínima do IFR. + - Aplica cooldown de barras após saída para evitar reentrada imediata. + +- V17 Failure Swing (`robo_ifr_v17_failure_swing.txt`) + - Usa pivoteamento do IFR (failure swing) com confirmação simples no preço. + - Foco em reversões com estrutura mínima confirmada. + +- V18 Bandas Dinâmicas (`robo_ifr_v18_bandas_dinamicas.txt`) + - Níveis de entrada definidos por percentis do range do IFR no lookback. + - Troca gatilhos fixos por gatilhos adaptativos ao regime do dia. + +17) RESULTADO DA RODADA V16-V17-V18 +- v16 e v17 foram reprovados e movidos para `Reprovados`. +- v18 foi validado com melhor leitura em 60min e mantido na pasta principal. + +18) NOVAS OPÇÕES IMPLEMENTADAS (V19-V21) +- V19 IFR + VWAP Contexto (`robo_ifr_v19_ifr_vwap_contexto.txt`) + - Filtro direcional por VWAP aproximada (preço ponderado por volume). + - Compra apenas com preço acima da VWAP; venda apenas abaixo. + +- V20 IFR Assimétrico por Lado (`robo_ifr_v20_ifr_assimetrico_lado.txt`) + - Níveis de entrada/retorno diferentes para compra e venda. + - Saída também assimétrica para refletir comportamento distinto por direção. + +- V21 IFR + Faixa de Volatilidade (`robo_ifr_v21_ifr_atr_faixa.txt`) + - Usa range médio de candle como proxy de ATR para filtrar regime operável. + - Evita operar em baixa volatilidade extrema ou explosão de ruído. + +19) NOVAS OPÇÕES IMPLEMENTADAS (V22-V24) +- V22 Tendência Forte (`robo_ifr_v22_tendencia_forte.txt`) + - IFR com filtro de tendência forte por MME9/21 e inclinação mínima da MME longa. + - Objetivo: reduzir operações em lateralização e priorizar continuidade direcional. + +- V23 Dupla Confirmação (`robo_ifr_v23_dupla_confirmacao.txt`) + - IFR com zona neutra 45-55 e exigência de dois candles de confirmação. + - Objetivo: reduzir falsos rompimentos de retorno do IFR. + +- V24 Controle de Risco Diário (`robo_ifr_v24_controle_risco_diario.txt`) + - Limita trades por dia e bloqueia novas entradas após excesso de saídas por tempo. + - Objetivo: conter deterioração de desempenho em dia adverso. + +20) NOVAS OPÇÕES IMPLEMENTADAS (V25-V27) +- V25 IFR + MME200 Contexto (`robo_ifr_v25_ifr_mme200_contexto.txt`) + - Filtra direção pelo contexto estrutural de longo prazo (acima/abaixo da MME200). + - Objetivo: reduzir operações contra tendência principal. + +- V26 Janela + Pivô (`robo_ifr_v26_janela_pivo.txt`) + - Opera somente em janela horária definida e exige rompimento de pivô curto para confirmar. + - Objetivo: aumentar qualidade de entrada em horário mais favorável. + +- V27 Um Trade por Direção (`robo_ifr_v27_um_trade_por_direcao.txt`) + - Limita 1 trade de compra e 1 trade de venda por sessão, com saída por tempo curta. + - Objetivo: controlar overtrading e preservar capital em dias erráticos. + +21) NOVAS OPÇÕES IMPLEMENTADAS (V28-V30) +- V28 IFR + ADX Filtro (`robo_ifr_v28_ifr_adx_filtro.txt`) + - IFR com filtro de força de tendência via ADX mínimo. + - Objetivo: reduzir entradas em mercado sem direção. + +- V29 IFR + Direção da Abertura (`robo_ifr_v29_ifr_direcao_abertura.txt`) + - Só opera a favor da direção definida na abertura/referência da sessão. + - Objetivo: alinhar operações com viés intradiário inicial. + +- V30 IFR + Circuit Breaker Diário (`robo_ifr_v30_ifr_circuit_breaker_diario.txt`) + - Limita operações após gatilhos de deterioração diária (saídas por tempo e limite de trades). + - Objetivo: interromper overtrading em dia adverso. + +22) CATÁLOGO DE 50 OPÇÕES IFR (PRÉ-OTIMIZAÇÃO) +- Arquivo de referência: `catalogo_50_opcoes_IFR.txt`. +- Objetivo: ampliar repertório de ideias antes da fase de otimização dos vencedores. +- Próxima seleção sugerida: escolher 10 opções do catálogo para nova rodada de implementação. + +23) NOVA RODADA IMPLEMENTADA (V31-V35) +- V31 Reversão + Volume Relativo (`robo_ifr_v31_reversao_volume_relativo.txt`) + - Retorno de extremo IFR com exigência de volume acima da média. + +- V32 Retorno + Pivô 3 (`robo_ifr_v32_retorno_pivo3.txt`) + - Entrada só com confirmação por rompimento de pivô curto. + +- V33 Pullback + MME200 (`robo_ifr_v33_pullback_mme200.txt`) + - Pullback de IFR operando somente a favor do contexto da MME200. + +- V34 No-Trade-Zone (`robo_ifr_v34_no_trade_zone.txt`) + - Bloqueia entradas na faixa IFR 45-55 para evitar indefinição. + +- V35 Cooldown Diário (`robo_ifr_v35_cooldown_diario.txt`) + - Após saída por tempo, aplica cooldown de barras para conter sobreoperação. + +24) NOVA RODADA IMPLEMENTADA (V36-V40) +- V36 Divergência Regular + Pivô (`robo_ifr_v36_divergencia_regular_pivo.txt`) + - Divergência de IFR confirmada por rompimento de pivô curto. + +- V37 ADX Faixa Operável (`robo_ifr_v37_adx_faixa_operavel.txt`) + - Opera IFR apenas quando ADX está dentro de faixa de mercado operável. + +- V38 VWAP Distância Máxima (`robo_ifr_v38_vwap_distancia_max.txt`) + - Bloqueia entrada quando preço está muito distante da VWAP aproximada. + +- V39 ORB + IFR (`robo_ifr_v39_orb_ifr.txt`) + - Exige rompimento da faixa inicial do dia (ORB) junto ao gatilho IFR. + +- V40 Saída Estrutura + Tempo (`robo_ifr_v40_stop_estrutura_tempo.txt`) + - Mantém entrada simples por IFR e reforça saída por perda estrutural/tempo. + +25) NOVA RODADA IMPLEMENTADA (V41-V45) +- V41 Percentil 20/80 (`robo_ifr_v41_percentil_20_80.txt`) + - Bandas dinâmicas de IFR por percentis 20/80. + +- V42 Parâmetros por Sessão (`robo_ifr_v42_parametros_por_sessao.txt`) + - Ajusta extremos/retornos de IFR por bloco horário. + +- V43 VWAP Direcional (`robo_ifr_v43_vwap_direcional.txt`) + - Só compra acima da VWAP aproximada e só vende abaixo. + +- V44 VWAP Distância Dupla (`robo_ifr_v44_vwap_distancia_dupla.txt`) + - Exige faixa de distância mínima e máxima da VWAP. + +- V45 Volume por Horário (`robo_ifr_v45_volume_por_horario.txt`) + - Filtro de volume ajustado por janela da sessão. + +26) NOVA RODADA IMPLEMENTADA (V46-V50) +- V46 Direção Abertura Refinada (`robo_ifr_v46_direcao_abertura_refinada.txt`) + - Viés direcional definido pela referência da abertura. + +- V47 ORB Confirmação Dupla (`robo_ifr_v47_orb_confirmacao_dupla.txt`) + - Exige rompimento da ORB com confirmação por dois candles. + +- V48 Circuit Breaker Tempo (`robo_ifr_v48_circuit_breaker_tempo.txt`) + - Bloqueia novas entradas ao exceder saídas por tempo no dia. + +- V49 Limite Trades Progressivo (`robo_ifr_v49_limite_trades_progressivo.txt`) + - Aplica filtro extra após metade do limite diário de trades. + +- V50 Meta/Perda Proxy (`robo_ifr_v50_meta_perda_proxy.txt`) + - Pausa operacional por metas e limites diários proxy (saída IFR50/tempo). + +27) ANÁLISE DOS APROVADOS POR TIMEFRAME (META >= 60%) +- Arquivo de apoio: `analise_aprovados_timeframes_IFR.txt`. +- Cobertura alvo: 60, 30, 15, 5 e 2 minutos. +- Foco: manter positivo e filtrar estratégias abaixo de 60% de vencedoras. \ No newline at end of file diff --git a/automacao_backtests/NeologicaProfitAPIbacktest.txt b/automacao_backtests/NeologicaProfitAPIbacktest.txt new file mode 100644 index 0000000..6ee166c --- /dev/null +++ b/automacao_backtests/NeologicaProfitAPIbacktest.txt @@ -0,0 +1 @@ +da para eu usar uma API para buscar os resultados de operação da neologica para o Profit? queria também os dados do price action historico para estudos dos ultimos 3 anos. \ No newline at end of file diff --git a/estudo_teorias/0326_diarioDeBordo.md b/estudo_teorias/0326_diarioDeBordo.md new file mode 100644 index 0000000..4f3a4a0 --- /dev/null +++ b/estudo_teorias/0326_diarioDeBordo.md @@ -0,0 +1,18 @@ +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- +----------------------------- \ No newline at end of file diff --git a/profit_estudos_cores/mar_IFR_reversaoComVolume.txt b/profit_estudos_cores/mar_IFR_reversaoComVolume.txt deleted file mode 100644 index b9da2d4..0000000 --- a/profit_estudos_cores/mar_IFR_reversaoComVolume.txt +++ /dev/null @@ -1,258 +0,0 @@ -{ - Indicador: mar_IFR_reversaoComVolume - Autor: Wesley (Gemini Code Assist) - Descrição: Identifica velas de reversão (Martelo/Estrela) validadas por - Volume acima da média (Lei de Esforço vs Resultado) - e adiciona módulo IFR com alertas em 10, 20, 50, 80 e 90. -} - -input - UsarPresetRegime(true); - RegimePreset(1); // 1=Manhã Forte, 2=Almoço, 3=Pós-14h, 0=Manual - AtivarAnalisePrimeiroCandle(true); - FatorVolume(1.5); // No WIN 2min, 1.5x tende a capturar melhor absorção relevante - PeriodoMedia(20); - MultiplicadorPavio(1.5); // Pavio principal em relação ao corpo - MaxPavioOpostoCorpo(1.2); // Limite do pavio oposto em relação ao corpo - UsarFiltroProximidadeMME20(false); - DistanciaMaxMME20Perc(0.35); // Distância máxima (%) do fechamento para a MME20 - - // Módulo IFR + Alarmes por nível - AtivarModuloIFR(true); - PeriodoIFR(14); - AtivarAlarmeIFR(true); - IFRAlvoCompra(10); - IFRAlvoCompra2(20); - IFRAlvoVenda2(80); - IFRAlvoVenda(90); - -var - vMediaVol, fMME20, fDistanciaMME20Perc : float; - fFatorVolumeEfetivo, fMultiplicadorPavioEfetivo, fMaxPavioOpostoEfetivo, fDistMaxMME20Efetiva : float; - fIFR : float; - bVolumeAlto : boolean; - bMartelo, bEstrela, bRejeicaoForteAlta, bRejeicaoForteBaixa : boolean; - bDojiPrimeiro, bAbsorcaoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; - bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; - bAlertaIFRCompra, bAlertaIFRCompra2, bAlertaIFRVenda2, bAlertaIFRVenda : boolean; - fMaxAnterior, fMinAnterior : float; - TamCorpo, TamPavioSup, TamPavioInf, Range, fFechamentoPosicao : float; - CorAbsorcaoFundo, CorAbsorcaoTopo, CorNeutra, CorRejeicaoContexto, CorIndefinicao : integer; - bMesmoDia, bProximoMME20, bUsarFiltroProxEfetivo : boolean; - iRegimeEfetivo : integer; - -begin - // --- 1. CONFIGURAÇÃO --- - CorAbsorcaoFundo := RGB(0, 255, 0); // Verde (Sentido de Alta) - CorAbsorcaoTopo := RGB(255, 0, 0); // Vermelho (Sentido de Baixa) - CorNeutra := RGB(105, 105, 105); // Cinza Escuro - CorRejeicaoContexto := RGB(255, 140, 0); // Laranja (Rejeição forte por contexto) - CorIndefinicao := RGB(255, 255, 255); // Branco - - // --- 1.1 PRESET DE REGIME (PARTE PRINCIPAL) --- - iRegimeEfetivo := RegimePreset; - if (iRegimeEfetivo < 0) then - iRegimeEfetivo := 0; - if (iRegimeEfetivo > 3) then - iRegimeEfetivo := 3; - - // Fallback manual - fFatorVolumeEfetivo := FatorVolume; - fMultiplicadorPavioEfetivo := MultiplicadorPavio; - fMaxPavioOpostoEfetivo := MaxPavioOpostoCorpo; - bUsarFiltroProxEfetivo := UsarFiltroProximidadeMME20; - fDistMaxMME20Efetiva := DistanciaMaxMME20Perc; - - if UsarPresetRegime then - begin - // 1 = Manhã forte (09:00-11:00) - if (iRegimeEfetivo = 1) then - begin - fFatorVolumeEfetivo := 1.7; - fMultiplicadorPavioEfetivo := 1.6; - fMaxPavioOpostoEfetivo := 1.0; - bUsarFiltroProxEfetivo := True; - fDistMaxMME20Efetiva := 0.30; - end - // 2 = Almoço (12:00-13:00) - else if (iRegimeEfetivo = 2) then - begin - fFatorVolumeEfetivo := 1.9; - fMultiplicadorPavioEfetivo := 1.8; - fMaxPavioOpostoEfetivo := 0.9; - bUsarFiltroProxEfetivo := True; - fDistMaxMME20Efetiva := 0.25; - end - // 3 = Pós-14h (14:00-17:00) - else if (iRegimeEfetivo = 3) then - begin - fFatorVolumeEfetivo := 1.5; - fMultiplicadorPavioEfetivo := 1.5; - fMaxPavioOpostoEfetivo := 1.2; - bUsarFiltroProxEfetivo := True; - fDistMaxMME20Efetiva := 0.35; - end; - end; - - // --- PINTURA PADRÃO --- - PaintBar(CorNeutra); // Pinta tudo de cinza antes de verificar os sinais - - // --- 2. ANÁLISE DE VOLUME (O ESFORÇO) --- - vMediaVol := Media(PeriodoMedia, Volume); - fMME20 := MediaExp(20, Close); - // Verifica se o volume atual é relevante (ex: > 1.5x a média) - bVolumeAlto := Volume >= (vMediaVol * fFatorVolumeEfetivo); - - // --- 2.1 FILTRO OPCIONAL: PROXIMIDADE DA MME20 --- - if (fMME20 > 0) then - fDistanciaMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 - else - fDistanciaMME20Perc := 999; - - bProximoMME20 := (fDistanciaMME20Perc <= fDistMaxMME20Efetiva); - - // --- 2.2 MÓDULO IFR + ALERTAS --- - if AtivarModuloIFR then - fIFR := IFR(PeriodoIFR) - else - fIFR := 50; - - bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) - or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); - - bAlertaIFRCompra2 := ((fIFR[1] > IFRAlvoCompra2) and (fIFR <= IFRAlvoCompra2)) - or ((fIFR[1] < IFRAlvoCompra2) and (fIFR >= IFRAlvoCompra2)); - - bAlertaIFRVenda2 := ((fIFR[1] > IFRAlvoVenda2) and (fIFR <= IFRAlvoVenda2)) - or ((fIFR[1] < IFRAlvoVenda2) and (fIFR >= IFRAlvoVenda2)); - - bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) - or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); - - if AtivarModuloIFR and AtivarAlarmeIFR then - begin - if bAlertaIFRCompra or bAlertaIFRCompra2 then - Alert(CorAbsorcaoFundo) - else if bAlertaIFRVenda2 or bAlertaIFRVenda then - Alert(CorAbsorcaoTopo); - end; - - // --- 3. ANATOMIA DO CANDLE (O RESULTADO) --- - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - if (Range > 0) then - fFechamentoPosicao := (Close - Low) / Range - else - fFechamentoPosicao := 0.5; - fMaxAnterior := High[1]; - fMinAnterior := Low[1]; - bMesmoDia := (Date = Date[1]); - - // Análise dedicada do primeiro candle do dia - if (Range > 0) and (not bMesmoDia) and AtivarAnalisePrimeiroCandle then - begin - bDojiPrimeiro := (TamCorpo <= (Range * 0.10)); - bAbsorcaoPrimeiro := bVolumeAlto and (TamCorpo <= (Range * 0.35)); - - bIniciativaAltaPrimeiro := (Close > Open) - and bVolumeAlto - and (TamCorpo >= (Range * 0.60)) - and (fFechamentoPosicao >= 0.75); - - bIniciativaBaixaPrimeiro := (Close < Open) - and bVolumeAlto - and (TamCorpo >= (Range * 0.60)) - and (fFechamentoPosicao <= 0.25); - - bGapAltaPrimeiro := (Open > Close[1]); - bGapBaixaPrimeiro := (Open < Close[1]); - - bArmadilhaPrimeiro := (bGapAltaPrimeiro and (Close < Open) and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))) - or (bGapBaixaPrimeiro and (Close > Open) and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.2)))); - - if bArmadilhaPrimeiro then - begin - PaintBar(CorRejeicaoContexto); - PlotText("1C_TRAP", CorRejeicaoContexto, 8, 0, Close); - end - else if bIniciativaAltaPrimeiro then - begin - PaintBar(CorAbsorcaoFundo); - PlotText("1C_UP", CorAbsorcaoFundo, 8, 0, Low * 0.999); - end - else if bIniciativaBaixaPrimeiro then - begin - PaintBar(CorAbsorcaoTopo); - PlotText("1C_DN", CorAbsorcaoTopo, 8, 0, High * 1.001); - end - else if bAbsorcaoPrimeiro or bDojiPrimeiro then - PaintBar(CorIndefinicao) - else if (Close > Open) then - PaintBar(CorAbsorcaoFundo) - else if (Close < Open) then - PaintBar(CorAbsorcaoTopo) - else - PaintBar(CorIndefinicao); - end; - - // Proteção contra divisão por zero - // Ignora o primeiro candle do dia para evitar sinal falso na abertura - if (Range > 0) and bMesmoDia then - begin - // Definição de Martelo (Força Compradora) - // Pavio inferior dominante e pavio superior controlado - bMartelo := (TamPavioInf >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioSup <= (TamCorpo * fMaxPavioOpostoEfetivo)); - - // Definição de Estrela (Força Vendedora) - // Pavio superior dominante e pavio inferior controlado - bEstrela := (TamPavioSup >= (TamCorpo * fMultiplicadorPavioEfetivo)) and (TamPavioInf <= (TamCorpo * fMaxPavioOpostoEfetivo)); - - // Rejeição forte por contexto (pinta laranja mesmo sem volume) - // Alta: varre mínima anterior e fecha recuperando com pavio inferior dominante - bRejeicaoForteAlta := (Low < fMinAnterior) - and (Close > Open) - and (Close >= (Low + (Range * 0.55))) - and (TamPavioInf >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); - - // Baixa: varre máxima anterior e fecha rejeitando com pavio superior dominante - bRejeicaoForteBaixa := (High > fMaxAnterior) - and (Close < Open) - and (Close <= (High - (Range * 0.55))) - and (TamPavioSup >= (TamCorpo * (fMultiplicadorPavioEfetivo + 0.3))); - - // --- 4. SINALIZAÇÃO --- - - // 4.1 Contexto de rejeição forte (prioridade, independente de volume) - if (bRejeicaoForteAlta or bRejeicaoForteBaixa) then - begin - PaintBar(CorRejeicaoContexto); - PlotText("RJ", CorRejeicaoContexto, 8, 0, Close); - end - else - begin - - // Só sinaliza se tiver Volume Alto + Padrão de Reversão - // e, opcionalmente, preço perto da MME20 para reduzir ruído de lateral - if bVolumeAlto and ((not bUsarFiltroProxEfetivo) or bProximoMME20) then - begin - if bMartelo then - begin - PaintBar(CorAbsorcaoFundo); // Pinta o candle atual - PaintBar(CorAbsorcaoFundo); // Reforça coloração no candle de sinal - PlotText("ABS", CorAbsorcaoFundo, 8, 0, Low * 0.999); - Alert(CorAbsorcaoFundo); - end; - - if bEstrela then - begin - PaintBar(CorAbsorcaoTopo); // Pinta o candle atual - PaintBar(CorAbsorcaoTopo); // Reforça coloração no candle de sinal - PlotText("ABS", CorAbsorcaoTopo, 8, 0, High * 1.001); - Alert(CorAbsorcaoTopo); - end; - end; - end; - end; -end; \ No newline at end of file From 0dc9264a242289816dc157af8869c9c618dcbcf4 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 19:35:45 -0300 Subject: [PATCH 18/63] top 10 IFR --- .vscode/settings.json | 6 +- .../ranking_melhores_ate_momento.txt | 107 +++--- ...bo_ifr_v11_agressivo_reentrada30min58%.txt | 102 +++--- .../robo_ifr_v1_reversao_extremos60min71%.txt | 146 ++++----- ...o_ifr_v20_ifr_assimetrico_lado30min62%.txt | 92 +++--- ...robo_ifr_v23_dupla_confirmacao15min87%.txt | 106 +++--- ...obo_ifr_v45_volume_por_horario60min75%.txt | 118 +++---- ..._ifr_v47_orb_confirmacao_dupla60min66%.txt | 130 ++++---- ...obo_ifr_v5_regime_volatilidade60min90%.txt | 156 ++++----- .../robo_ifr_v6_saida_hibrida60min77%.txt | 190 +++++------ .../robo_ifr_v7_resgate_contexto30min84%.txt | 304 +++++++++--------- estudo_teorias/AulaVascoMamede.md | 0 12 files changed, 733 insertions(+), 724 deletions(-) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v11_agressivo_reentrada30min58%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v1_reversao_extremos60min71%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v23_dupla_confirmacao15min87%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v45_volume_por_horario60min75%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v5_regime_volatilidade60min90%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v6_saida_hibrida60min77%.txt (96%) rename automacao_backtests/IFR_RSI/{ => top10}/robo_ifr_v7_resgate_contexto30min84%.txt (96%) create mode 100644 estudo_teorias/AulaVascoMamede.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 609a404..2ca0024 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,7 @@ { - "python.defaultInterpreterPath": "C:/Users/zilva/AppData/Local/Programs/Python/Python312/python.exe" + "python.defaultInterpreterPath": "C:/Users/zilva/AppData/Local/Programs/Python/Python312/python.exe", + "chat.tools.terminal.autoApprove": { + "ForEach-Object": true, + "1..50": true + } } diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt index 2949086..572249e 100644 --- a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt +++ b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt @@ -1,65 +1,70 @@ -RANKING DOS MELHORES ROBÔS IFR (ATÉ O MOMENTO) +RANKING DOS MELHORES ROBÔS IFR (CSV COMPILADO) + +Data da compilação +- 02/03/2026 Base considerada -- Robôs consolidados: v1, v4, v5, v6 e v7. -- Critério principal: resultado líquido positivo por timeframe. -- Critério secundário: % de vencedoras >= 60%. -- Classificação por timeframe: - - APROVADO = saldo > 0 e winrate >= 60% - - ALERTA = winrate >= 60% e saldo <= 0 - - REPROVADO = demais casos +- 87 arquivos CSV em resultadosAprovadosPorTimeframe. +- Critério principal: ResultadoFinal (último campo Total do CSV). +- Critério secundário: Winrate (% de operações com resultado > 0). + +Classificação por timeframe (regra usada) +- APROVADO = saldo > 0 e winrate >= 60% +- ALERTA = winrate >= 60% e saldo <= 0 +- REPROVADO = demais casos ======================================== -RANKING GERAL DE ROBÔS (ATÉ AGORA) +PERÍODO DA MELHOR OPERAÇÃO ======================================== -1º) v1_reversao_extremos -- Placar: 3 aprovados / 1 alerta / 1 reprovado -- Aprovados: 2min, 30min, 60min - -2º) v5_regime_volatilidade -- Placar: 2 aprovados / 3 alertas / 0 reprovados -- Aprovados: 30min, 60min - -3º) v7_resgate_contexto -- Placar: 2 aprovados / 1 alerta / 2 reprovados -- Aprovados: 2min, 30min +Melhor operação individual encontrada +- Robô/arquivo: robo_ifr_v11_agressivo_reentrada60min.csv +- Resultado da operação: +560,00 +- Abertura: 27/08/2025 09:00:00 +- Fechamento: 28/08/2025 09:00:00 +- Duração: 1d -4º) v6_saida_hibrida -- Placar: 2 aprovados / 0 alertas / 3 reprovados -- Aprovados: 30min, 60min - -5º) v4_divergencia_confirmada -- Placar: 1 aprovado / 1 alerta / 3 reprovados -- Aprovado: 60min +Melhor período (timeframe) em resultado consolidado +- 60min: resultado total +10.070,00 (18 CSV) | média por CSV +559,44 | winrate médio 66,24% +- 30min: resultado total +9.877,00 (16 CSV) | média por CSV +617,31 | winrate médio 65,98% ======================================== -MÉTRICAS NOVAS (V5, V6, V7) +TOP 10 ARQUIVOS (RESULTADO FINAL) ======================================== -v5_regime_volatilidade -- 2min: saldo -1450.00 | winrate 60.17% | 118 ops | ALERTA -- 5min: saldo -2077.00 | winrate 68.85% | 62 ops | ALERTA -- 15min: saldo -1163.00 | winrate 68.00% | 25 ops | ALERTA -- 30min: saldo +451.00 | winrate 81.82% | 22 ops | APROVADO -- 60min: saldo +1563.00 | winrate 90.91% | 11 ops | APROVADO - -v6_saida_hibrida -- 2min: saldo +186.00 | winrate 50.98% | 153 ops | REPROVADO -- 5min: saldo -1967.00 | winrate 47.66% | 107 ops | REPROVADO -- 15min: saldo -894.00 | winrate 54.72% | 53 ops | REPROVADO -- 30min: saldo +2254.00 | winrate 81.48% | 27 ops | APROVADO -- 60min: saldo +2315.00 | winrate 77.78% | 18 ops | APROVADO +1) v6 | 60min | saldo +2.315,00 | winrate 77,78% | 18 ops + arquivo: robo_ifr_v6_saida_hibrida60min.csv +2) v6 | 30min | saldo +2.254,00 | winrate 81,48% | 27 ops + arquivo: robo_ifr_v6_saida_hibrida30min.csv +3) v45 | 60min | saldo +1.643,00 | winrate 75,00% | 12 ops + arquivo: robo_ifr_v45_volume_por_horario60min.csv +4) v5 | 60min | saldo +1.563,00 | winrate 90,91% | 11 ops + arquivo: robo_ifr_v5_regime_volatilidade60min.csv +5) v45 | 2min | saldo +1.481,00 | winrate 68,22% | 129 ops + arquivo: robo_ifr_v45_volume_por_horario02min.csv +6) v20 | 30min | saldo +1.393,00 | winrate 62,50% | 40 ops + arquivo: robo_ifr_v20_ifr_assimetrico_lado30min.csv +7) v1 | 60min | saldo +1.304,00 | winrate 80,00% | 10 ops + arquivo: robo_ifr_v1_reversao_extremos60min71%.csv +8) v7 | 30min | saldo +1.291,00 | winrate 85,71% | 7 ops + arquivo: robo_ifr_v7_resgate_contexto30min.csv +9) v23 | 15min | saldo +1.253,00 | winrate 87,50% | 16 ops + arquivo: robo_ifr_v23_dupla_confirmacao15min.csv +10) v11 | 30min | saldo +1.245,00 | winrate 58,33% | 12 ops + arquivo: robo_ifr_v11_agressivo_reentrada30min.csv -v7_resgate_contexto -- 2min: saldo +664.00 | winrate 80.00% | 10 ops | APROVADO -- 5min: saldo -1354.00 | winrate 33.33% | 12 ops | REPROVADO -- 15min: saldo +44.00 | winrate 57.14% | 7 ops | REPROVADO -- 30min: saldo +1291.00 | winrate 85.71% | 7 ops | APROVADO -- 60min: saldo -449.00 | winrate 75.00% | 4 ops | ALERTA +======================================== +RESUMO POR TIMEFRAME (87 CSV) +======================================== +- 60min: 18 CSV | saldo total +10.070,00 | média +559,44 | winrate médio 66,24% +- 30min: 16 CSV | saldo total +9.877,00 | média +617,31 | winrate médio 65,98% +- 1min: 2 CSV | saldo total -240,00 | média -120,00 | winrate médio 60,72% +- 2min: 17 CSV | saldo total -7.098,00 | média -417,53 | winrate médio 62,12% +- 15min: 17 CSV | saldo total -9.479,00 | média -557,59 | winrate médio 62,59% +- 5min: 17 CSV | saldo total -28.182,00 | média -1.657,76 | winrate médio 51,60% ======================================== CONCLUSÃO PRÁTICA ======================================== -- Melhor robô até o momento: v1_reversao_extremos. -- Melhor combinação de consistência sem reprovados: v5 (mas com 3 alertas). -- Melhor potencial de tendência (30/60): v6. -- Melhor estratégia curta (2/30): v7. \ No newline at end of file +- Melhor robô/timeframe no consolidado: v6 em 60min (saldo +2.315,00). +- Melhor período operacional geral: 60min e 30min (únicos com saldo total positivo forte). +- Timeframe mais fraco no período analisado: 5min (maior saldo agregado negativo). +- Próximo foco: priorizar carteira em 60min/30min e revalidar regras de 5min antes de usar em produção. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.txt index fd01ce0..95c06e7 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v11_agressivo_reentrada30min58%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.txt @@ -1,52 +1,52 @@ -{ - Estrategia: robo_ifr_v11_agressivo_reentrada - Autor: Wesley - Descricao: Abordagem agressiva com zona IFR mais aberta e uma reentrada por direcao. - Foco em maior numero de oportunidades com controle por tempo. -} - -input - PeriodoIFR(9); - IFREntradaCompra(40); - IFREntradaVenda(60); - IFRExtremoCompra(30); - IFRExtremoVenda(70); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(10); - MaxReentradasDirecao(1); - -var - iBarrasEmPosicao, iReentradaCompra, iReentradaVenda : integer; - fIFR : float; - -begin - fIFR := IFR(PeriodoIFR); - - if (not IsBought) and (not IsSold) then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREntradaCompra) and (iReentradaCompra <= MaxReentradasDirecao) then - begin - BuyAtMarket; - iReentradaCompra := iReentradaCompra + 1; - iReentradaVenda := 0; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREntradaVenda) and (iReentradaVenda <= MaxReentradasDirecao) then - begin - SellShortAtMarket; - iReentradaVenda := iReentradaVenda + 1; - iReentradaCompra := 0; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v11_agressivo_reentrada + Autor: Wesley + Descricao: Abordagem agressiva com zona IFR mais aberta e uma reentrada por direcao. + Foco em maior numero de oportunidades com controle por tempo. +} + +input + PeriodoIFR(9); + IFREntradaCompra(40); + IFREntradaVenda(60); + IFRExtremoCompra(30); + IFRExtremoVenda(70); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + MaxReentradasDirecao(1); + +var + iBarrasEmPosicao, iReentradaCompra, iReentradaVenda : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREntradaCompra) and (iReentradaCompra <= MaxReentradasDirecao) then + begin + BuyAtMarket; + iReentradaCompra := iReentradaCompra + 1; + iReentradaVenda := 0; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREntradaVenda) and (iReentradaVenda <= MaxReentradasDirecao) then + begin + SellShortAtMarket; + iReentradaVenda := iReentradaVenda + 1; + iReentradaCompra := 0; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.txt index 740a35c..50197c4 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v1_reversao_extremos60min71%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.txt @@ -1,73 +1,73 @@ -{ - Estrategia: robo_ifr_v1_reversao_extremos - Autor: Wesley - Descricao: Reversao por extremos de IFR com candle de rejeicao + volume. - Entrada em extremos e saida no IFR 50. -} - -input - PeriodoIFR(9); - IFREntradaCompra(30); - IFREntradaVenda(70); - PeriodoMediaVolume(20); - FatorVolume(1.2); - UsarFiltroVolume(true); - MultiplicadorPavio(1.5); - MaxPavioOpostoCorpo(1.2); - DojiMaxCorpoPerc(0.12); - -var - fIFR, vMediaVol : float; - Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; - bVolumeAlto : boolean; - bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; - bSinalCompra, bSinalVenda : boolean; - -begin - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - - if Range > 0 then - fFechamentoPosicao := (Close - Low) / Range - else - fFechamentoPosicao := 0.5; - - bMartelo := (Range > 0) - and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); - - bEstrela := (Range > 0) - and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - - bDojiAlta := (Range > 0) - and (TamCorpo <= (Range * DojiMaxCorpoPerc)) - and (fFechamentoPosicao >= 0.50); - - bDojiBaixa := (Range > 0) - and (TamCorpo <= (Range * DojiMaxCorpoPerc)) - and (fFechamentoPosicao < 0.50); - - bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); - bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); - - if (not IsBought) and (not IsSold) then - begin - if (fIFR <= IFREntradaCompra) and bSinalCompra then - BuyAtMarket - else if (fIFR >= IFREntradaVenda) and bSinalVenda then - SellShortAtMarket; - end; - - if IsBought and (fIFR >= 50) then - ClosePosition; - - if IsSold and (fIFR <= 50) then - ClosePosition; -end; +{ + Estrategia: robo_ifr_v1_reversao_extremos + Autor: Wesley + Descricao: Reversao por extremos de IFR com candle de rejeicao + volume. + Entrada em extremos e saida no IFR 50. +} + +input + PeriodoIFR(9); + IFREntradaCompra(30); + IFREntradaVenda(70); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarFiltroVolume(true); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + DojiMaxCorpoPerc(0.12); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao >= 0.50); + + bDojiBaixa := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao < 0.50); + + bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); + bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + BuyAtMarket + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 50) then + ClosePosition; + + if IsSold and (fIFR <= 50) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt index 0cb75ac..99107d9 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt @@ -1,47 +1,47 @@ -{ - Estrategia: robo_ifr_v20_ifr_assimetrico_lado - Autor: Wesley - Descricao: IFR com niveis assimetricos para compra e venda. - Ajusta sensibilidade por lado para refletir comportamento diferente do mercado. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(32); - IFREtornoCompra(38); - IFRExtremoVenda(68); - IFREtornoVenda(62); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(15); - -var - iBarrasEmPosicao : integer; - fIFR : float; - -begin - fIFR := IFR(PeriodoIFR); - - if (not IsBought) and (not IsSold) then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v20_ifr_assimetrico_lado + Autor: Wesley + Descricao: IFR com niveis assimetricos para compra e venda. + Ajusta sensibilidade por lado para refletir comportamento diferente do mercado. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(32); + IFREtornoCompra(38); + IFRExtremoVenda(68); + IFREtornoVenda(62); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR : float; + +begin + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.txt index 0fffaf0..81eebba 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v23_dupla_confirmacao15min87%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.txt @@ -1,54 +1,54 @@ -{ - Estrategia: robo_ifr_v23_dupla_confirmacao - Autor: Wesley - Descricao: IFR com zona neutra (no-trade zone) e confirmacao por 2 candles. - Objetivo: reduzir falsos sinais de retorno sem continuidade. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(36); - IFRExtremoVenda(70); - IFREtornoVenda(64); - ZonaNeutraMin(45); - ZonaNeutraMax(55); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(13); - -var - iBarrasEmPosicao : integer; - fIFR : float; - bConfirmacaoCompra, bConfirmacaoVenda, bForaZonaNeutra : boolean; - -begin - fIFR := IFR(PeriodoIFR); - - bConfirmacaoCompra := (Close > Close[1]) and (Close[1] > Close[2]); - bConfirmacaoVenda := (Close < Close[1]) and (Close[1] < Close[2]); - bForaZonaNeutra := (fIFR < ZonaNeutraMin) or (fIFR > ZonaNeutraMax); - - if (not IsBought) and (not IsSold) and bForaZonaNeutra then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfirmacaoCompra then - begin - BuyAtMarket; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfirmacaoVenda then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v23_dupla_confirmacao + Autor: Wesley + Descricao: IFR com zona neutra (no-trade zone) e confirmacao por 2 candles. + Objetivo: reduzir falsos sinais de retorno sem continuidade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(36); + IFRExtremoVenda(70); + IFREtornoVenda(64); + ZonaNeutraMin(45); + ZonaNeutraMax(55); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(13); + +var + iBarrasEmPosicao : integer; + fIFR : float; + bConfirmacaoCompra, bConfirmacaoVenda, bForaZonaNeutra : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + bConfirmacaoCompra := (Close > Close[1]) and (Close[1] > Close[2]); + bConfirmacaoVenda := (Close < Close[1]) and (Close[1] < Close[2]); + bForaZonaNeutra := (fIFR < ZonaNeutraMin) or (fIFR > ZonaNeutraMax); + + if (not IsBought) and (not IsSold) and bForaZonaNeutra then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfirmacaoCompra then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfirmacaoVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v45_volume_por_horario60min75%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v45_volume_por_horario60min75%.txt index 20cfde9..314b497 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v45_volume_por_horario60min75%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v45_volume_por_horario60min75%.txt @@ -1,60 +1,60 @@ -{ - Estrategia: robo_ifr_v45_volume_por_horario - Autor: Wesley - Descricao: IFR com filtro de volume relativo por janela horaria simples. - Na abertura exige volume maior; depois exige volume moderado. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - PeriodoMediaVolume(20); - HoraAberturaFim(1030); - FatorVolumeAbertura(1.3); - FatorVolumeMeio(1.0); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(12); - -var - iBarrasEmPosicao : integer; - fIFR, vMediaVol, fFatorAtual : float; - bVolumeOk : boolean; - -begin - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - - if Time <= HoraAberturaFim then - fFatorAtual := FatorVolumeAbertura - else - fFatorAtual := FatorVolumeMeio; - - bVolumeOk := (Volume >= (vMediaVol * fFatorAtual)); - - if (not IsBought) and (not IsSold) and bVolumeOk then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v45_volume_por_horario + Autor: Wesley + Descricao: IFR com filtro de volume relativo por janela horaria simples. + Na abertura exige volume maior; depois exige volume moderado. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + HoraAberturaFim(1030); + FatorVolumeAbertura(1.3); + FatorVolumeMeio(1.0); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, vMediaVol, fFatorAtual : float; + bVolumeOk : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + + if Time <= HoraAberturaFim then + fFatorAtual := FatorVolumeAbertura + else + fFatorAtual := FatorVolumeMeio; + + bVolumeOk := (Volume >= (vMediaVol * fFatorAtual)); + + if (not IsBought) and (not IsSold) and bVolumeOk then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt index 948d7c8..42ffa0a 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt @@ -1,66 +1,66 @@ -{ - Estrategia: robo_ifr_v47_orb_confirmacao_dupla - Autor: Wesley - Descricao: ORB + IFR com dupla confirmacao de direcao por candles. - Rompimento da ORB e dois fechamentos na direcao do trade. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - HoraFimORB(930); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(12); - -var - iBarrasEmPosicao : integer; - fIFR, fORBHigh, fORBLow : float; - bConfCompra, bConfVenda : boolean; - -begin - fIFR := IFR(PeriodoIFR); - - if Date <> Date[1] then - begin - fORBHigh := High; - fORBLow := Low; - end; - - if Time <= HoraFimORB then - begin - if High > fORBHigh then - fORBHigh := High; - if Low < fORBLow then - fORBLow := Low; - end; - - bConfCompra := (Close > Close[1]) and (Close[1] > Close[2]); - bConfVenda := (Close < Close[1]) and (Close[1] < Close[2]); - - if (not IsBought) and (not IsSold) and (Time > HoraFimORB) then - begin - if (Close > fORBHigh) and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfCompra then - begin - BuyAtMarket; - end - else if (Close < fORBLow) and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfVenda then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v47_orb_confirmacao_dupla + Autor: Wesley + Descricao: ORB + IFR com dupla confirmacao de direcao por candles. + Rompimento da ORB e dois fechamentos na direcao do trade. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + HoraFimORB(930); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fORBHigh, fORBLow : float; + bConfCompra, bConfVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + fORBHigh := High; + fORBLow := Low; + end; + + if Time <= HoraFimORB then + begin + if High > fORBHigh then + fORBHigh := High; + if Low < fORBLow then + fORBLow := Low; + end; + + bConfCompra := (Close > Close[1]) and (Close[1] > Close[2]); + bConfVenda := (Close < Close[1]) and (Close[1] < Close[2]); + + if (not IsBought) and (not IsSold) and (Time > HoraFimORB) then + begin + if (Close > fORBHigh) and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and bConfCompra then + begin + BuyAtMarket; + end + else if (Close < fORBLow) and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and bConfVenda then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v5_regime_volatilidade60min90%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v5_regime_volatilidade60min90%.txt index 61459c6..f382c5d 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v5_regime_volatilidade60min90%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v5_regime_volatilidade60min90%.txt @@ -1,78 +1,78 @@ -{ - Estrategia: robo_ifr_v5_regime_volatilidade - Autor: Wesley - Descricao: Ajusta extremos de IFR por regime de volatilidade (ATR relativo). - Alta volatilidade usa extremos mais amplos; baixa volatilidade mais estreitos. -} - -input - PeriodoIFR(9); - PeriodoATR(14); - PeriodoATRMedia(50); - IFREntradaCompraAltaVol(20); - IFREntradaVendaAltaVol(80); - IFREntradaCompraBaixaVol(35); - IFREntradaVendaBaixaVol(65); - PeriodoMediaVolume(20); - FatorVolume(1.1); - UsarFiltroVolume(false); - MultiplicadorPavio(1.5); - MaxPavioOpostoCorpo(1.2); - -var - fIFR, vMediaVol, fATR, fATRMedio : float; - fCompraNivel, fVendaNivel : float; - Range, TamCorpo, TamPavioSup, TamPavioInf : float; - bVolumeAlto, bAltaVolatilidade : boolean; - bMartelo, bEstrela : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fATR := Media(PeriodoATR, Range); - fATRMedio := Media(PeriodoATRMedia, fATR); - if fATRMedio <= 0 then - fATRMedio := 0.01; - - bAltaVolatilidade := (fATR >= fATRMedio); - - if bAltaVolatilidade then - begin - fCompraNivel := IFREntradaCompraAltaVol; - fVendaNivel := IFREntradaVendaAltaVol; - end - else - begin - fCompraNivel := IFREntradaCompraBaixaVol; - fVendaNivel := IFREntradaVendaBaixaVol; - end; - - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - - bMartelo := (Range > 0) - and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); - - bEstrela := (Range > 0) - and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - - if (not IsBought) and (not IsSold) then - begin - if (fIFR <= fCompraNivel) and bMartelo and bVolumeAlto then - BuyAtMarket - else if (fIFR >= fVendaNivel) and bEstrela and bVolumeAlto then - SellShortAtMarket; - end; - - if IsBought and (fIFR >= 50) then - ClosePosition; - - if IsSold and (fIFR <= 50) then - ClosePosition; -end; +{ + Estrategia: robo_ifr_v5_regime_volatilidade + Autor: Wesley + Descricao: Ajusta extremos de IFR por regime de volatilidade (ATR relativo). + Alta volatilidade usa extremos mais amplos; baixa volatilidade mais estreitos. +} + +input + PeriodoIFR(9); + PeriodoATR(14); + PeriodoATRMedia(50); + IFREntradaCompraAltaVol(20); + IFREntradaVendaAltaVol(80); + IFREntradaCompraBaixaVol(35); + IFREntradaVendaBaixaVol(65); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + +var + fIFR, vMediaVol, fATR, fATRMedio : float; + fCompraNivel, fVendaNivel : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto, bAltaVolatilidade : boolean; + bMartelo, bEstrela : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fATR := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoATRMedia, fATR); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bAltaVolatilidade := (fATR >= fATRMedio); + + if bAltaVolatilidade then + begin + fCompraNivel := IFREntradaCompraAltaVol; + fVendaNivel := IFREntradaVendaAltaVol; + end + else + begin + fCompraNivel := IFREntradaCompraBaixaVol; + fVendaNivel := IFREntradaVendaBaixaVol; + end; + + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= fCompraNivel) and bMartelo and bVolumeAlto then + BuyAtMarket + else if (fIFR >= fVendaNivel) and bEstrela and bVolumeAlto then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 50) then + ClosePosition; + + if IsSold and (fIFR <= 50) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v6_saida_hibrida60min77%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v6_saida_hibrida60min77%.txt index 06b7ae6..53bf5ce 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v6_saida_hibrida60min77%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v6_saida_hibrida60min77%.txt @@ -1,95 +1,95 @@ -{ - Estrategia: robo_ifr_v6_saida_hibrida - Autor: Wesley - Descricao: Entrada por extremos de IFR e saida hibrida: - sinal contrario forte OU IFR 50 OU tempo maximo em barras. -} - -input - PeriodoIFR(9); - IFREntradaCompra(30); - IFREntradaVenda(70); - PeriodoMediaVolume(20); - FatorVolume(1.1); - UsarFiltroVolume(false); - MultiplicadorPavio(1.5); - MaxPavioOpostoCorpo(1.2); - DojiMaxCorpoPerc(0.12); - UsarSaidaPorSinalContrario(true); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(12); - -var - fIFR, vMediaVol : float; - Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; - bVolumeAlto : boolean; - bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; - bSinalCompra, bSinalVenda : boolean; - bForcaContrariaCompra, bForcaContrariaVenda : boolean; - iBarrasEmPosicao : integer; - -begin - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - - if Range > 0 then - fFechamentoPosicao := (Close - Low) / Range - else - fFechamentoPosicao := 0.5; - - bMartelo := (Range > 0) - and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); - - bEstrela := (Range > 0) - and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - - bDojiAlta := (Range > 0) - and (TamCorpo <= (Range * DojiMaxCorpoPerc)) - and (fFechamentoPosicao >= 0.50); - - bDojiBaixa := (Range > 0) - and (TamCorpo <= (Range * DojiMaxCorpoPerc)) - and (fFechamentoPosicao < 0.50); - - bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); - bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); - - bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); - bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if (not IsBought) and (not IsSold) then - begin - if (fIFR <= IFREntradaCompra) and bSinalCompra then - BuyAtMarket - else if (fIFR >= IFREntradaVenda) and bSinalVenda then - SellShortAtMarket; - end; - - if IsBought and ( - (UsarSaidaPorSinalContrario and bForcaContrariaCompra) - or (UsarSaidaIFR50 and (fIFR >= 50)) - or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) - ) then - ClosePosition; - - if IsSold and ( - (UsarSaidaPorSinalContrario and bForcaContrariaVenda) - or (UsarSaidaIFR50 and (fIFR <= 50)) - or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) - ) then - ClosePosition; -end; +{ + Estrategia: robo_ifr_v6_saida_hibrida + Autor: Wesley + Descricao: Entrada por extremos de IFR e saida hibrida: + sinal contrario forte OU IFR 50 OU tempo maximo em barras. +} + +input + PeriodoIFR(9); + IFREntradaCompra(30); + IFREntradaVenda(70); + PeriodoMediaVolume(20); + FatorVolume(1.1); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + DojiMaxCorpoPerc(0.12); + UsarSaidaPorSinalContrario(true); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + bVolumeAlto : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda : boolean; + bForcaContrariaCompra, bForcaContrariaVenda : boolean; + iBarrasEmPosicao : integer; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao >= 0.50); + + bDojiBaixa := (Range > 0) + and (TamCorpo <= (Range * DojiMaxCorpoPerc)) + and (fFechamentoPosicao < 0.50); + + bSinalCompra := bVolumeAlto and (bMartelo or bDojiAlta); + bSinalVenda := bVolumeAlto and (bEstrela or bDojiBaixa); + + bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); + bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + BuyAtMarket + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + SellShortAtMarket; + end; + + if IsBought and ( + (UsarSaidaPorSinalContrario and bForcaContrariaCompra) + or (UsarSaidaIFR50 and (fIFR >= 50)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + ) then + ClosePosition; + + if IsSold and ( + (UsarSaidaPorSinalContrario and bForcaContrariaVenda) + or (UsarSaidaIFR50 and (fIFR <= 50)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + ) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.txt similarity index 96% rename from automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.txt index a6ecbaf..150d6ca 100644 --- a/automacao_backtests/IFR_RSI/robo_ifr_v7_resgate_contexto30min84%.txt +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.txt @@ -1,152 +1,152 @@ -{ - Estrategia: robo_ifr_v7_resgate_contexto - Autor: Wesley - Descricao: Versao de resgate com filtro de contexto para reduzir falso sinal. - Reversao em extremo IFR + rejeicao + afastamento da MME20 + confirmacao. -} - -input - PeriodoIFR(9); - IFREntradaCompra(25); - IFREntradaVenda(75); - PeriodoMediaVolume(20); - FatorVolume(1.2); - UsarFiltroVolume(true); - PeriodoMME(20); - DistMinMME20Perc(0.20); - UsarJanelaHorario(true); - HoraInicio(900); - HoraFim(1130); - MultiplicadorPavio(1.6); - MaxPavioOpostoCorpo(1.1); - DojiMaxCorpoPerc(0.10); - MaxBarrasConfirmacao(3); - UsarSaidaIFR50(true); - UsarSaidaSinalContrario(true); - MaxBarrasPosicao(20); - -var - iHoraAtualHHMM, iBarrasAguardarCompra, iBarrasAguardarVenda, iBarrasEmPosicao : integer; - fIFR, vMediaVol, fMME20, fDistMME20Perc : float; - Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; - fNivelCompra, fNivelVenda : float; - bJanelaOK, bVolumeAlto, bLongeMME20 : boolean; - bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; - bSinalCompra, bSinalVenda, bForcaContrariaCompra, bForcaContrariaVenda : boolean; - bArmarCompra, bArmarVenda : boolean; - -begin - iHoraAtualHHMM := Time; - if iHoraAtualHHMM > 2400 then - iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); - - bJanelaOK := (not UsarJanelaHorario) or ((iHoraAtualHHMM >= HoraInicio) and (iHoraAtualHHMM <= HoraFim)); - - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - fMME20 := MediaExp(PeriodoMME, Close); - if fMME20 > 0 then - fDistMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 - else - fDistMME20Perc := 999; - - bLongeMME20 := (fDistMME20Perc >= DistMinMME20Perc); - - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - - if Range > 0 then - fFechamentoPosicao := (Close - Low) / Range - else - fFechamentoPosicao := 0.5; - - bMartelo := (Range > 0) - and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); - - bEstrela := (Range > 0) - and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - - bDojiAlta := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao >= 0.50); - bDojiBaixa := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao < 0.50); - - bSinalCompra := bJanelaOK and bVolumeAlto and bLongeMME20 and (bMartelo or bDojiAlta); - bSinalVenda := bJanelaOK and bVolumeAlto and bLongeMME20 and (bEstrela or bDojiBaixa); - - if Date <> Date[1] then - begin - bArmarCompra := False; - bArmarVenda := False; - iBarrasAguardarCompra := 0; - iBarrasAguardarVenda := 0; - end; - - if (not IsBought) and (not IsSold) then - begin - if (fIFR <= IFREntradaCompra) and bSinalCompra then - begin - bArmarCompra := True; - bArmarVenda := False; - fNivelCompra := High; - iBarrasAguardarCompra := 0; - end - else if (fIFR >= IFREntradaVenda) and bSinalVenda then - begin - bArmarVenda := True; - bArmarCompra := False; - fNivelVenda := Low; - iBarrasAguardarVenda := 0; - end; - - if bArmarCompra then - begin - iBarrasAguardarCompra := iBarrasAguardarCompra + 1; - if High > fNivelCompra then - begin - BuyAtMarket; - bArmarCompra := False; - end - else if iBarrasAguardarCompra > MaxBarrasConfirmacao then - bArmarCompra := False; - end; - - if bArmarVenda then - begin - iBarrasAguardarVenda := iBarrasAguardarVenda + 1; - if Low < fNivelVenda then - begin - SellShortAtMarket; - bArmarVenda := False; - end - else if iBarrasAguardarVenda > MaxBarrasConfirmacao then - bArmarVenda := False; - end; - end; - - bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); - bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ( - (UsarSaidaIFR50 and (fIFR >= 50)) - or (UsarSaidaSinalContrario and bForcaContrariaCompra) - or (iBarrasEmPosicao >= MaxBarrasPosicao) - ) then - ClosePosition; - - if IsSold and ( - (UsarSaidaIFR50 and (fIFR <= 50)) - or (UsarSaidaSinalContrario and bForcaContrariaVenda) - or (iBarrasEmPosicao >= MaxBarrasPosicao) - ) then - ClosePosition; -end; +{ + Estrategia: robo_ifr_v7_resgate_contexto + Autor: Wesley + Descricao: Versao de resgate com filtro de contexto para reduzir falso sinal. + Reversao em extremo IFR + rejeicao + afastamento da MME20 + confirmacao. +} + +input + PeriodoIFR(9); + IFREntradaCompra(25); + IFREntradaVenda(75); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarFiltroVolume(true); + PeriodoMME(20); + DistMinMME20Perc(0.20); + UsarJanelaHorario(true); + HoraInicio(900); + HoraFim(1130); + MultiplicadorPavio(1.6); + MaxPavioOpostoCorpo(1.1); + DojiMaxCorpoPerc(0.10); + MaxBarrasConfirmacao(3); + UsarSaidaIFR50(true); + UsarSaidaSinalContrario(true); + MaxBarrasPosicao(20); + +var + iHoraAtualHHMM, iBarrasAguardarCompra, iBarrasAguardarVenda, iBarrasEmPosicao : integer; + fIFR, vMediaVol, fMME20, fDistMME20Perc : float; + Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + fNivelCompra, fNivelVenda : float; + bJanelaOK, bVolumeAlto, bLongeMME20 : boolean; + bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; + bSinalCompra, bSinalVenda, bForcaContrariaCompra, bForcaContrariaVenda : boolean; + bArmarCompra, bArmarVenda : boolean; + +begin + iHoraAtualHHMM := Time; + if iHoraAtualHHMM > 2400 then + iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); + + bJanelaOK := (not UsarJanelaHorario) or ((iHoraAtualHHMM >= HoraInicio) and (iHoraAtualHHMM <= HoraFim)); + + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + fMME20 := MediaExp(PeriodoMME, Close); + if fMME20 > 0 then + fDistMME20Perc := (Abs(Close - fMME20) / fMME20) * 100 + else + fDistMME20Perc := 999; + + bLongeMME20 := (fDistMME20Perc >= DistMinMME20Perc); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + if Range > 0 then + fFechamentoPosicao := (Close - Low) / Range + else + fFechamentoPosicao := 0.5; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDojiAlta := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao >= 0.50); + bDojiBaixa := (Range > 0) and (TamCorpo <= (Range * DojiMaxCorpoPerc)) and (fFechamentoPosicao < 0.50); + + bSinalCompra := bJanelaOK and bVolumeAlto and bLongeMME20 and (bMartelo or bDojiAlta); + bSinalVenda := bJanelaOK and bVolumeAlto and bLongeMME20 and (bEstrela or bDojiBaixa); + + if Date <> Date[1] then + begin + bArmarCompra := False; + bArmarVenda := False; + iBarrasAguardarCompra := 0; + iBarrasAguardarVenda := 0; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR <= IFREntradaCompra) and bSinalCompra then + begin + bArmarCompra := True; + bArmarVenda := False; + fNivelCompra := High; + iBarrasAguardarCompra := 0; + end + else if (fIFR >= IFREntradaVenda) and bSinalVenda then + begin + bArmarVenda := True; + bArmarCompra := False; + fNivelVenda := Low; + iBarrasAguardarVenda := 0; + end; + + if bArmarCompra then + begin + iBarrasAguardarCompra := iBarrasAguardarCompra + 1; + if High > fNivelCompra then + begin + BuyAtMarket; + bArmarCompra := False; + end + else if iBarrasAguardarCompra > MaxBarrasConfirmacao then + bArmarCompra := False; + end; + + if bArmarVenda then + begin + iBarrasAguardarVenda := iBarrasAguardarVenda + 1; + if Low < fNivelVenda then + begin + SellShortAtMarket; + bArmarVenda := False; + end + else if iBarrasAguardarVenda > MaxBarrasConfirmacao then + bArmarVenda := False; + end; + end; + + bForcaContrariaCompra := bVolumeAlto and bEstrela and (fFechamentoPosicao <= 0.35); + bForcaContrariaVenda := bVolumeAlto and bMartelo and (fFechamentoPosicao >= 0.65); + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ( + (UsarSaidaIFR50 and (fIFR >= 50)) + or (UsarSaidaSinalContrario and bForcaContrariaCompra) + or (iBarrasEmPosicao >= MaxBarrasPosicao) + ) then + ClosePosition; + + if IsSold and ( + (UsarSaidaIFR50 and (fIFR <= 50)) + or (UsarSaidaSinalContrario and bForcaContrariaVenda) + or (iBarrasEmPosicao >= MaxBarrasPosicao) + ) then + ClosePosition; +end; diff --git a/estudo_teorias/AulaVascoMamede.md b/estudo_teorias/AulaVascoMamede.md new file mode 100644 index 0000000..e69de29 From 7dc7039ba00b698219f187846dd5589e5479622e Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 19:55:14 -0300 Subject: [PATCH 19/63] Atualiza top10 IFR e adiciona indicadores de cores marco2026 --- .../analise_aprovados_timeframes_IFR.txt | 110 ------------------ ...ise_robo_ifr_v4_divergencia_confirmada.txt | 50 -------- ...=> 1robo_ifr_v6_saida_hibrida60min77%.txt} | 0 ...bo_ifr_v5_regime_volatilidade60min90%.txt} | 0 ...bo_ifr_v45_volume_por_horario60min75%.txt} | 0 ..._ifr_v20_ifr_assimetrico_lado30min62%.txt} | 0 ...mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt | 50 ++++++++ ...R_02_v5_60min_regime_volatilidade.ntsl.txt | 50 ++++++++ ...r_IFR_03_v45_60min_volume_horario.ntsl.txt | 65 +++++++++++ ...mar_IFR_04_v6_30min_saida_hibrida.ntsl.txt | 47 ++++++++ .../mar_IFR_05_v20_30min_assimetrico.ntsl.txt | 43 +++++++ 11 files changed, 255 insertions(+), 160 deletions(-) delete mode 100644 automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt delete mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v6_saida_hibrida60min77%.txt => 1robo_ifr_v6_saida_hibrida60min77%.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v5_regime_volatilidade60min90%.txt => 2robo_ifr_v5_regime_volatilidade60min90%.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v45_volume_por_horario60min75%.txt => 3robo_ifr_v45_volume_por_horario60min75%.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v20_ifr_assimetrico_lado30min62%.txt => 4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt} (100%) create mode 100644 profit_estudos_cores/marco2026_IFR_top5/mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt create mode 100644 profit_estudos_cores/marco2026_IFR_top5/mar_IFR_02_v5_60min_regime_volatilidade.ntsl.txt create mode 100644 profit_estudos_cores/marco2026_IFR_top5/mar_IFR_03_v45_60min_volume_horario.ntsl.txt create mode 100644 profit_estudos_cores/marco2026_IFR_top5/mar_IFR_04_v6_30min_saida_hibrida.ntsl.txt create mode 100644 profit_estudos_cores/marco2026_IFR_top5/mar_IFR_05_v20_30min_assimetrico.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt b/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt deleted file mode 100644 index b553777..0000000 --- a/automacao_backtests/IFR_RSI/analise_aprovados_timeframes_IFR.txt +++ /dev/null @@ -1,110 +0,0 @@ -ANÁLISE DOS APROVADOS IFR POR TIMEFRAME (META >= 60% VENCEDORAS) - -Objetivo -- Priorizar robôs aprovados por timeframe em 60, 30, 15, 5 e 2 minutos. -- Manter foco em estratégias com percentual de operações vencedoras >= 60%. - -Regras de filtro (triagem rápida) -1) Aprovado para carteira: % vencedoras >= 60. -2) Em observação: % vencedoras entre 58 e 59 (retestar com ajuste leve). -3) Rebaixar para revisão: % vencedoras < 58. -4) Exigir amostra mínima de trades antes da decisão final. - ----------------------------------------- -TIMEFRAME 60 MIN ----------------------------------------- -Aprovados >= 60% -- robo_ifr_v1_reversao_extremos60min71%.txt -- robo_ifr_v4_divergencia_confirmada60min90%.txt -- robo_ifr_v5_regime_volatilidade60min90%.txt -- robo_ifr_v6_saida_hibrida60min77%.txt -- robo_ifr_v10_balanceado_regime60min63%.txt -- robo_ifr_v18_bandas_dinamicas60min60%.txt -- robo_ifr_v31_reversao_volume_relativo60min72%.txt -- robo_ifr_v33_pullback_mme20060min67%.txt -- robo_ifr_v36_divergencia_regular_pivo60min62%.txt -- robo_ifr_v45_volume_por_horario60min75%.txt -- robo_ifr_v47_orb_confirmacao_dupla60min66%.txt - -Abaixo da meta -- robo_ifr_v27_um_trade_por_direcao60min54%.txt - -Resumo 60m -- 11 de 12 acima ou igual a 60%. - ----------------------------------------- -TIMEFRAME 30 MIN ----------------------------------------- -Aprovados >= 60% -- robo_ifr_v7_resgate_contexto30min84%.txt -- robo_ifr_v20_ifr_assimetrico_lado30min62%.txt - -Abaixo da meta -- robo_ifr_v11_agressivo_reentrada30min58%.txt -- robo_ifr_v28_ifr_adx_filtro30min57%.txt - -Resumo 30m -- 2 de 4 acima ou igual a 60%. - ----------------------------------------- -TIMEFRAME 15 MIN ----------------------------------------- -Aprovados >= 60% -- robo_ifr_v23_dupla_confirmacao15min87%.txt - -Resumo 15m -- 1 de 1 acima ou igual a 60%. - ----------------------------------------- -TIMEFRAME 5 MIN ----------------------------------------- -- Sem aprovados catalogados no nome de arquivo até o momento. - -Ação -- Rodar os melhores de 30m/15m também em 5m para preencher a lacuna. - ----------------------------------------- -TIMEFRAME 2 MIN ----------------------------------------- -Aprovados >= 60% -- robo_ifr_v25_ifr_mme200_contexto2min69%.txt - -Resumo 2m -- 1 de 1 acima ou igual a 60%. - ----------------------------------------- -OBSERVAÇÃO EXTRA (fora do escopo pedido) ----------------------------------------- -- 1m: robo_ifr_v24_controle_risco_diario1min67%.txt - ----------------------------------------- -TOP LISTA INICIAL PARA ANÁLISE PROFUNDA ----------------------------------------- -Carteira principal (meta >=60 atendida e boa leitura) -- 60m: v4, v5, v45, v31 -- 30m: v7, v20 -- 15m: v23 -- 2m: v25 - -Em observação (próximos da meta) -- v11 (58%), v28 (57%) - -Rebaixar/revisar -- v27 (54%) - ----------------------------------------- -CHECKLIST DE ERROS QUE DERRUBAM % VENCEDORAS ----------------------------------------- -1) Overtrade em lateralização (falta filtro de regime). -2) Entrada sem confirmação de candle/pivô. -3) Saída por tempo curta demais em tendência limpa. -4) Timeframe incompatível com a lógica (ex.: setup de tendência em 1m sem filtro). -5) Falta de filtro de volume em horários fracos. -6) Janelas de horário sem liquidez misturadas com horários fortes. -7) Assimetria compra/venda ignorada. -8) Excesso de filtros (poucos trades, resultado instável). - -Próximo passo sugerido -- Rodar nova bateria apenas nos aprovados >=60 em 60/30/15/2. -- Replicar top 4 em 5m para fechar todos os timeframes alvo. -- Aplicar decisão final por: % vencedoras, fator de lucro, drawdown e número de trades. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt deleted file mode 100644 index 9634140..0000000 --- a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v4_divergencia_confirmada.txt +++ /dev/null @@ -1,50 +0,0 @@ -ANÁLISE - ROBO IFR V4 DIVERGENCIA CONFIRMADA - -Período analisado -- 02/03/2025 a 02/03/2026 - -Resumo por timeframe -1) 2min -- Arquivo: robo_ifr_v4_divergencia_confirmada02min64%.csv -- % vencedoras (nome): 64% -- Número de operações: 184 -- Resultado final acumulado: -2.223 -- Status: EM ALERTA (acerto > 60, porém resultado líquido negativo) - -2) 5min -- Arquivo: robo_ifr_v4_divergencia_confirmada05min.csv -- Número de operações: 48 -- Resultado final acumulado: -3.787 -- Status: REPROVADO - -3) 15min -- Arquivo: robo_ifr_v4_divergencia_confirmada15min.csv -- Número de operações: 97 -- Resultado final acumulado: -1.813 -- Status: REPROVADO - -4) 30min -- Arquivo: robo_ifr_v4_divergencia_confirmada30min.csv -- Número de operações: 31 -- Resultado final acumulado: -1.144 -- Status: REPROVADO - -5) 60min -- Arquivo: robo_ifr_v4_divergencia_confirmada60min.csv -- Número de operações: 10 -- Resultado final acumulado: 988 -- Status: APROVADO (amostra menor) - -Diagnóstico rápido -- O v4 apresenta forte assimetria de payoff fora do 60min: várias perdas grandes e operações longas derrubam o resultado total. -- Em 2min, mesmo com 64% de vencedoras, o saldo final ficou negativo: indica que perda média está maior que ganho médio. - -Ajustes recomendados para manter >60% e saldo positivo -- Adicionar stop estrutural obrigatório (não depender só de IFR50/tempo). -- Limitar tempo máximo de posição por timeframe (especialmente 2/5/15). -- Reduzir exposição em dias de alta volatilidade adversa (circuit breaker por perda/tempo). - -Decisão atual do v4 -- Manter em carteira: 60min. -- Revisar com prioridade: 2min (boa taxa de acerto, porém payoff ruim). -- Reprovar no estado atual: 5min, 15min e 30min. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v6_saida_hibrida60min77%.txt rename to automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v5_regime_volatilidade60min90%.txt rename to automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v45_volume_por_horario60min75%.txt rename to automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v20_ifr_assimetrico_lado30min62%.txt rename to automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt diff --git a/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt new file mode 100644 index 0000000..bb8b6f8 --- /dev/null +++ b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt @@ -0,0 +1,50 @@ +{ + Indicador: mar_IFR_01_v6_60min_saida_hibrida + Descricao: Leitura visual do robô v6 (60min). Prioridade #1. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMedia(20); + MostrarTexto(true); + +var + fIFR, fMME : float; + bCompra, bVenda, bSaida : boolean; + cCompra, cVenda, cSaida, cNeutro : Integer; + +begin + cCompra := RGB(0, 255, 0); + cVenda := RGB(255, 0, 0); + cSaida := RGB(255, 215, 0); + cNeutro := RGB(120, 120, 120); + + fIFR := IFR(PeriodoIFR); + fMME := MediaExp(PeriodoMedia, Close); + + bCompra := (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and (Close >= fMME); + bVenda := (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and (Close <= fMME); + + bSaida := (fIFR >= 48) and (fIFR <= 52); + + if bCompra then + begin + PaintBar(cCompra); + if MostrarTexto then PlotText("V6 60 COMPRA", cCompra, 0, Low - (Range * 0.30)); + end + else if bVenda then + begin + PaintBar(cVenda); + if MostrarTexto then PlotText("V6 60 VENDA", cVenda, 0, High + (Range * 0.30)); + end + else if bSaida then + begin + PaintBar(cSaida); + end + else + PaintBar(cNeutro); +end; diff --git a/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_02_v5_60min_regime_volatilidade.ntsl.txt b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_02_v5_60min_regime_volatilidade.ntsl.txt new file mode 100644 index 0000000..af3dd5e --- /dev/null +++ b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_02_v5_60min_regime_volatilidade.ntsl.txt @@ -0,0 +1,50 @@ +{ + Indicador: mar_IFR_02_v5_60min_regime_volatilidade + Descricao: Leitura visual do robô v5 (60min). Prioridade #2. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoRangeRapido(14); + PeriodoRangeLento(50); + MostrarTexto(true); + +var + fIFR, fRangeRapido, fRangeLento : float; + bRegimeVolatil, bCompra, bVenda : boolean; + cCompra, cVenda, cBloqueado, cNeutro : Integer; + +begin + cCompra := RGB(0, 220, 0); + cVenda := RGB(220, 0, 0); + cBloqueado := RGB(255, 140, 0); + cNeutro := RGB(120, 120, 120); + + fIFR := IFR(PeriodoIFR); + fRangeRapido := Media(PeriodoRangeRapido, Range); + fRangeLento := Media(PeriodoRangeLento, Range); + + bRegimeVolatil := fRangeRapido >= fRangeLento; + + bCompra := bRegimeVolatil and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra); + bVenda := bRegimeVolatil and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda); + + if bCompra then + begin + PaintBar(cCompra); + if MostrarTexto then PlotText("V5 60 COMPRA", cCompra, 0, Low - (Range * 0.30)); + end + else if bVenda then + begin + PaintBar(cVenda); + if MostrarTexto then PlotText("V5 60 VENDA", cVenda, 0, High + (Range * 0.30)); + end + else if (not bRegimeVolatil) then + PaintBar(cBloqueado) + else + PaintBar(cNeutro); +end; diff --git a/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_03_v45_60min_volume_horario.ntsl.txt b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_03_v45_60min_volume_horario.ntsl.txt new file mode 100644 index 0000000..b745b84 --- /dev/null +++ b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_03_v45_60min_volume_horario.ntsl.txt @@ -0,0 +1,65 @@ +{ + Indicador: mar_IFR_03_v45_60min_volume_horario + Descricao: Leitura visual do robô v45 (60min). Prioridade #3. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + HoraAberturaFim(103000); + FatorVolumeAbertura(1.30); + FatorVolumeMeio(1.00); + MostrarTexto(true); + +var + fIFR, fMediaVol, fFatorAtual : float; + iHoraHHMM, iHoraAberturaFimHHMM : Integer; + bVolumeOK, bCompra, bVenda : boolean; + cCompra, cVenda, cSemVolume, cNeutro : Integer; + +begin + cCompra := RGB(0, 191, 255); + cVenda := RGB(138, 43, 226); + cSemVolume := RGB(255, 140, 0); + cNeutro := RGB(120, 120, 120); + + iHoraHHMM := Time; + if iHoraHHMM > 2400 then + iHoraHHMM := Round(iHoraHHMM / 100); + + iHoraAberturaFimHHMM := HoraAberturaFim; + if iHoraAberturaFimHHMM > 2400 then + iHoraAberturaFimHHMM := Round(iHoraAberturaFimHHMM / 100); + + fIFR := IFR(PeriodoIFR); + fMediaVol := Media(PeriodoMediaVolume, Volume); + + if iHoraHHMM <= iHoraAberturaFimHHMM then + fFatorAtual := FatorVolumeAbertura + else + fFatorAtual := FatorVolumeMeio; + + bVolumeOK := Volume >= (fMediaVol * fFatorAtual); + + bCompra := bVolumeOK and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra); + bVenda := bVolumeOK and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda); + + if bCompra then + begin + PaintBar(cCompra); + if MostrarTexto then PlotText("V45 60 COMPRA", cCompra, 0, Low - (Range * 0.30)); + end + else if bVenda then + begin + PaintBar(cVenda); + if MostrarTexto then PlotText("V45 60 VENDA", cVenda, 0, High + (Range * 0.30)); + end + else if not bVolumeOK then + PaintBar(cSemVolume) + else + PaintBar(cNeutro); +end; diff --git a/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_04_v6_30min_saida_hibrida.ntsl.txt b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_04_v6_30min_saida_hibrida.ntsl.txt new file mode 100644 index 0000000..8ca814b --- /dev/null +++ b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_04_v6_30min_saida_hibrida.ntsl.txt @@ -0,0 +1,47 @@ +{ + Indicador: mar_IFR_04_v6_30min_saida_hibrida + Descricao: Leitura visual do robô v6 (30min). Prioridade #4. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMedia(9); + MostrarTexto(true); + +var + fIFR, fMME : float; + bCompra, bVenda, bSaida : boolean; + cCompra, cVenda, cSaida, cNeutro : Integer; + +begin + cCompra := RGB(50, 205, 50); + cVenda := RGB(255, 99, 71); + cSaida := RGB(255, 215, 0); + cNeutro := RGB(120, 120, 120); + + fIFR := IFR(PeriodoIFR); + fMME := MediaExp(PeriodoMedia, Close); + + bCompra := (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) and (Close > fMME); + bVenda := (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) and (Close < fMME); + bSaida := (fIFR >= 48) and (fIFR <= 52); + + if bCompra then + begin + PaintBar(cCompra); + if MostrarTexto then PlotText("V6 30 COMPRA", cCompra, 0, Low - (Range * 0.30)); + end + else if bVenda then + begin + PaintBar(cVenda); + if MostrarTexto then PlotText("V6 30 VENDA", cVenda, 0, High + (Range * 0.30)); + end + else if bSaida then + PaintBar(cSaida) + else + PaintBar(cNeutro); +end; diff --git a/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_05_v20_30min_assimetrico.ntsl.txt b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_05_v20_30min_assimetrico.ntsl.txt new file mode 100644 index 0000000..f3ff78d --- /dev/null +++ b/profit_estudos_cores/marco2026_IFR_top5/mar_IFR_05_v20_30min_assimetrico.ntsl.txt @@ -0,0 +1,43 @@ +{ + Indicador: mar_IFR_05_v20_30min_assimetrico + Descricao: Leitura visual do robô v20 (30min) com níveis assimétricos. Prioridade #5. +} + +input + PeriodoIFR(9); + IFRCompraExtremo(32); + IFRCompraRetorno(38); + IFRVendaExtremo(68); + IFRVendaRetorno(62); + PeriodoMediaLonga(200); + MostrarTexto(true); + +var + fIFR, fMME200 : float; + bCompra, bVenda : boolean; + cCompra, cVenda, cNeutro : Integer; + +begin + cCompra := RGB(0, 255, 127); + cVenda := RGB(255, 69, 0); + cNeutro := RGB(120, 120, 120); + + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMediaLonga, Close); + + bCompra := (fIFR[1] <= IFRCompraExtremo) and (fIFR >= IFRCompraRetorno) and (Close > fMME200); + bVenda := (fIFR[1] >= IFRVendaExtremo) and (fIFR <= IFRVendaRetorno) and (Close < fMME200); + + if bCompra then + begin + PaintBar(cCompra); + if MostrarTexto then PlotText("V20 30 COMPRA", cCompra, 0, Low - (Range * 0.30)); + end + else if bVenda then + begin + PaintBar(cVenda); + if MostrarTexto then PlotText("V20 30 VENDA", cVenda, 0, High + (Range * 0.30)); + end + else + PaintBar(cNeutro); +end; From e102f979fc94fda75997e5b5278b85ce530c0bd7 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 19:56:14 -0300 Subject: [PATCH 20/63] Atualiza arquivos de analise IFR --- .../analise_robo_ifr_v1_reversao_extremos.txt | 54 ------------------- 1 file changed, 54 deletions(-) delete mode 100644 automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt b/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt deleted file mode 100644 index 2c7786a..0000000 --- a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/analise_robo_ifr_v1_reversao_extremos.txt +++ /dev/null @@ -1,54 +0,0 @@ -ANÁLISE - ROBO IFR V1 REVERSAO EXTREMOS - -Período analisado -- 02/03/2025 a 02/03/2026 - -Resumo por timeframe -1) 2min -- Arquivo: robo_ifr_v1_reversao_extremos02min64%.csv -- % vencedoras (nome): 64% -- Número de operações: 76 -- Resultado final acumulado: 612 -- Status: APROVADO (meta >= 60% e resultado positivo) - -2) 5min -- Arquivo: robo_ifr_v1_reversao_extremos05min47%.csv -- % vencedoras (nome): 47% -- Número de operações: 48 -- Resultado final acumulado: -3.787 -- Status: REPROVADO (abaixo de 60% e resultado negativo) - -3) 15min -- Arquivo: robo_ifr_v1_reversao_extremos15min68%.csv -- % vencedoras (nome): 68% -- Número de operações: 29 -- Resultado final acumulado: -1.157 -- Status: EM ALERTA (acerto alto, mas resultado negativo) - -4) 30min -- Arquivo: robo_ifr_v1_reversao_extremos30min81%.csv -- % vencedoras (nome): 81% -- Número de operações: 16 -- Resultado final acumulado: 512 -- Status: APROVADO - -5) 60min -- Arquivo: robo_ifr_v1_reversao_extremos60min71%.csv -- % vencedoras (nome): 71% -- Número de operações: 10 -- Resultado final acumulado: 1.304 -- Status: APROVADO (com amostra ainda pequena) - -Diagnóstico rápido de erro (principal) -- Há operações muito longas para alguns timeframes (manutenção por muitas horas/dias), o que amplia perdas pontuais e pode destruir a curva mesmo com taxa de acerto alta. -- O caso mais claro é 15min: % vencedoras alta, porém payoff assimétrico negativo (perdas maiores que ganhos). - -Ajustes recomendados para próxima iteração do v1 -- Adicionar limite de tempo de posição por timeframe (hard stop temporal). -- Incluir stop estrutural (perda de pivô ou máxima/mínima anterior) para cortar cauda de perda. -- Separar parâmetros de saída por timeframe (2/5/15/30/60), evitando usar mesma lógica para todos. - -Decisão atual do v1 -- Manter em carteira: 2min, 30min, 60min. -- Revisar com prioridade: 15min. -- Reprovar no estado atual: 5min. \ No newline at end of file From 608a77b087edb50d145ecb8c4d3c13e41bb1e2c7 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 20:13:07 -0300 Subject: [PATCH 21/63] Adiciona gestao de risco e reset semanal fixo nos robos top10 --- .../IFR_RSI/top10/10000reais.txt | 154 ++++++++++++++++++ .../1robo_ifr_v6_saida_hibrida60min77%.txt | 73 ++++++++- ...obo_ifr_v5_regime_volatilidade60min90%.txt | 72 +++++++- ...obo_ifr_v45_volume_por_horario60min75%.txt | 73 ++++++++- ...o_ifr_v20_ifr_assimetrico_lado30min62%.txt | 72 +++++++- 5 files changed, 438 insertions(+), 6 deletions(-) create mode 100644 automacao_backtests/IFR_RSI/top10/10000reais.txt diff --git a/automacao_backtests/IFR_RSI/top10/10000reais.txt b/automacao_backtests/IFR_RSI/top10/10000reais.txt new file mode 100644 index 0000000..4200ddb --- /dev/null +++ b/automacao_backtests/IFR_RSI/top10/10000reais.txt @@ -0,0 +1,154 @@ +PLANO DE CONTAS - 4 ROBÔS IFR (CAPITAL R$10.000) + +Base dos robôs (resultado anual histórico do estudo) +1) v6_60min = +2.315 +2) v5_60min = +1.563 +3) v45_60min = +1.643 +4) v20_30min = +1.393 + +Soma histórica dos 4 = +6.914 +Capital base = R$10.000 +Retorno simples estimado = +69,14% (sem alavancagem adicional) + +================================================== +COMO SEPARAR POR CONTAS (RECOMENDAÇÃO) +================================================== + +Estrutura recomendada: 4 contas, 1 robô por conta + +Conta_A (35% = R$3.500) +- Robô: v6_60min +- Peso do lucro esperado: 2.315 / 6.914 = 33,48% +- Lucro anual proporcional estimado: R$2.315 +- Capital final estimado da conta: R$5.815 + +Conta_B (25% = R$2.500) +- Robô: v5_60min +- Peso do lucro esperado: 1.563 / 6.914 = 22,61% +- Lucro anual proporcional estimado: R$1.563 +- Capital final estimado da conta: R$4.063 + +Conta_C (25% = R$2.500) +- Robô: v45_60min +- Peso do lucro esperado: 1.643 / 6.914 = 23,76% +- Lucro anual proporcional estimado: R$1.643 +- Capital final estimado da conta: R$4.143 + +Conta_D (15% = R$1.500) +- Robô: v20_30min +- Peso do lucro esperado: 1.393 / 6.914 = 20,15% +- Lucro anual proporcional estimado: R$1.393 +- Capital final estimado da conta: R$2.893 + +Total consolidado (4 contas) +- Lucro estimado: R$6.914 +- Capital final estimado: R$16.914 + +================================================== +CONTROLE DE RISCO POR CONTA +================================================== + +Limites sugeridos +- Perda diária por conta: 1,0% do saldo da conta +- Perda semanal por conta: 3,0% do saldo da conta +- Ao bater limite semanal: pausar a conta até semana seguinte + +Observação operacional +- Você pode rodar no máximo 2 robôs simultâneos no início. +- Ordem prática de ativação: + 1) v6_60min + 2) v5_60min + 3) v45_60min + 4) v20_30min + +================================================== +CENÁRIOS DE RESULTADO (ANUAL) +================================================== + +Cenário Base (100% do histórico) +- Lucro: +R$6.914 +- Final: R$16.914 + +Cenário Conservador (75% do histórico, custos/slippage) +- Lucro: +R$5.185,50 +- Final: R$15.185,50 + +Cenário Estressado (50% do histórico) +- Lucro: +R$3.457 +- Final: R$13.457 + +Nota importante +- Isso é projeção baseada no histórico analisado, não garantia de resultado futuro. + +================================================== +CONFIGURAÇÃO PRONTA PARA COLOCAR NOS ROBÔS +================================================== + +1) LIMITES EM R$ POR CONTA (usar no setup de cada robô) + +Conta_A (v6_60min | saldo R$3.500) +- Limite diário (1%): R$35,00 +- Limite semanal (3%): R$105,00 + +Conta_B (v5_60min | saldo R$2.500) +- Limite diário (1%): R$25,00 +- Limite semanal (3%): R$75,00 + +Conta_C (v45_60min | saldo R$2.500) +- Limite diário (1%): R$25,00 +- Limite semanal (3%): R$75,00 + +Conta_D (v20_30min | saldo R$1.500) +- Limite diário (1%): R$15,00 +- Limite semanal (3%): R$45,00 + +2) LÓGICA DE TRAVA (copiar para todos os robôs) + +Passo a passo operacional +- No início de cada dia: recalcular limite diário pelo saldo atual da conta. +- No início de cada semana: zerar acumulador semanal. +- Se resultado do dia <= -limite diário: bloquear novas entradas até o próximo dia. +- Se resultado da semana <= -limite semanal: bloquear novas entradas até a próxima semana. + +Template (adaptar nomes de variáveis à sua estratégia) + +input + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + +var + LimiteDia, LimiteSemana : float; + ResultadoDia, ResultadoSemana : float; + BloqueioDia, BloqueioSemana : boolean; + +begin + LimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + LimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + // Atualizar ResultadoDia e ResultadoSemana com o PnL da sua lógica + + if ResultadoDia <= -LimiteDia then + BloqueioDia := true; + + if ResultadoSemana <= -LimiteSemana then + BloqueioSemana := true; + + if BloqueioDia or BloqueioSemana then + begin + // Não abrir novas posições + // Exemplo: pular bloco de entrada + end; +end; + +3) PARÂMETRO SaldoConta EM CADA ROBÔ + +- No robô da Conta_A (v6_60min), usar SaldoConta(3500.0) +- No robô da Conta_B (v5_60min), usar SaldoConta(2500.0) +- No robô da Conta_C (v45_60min), usar SaldoConta(2500.0) +- No robô da Conta_D (v20_30min), usar SaldoConta(1500.0) + +4) REGRA DE REATIVAÇÃO + +- Bloqueio diário: reativar no próximo pregão. +- Bloqueio semanal: reativar na segunda-feira seguinte. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt index 53bf5ce..22741a6 100644 --- a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt +++ b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt @@ -19,17 +19,72 @@ input UsarSaidaIFR50(true); UsarSaidaTempo(true); MaxBarrasPosicao(12); + UsarGestaoRisco(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + QuantidadeContratos(1); + DiasParaResetSemanal(5); + UsarResetSemanalPorDiaFixo(true); + DiaSemanaReset(2); var fIFR, vMediaVol : float; Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; + fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; + fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; bVolumeAlto : boolean; + bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; bSinalCompra, bSinalVenda : boolean; bForcaContrariaCompra, bForcaContrariaVenda : boolean; - iBarrasEmPosicao : integer; + iBarrasEmPosicao, iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + + if UsarResetSemanalPorDiaFixo then + begin + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + begin + iDiasSemana := iDiasSemana + 1; + if iDiasSemana > DiasParaResetSemanal then + begin + iDiasSemana := 1; + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + end; + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoTradePontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoTradeReais := fResultadoTradePontos * ValorPorPonto * QuantidadeContratos; + fResultadoDia := fResultadoDia + fResultadoTradeReais; + fResultadoSemana := fResultadoSemana + fResultadoTradeReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then + bBloqueioDia := true; + + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then + bBloqueioSemana := true; + fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); @@ -71,7 +126,7 @@ begin else iBarrasEmPosicao := 0; - if (not IsBought) and (not IsSold) then + if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR <= IFREntradaCompra) and bSinalCompra then BuyAtMarket @@ -92,4 +147,18 @@ begin or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) ) then ClosePosition; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + + bEstavaPosicionado := IsBought or IsSold; end; diff --git a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt index f382c5d..f776077 100644 --- a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt +++ b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt @@ -18,15 +18,71 @@ input UsarFiltroVolume(false); MultiplicadorPavio(1.5); MaxPavioOpostoCorpo(1.2); + UsarGestaoRisco(true); + SaldoConta(2500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + QuantidadeContratos(1); + DiasParaResetSemanal(5); + UsarResetSemanalPorDiaFixo(true); + DiaSemanaReset(2); var fIFR, vMediaVol, fATR, fATRMedio : float; fCompraNivel, fVendaNivel : float; Range, TamCorpo, TamPavioSup, TamPavioInf : float; + fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; + fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; bVolumeAlto, bAltaVolatilidade : boolean; + bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; bMartelo, bEstrela : boolean; + iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + + if UsarResetSemanalPorDiaFixo then + begin + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + begin + iDiasSemana := iDiasSemana + 1; + if iDiasSemana > DiasParaResetSemanal then + begin + iDiasSemana := 1; + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + end; + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoTradePontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoTradeReais := fResultadoTradePontos * ValorPorPonto * QuantidadeContratos; + fResultadoDia := fResultadoDia + fResultadoTradeReais; + fResultadoSemana := fResultadoSemana + fResultadoTradeReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then + bBloqueioDia := true; + + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then + bBloqueioSemana := true; + fIFR := IFR(PeriodoIFR); fATR := Media(PeriodoATR, Range); fATRMedio := Media(PeriodoATRMedia, fATR); @@ -62,7 +118,7 @@ begin and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - if (not IsBought) and (not IsSold) then + if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR <= fCompraNivel) and bMartelo and bVolumeAlto then BuyAtMarket @@ -75,4 +131,18 @@ begin if IsSold and (fIFR <= 50) then ClosePosition; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + + bEstavaPosicionado := IsBought or IsSold; end; diff --git a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt index 314b497..e6d85d0 100644 --- a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt +++ b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt @@ -18,13 +18,68 @@ input UsarSaidaIFR50(true); UsarSaidaTempo(true); MaxBarrasPosicao(12); + UsarGestaoRisco(true); + SaldoConta(2500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + QuantidadeContratos(1); + DiasParaResetSemanal(5); + UsarResetSemanalPorDiaFixo(true); + DiaSemanaReset(2); var iBarrasEmPosicao : integer; fIFR, vMediaVol, fFatorAtual : float; - bVolumeOk : boolean; + fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; + fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + bVolumeOk, bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + + if UsarResetSemanalPorDiaFixo then + begin + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + begin + iDiasSemana := iDiasSemana + 1; + if iDiasSemana > DiasParaResetSemanal then + begin + iDiasSemana := 1; + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + end; + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoTradePontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoTradeReais := fResultadoTradePontos * ValorPorPonto * QuantidadeContratos; + fResultadoDia := fResultadoDia + fResultadoTradeReais; + fResultadoSemana := fResultadoSemana + fResultadoTradeReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then + bBloqueioDia := true; + + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then + bBloqueioSemana := true; + fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); @@ -35,7 +90,7 @@ begin bVolumeOk := (Volume >= (vMediaVol * fFatorAtual)); - if (not IsBought) and (not IsSold) and bVolumeOk then + if (not IsBought) and (not IsSold) and bVolumeOk and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then begin @@ -57,4 +112,18 @@ begin if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then ClosePosition; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + + bEstavaPosicionado := IsBought or IsSold; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt index 99107d9..f950430 100644 --- a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt +++ b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt @@ -14,15 +14,71 @@ input UsarSaidaIFR50(true); UsarSaidaTempo(true); MaxBarrasPosicao(15); + UsarGestaoRisco(true); + SaldoConta(1500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + QuantidadeContratos(1); + DiasParaResetSemanal(5); + UsarResetSemanalPorDiaFixo(true); + DiaSemanaReset(2); var iBarrasEmPosicao : integer; fIFR : float; + fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; + fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + + if UsarResetSemanalPorDiaFixo then + begin + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + begin + iDiasSemana := iDiasSemana + 1; + if iDiasSemana > DiasParaResetSemanal then + begin + iDiasSemana := 1; + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + end; + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoTradePontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoTradeReais := fResultadoTradePontos * ValorPorPonto * QuantidadeContratos; + fResultadoDia := fResultadoDia + fResultadoTradeReais; + fResultadoSemana := fResultadoSemana + fResultadoTradeReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then + bBloqueioDia := true; + + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then + bBloqueioSemana := true; + fIFR := IFR(PeriodoIFR); - if (not IsBought) and (not IsSold) then + if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then begin @@ -44,4 +100,18 @@ begin if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then ClosePosition; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + + bEstavaPosicionado := IsBought or IsSold; end; \ No newline at end of file From 78c740f009b5f9ea2c5725195822b48c8bc859ec Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 20:35:36 -0300 Subject: [PATCH 22/63] Aprimora top4 com OCO/breakeven parametrizavel e hard lock --- .../IFR_RSI/top10/10000reais.txt | 154 ---------- .../1robo_ifr_v6_saida_hibrida60min77%.txt | 48 +++ ...obo_ifr_v5_regime_volatilidade60min90%.txt | 50 +++- ...obo_ifr_v45_volume_por_horario60min75%.txt | 50 +++- ...o_ifr_v20_ifr_assimetrico_lado30min62%.txt | 50 +++- .../IFR_RSI/top10/gestaoRiscoTop4_IFR.txt | 274 ++++++++++++++++++ 6 files changed, 466 insertions(+), 160 deletions(-) delete mode 100644 automacao_backtests/IFR_RSI/top10/10000reais.txt create mode 100644 automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt diff --git a/automacao_backtests/IFR_RSI/top10/10000reais.txt b/automacao_backtests/IFR_RSI/top10/10000reais.txt deleted file mode 100644 index 4200ddb..0000000 --- a/automacao_backtests/IFR_RSI/top10/10000reais.txt +++ /dev/null @@ -1,154 +0,0 @@ -PLANO DE CONTAS - 4 ROBÔS IFR (CAPITAL R$10.000) - -Base dos robôs (resultado anual histórico do estudo) -1) v6_60min = +2.315 -2) v5_60min = +1.563 -3) v45_60min = +1.643 -4) v20_30min = +1.393 - -Soma histórica dos 4 = +6.914 -Capital base = R$10.000 -Retorno simples estimado = +69,14% (sem alavancagem adicional) - -================================================== -COMO SEPARAR POR CONTAS (RECOMENDAÇÃO) -================================================== - -Estrutura recomendada: 4 contas, 1 robô por conta - -Conta_A (35% = R$3.500) -- Robô: v6_60min -- Peso do lucro esperado: 2.315 / 6.914 = 33,48% -- Lucro anual proporcional estimado: R$2.315 -- Capital final estimado da conta: R$5.815 - -Conta_B (25% = R$2.500) -- Robô: v5_60min -- Peso do lucro esperado: 1.563 / 6.914 = 22,61% -- Lucro anual proporcional estimado: R$1.563 -- Capital final estimado da conta: R$4.063 - -Conta_C (25% = R$2.500) -- Robô: v45_60min -- Peso do lucro esperado: 1.643 / 6.914 = 23,76% -- Lucro anual proporcional estimado: R$1.643 -- Capital final estimado da conta: R$4.143 - -Conta_D (15% = R$1.500) -- Robô: v20_30min -- Peso do lucro esperado: 1.393 / 6.914 = 20,15% -- Lucro anual proporcional estimado: R$1.393 -- Capital final estimado da conta: R$2.893 - -Total consolidado (4 contas) -- Lucro estimado: R$6.914 -- Capital final estimado: R$16.914 - -================================================== -CONTROLE DE RISCO POR CONTA -================================================== - -Limites sugeridos -- Perda diária por conta: 1,0% do saldo da conta -- Perda semanal por conta: 3,0% do saldo da conta -- Ao bater limite semanal: pausar a conta até semana seguinte - -Observação operacional -- Você pode rodar no máximo 2 robôs simultâneos no início. -- Ordem prática de ativação: - 1) v6_60min - 2) v5_60min - 3) v45_60min - 4) v20_30min - -================================================== -CENÁRIOS DE RESULTADO (ANUAL) -================================================== - -Cenário Base (100% do histórico) -- Lucro: +R$6.914 -- Final: R$16.914 - -Cenário Conservador (75% do histórico, custos/slippage) -- Lucro: +R$5.185,50 -- Final: R$15.185,50 - -Cenário Estressado (50% do histórico) -- Lucro: +R$3.457 -- Final: R$13.457 - -Nota importante -- Isso é projeção baseada no histórico analisado, não garantia de resultado futuro. - -================================================== -CONFIGURAÇÃO PRONTA PARA COLOCAR NOS ROBÔS -================================================== - -1) LIMITES EM R$ POR CONTA (usar no setup de cada robô) - -Conta_A (v6_60min | saldo R$3.500) -- Limite diário (1%): R$35,00 -- Limite semanal (3%): R$105,00 - -Conta_B (v5_60min | saldo R$2.500) -- Limite diário (1%): R$25,00 -- Limite semanal (3%): R$75,00 - -Conta_C (v45_60min | saldo R$2.500) -- Limite diário (1%): R$25,00 -- Limite semanal (3%): R$75,00 - -Conta_D (v20_30min | saldo R$1.500) -- Limite diário (1%): R$15,00 -- Limite semanal (3%): R$45,00 - -2) LÓGICA DE TRAVA (copiar para todos os robôs) - -Passo a passo operacional -- No início de cada dia: recalcular limite diário pelo saldo atual da conta. -- No início de cada semana: zerar acumulador semanal. -- Se resultado do dia <= -limite diário: bloquear novas entradas até o próximo dia. -- Se resultado da semana <= -limite semanal: bloquear novas entradas até a próxima semana. - -Template (adaptar nomes de variáveis à sua estratégia) - -input - SaldoConta(3500.0); - RiscoDiaPct(1.0); - RiscoSemanaPct(3.0); - -var - LimiteDia, LimiteSemana : float; - ResultadoDia, ResultadoSemana : float; - BloqueioDia, BloqueioSemana : boolean; - -begin - LimiteDia := SaldoConta * (RiscoDiaPct / 100.0); - LimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); - - // Atualizar ResultadoDia e ResultadoSemana com o PnL da sua lógica - - if ResultadoDia <= -LimiteDia then - BloqueioDia := true; - - if ResultadoSemana <= -LimiteSemana then - BloqueioSemana := true; - - if BloqueioDia or BloqueioSemana then - begin - // Não abrir novas posições - // Exemplo: pular bloco de entrada - end; -end; - -3) PARÂMETRO SaldoConta EM CADA ROBÔ - -- No robô da Conta_A (v6_60min), usar SaldoConta(3500.0) -- No robô da Conta_B (v5_60min), usar SaldoConta(2500.0) -- No robô da Conta_C (v45_60min), usar SaldoConta(2500.0) -- No robô da Conta_D (v20_30min), usar SaldoConta(1500.0) - -4) REGRA DE REATIVAÇÃO - -- Bloqueio diário: reativar no próximo pregão. -- Bloqueio semanal: reativar na segunda-feira seguinte. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt index 22741a6..6f7e40e 100644 --- a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt +++ b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt @@ -18,8 +18,15 @@ input UsarSaidaPorSinalContrario(true); UsarSaidaIFR50(true); UsarSaidaTempo(true); + UsarOCO(false); + StopLossPontos(100.0); + TakeProfitPontos(150.0); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); MaxBarrasPosicao(12); UsarGestaoRisco(true); + UsarHardLock(true); SaldoConta(3500.0); RiscoDiaPct(1.0); RiscoSemanaPct(3.0); @@ -34,8 +41,10 @@ var Range, TamCorpo, TamPavioSup, TamPavioInf, fFechamentoPosicao : float; fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + fStopAtual, fAlvoAtual : float; bVolumeAlto : boolean; bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + bBreakEvenAtivo, bSaidaOCOCompra, bSaidaOCOVenda : boolean; bMartelo, bEstrela, bDojiAlta, bDojiBaixa : boolean; bSinalCompra, bSinalVenda : boolean; bForcaContrariaCompra, bForcaContrariaVenda : boolean; @@ -85,6 +94,9 @@ begin if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); @@ -124,7 +136,39 @@ begin if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 else + begin iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + bSaidaOCOCompra := false; + bSaidaOCOVenda := false; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada - StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada + TakeProfitPontos; + bSaidaOCOCompra := UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)); + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada + StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada - TakeProfitPontos; + bSaidaOCOVenda := UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)); + end; if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin @@ -138,6 +182,7 @@ begin (UsarSaidaPorSinalContrario and bForcaContrariaCompra) or (UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + or bSaidaOCOCompra ) then ClosePosition; @@ -145,6 +190,7 @@ begin (UsarSaidaPorSinalContrario and bForcaContrariaVenda) or (UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) + or bSaidaOCOVenda ) then ClosePosition; @@ -152,12 +198,14 @@ begin begin fPrecoEntrada := Close; iDirecaoPosicao := 1; + bBreakEvenAtivo := false; end; if (not bEstavaPosicionado) and IsSold then begin fPrecoEntrada := Close; iDirecaoPosicao := -1; + bBreakEvenAtivo := false; end; bEstavaPosicionado := IsBought or IsSold; diff --git a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt index f776077..451823b 100644 --- a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt +++ b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt @@ -18,7 +18,14 @@ input UsarFiltroVolume(false); MultiplicadorPavio(1.5); MaxPavioOpostoCorpo(1.2); + UsarOCO(false); + StopLossPontos(100.0); + TakeProfitPontos(150.0); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); UsarGestaoRisco(true); + UsarHardLock(true); SaldoConta(2500.0); RiscoDiaPct(1.0); RiscoSemanaPct(3.0); @@ -34,8 +41,10 @@ var Range, TamCorpo, TamPavioSup, TamPavioInf : float; fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + fStopAtual, fAlvoAtual : float; bVolumeAlto, bAltaVolatilidade : boolean; bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + bBreakEvenAtivo, bSaidaOCOCompra, bSaidaOCOVenda : boolean; bMartelo, bEstrela : boolean; iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; @@ -83,6 +92,9 @@ begin if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + fIFR := IFR(PeriodoIFR); fATR := Media(PeriodoATR, Range); fATRMedio := Media(PeriodoATRMedia, fATR); @@ -118,6 +130,35 @@ begin and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + bSaidaOCOCompra := false; + bSaidaOCOVenda := false; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada - StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada + TakeProfitPontos; + bSaidaOCOCompra := UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)); + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada + StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada - TakeProfitPontos; + bSaidaOCOVenda := UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)); + end; + if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR <= fCompraNivel) and bMartelo and bVolumeAlto then @@ -126,23 +167,28 @@ begin SellShortAtMarket; end; - if IsBought and (fIFR >= 50) then + if IsBought and ((fIFR >= 50) or bSaidaOCOCompra) then ClosePosition; - if IsSold and (fIFR <= 50) then + if IsSold and ((fIFR <= 50) or bSaidaOCOVenda) then ClosePosition; if (not bEstavaPosicionado) and IsBought then begin fPrecoEntrada := Close; iDirecaoPosicao := 1; + bBreakEvenAtivo := false; end; if (not bEstavaPosicionado) and IsSold then begin fPrecoEntrada := Close; iDirecaoPosicao := -1; + bBreakEvenAtivo := false; end; + if (not IsBought) and (not IsSold) then + bBreakEvenAtivo := false; + bEstavaPosicionado := IsBought or IsSold; end; diff --git a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt index e6d85d0..437d404 100644 --- a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt +++ b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt @@ -17,8 +17,15 @@ input FatorVolumeMeio(1.0); UsarSaidaIFR50(true); UsarSaidaTempo(true); + UsarOCO(false); + StopLossPontos(100.0); + TakeProfitPontos(150.0); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); MaxBarrasPosicao(12); UsarGestaoRisco(true); + UsarHardLock(true); SaldoConta(2500.0); RiscoDiaPct(1.0); RiscoSemanaPct(3.0); @@ -33,7 +40,9 @@ var fIFR, vMediaVol, fFatorAtual : float; fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + fStopAtual, fAlvoAtual : float; bVolumeOk, bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + bBreakEvenAtivo, bSaidaOCOCompra, bSaidaOCOVenda : boolean; iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin @@ -80,6 +89,9 @@ begin if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); @@ -90,6 +102,35 @@ begin bVolumeOk := (Volume >= (vMediaVol * fFatorAtual)); + bSaidaOCOCompra := false; + bSaidaOCOVenda := false; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada - StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada + TakeProfitPontos; + bSaidaOCOCompra := UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)); + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada + StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada - TakeProfitPontos; + bSaidaOCOVenda := UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)); + end; + if (not IsBought) and (not IsSold) and bVolumeOk and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then @@ -107,23 +148,28 @@ begin else iBarrasEmPosicao := 0; - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) or bSaidaOCOCompra) then ClosePosition; - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) or bSaidaOCOVenda) then ClosePosition; if (not bEstavaPosicionado) and IsBought then begin fPrecoEntrada := Close; iDirecaoPosicao := 1; + bBreakEvenAtivo := false; end; if (not bEstavaPosicionado) and IsSold then begin fPrecoEntrada := Close; iDirecaoPosicao := -1; + bBreakEvenAtivo := false; end; + if (not IsBought) and (not IsSold) then + bBreakEvenAtivo := false; + bEstavaPosicionado := IsBought or IsSold; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt index f950430..022ba77 100644 --- a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt +++ b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt @@ -13,8 +13,15 @@ input IFREtornoVenda(62); UsarSaidaIFR50(true); UsarSaidaTempo(true); + UsarOCO(false); + StopLossPontos(100.0); + TakeProfitPontos(150.0); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); MaxBarrasPosicao(15); UsarGestaoRisco(true); + UsarHardLock(true); SaldoConta(1500.0); RiscoDiaPct(1.0); RiscoSemanaPct(3.0); @@ -29,7 +36,9 @@ var fIFR : float; fLimiteDia, fLimiteSemana, fResultadoDia, fResultadoSemana : float; fPrecoEntrada, fResultadoTradePontos, fResultadoTradeReais : float; + fStopAtual, fAlvoAtual : float; bBloqueioDia, bBloqueioSemana, bEstavaPosicionado : boolean; + bBreakEvenAtivo, bSaidaOCOCompra, bSaidaOCOVenda : boolean; iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin @@ -76,8 +85,40 @@ begin if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + fIFR := IFR(PeriodoIFR); + bSaidaOCOCompra := false; + bSaidaOCOVenda := false; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada - StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada + TakeProfitPontos; + bSaidaOCOCompra := UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)); + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + fStopAtual := fPrecoEntrada + StopLossPontos; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + fAlvoAtual := fPrecoEntrada - TakeProfitPontos; + bSaidaOCOVenda := UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)); + end; + if (not IsBought) and (not IsSold) and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then @@ -95,23 +136,28 @@ begin else iBarrasEmPosicao := 0; - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) or bSaidaOCOCompra) then ClosePosition; - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao)) or bSaidaOCOVenda) then ClosePosition; if (not bEstavaPosicionado) and IsBought then begin fPrecoEntrada := Close; iDirecaoPosicao := 1; + bBreakEvenAtivo := false; end; if (not bEstavaPosicionado) and IsSold then begin fPrecoEntrada := Close; iDirecaoPosicao := -1; + bBreakEvenAtivo := false; end; + if (not IsBought) and (not IsSold) then + bBreakEvenAtivo := false; + bEstavaPosicionado := IsBought or IsSold; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt b/automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt new file mode 100644 index 0000000..5093ae0 --- /dev/null +++ b/automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt @@ -0,0 +1,274 @@ +PLANO OPERACIONAL - ROBÔS IFR + +================================================== +PLANO A - MÍNIMO POSSÍVEL PARA COMEÇAR +================================================== + +Objetivo +- Começar com o menor capital possível, 1 robô e 1 contrato. + +Capital mínimo para início +- R$1.500 + +Configuração do Plano A +- Robô: v20_30min +- Contratos: 1 +- Perda diária máxima (1%): R$15,00 +- Perda semanal máxima (3%): R$45,00 + +Evolução sugerida do Plano A +- Etapa 1: R$1.500 -> rodar apenas v20_30min. +- Etapa 2: R$4.000 -> rodar 2 robôs (v20_30min + v45_60min), 1 contrato cada. +- Etapa 3: migrar para Plano B completo quando atingir estrutura e consistência. + +================================================== +PLANO B - ESTRUTURA COMPLETA (CAPITAL R$10.000) +================================================== + +RESUMO RÁPIDO - VALOR MÍNIMO PARA USAR OS ROBÔS (PLANO B) +- v6_60min: R$3.500 +- v5_60min: R$2.500 +- v45_60min: R$2.500 +- v20_30min: R$1.500 +- Mínimo total para rodar os 4: R$10.000 + +Mínimo operacional +- 1 contrato por robô/conta. + +Base dos robôs (resultado anual histórico do estudo) +1) v6_60min = +2.315 +2) v5_60min = +1.563 +3) v45_60min = +1.643 +4) v20_30min = +1.393 + +Soma histórica dos 4 = +6.914 +Capital base = R$10.000 +Retorno simples estimado = +69,14% (sem alavancagem adicional) + +================================================== +COMO SEPARAR POR CONTAS (RECOMENDAÇÃO) +================================================== + +Estrutura recomendada: 4 contas, 1 robô por conta + +Conta_A (35% = R$3.500) +- Robô: v6_60min +- Peso do lucro esperado: 2.315 / 6.914 = 33,48% +- Lucro anual proporcional estimado: R$2.315 +- Capital final estimado da conta: R$5.815 + +Conta_B (25% = R$2.500) +- Robô: v5_60min +- Peso do lucro esperado: 1.563 / 6.914 = 22,61% +- Lucro anual proporcional estimado: R$1.563 +- Capital final estimado da conta: R$4.063 + +Conta_C (25% = R$2.500) +- Robô: v45_60min +- Peso do lucro esperado: 1.643 / 6.914 = 23,76% +- Lucro anual proporcional estimado: R$1.643 +- Capital final estimado da conta: R$4.143 + +Conta_D (15% = R$1.500) +- Robô: v20_30min +- Peso do lucro esperado: 1.393 / 6.914 = 20,15% +- Lucro anual proporcional estimado: R$1.393 +- Capital final estimado da conta: R$2.893 + +Total consolidado (4 contas) +- Lucro estimado: R$6.914 +- Capital final estimado: R$16.914 + +================================================== +CONTROLE DE RISCO POR CONTA +================================================== + +Limites sugeridos +- Perda diária por conta: 1,0% do saldo da conta +- Perda semanal por conta: 3,0% do saldo da conta +- Ao bater limite semanal: pausar a conta até semana seguinte + +Observação operacional +- Você pode rodar no máximo 2 robôs simultâneos no início. +- Ordem prática de ativação: + 1) v6_60min + 2) v5_60min + 3) v45_60min + 4) v20_30min + +================================================== +CENÁRIOS DE RESULTADO (ANUAL) +================================================== + +Cenário Base (100% do histórico) +- Lucro: +R$6.914 +- Final: R$16.914 + +Cenário Conservador (75% do histórico, custos/slippage) +- Lucro: +R$5.185,50 +- Final: R$15.185,50 + +Cenário Estressado (50% do histórico) +- Lucro: +R$3.457 +- Final: R$13.457 + +Nota importante +- Isso é projeção baseada no histórico analisado, não garantia de resultado futuro. + +================================================== +CONFIGURAÇÃO PRONTA PARA COLOCAR NOS ROBÔS +================================================== + +1) LIMITES EM R$ POR CONTA (usar no setup de cada robô) + +Conta_A (v6_60min | saldo R$3.500) +- Limite diário (1%): R$35,00 +- Limite semanal (3%): R$105,00 + +Conta_B (v5_60min | saldo R$2.500) +- Limite diário (1%): R$25,00 +- Limite semanal (3%): R$75,00 + +Conta_C (v45_60min | saldo R$2.500) +- Limite diário (1%): R$25,00 +- Limite semanal (3%): R$75,00 + +Conta_D (v20_30min | saldo R$1.500) +- Limite diário (1%): R$15,00 +- Limite semanal (3%): R$45,00 + +2) LÓGICA DE TRAVA (copiar para todos os robôs) + +Passo a passo operacional +- No início de cada dia: recalcular limite diário pelo saldo atual da conta. +- No início de cada semana: zerar acumulador semanal. +- Se resultado do dia <= -limite diário: bloquear novas entradas até o próximo dia. +- Se resultado da semana <= -limite semanal: bloquear novas entradas até a próxima semana. + +Template (adaptar nomes de variáveis à sua estratégia) + +input + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + +var + LimiteDia, LimiteSemana : float; + ResultadoDia, ResultadoSemana : float; + BloqueioDia, BloqueioSemana : boolean; + +begin + LimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + LimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + // Atualizar ResultadoDia e ResultadoSemana com o PnL da sua lógica + + if ResultadoDia <= -LimiteDia then + BloqueioDia := true; + + if ResultadoSemana <= -LimiteSemana then + BloqueioSemana := true; + + if BloqueioDia or BloqueioSemana then + begin + // Não abrir novas posições + // Exemplo: pular bloco de entrada + end; +end; + +3) PARÂMETRO SaldoConta EM CADA ROBÔ + +- No robô da Conta_A (v6_60min), usar SaldoConta(3500.0) +- No robô da Conta_B (v5_60min), usar SaldoConta(2500.0) +- No robô da Conta_C (v45_60min), usar SaldoConta(2500.0) +- No robô da Conta_D (v20_30min), usar SaldoConta(1500.0) + +4) REGRA DE REATIVAÇÃO + +- Bloqueio diário: reativar no próximo pregão. +- Bloqueio semanal: reativar na segunda-feira seguinte. + +================================================== +VALOR MÍNIMO PARA INVESTIR (1 ROBÔ POR CONTA) +================================================== + +Premissas usadas neste cálculo +- 1 contrato de mini índice (WIN). +- Valor por ponto: R$0,20 por contrato. +- Custo operacional: R$0,80 por lado (R$1,60 ida + volta por contrato). +- Imposto: 20% sobre lucro líquido (estimativa simplificada). +- Regra de risco: perda diária máxima = 1% do saldo da conta. + +1) QUANTOS CONTRATOS NO MÍNIMO? + +- Mínimo operacional por robô/conta: 1 contrato. + +2) CAPITAL MÍNIMO POR CONTA (PARA 1 CONTRATO) + +Fórmula usada +- RiscoTrade(R$) = (StopPontos x 0,20) + 1,60 +- CapitalMínimo(R$) = RiscoTrade / 0,01 + +Tabela prática (1 contrato) +- Stop 50 pts -> risco por trade = R$11,60 -> capital mínimo = R$1.160 +- Stop 80 pts -> risco por trade = R$17,60 -> capital mínimo = R$1.760 +- Stop 100 pts -> risco por trade = R$21,60 -> capital mínimo = R$2.160 + +Leitura para suas contas atuais +- Conta_A (R$3.500): suporta 1 contrato com folga. +- Conta_B (R$2.500): suporta 1 contrato com folga. +- Conta_C (R$2.500): suporta 1 contrato com folga. +- Conta_D (R$1.500): suporta 1 contrato em stop curto; fica apertada em stops mais largos. + +3) RESUMO DO MÍNIMO PARA RODAR SUA ESTRUTURA + +- Mínimo por robô (1 contrato): + - v6_60min: R$3.500 (configurado) + - v5_60min: R$2.500 (configurado) + - v45_60min: R$2.500 (configurado) + - v20_30min: R$1.500 (configurado) +- Mínimo total para os 4 robôs: R$10.000 + +4) LUCRO ANUAL LÍQUIDO ESTIMADO (com custo + imposto) + +Base bruta do estudo +- v6_60min: +R$2.315 +- v5_60min: +R$1.563 +- v45_60min: +R$1.643 +- v20_30min: +R$1.393 +- Total bruto: +R$6.914 + +Estimativa líquida (após custos operacionais e 20% de imposto) +- Total líquido estimado: +R$5.427,52 + +Observação importante +- Este valor líquido é projeção com premissas simplificadas. +- Resultado real pode variar por corretagem, emolumentos, slippage e número de operações. + +================================================== +AJUSTES RECOMENDADOS PARA FICAR PRONTO PARA PRODUÇÃO +================================================== + +Status atual da gestão de risco +- Boa base: limite diário 1%, semanal 3%, bloqueio de novas entradas e reset semanal. +- OCO e breakeven já estão parametrizáveis nos 4 robôs (podem ser ligados/desligados em backtest). + +O que falta para robustez máxima +- Hard lock: ao bater limite diário/semanal, fechar posição aberta imediatamente e pausar. (IMPLEMENTADO nos 4 robôs com parâmetro UsarHardLock) +- Resultado realizado: preferir PnL realizado da execução (quando disponível), evitando proxy por fechamento de candle. +- Ordem de ativação da proteção: 1) OCO, 2) breakeven conservador, 3) breakeven agressivo (somente após validação). + +Parâmetros iniciais sugeridos para teste +- UsarOCO(true) +- StopLossPontos(100) +- TakeProfitPontos(150) +- UsarBreakEven(true) +- BreakEvenTriggerPontos(80) +- BreakEvenOffsetPontos(5) + +Checklist de validação antes de conta real +1) Backtest com e sem OCO (mesmo período). +2) Backtest com OCO + breakeven conservador. +3) Comparar: lucro líquido, drawdown, fator de lucro, sequência máxima de perdas. +4) Forward test por 2 semanas com 1 contrato. +5) Só escalar após manter disciplina de limite diário/semanal. \ No newline at end of file From e1af58a6cbcfe514dd93610c64807c8772ee32f2 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 2 Mar 2026 20:47:31 -0300 Subject: [PATCH 23/63] Adiciona ruleset JSON para proteger branch marco_Tradeoperador --- .../rulesets/marco_Tradeoperador.ruleset.json | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/rulesets/marco_Tradeoperador.ruleset.json diff --git a/.github/rulesets/marco_Tradeoperador.ruleset.json b/.github/rulesets/marco_Tradeoperador.ruleset.json new file mode 100644 index 0000000..c26a9f2 --- /dev/null +++ b/.github/rulesets/marco_Tradeoperador.ruleset.json @@ -0,0 +1,32 @@ +{ + "name": "protect-marco_Tradeoperador", + "target": "branch", + "enforcement": "active", + "bypass_actors": [], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/marco_Tradeoperador" + ], + "exclude": [] + } + }, + "rules": [ + { + "type": "deletion" + }, + { + "type": "non_fast_forward" + }, + { + "type": "pull_request", + "parameters": { + "required_approving_review_count": 1, + "dismiss_stale_reviews_on_push": true, + "require_code_owner_review": false, + "require_last_push_approval": true, + "required_review_thread_resolution": true + } + } + ] +} From e6a770a581f923e9fcd2facfd827d9e93940c086 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 11:29:47 -0300 Subject: [PATCH 24/63] =?UTF-8?q?Adiciona=20configura=C3=A7=C3=B5es=20do?= =?UTF-8?q?=20workspace:=20copilot-instructions,=20mcp.json,=20tasks,=20or?= =?UTF-8?q?ienta=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/copilot-instructions.md | 108 +++++++++++++ .vscode/extensions.json | 13 ++ .vscode/mcp.json | 42 +++++ .vscode/settings.json | 11 +- .vscode/tasks.json | 52 ++++++ WorkspaceRobosTrade/OrientacoesWorkspace.md | 169 ++++++++++++++++++++ 6 files changed, 392 insertions(+), 3 deletions(-) create mode 100644 .github/copilot-instructions.md create mode 100644 .vscode/extensions.json create mode 100644 .vscode/mcp.json create mode 100644 .vscode/tasks.json create mode 100644 WorkspaceRobosTrade/OrientacoesWorkspace.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..28f95b6 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,108 @@ +# GitHub Copilot — Instruções para RepoRobos + +## Contexto do Projeto + +Este workspace é um sistema de **day trade quantitativo** focado no mercado brasileiro (B3), especificamente no minicontrato de índice **WIN**. O trabalho envolve: + +- Desenvolvimento de **robôs/estratégias** na plataforma **Neologica Profit** (linguagem NTSL) +- **Backtesting** em Python de estratégias baseadas em IFR/RSI +- **Base de conhecimento técnico** em Markdown para consulta operacional +- **Indicadores visuais** (colorações/estudos) para o gráfico no Profit + +--- + +## Linguagem e Tom + +- Sempre responder em **português brasileiro** +- Usar terminologia de **análise técnica** e mercado financeiro brasileiro +- Ser direto e objetivo, com exemplos práticos quando possível + +--- + +## Estrutura do Workspace + +``` +automacao_backtests/ → Scripts Python de backtest + catálogos IFR +estudo_teorias/ → Teoria técnica em Markdown (consulta e edição) +profit_estudos_cores/ → Scripts NTSL para Neologica Profit +WorkspaceRobosTrade/ → Orientações e documentação do workspace +``` + +--- + +## Regras para Geração de Código + +### Scripts NTSL (Neologica Profit) + +- Extensão: `.txt` ou `.ntsl.txt` +- Nomenclatura robôs março/2026: `mar_IFR_NN_vX_TIMEFRAME_descricao.ntsl.txt` +- Nomenclatura indicadores/cores: `mar_NomeDoEstudo.ntsl.txt` +- Sempre incluir comentário de cabeçalho com: versão, timeframe, descrição, taxa de acerto se disponível +- Respeitar a sintaxe NTSL da plataforma Profit (variáveis, séries, funções nativas) + +### Scripts Python (Backtest) + +- Usar Python 3.10 (`C:/Program Files/Python310/python.exe`) +- Seguir estrutura de backtest existente na pasta `automacao_backtests/IFR_RSI/` +- Nomear resultados com timeframe e taxa de acerto no nome do arquivo: `robo_ifr_vNN_descricao_TIMEFRAME_XX%.txt` + +### Arquivos de Teoria (Markdown) + +- Manter estrutura de headings `#` existente +- Usar tabelas Markdown para hierarquias e comparações +- Referências a scripts Profit no formato: `` `fev_NomeDoScript.ntsl` `` + +--- + +## Hierarquia de Decisão Operacional + +Ao sugerir melhorias em estratégias, respeitar esta prioridade: + +1. **Peso 5 — Institucional:** VWAP diária/semanal (filtro de permissão — nunca operar contra) +2. **Peso 4 — Estrutura:** Pivôs, rompimentos, tendência de longo prazo +3. **Peso 3 — Gatilho:** Price Action (corpo, sombra, Gold Signal), IFR +4. **Peso 2 — Refino:** OBV, VSA, análise de sombra (veto) +5. **Peso 1 — Leitura:** Padrão de candle (contexto) + +--- + +## Gerenciamento de Risco (Referência) + +- Risco por operação: **máximo 1-2% do capital** +- Relação risco/retorno mínima: **1:2** +- WIN: stop baseado em **estrutura técnica** (suporte/resistência/pivô) +- Nunca sugerir estratégias sem stop definido + +--- + +## Padrões de Qualidade para Robôs IFR + +Ao criar ou otimizar robôs IFR, priorizar: + +- Timeframes com melhor desempenho histórico: **60min e 30min** +- Taxa de acerto mínima aceitável: **>60%** +- Filtros obrigatórios: contexto de tendência (MME200 ou MME9/21) + controle de risco diário +- Estrutura base: entrada IFR extremo → filtro de contexto → saída híbrida (alvo técnico + trailing) + +--- + +## Git + +### Convenção de Branches Mensais + +A cada mês é criada uma **branch dedicada** com os resultados, novos robôs e teorias do ciclo: + +``` +main +├── fevereiro_tradeOperador ← ciclo fev/2026 +├── marco_Tradeoperador ← ciclo mar/2026 (ATIVO) +├── abril_tradeOperador ← ciclo abr/2026 (futuro) +└── ... ← um por mês +``` + +- Nome da branch: `_tradeOperador` +- Prefixo dos arquivos NTSL/Python deve coincidir com o mês (`fev_`, `mar_`, `abr_`...) +- Ao iniciar novo ciclo: criar branch a partir de `main` após merge do mês anterior +- Merge para `main` via Pull Request ao fim do ciclo +- Não commitar resultados brutos de backtest sem aprovação explícita +- Branch ativa no momento: `marco_Tradeoperador` | PR ativo: #2 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0adc223 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,13 @@ +{ + "recommendations": [ + "github.copilot", + "github.copilot-chat", + "ms-python.python", + "ms-python.pylance", + "yzhang.markdown-all-in-one", + "mhutchie.git-graph", + "eamodio.gitlens", + "streetsidesoftware.code-spell-checker", + "streetsidesoftware.code-spell-checker-portuguese-brazilian" + ] +} diff --git a/.vscode/mcp.json b/.vscode/mcp.json new file mode 100644 index 0000000..221e935 --- /dev/null +++ b/.vscode/mcp.json @@ -0,0 +1,42 @@ +{ + "servers": { + "filesystem": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "c:\\dev\\TradeRobos\\RepoRobos" + ] + }, + "git": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-git", + "--repository", + "c:\\dev\\TradeRobos\\RepoRobos" + ] + }, + "github": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-github" + ], + "env": { + "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:githubToken}" + } + } + }, + "inputs": [ + { + "id": "githubToken", + "type": "promptString", + "description": "GitHub Personal Access Token (repo + read:org)", + "password": true + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 2ca0024..2956a96 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,12 @@ { - "python.defaultInterpreterPath": "C:/Users/zilva/AppData/Local/Programs/Python/Python312/python.exe", + "python.defaultInterpreterPath": "C:/Program Files/Python310/python.exe", "chat.tools.terminal.autoApprove": { - "ForEach-Object": true, - "1..50": true + "ForEach-Object": true + }, + "editor.wordWrap": "on", + "editor.rulers": [100], + "files.associations": { + "*.txt": "plaintext", + "*.ntsl": "plaintext" } } diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..f690132 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,52 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Git: Pull marco_Tradeoperador", + "type": "shell", + "command": "git pull origin marco_Tradeoperador", + "group": "none", + "presentation": { + "reveal": "always", + "panel": "shared" + }, + "problemMatcher": [] + }, + { + "label": "Git: Push marco_Tradeoperador", + "type": "shell", + "command": "git push origin marco_Tradeoperador", + "group": "none", + "presentation": { + "reveal": "always", + "panel": "shared" + }, + "problemMatcher": [] + }, + { + "label": "Git: Status resumido", + "type": "shell", + "command": "git status --short && git log --oneline -10", + "group": "none", + "presentation": { + "reveal": "always", + "panel": "shared" + }, + "problemMatcher": [] + }, + { + "label": "Backtest: Rodar script Python", + "type": "shell", + "command": "python ${file}", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "always", + "panel": "dedicated" + }, + "problemMatcher": ["$python"] + } + ] +} diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md new file mode 100644 index 0000000..f6b4153 --- /dev/null +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -0,0 +1,169 @@ +# Orientações do Workspace — RepoRobos + +> **Branch ativa:** `marco_Tradeoperador` | **Repositório:** wesleyzilva/RepoRobos +> **Atualizado em:** março/2026 + +--- + +## 1. Visão Geral do Workspace + +Este repositório organiza toda a estrutura de estudo, desenvolvimento e automação de **robôs de day trade** para o mercado brasileiro (B3), com foco no minicontrato de índice (WIN) e na plataforma **Neologica Profit**. + +--- + +## 2. Estrutura de Pastas + +``` +RepoRobos/ +├── automacao_backtests/ # Scripts Python de backtest + resultados IFR/RSI +│ └── IFR_RSI/ # 50+ variações de estratégia IFR catalogadas e testadas +├── estudo_teorias/ # Base de conhecimento técnico (Markdown) +├── profit_estudos_cores/ # Scripts NTSL prontos para colar no Profit (indicadores/cores) +│ └── marco2026_IFR_top5/ # Top 5 robôs IFR ativos do ciclo de março/2026 +└── WorkspaceRobosTrade/ # Este arquivo + orientações do workspace +``` + +--- + +## 3. Para Que Serve Cada Pasta + +### `estudo_teorias/` +Base teórica de consulta antes e durante o trade. Arquivos chave: + +| Arquivo | Uso | +|---|---| +| `tabela_confluencias.md` | **Hierarquia de decisão** — seguir antes de qualquer entrada | +| `mapa_de_uso_operacional.md` | Roteiro passo a passo do dia (pré-mercado → encerramento) | +| `gerenciamento_risco.md` | Regras de stop, contratos e risco por operação | +| `caracteristicas_WIN_mini_indice.md` | Verdades operacionais do WIN | +| `organizacao_B3_Internacional_horarios.md` | Calendário, horários críticos e janelas de risco | +| `teoria_IFR.md` | Referência técnica principal dos robôs | +| `teoria_panorama_contexto.md` | Contexto macro antes do gatilho | +| `teoria_tendencia.md` / `teoria_tendencia_pivots.md` | Estrutura de tendência | +| `teoria_vwap.md` | VWAP como filtro institucional | +| `teoria_VSA.md` / `teoria_volume.md` | Leitura de volume e assinatura institucional | + +### `profit_estudos_cores/` +Scripts NTSL para a plataforma Profit. Cada arquivo é um indicador/coloração aplicável ao gráfico. + +**Hierarquia de uso (do mais importante para o menos):** + +| Peso | Arquivo | Função | +|---|---|---| +| 🟥 5 | `fev_VWAPsemanalDiario.txt` | Filtro institucional — porteiro da operação | +| 🟥 5 | `fev_VWAPreferenciaPreco.txt` | Região de preferência institucional | +| 🟧 4 | `fev_TendenciaPivoTesteDeOuro.txt` | Confirmação de estrutura rompida | +| 🟧 4 | `fev_TendenciaLongoPrazo.txt` | Contexto de tendência maior | +| 🟨 3 | `fev_PriceActionCorpoSombraExecucao.txt` | Gatilho de entrada (Gold Signal) | +| 🟨 3 | `fev_PriceActionNewton.txt` / `fev_PriceActionNewtonIFR.txt` | Força do movimento | +| 🟦 2 | `fev_PriceActionAnaliseSombra.txt` | Veto por pavio contra | +| 🟦 2 | `fev_OBVvolumeVerdadeiro.txt` | Confirmação de fluxo real | +| 🟪 2 | `fev_DetectorFasesMercado.txt` | Identificação de lateralidade vs tendência | +| ⬜ 1 | `fev_PriceActionTiposCandlesLeitura.txt` | Leitura de padrão de candle | + +**Subpasta `marco2026_IFR_top5/`:** Os 5 robôs IFR aprovados no ciclo de março/2026 para uso em produção. + +### `automacao_backtests/` +Scripts de backtest e catálogos de estratégias IFR. + +- `IFR_RSI/robos_IFR.txt` — catálogo completo das versões testadas +- `IFR_RSI/catalogo_50_opcoes_IFR.txt` — 50 variações catalogadas para priorização +- `IFR_RSI/resultadosAprovadosPorTimeframe/` — resultados filtrados por aprovação +- `IFR_RSI/top10/` — os 10 melhores robôs IFR por desempenho +- `NeologicaProfitAPIbacktest.txt` — referência de API Neologica para automação + +--- + +## 4. Fluxo Operacional Diário (Resumo) + +``` +1. PRÉ-MERCADO + └── Consultar: teoria_panorama_contexto, teoria_tendencia, gerenciamento_risco + └── Definir: viés do dia + limite de risco + +2. CONTEXTO NO GRÁFICO (Permissão) + └── Aplicar: fev_VWAPsemanalDiario, fev_DetectorFasesMercado, fev_panorama920 + └── Regra: VWAP indefinida ou conflitante → NÃO OPERAR + +3. CONFIRMAÇÃO DE ESTRUTURA + └── Aplicar: fev_TendenciaPivoTesteDeOuro, fev_mediasTrend9_20_50_200 + └── Regra: pivô/rompimento coerente → avançar + +4. GATILHO DE ENTRADA + └── Aplicar: fev_PriceActionCorpoSombraExecucao, fev_PriceActionNewton + └── Regra: contexto bom + gatilho ruim → SEM ENTRADA + +5. CONFIRMAÇÃO DE FLUXO + └── Aplicar: fev_OBVvolumeVerdadeiro, fev_VSAassinaturaInstitucional + └── Regra: OBV divergindo → movimento falso + +6. ENCERRAMENTO E REGISTRO + └── Registrar no diarioDeBordo + └── Atualizar tabela_confluencias se aprendeu algo novo +``` + +--- + +## 5. Regras de Gerenciamento de Risco (Referência Rápida) + +- **Risco máximo por operação:** 1% a 2% do capital +- **Relação risco/retorno mínima:** 1:2 +- **Capital R$10k:** 2 contratos WIN (stop 200 pts = R$40/contrato) +- **Stop loss:** sempre baseado em estrutura técnica (suporte, resistência, pivô) +- **Regra de ouro:** NUNCA operar contra Peso 5 (VWAP institucional) + +--- + +## 6. Git — Fluxo de Trabalho + +| Tarefa | Comando / Task | +|---|---| +| Verificar status | Task: `Git: Status resumido` | +| Baixar atualizações | Task: `Git: Pull marco_Tradeoperador` | +| Enviar alterações | Task: `Git: Push marco_Tradeoperador` | +| Rodar backtest Python | Task: `Backtest: Rodar script Python` | + +### Convenção de Branches Mensais + +A cada mês é criada uma **branch dedicada** contendo os resultados de backtest, novos robôs e teorias daquele ciclo: + +``` +main +├── fevereiro_tradeOperador ← ciclo fev/2026 (robos fev_, estudos) +├── marco_Tradeoperador ← ciclo mar/2026 (ATIVO) +├── abril_tradeOperador ← ciclo abr/2026 (futuro) +└── ... ← um por mês +``` + +**Regras:** +- Nome da branch: `_tradeOperador` (ex: `abril_tradeOperador`) +- Prefixo dos arquivos deve coincidir com o mês (ex: `abr_` para abril) +- Ao iniciar novo ciclo: criar branch a partir de `main` após merge do mês anterior +- Cada branch acumula apenas os artefatos **produzidos naquele mês** +- Merge para `main` via **Pull Request** ao fim do ciclo + +**Branch principal:** `main` (protegida — merge via PR) + +--- + +## 7. Padrão de Nomenclatura de Arquivos + +| Prefixo | Significado | Exemplo | +|---|---|---| +| `fev_` | Script do ciclo de fevereiro/2026 | `fev_VWAPsemanalDiario.txt` | +| `mar_IFR_` | Robô IFR do ciclo de março/2026 | `mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt` | +| `robo_ifr_vNN_` | Versão numerada de robô IFR em backtest | `robo_ifr_v31_reversao_volume_relativo60min72%.txt` | +| `teoria_` | Arquivo teórico de consulta | `teoria_IFR.md` | +| `caracteristicas_` | Verdades práticas de um ativo | `caracteristicas_WIN_mini_indice.md` | + +--- + +## 8. Convenções para o Agente (GitHub Copilot) + +- Linguagem dos arquivos: **português brasileiro** +- Plataforma alvo dos scripts `.txt`/`.ntsl.txt`: **Neologica Profit (NTSL)** +- Scripts de backtest: **Python** +- Quando sugerir código NTSL, respeitar a sintaxe da plataforma Profit +- Ao editar teorias, manter a estrutura de heading `#` e tabelas Markdown existentes +- Ao criar novos robôs IFR, seguir a nomenclatura `mar_IFR_NN_vX_TIMEFRAME_descricao.ntsl.txt` +- Registros de sessão/diário: usar `estudo_teorias/0326_diarioDeBordo.md` From 1209fd1e2d71b19d44e4c833ac0f189bebb45000 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 11:38:22 -0300 Subject: [PATCH 25/63] =?UTF-8?q?Adiciona=20configura=C3=A7=C3=B5es=20Chec?= =?UTF-8?q?kmarx=20do=20workspace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/.checkmarxDevAssistIgnored | 1 + .vscode/.checkmarxIgnored | 1 + 2 files changed, 2 insertions(+) create mode 100644 .vscode/.checkmarxDevAssistIgnored create mode 100644 .vscode/.checkmarxIgnored diff --git a/.vscode/.checkmarxDevAssistIgnored b/.vscode/.checkmarxDevAssistIgnored new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.vscode/.checkmarxDevAssistIgnored @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.vscode/.checkmarxIgnored b/.vscode/.checkmarxIgnored new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.vscode/.checkmarxIgnored @@ -0,0 +1 @@ +{} \ No newline at end of file From 39e65257fd28c812507fd3af2a137b53329397bb Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 13:29:36 -0300 Subject: [PATCH 26/63] Adiciona arquivo .code-workspace do workspace TradeRobos --- WorkspaceRobosTrade/TradeRobos.code-workspace | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 WorkspaceRobosTrade/TradeRobos.code-workspace diff --git a/WorkspaceRobosTrade/TradeRobos.code-workspace b/WorkspaceRobosTrade/TradeRobos.code-workspace new file mode 100644 index 0000000..017f9fd --- /dev/null +++ b/WorkspaceRobosTrade/TradeRobos.code-workspace @@ -0,0 +1,92 @@ +{ + "folders": [ + { + "name": "🤖 RepoRobos [marco_Tradeoperador]", + "path": "./RepoRobos" + } + ], + "settings": { + // ── Identidade Git ────────────────────────────────────────── + "git.defaultBranchName": "marco_Tradeoperador", + "git.autofetch": true, + "git.autofetchPeriod": 180, + "git.confirmSync": false, + "git.enableSmartCommit": true, + + // ── Python ────────────────────────────────────────────────── + "python.defaultInterpreterPath": "C:/Program Files/Python310/python.exe", + + // ── Editor ────────────────────────────────────────────────── + "editor.tabSize": 2, + "editor.rulers": [100], + "editor.wordWrap": "on", + "editor.formatOnSave": true, + "editor.suggestSelection": "first", + "editor.inlineSuggest.enabled": true, + + // ── Copilot ───────────────────────────────────────────────── + "github.copilot.enable": { + "*": true, + "plaintext": true, + "markdown": true + }, + "chat.tools.terminal.autoApprove": { + "ForEach-Object": true, + "ConvertFrom-Json": true, + "/^node --version; npx --version$/": { + "approve": true, + "matchCommandLine": true + } + }, + + // ── Arquivos ───────────────────────────────────────────────── + "files.associations": { + "*.txt": "plaintext", + "*.ntsl": "plaintext" + }, + "files.exclude": { + "**/.git": true, + "**/__pycache__": true, + "**/*.pyc": true + }, + "files.autoSave": "afterDelay", + "files.autoSaveDelay": 2000, + + // ── Explorer ───────────────────────────────────────────────── + "explorer.sortOrder": "type", + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.md": "${capture}_*.md" + }, + + // ── Terminal ───────────────────────────────────────────────── + "terminal.integrated.defaultProfile.windows": "PowerShell", + "terminal.integrated.cwd": "${workspaceFolder}" + }, + "extensions": { + "recommendations": [ + "github.copilot", + "github.copilot-chat", + "ms-python.python", + "ms-python.pylance", + "yzhang.markdown-all-in-one", + "mhutchie.git-graph", + "eamodio.gitlens", + "streetsidesoftware.code-spell-checker", + "streetsidesoftware.code-spell-checker-portuguese-brazilian" + ] + }, + "launch": { + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Backtest Atual", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}/automacao_backtests" + } + ] + } +} From 9b4e8c627242c5ce5b98426c98e1ee75bc5df7a5 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 13:40:23 -0300 Subject: [PATCH 27/63] Reorganiza estrutura: fev2026/, codigo_fonte/, subpastas estudo_teorias por tema --- .github/copilot-instructions.md | 23 ++++++++++--- WorkspaceRobosTrade/OrientacoesWorkspace.md | 34 ++++++++++--------- ...robo_ifr_v10_balanceado_regime60min63%.txt | 0 .../robo_ifr_v18_bandas_dinamicas60min60%.txt | 0 ...o_ifr_v24_controle_risco_diario1min67%.txt | 0 ...obo_ifr_v25_ifr_mme200_contexto2min69%.txt | 0 ...o_ifr_v27_um_trade_por_direcao60min54%.txt | 0 .../robo_ifr_v28_ifr_adx_filtro30min57%.txt | 0 ...r_v31_reversao_volume_relativo60min72%.txt | 0 .../robo_ifr_v33_pullback_mme20060min67%.txt | 0 ...r_v36_divergencia_regular_pivo60min62%.txt | 0 ..._ifr_v4_divergencia_confirmada60min90%.txt | 0 .../{ => 0_diario}/0326_diarioDeBordo.md | 0 .../{ => 0_diario}/AulaVascoMamede.md | 0 .../caracteristicas_WIN_mini_indice.md | 0 .../caracteristicas_ativos_tecnicos.md | 0 .../{ => 1_operacional}/correlacao_ativos.md | 0 .../eficiencia_tributaria.md | 0 .../gerenciamento_risco.md | 0 .../mapa_de_uso_operacional.md | 0 .../organizacao_B3_Internacional.md | 0 .../organizacao_B3_Internacional_horarios.md | 0 .../tabela_confluencias.md | 0 estudo_teorias/{ => 2_teorias}/teoria_ATR.md | 0 estudo_teorias/{ => 2_teorias}/teoria_IFR.md | 0 estudo_teorias/{ => 2_teorias}/teoria_MACD.md | 0 estudo_teorias/{ => 2_teorias}/teoria_OCO.md | 0 .../{ => 2_teorias}/teoria_candlestick.md | 0 .../{ => 2_teorias}/teoria_medias.md | 0 .../teoria_priceAction_primeirocandle.md | 0 .../{ => 2_teorias}/teoria_priceaction.md | 0 .../{ => 2_teorias}/teoria_renko.md | 0 .../teoria_sentimentosTrade.md | 0 .../teoria_panorama_contexto.md | 0 .../teoria_tendencia.md | 0 .../teoria_tendencia_institucional.md | 0 .../teoria_tendencia_pivots.md | 0 .../teoria_VSA.md | 0 .../teoria_volume.md | 0 .../teoria_vwap.md | 0 .../teoria_wyckoff.md | 0 .../fev_2minReversaoComVolumeWIN.txt | 0 .../fev_ATRmovimentoDoPrecoComVontade.txt | 0 .../fev_ContadorCruzamentosMedias.txt | 0 .../fev_DetectorFasesMercado.txt | 0 .../{ => fev2026}/fev_DivergenciaIFR.txt | 0 .../{ => fev2026}/fev_HorarioTurbulencia.txt | 0 .../{ => fev2026}/fev_MediasSetupDiario.txt | 0 .../{ => fev2026}/fev_MediasSetupSemana.txt | 0 .../{ => fev2026}/fev_OBVvolumeVerdadeiro.txt | 0 .../{ => fev2026}/fev_PainelDecisao.txt | 0 .../fev_PainelDecisaoAlarme.ntsl.txt | 0 .../fev_PriceActionAnaliseCorpo.txt | 0 .../fev_PriceActionAnaliseSombra.txt | 0 .../fev_PriceActionCorpoSombraExecucao.txt | 0 .../{ => fev2026}/fev_PriceActionNewton.txt | 0 .../fev_PriceActionNewtonIFR.txt | 0 .../fev_PriceActionTiposCandlesLeitura.txt | 0 .../{ => fev2026}/fev_PriceActionVSA_OBV.txt | 0 .../fev_RegraDeDow_Rompimento.txt | 0 .../{ => fev2026}/fev_TendenciaLongoPrazo.txt | 0 .../fev_TendenciaPivoTesteDeOuro.txt | 0 .../fev_VSAassinaturaInstitucional.txt | 0 .../{ => fev2026}/fev_VWAPreferenciaPreco.txt | 0 .../{ => fev2026}/fev_VWAPsemanalDiario.txt | 0 .../{ => fev2026}/fev_direcaoDoDia.txt | 0 .../fev_mediasTrend9_20_50_200.txt | 0 .../{ => fev2026}/fev_panorama920.txt | 0 .../fev_panoramaMedias9_20_50_200.txt | 0 .../fev_priceActionPrimeiroCandle.txt | 0 70 files changed, 37 insertions(+), 20 deletions(-) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v10_balanceado_regime60min63%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v18_bandas_dinamicas60min60%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v24_controle_risco_diario1min67%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v25_ifr_mme200_contexto2min69%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v27_um_trade_por_direcao60min54%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v28_ifr_adx_filtro30min57%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v31_reversao_volume_relativo60min72%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v33_pullback_mme20060min67%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v36_divergencia_regular_pivo60min62%.txt (100%) rename automacao_backtests/IFR_RSI/{ => codigo_fonte}/robo_ifr_v4_divergencia_confirmada60min90%.txt (100%) rename estudo_teorias/{ => 0_diario}/0326_diarioDeBordo.md (100%) rename estudo_teorias/{ => 0_diario}/AulaVascoMamede.md (100%) rename estudo_teorias/{ => 1_operacional}/caracteristicas_WIN_mini_indice.md (100%) rename estudo_teorias/{ => 1_operacional}/caracteristicas_ativos_tecnicos.md (100%) rename estudo_teorias/{ => 1_operacional}/correlacao_ativos.md (100%) rename estudo_teorias/{ => 1_operacional}/eficiencia_tributaria.md (100%) rename estudo_teorias/{ => 1_operacional}/gerenciamento_risco.md (100%) rename estudo_teorias/{ => 1_operacional}/mapa_de_uso_operacional.md (100%) rename estudo_teorias/{ => 1_operacional}/organizacao_B3_Internacional.md (100%) rename estudo_teorias/{ => 1_operacional}/organizacao_B3_Internacional_horarios.md (100%) rename estudo_teorias/{ => 1_operacional}/tabela_confluencias.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_ATR.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_IFR.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_MACD.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_OCO.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_candlestick.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_medias.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_priceAction_primeirocandle.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_priceaction.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_renko.md (100%) rename estudo_teorias/{ => 2_teorias}/teoria_sentimentosTrade.md (100%) rename estudo_teorias/{ => 3_tendencia_contexto}/teoria_panorama_contexto.md (100%) rename estudo_teorias/{ => 3_tendencia_contexto}/teoria_tendencia.md (100%) rename estudo_teorias/{ => 3_tendencia_contexto}/teoria_tendencia_institucional.md (100%) rename estudo_teorias/{ => 3_tendencia_contexto}/teoria_tendencia_pivots.md (100%) rename estudo_teorias/{ => 4_volume_institucional}/teoria_VSA.md (100%) rename estudo_teorias/{ => 4_volume_institucional}/teoria_volume.md (100%) rename estudo_teorias/{ => 4_volume_institucional}/teoria_vwap.md (100%) rename estudo_teorias/{ => 4_volume_institucional}/teoria_wyckoff.md (100%) rename profit_estudos_cores/{ => fev2026}/fev_2minReversaoComVolumeWIN.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_ATRmovimentoDoPrecoComVontade.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_ContadorCruzamentosMedias.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_DetectorFasesMercado.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_DivergenciaIFR.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_HorarioTurbulencia.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_MediasSetupDiario.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_MediasSetupSemana.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_OBVvolumeVerdadeiro.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PainelDecisao.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PainelDecisaoAlarme.ntsl.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionAnaliseCorpo.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionAnaliseSombra.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionCorpoSombraExecucao.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionNewton.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionNewtonIFR.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionTiposCandlesLeitura.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_PriceActionVSA_OBV.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_RegraDeDow_Rompimento.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_TendenciaLongoPrazo.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_TendenciaPivoTesteDeOuro.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_VSAassinaturaInstitucional.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_VWAPreferenciaPreco.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_VWAPsemanalDiario.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_direcaoDoDia.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_mediasTrend9_20_50_200.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_panorama920.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_panoramaMedias9_20_50_200.txt (100%) rename profit_estudos_cores/{ => fev2026}/fev_priceActionPrimeiroCandle.txt (100%) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 28f95b6..d4c047a 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -22,10 +22,25 @@ Este workspace é um sistema de **day trade quantitativo** focado no mercado bra ## Estrutura do Workspace ``` -automacao_backtests/ → Scripts Python de backtest + catálogos IFR -estudo_teorias/ → Teoria técnica em Markdown (consulta e edição) -profit_estudos_cores/ → Scripts NTSL para Neologica Profit -WorkspaceRobosTrade/ → Orientações e documentação do workspace +automacao_backtests/ +└── IFR_RSI/ + ├── codigo_fonte/ → Scripts NTSL dos robôs testados + ├── top10/ → Top 10 por desempenho + ├── resultadosAprovadosPorTimeframe/ → CSVs de resultados + └── Reprovados/ → Versões descartadas + +estudo_teorias/ +├── 0_diario/ → Diário de bordo e aulas +├── 1_operacional/ → Consulta pré-trade (risco, WIN, horários) +├── 2_teorias/ → Indicadores técnicos (IFR, MACD, médias...) +├── 3_tendencia_contexto/ → Tendência, pivôs e panorama +└── 4_volume_institucional/ → VSA, VWAP, volume, Wyckoff + +profit_estudos_cores/ +├── fev2026/ → Scripts do ciclo fevereiro/2026 +└── marco2026_IFR_top5/ → Top 5 robôs IFR ativos (mar/2026) + +WorkspaceRobosTrade/ → Orientações e documentação do workspace ``` --- diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md index f6b4153..9a0cea9 100644 --- a/WorkspaceRobosTrade/OrientacoesWorkspace.md +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -28,23 +28,23 @@ RepoRobos/ ## 3. Para Que Serve Cada Pasta ### `estudo_teorias/` -Base teórica de consulta antes e durante o trade. Arquivos chave: +Base teórica organizada por tema: -| Arquivo | Uso | -|---|---| -| `tabela_confluencias.md` | **Hierarquia de decisão** — seguir antes de qualquer entrada | -| `mapa_de_uso_operacional.md` | Roteiro passo a passo do dia (pré-mercado → encerramento) | -| `gerenciamento_risco.md` | Regras de stop, contratos e risco por operação | -| `caracteristicas_WIN_mini_indice.md` | Verdades operacionais do WIN | -| `organizacao_B3_Internacional_horarios.md` | Calendário, horários críticos e janelas de risco | -| `teoria_IFR.md` | Referência técnica principal dos robôs | -| `teoria_panorama_contexto.md` | Contexto macro antes do gatilho | -| `teoria_tendencia.md` / `teoria_tendencia_pivots.md` | Estrutura de tendência | -| `teoria_vwap.md` | VWAP como filtro institucional | -| `teoria_VSA.md` / `teoria_volume.md` | Leitura de volume e assinatura institucional | +| Subpasta | Conteúdo | Arquivos chave | +|---|---|---| +| `0_diario/` | Diário de bordo e aulas | `0326_diarioDeBordo.md`, `AulaVascoMamede.md` | +| `1_operacional/` | Consulta pré-trade e regras práticas | `tabela_confluencias.md`, `mapa_de_uso_operacional.md`, `gerenciamento_risco.md`, `caracteristicas_WIN_mini_indice.md` | +| `2_teorias/` | Indicadores técnicos | `teoria_IFR.md`, `teoria_MACD.md`, `teoria_medias.md`, `teoria_priceaction.md` | +| `3_tendencia_contexto/` | Tendência, pivôs e panorama | `teoria_tendencia.md`, `teoria_tendencia_pivots.md`, `teoria_panorama_contexto.md` | +| `4_volume_institucional/` | Volume, VSA, VWAP e Wyckoff | `teoria_VSA.md`, `teoria_vwap.md`, `teoria_volume.md`, `teoria_wyckoff.md` | ### `profit_estudos_cores/` -Scripts NTSL para a plataforma Profit. Cada arquivo é um indicador/coloração aplicável ao gráfico. +Scripts NTSL para a plataforma Profit, organizados por ciclo mensal: + +- `fev2026/` — todos os indicadores/colorações do ciclo de fevereiro/2026 +- `marco2026_IFR_top5/` — top 5 robôs IFR ativos do ciclo de março/2026 + +Cada arquivo é um indicador/coloração aplicável ao gráfico. **Hierarquia de uso (do mais importante para o menos):** @@ -66,10 +66,12 @@ Scripts NTSL para a plataforma Profit. Cada arquivo é um indicador/coloração ### `automacao_backtests/` Scripts de backtest e catálogos de estratégias IFR. -- `IFR_RSI/robos_IFR.txt` — catálogo completo das versões testadas +- `IFR_RSI/robos_IFR.txt` — índice de todas as versões testadas - `IFR_RSI/catalogo_50_opcoes_IFR.txt` — 50 variações catalogadas para priorização -- `IFR_RSI/resultadosAprovadosPorTimeframe/` — resultados filtrados por aprovação +- `IFR_RSI/codigo_fonte/` — scripts NTSL `.txt` das versões de robô - `IFR_RSI/top10/` — os 10 melhores robôs IFR por desempenho +- `IFR_RSI/resultadosAprovadosPorTimeframe/` — CSVs de resultados por timeframe +- `IFR_RSI/Reprovados/` — versões descartadas - `NeologicaProfitAPIbacktest.txt` — referência de API Neologica para automação --- diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v10_balanceado_regime60min63%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v18_bandas_dinamicas60min60%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v24_controle_risco_diario1min67%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v25_ifr_mme200_contexto2min69%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v27_um_trade_por_direcao60min54%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v28_ifr_adx_filtro30min57%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v31_reversao_volume_relativo60min72%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v33_pullback_mme20060min67%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v36_divergencia_regular_pivo60min62%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.txt diff --git a/automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.txt similarity index 100% rename from automacao_backtests/IFR_RSI/robo_ifr_v4_divergencia_confirmada60min90%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.txt diff --git a/estudo_teorias/0326_diarioDeBordo.md b/estudo_teorias/0_diario/0326_diarioDeBordo.md similarity index 100% rename from estudo_teorias/0326_diarioDeBordo.md rename to estudo_teorias/0_diario/0326_diarioDeBordo.md diff --git a/estudo_teorias/AulaVascoMamede.md b/estudo_teorias/0_diario/AulaVascoMamede.md similarity index 100% rename from estudo_teorias/AulaVascoMamede.md rename to estudo_teorias/0_diario/AulaVascoMamede.md diff --git a/estudo_teorias/caracteristicas_WIN_mini_indice.md b/estudo_teorias/1_operacional/caracteristicas_WIN_mini_indice.md similarity index 100% rename from estudo_teorias/caracteristicas_WIN_mini_indice.md rename to estudo_teorias/1_operacional/caracteristicas_WIN_mini_indice.md diff --git a/estudo_teorias/caracteristicas_ativos_tecnicos.md b/estudo_teorias/1_operacional/caracteristicas_ativos_tecnicos.md similarity index 100% rename from estudo_teorias/caracteristicas_ativos_tecnicos.md rename to estudo_teorias/1_operacional/caracteristicas_ativos_tecnicos.md diff --git a/estudo_teorias/correlacao_ativos.md b/estudo_teorias/1_operacional/correlacao_ativos.md similarity index 100% rename from estudo_teorias/correlacao_ativos.md rename to estudo_teorias/1_operacional/correlacao_ativos.md diff --git a/estudo_teorias/eficiencia_tributaria.md b/estudo_teorias/1_operacional/eficiencia_tributaria.md similarity index 100% rename from estudo_teorias/eficiencia_tributaria.md rename to estudo_teorias/1_operacional/eficiencia_tributaria.md diff --git a/estudo_teorias/gerenciamento_risco.md b/estudo_teorias/1_operacional/gerenciamento_risco.md similarity index 100% rename from estudo_teorias/gerenciamento_risco.md rename to estudo_teorias/1_operacional/gerenciamento_risco.md diff --git a/estudo_teorias/mapa_de_uso_operacional.md b/estudo_teorias/1_operacional/mapa_de_uso_operacional.md similarity index 100% rename from estudo_teorias/mapa_de_uso_operacional.md rename to estudo_teorias/1_operacional/mapa_de_uso_operacional.md diff --git a/estudo_teorias/organizacao_B3_Internacional.md b/estudo_teorias/1_operacional/organizacao_B3_Internacional.md similarity index 100% rename from estudo_teorias/organizacao_B3_Internacional.md rename to estudo_teorias/1_operacional/organizacao_B3_Internacional.md diff --git a/estudo_teorias/organizacao_B3_Internacional_horarios.md b/estudo_teorias/1_operacional/organizacao_B3_Internacional_horarios.md similarity index 100% rename from estudo_teorias/organizacao_B3_Internacional_horarios.md rename to estudo_teorias/1_operacional/organizacao_B3_Internacional_horarios.md diff --git a/estudo_teorias/tabela_confluencias.md b/estudo_teorias/1_operacional/tabela_confluencias.md similarity index 100% rename from estudo_teorias/tabela_confluencias.md rename to estudo_teorias/1_operacional/tabela_confluencias.md diff --git a/estudo_teorias/teoria_ATR.md b/estudo_teorias/2_teorias/teoria_ATR.md similarity index 100% rename from estudo_teorias/teoria_ATR.md rename to estudo_teorias/2_teorias/teoria_ATR.md diff --git a/estudo_teorias/teoria_IFR.md b/estudo_teorias/2_teorias/teoria_IFR.md similarity index 100% rename from estudo_teorias/teoria_IFR.md rename to estudo_teorias/2_teorias/teoria_IFR.md diff --git a/estudo_teorias/teoria_MACD.md b/estudo_teorias/2_teorias/teoria_MACD.md similarity index 100% rename from estudo_teorias/teoria_MACD.md rename to estudo_teorias/2_teorias/teoria_MACD.md diff --git a/estudo_teorias/teoria_OCO.md b/estudo_teorias/2_teorias/teoria_OCO.md similarity index 100% rename from estudo_teorias/teoria_OCO.md rename to estudo_teorias/2_teorias/teoria_OCO.md diff --git a/estudo_teorias/teoria_candlestick.md b/estudo_teorias/2_teorias/teoria_candlestick.md similarity index 100% rename from estudo_teorias/teoria_candlestick.md rename to estudo_teorias/2_teorias/teoria_candlestick.md diff --git a/estudo_teorias/teoria_medias.md b/estudo_teorias/2_teorias/teoria_medias.md similarity index 100% rename from estudo_teorias/teoria_medias.md rename to estudo_teorias/2_teorias/teoria_medias.md diff --git a/estudo_teorias/teoria_priceAction_primeirocandle.md b/estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md similarity index 100% rename from estudo_teorias/teoria_priceAction_primeirocandle.md rename to estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md diff --git a/estudo_teorias/teoria_priceaction.md b/estudo_teorias/2_teorias/teoria_priceaction.md similarity index 100% rename from estudo_teorias/teoria_priceaction.md rename to estudo_teorias/2_teorias/teoria_priceaction.md diff --git a/estudo_teorias/teoria_renko.md b/estudo_teorias/2_teorias/teoria_renko.md similarity index 100% rename from estudo_teorias/teoria_renko.md rename to estudo_teorias/2_teorias/teoria_renko.md diff --git a/estudo_teorias/teoria_sentimentosTrade.md b/estudo_teorias/2_teorias/teoria_sentimentosTrade.md similarity index 100% rename from estudo_teorias/teoria_sentimentosTrade.md rename to estudo_teorias/2_teorias/teoria_sentimentosTrade.md diff --git a/estudo_teorias/teoria_panorama_contexto.md b/estudo_teorias/3_tendencia_contexto/teoria_panorama_contexto.md similarity index 100% rename from estudo_teorias/teoria_panorama_contexto.md rename to estudo_teorias/3_tendencia_contexto/teoria_panorama_contexto.md diff --git a/estudo_teorias/teoria_tendencia.md b/estudo_teorias/3_tendencia_contexto/teoria_tendencia.md similarity index 100% rename from estudo_teorias/teoria_tendencia.md rename to estudo_teorias/3_tendencia_contexto/teoria_tendencia.md diff --git a/estudo_teorias/teoria_tendencia_institucional.md b/estudo_teorias/3_tendencia_contexto/teoria_tendencia_institucional.md similarity index 100% rename from estudo_teorias/teoria_tendencia_institucional.md rename to estudo_teorias/3_tendencia_contexto/teoria_tendencia_institucional.md diff --git a/estudo_teorias/teoria_tendencia_pivots.md b/estudo_teorias/3_tendencia_contexto/teoria_tendencia_pivots.md similarity index 100% rename from estudo_teorias/teoria_tendencia_pivots.md rename to estudo_teorias/3_tendencia_contexto/teoria_tendencia_pivots.md diff --git a/estudo_teorias/teoria_VSA.md b/estudo_teorias/4_volume_institucional/teoria_VSA.md similarity index 100% rename from estudo_teorias/teoria_VSA.md rename to estudo_teorias/4_volume_institucional/teoria_VSA.md diff --git a/estudo_teorias/teoria_volume.md b/estudo_teorias/4_volume_institucional/teoria_volume.md similarity index 100% rename from estudo_teorias/teoria_volume.md rename to estudo_teorias/4_volume_institucional/teoria_volume.md diff --git a/estudo_teorias/teoria_vwap.md b/estudo_teorias/4_volume_institucional/teoria_vwap.md similarity index 100% rename from estudo_teorias/teoria_vwap.md rename to estudo_teorias/4_volume_institucional/teoria_vwap.md diff --git a/estudo_teorias/teoria_wyckoff.md b/estudo_teorias/4_volume_institucional/teoria_wyckoff.md similarity index 100% rename from estudo_teorias/teoria_wyckoff.md rename to estudo_teorias/4_volume_institucional/teoria_wyckoff.md diff --git a/profit_estudos_cores/fev_2minReversaoComVolumeWIN.txt b/profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.txt similarity index 100% rename from profit_estudos_cores/fev_2minReversaoComVolumeWIN.txt rename to profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.txt diff --git a/profit_estudos_cores/fev_ATRmovimentoDoPrecoComVontade.txt b/profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.txt similarity index 100% rename from profit_estudos_cores/fev_ATRmovimentoDoPrecoComVontade.txt rename to profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.txt diff --git a/profit_estudos_cores/fev_ContadorCruzamentosMedias.txt b/profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.txt similarity index 100% rename from profit_estudos_cores/fev_ContadorCruzamentosMedias.txt rename to profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.txt diff --git a/profit_estudos_cores/fev_DetectorFasesMercado.txt b/profit_estudos_cores/fev2026/fev_DetectorFasesMercado.txt similarity index 100% rename from profit_estudos_cores/fev_DetectorFasesMercado.txt rename to profit_estudos_cores/fev2026/fev_DetectorFasesMercado.txt diff --git a/profit_estudos_cores/fev_DivergenciaIFR.txt b/profit_estudos_cores/fev2026/fev_DivergenciaIFR.txt similarity index 100% rename from profit_estudos_cores/fev_DivergenciaIFR.txt rename to profit_estudos_cores/fev2026/fev_DivergenciaIFR.txt diff --git a/profit_estudos_cores/fev_HorarioTurbulencia.txt b/profit_estudos_cores/fev2026/fev_HorarioTurbulencia.txt similarity index 100% rename from profit_estudos_cores/fev_HorarioTurbulencia.txt rename to profit_estudos_cores/fev2026/fev_HorarioTurbulencia.txt diff --git a/profit_estudos_cores/fev_MediasSetupDiario.txt b/profit_estudos_cores/fev2026/fev_MediasSetupDiario.txt similarity index 100% rename from profit_estudos_cores/fev_MediasSetupDiario.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupDiario.txt diff --git a/profit_estudos_cores/fev_MediasSetupSemana.txt b/profit_estudos_cores/fev2026/fev_MediasSetupSemana.txt similarity index 100% rename from profit_estudos_cores/fev_MediasSetupSemana.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupSemana.txt diff --git a/profit_estudos_cores/fev_OBVvolumeVerdadeiro.txt b/profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.txt similarity index 100% rename from profit_estudos_cores/fev_OBVvolumeVerdadeiro.txt rename to profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.txt diff --git a/profit_estudos_cores/fev_PainelDecisao.txt b/profit_estudos_cores/fev2026/fev_PainelDecisao.txt similarity index 100% rename from profit_estudos_cores/fev_PainelDecisao.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisao.txt diff --git a/profit_estudos_cores/fev_PainelDecisaoAlarme.ntsl.txt b/profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev_PainelDecisaoAlarme.ntsl.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt diff --git a/profit_estudos_cores/fev_PriceActionAnaliseCorpo.txt b/profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionAnaliseCorpo.txt rename to profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.txt diff --git a/profit_estudos_cores/fev_PriceActionAnaliseSombra.txt b/profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionAnaliseSombra.txt rename to profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.txt diff --git a/profit_estudos_cores/fev_PriceActionCorpoSombraExecucao.txt b/profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionCorpoSombraExecucao.txt rename to profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.txt diff --git a/profit_estudos_cores/fev_PriceActionNewton.txt b/profit_estudos_cores/fev2026/fev_PriceActionNewton.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionNewton.txt rename to profit_estudos_cores/fev2026/fev_PriceActionNewton.txt diff --git a/profit_estudos_cores/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionNewtonIFR.txt rename to profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.txt diff --git a/profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionTiposCandlesLeitura.txt rename to profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.txt diff --git a/profit_estudos_cores/fev_PriceActionVSA_OBV.txt b/profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.txt similarity index 100% rename from profit_estudos_cores/fev_PriceActionVSA_OBV.txt rename to profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.txt diff --git a/profit_estudos_cores/fev_RegraDeDow_Rompimento.txt b/profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.txt similarity index 100% rename from profit_estudos_cores/fev_RegraDeDow_Rompimento.txt rename to profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.txt diff --git a/profit_estudos_cores/fev_TendenciaLongoPrazo.txt b/profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.txt similarity index 100% rename from profit_estudos_cores/fev_TendenciaLongoPrazo.txt rename to profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.txt diff --git a/profit_estudos_cores/fev_TendenciaPivoTesteDeOuro.txt b/profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.txt similarity index 100% rename from profit_estudos_cores/fev_TendenciaPivoTesteDeOuro.txt rename to profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.txt diff --git a/profit_estudos_cores/fev_VSAassinaturaInstitucional.txt b/profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.txt similarity index 100% rename from profit_estudos_cores/fev_VSAassinaturaInstitucional.txt rename to profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.txt diff --git a/profit_estudos_cores/fev_VWAPreferenciaPreco.txt b/profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.txt similarity index 100% rename from profit_estudos_cores/fev_VWAPreferenciaPreco.txt rename to profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.txt diff --git a/profit_estudos_cores/fev_VWAPsemanalDiario.txt b/profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.txt similarity index 100% rename from profit_estudos_cores/fev_VWAPsemanalDiario.txt rename to profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.txt diff --git a/profit_estudos_cores/fev_direcaoDoDia.txt b/profit_estudos_cores/fev2026/fev_direcaoDoDia.txt similarity index 100% rename from profit_estudos_cores/fev_direcaoDoDia.txt rename to profit_estudos_cores/fev2026/fev_direcaoDoDia.txt diff --git a/profit_estudos_cores/fev_mediasTrend9_20_50_200.txt b/profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.txt similarity index 100% rename from profit_estudos_cores/fev_mediasTrend9_20_50_200.txt rename to profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.txt diff --git a/profit_estudos_cores/fev_panorama920.txt b/profit_estudos_cores/fev2026/fev_panorama920.txt similarity index 100% rename from profit_estudos_cores/fev_panorama920.txt rename to profit_estudos_cores/fev2026/fev_panorama920.txt diff --git a/profit_estudos_cores/fev_panoramaMedias9_20_50_200.txt b/profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.txt similarity index 100% rename from profit_estudos_cores/fev_panoramaMedias9_20_50_200.txt rename to profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.txt diff --git a/profit_estudos_cores/fev_priceActionPrimeiroCandle.txt b/profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.txt similarity index 100% rename from profit_estudos_cores/fev_priceActionPrimeiroCandle.txt rename to profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.txt From 1a12cbbf8cd791114eb2dcbb059ecbc52e1719a4 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 13:57:52 -0300 Subject: [PATCH 28/63] =?UTF-8?q?Adiciona=20catalogo=2050=20varia=C3=A7?= =?UTF-8?q?=C3=B5es=20robos=20primeiro=20candle=20(GAP,=20VWAP,=20Range=20?= =?UTF-8?q?D-1,=20Price=20Action)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catalogo_50_robos_primeiro_candle.txt | 238 ++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt diff --git a/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt b/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt new file mode 100644 index 0000000..331178d --- /dev/null +++ b/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt @@ -0,0 +1,238 @@ +CATÁLOGO — 50 VARIAÇÕES DE ROBÔS: PRIMEIRO CANDLE DO DIA +Criado em: março/2026 + +Objetivo +- Listar 50 variacoes de estrategia baseadas na leitura do primeiro candle do dia (WIN). +- Fatores analisados: Gap, VWAP, Range do dia anterior, Price Action (corpo/pavio). +- Estrutura: contexto -> filtro -> gatilho -> entrada -> saída padrao. +- Este catalogo prioriza a fase de conceituação antes da implementação NTSL. + +Prefixo de nomenclatura dos scripts: mar_PC_NN_descricao.ntsl.txt +Timeframe padrão de referência: 15min ou 30min (primeiro candle = barra 1 do dia). + +================================================================================ +1) GAP: POSIÇÃO E TAMANHO (1-10) +================================================================================ + +1. Gap externo para cima + corpo >70% + volume >1.5x média + → Compra no rompimento da máxima do 1º candle no 2º candle. + → Saída: alvo = 1.5x range do 1º candle. Stop: mínima do 1º candle. + +2. Gap externo para baixo + corpo >70% + volume >1.5x médias + → Venda no rompimento da mínima do 1º candle no 2º candle. + → Saída: alvo = 1.5x range do 1º candle. Stop: máxima do 1º candle. + +3. Gap externo para cima + pavio superior >50% do range (exaustão) + → Venda reversão: entrada abaixo da mínima do 1º candle no 2º candle. + → Filtro: fechamento do 1º candle abaixo da abertura. + → Saída: alvo = fechamento anterior. Stop: máxima do 1º candle. + +4. Gap externo para baixo + pavio inferior >50% do range (exaustão) + → Compra reversão: entrada acima da máxima do 1º candle no 2º candle. + → Filtro: fechamento do 1º candle acima da abertura. + → Saída: alvo = fechamento anterior. Stop: mínima do 1º candle. + +5. Gap interno (abertura dentro do range anterior) + corpo forte para cima + → Compra no fechamento do 1º candle com stop na abertura do dia. + → Filtro: preço acima da VWAP diária. + +6. Gap interno + corpo forte para baixo + → Venda no fechamento do 1º candle com stop na abertura do dia. + → Filtro: preço abaixo da VWAP diária. + +7. Gap externo + candle doji (corpo <20% do range) + volume alto (absorção) + → Aguarda 2º candle para rompimento da máxima ou mínima do 1º. + → Operar direção do rompimento com stop no lado oposto. + +8. Gap para cima + abertura abaixo da máxima do dia anterior (gap parcial) + → Compra se 1º candle fecha acima da máxima do dia anterior. + → Stop: mínima do 1º candle. Alvo: 1.0x ATR. + +9. Gap para baixo + abertura acima da mínima do dia anterior (gap parcial) + → Venda se 1º candle fecha abaixo da mínima do dia anterior. + → Stop: máxima do 1º candle. Alvo: 1.0x ATR. + +10. Gap grande (>1.0x ATR) em qualquer direção + sem volume climático + → Não operar o 1º candle (risco de violino por gap falso). + → Aguardar 3º candle com confirmação de direção. Entrada após pullback. + +================================================================================ +2) VWAP: POSIÇÃO E ALINHAMENTO (11-20) +================================================================================ + +11. Abertura acima VWAP diária + acima VWAP semanal + corpo de alta >60% + → Compra rompimento máxima do 1º candle. Stop mínima. Filtro: sem pavio >40%. + +12. Abertura abaixo VWAP diária + abaixo VWAP semanal + corpo de baixa >60% + → Venda rompimento mínima do 1º candle. Stop máxima. Filtro: sem pavio >40%. + +13. Abertura abaixo VWAP diária + 1º candle fecha acima da VWAP + → Compra retorno: entrada na próxima barra. Sinal de inversão de polo. + → Stop: mínima do 1º candle. Alvo: máxima do dia anterior. + +14. Abertura acima VWAP diária + 1º candle fecha abaixo da VWAP + → Venda retorno: entrada na próxima barra. Sinal de inversão de polo. + → Stop: máxima do 1º candle. Alvo: mínima do dia anterior. + +15. 1º candle toca a VWAP diária e reverte (pavio sobre VWAP) + → Venda se o pavio toca VWAP e candle fecha abaixo. + → Filtro: VWAP como resistência (preço abaixo dela no dia anterior). + +16. 1º candle toca a VWAP diária e reverte para cima (pavio abaixo VWAP) + → Compra se o pavio toca VWAP e candle fecha acima. + → Filtro: VWAP como suporte (preço acima dela no dia anterior). + +17. Abertura exatamente na VWAP semanal (tolerância: 0.1% do preço) + → Aguardar direção do 1º candle. Compra se fechar acima, venda se fechar abaixo. + → Stop: abertura do dia. Alvo: 1.0x ATR. + +18. Abertura acima VWAP diária + abaixo VWAP semanal (conflito) + → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). + → Direção ditada pela VWAP semanal (resistência acima = viés vendedor). + +19. Abertura abaixo VWAP diária + acima VWAP semanal (conflito) + → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). + → Direção ditada pela VWAP semanal (suporte abaixo = viés comprador). + +20. 1º candle entre VWAP diária e VWAP semanal + corpo pequeno (<30%) + → Não operar. Zona de indecisão institucional. Aguardar 3º candle. + +================================================================================ +3) RANGE DO DIA ANTERIOR: SUPORTE E RESISTÊNCIA (21-30) +================================================================================ + +21. Abertura acima máxima do dia anterior + corpo de alta >60% + → Compra no 2º candle. Máxima do dia anterior vira suporte. + → Stop: máxima do dia anterior. Alvo: 1.5x range do dia anterior. + +22. Abertura abaixo mínima do dia anterior + corpo de baixa >60% + → Venda no 2º candle. Mínima do dia anterior vira resistência. + → Stop: mínima do dia anterior. Alvo: 1.5x range do dia anterior. + +23. Abertura dentro do range + 1º candle rompe máxima do dia anterior + → Compra no fechamento acima. Stop: abertura do dia. + → Filtro: VWAP diária favorável (preço acima). + +24. Abertura dentro do range + 1º candle rompe mínima do dia anterior + → Venda no fechamento abaixo. Stop: abertura do dia. + → Filtro: VWAP diária favorável (preço abaixo). + +25. 1º candle testa máxima do dia anterior e fecha abaixo (rejeição) + → Venda no 2º candle. Stop: máxima do 1º candle. + → Filtro: volume baixo na tentativa de rompimento. + +26. 1º candle testa mínima do dia anterior e fecha acima (suporte) + → Compra no 2º candle. Stop: mínima do 1º candle. + → Filtro: volume baixo na tentativa de rompimento. + +27. Abertura no meio do range anterior + candle doji + → Não operar. Aguardar 3 candles para definição de range local. + +28. 1º candle inteiramente acima do range do dia anterior (gap + força) + → Compra apenas em pullback para a máxima do dia anterior. + → Stop: fechamento abaixo da máxima D-1. Alvo: 2.0x range D-1. + +29. 1º candle inteiramente abaixo do range do dia anterior (gap + fraqueza) + → Venda apenas em pullback para a mínima do dia anterior. + → Stop: fechamento acima da mínima D-1. Alvo: 2.0x range D-1. + +30. Abertura dentro do range + 1º candle fecha no centro (entre max e min D-1) + → Não operar no 1º candle. Marcar max/min D-1 como níveis do dia. + +================================================================================ +4) PRICE ACTION: CORPO, PAVIO E PADRÃO (31-40) +================================================================================ + +31. Candle Marubozu de alta (corpo >90%, sem pavios) + → Compra imediata no 2º candle. Stop: mínima do 1º candle. + → Filtro obrigatório: volume >2x média. + +32. Candle Marubozu de baixa (corpo >90%, sem pavios) + → Venda imediata no 2º candle. Stop: máxima do 1º candle. + → Filtro obrigatório: volume >2x média. + +33. Candle com pavio inferior longo >60% + fechamento na metade superior (martelo) + → Compra no 2º candle. Stop: mínima do pavio. Filtro: volume acima da média. + +34. Candle com pavio superior longo >60% + fechamento na metade inferior (estrela cadente) + → Venda no 2º candle. Stop: máxima do pavio. Filtro: volume acima da média. + +35. Corpo de alta entre 40%-70% + pavio superior e inferior equilibrados + → Compra moderada somente com alinhamento de VWAP + range D-1. + → Tamanho reduzido (0.5x padrão). + +36. Corpo de baixa entre 40%-70% + pavio superior e inferior equilibrados + → Venda moderada somente com alinhamento de VWAP + range D-1. + → Tamanho reduzido (0.5x padrão). + +37. Candle doji de alta (abertura = fechamento ± 0.1%) + volume baixo + → Não operar. Mercado sem decisão. + +38. Candle spinning top (corpo <25%, pavios longos equilibrados) + volume alto + → Aguardar rompimento. Compra acima da máxima, venda abaixo da mínima do 1º candle. + → Volume alto indica luta: rompimento deve ser rápido e limpo. + +39. Corpo de alta >60% com fechamento exatamente na máxima (força pura) + → Compra agressiva: entrada no fechamento do 1º candle. + → Stop: mínima do 1º candle. Filtro: gap interno + acima VWAP. + +40. Corpo de baixa >60% com fechamento exatamente na mínima (fraqueza pura) + → Venda agressiva: entrada no fechamento do 1º candle. + → Stop: máxima do 1º candle. Filtro: gap interno + abaixo VWAP. + +================================================================================ +5) COMBINAÇÕES E CONFLUÊNCIAS (41-50) +================================================================================ + +41. Gap externo para cima + acima VWAP semanal + corpo >70% + volume climático + → Compra de continuação no 2º candle. Stop: mínima do 1º candle. + → Maior confluência possível — maior tamanho permitido. + +42. Gap externo para baixo + abaixo VWAP semanal + corpo >70% + volume climático + → Venda de continuação no 2º candle. Stop: máxima do 1º candle. + → Maior confluência possível — maior tamanho permitido. + +43. Gap interno + acima VWAP + corpo de alta + rompimento máxima D-1 no fechamento + → 3 confirmações: compra no fechamento do 1º candle. Alvo: 1.5x ATR. + +44. Gap interno + abaixo VWAP + corpo de baixa + rompimento mínima D-1 no fechamento + → 3 confirmações: venda no fechamento do 1º candle. Alvo: 1.5x ATR. + +45. Gap exaustão para cima (>1.5x ATR) + rejeição da máxima D-1 + pavio longo + → Venda reversão com alvo no fechamento do dia anterior. + → Stop: máxima do 1º candle. Só operar se volume for climático. + +46. Gap exaustão para baixo (>1.5x ATR) + suporte na mínima D-1 + pavio longo + → Compra reversão com alvo no fechamento do dia anterior. + → Stop: mínima do 1º candle. Só operar se volume for climático. + +47. Conflito VWAP (entre diária e semanal) + candle pequeno + gap interno + → Não operar. Três indícios de indecisão simultâneos. + +48. Abertura na mínima D-1 + VWAP como resistência + corpo de baixa + gap para baixo + → Short de confirmação de colapso. Alvo: 2.0x range D-1 abaixo. + → Stop: fechamento acima da mínima D-1. + +49. Abertura na máxima D-1 + VWAP como suporte + corpo de alta + gap para cima + → Long de confirmação de breakout. Alvo: 2.0x range D-1 acima. + → Stop: fechamento abaixo da máxima D-1. + +50. Volume do 1º candle <0.5x média histórica dos primeiros candles + → Independente de qualquer outro fator: NÃO OPERAR o 1º candle. + → Volume baixo = liquidez ruim = risco de deslizamento sem vantagem estatística. + +================================================================================ +PRIORIDADE PARA IMPLEMENTAÇÃO +================================================================================ + +TIER 1 — Alta probabilidade / maior confluência (começar por aqui): + #41, #42, #43, #44, #31, #32, #21, #22, #1, #2 + +TIER 2 — Boa relação risco/retorno com confirmação adicional: + #13, #14, #23, #24, #28, #29, #33, #34, #39, #40 + +TIER 3 — Situações específicas / menor frequência: + #3, #4, #45, #46, #48, #49, #8, #9, #25, #26 + +DESCARTAR OU NO-TRADE (para filtrar antes de backtesting): + #10, #20, #27, #30, #37, #47, #50 From 88c5d9b8c306636661ccdf33f29654fd20cde85a Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 14:03:58 -0300 Subject: [PATCH 29/63] Adiciona grupos Volume/ATR/MME200 ao catalogo e expande teoria primeirocandle --- .../catalogo_50_robos_primeiro_candle.txt | 320 ++++++++++++++++++ .../teoria_priceAction_primeirocandle.md | 78 ++++- 2 files changed, 385 insertions(+), 13 deletions(-) create mode 100644 automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt diff --git a/automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt b/automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt new file mode 100644 index 0000000..3229f75 --- /dev/null +++ b/automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt @@ -0,0 +1,320 @@ +CATÁLOGO — 50 VARIAÇÕES DE ROBÔS: PRIMEIRO CANDLE DO DIA +Criado em: março/2026 + +Objetivo +- Listar 50 variacoes de estrategia baseadas na leitura do primeiro candle do dia (WIN). +- Fatores analisados: Gap, VWAP, Range do dia anterior, Price Action (corpo/pavio). +- Estrutura: contexto -> filtro -> gatilho -> entrada -> saída padrao. +- Este catalogo prioriza a fase de conceituação antes da implementação NTSL. + +Prefixo de nomenclatura dos scripts: mar_PC_NN_descricao.ntsl.txt +Timeframe padrão de referência: 15min ou 30min (primeiro candle = barra 1 do dia). + +================================================================================ +1) GAP: POSIÇÃO E TAMANHO (1-10) +================================================================================ + +1. Gap externo para cima + corpo >70% + volume >1.5x média + → Compra no rompimento da máxima do 1º candle no 2º candle. + → Saída: alvo = 1.5x range do 1º candle. Stop: mínima do 1º candle. + +2. Gap externo para baixo + corpo >70% + volume >1.5x médias + → Venda no rompimento da mínima do 1º candle no 2º candle. + → Saída: alvo = 1.5x range do 1º candle. Stop: máxima do 1º candle. + +3. Gap externo para cima + pavio superior >50% do range (exaustão) + → Venda reversão: entrada abaixo da mínima do 1º candle no 2º candle. + → Filtro: fechamento do 1º candle abaixo da abertura. + → Saída: alvo = fechamento anterior. Stop: máxima do 1º candle. + +4. Gap externo para baixo + pavio inferior >50% do range (exaustão) + → Compra reversão: entrada acima da máxima do 1º candle no 2º candle. + → Filtro: fechamento do 1º candle acima da abertura. + → Saída: alvo = fechamento anterior. Stop: mínima do 1º candle. + +5. Gap interno (abertura dentro do range anterior) + corpo forte para cima + → Compra no fechamento do 1º candle com stop na abertura do dia. + → Filtro: preço acima da VWAP diária. + +6. Gap interno + corpo forte para baixo + → Venda no fechamento do 1º candle com stop na abertura do dia. + → Filtro: preço abaixo da VWAP diária. + +7. Gap externo + candle doji (corpo <20% do range) + volume alto (absorção) + → Aguarda 2º candle para rompimento da máxima ou mínima do 1º. + → Operar direção do rompimento com stop no lado oposto. + +8. Gap para cima + abertura abaixo da máxima do dia anterior (gap parcial) + → Compra se 1º candle fecha acima da máxima do dia anterior. + → Stop: mínima do 1º candle. Alvo: 1.0x ATR. + +9. Gap para baixo + abertura acima da mínima do dia anterior (gap parcial) + → Venda se 1º candle fecha abaixo da mínima do dia anterior. + → Stop: máxima do 1º candle. Alvo: 1.0x ATR. + +10. Gap grande (>1.0x ATR) em qualquer direção + sem volume climático + → Não operar o 1º candle (risco de violino por gap falso). + → Aguardar 3º candle com confirmação de direção. Entrada após pullback. + +================================================================================ +2) VWAP: POSIÇÃO E ALINHAMENTO (11-20) +================================================================================ + +11. Abertura acima VWAP diária + acima VWAP semanal + corpo de alta >60% + → Compra rompimento máxima do 1º candle. Stop mínima. Filtro: sem pavio >40%. + +12. Abertura abaixo VWAP diária + abaixo VWAP semanal + corpo de baixa >60% + → Venda rompimento mínima do 1º candle. Stop máxima. Filtro: sem pavio >40%. + +13. Abertura abaixo VWAP diária + 1º candle fecha acima da VWAP + → Compra retorno: entrada na próxima barra. Sinal de inversão de polo. + → Stop: mínima do 1º candle. Alvo: máxima do dia anterior. + +14. Abertura acima VWAP diária + 1º candle fecha abaixo da VWAP + → Venda retorno: entrada na próxima barra. Sinal de inversão de polo. + → Stop: máxima do 1º candle. Alvo: mínima do dia anterior. + +15. 1º candle toca a VWAP diária e reverte (pavio sobre VWAP) + → Venda se o pavio toca VWAP e candle fecha abaixo. + → Filtro: VWAP como resistência (preço abaixo dela no dia anterior). + +16. 1º candle toca a VWAP diária e reverte para cima (pavio abaixo VWAP) + → Compra se o pavio toca VWAP e candle fecha acima. + → Filtro: VWAP como suporte (preço acima dela no dia anterior). + +17. Abertura exatamente na VWAP semanal (tolerância: 0.1% do preço) + → Aguardar direção do 1º candle. Compra se fechar acima, venda se fechar abaixo. + → Stop: abertura do dia. Alvo: 1.0x ATR. + +18. Abertura acima VWAP diária + abaixo VWAP semanal (conflito) + → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). + → Direção ditada pela VWAP semanal (resistência acima = viés vendedor). + +19. Abertura abaixo VWAP diária + acima VWAP semanal (conflito) + → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). + → Direção ditada pela VWAP semanal (suporte abaixo = viés comprador). + +20. 1º candle entre VWAP diária e VWAP semanal + corpo pequeno (<30%) + → Não operar. Zona de indecisão institucional. Aguardar 3º candle. + +================================================================================ +3) RANGE DO DIA ANTERIOR: SUPORTE E RESISTÊNCIA (21-30) +================================================================================ + +21. Abertura acima máxima do dia anterior + corpo de alta >60% + → Compra no 2º candle. Máxima do dia anterior vira suporte. + → Stop: máxima do dia anterior. Alvo: 1.5x range do dia anterior. + +22. Abertura abaixo mínima do dia anterior + corpo de baixa >60% + → Venda no 2º candle. Mínima do dia anterior vira resistência. + → Stop: mínima do dia anterior. Alvo: 1.5x range do dia anterior. + +23. Abertura dentro do range + 1º candle rompe máxima do dia anterior + → Compra no fechamento acima. Stop: abertura do dia. + → Filtro: VWAP diária favorável (preço acima). + +24. Abertura dentro do range + 1º candle rompe mínima do dia anterior + → Venda no fechamento abaixo. Stop: abertura do dia. + → Filtro: VWAP diária favorável (preço abaixo). + +25. 1º candle testa máxima do dia anterior e fecha abaixo (rejeição) + → Venda no 2º candle. Stop: máxima do 1º candle. + → Filtro: volume baixo na tentativa de rompimento. + +26. 1º candle testa mínima do dia anterior e fecha acima (suporte) + → Compra no 2º candle. Stop: mínima do 1º candle. + → Filtro: volume baixo na tentativa de rompimento. + +27. Abertura no meio do range anterior + candle doji + → Não operar. Aguardar 3 candles para definição de range local. + +28. 1º candle inteiramente acima do range do dia anterior (gap + força) + → Compra apenas em pullback para a máxima do dia anterior. + → Stop: fechamento abaixo da máxima D-1. Alvo: 2.0x range D-1. + +29. 1º candle inteiramente abaixo do range do dia anterior (gap + fraqueza) + → Venda apenas em pullback para a mínima do dia anterior. + → Stop: fechamento acima da mínima D-1. Alvo: 2.0x range D-1. + +30. Abertura dentro do range + 1º candle fecha no centro (entre max e min D-1) + → Não operar no 1º candle. Marcar max/min D-1 como níveis do dia. + +================================================================================ +4) PRICE ACTION: CORPO, PAVIO E PADRÃO (31-40) +================================================================================ + +31. Candle Marubozu de alta (corpo >90%, sem pavios) + → Compra imediata no 2º candle. Stop: mínima do 1º candle. + → Filtro obrigatório: volume >2x média. + +32. Candle Marubozu de baixa (corpo >90%, sem pavios) + → Venda imediata no 2º candle. Stop: máxima do 1º candle. + → Filtro obrigatório: volume >2x média. + +33. Candle com pavio inferior longo >60% + fechamento na metade superior (martelo) + → Compra no 2º candle. Stop: mínima do pavio. Filtro: volume acima da média. + +34. Candle com pavio superior longo >60% + fechamento na metade inferior (estrela cadente) + → Venda no 2º candle. Stop: máxima do pavio. Filtro: volume acima da média. + +35. Corpo de alta entre 40%-70% + pavio superior e inferior equilibrados + → Compra moderada somente com alinhamento de VWAP + range D-1. + → Tamanho reduzido (0.5x padrão). + +36. Corpo de baixa entre 40%-70% + pavio superior e inferior equilibrados + → Venda moderada somente com alinhamento de VWAP + range D-1. + → Tamanho reduzido (0.5x padrão). + +37. Candle doji de alta (abertura = fechamento ± 0.1%) + volume baixo + → Não operar. Mercado sem decisão. + +38. Candle spinning top (corpo <25%, pavios longos equilibrados) + volume alto + → Aguardar rompimento. Compra acima da máxima, venda abaixo da mínima do 1º candle. + → Volume alto indica luta: rompimento deve ser rápido e limpo. + +39. Corpo de alta >60% com fechamento exatamente na máxima (força pura) + → Compra agressiva: entrada no fechamento do 1º candle. + → Stop: mínima do 1º candle. Filtro: gap interno + acima VWAP. + +40. Corpo de baixa >60% com fechamento exatamente na mínima (fraqueza pura) + → Venda agressiva: entrada no fechamento do 1º candle. + → Stop: máxima do 1º candle. Filtro: gap interno + abaixo VWAP. + +================================================================================ +5) COMBINAÇÕES E CONFLUÊNCIAS (41-50) +================================================================================ + +41. Gap externo para cima + acima VWAP semanal + corpo >70% + volume climático + → Compra de continuação no 2º candle. Stop: mínima do 1º candle. + → Maior confluência possível — maior tamanho permitido. + +42. Gap externo para baixo + abaixo VWAP semanal + corpo >70% + volume climático + → Venda de continuação no 2º candle. Stop: máxima do 1º candle. + → Maior confluência possível — maior tamanho permitido. + +43. Gap interno + acima VWAP + corpo de alta + rompimento máxima D-1 no fechamento + → 3 confirmações: compra no fechamento do 1º candle. Alvo: 1.5x ATR. + +44. Gap interno + abaixo VWAP + corpo de baixa + rompimento mínima D-1 no fechamento + → 3 confirmações: venda no fechamento do 1º candle. Alvo: 1.5x ATR. + +45. Gap exaustão para cima (>1.5x ATR) + rejeição da máxima D-1 + pavio longo + → Venda reversão com alvo no fechamento do dia anterior. + → Stop: máxima do 1º candle. Só operar se volume for climático. + +46. Gap exaustão para baixo (>1.5x ATR) + suporte na mínima D-1 + pavio longo + → Compra reversão com alvo no fechamento do dia anterior. + → Stop: mínima do 1º candle. Só operar se volume for climático. + +47. Conflito VWAP (entre diária e semanal) + candle pequeno + gap interno + → Não operar. Três indícios de indecisão simultâneos. + +48. Abertura na mínima D-1 + VWAP como resistência + corpo de baixa + gap para baixo + → Short de confirmação de colapso. Alvo: 2.0x range D-1 abaixo. + → Stop: fechamento acima da mínima D-1. + +49. Abertura na máxima D-1 + VWAP como suporte + corpo de alta + gap para cima + → Long de confirmação de breakout. Alvo: 2.0x range D-1 acima. + → Stop: fechamento abaixo da máxima D-1. + +50. Volume do 1º candle <0.5x média histórica dos primeiros candles + → Independente de qualquer outro fator: NÃO OPERAR o 1º candle. + → Volume baixo = liquidez ruim = risco de deslizamento sem vantagem estatística. + +================================================================================ +6) VOLUME COMO FATOR DECISIVO — não apenas filtro (51-56) +================================================================================ + +51. Volume do 1º candle >3x média histórica dos primeiros candles + corpo qualquer + → INICIATIVA REAL independente de tamanho do corpo. + → Operar direção do fechamento no 2º candle. Stop: abertura do dia. + → Não cancelar por corpo pequeno: volume alto já revela o lado vencedor. + +52. Volume do 1º candle >3x média + corpo >70% (confluência máxima) + → Máxima certeza de iniciativa profissional. Tamanho padrão completo. + → Entrada no 2º candle na direção do corpo. Stop: mínima/máxima do 1º candle. + +53. Volume do 1º candle <0.3x média histórica dos primeiros candles + → VETO TOTAL: não operar independente de qualquer outro sinal. + → Mercado dormindo = liquidez ruim + spread alto + risco de violino sem barreira. + +54. Volume decrescente vs. dia anterior na abertura (D0 < 0.6x volume abertura D-1) + → Perda de força institucional. Reduzir tamanho para 0.5x padrão em qualquer setup. + → Sinal de que o movimento do dia anterior não terá continuidade. + +55. Volume do 1º candle entre 1.5x e 3x média + corpo <30% (absorção) + → Muita briga sem resultado. Aguardar rompimento da máxima ou mínima do 1º candle. + → Compra acima da máxima, venda abaixo da mínima. Stop no lado oposto. + +56. Volume do 1º candle >3x média + fechamento exatamente no centro do range (indecisão) + → Não operar diretamente. Marcar como zona de absorção explosiva. + → Aguardar 2º candle: o rompimento que vier vai ter força. Operar na confirmação. + +================================================================================ +7) ATR: QUANTO DO DIA JÁ FOI CONSUMIDO (57-61) +================================================================================ + +57. Range do 1º candle >70% do ATR diário (14 períodos no diário) + → FILTRO DE RISCO: relação risco/retorno comprometida para o restante do pregão. + → Reduzir tamanho para 0.5x ou não operar stops baseados no range total do dia. + → Alvo máximo = diferença entre ATR e range já consumido pelo 1º candle. + +58. Range do 1º candle >100% do ATR diário + → VETO: o dia já se moveu mais do que o esperado. Stops viáveis não existem. + → Não operar nenhum setup derivado do 1º candle. Aguardar contexto do 2º dia. + +59. Range do 1º candle <20% do ATR diário + volume baixo (<0.7x média) + → Compressão. Operar apenas rompimento da máxima ou mínima com stop apertado. + → Potencial expansão de volatilidade nos candles seguintes. + +60. Range do 1º candle <20% do ATR diário + volume alto (>1.5x média) + → Absorção intensa. Rompimento iminente com força. Aguardar 2º candle. + → Stop: máxima ou mínima do 1º candle (dependendo da direção do rompimento). + +61. Range do 1º candle entre 40%-70% do ATR diário (zona saudável) + → Condição ideal para operar. Há espaço técnico suficiente para stop + alvo 1:2. + → Não requer ajuste de tamanho. Usar setup de confluência normalmente. + +================================================================================ +8) MME200: FILTRO DE CONTEXTO OBRIGATÓRIO (62-65) +================================================================================ + +62. Abertura acima da MME200 diária + corpo de alta no 1º candle + → Contexto de longo prazo comprador confirmado. Compras têm prioridade. + → Aumentar tamanho para 1.2x padrão se houver confluência de VWAP e Gap. + +63. Abertura abaixo da MME200 diária + corpo de baixa no 1º candle + → Contexto de longo prazo vendedor confirmado. Vendas têm prioridade. + → Aumentar tamanho para 1.2x padrão se houver confluência de VWAP e Gap. + +64. Abertura cruzando a MME200 diária (preço passa de abaixo para acima ou vice-versa) + → Zona de máximo conflito. Reduzir tamanho para 0.5x e exigir 3+ confluências. + → Não operar reversão. Só operar continuação se o 2º candle confirmar o lado. + +65. Abertura abaixo da MME200 + sinal de compra do 1º candle (contra tendência) + → VETO: não comprar contra MME200. Mesmo que VWAP e Gap favoreçam compra. + → Exceção única: volume >3x média + corpo >80% + gap externo de alta inequívoco. + → (Regra idêntica no sentido inverso: acima MME200 + sinal de venda → VETO). + +================================================================================ +PRIORIDADE PARA IMPLEMENTAÇÃO +================================================================================ + +TIER 1 — Alta probabilidade / maior confluência (começar por aqui): + #41, #42, #43, #44, #31, #32, #21, #22, #51, #52 + (todos requerem confirmação de MME200 como pré-condição — ver #62, #63) + +TIER 2 — Boa relação risco/retorno com confirmação adicional: + #13, #14, #23, #24, #28, #29, #33, #34, #39, #40, #61 + +TIER 3 — Situações específicas / menor frequência: + #3, #4, #45, #46, #48, #49, #8, #9, #25, #26, #55, #60 + +FILTROS GLOBAIS OBRIGATÓRIOS (aplicar ANTES de qualquer setup acima): + #53 — Volume <0.3x: veto total + #58 — ATR >100% consumido: veto total + #65 — Contra MME200 sem confluência excepcional: veto + #64 — Cruzando MME200: tamanho reduzido obrigatório + +DESCARTAR OU NO-TRADE (para filtrar antes de backtesting): + #10, #20, #27, #30, #37, #47, #50, #54 (como setup — usar só como redutor) diff --git a/estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md b/estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md index f7138d9..b718e98 100644 --- a/estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md +++ b/estudo_teorias/2_teorias/teoria_priceAction_primeirocandle.md @@ -80,6 +80,21 @@ O primeiro candle quase sempre tem o **maior volume do dia**. A análise deve se * *Diagnóstico:* Vácuo de Liquidez (Fake). * *Previsão:* O preço vai voltar facilmente, pois não houve barreira. +### 5.1 Volume como Fator Decisivo (não apenas confirmação) + +> **Regra central:** O volume do 1º candle, comparado à média histórica dos primeiros candles do ativo, pode ser o sinal mais importante do dia — independente do formato do candle. + +| Condição de Volume | Diagnóstico | Ação | +|---|---|---| +| **>3x média** (qualquer corpo) | Iniciativa real — Smart Money agindo | Operar direção do fechamento no 2º candle | +| **>3x média + corpo >70%** | Confluência máxima | Setup mais confiável do dia | +| **1.5x–3x + corpo <30%** | Absorção intensa | Aguardar rompimento da max/min do 1º candle | +| **<0.5x média** | Mercado dormindo | **VETO TOTAL** — não operar o 1º candle | +| **<0.3x média** | Ausência de liquidez | **VETO TOTAL** — não operar nem o 2º candle | +| **D0 < 0.6x volume abertura D-1** | Perda de força institucional | Reduzir tamanho para 0.5x padrão | + +**Interpretação prática:** Volume alto com corpo pequeno é sinal mais forte que corpo grande com volume fraco. O corpo mostra resultado; o volume mostra o esforço real por trás. + --- ## 6. O Setup de Iniciativa Profissional (A Exceção) @@ -138,7 +153,8 @@ Em ordem de relevância prática: ### Filtros de contexto (fortemente recomendados) * **VWAP diária** (direção intraday). * **VWAP semanal** (alinhamento da semana). -* **ATR** (se o 1º candle já consumiu parte grande do movimento típico). +* **MME200 diária** — ver seção 9.1 abaixo. +* **ATR consumido** — ver seção 9.2 abaixo. ### Complementares (opcional) * **Médias (9/20/50):** apenas como estrutura, não como gatilho imediato na abertura. @@ -147,20 +163,55 @@ Em ordem de relevância prática: --- +### 9.1 MME200 — Filtro de Contexto Obrigatório + +A MME200 diária define o **regime de longo prazo** do ativo. Toda leitura do 1º candle deve ser condicionada por ela. + +| Posição de abertura | Viés de longo prazo | Regra operacional | +|---|---|---| +| Acima da MME200 | Comprador | Dar preferência a compras; vendas exigem confluência extra | +| Abaixo da MME200 | Vendedor | Dar preferência a vendas; compras exigem confluência extra | +| Cruzando a MME200 | Indefinido | Reduzir tamanho para 0.5x; exigir 3+ confluências | + +**Regra de veto:** Não operar contra a MME200. Se o 1º candle sinalizar compra mas o preço estiver abaixo da MME200, descartar o setup — exceto se houver volume >3x média + corpo >80% + gap externo inequívoco. + +> **Por que isso importa na abertura:** O 1º candle forma-se em ambiente de alta volatilidade e baixa liquidez. Sem o filtro da MME200, setups contra a tendência maior têm taxa de acerto significativamente pior. + +--- + +### 9.2 ATR — Quanto do Dia Já Foi Consumido + +O ATR diário (14 períodos no gráfico diário) representa o **movimento esperado para o dia**. O range do 1º candle consome parte desse potencial. + +| Range do 1º candle vs ATR | Situação | Ação | +|---|---|---| +| **<20%** do ATR | Compressão — potencial de expansão alto | Operar rompimento com stop apertado | +| **20%–40%** do ATR | Zona segura | Setup normal, alvo 1:2 viável | +| **40%–70%** do ATR | Zona saudável | Ideal — há espaço para stop + alvo | +| **>70%** do ATR | Consumo alto | Reduzir tamanho para 0.5x; ajustar alvos | +| **>100%** do ATR | Dia esgotado | **VETO** — stops tecnicamente inviáveis | + +**Cálculo prático (WIN):** ATR no diário × 0,2 = ponto de alvo mínimo razoável para o 2º candle. Se o range do 1º candle já excede esse valor, a relação risco/retorno está comprometida. + +--- + ## 10. Checklist Operacional de 60 segundos Antes de operar o segundo candle, responder: -1. **Gap:** abriu fora do range de ontem ou dentro? -2. **Força:** corpo do 1º candle é > 70% do range? -3. **Volume:** houve volume climático (> 2x referência)? -4. **Localização:** preço está acima/abaixo da VWAP diária e semanal? -5. **Rejeição:** há pavio dominante indicando armadilha? +1. **MME200:** preço está acima ou abaixo? Opera só a favor — se contra, precisa de confluência excepcional. +2. **ATR consumido:** range do 1º candle é <70% do ATR? Se >100%, VETO. +3. **Volume:** houve volume climático (>2x referência)? Se <0.3x, VETO. +4. **Gap:** abriu fora do range de ontem ou dentro? +5. **Força:** corpo do 1º candle é >70% do range? +6. **Localização:** preço está acima/abaixo da VWAP diária e semanal? +7. **Rejeição:** há pavio dominante indicando armadilha? ### Leitura Final -* **4 ou 5 respostas alinhadas:** viés forte (buscar pullback e continuação). -* **2 ou 3 alinhadas:** viés moderado (reduzir mão e exigir confirmação). -* **0 ou 1 alinhada:** cenário de ruído (priorizar proteção e paciência). +* **Itens 1, 2 ou 3 com VETO:** não operar, independente dos demais. +* **5–7 respostas alinhadas:** viés forte (buscar pullback e continuação — tamanho padrão). +* **3–4 alinhadas:** viés moderado (reduzir mão para 0.5x e exigir confirmação). +* **0–2 alinhadas:** cenário de ruído (sem entrada — proteção e paciência). --- @@ -191,9 +242,10 @@ Antes de operar o segundo candle, responder: O primeiro candle não é, em geral, candle de execução. É candle de **diagnóstico**. -Ele serve para responder três perguntas: -1. **Quem tomou iniciativa?** (comprador ou vendedor) -2. **A iniciativa é real?** (volume + corpo + contexto) -3. **Onde está a fronteira do dia?** (máxima/mínima do primeiro candle) +Ele serve para responder quatro perguntas: +1. **O contexto permite?** (MME200 + ATR disponível + volume mínimo) +2. **Quem tomou iniciativa?** (comprador ou vendedor) +3. **A iniciativa é real?** (volume + corpo + contexto) +4. **Onde está a fronteira do dia?** (máxima/mínima do primeiro candle) Quando essas respostas estão claras, a execução do restante do pregão fica simples: operar a favor do viés até prova em contrário. \ No newline at end of file From 35549562e981fe9db0ee6f91c82a50b044a6d0b6 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 14:15:29 -0300 Subject: [PATCH 30/63] Adiciona 10 robos Tier1 primeiro candle (PC_01 a PC_10) --- ...ar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt | 188 +++++++++++++++ ...r_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt | 160 +++++++++++++ ...PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt | 160 +++++++++++++ ...PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt | 154 +++++++++++++ .../mar_PC_05_v1_marubozu_alta_vol.ntsl.txt | 160 +++++++++++++ .../mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt | 160 +++++++++++++ ...mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt | 165 +++++++++++++ ...ar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt | 162 +++++++++++++ .../mar_PC_09_v1_volume_iniciativa.ntsl.txt | 180 +++++++++++++++ ...C_10_v1_volume_maximo_confluencia.ntsl.txt | 218 ++++++++++++++++++ 10 files changed, 1707 insertions(+) create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt new file mode 100644 index 0000000..da05089 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt @@ -0,0 +1,188 @@ +{ + Robo: mar_PC_01_v1_gap_ext_alta_vwap_vol + Catalogo: #41 — Tier 1 + Descricao: Gap externo para CIMA + preço acima VWAP diaria + corpo >70% + volume climático + Entrada compra no 2o candle. Maior confluência possível. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + // ── Filtros do 1o candle ───────────────────────────────────── + PctCorpoMinimo(0.70); // corpo mínimo do 1o candle (% do range) + FatorVolumeClimatico(1.5); // volume mínimo vs média para ser "climático" + PeriodoMediaVol(20); // período da média de volume + // ── Filtro MME200 ──────────────────────────────────────────── + UsarFiltroMME200(true); // exigir preço acima da MME200 + PeriodoMME200(200); + // ── Gestão de posição ──────────────────────────────────────── + MultiplicadorAlvo(1.5); // alvo = MultiplicadorAlvo * range do 1o candle + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); // saída por tempo + // ── Gestão de risco ────────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); // 2 = segunda-feira + +var + // Controle de candle do dia + iCandleDia : integer; + // Dados do 1o candle + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + // VWAP diário acumulado + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + // Indicadores + fMME200, fMediaVol : float; + // Sinais + bGapExtCima, bCorpoAlta, bVolClimatico, bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + // Gestão de posição + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + // Gestão de risco + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + // ── NOVO DIA: reset variáveis ──────────────────────────────── + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + // Reset VWAP diário + fVWAPSoma := 0; + fVWAPVol := 0; + // Reset semanal na segunda-feira + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + // ── VWAP DIÁRIO acumulado (preço típico ponderado por volume) ─ + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + // ── INDICADORES ────────────────────────────────────────────── + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + // ── LIMITES DE RISCO ───────────────────────────────────────── + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + // ── TRACKING DE RESULTADO ──────────────────────────────────── + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + // ── CAPTURA DO 1o CANDLE ───────────────────────────────────── + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + // ── LÓGICA DE SINAL (apenas no 2o candle em diante) ───────── + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Gap externo para cima: abertura acima da máxima do dia anterior + // High[2] = máxima de D-1 quando estamos no candle 2 (High[1] = 1o candle hoje) + bGapExtCima := fAberDia > High[2]; + // Corpo de alta > PctCorpoMinimo do range + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + // Volume climático + bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); + // Preço acima da MME200 + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + // Preço acima da VWAP diária (calculada até o 1o candle) + // fVWAPDiario aqui está com o valor após o 2o candle; usar Close[1] vs VWAP[1] aprox + bSinalCompra := bGapExtCima and bCorpoAlta and bVolClimatico and bAcimaMME200 + and (fFechC1 > fVWAPDiario); + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + // ── GESTÃO DE POSIÇÃO ──────────────────────────────────────── + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + // ── REGISTRO DE ENTRADA ────────────────────────────────────── + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt new file mode 100644 index 0000000..790d28e --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt @@ -0,0 +1,160 @@ +{ + Robo: mar_PC_02_v1_gap_ext_baixo_vwap_vol + Catalogo: #42 — Tier 1 + Descricao: Gap externo para BAIXO + preço abaixo VWAP diaria + corpo >70% + volume climático + Entrada venda no 2o candle. Simétrico ao PC_01. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.70); + FatorVolumeClimatico(1.5); + PeriodoMediaVol(20); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bGapExtBaixo, bCorpoBaixa, bVolClimatico, bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (fPrecoEntrada - Close) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Gap externo para baixo: abertura abaixo da mínima do dia anterior + bGapExtBaixo := fAberDia < Low[2]; + // Corpo de baixa > PctCorpoMinimo do range + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + bSinalVenda := bGapExtBaixo and bCorpoBaixa and bVolClimatico and bAbaixoMME200 + and (fFechC1 < fVWAPDiario); + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt new file mode 100644 index 0000000..20ea38c --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt @@ -0,0 +1,160 @@ +{ + Robo: mar_PC_03_v1_gap_int_vwap_rompe_maxD1 + Catalogo: #43 — Tier 1 + Descricao: Gap INTERNO + acima VWAP + corpo de alta + 1o candle fecha acima da máxima D-1 + 3 confirmações simultâneas. Entrada compra no fechamento do 1o candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); // corpo mínimo do 1o candle + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); // volume mínimo (1.0 = acima da média) + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); // alvo em ATR + PeriodoATR(14); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; // máx/mín dia anterior + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bGapInterno, bCorpoAlta, bRompeMaxD1 : boolean; + bVolOK, bAcimaMME200, bAcimaVWAP : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // Max/Min do dia anterior = High[1]/Low[1] quando iCandleDia=1 + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Gap interno: abertura dentro do range do dia anterior + bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); + // Corpo de alta > PctCorpoMinimo + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + // 1o candle fechou acima da máxima D-1 + bRompeMaxD1 := fFechC1 > fMaxD1; + // Volume mínimo + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + // MME200 e VWAP + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + bAcimaVWAP := fFechC1 > fVWAPDiario; + + bSinalCompra := bGapInterno and bCorpoAlta and bRompeMaxD1 and bVolOK + and bAcimaMME200 and bAcimaVWAP; + + if bSinalCompra then + begin + fStopAtual := fAberDia; // stop na abertura do dia + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt new file mode 100644 index 0000000..0e0cc7d --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt @@ -0,0 +1,154 @@ +{ + Robo: mar_PC_04_v1_gap_int_vwap_rompe_minD1 + Catalogo: #44 — Tier 1 + Descricao: Gap INTERNO + abaixo VWAP + corpo de baixa + 1o candle fecha abaixo da mínima D-1 + 3 confirmações simultâneas. Entrada venda no fechamento do 1o candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + PeriodoATR(14); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bGapInterno, bCorpoBaixa, bRompeMinD1 : boolean; + bVolOK, bAbaixoMME200, bAbaixoVWAP : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bRompeMinD1 := fFechC1 < fMinD1; + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + bAbaixoVWAP := fFechC1 < fVWAPDiario; + + bSinalVenda := bGapInterno and bCorpoBaixa and bRompeMinD1 and bVolOK + and bAbaixoMME200 and bAbaixoVWAP; + + if bSinalVenda then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt new file mode 100644 index 0000000..55d2e44 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt @@ -0,0 +1,160 @@ +{ + Robo: mar_PC_05_v1_marubozu_alta_vol + Catalogo: #31 — Tier 1 + Descricao: Marubozu de ALTA (corpo >90%, sem pavios) + volume >2x média + Sinal de força pura. Entrada compra no 2o candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMarubozu(0.90); // corpo mínimo para ser Marubozu + FatorVolumeMinimo(2.0); // volume mínimo = 2x média + PeriodoMediaVol(20); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); // alvo = range do 1o candle * multiplicador + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bMarubozu, bVolOK, bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Marubozu de alta: corpo >90% do range + fechamento na máxima + bMarubozu := (fFechC1 > fAberDia) + and (fCorpoC1 >= fRangeC1 * PctCorpoMarubozu) + and (fFechC1 >= fMaxC1 - (fRangeC1 * 0.02)); // fecha perto da máxima + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + bSinalCompra := bMarubozu and bVolOK and bAcimaMME200; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt new file mode 100644 index 0000000..c2ee279 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt @@ -0,0 +1,160 @@ +{ + Robo: mar_PC_06_v1_marubozu_baixa_vol + Catalogo: #32 — Tier 1 + Descricao: Marubozu de BAIXA (corpo >90%, sem pavios) + volume >2x média + Sinal de fraqueza pura. Entrada venda no 2o candle. Simétrico ao PC_05. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMarubozu(0.90); + FatorVolumeMinimo(2.0); + PeriodoMediaVol(20); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bMarubozu, bVolOK, bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Marubozu de baixa: corpo >90% + fechamento na mínima + bMarubozu := (fFechC1 < fAberDia) + and (fCorpoC1 >= fRangeC1 * PctCorpoMarubozu) + and (fFechC1 <= fMinC1 + (fRangeC1 * 0.02)); // fecha perto da mínima + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + bSinalVenda := bMarubozu and bVolOK and bAbaixoMME200; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt new file mode 100644 index 0000000..e469dca --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt @@ -0,0 +1,165 @@ +{ + Robo: mar_PC_07_v1_abertura_acima_maxD1 + Catalogo: #21 — Tier 1 + Descricao: Abertura acima da máxima D-1 + 1o candle de alta com corpo >60% + Range D-1 como referência estrutural. Entrada compra. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(1.5); // alvo = posição + 1.5 * rangeD1 + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bAberAcimaMaxD1, bCorpoAlta, bVolOK : boolean; + bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // Captura range do dia anterior ao iniciar novo dia + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Abertura acima da máxima do dia anterior + bAberAcimaMaxD1 := fAberDia > fMaxD1; + // Corpo de alta > PctCorpoMinimo + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + bSinalCompra := bAberAcimaMaxD1 and bCorpoAlta and bVolOK and bAcimaMME200; + + if bSinalCompra then + begin + fStopAtual := fMaxD1; // stop na máxima D-1 (agora suporte) + fAlvoAtual := fMaxC1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxD1; + fAlvoAtual := fMaxC1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt new file mode 100644 index 0000000..1f99638 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt @@ -0,0 +1,162 @@ +{ + Robo: mar_PC_08_v1_abertura_abaixo_minD1 + Catalogo: #22 — Tier 1 + Descricao: Abertura abaixo da mínima D-1 + 1o candle de baixa com corpo >60% + Range D-1 como referência estrutural. Entrada venda. Simétrico ao PC_07. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(1.5); + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bAberAbaixoMinD1, bCorpoBaixa, bVolOK : boolean; + bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + bAberAbaixoMinD1 := fAberDia < fMinD1; + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + bSinalVenda := bAberAbaixoMinD1 and bCorpoBaixa and bVolOK and bAbaixoMME200; + + if bSinalVenda then + begin + fStopAtual := fMinD1; // stop na mínima D-1 (agora resistência) + fAlvoAtual := fMinC1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinD1; + fAlvoAtual := fMinC1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt new file mode 100644 index 0000000..ede9d75 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt @@ -0,0 +1,180 @@ +{ + Robo: mar_PC_09_v1_volume_iniciativa + Catalogo: #51 — Tier 1 + Descricao: Volume >3x média — qualquer formação. Operar na direção do fechamento do 1o candle. + Volume como fator primário de decisão. Stop na abertura do dia. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + FatorVolumeIniciativa(3.0); // volume mínimo = 3x média para sinal + PeriodoMediaVol(20); + PctCorpoMinimo(0.40); // corpo mínimo reduzido — volume já é o filtro principal + PeriodoATR(14); + MultiplicadorAlvoATR(1.0); // alvo = 1.0 * ATR + UsarFiltroMME200(true); + PeriodoMME200(200); + UsarOCO(true); + MaxBarrasPosicao(6); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bVolIniciativa, bCorpoMinOK, bAcimaMME200 : boolean; + bSinalCompra, bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + if iDirecaoPosicao = 1 then + fResultadoPontos := (Close - fPrecoEntrada) + else + fResultadoPontos := (fPrecoEntrada - Close); + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Volume de iniciativa: >3x a média + bVolIniciativa := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeIniciativa); + // Corpo mínimo para ter direção definida + bCorpoMinOK := fCorpoC1 >= fRangeC1 * PctCorpoMinimo; + // Filtro MME200: direção deve estar alinhada + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + // COMPRA: 1o candle de alta com volume de iniciativa + bSinalCompra := bVolIniciativa and bCorpoMinOK and (fFechC1 > fAberDia) and bAcimaMME200; + // VENDA: 1o candle de baixa com volume de iniciativa + bSinalVenda := bVolIniciativa and bCorpoMinOK and (fFechC1 < fAberDia) + and ((not UsarFiltroMME200) or (Close < fMME200)); + + if bSinalCompra then + begin + fStopAtual := fAberDia; // stop na abertura do dia + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvoATR); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvoATR); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvoATR); + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvoATR); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt new file mode 100644 index 0000000..e527fef --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt @@ -0,0 +1,218 @@ +{ + Robo: mar_PC_10_v1_volume_maximo_confluencia + Catalogo: #52 — Tier 1 + Descricao: Volume >3x média + corpo >70% — máxima confluência (Volume + Price Action). + Stop estrutural na min/max do 1o candle. Alvo 2.0x range C1. + Robô de maior conviction: só opera quando TUDO confirma. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} + +input + FatorVolMax(3.0); // volume mínimo = 3x média + PeriodoMediaVol(20); + PctCorpoMaxConflux(0.70); // corpo mínimo para confluência máxima + // VWAP como filtro direcional obrigatório + // MME200 como filtro de contexto obrigatório + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(2.0); // alvo agressivo por alta conviction + PeriodoATR(14); + // Filtro ATR: não operar se 1o candle consumiu >70% do ATR diário + ATRConsumoMaxPerc(0.70); + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(100.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(10); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + // Filtros + bVolMax, bCorpoMax, bAcimaMME200, bAbaixoMME200 : boolean; + bAcimaVWAP, bAbaixoVWAP : boolean; + bATROK : boolean; + // Sinais + bSinalCompra, bSinalVenda, bEntradaExecutada : boolean; + // Posição + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + // Risco + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + if iDirecaoPosicao = 1 then + fResultadoPontos := (Close - fPrecoEntrada) + else + fResultadoPontos := (fPrecoEntrada - Close); + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + begin + // Volume de alta convicção: >3x média + bVolMax := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolMax); + // Corpo expressivo: >70% + bCorpoMax := fCorpoC1 >= fRangeC1 * PctCorpoMaxConflux; + // Filtro ATR: 1o candle não pode ter consumido mais de 70% do ATR + bATROK := (fATR <= 0) or (fRangeC1 <= fATR * ATRConsumoMaxPerc); + // Filtros direcionais + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + bAcimaVWAP := fFechC1 >= fVWAPDiario; + bAbaixoVWAP := fFechC1 <= fVWAPDiario; + + // COMPRA: corpo de alta + volume max + acima MME200 + acima VWAP + ATR ok + bSinalCompra := bVolMax and bCorpoMax and bATROK + and (fFechC1 > fAberDia) + and bAcimaMME200 and bAcimaVWAP; + + // VENDA: corpo de baixa + volume max + abaixo MME200 + abaixo VWAP + ATR ok + bSinalVenda := bVolMax and bCorpoMax and bATROK + and (fFechC1 < fAberDia) + and bAbaixoMME200 and bAbaixoVWAP; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; From 04c8e21fade306e145d9725f151a762231f30d63 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 14:34:00 -0300 Subject: [PATCH 31/63] Corrige bugs nos 10 robos PC_01-PC_10: resultado short, guard IsBought/IsSold, reset breakeven --- .../mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt | 3 ++- .../mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt | 5 +++-- .../mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt | 6 +++++- .../mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt | 8 ++++++-- .../codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt | 3 ++- .../codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt | 5 +++-- .../mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt | 3 ++- .../mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt | 5 +++-- .../codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt | 8 +++----- .../mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt | 8 +++----- 10 files changed, 32 insertions(+), 22 deletions(-) diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt index da05089..0fab12d 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt @@ -125,7 +125,8 @@ begin end; // ── LÓGICA DE SINAL (apenas no 2o candle em diante) ───────── - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Gap externo para cima: abertura acima da máxima do dia anterior // High[2] = máxima de D-1 quando estamos no candle 2 (High[1] = 1o candle hoje) diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt index 790d28e..43b1427 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt @@ -82,7 +82,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - fResultadoPontos := (fPrecoEntrada - Close) * iDirecaoPosicao; + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -104,7 +104,8 @@ begin fVolC1 := Volume; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Gap externo para baixo: abertura abaixo da mínima do dia anterior bGapExtBaixo := fAberDia < Low[2]; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt index 20ea38c..c571586 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt @@ -108,7 +108,8 @@ begin fMinD1 := Low[1]; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Gap interno: abertura dentro do range do dia anterior bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); @@ -137,7 +138,10 @@ begin if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 else + begin iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; if IsBought and bEstavaPosicionado then begin diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt index 0e0cc7d..41e90c4 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt @@ -83,7 +83,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -107,7 +107,8 @@ begin fMinD1 := Low[1]; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); @@ -131,7 +132,10 @@ begin if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 else + begin iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; if IsSold and bEstavaPosicionado then begin diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt index 55d2e44..ec5b36f 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt @@ -104,7 +104,8 @@ begin fVolC1 := Volume; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Marubozu de alta: corpo >90% do range + fechamento na máxima bMarubozu := (fFechC1 > fAberDia) diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt index c2ee279..cede6ce 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt @@ -82,7 +82,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -104,7 +104,8 @@ begin fVolC1 := Volume; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Marubozu de baixa: corpo >90% + fechamento na mínima bMarubozu := (fFechC1 < fAberDia) diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt index e469dca..268cc83 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt @@ -110,7 +110,8 @@ begin fRangeD1 := fMaxD1 - fMinD1; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Abertura acima da máxima do dia anterior bAberAcimaMaxD1 := fAberDia > fMaxD1; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt index 1f99638..08ee234 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt @@ -84,7 +84,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - fResultadoPontos := (fPrecoEntrada - Close) * Abs(iDirecaoPosicao); + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -109,7 +109,8 @@ begin fRangeD1 := fMaxD1 - fMinD1; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin bAberAbaixoMinD1 := fAberDia < fMinD1; bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt index ede9d75..dccf72a 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt @@ -81,10 +81,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - if iDirecaoPosicao = 1 then - fResultadoPontos := (Close - fPrecoEntrada) - else - fResultadoPontos := (fPrecoEntrada - Close); + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -106,7 +103,8 @@ begin fVolC1 := Volume; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Volume de iniciativa: >3x a média bVolIniciativa := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeIniciativa); diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt index e527fef..9d895da 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt @@ -95,10 +95,7 @@ begin if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin - if iDirecaoPosicao = 1 then - fResultadoPontos := (Close - fPrecoEntrada) - else - fResultadoPontos := (fPrecoEntrada - Close); + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; fResultadoReais := fResultadoPontos * ValorPorPonto; fResultadoDia := fResultadoDia + fResultadoReais; fResultadoSemana := fResultadoSemana + fResultadoReais; @@ -120,7 +117,8 @@ begin fVolC1 := Volume; end; - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then begin // Volume de alta convicção: >3x média bVolMax := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolMax); From 6b9bfd1c0edd182296f38e5299b633fae1b77aa9 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 14:58:20 -0300 Subject: [PATCH 32/63] Adiciona Tier2 (PC_11-PC_21) e Tier3 (PC_22-PC_33) - 23 robos primeiro candle --- ...C_11_v1_vwap_inversao_polo_compra.ntsl.txt | 174 +++++++++++++++ ...PC_12_v1_vwap_inversao_polo_venda.ntsl.txt | 164 ++++++++++++++ ...PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt | 161 ++++++++++++++ ...PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt | 159 ++++++++++++++ ..._v1_gap_parcial_fecha_acima_maxD1.ntsl.txt | 167 +++++++++++++++ ...PC_16_v1_gap_forca_pullback_venda.ntsl.txt | 168 +++++++++++++++ .../mar_PC_17_v1_martelo_alta.ntsl.txt | 162 ++++++++++++++ ...ar_PC_18_v1_estrela_cadente_venda.ntsl.txt | 160 ++++++++++++++ .../mar_PC_19_v1_forca_pura_alta.ntsl.txt | 165 +++++++++++++++ .../mar_PC_20_v1_forca_pura_baixa.ntsl.txt | 164 ++++++++++++++ .../mar_PC_21_v1_atr_zona_saudavel.ntsl.txt | 200 ++++++++++++++++++ ..._22_v1_gap_exaustao_alta_reversao.ntsl.txt | 153 ++++++++++++++ ...23_v1_gap_exaustao_baixa_reversao.ntsl.txt | 151 +++++++++++++ ...C_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt | 154 ++++++++++++++ ...PC_25_v1_gap_grande_suporte_minD1.ntsl.txt | 151 +++++++++++++ .../mar_PC_26_v1_colapso_minD1.ntsl.txt | 157 ++++++++++++++ .../mar_PC_27_v1_breakout_maxD1.ntsl.txt | 152 +++++++++++++ ..._v1_gap_parcial_fecha_acima_maxD1.ntsl.txt | 152 +++++++++++++ ...v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt | 152 +++++++++++++ ...PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt | 149 +++++++++++++ ..._PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt | 147 +++++++++++++ .../mar_PC_32_v1_absorcao_vol_medio.ntsl.txt | 175 +++++++++++++++ ...3_v1_absorcao_vol_alto_compressao.ntsl.txt | 175 +++++++++++++++ 23 files changed, 3712 insertions(+) create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt create mode 100644 automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt new file mode 100644 index 0000000..2e62310 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt @@ -0,0 +1,174 @@ +{ + Robo: mar_PC_11_v1_vwap_inversao_polo_compra + Catalogo: #13 — Tier 2 + Descricao: Abertura ABAIXO da VWAP diaria + 1o candle FECHA ACIMA da VWAP + Sinal de inversao de polo: VWAP vira suporte. Entrada compra no 2o candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.40); // corpo reduzido: a inversao de polo e o sinal principal + PeriodoMediaVol(20); + FatorVolumeMinimo(0.8); // volume pode ser levemente abaixo da media + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); // alvo = 1.5x range do 1o candle + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fVWAPAbertura : float; // VWAP no momento da abertura (D-1) + fMME200, fMediaVol : float; + bAberAbaixoVWAP, bFechaAcimaVWAP : boolean; + bCorpoAlta, bVolOK, bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + fVWAPAbertura := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + // Captura VWAP no momento da abertura (inicio do 1o candle) + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // VWAP do dia anterior (ultimo valor acumulado antes do reset) + // Usamos Open vs fVWAPDiario: no 1o candle fVWAPDiario ja foi atualizado + // A comparacao de abertura usa fVWAPDiario[1] que e o ultimo valor do dia anterior + // Aqui obtemos isso comparando Open com o valor acumulado do dia anterior = Close[1] proxy + // Solucao: capturar VWAP do D-1 antes do reset = guardar ultimo fVWAPDiario + fVWAPAbertura := fVWAPDiario; // valor do D-1 (VWAP foi resetado, primeiro candle ainda nao tem historico) + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Abertura abaixo da VWAP (usando Close[1] = fechamento C1 como proxy da VWAP no momento da abertura) + // O 1o candle abriu abaixo da VWAP do dia anterior + bAberAbaixoVWAP := fAberDia < fVWAPAbertura; + // O 1o candle FECHOU acima da VWAP atual (inversao de polo confirmada) + bFechaAcimaVWAP := fFechC1 > fVWAPDiario; + // Corpo de alta + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + bSinalCompra := bAberAbaixoVWAP and bFechaAcimaVWAP and bCorpoAlta + and bVolOK and bAcimaMME200; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt new file mode 100644 index 0000000..15213ae --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt @@ -0,0 +1,164 @@ +{ + Robo: mar_PC_12_v1_vwap_inversao_polo_venda + Catalogo: #14 — Tier 2 + Descricao: Abertura ACIMA da VWAP diaria + 1o candle FECHA ABAIXO da VWAP + Sinal de inversao de polo: VWAP vira resistencia. Entrada venda. Simetrico ao PC_11. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.40); + PeriodoMediaVol(20); + FatorVolumeMinimo(0.8); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fVWAPAbertura : float; + fMME200, fMediaVol : float; + bAberAcimaVWAP, bFechaAbaixoVWAP : boolean; + bCorpoBaixa, bVolOK, bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + fVWAPAbertura := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fVWAPAbertura := fVWAPDiario; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bAberAcimaVWAP := fAberDia > fVWAPAbertura; + bFechaAbaixoVWAP := fFechC1 < fVWAPDiario; + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + bSinalVenda := bAberAcimaVWAP and bFechaAbaixoVWAP and bCorpoBaixa + and bVolOK and bAbaixoMME200; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt new file mode 100644 index 0000000..f97c2c4 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt @@ -0,0 +1,161 @@ +{ + Robo: mar_PC_13_v1_gap_int_rompe_maxD1_vwap + Catalogo: #23 — Tier 2 + Descricao: Gap interno + 1o candle rompe maxima D-1 + acima VWAP diaria + 2 confirmacoes (menos estrito que PC_03 que exige 3). Entrada compra. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.50); // corpo menor que PC_03 (menos estrito) + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + PeriodoATR(14); + MultiplicadorAlvo(1.0); // alvo conservador: 1.0 ATR + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bGapInterno, bRompeMaxD1, bAcimaVWAP : boolean; + bCorpoAlta, bVolOK, bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); + bRompeMaxD1 := fFechC1 > fMaxD1; + bAcimaVWAP := fFechC1 > fVWAPDiario; + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + // 2 confirmacoes obrigatorias: gap interno + rompe maxD1 + // VWAP e corpo sao filtros adicionais + bSinalCompra := bGapInterno and bRompeMaxD1 and bAcimaVWAP + and bCorpoAlta and bVolOK and bAcimaMME200; + + if bSinalCompra then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt new file mode 100644 index 0000000..2bd445f --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt @@ -0,0 +1,159 @@ +{ + Robo: mar_PC_14_v1_gap_int_rompe_minD1_vwap + Catalogo: #24 — Tier 2 + Descricao: Gap interno + 1o candle rompe minima D-1 + abaixo VWAP diaria + 2 confirmacoes. Entrada venda. Simetrico ao PC_13. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + PeriodoATR(14); + MultiplicadorAlvo(1.0); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bGapInterno, bRompeMinD1, bAbaixoVWAP : boolean; + bCorpoBaixa, bVolOK, bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bGapInterno := (fAberDia >= fMinD1) and (fAberDia <= fMaxD1); + bRompeMinD1 := fFechC1 < fMinD1; + bAbaixoVWAP := fFechC1 < fVWAPDiario; + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + bSinalVenda := bGapInterno and bRompeMinD1 and bAbaixoVWAP + and bCorpoBaixa and bVolOK and bAbaixoMME200; + + if bSinalVenda then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt new file mode 100644 index 0000000..1d41706 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt @@ -0,0 +1,167 @@ +{ + Robo: mar_PC_15_v1_gap_parcial_fecha_acima_maxD1 + Catalogo: #28 — Tier 2 + Descricao: 1o candle INTEIRAMENTE acima do range D-1 (gap + forca) + pullback e compras + Entrada em pullback para a maxima D-1. Stop: fecho abaixo maxD1. Alvo: 2.0x rangeD1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(2.0); // alvo agressivo = 2x range D-1 + ToleranciaPullbackPontos(50.0); // tolerancia para tocar a maxD1 sem fechar abaixo + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(100.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(10); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bCandleAcimaRangeD1, bPullbackAtingido : boolean; + bCorpoAlta, bVolOK, bAcimaMME200 : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + bPullbackAtingido := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + // 1o candle inteiramente acima do range D-1 + bCandleAcimaRangeD1 := (fMinC1 > fMaxD1) and (fFechC1 > fAberDia); + end; + + // Aguarda pullback para a maxD1 nos candles seguintes (em qualquer candle antes do MaxBarras) + if bCandleAcimaRangeD1 and (not bEntradaExecutada) + and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= MaxBarrasPosicao) then + begin + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + // Pullback: minima do candle atual toca a zona da maxD1 mas nao fecha abaixo + bPullbackAtingido := (Low <= fMaxD1 + ToleranciaPullbackPontos) and (Close > fMaxD1); + + if bPullbackAtingido and bVolOK and bAcimaMME200 then + begin + fStopAtual := fMaxD1; + fAlvoAtual := fMaxD1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxD1; + fAlvoAtual := fMaxD1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt new file mode 100644 index 0000000..54dc478 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt @@ -0,0 +1,168 @@ +{ + Robo: mar_PC_16_v1_gap_forca_pullback_venda + Catalogo: #29 — Tier 2 + Descricao: 1o candle INTEIRAMENTE ABAIXO do range D-1 (gap baixo + forca) + pullback venda + Entrada em repique para a minima D-1. Stop: fecho acima minD1. Alvo: 2.0x rangeD1. + Simetrico ao PC_15. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(2.0); + ToleranciaPullbackPontos(50.0); + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(100.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(10); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bCandleAbaixoRangeD1, bRepiquAtingido : boolean; + bCorpoBaixa, bVolOK, bAbaixoMME200 : boolean; + bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + bRepiquAtingido := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + // 1o candle inteiramente abaixo do range D-1 + bCandleAbaixoRangeD1 := (fMaxC1 < fMinD1) and (fFechC1 < fAberDia); + end; + + // Aguarda repique para a minD1 nos candles seguintes + if bCandleAbaixoRangeD1 and (not bEntradaExecutada) + and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= MaxBarrasPosicao) then + begin + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + // Repique: maxima toca zona da minD1 mas fecha abaixo + bRepiquAtingido := (High >= fMinD1 - ToleranciaPullbackPontos) and (Close < fMinD1); + + if bRepiquAtingido and bVolOK and bAbaixoMME200 then + begin + fStopAtual := fMinD1; + fAlvoAtual := fMinD1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinD1; + fAlvoAtual := fMinD1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt new file mode 100644 index 0000000..65298d6 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt @@ -0,0 +1,162 @@ +{ + Robo: mar_PC_17_v1_martelo_alta + Catalogo: #33 — Tier 2 + Descricao: Padrao Martelo no 1o candle: pavio inferior >= 60% do range + corpo na metade + superior + volume >= media. Reversao de alta. Entrada no 2o candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctPavioMinimo(0.60); // pavio inf deve ser >= 60% do range total + PctCorpoMaximo(0.35); // corpo pequeno (martelo) + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); // alvo = 1.5x range do 1o candle + UsarOCO(true); + UsarBreakEven(false); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fPavioInf, fPavioSup : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bPavioLong, bCorpoPequeno, bCorpoMetadeSup : boolean; + bVolOK, bAcimaMME200, bAcimaVWAP : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // Pavio inferior = distancia da minima ate o menor entre abertura e fechamento + fPavioInf := Min(Open, Close) - Low; + fPavioSup := High - Max(Open, Close); + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Martelo: pavio inferior dominante (>= 60% range), corpo pequeno na metade superior + bPavioLong := (fPavioInf >= fRangeC1 * PctPavioMinimo); + bCorpoPequeno := (fCorpoC1 <= fRangeC1 * PctCorpoMaximo); + // Corpo deve estar na metade superior do range + bCorpoMetadeSup := (Min(fAberDia, fFechC1) >= fMinC1 + fRangeC1 * 0.50); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + bAcimaVWAP := fFechC1 >= fVWAPDiario; // martelo nao precisa fechar muito acima + + bSinalCompra := bPavioLong and bCorpoPequeno and bCorpoMetadeSup + and bVolOK and bAcimaMME200; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt new file mode 100644 index 0000000..c871a3e --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt @@ -0,0 +1,160 @@ +{ + Robo: mar_PC_18_v1_estrela_cadente_venda + Catalogo: #34 — Tier 2 + Descricao: Padrao Estrela Cadente no 1o candle: pavio superior >= 60% do range + corpo na + metade inferior + volume >= media. Reversao de baixa. Entrada venda no 2o candle. + Simetrico ao PC_17. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctPavioMinimo(0.60); + PctCorpoMaximo(0.35); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(false); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fPavioInf, fPavioSup : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bPavioLong, bCorpoPequeno, bCorpoMetadeInf : boolean; + bVolOK, bAbaixoMME200 : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fPavioInf := Min(Open, Close) - Low; + fPavioSup := High - Max(Open, Close); + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Estrela cadente: pavio superior dominante (>= 60% range), corpo na metade inferior + bPavioLong := (fPavioSup >= fRangeC1 * PctPavioMinimo); + bCorpoPequeno := (fCorpoC1 <= fRangeC1 * PctCorpoMaximo); + bCorpoMetadeInf := (Max(fAberDia, fFechC1) <= fMinC1 + fRangeC1 * 0.50); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + bSinalVenda := bPavioLong and bCorpoPequeno and bCorpoMetadeInf + and bVolOK and bAbaixoMME200; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt new file mode 100644 index 0000000..a30fa7e --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt @@ -0,0 +1,165 @@ +{ + Robo: mar_PC_19_v1_forca_pura_alta + Catalogo: #39 — Tier 2 + Descricao: Corpo de alta > 60% + fecha proximo da maxima C1 (>= 98% do range) + gap interno + + acima VWAP. Entrada AGRESSIVA no FECHAMENTO do 1o candle (nao espera C2). + Stop: minima C1. Alvo: abertura do dia + 1.5x range C1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); + PctFechoProxMaxima(0.95); // fecho >= 95% do range a partir da minima + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bGapInterno, bCorpoAlta, bFechoProxMax : boolean; + bAcimaVWAP, bVolOK, bAcimaMME200 : boolean; + bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + // Entrada agressiva: trigger no 1o candle + if (iCandleDia = 1) and (not bEntradaExecutada) and (not IsBought) and (not IsSold) then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + + if fRangeC1 > 0 then + begin + bGapInterno := (Open >= fMinD1) and (Open <= fMaxD1); + bCorpoAlta := (Close > Open) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bFechoProxMax := (Close >= fMinC1 + fRangeC1 * PctFechoProxMaxima); + bAcimaVWAP := Close > fVWAPDiario; + bVolOK := (fMediaVol > 0) and (Volume >= fMediaVol * FatorVolumeMinimo); + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + + if bGapInterno and bCorpoAlta and bFechoProxMax and bAcimaVWAP + and bVolOK and bAcimaMME200 then + begin + fStopAtual := fMinC1; + fAlvoAtual := Open + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fAberDia + (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt new file mode 100644 index 0000000..e04a4e8 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt @@ -0,0 +1,164 @@ +{ + Robo: mar_PC_20_v1_forca_pura_baixa + Catalogo: #40 — Tier 2 + Descricao: Corpo de baixa > 60% + fecha proximo da minima C1 (<= 5% do range) + gap interno + + abaixo VWAP. Entrada AGRESSIVA no FECHAMENTO do 1o candle. + Simetrico ao PC_19. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.60); + PctFechoProxMinima(0.95); // fecho <= 5% do range a partir da minima + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bGapInterno, bCorpoBaixa, bFechoProxMin : boolean; + bAbaixoVWAP, bVolOK, bAbaixoMME200 : boolean; + bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if (iCandleDia = 1) and (not bEntradaExecutada) and (not IsBought) and (not IsSold) then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + + if fRangeC1 > 0 then + begin + bGapInterno := (Open >= fMinD1) and (Open <= fMaxD1); + bCorpoBaixa := (Close < Open) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bFechoProxMin := (Close <= fMinC1 + fRangeC1 * (1.0 - PctFechoProxMinima)); + bAbaixoVWAP := Close < fVWAPDiario; + bVolOK := (fMediaVol > 0) and (Volume >= fMediaVol * FatorVolumeMinimo); + bAbaixoMME200 := (not UsarFiltroMME200) or (Close < fMME200); + + if bGapInterno and bCorpoBaixa and bFechoProxMin and bAbaixoVWAP + and bVolOK and bAbaixoMME200 then + begin + fStopAtual := fMaxC1; + fAlvoAtual := Open - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fAberDia - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt new file mode 100644 index 0000000..d5f5886 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt @@ -0,0 +1,200 @@ +{ + Robo: mar_PC_21_v1_atr_zona_saudavel + Catalogo: #61 — Tier 2 + Descricao: Range do 1o candle entre 40%-70% do ATR (zona saudavel/ideal). + Nao e setup independente: combina com corpo >= 60% + VWAP. + Opera 2 contratos quando ATR saudavel (tamanho ideal do range). + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctATRmin(0.40); // range C1 deve ser >= 40% do ATR + PctATRmax(0.70); // range C1 deve ser <= 70% do ATR + PctCorpoMinimo(0.60); // corpo forte confirmando direcao + PeriodoATR(14); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + QtdContratosNormal(1); + QtdContratosSaudavel(2); // dobra contratos quando ATR saudavel + UsarOCO(true); + UsarBreakEven(true); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(10.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol, fATR : float; + bRangeSaudavel, bCorpoAlta, bCorpoBaixa : boolean; + bAcimaVWAP, bAbaixoVWAP, bAcimaMME200 : boolean; + bVolOK : boolean; + bSinalCompra, bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bBreakEvenAtivo, bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) and (fATR > 0) + and (not IsBought) and (not IsSold) then + begin + // Zona saudavel: range nao muito grande nem muito pequeno + bRangeSaudavel := (fRangeC1 >= fATR * PctATRmin) and (fRangeC1 <= fATR * PctATRmax); + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bAcimaVWAP := fFechC1 > fVWAPDiario; + bAbaixoVWAP := fFechC1 < fVWAPDiario; + bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalCompra := bRangeSaudavel and bCorpoAlta and bAcimaVWAP and bAcimaMME200 and bVolOK; + bSinalVenda := bRangeSaudavel and bCorpoBaixa and bAbaixoVWAP and (not bAcimaMME200) and bVolOK; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + begin + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + end; + + if IsBought and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarBreakEven and (not bBreakEvenAtivo) and ((fPrecoEntrada - Low) >= BreakEvenTriggerPontos) then + bBreakEvenAtivo := true; + if UsarBreakEven and bBreakEvenAtivo then + fStopAtual := Min(fStopAtual, fPrecoEntrada - BreakEvenOffsetPontos); + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMinC1; + fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + bBreakEvenAtivo := false; + fStopAtual := fMaxC1; + fAlvoAtual := fMinC1 - (fRangeC1 * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt new file mode 100644 index 0000000..1c1cd2b --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt @@ -0,0 +1,153 @@ +{ + Robo: mar_PC_22_v1_gap_exaustao_alta_reversao + Catalogo: #3 — Tier 3 + Descricao: Gap externo para CIMA + 1o candle: pavio superior > 50% do range + fecha ABAIXO + da abertura. Exaustao compradora. Entrada VENDA reversao no 2o candle. + Stop: maxima C1. Alvo: fechamento D-1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctPavioSupMinimo(0.50); // pavio superior deve ser >= 50% do range + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoATR(14); + MultiplicadorGapMinimo(1.0); // gap externo: abertura deve estar >= 1.0x ATR acima maxD1 + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); // risco ligeiramente maior: reversoes tem maior erro + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapExtCima, bPavioSupLong, bFechaAbaixoAber : boolean; + bVolOK : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; // fechamento do dia anterior + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Gap externo para cima: abertura acima da maxima D-1 + bGapExtCima := fAberDia > fMaxD1; + bPavioSupLong := (fRangeC1 > 0) and + ((fMaxC1 - Max(fAberDia, fFechC1)) >= fRangeC1 * PctPavioSupMinimo); + bFechaAbaixoAber := fFechC1 < fAberDia; // candle de baixa + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalVenda := bGapExtCima and bPavioSupLong and bFechaAbaixoAber and bVolOK; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fFechD1; // alvo: retornar ao fechamento do dia anterior + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := fFechD1; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt new file mode 100644 index 0000000..09b6463 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt @@ -0,0 +1,151 @@ +{ + Robo: mar_PC_23_v1_gap_exaustao_baixa_reversao + Catalogo: #4 — Tier 3 + Descricao: Gap externo para BAIXO + 1o candle: pavio inferior > 50% do range + fecha ACIMA + da abertura. Exaustao vendedora. Entrada COMPRA reversao no 2o candle. + Stop: minima C1. Alvo: fechamento D-1. Simetrico ao PC_22. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctPavioInfMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoATR(14); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapExtBaixo, bPavioInfLong, bFechaAcimaAber : boolean; + bVolOK : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bGapExtBaixo := fAberDia < fMinD1; + bPavioInfLong := (fRangeC1 > 0) and + ((Min(fAberDia, fFechC1) - fMinC1) >= fRangeC1 * PctPavioInfMinimo); + bFechaAcimaAber := fFechC1 > fAberDia; + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalCompra := bGapExtBaixo and bPavioInfLong and bFechaAcimaAber and bVolOK; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fFechD1; + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := fFechD1; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt new file mode 100644 index 0000000..68de312 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt @@ -0,0 +1,154 @@ +{ + Robo: mar_PC_24_v1_gap_grande_rejeicao_maxD1 + Catalogo: #45 — Tier 3 + Descricao: Gap exaustao para CIMA (> 1.5x ATR) + C1 rejeita maxima D-1 com pavio longo + + volume climatico. Reversao de alta extrema. Venda no 2o candle. + Stop: maxima C1. Alvo: fechamento D-1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + MultiplicadorGapMinATR(1.50); // gap externo > 1.5x ATR + PctPavioMinimo(0.40); // pavio superior >= 40% range + PeriodoMediaVol(20); + FatorVolumeClimatico(2.0); // volume climatico: >= 2x media + PeriodoATR(14); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapGrandeCima, bPavioRejeicao, bTestaMaxD1 : boolean; + bVolClimatico : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) and (fATR > 0) + and (not IsBought) and (not IsSold) then + begin + // Gap externo grande para cima + bGapGrandeCima := (fAberDia > fMaxD1) and ((fAberDia - fMaxD1) >= fATR * MultiplicadorGapMinATR); + // Pavio superior longo (rejeicao) + bPavioRejeicao := (fMaxC1 - Max(fAberDia, fFechC1)) >= fRangeC1 * PctPavioMinimo; + // C1 testou/superou a maxima D-1 mas fechou abaixo da maxima do candle + bTestaMaxD1 := fFechC1 < fMaxC1; + bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); + + bSinalVenda := bGapGrandeCima and bPavioRejeicao and bTestaMaxD1 and bVolClimatico; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fFechD1; + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := fFechD1; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt new file mode 100644 index 0000000..7aa1588 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt @@ -0,0 +1,151 @@ +{ + Robo: mar_PC_25_v1_gap_grande_suporte_minD1 + Catalogo: #46 — Tier 3 + Descricao: Gap exaustao para BAIXO (> 1.5x ATR) + C1 encontra suporte na minima D-1 com + pavio inferior longo + volume climatico. Reversao baixa extrema. Compra. + Stop: minima C1. Alvo: fechamento D-1. Simetrico ao PC_24. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + MultiplicadorGapMinATR(1.50); + PctPavioMinimo(0.40); + PeriodoMediaVol(20); + FatorVolumeClimatico(2.0); + PeriodoATR(14); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapGrandeBaixo, bPavioInfLong, bTestaMinD1 : boolean; + bVolClimatico : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) and (fATR > 0) + and (not IsBought) and (not IsSold) then + begin + bGapGrandeBaixo := (fAberDia < fMinD1) and ((fMinD1 - fAberDia) >= fATR * MultiplicadorGapMinATR); + bPavioInfLong := (Min(fAberDia, fFechC1) - fMinC1) >= fRangeC1 * PctPavioMinimo; + bTestaMinD1 := fFechC1 > fMinC1; // fecha acima da minima (suporte segurou) + bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); + + bSinalCompra := bGapGrandeBaixo and bPavioInfLong and bTestaMinD1 and bVolClimatico; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fFechD1; + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := fFechD1; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt new file mode 100644 index 0000000..30fd66f --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt @@ -0,0 +1,157 @@ +{ + Robo: mar_PC_26_v1_colapso_minD1 + Catalogo: #48 — Tier 3 + Descricao: Abertura proxima da minima D-1 (zona de suporte) + VWAP acima (resistencia) + + corpo de baixa + gap para baixo = colapso do suporte. Short. + Stop: maxima C1. Alvo: minD1 - 2.0x rangeD1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + ToleranciaMinD1Pct(0.005); // abertura <= minD1 + 0.5% de diferenca + PctCorpoMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(2.0); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bAberProxMinD1, bVWAPResistencia, bCorpoBaixa : boolean; + bGapBaixo, bVolOK : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Abertura proxima da minima D-1 (zona de suporte) + bAberProxMinD1 := (fMinD1 > 0) and (Abs(fAberDia - fMinD1) / fMinD1 <= ToleranciaMinD1Pct); + // VWAP esta acima da abertura (resistencia) + bVWAPResistencia := fVWAPDiario > fFechC1; + // Corpo de baixa forte no C1 + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + // Gap down: o dia abriu abaixo do fechamento anterior + bGapBaixo := fAberDia < Close[2]; // Close[2] = fechamento D-1 proximo + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalVenda := bAberProxMinD1 and bVWAPResistencia and bCorpoBaixa and bVolOK; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fMinD1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := fMinD1 - (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt new file mode 100644 index 0000000..66687bb --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt @@ -0,0 +1,152 @@ +{ + Robo: mar_PC_27_v1_breakout_maxD1 + Catalogo: #49 — Tier 3 + Descricao: Abertura proxima da maxima D-1 (zona de resistencia) + VWAP abaixo (suporte) + + corpo de alta + gap para cima = rompimento da resistencia. Long. + Stop: minima C1. Alvo: maxD1 + 2.0x rangeD1. Simetrico ao PC_26. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + ToleranciaMaxD1Pct(0.005); + PctCorpoMinimo(0.50); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoMME200(200); + MultiplicadorAlvoRangeD1(2.0); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(4.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fRangeD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMME200, fMediaVol : float; + bAberProxMaxD1, bVWAPSuporte, bCorpoAlta : boolean; + bVolOK : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMME200 := Media(PeriodoMME200, 1, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fRangeD1 := fMaxD1 - fMinD1; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bAberProxMaxD1 := (fMaxD1 > 0) and (Abs(fAberDia - fMaxD1) / fMaxD1 <= ToleranciaMaxD1Pct); + bVWAPSuporte := fVWAPDiario < fFechC1; + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalCompra := bAberProxMaxD1 and bVWAPSuporte and bCorpoAlta and bVolOK; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fMaxD1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := fMaxD1 + (fRangeD1 * MultiplicadorAlvoRangeD1); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt new file mode 100644 index 0000000..0ff53c8 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt @@ -0,0 +1,152 @@ +{ + Robo: mar_PC_28_v1_gap_parcial_fecha_acima_maxD1_simples + Catalogo: #8 — Tier 3 + Descricao: Gap parcial para cima (abertura entre fechD1 e maxD1) + 1o candle fecha ACIMA + da maxima D-1. Rompimento confirmado com gap de impulsao. Compra. + Stop: abertura do dia. Alvo: 1.0x ATR. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.45); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoATR(14); + MultiplicadorAlvo(1.0); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapParcial, bFechaAcimaMaxD1, bCorpoAlta : boolean; + bVolOK : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Gap parcial para cima: abertura entre o fechamento D-1 e a maxima D-1 + bGapParcial := (fAberDia > fFechD1) and (fAberDia < fMaxD1); + bFechaAcimaMaxD1 := fFechC1 > fMaxD1; + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalCompra := bGapParcial and bFechaAcimaMaxD1 and bCorpoAlta and bVolOK; + + if bSinalCompra then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 + (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt new file mode 100644 index 0000000..715368c --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt @@ -0,0 +1,152 @@ +{ + Robo: mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1 + Catalogo: #9 — Tier 3 + Descricao: Gap parcial para baixo (abertura entre minD1 e fechD1) + 1o candle fecha ABAIXO + da minima D-1. Rompimento de suporte confirmado. Venda. + Stop: abertura do dia. Alvo: 1.0x ATR. Simetrico ao PC_28. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctCorpoMinimo(0.45); + PeriodoMediaVol(20); + FatorVolumeMinimo(1.0); + PeriodoATR(14); + MultiplicadorAlvo(1.0); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1, fFechD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bGapParcial, bFechaAbaixoMinD1, bCorpoBaixa : boolean; + bVolOK : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + fFechD1 := Close[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // Gap parcial para baixo: abertura entre a minima D-1 e o fechamento D-1 + bGapParcial := (fAberDia < fFechD1) and (fAberDia > fMinD1); + bFechaAbaixoMinD1 := fFechC1 < fMinD1; + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalVenda := bGapParcial and bFechaAbaixoMinD1 and bCorpoBaixa and bVolOK; + + if bSinalVenda then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt new file mode 100644 index 0000000..2b8f152 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt @@ -0,0 +1,149 @@ +{ + Robo: mar_PC_30_v1_rejeicao_maxD1_vol_baixo + Catalogo: #25 — Tier 3 + Descricao: 1o candle TESTA a maxima D-1 (High toca maxD1) mas FECHA ABAIXO dela + + volume BAIXO (< 0.7x media). Rejeicao com fraqueza compradora. Venda. + Stop: maxima C1. Alvo: abertura do dia. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + FatorVolumeMaximo(0.70); // volume fraco: <= 70% da media + PeriodoMediaVol(20); + PctCorpoMinimo(0.30); // corpo nao precisa ser enorme + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol : float; + bTestaMaxD1, bFechaAbaixo, bVolFraco : boolean; + bCorpoBaixaOuDoji : boolean; + bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + // C1 testou a maxima D-1 (maxima do candle toca ou supera) + bTestaMaxD1 := fMaxC1 >= fMaxD1; + // Mas fechou abaixo da maxima D-1 (rejeicao) + bFechaAbaixo := fFechC1 < fMaxD1; + bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo); + bCorpoBaixaOuDoji := fFechC1 <= fAberDia; // neutro ou baixista + + bSinalVenda := bTestaMaxD1 and bFechaAbaixo and bVolFraco and bCorpoBaixaOuDoji; + + if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := fAberDia; + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := fAberDia; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt new file mode 100644 index 0000000..4b34f39 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt @@ -0,0 +1,147 @@ +{ + Robo: mar_PC_31_v1_suporte_minD1_vol_baixo + Catalogo: #26 — Tier 3 + Descricao: 1o candle TESTA a minima D-1 (Low toca minD1) mas FECHA ACIMA dela + + volume BAIXO (< 0.7x media). Suporte segurou com fraqueza vendedora. Compra. + Stop: minima C1. Alvo: abertura do dia. Simetrico ao PC_30. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + FatorVolumeMaximo(0.70); + PeriodoMediaVol(20); + PctCorpoMinimo(0.30); + UsarOCO(true); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fMaxD1, fMinD1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol : float; + bTestaMinD1, bFechaAcima, bVolFraco : boolean; + bCorpoAltaOuDoji : boolean; + bSinalCompra, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + fMaxD1 := High[1]; + fMinD1 := Low[1]; + end; + + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) then + begin + bTestaMinD1 := fMinC1 <= fMinD1; + bFechaAcima := fFechC1 > fMinD1; + bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo); + bCorpoAltaOuDoji := fFechC1 >= fAberDia; + + bSinalCompra := bTestaMinD1 and bFechaAcima and bVolFraco and bCorpoAltaOuDoji; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := fAberDia; + BuyAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := fAberDia; + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt new file mode 100644 index 0000000..d435622 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt @@ -0,0 +1,175 @@ +{ + Robo: mar_PC_32_v1_absorcao_vol_medio + Catalogo: #55 — Tier 3 + Descricao: Volume 1.5x-3x a media + corpo pequeno (< 30% range) = absorcao/luta de preco. + Aguarda rompimento da maxima ou minima do 1o candle nos candles seguintes. + Entrada bidirecional: compra acima maxC1, venda abaixo minC1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + FatorVolMin(1.50); // volume >= 1.5x media + FatorVolMax(3.00); // volume <= 3.0x media (se > 3x e outro setup) + PctCorpoMaxAbsorcao(0.30); // corpo <= 30% do range + PeriodoMediaVol(20); + PeriodoATR(14); + MultiplicadorAlvo(1.0); + UsarOCO(true); + MaxBarrasPosicao(6); + MaxCandlesAguardaRompimento(4); // aguarda ate 4 candles apos C1 + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bAbsorcao : boolean; + bSinalCompra, bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bAbsorcao := false; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // Detecta absorcao no C1 + if (fRangeC1 > 0) and (fMediaVol > 0) then + bAbsorcao := (fVolC1 >= fMediaVol * FatorVolMin) + and (fVolC1 <= fMediaVol * FatorVolMax) + and (fCorpoC1 <= fRangeC1 * PctCorpoMaxAbsorcao); + end; + + // Aguarda rompimento apos absorcao + if bAbsorcao and (not bEntradaExecutada) and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) then + begin + bSinalCompra := Close > fMaxC1; + bSinalVenda := Close < fMinC1; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt new file mode 100644 index 0000000..c15b526 --- /dev/null +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt @@ -0,0 +1,175 @@ +{ + Robo: mar_PC_33_v1_absorcao_vol_alto_compressao + Catalogo: #60 — Tier 3 + Descricao: Range C1 < 20% do ATR (compressao extrema) + volume > 1.5x media = absorcao + intensa. Rompimento iminente e mais forte que o PC_32. + Entrada bidirecional apos rompimento do range do C1. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PctRangeMaxATR(0.20); // range C1 <= 20% do ATR + FatorVolMin(1.50); // volume >= 1.5x media (sem limite superior) + PctCorpoMaxAbsorcao(0.40); // corpo pode ser ligeiramente maior + PeriodoMediaVol(20); + PeriodoATR(14); + MultiplicadorAlvo(1.5); // alvo maior: compressao gera movimento mais amplo + UsarOCO(true); + MaxBarrasPosicao(6); + MaxCandlesAguardaRompimento(5); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iCandleDia : integer; + fMaxC1, fMinC1, fAberDia, fFechC1 : float; + fRangeC1, fCorpoC1, fVolC1 : float; + fVWAPSoma, fVWAPVol, fVWAPDiario : float; + fMediaVol, fATR : float; + bCompressaoIntensa : boolean; + bSinalCompra, bSinalVenda, bEntradaExecutada : boolean; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + iBarrasEmPosicao, iDirecaoPosicao : integer; + bEstavaPosicionado : boolean; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iCandleDia := 1; + fMaxC1 := 0; + fMinC1 := 0; + fRangeC1 := 0; + fCorpoC1 := 0; + fVolC1 := 0; + bCompressaoIntensa := false; + bEntradaExecutada := false; + fResultadoDia := 0; + bBloqueioDia := false; + fVWAPSoma := 0; + fVWAPVol := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end + else + iCandleDia := iCandleDia + 1; + + fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; + fVWAPVol := fVWAPVol + Volume; + if fVWAPVol > 0 then + fVWAPDiario := fVWAPSoma / fVWAPVol; + + fMediaVol := Media(PeriodoMediaVol, Volume); + fATR := ATR(PeriodoATR); + + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + + if bEstavaPosicionado and (not IsBought) and (not IsSold) then + begin + fResultadoPontos := (Close - fPrecoEntrada) * iDirecaoPosicao; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + end; + + if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + + if iCandleDia = 1 then + begin + fMaxC1 := High; + fMinC1 := Low; + fAberDia := Open; + fFechC1 := Close; + fRangeC1 := High - Low; + fCorpoC1 := Abs(Close - Open); + fVolC1 := Volume; + // Compressao intensa: range pequeno + volume alto + if (fATR > 0) and (fMediaVol > 0) and (fRangeC1 > 0) then + bCompressaoIntensa := (fRangeC1 <= fATR * PctRangeMaxATR) + and (fVolC1 >= fMediaVol * FatorVolMin) + and (fCorpoC1 <= fRangeC1 * PctCorpoMaxAbsorcao); + end; + + // Aguarda rompimento apos compressao + if bCompressaoIntensa and (not bEntradaExecutada) and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) then + begin + bSinalCompra := Close > fMaxC1; + bSinalVenda := Close < fMinC1; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and bEstavaPosicionado then + begin + if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if IsSold and bEstavaPosicionado then + begin + if UsarOCO and ((High >= fStopAtual) or (Low <= fAlvoAtual)) then + ClosePosition + else if iBarrasEmPosicao >= MaxBarrasPosicao then + ClosePosition; + end; + + if (not bEstavaPosicionado) and IsBought then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + iBarrasEmPosicao := 0; + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + end; + + if (not bEstavaPosicionado) and IsSold then + begin + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + iBarrasEmPosicao := 0; + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + end; + + bEstavaPosicionado := IsBought or IsSold; +end; From 31071bc65144ec4929d8f7a6387ac356fa8eadb6 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 16:26:25 -0300 Subject: [PATCH 33/63] Adiciona guias completos Profit e MetaTrader - backtest 5 anos, otimizacao, demo --- plataformas/Metatrader.md | 315 ++++++++++++++++++++++++++++ plataformas/Profit.md | 0 plataformas/Profit_Guia_Completo.md | 241 +++++++++++++++++++++ 3 files changed, 556 insertions(+) create mode 100644 plataformas/Metatrader.md create mode 100644 plataformas/Profit.md create mode 100644 plataformas/Profit_Guia_Completo.md diff --git a/plataformas/Metatrader.md b/plataformas/Metatrader.md new file mode 100644 index 0000000..4adb0f0 --- /dev/null +++ b/plataformas/Metatrader.md @@ -0,0 +1,315 @@ +# Guia Completo — MetaTrader 5 (MT5) + +> Plataforma principal para mercado **internacional** — Forex, índices, cripto (via CFD). +> Corretoras suportadas: **Tickmill** (Forex/CFD), **XP** (Brasil, versão MT5 disponível). +> Para cripto direta (sem CFD): **Binance** usa plataforma própria — ver seção 10. + +--- + +## 1. Instalação + +### 1.1 Download +1. Acesse diretamente pela corretora (evite instalar MT5 genérico): + - **Tickmill:** https://www.tickmill.com/platforms/mt5 → Download MT5 + - **XP (MT5):** Plataformas → MetaTrader 5 +2. Execute o instalador como Administrador +3. Pasta padrão: `C:\Program Files\MetaTrader 5\` + +### 1.2 Requisitos mínimos +| Item | Mínimo | Recomendado | +|------|--------|-------------| +| OS | Windows 10 | Windows 11 | +| RAM | 4 GB | 8 GB+ | +| Processador | Dual-core | Quad-core 3GHz+ | +| Internet | 10 Mbps | 50 Mbps+ | + +--- + +## 2. Conexão com Conta Demo + +### 2.1 Tickmill (mercado internacional) +1. Abra o MT5 +2. Menu **"Arquivo → Abrir Conta"** +3. Pesquise por: `Tickmill` na lista de servidores +4. Selecione: `Tickmill-Demo` (ou `Tickmill Ltd-Demo`) +5. Clique em **"Abrir Conta Demo"** +6. Preencha: + - Nome completo + - E-mail + - Tipo: **Hedging** (MT5 padrão Forex) + - Moeda da conta: USD + - Alavancagem: **1:100** (para operar índices) ou 1:500 (Forex) + - Depósito virtual: USD 10.000 +7. Anote o **login** e **senha** gerados +8. Clique em **"Concluir"** — conexão é automática + +### 2.2 Verificando conexão demo +- Canto inferior direito: deve mostrar o servidor e sinal verde +- Na aba **"Terminal"** (Ctrl+T): saldo deve mostrar USD 10.000 +- Status: `Autorizado` na aba Conexão + +--- + +## 3. Estrutura do MT5 — Visão Geral + +``` +MT5 +├── Market Watch (Ctrl+M) → Lista de ativos/cotações em tempo real +├── Navigator (Ctrl+N) → Expert Advisors, Indicadores, Scripts +├── Terminal (Ctrl+T) → Posições, ordens, histórico, logs +├── Strategy Tester (Ctrl+R) → BACKTEST — MAIS IMPORTANTE +└── MetaEditor (F4) → IDE para programar EAs em MQL5 +``` + +--- + +## 4. Adaptando os Robôs NTSL para MQL5 + +> Os robôs `mar_PC_XX` foram escritos em **NTSL** para o Profit. +> Para rodar no MT5, é necessário **reescrever em MQL5** (linguagem C-like). + +### 4.1 Equivalência das funções principais + +| NTSL (Profit) | MQL5 (MetaTrader 5) | +|---------------|---------------------| +| `BuyAtMarket` | `trade.Buy(volume, symbol, 0, sl, tp)` | +| `SellShortAtMarket` | `trade.Sell(volume, symbol, 0, sl, tp)` | +| `ClosePosition` | `trade.PositionClose(symbol)` | +| `IsBought` | `PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY` | +| `IsSold` | `PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL` | +| `Media(p, 1, Close)` | `iMA(NULL,0, p, 0, MODE_EMA, PRICE_CLOSE)` | +| `ATR(p)` | `iATR(NULL, 0, p)` | +| `High[n]` | `iHigh(NULL, 0, n)` | +| `Low[n]` | `iLow(NULL, 0, n)` | +| `Close[n]` | `iClose(NULL, 0, n)` | +| `Volume[n]` | `iTickVolume(NULL, 0, n)` | +| `Date <> Date[1]` | `TimeDay(Time[0]) != TimeDay(Time[1])` | +| `DayOfWeek(Date)` | `TimeDayOfWeek(TimeCurrent())` | + +### 4.2 Estrutura básica de um EA MQL5 +```mql5 +// Arquivo: mar_PC_01_EA.mq5 +#include + +CTrade trade; +input double RiscoMaxDia = 1.0; // % do capital +input double MultiplicadorAlvo = 1.5; +input int PeriodoATR = 14; + +// Variáveis globais +double fMaxC1, fMinC1, fRangeC1; +bool bEntradaExecutada; +datetime dtUltimoDia; + +int OnInit() { + // Configurações iniciais + return INIT_SUCCEEDED; +} + +void OnTick() { + // Detecta novo dia + if(TimeDay(TimeCurrent()) != TimeDay(dtUltimoDia)) { + bEntradaExecutada = false; + dtUltimoDia = TimeCurrent(); + } + // Captura C1, verifica sinal... +} + +void OnDeinit(const int reason) {} +``` + +### 4.3 Para usar os robôs PC_XX no MT5 +- Cada robô precisa ser **portado manualmente** (lógica é idêntica, sintaxe diferente) +- A pasta `plataformas/mql5/` conterá as versões MQL5 quando criadas +- Priorize os Tier 1 para portar primeiro (PC_01 a PC_10) + +--- + +## 5. Executando Backtest de 5 Anos no MT5 + +### 5.1 Abrir o Strategy Tester +- Pressione **Ctrl+R** ou menu **"Exibir → Strategy Tester"** + +### 5.2 Configurar o backtest + +**Aba "Configurações":** +``` +Expert Advisor: [selecionar o EA compilado] +Símbolo: US500 (S&P500) | XAUUSD (Ouro) | EURUSD (Forex) +Timeframe: M15 (15 min) ou M30 (30 min) +Modelo: Every tick based on real ticks (mais realista) + OU: 1 minute OHLC (mais rápido) +Data (De): 01.01.2020 +Data (Até): 07.03.2026 +Depósito: 10000 USD +Alavancagem: 1:100 +``` + +### 5.3 Baixar histórico para 5 anos +1. Menu **"Ferramentas → Histórico de Cotações"** (Ctrl+H) +2. Selecione o símbolo (ex: `US500`) +3. Clique em **"Baixar"** — o MT5 baixa direto do servidor da corretora +4. Aguarde completar (pode demorar para dados tick-by-tick) +5. Verifique: painel mostrará barras disponíveis por timeframe + +### 5.4 Configurar comissão real (Tickmill) +- Tickmill cobra ~$3 por lote round-trip para micropares +- No Strategy Tester, **não há ajuste manual de spread/comissão** — ele usa o spread real da corretora configurada + +### 5.5 Iniciar o backtest +1. Clique em **"Iniciar"** (botão ▶) +2. Progresso aparece na barra inferior +3. Tempo estimado: + - Modelo "Every tick": 10-60 min (5 anos, 15min) + - Modelo "1 min OHLC": 1-5 min + +--- + +## 6. Analisando Resultados no MT5 + +### 6.1 Abas de resultado após backtest + +| Aba | O que mostra | +|-----|-------------| +| **Gráfico** | Equity curve + drawdown | +| **Resultados** | Lista de cada operação | +| **Relatório** | Métricas completas | +| **Otimização** | Grid de parâmetros (se otimização) | + +### 6.2 Métricas-chave no Relatório MT5 + +| Métrica | Campo no relatório | Mínimo aceitável | +|---------|--------------------|-----------------| +| Fator de lucro | `Profit Factor` | > 1.3 | +| Drawdown máximo | `Maximal Drawdown` | < 20% | +| Resultado esperado | `Expected Payoff` | > $0 | +| Taxa de acerto | `% of profitable trades` | > 55% | +| Sharpe Ratio | `Sharpe Ratio` | > 0.5 | +| Operações totais | `Total Trades` | > 100 | + +### 6.3 Exportar relatório +1. Clique com o botão direito no painel de Resultados +2. **"Salvar Como Relatório HTML"** — abre no navegador +3. Para CSV: clique com o botão direito → **"Copiar"** → colar no Excel + +--- + +## 7. Otimização de Parâmetros no MT5 + +### 7.1 Configurar otimização +1. No Strategy Tester, marque **"Optimization"** +2. Tipo de otimização: **"Slow complete algorithm"** (mais preciso) ou **"Fast genetic algorithm"** (mais rápido) +3. Critério: **"Balance max"** (maximizar saldo) — ou **"Custom max"** (criar sua métrica) + +### 7.2 Definir faixas de parâmetros +No código MQL5, use a linha `input` com faixa: +- Clique no ícone de propriedades ao lado do parâmetro no Tester +- Defina: Valor inicial | Passo | Valor final + +Exemplo: +``` +MultiplicadorAlvo: 1.0 → 0.25 → 3.0 +PeriodoATR: 7 → 1 → 21 +``` + +### 7.3 Análise do gráfico de otimização ("Optimization Graph") +- Aparece após conclusão +- Eixo X = combinação de parâmetros, Eixo Y = resultado +- Buscar **"platô"** (região estável, não pico isolado) → robustez + +### 7.4 Walk-Forward no MT5 +1. Após otimizar em 2020-2023, manualmente altere as datas para 2024-2026 +2. Use os melhores parâmetros encontrados (sem re-otimizar) +3. Se resultado fora da amostra ≥ 50% do dentro → aprovado + +--- + +## 8. Ativos Recomendados por Corretora + +### 8.1 Tickmill — Mercado Internacional +| Ativo | Símbolo MT5 | Mercado | Horário BR | +|-------|-------------|---------|-----------| +| S&P 500 | `US500` | Ações EUA | 10h-17h | +| Nasdaq | `US100` | Tech EUA | 10h-17h | +| Ouro | `XAUUSD` | Commodities | 24h | +| EUR/USD | `EURUSD` | Forex | 24h | +| BTC/USD | `BTCUSD` | Cripto CFD | 24h | + +> **Nota Binance:** A Binance não usa MT5. Para cripto direta na Binance, é necessário usar a API própria (Python/ccxt). Os robôs PC_XX são específicos para análise de 1º candle do dia — compatível com Binance via script Python separado. + +### 8.2 Estratégia de 1º candle no MT5 +Os robôs `mar_PC_XX` foram projetados para o WIN (Brasil). Para adaptar ao MT5: +- **Timeframe equivalente:** 15min ou 30min +- **"Dia" na abertura:** 1º candle após abertura do pregão do ativo +- Para `US500`: primeiro candle das 09:30 EST (14:30 BRT, horário de verão EUA) +- Para `XAUUSD`: sem horário fixo — adaptar para candle diário de abertura da sessão Londres (08:00 GMT) + +--- + +## 9. Configuração Final — Resumo Rápido + +``` +OBJETIVO: Backtest 5 anos de um EA no MT5 (Tickmill demo) + +PASSOS RÁPIDOS: +1. Instalar MT5 pelo site da Tickmill +2. Arquivo → Abrir Conta → Tickmill-Demo → Criar conta +3. F4 (MetaEditor) → Novo → Expert Advisor → colar/escrever código MQL5 +4. Compilar (F7) — sem erros +5. Ctrl+R (Strategy Tester): + - EA = seu robô compilado + - Símbolo = US500 ou EURUSD + - Timeframe = M15 + - Modelo = 1 minute OHLC (rápido) ou Every tick (preciso) + - Data: 01.01.2020 até hoje + - Depósito: 10000 USD +6. ▶ Iniciar +7. Analisar: Profit Factor > 1.3, Drawdown < 20% +8. Se aprovado → otimizar parâmetros +9. Walk-forward validation +10. Produção: conta real Tickmill +``` + +--- + +## 10. Binance — Backtest via Python (alternativa) + +Para a Binance (cripto real, sem CFD), o fluxo é diferente: + +### 10.1 Ferramentas +- **Python + ccxt** para baixar dados históricos da Binance +- **Backtrader** ou **vectorbt** para backtest +- Os robôs PC_XX podem ser convertidos para Python (lógica OHLCV) + +### 10.2 Fluxo básico Binance +```python +import ccxt +import pandas as pd + +binance = ccxt.binance() + +# Baixar 5 anos de candles BTCUSDT 15min +ohlcv = binance.fetch_ohlcv('BTC/USDT', '15m', + since=binance.parse8601('2020-01-01T00:00:00Z'), + limit=1000) +df = pd.DataFrame(ohlcv, columns=['timestamp','open','high','low','close','volume']) +``` + +### 10.3 Restrições +- Binance limita histórico a ~1000 candles por request (necessário paginar) +- Backtest Python não tem interface visual como MT5 — usar `matplotlib` para equity curve +- Para estratégias de 1º candle: usar candle diário como referência (`1d`) e M15 para execução + +--- + +## 11. Troubleshooting MT5 + +| Problema | Solução | +|---------|---------| +| "No connection" | Verificar servidor Tickmill-Demo, trocar servidor na lista | +| EA não aparece no Navigator | Recompilar em MetaEditor (F7), verificar pasta `MQL5/Experts/` | +| "Backtesting failed - no data" | Baixar histórico: Ctrl+H, selecionar par, Download | +| Strategy Tester muito lento | Usar modelo "1 minute OHLC" em vez de "Every tick" | +| Resultado diferente em ticks reais | Normal — modelo OHLC é aproximação | +| EA não opera na demo | Verificar `AutoTrading` habilitado (botão na barra superior) | +| "Trade context busy" | Adicionar `Sleep(100)` entre ordens no código MQL5 | diff --git a/plataformas/Profit.md b/plataformas/Profit.md new file mode 100644 index 0000000..e69de29 diff --git a/plataformas/Profit_Guia_Completo.md b/plataformas/Profit_Guia_Completo.md new file mode 100644 index 0000000..3d3727d --- /dev/null +++ b/plataformas/Profit_Guia_Completo.md @@ -0,0 +1,241 @@ +# Guia Completo — Neologica Profit Pro + +> Plataforma principal para mercado **nacional (B3)** — WIN (minicontrato de índice), WDO, ações. +> Corretoras suportadas: **XP Investimentos**, **Toro Investimentos**, Rico, Clear, BTG. + +--- + +## 1. Instalação + +### 1.1 Download +1. Acesse: https://www.neologica.com.br/profit +2. Baixe o **Profit Pro** (versão completa) ou **Profit Chart** (versão leve) +3. Execute o instalador como Administrador +4. Instale na pasta padrão: `C:\Neologica\` + +### 1.2 Requisitos mínimos +| Item | Mínimo | Recomendado | +|------|--------|-------------| +| OS | Windows 10 | Windows 11 | +| RAM | 4 GB | 8 GB+ | +| Processador | Dual-core 2GHz | Quad-core 3GHz+ | +| Internet | 10 Mbps | 50 Mbps+ fibra | + +--- + +## 2. Conexão com Conta Demo + +### 2.1 XP Investimentos +1. Abra o Profit Pro +2. No login, clique em **"Acessar com XP"** +3. Entre com seu login XP (CPF + senha) +4. Na tela de seleção de conta, escolha **"Simulador"** ou **"Conta Demo"** +5. Confirme o aceite dos termos de simulação + +### 2.2 Toro Investimentos +1. Na tela de login, selecione **"Toro"** na lista de corretoras +2. Use login Toro (e-mail + senha) +3. Selecione a conta com sufixo **"-SIM"** (simulação) + +### 2.3 Verificando a conexão demo +- Na barra inferior do Profit deve aparecer: `SIMULADOR` em laranja/amarelo +- O saldo exibido será fictício (geralmente R$100.000 ou configurável) +- **Atenção:** ordens no simulador NÃO chegam à B3 + +--- + +## 3. Configuração da Plataforma para Day Trade no WIN + +### 3.1 Ativo padrão +- Código do minicontrato de índice: `WINM26` (vencimento março/2026) +- Código genérico (rola automaticamente): `WIN@N` (contrato futuro do mês mais próximo) + +### 3.2 Configurar gráfico para backtest NTSL +1. Clique em **"Arquivo → Novo Gráfico"** +2. Insira o ativo: `WIN@N` +3. Selecione o timeframe desejado (15min ou 30min para os robôs PC_XX) +4. Clique com o botão direito → **"Propriedades do Gráfico"**: + - Quantidade de candles: **100.000** (máximo para 5 anos em 15min) + - Carregar histório: **Sim** + +### 3.3 Configurar Simulador de Estratégias (Backtest) +1. Menu **"Ferramentas → Simulador → Configurações"** +2. Marque: **"Usar dados históricos reais"** +3. Configure horário: 09:00 às 17:55 (pregão WIN) +4. Habilite: **"Slippage"** e defina 1-2 pontos (realismo) +5. Corretagem: R$1,15 por contrato (média mercado) ou zero para gross + +--- + +## 4. Criando Robô NTSL no Editor + +### 4.1 Abrir o Editor NTSL +- Menu **"Ferramentas → Editor de Estratégias"** ou `F12` +- Clique em **"Novo"** → selecione **"Robô de Execução"** + +### 4.2 Importar código dos robôs PC_XX +1. Abra o arquivo `.ntsl.txt` da pasta `automacao_backtests/CANDLE1/codigo_fonte/` +2. **Ctrl+A** → **Ctrl+C** para copiar todo o código +3. No editor do Profit, cole com **Ctrl+V** +4. Clique em **"Compilar"** (`F7`) +5. Se sem erros: clique em **"Salvar"** com o nome do robô (ex: `mar_PC_01`) + +### 4.3 Erros comuns de compilação NTSL +| Erro | Causa | Solução | +|------|-------|---------| +| `Variable not declared` | Variável fora do bloco `var` | Mover para seção `var` | +| `Incompatible types` | Float atribuído a integer | Usar `Round()` ou declarar float | +| `Undeclared identifier` | Função não existe nessa versão | Verificar versão do Profit | +| `Expected ;` | Falta ponto e vírgula | Revisar linha indicada | + +--- + +## 5. Executando Backtest de 5 Anos + +### 5.1 Configurar período +1. Com o robô compilado, vá em **"Ferramentas → Simulador de Estratégias"** +2. Selecione o robô compilado na lista +3. Configure: + - **Ativo:** `WIN@N` + - **Timeframe:** 15min (ou 30min) + - **Data Início:** 01/01/2020 + - **Data Fim:** 07/03/2026 (data atual) + - **Quantidade:** 1 contrato + - **Capital inicial:** R$ 5.000 + +### 5.2 Parâmetros de realismo +``` +Slippage: 2 pontos (por ordem) +Corretagem: R$ 1,15/contrato +Margem WIN: Verificar na B3 (~R$ 590 por contrato) +Horário: 09:00 - 17:45 (evitar leilão) +``` + +### 5.3 Rodar backtest +1. Clique em **"Iniciar Simulação"** +2. Aguarde o processamento (pode demorar 1-5 min para 5 anos) +3. Resultados aparecem em 3 abas: + - **Resumo:** resultado financeiro total + - **Operações:** lista de cada trade + - **Gráfico:** curva de capital (equity curve) + +--- + +## 6. Analisando Resultados + +### 6.1 Métricas principais a observar + +| Métrica | Mínimo aceitável | Ideal | +|---------|-----------------|-------| +| Taxa de acerto | > 55% | > 65% | +| Fator de lucro (PF) | > 1.3 | > 1.8 | +| Drawdown máximo | < 20% capital | < 10% | +| Resultado líquido | Positivo após custos | | +| Nº de operações | > 100 (significância) | > 300 | +| Resultado médio/trade | Positivo | > 2x custo | + +### 6.2 Exportar resultados +1. Na aba **"Operações"**, clique em **"Exportar"** → CSV +2. Salvar em: `automacao_backtests/CANDLE1/resultados/mar_PC_XX_resultado.csv` +3. Para análise em Python: use o script em `automacao_backtests/` + +### 6.3 Curva de capital saudável +- Subida consistente, sem quedas abruptas +- Drawdown recuperado em < 30 dias úteis +- Sem período de estagnação > 3 meses +- Desvio padrão dos retornos diários baixo + +--- + +## 7. Otimização de Parâmetros + +### 7.1 Acessar otimizador +1. Na janela do Simulador, marque **"Otimização"** +2. Selecione os parâmetros a variar (ex: `PctCorpoMinimo`, `MultiplicadorAlvo`) +3. Defina faixa: + ``` + PctCorpoMinimo: 0.40 até 0.80, passo 0.05 + MultiplicadorAlvo: 1.0 até 3.0, passo 0.25 + ``` +4. Clique **"Otimizar"** — gera tabela com todas combinações + +### 7.2 Cuidados com over-fitting +- **NÃO** escolher os melhores parâmetros por lucro bruto +- Preferir combinações com **estabilidade** (lucro consistente numa faixa) +- Testar o parâmetro otimizado em período **fora da amostra** (walk-forward): + - Otimizar em: 2020–2023 + - Validar em: 2024–2026 + +### 7.3 Critério de aprovação +``` +Critério WFT (Walk-Forward Threshold): + Resultado fora da amostra >= 50% do resultado dentro da amostra + → Se 100 pts dentro, precisa >= 50 pts fora +``` + +--- + +## 8. Colocando o Robô em Produção (Conta Real) + +### 8.1 Ativar o robô no gráfico +1. Abra o gráfico do ativo (`WIN@N`, 15min) +2. Arraste o robô da lista para o gráfico +3. Configure os parâmetros aprovados no backtest +4. Clique em **"Habilitar Negociação"** +5. Confirme: ícone verde na barra do robô + +### 8.2 Monitoramento diário +- Verificar conexão antes das 09:00 +- Checar ordens abertas após 09:05 (robô deve ter mandado ordem no 1º candle) +- Verificar stop configurado corretamente +- **NÃO** interferir nas operações do robô durante o pregão + +### 8.3 Gestão de risco operacional +``` +Regra da semana: + Perda de 3% da conta em 1 semana → Desligar robô + revisar + +Regra do dia: + 2 stops consecutivos → Encerrar operações do dia + +Regra do mês: + Drawdown > 10% → Reduzir para 1 contrato mínimo +``` + +--- + +## 9. Melhores Robôs para Iniciar + +### 9.1 Recomendação de ordem de teste (Tier 1 prioritário) + +| Robô | Setup | Expectativa | Ordem de teste | +|------|-------|-------------|----------------| +| PC_01 | Gap + corpo + VWAP — compra | Alta | 1º | +| PC_02 | Gap + corpo + VWAP — venda | Alta | 1º | +| PC_05 | Rejeição maxD1 corpo forte | Alta | 2º | +| PC_06 | Rejeição minD1 corpo forte | Alta | 2º | +| PC_17 | Martelo — compra | Média-alta | 3º | +| PC_18 | Estrela cadente — venda | Média-alta | 3º | + +### 9.2 Configuração inicial conservadora +``` +SaldoConta: 5000 (capital alocado ao robô) +RiscoDiaPct: 1.0 (R$50 de risco máximo/dia) +RiscoSemanaPct: 3.0 (R$150 máximo/semana) +UsarHardLock: true +MultiplicadorAlvo: 1.5 (padrão) +MaxBarrasPosicao: 8 +``` + +--- + +## 10. Troubleshooting + +| Problema | Solução | +|---------|---------| +| Robô não entra — "0 operações" | Verificar filtro MME200, ajustar `PctCorpoMinimo` para baixo | +| Muitas operações com perda | Ativar `UsarFiltroMME200 = true`, revisar direção | +| Backtest muito lento | Reduzir janela para 3 anos ou aumentar timeframe | +| Erro "Insufficient margin" | Aumentar `SaldoConta` ou reduzir contratos | +| Robô para de operar no pregão | Verificar `bBloqueioDia` — risco diário foi atingido | +| Histório insuficiente | Ferramentas → Histório → Baixar tudo para WIN@N | From bcd0a353a8d637826a24ec247b0c7d2238e137fc Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 16:28:39 -0300 Subject: [PATCH 34/63] Refina gestao de risco Profit - criterios exatos de desligamento, 1 contrato WIN --- plataformas/Profit_Guia_Completo.md | 63 ++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/plataformas/Profit_Guia_Completo.md b/plataformas/Profit_Guia_Completo.md index 3d3727d..ad5436c 100644 --- a/plataformas/Profit_Guia_Completo.md +++ b/plataformas/Profit_Guia_Completo.md @@ -190,17 +190,37 @@ Critério WFT (Walk-Forward Threshold): - Verificar stop configurado corretamente - **NÃO** interferir nas operações do robô durante o pregão -### 8.3 Gestão de risco operacional -``` -Regra da semana: - Perda de 3% da conta em 1 semana → Desligar robô + revisar - -Regra do dia: - 2 stops consecutivos → Encerrar operações do dia - -Regra do mês: - Drawdown > 10% → Reduzir para 1 contrato mínimo -``` +### 8.3 Gestão de risco operacional — 1 contrato WIN + +> **Sempre operar com 1 contrato.** O robô executa sozinho via simulador. +> Monitoramento é **externo** — você observa e decide quando desligar manualmente. + +#### Como acompanhar os stops no Profit +1. Aba **"Terminal → Histórico de Ordens"**: cada ordem encerrada com prejuízo = 1 stop +2. Aba **"Operações"** no resultado do dia: coluna "Resultado" com valor negativo +3. O robô já imprime no log: `[LOCK] Risco diário atingido` quando trava sozinho + +#### Tabela de critérios de desligamento manual + +| Horizonte | Gatilho | Ação | +|-----------|---------|------| +| **No dia** | 2 stops consecutivos com perda | Observar 3º operação; se stop → desligar o dia | +| **No dia** | Risco diário atingido (log do robô) | Robô já bloqueia — confirmar que parou | +| **Na semana** | 5 stops no total (win ou loss) com saldo negativo | Desligar robô na sexta, revisar parâmetros | +| **Na semana** | Perda acumulada > R$ 150 na semana | Desligar e avaliar | +| **No mês** | 15 stops no mês com resultado negativo | Pausar 1 semana, rever filtros | +| **No mês** | Drawdown do mês > R$ 500 | Pausar robô, não re-otimizar no mesmo mês | + +#### Referência de valores com 1 contrato WIN (R$ 0,20/ponto) + +| Stop típico | Pontos | Perda em R$ | +|-------------|--------|-------------| +| Stop curto | 100 pts | R$ 20 | +| Stop médio | 200 pts | R$ 40 | +| Stop largo | 400 pts | R$ 80 | +| Stop grande | 600 pts | R$ 120 | + +> **Dica:** Configure `RiscoDiaPct = 1.5` com `SaldoConta = 5000` → o robô trava sozinho ao atingir **R$ 75 de perda no dia**. Você só precisa checar se ele travou corretamente. --- @@ -217,16 +237,29 @@ Regra do mês: | PC_17 | Martelo — compra | Média-alta | 3º | | PC_18 | Estrela cadente — venda | Média-alta | 3º | -### 9.2 Configuração inicial conservadora +### 9.2 Configuração inicial conservadora — 1 contrato ``` -SaldoConta: 5000 (capital alocado ao robô) -RiscoDiaPct: 1.0 (R$50 de risco máximo/dia) +SaldoConta: 5000 (capital de referência) +Quantidade: 1 (FIXO — sempre 1 contrato) +RiscoDiaPct: 1.5 (R$75 de perda máxima/dia) RiscoSemanaPct: 3.0 (R$150 máximo/semana) -UsarHardLock: true +UsarHardLock: true (trava automática ao atingir limite) MultiplicadorAlvo: 1.5 (padrão) MaxBarrasPosicao: 8 ``` +**O que acontece quando o HardLock dispara:** +- O robô encerra a posição aberta imediatamente +- Bloqueia novas entradas pelo restante do dia +- Imprime no log: `[LOCK] Risco diário atingido — bloqueando entradas` +- Você **não precisa fazer nada** — apenas verificar no final do pregão que o log está correto + +**Verificação rápida diária (2 minutos às 18h):** +1. Abrir Profit → aba Terminal → Histórico +2. Contar operações do dia: quantas positivas, quantas negativas +3. Checar resultado líquido do dia (coluna Total) +4. Se > 3 stops no dia → anotar no diário de bordo para análise semanal + --- ## 10. Troubleshooting From 6cc5b4a9fc1c2e8a5825ba0c9ef093d34392d786 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 16:35:44 -0300 Subject: [PATCH 35/63] Atualiza capital real - Profit R e MT5 USD5k com limites de risco recalculados --- plataformas/Metatrader.md | 8 ++++---- plataformas/Profit_Guia_Completo.md | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plataformas/Metatrader.md b/plataformas/Metatrader.md index 4adb0f0..5ef292a 100644 --- a/plataformas/Metatrader.md +++ b/plataformas/Metatrader.md @@ -39,13 +39,13 @@ - Tipo: **Hedging** (MT5 padrão Forex) - Moeda da conta: USD - Alavancagem: **1:100** (para operar índices) ou 1:500 (Forex) - - Depósito virtual: USD 10.000 + - Depósito virtual: USD 5.000 7. Anote o **login** e **senha** gerados 8. Clique em **"Concluir"** — conexão é automática ### 2.2 Verificando conexão demo - Canto inferior direito: deve mostrar o servidor e sinal verde -- Na aba **"Terminal"** (Ctrl+T): saldo deve mostrar USD 10.000 +- Na aba **"Terminal"** (Ctrl+T): saldo deve mostrar USD 5.000 - Status: `Autorizado` na aba Conexão --- @@ -141,7 +141,7 @@ Modelo: Every tick based on real ticks (mais realista) OU: 1 minute OHLC (mais rápido) Data (De): 01.01.2020 Data (Até): 07.03.2026 -Depósito: 10000 USD +Depósito: 5000 USD Alavancagem: 1:100 ``` @@ -262,7 +262,7 @@ PASSOS RÁPIDOS: - Timeframe = M15 - Modelo = 1 minute OHLC (rápido) ou Every tick (preciso) - Data: 01.01.2020 até hoje - - Depósito: 10000 USD + - Depósito: 5000 USD 6. ▶ Iniciar 7. Analisar: Profit Factor > 1.3, Drawdown < 20% 8. Se aprovado → otimizar parâmetros diff --git a/plataformas/Profit_Guia_Completo.md b/plataformas/Profit_Guia_Completo.md index ad5436c..9b206b7 100644 --- a/plataformas/Profit_Guia_Completo.md +++ b/plataformas/Profit_Guia_Completo.md @@ -101,7 +101,7 @@ - **Data Início:** 01/01/2020 - **Data Fim:** 07/03/2026 (data atual) - **Quantidade:** 1 contrato - - **Capital inicial:** R$ 5.000 + - **Capital inicial:** R$ 10.000 ### 5.2 Parâmetros de realismo ``` @@ -220,7 +220,7 @@ Critério WFT (Walk-Forward Threshold): | Stop largo | 400 pts | R$ 80 | | Stop grande | 600 pts | R$ 120 | -> **Dica:** Configure `RiscoDiaPct = 1.5` com `SaldoConta = 5000` → o robô trava sozinho ao atingir **R$ 75 de perda no dia**. Você só precisa checar se ele travou corretamente. +> **Dica:** Configure `RiscoDiaPct = 1.5` com `SaldoConta = 10000` → o robô trava sozinho ao atingir **R$ 150 de perda no dia**. Você só precisa checar se ele travou corretamente. --- @@ -239,10 +239,10 @@ Critério WFT (Walk-Forward Threshold): ### 9.2 Configuração inicial conservadora — 1 contrato ``` -SaldoConta: 5000 (capital de referência) +SaldoConta: 10000 (capital de referência — R$ 10.000) Quantidade: 1 (FIXO — sempre 1 contrato) -RiscoDiaPct: 1.5 (R$75 de perda máxima/dia) -RiscoSemanaPct: 3.0 (R$150 máximo/semana) +RiscoDiaPct: 1.5 (R$150 de perda máxima/dia) +RiscoSemanaPct: 3.0 (R$300 máximo/semana) UsarHardLock: true (trava automática ao atingir limite) MultiplicadorAlvo: 1.5 (padrão) MaxBarrasPosicao: 8 From e1d21f6f34d12bfaeffb9ad6c61eeda5d0b9242f Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 16:52:06 -0300 Subject: [PATCH 36/63] Adiciona grupo PPV (4 robos), EA MQL5 exemplo, selecao 5 ativos MT5, IFR_01-03 recriados --- .../catalogo_50_robos_primeiro_candle.txt | 0 .../IFR_RSI/catalogo_50_opcoes_IFR.txt | 74 ---- ..._IFR_01_v1_divergencia_confirmada.ntsl.txt | 152 +++++++ ...FR_02_v1_reversao_volume_relativo.ntsl.txt | 118 ++++++ ...mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt | 113 +++++ ..._PPV_01_v1_atr_trailing_agressivo.ntsl.txt | 166 ++++++++ ...ar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt | 158 +++++++ ...ar_PPV_03_v1_estocastico_trailing.ntsl.txt | 159 +++++++ ..._04_v1_macd_momentum_saida_rapida.ntsl.txt | 168 ++++++++ .../poutosPontosVencedores.md | 91 ++++ .../catalogo_50_robos_primeiro_candle.txt | 238 ----------- .../STOPTOLERANTE/stoptolerante.md | 0 plataformas/ativos_mt5_selecao.md | 122 ++++++ plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md | 161 +++++++ plataformas/{ => mql5}/Metatrader.md | 0 plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 | 395 ++++++++++++++++++ .../{ => profit}/Profit_Guia_Completo.md | 0 17 files changed, 1803 insertions(+), 312 deletions(-) rename automacao_backtests/{CANDLE1A4 => CANDLE1}/catalogo_50_robos_primeiro_candle.txt (100%) create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md delete mode 100644 automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt rename plataformas/Profit.md => automacao_backtests/STOPTOLERANTE/stoptolerante.md (100%) create mode 100644 plataformas/ativos_mt5_selecao.md create mode 100644 plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md rename plataformas/{ => mql5}/Metatrader.md (100%) create mode 100644 plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 rename plataformas/{ => profit}/Profit_Guia_Completo.md (100%) diff --git a/automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt b/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.txt similarity index 100% rename from automacao_backtests/CANDLE1A4/catalogo_50_robos_primeiro_candle.txt rename to automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.txt diff --git a/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt b/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt index 42d4949..e69de29 100644 --- a/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt +++ b/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt @@ -1,74 +0,0 @@ -CATÁLOGO - 50 OPÇÕES DE ESTRATÉGIAS IFR (RSI) - -Objetivo -- Listar 50 variações de estratégia com IFR para priorização antes da fase de otimização. -- Estrutura: ideia -> gatilho base -> filtro opcional -> saída padrão (IFR50/tempo/estrutura). - -1) REVERSÃO CLÁSSICA (1-10) -1. Extremo 30/70 + retorno 35/65. -2. Extremo 25/75 + retorno 32/68. -3. Extremo 20/80 + retorno 30/70. -4. Extremo 15/85 + retorno 25/75. -5. Reversão 30/70 com confirmação de candle (close > high[1] / < low[1]). -6. Reversão 30/70 com filtro de volume acima da média. -7. Reversão 30/70 com cooldown de 2 barras após saída. -8. Reversão 30/70 com no-trade-zone 45-55. -9. Reversão assimétrica (compra 32->38, venda 68->62). -10. Reversão com 1 reentrada por direção. - -2) RETORNO DE ZONA E CRUZAMENTOS (11-20) -11. Compra quando IFR cruza 40 para cima após sobrevendido. -12. Venda quando IFR cruza 60 para baixo após sobrecomprado. -13. Compra em sequência: IFR < 30 e depois 2 closes crescentes. -14. Venda em sequência: IFR > 70 e depois 2 closes decrescentes. -15. Retorno 35/65 com confirmação por rompimento de pivô 3 barras. -16. Retorno 35/65 com confirmação por pivô 5 barras. -17. Cruzamento de IFR50 com filtro de tendência por MME9. -18. Cruzamento de IFR50 com filtro de tendência por MME21. -19. Cruzamento IFR45/55 em regime lateral detectado. -20. Cruzamento IFR45/55 em regime de tendência detectado. - -3) TENDÊNCIA E PULLBACK (21-30) -21. Pullback IFR para 45 em tendência de alta (MME9>MME21). -22. Pullback IFR para 55 em tendência de baixa (MME9 20. -38. IFR ativo apenas com ADX entre 18 e 35. -39. IFR ativo apenas com range médio em faixa mínima/máxima. -40. IFR com bandas dinâmicas por percentil (25/75 do lookback). -41. IFR com bandas dinâmicas por percentil (20/80 do lookback). -42. IFR por sessão: parâmetros diferentes abertura/meio/fim. - -6) CONTEXTO DE PREÇO E VOLUME (43-47) -43. IFR + VWAP (só compra acima, só venda abaixo). -44. IFR + VWAP com filtro de distância máxima (evitar esticamento). -45. IFR + volume relativo por horário (comparar com mesma faixa horária). -46. IFR + direção da abertura do dia (viés inicial). -47. IFR + rompimento de ORB (opening range breakout) com gatilho IFR. - -7) GESTÃO E CONTROLE DE RISCO (48-50) -48. IFR com circuit breaker diário (limite de saídas por tempo). -49. IFR com limite diário de trades e bloqueio progressivo. -50. IFR com meta diária/limite de perda diária e pausa automática. - -Próxima etapa recomendada -- Escolher 10 opções do catálogo (misturando 4 reversão, 3 tendência, 2 regime, 1 gestão). -- Implementar em lotes de 3-5 robôs por rodada para evitar dispersão. -- Só depois partir para otimização dos vencedores. \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt new file mode 100644 index 0000000..f6593ab --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt @@ -0,0 +1,152 @@ +{ + Robo: mar_IFR_01_v1_divergencia_confirmada + Grupo: IFR_RSI — Tier 1 (#01) + Descricao: Divergencia bullish/bearish de IFR confirmada por candle de rejeicao + (martelo para alta, estrela cadente para baixa). + Setup com maior taxa de acerto do grupo (referencia v4: ~90%). + Timeframe: 60min (principal), 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Divergencia ────────────────────────────────────────────── + PeriodoIFR(9); + LookbackDivergencia(12); // janela para comparar fundos/topos + DeltaIFRMinimo(2.0); // diferenca minima no IFR para confirmar div + // ── Filtro de candle de rejeicao ──────────────────────────── + MultiplicadorPavio(1.5); // pavio >= corpo * multiplicador + MaxPavioOpostoCorpo(1.2); + // ── Filtro de volume (opcional) ──────────────────────────── + UsarFiltroVolume(false); + PeriodoMediaVol(20); + FatorVolume(1.0); + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(55); // IFR >= 55 → sair compra + NivelSaidaVenda(45); // IFR <= 45 → sair venda + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + // ── Gestao de risco (toggle) ──────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); // R$150 max/dia + RiscoSemanaPct(3.0); // R$300 max/semana + MaxStopsConsecutivos(3); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fIFR, fMediaVol : float; + fRange, fCorpo, fPavioSup, fPavioInf : float; + bMartelo, bEstrela, bVolumeOk : boolean; + bDivAlta, bDivBaixa : boolean; + // Gestao de risco + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec : integer; + iDiaSemanaAtual : integer; + +begin + // ── NOVO DIA: reset ────────────────────────────────────────── + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + // Detecta fechamento de posicao comprada + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + // Detecta fechamento de posicao vendida + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + fIFR := IFR(PeriodoIFR); + fMediaVol := Media(PeriodoMediaVol, Volume); + bVolumeOk := (not UsarFiltroVolume) or (Volume >= fMediaVol * FatorVolume); + + fRange := High - Low; + fCorpo := Abs(Open - Close); + fPavioSup := High - Max(Open, Close); + fPavioInf := Min(Open, Close) - Low; + + bMartelo := (fRange > 0) and (fCorpo > 0) + and (fPavioInf >= fCorpo * MultiplicadorPavio) + and (fPavioSup <= fCorpo * MaxPavioOpostoCorpo); + + bEstrela := (fRange > 0) and (fCorpo > 0) + and (fPavioSup >= fCorpo * MultiplicadorPavio) + and (fPavioInf <= fCorpo * MaxPavioOpostoCorpo); + + bDivAlta := (Low < Lowest(Low, LookbackDivergencia)[1]) + and (fIFR > (Lowest(IFR(PeriodoIFR), LookbackDivergencia)[1] + DeltaIFRMinimo)); + bDivBaixa := (High > Highest(High, LookbackDivergencia)[1]) + and (fIFR < (Highest(IFR(PeriodoIFR), LookbackDivergencia)[1] - DeltaIFRMinimo)); + + // ── ENTRADA ────────────────────────────────────────────────── + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if bDivAlta and bMartelo and bVolumeOk then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bDivBaixa and bEstrela and bVolumeOk then + begin + SellShortAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + + // ── BARRA EM POSICAO ───────────────────────────────────────── + if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 + else iBarrasEmPosicao := 0; + + // ── SAIDA ──────────────────────────────────────────────────── + if IsBought and ((UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt new file mode 100644 index 0000000..1340da5 --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt @@ -0,0 +1,118 @@ +{ + Robo: mar_IFR_02_v1_reversao_volume_relativo + Grupo: IFR_RSI — Tier 1 (#02) + Descricao: Reversao de IFR (extremo → retorno) com filtro de volume relativo. + Entrada apenas quando volume esta acima da media do periodo. + Referencia v31: ~72% acerto. + Timeframe: 60min (principal), 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(9); + IFRExtremoCompra(30); // IFR atinge sobrevenda + IFREtornoCompra(35); // IFR sobe de volta = sinal + IFRExtremoVenda(70); + IFREtornoVenda(65); + // ── Volume relativo ───────────────────────────────────────── + PeriodoMediaVol(20); + FatorVolume(1.2); // volume >= 120% da media + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(50); + NivelSaidaVenda(50); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + // ── Gestao de risco (toggle) ──────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(3); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fIFR, fMediaVol : float; + bVolumeAlto : boolean; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec : integer; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + fIFR := IFR(PeriodoIFR); + fMediaVol := Media(PeriodoMediaVol, Volume); + bVolumeAlto := Volume >= (fMediaVol * FatorVolume); + + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) + and bVolumeAlto then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + + if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 + else iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + if IsSold and ((UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt new file mode 100644 index 0000000..c60f5f6 --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt @@ -0,0 +1,113 @@ +{ + Robo: mar_IFR_03_v1_ifr_mme200_contexto + Grupo: IFR_RSI — Tier 1 (#03) + Descricao: IFR reversao com filtro de contexto pela MME200. + Compra apenas acima da MME200 (tendencia de alta de longo prazo). + Venda apenas abaixo da MME200 (tendencia de baixa). + Referencia v25: ~69% acerto. + Timeframe: 60min (principal), 2min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMME200(200); + UsarSaidaIFR(true); + NivelSaidaCompra(50); + NivelSaidaVenda(50); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(3); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fIFR, fMME200 : float; + bContextoCompra, bContextoVenda : boolean; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec : integer; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMME200, Close); + + bContextoCompra := Close > fMME200; + bContextoVenda := Close < fMME200; + + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + + if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 + else iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then ClosePosition; + if IsSold and ((UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then ClosePosition; +end; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt new file mode 100644 index 0000000..4566dfb --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt @@ -0,0 +1,166 @@ +{ + Robo: mar_PPV_01_v1_atr_trailing_agressivo + Grupo: POUCOSPONTOSVENCEDORES — #01 + Descricao: IFR reversao com trailing stop por ATR agressivo. + Objetivo: capturar 80-150 pontos sem devolver ao mercado. + Break-even rapido + trailing de 0.5x ATR. + Saida por tempo curto (4 barras max). + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── IFR entry ───────────────────────────────────────────────── + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + // ── ATR saida ───────────────────────────────────────────────── + PeriodoATR(14); + FatorAlvo(0.8); // alvo = 0.8 x ATR + FatorStop(0.6); // stop inicial = 0.6 x ATR + FatorTrailing(0.5); // trailing = 0.5 x ATR (atualizado a cada barra) + // ── Break-even ──────────────────────────────────────────────── + BreakEvenTriggerPontos(60.0); // ativa be após 60 pts favoraveis + BreakEvenOffsetPontos(5.0); // be = entrada + 5 pts + // ── Saida forçada ───────────────────────────────────────────── + MaxBarrasPosicao(4); + // ── Gestao de risco ─────────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); // PPV: 2 stops = para o dia + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fIFR, fATR : float; + fPrecoEntrada, fStopAtual, fAlvoAtual : float; + bBreakEvenAtivo : boolean; + iDirecaoPosicao : integer; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDiaSemanaAtual : integer; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + bBreakEvenAtivo := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + fIFR := IFR(PeriodoIFR); + fATR := ATR(PeriodoATR); + + // ── ENTRADA ────────────────────────────────────────────────── + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStopAtual := Close - (fATR * FatorStop); + fAlvoAtual := Close + (fATR * FatorAlvo); + iDirecaoPosicao := 1; + bBreakEvenAtivo := false; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStopAtual := Close + (fATR * FatorStop); + fAlvoAtual := Close - (fATR * FatorAlvo); + iDirecaoPosicao := -1; + bBreakEvenAtivo := false; + end; + end; + + // ── GESTAO DE POSICAO ───────────────────────────────────────── + if IsBought then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + + // Break-even + if (not bBreakEvenAtivo) and (Close >= fPrecoEntrada + BreakEvenTriggerPontos) then + begin + fStopAtual := fPrecoEntrada + BreakEvenOffsetPontos; + bBreakEvenAtivo := true; + end; + + // Trailing stop: avanca apenas se novo stop for maior que atual + if bBreakEvenAtivo and ((Close - fATR * FatorTrailing) > fStopAtual) then + fStopAtual := Close - (fATR * FatorTrailing); + + // Saida por alvo, stop ou tempo + if (Close >= fAlvoAtual) + or (Low <= fStopAtual) + or (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; + + if IsSold then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + + if (not bBreakEvenAtivo) and (Close <= fPrecoEntrada - BreakEvenTriggerPontos) then + begin + fStopAtual := fPrecoEntrada - BreakEvenOffsetPontos; + bBreakEvenAtivo := true; + end; + + if bBreakEvenAtivo and ((Close + fATR * FatorTrailing) < fStopAtual) then + fStopAtual := Close + (fATR * FatorTrailing); + + if (Close <= fAlvoAtual) + or (High >= fStopAtual) + or (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; + + if not (IsBought or IsSold) then iBarrasEmPosicao := 0; +end; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt new file mode 100644 index 0000000..527bffb --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt @@ -0,0 +1,158 @@ +{ + Robo: mar_PPV_02_v1_breakeeven_alvo_fixo + Grupo: POUCOSPONTOSVENCEDORES — #02 + Descricao: IFR entry com alvo fixo de pontos (nao depende de indicador para sair) + e break-even automatico agressivo. + Filosofia: "pegar e sair" — nao aguardar mais. + Alvo 100 pts, be em 60 pts, max 4 barras. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── IFR entry ───────────────────────────────────────────────── + PeriodoIFR(9); + IFRExtremoCompra(28); + IFREtornoCompra(33); + IFRExtremoVenda(72); + IFREtornoVenda(67); + // ── Alvos fixos ─────────────────────────────────────────────── + AlvoFixoPontos(100.0); // sair ao ganhar 100 pts + StopFixoPontos(80.0); // stop de 80 pts + BreakEvenTrigger(60.0); // ativar be com 60 pts a favor + BreakEvenOffset(5.0); // be = entrada + 5 pts (garante mínimo) + // ── Trailing apos break-even ────────────────────────────────── + TrailingAposBE(40.0); // trailing de 40 pts após ativar be + // ── Tempo ───────────────────────────────────────────────────── + MaxBarrasPosicao(4); + // ── Gestao de risco ─────────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fIFR : float; + fPrecoEntrada, fStop, fAlvo, fMelhorPreco : float; + bBreakEvenAtivo : boolean; + iDirecaoPosicao : integer; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + bBreakEvenAtivo := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + fIFR := IFR(PeriodoIFR); + + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - StopFixoPontos; + fAlvo := Close + AlvoFixoPontos; + fMelhorPreco := Close; + iDirecaoPosicao := 1; + bBreakEvenAtivo := false; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + StopFixoPontos; + fAlvo := Close - AlvoFixoPontos; + fMelhorPreco := Close; + iDirecaoPosicao := -1; + bBreakEvenAtivo := false; + end; + end; + + if IsBought then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close > fMelhorPreco then fMelhorPreco := Close; + + // Ativar break-even + if (not bBreakEvenAtivo) and (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger) then + begin + fStop := fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo := true; + end; + + // Trailing apos be: stop sobe com fMelhorPreco + if bBreakEvenAtivo and ((fMelhorPreco - TrailingAposBE) > fStop) then + fStop := fMelhorPreco - TrailingAposBE; + + if (Close >= fAlvo) or (Low <= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; + + if IsSold then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close < fMelhorPreco then fMelhorPreco := Close; + + if (not bBreakEvenAtivo) and (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger) then + begin + fStop := fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo := true; + end; + + if bBreakEvenAtivo and ((fMelhorPreco + TrailingAposBE) < fStop) then + fStop := fMelhorPreco + TrailingAposBE; + + if (Close <= fAlvo) or (High >= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) then + ClosePosition; + end; + + if not (IsBought or IsSold) then iBarrasEmPosicao := 0; +end; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt new file mode 100644 index 0000000..ffd37b7 --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt @@ -0,0 +1,159 @@ +{ + Robo: mar_PPV_03_v1_estocastico_trailing + Grupo: POUCOSPONTOSVENCEDORES — #03 + Descricao: Estocástico rápido (5,3) — crossover em zona extrema (<20 / >80). + Entrada no cruzamento %K sobre %D (compra) ou abaixo (venda). + Saida no primeiro sinal contrario ou trailing ATR. + Mais sensivel que IFR — captura movimentos de 1-3 barras. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Estocástico ─────────────────────────────────────────────── + PeriodoK(5); + PeriodoD(3); + ZonaSobrevenda(20.0); // %K < 20 = sobrevenda + ZonaSobrecompra(80.0); // %K > 80 = sobrecompra + // ── ATR trailing ────────────────────────────────────────────── + PeriodoATR(14); + FatorStopInicial(0.7); + FatorTrailing(0.5); + BreakEvenTrigger(50.0); + BreakEvenOffset(5.0); + // ── Saida por indicador ─────────────────────────────────────── + SairNoCruzamentoInverso(true); // sair quando %K cruza %D contra posicao + // ── Tempo ───────────────────────────────────────────────────── + MaxBarrasPosicao(4); + // ── Gestao de risco ─────────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fK, fD, fATR : float; + fPrecoEntrada, fStop, fMelhorPreco : float; + bBreakEvenAtivo : boolean; + bCruzouCompra, bCruzouVenda : boolean; + iDirecaoPosicao : integer; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + bBreakEvenAtivo := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // Profit nao tem funcao Stochastic nativa — usar IFR curto como aproximacao + // %K rapido = IFR(5), %D = Media(3, IFR(5)) via janela manual + fK := IFR(PeriodoK); + fD := Media(PeriodoD, IFR(PeriodoK)); + fATR := ATR(PeriodoATR); + + // Crossovers + bCruzouCompra := (fK[1] < fD[1]) and (fK >= fD) and (fK < ZonaSobrevenda); + bCruzouVenda := (fK[1] > fD[1]) and (fK <= fD) and (fK > ZonaSobrecompra); + + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if bCruzouCompra then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - (fATR * FatorStopInicial); + fMelhorPreco := Close; + iDirecaoPosicao := 1; + bBreakEvenAtivo := false; + end + else if bCruzouVenda then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + (fATR * FatorStopInicial); + fMelhorPreco := Close; + iDirecaoPosicao := -1; + bBreakEvenAtivo := false; + end; + end; + + if IsBought then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close > fMelhorPreco then fMelhorPreco := Close; + + if (not bBreakEvenAtivo) and (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger) then + begin fStop := fPrecoEntrada + BreakEvenOffset; bBreakEvenAtivo := true; end; + + if bBreakEvenAtivo and ((fMelhorPreco - fATR * FatorTrailing) > fStop) then + fStop := fMelhorPreco - (fATR * FatorTrailing); + + if (Low <= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) + or (SairNoCruzamentoInverso and (fK[1] > fD[1]) and (fK <= fD)) then + ClosePosition; + end; + + if IsSold then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close < fMelhorPreco then fMelhorPreco := Close; + + if (not bBreakEvenAtivo) and (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger) then + begin fStop := fPrecoEntrada - BreakEvenOffset; bBreakEvenAtivo := true; end; + + if bBreakEvenAtivo and ((fMelhorPreco + fATR * FatorTrailing) < fStop) then + fStop := fMelhorPreco + (fATR * FatorTrailing); + + if (High >= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) + or (SairNoCruzamentoInverso and (fK[1] < fD[1]) and (fK >= fD)) then + ClosePosition; + end; + + if not (IsBought or IsSold) then iBarrasEmPosicao := 0; +end; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt new file mode 100644 index 0000000..48813f8 --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt @@ -0,0 +1,168 @@ +{ + Robo: mar_PPV_04_v1_macd_momentum_saida_rapida + Grupo: POUCOSPONTOSVENCEDORES — #04 + Descricao: MACD — entrada no cruzamento da linha zero (momentum acelerando). + Saida imediata quando MACD cruza de volta (nao aguarda divergencia). + Filtro: histograma crescente durante 2 barras (confirmacao). + Break-even em 60 pts + trailing ATR apos isso. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── MACD ────────────────────────────────────────────────────── + PeriodoRapida(12); + PeriodoLenta(26); + PeriodoSinal(9); + // ── Filtro de confirmacao ───────────────────────────────────── + BarrasConfirmacaoHistograma(2); // histograma crescente por N barras + // ── ATR gestao ──────────────────────────────────────────────── + PeriodoATR(14); + FatorStopInicial(0.8); + FatorTrailing(0.5); + BreakEvenTrigger(60.0); + BreakEvenOffset(5.0); + // ── Filtro MME200 ───────────────────────────────────────────── + UsarFiltroMME200(true); + PeriodoMME200(200); + // ── Tempo ───────────────────────────────────────────────────── + MaxBarrasPosicao(5); + // ── Gestao de risco ─────────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + iBarrasEmPosicao : integer; + fMACD, fSinal, fHist : float; + fATR, fMME200 : float; + fPrecoEntrada, fStop, fMelhorPreco : float; + bBreakEvenAtivo : boolean; + bHistCrescenteAlta, bHistCrescenteBaixa : boolean; + bCruzouZeroAlta, bCruzouZeroBaixa : boolean; + iDirecaoPosicao : integer; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + bBreakEvenAtivo := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; bBreakEvenAtivo := false; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + fMACD := MACD(PeriodoRapida, PeriodoLenta, PeriodoSinal); + fSinal := MACDSinal(PeriodoRapida, PeriodoLenta, PeriodoSinal); + fHist := fMACD - fSinal; + fATR := ATR(PeriodoATR); + fMME200 := MediaExp(PeriodoMME200, Close); + + // Histograma crescendo por N barras + bHistCrescenteAlta := (fHist > 0) and (fHist > fHist[1]) and (fHist[1] > fHist[2]); + bHistCrescenteBaixa := (fHist < 0) and (fHist < fHist[1]) and (fHist[1] < fHist[2]); + + // Cruzamento do MACD sobre a linha zero + bCruzouZeroAlta := (fMACD[1] < 0) and (fMACD >= 0) and bHistCrescenteAlta; + bCruzouZeroBaixa := (fMACD[1] > 0) and (fMACD <= 0) and bHistCrescenteBaixa; + + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + if bCruzouZeroAlta and ((not UsarFiltroMME200) or (Close > fMME200)) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - (fATR * FatorStopInicial); + fMelhorPreco := Close; + iDirecaoPosicao := 1; + bBreakEvenAtivo := false; + end + else if bCruzouZeroBaixa and ((not UsarFiltroMME200) or (Close < fMME200)) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + (fATR * FatorStopInicial); + fMelhorPreco := Close; + iDirecaoPosicao := -1; + bBreakEvenAtivo := false; + end; + end; + + if IsBought then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close > fMelhorPreco then fMelhorPreco := Close; + + if (not bBreakEvenAtivo) and (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger) then + begin fStop := fPrecoEntrada + BreakEvenOffset; bBreakEvenAtivo := true; end; + + if bBreakEvenAtivo and ((fMelhorPreco - fATR * FatorTrailing) > fStop) then + fStop := fMelhorPreco - (fATR * FatorTrailing); + + // Saida: stop, tempo ou MACD cruza de volta abaixo de zero + if (Low <= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) + or ((fMACD[1] >= 0) and (fMACD < 0)) then + ClosePosition; + end; + + if IsSold then + begin + iBarrasEmPosicao := iBarrasEmPosicao + 1; + if Close < fMelhorPreco then fMelhorPreco := Close; + + if (not bBreakEvenAtivo) and (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger) then + begin fStop := fPrecoEntrada - BreakEvenOffset; bBreakEvenAtivo := true; end; + + if bBreakEvenAtivo and ((fMelhorPreco + fATR * FatorTrailing) < fStop) then + fStop := fMelhorPreco + (fATR * FatorTrailing); + + if (High >= fStop) or (iBarrasEmPosicao >= MaxBarrasPosicao) + or ((fMACD[1] <= 0) and (fMACD > 0)) then + ClosePosition; + end; + + if not (IsBought or IsSold) then iBarrasEmPosicao := 0; +end; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md b/automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md new file mode 100644 index 0000000..4267b1b --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md @@ -0,0 +1,91 @@ +# Grupo POUCOSPONTOSVENCEDORES (PPV) + +## Objetivo +Capturar **pontos vencedores rápidos** durante o dia e **não devolver ao mercado**. +A filosofia é: entrada precisa, lucro pequeno garantido, saída imediata na inversão. + +--- + +## Filosofia do Grupo + +| Característica | Abordagem PPV | +|----------------|---------------| +| Alvo por trade | 80–150 pontos (R$16–R$30) | +| Stop máximo | 60–100 pontos | +| Break-even | Ativar com 50–80 pts favoráveis | +| Trailing stop | Agressivo: 30–50 pts | +| Max trades/dia | 3 (evitar overtrading) | +| Taxa de acerto esperada | > 65% | +| Risco/retorno | 1:1 ou 1:1.5 (compensado pelo acerto alto) | + +> **Princípio:** vale mais ganhar menos se tiver quase certeza de não devolver. + +--- + +## Indicadores Explorados + +### 1. ATR (Average True Range) +- **Função:** mede volatilidade instantânea +- **Uso PPV:** definir alvo e stop dinamicamente (ex: alvo = 0.8×ATR, stop = 0.6×ATR) +- **Trailing:** atualizar stop a cada barra: `preço - 0.5×ATR` para compradas +- **Vantagem:** se adapta ao mercado (dias agitados = alvos maiores, dias calmos = menores) + +### 2. IFR/RSI +- **Uso PPV:** entrada em extremos (IFR<30 compra / IFR>70 venda), saída no IFR=50 (não esperar IFR extremo oposto) +- **Combinação:** IFR entry + trailing stop por ATR → não depende do IFR para sair + +### 3. Estocástico Rápido (5,3) +- **Uso PPV:** crossover rápido do %K e %D em zonas extremas (<20 / >80) +- **Vantagem:** mais sensível que IFR, captura movimentos de 2-3 candles +- **Saída:** sair quando %K cruza %D no sentido contrário (não esperar extremo) + +### 4. MACD (momentum) +- **Uso PPV:** entrada no cruzamento do MACD com signal em direção da tendência +- **Saída imediata:** fechar quando MACD cruza signal de volta (não aguardar divergência) +- **Filtro:** usar apenas quando histograma cresce (momentum acelerando) + +### 5. Parabolic SAR +- **Uso PPV:** trailing stop nativo — o SAR se aproxima do preço conforme trade avança +- **Característica:** força saída automática sem definir alvo fixo +- **Ideal para:** mercados em movimento direcional claro + +### 6. Bollinger Bands (squeeze) +- **Uso PPV:** entrada no rompimento das bandas após compressão (squeeze) +- **Saída:** fechar na banda oposta ou na banda média (não aguardar extremo reverso) +- **Vantagem:** captura movimentos explosivos com saída rápida + +### 7. Break-Even Automático +- **Não é indicador, é mecanismo:** ao atingir X pontos favoráveis, mover stop para entrada +- **PPV padrão:** break-even em 60 pts, trailing de 40 pts após isso +- **Resultado:** impede loss total, garante pelo menos zero no pior caso + +### 8. Price Action (corpo + sombra) +- **Uso PPV:** entrar apenas em candles de alta qualidade (corpo >60% do range) +- **Saída:** fechar em candle de reversão (sombra longa contra a posição) + +--- + +## Estrutura dos Robôs PPV + +``` +PPV_01 — ATR trailing agressivo (IFR entry) +PPV_02 — Break-even rápido + alvo ATR fixo +PPV_03 — Estocástico rápido + trailing +PPV_04 — MACD momentum + saída no cruzamento +PPV_05 — Parabolic SAR trailing nativo +PPV_06 — Bollinger squeeze saída rápida +PPV_07 — IFR extremo + alvo fixo pequeno +PPV_08 — Price action força + break-even imediato +``` + +--- + +## Diferença do PPV vs outros grupos + +| | IFR_RSI | CANDLE1 | MEDIAS | **PPV** | +|--|---------|---------|--------|--------| +| Duração do trade | 4–14 barras | 2–8 barras | 5–20 barras | **1–4 barras** | +| Alvo | IFR 50 | 1.5×range C1 | MME cruzamento | **Fixo pequeno** | +| Trailing | Não | Opcional | Não | **Sim — obrigatório** | +| Break-even | Não | Opcional | Não | **Sim — obrigatório** | +| Foco | Reversão | 1º candle | Tendência | **Não devolver** | diff --git a/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt b/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt deleted file mode 100644 index 331178d..0000000 --- a/automacao_backtests/PrimeiroCandle/catalogo_50_robos_primeiro_candle.txt +++ /dev/null @@ -1,238 +0,0 @@ -CATÁLOGO — 50 VARIAÇÕES DE ROBÔS: PRIMEIRO CANDLE DO DIA -Criado em: março/2026 - -Objetivo -- Listar 50 variacoes de estrategia baseadas na leitura do primeiro candle do dia (WIN). -- Fatores analisados: Gap, VWAP, Range do dia anterior, Price Action (corpo/pavio). -- Estrutura: contexto -> filtro -> gatilho -> entrada -> saída padrao. -- Este catalogo prioriza a fase de conceituação antes da implementação NTSL. - -Prefixo de nomenclatura dos scripts: mar_PC_NN_descricao.ntsl.txt -Timeframe padrão de referência: 15min ou 30min (primeiro candle = barra 1 do dia). - -================================================================================ -1) GAP: POSIÇÃO E TAMANHO (1-10) -================================================================================ - -1. Gap externo para cima + corpo >70% + volume >1.5x média - → Compra no rompimento da máxima do 1º candle no 2º candle. - → Saída: alvo = 1.5x range do 1º candle. Stop: mínima do 1º candle. - -2. Gap externo para baixo + corpo >70% + volume >1.5x médias - → Venda no rompimento da mínima do 1º candle no 2º candle. - → Saída: alvo = 1.5x range do 1º candle. Stop: máxima do 1º candle. - -3. Gap externo para cima + pavio superior >50% do range (exaustão) - → Venda reversão: entrada abaixo da mínima do 1º candle no 2º candle. - → Filtro: fechamento do 1º candle abaixo da abertura. - → Saída: alvo = fechamento anterior. Stop: máxima do 1º candle. - -4. Gap externo para baixo + pavio inferior >50% do range (exaustão) - → Compra reversão: entrada acima da máxima do 1º candle no 2º candle. - → Filtro: fechamento do 1º candle acima da abertura. - → Saída: alvo = fechamento anterior. Stop: mínima do 1º candle. - -5. Gap interno (abertura dentro do range anterior) + corpo forte para cima - → Compra no fechamento do 1º candle com stop na abertura do dia. - → Filtro: preço acima da VWAP diária. - -6. Gap interno + corpo forte para baixo - → Venda no fechamento do 1º candle com stop na abertura do dia. - → Filtro: preço abaixo da VWAP diária. - -7. Gap externo + candle doji (corpo <20% do range) + volume alto (absorção) - → Aguarda 2º candle para rompimento da máxima ou mínima do 1º. - → Operar direção do rompimento com stop no lado oposto. - -8. Gap para cima + abertura abaixo da máxima do dia anterior (gap parcial) - → Compra se 1º candle fecha acima da máxima do dia anterior. - → Stop: mínima do 1º candle. Alvo: 1.0x ATR. - -9. Gap para baixo + abertura acima da mínima do dia anterior (gap parcial) - → Venda se 1º candle fecha abaixo da mínima do dia anterior. - → Stop: máxima do 1º candle. Alvo: 1.0x ATR. - -10. Gap grande (>1.0x ATR) em qualquer direção + sem volume climático - → Não operar o 1º candle (risco de violino por gap falso). - → Aguardar 3º candle com confirmação de direção. Entrada após pullback. - -================================================================================ -2) VWAP: POSIÇÃO E ALINHAMENTO (11-20) -================================================================================ - -11. Abertura acima VWAP diária + acima VWAP semanal + corpo de alta >60% - → Compra rompimento máxima do 1º candle. Stop mínima. Filtro: sem pavio >40%. - -12. Abertura abaixo VWAP diária + abaixo VWAP semanal + corpo de baixa >60% - → Venda rompimento mínima do 1º candle. Stop máxima. Filtro: sem pavio >40%. - -13. Abertura abaixo VWAP diária + 1º candle fecha acima da VWAP - → Compra retorno: entrada na próxima barra. Sinal de inversão de polo. - → Stop: mínima do 1º candle. Alvo: máxima do dia anterior. - -14. Abertura acima VWAP diária + 1º candle fecha abaixo da VWAP - → Venda retorno: entrada na próxima barra. Sinal de inversão de polo. - → Stop: máxima do 1º candle. Alvo: mínima do dia anterior. - -15. 1º candle toca a VWAP diária e reverte (pavio sobre VWAP) - → Venda se o pavio toca VWAP e candle fecha abaixo. - → Filtro: VWAP como resistência (preço abaixo dela no dia anterior). - -16. 1º candle toca a VWAP diária e reverte para cima (pavio abaixo VWAP) - → Compra se o pavio toca VWAP e candle fecha acima. - → Filtro: VWAP como suporte (preço acima dela no dia anterior). - -17. Abertura exatamente na VWAP semanal (tolerância: 0.1% do preço) - → Aguardar direção do 1º candle. Compra se fechar acima, venda se fechar abaixo. - → Stop: abertura do dia. Alvo: 1.0x ATR. - -18. Abertura acima VWAP diária + abaixo VWAP semanal (conflito) - → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). - → Direção ditada pela VWAP semanal (resistência acima = viés vendedor). - -19. Abertura abaixo VWAP diária + acima VWAP semanal (conflito) - → Reduzir tamanho. Entrada apenas se 1º candle for força excepcional (corpo >80%). - → Direção ditada pela VWAP semanal (suporte abaixo = viés comprador). - -20. 1º candle entre VWAP diária e VWAP semanal + corpo pequeno (<30%) - → Não operar. Zona de indecisão institucional. Aguardar 3º candle. - -================================================================================ -3) RANGE DO DIA ANTERIOR: SUPORTE E RESISTÊNCIA (21-30) -================================================================================ - -21. Abertura acima máxima do dia anterior + corpo de alta >60% - → Compra no 2º candle. Máxima do dia anterior vira suporte. - → Stop: máxima do dia anterior. Alvo: 1.5x range do dia anterior. - -22. Abertura abaixo mínima do dia anterior + corpo de baixa >60% - → Venda no 2º candle. Mínima do dia anterior vira resistência. - → Stop: mínima do dia anterior. Alvo: 1.5x range do dia anterior. - -23. Abertura dentro do range + 1º candle rompe máxima do dia anterior - → Compra no fechamento acima. Stop: abertura do dia. - → Filtro: VWAP diária favorável (preço acima). - -24. Abertura dentro do range + 1º candle rompe mínima do dia anterior - → Venda no fechamento abaixo. Stop: abertura do dia. - → Filtro: VWAP diária favorável (preço abaixo). - -25. 1º candle testa máxima do dia anterior e fecha abaixo (rejeição) - → Venda no 2º candle. Stop: máxima do 1º candle. - → Filtro: volume baixo na tentativa de rompimento. - -26. 1º candle testa mínima do dia anterior e fecha acima (suporte) - → Compra no 2º candle. Stop: mínima do 1º candle. - → Filtro: volume baixo na tentativa de rompimento. - -27. Abertura no meio do range anterior + candle doji - → Não operar. Aguardar 3 candles para definição de range local. - -28. 1º candle inteiramente acima do range do dia anterior (gap + força) - → Compra apenas em pullback para a máxima do dia anterior. - → Stop: fechamento abaixo da máxima D-1. Alvo: 2.0x range D-1. - -29. 1º candle inteiramente abaixo do range do dia anterior (gap + fraqueza) - → Venda apenas em pullback para a mínima do dia anterior. - → Stop: fechamento acima da mínima D-1. Alvo: 2.0x range D-1. - -30. Abertura dentro do range + 1º candle fecha no centro (entre max e min D-1) - → Não operar no 1º candle. Marcar max/min D-1 como níveis do dia. - -================================================================================ -4) PRICE ACTION: CORPO, PAVIO E PADRÃO (31-40) -================================================================================ - -31. Candle Marubozu de alta (corpo >90%, sem pavios) - → Compra imediata no 2º candle. Stop: mínima do 1º candle. - → Filtro obrigatório: volume >2x média. - -32. Candle Marubozu de baixa (corpo >90%, sem pavios) - → Venda imediata no 2º candle. Stop: máxima do 1º candle. - → Filtro obrigatório: volume >2x média. - -33. Candle com pavio inferior longo >60% + fechamento na metade superior (martelo) - → Compra no 2º candle. Stop: mínima do pavio. Filtro: volume acima da média. - -34. Candle com pavio superior longo >60% + fechamento na metade inferior (estrela cadente) - → Venda no 2º candle. Stop: máxima do pavio. Filtro: volume acima da média. - -35. Corpo de alta entre 40%-70% + pavio superior e inferior equilibrados - → Compra moderada somente com alinhamento de VWAP + range D-1. - → Tamanho reduzido (0.5x padrão). - -36. Corpo de baixa entre 40%-70% + pavio superior e inferior equilibrados - → Venda moderada somente com alinhamento de VWAP + range D-1. - → Tamanho reduzido (0.5x padrão). - -37. Candle doji de alta (abertura = fechamento ± 0.1%) + volume baixo - → Não operar. Mercado sem decisão. - -38. Candle spinning top (corpo <25%, pavios longos equilibrados) + volume alto - → Aguardar rompimento. Compra acima da máxima, venda abaixo da mínima do 1º candle. - → Volume alto indica luta: rompimento deve ser rápido e limpo. - -39. Corpo de alta >60% com fechamento exatamente na máxima (força pura) - → Compra agressiva: entrada no fechamento do 1º candle. - → Stop: mínima do 1º candle. Filtro: gap interno + acima VWAP. - -40. Corpo de baixa >60% com fechamento exatamente na mínima (fraqueza pura) - → Venda agressiva: entrada no fechamento do 1º candle. - → Stop: máxima do 1º candle. Filtro: gap interno + abaixo VWAP. - -================================================================================ -5) COMBINAÇÕES E CONFLUÊNCIAS (41-50) -================================================================================ - -41. Gap externo para cima + acima VWAP semanal + corpo >70% + volume climático - → Compra de continuação no 2º candle. Stop: mínima do 1º candle. - → Maior confluência possível — maior tamanho permitido. - -42. Gap externo para baixo + abaixo VWAP semanal + corpo >70% + volume climático - → Venda de continuação no 2º candle. Stop: máxima do 1º candle. - → Maior confluência possível — maior tamanho permitido. - -43. Gap interno + acima VWAP + corpo de alta + rompimento máxima D-1 no fechamento - → 3 confirmações: compra no fechamento do 1º candle. Alvo: 1.5x ATR. - -44. Gap interno + abaixo VWAP + corpo de baixa + rompimento mínima D-1 no fechamento - → 3 confirmações: venda no fechamento do 1º candle. Alvo: 1.5x ATR. - -45. Gap exaustão para cima (>1.5x ATR) + rejeição da máxima D-1 + pavio longo - → Venda reversão com alvo no fechamento do dia anterior. - → Stop: máxima do 1º candle. Só operar se volume for climático. - -46. Gap exaustão para baixo (>1.5x ATR) + suporte na mínima D-1 + pavio longo - → Compra reversão com alvo no fechamento do dia anterior. - → Stop: mínima do 1º candle. Só operar se volume for climático. - -47. Conflito VWAP (entre diária e semanal) + candle pequeno + gap interno - → Não operar. Três indícios de indecisão simultâneos. - -48. Abertura na mínima D-1 + VWAP como resistência + corpo de baixa + gap para baixo - → Short de confirmação de colapso. Alvo: 2.0x range D-1 abaixo. - → Stop: fechamento acima da mínima D-1. - -49. Abertura na máxima D-1 + VWAP como suporte + corpo de alta + gap para cima - → Long de confirmação de breakout. Alvo: 2.0x range D-1 acima. - → Stop: fechamento abaixo da máxima D-1. - -50. Volume do 1º candle <0.5x média histórica dos primeiros candles - → Independente de qualquer outro fator: NÃO OPERAR o 1º candle. - → Volume baixo = liquidez ruim = risco de deslizamento sem vantagem estatística. - -================================================================================ -PRIORIDADE PARA IMPLEMENTAÇÃO -================================================================================ - -TIER 1 — Alta probabilidade / maior confluência (começar por aqui): - #41, #42, #43, #44, #31, #32, #21, #22, #1, #2 - -TIER 2 — Boa relação risco/retorno com confirmação adicional: - #13, #14, #23, #24, #28, #29, #33, #34, #39, #40 - -TIER 3 — Situações específicas / menor frequência: - #3, #4, #45, #46, #48, #49, #8, #9, #25, #26 - -DESCARTAR OU NO-TRADE (para filtrar antes de backtesting): - #10, #20, #27, #30, #37, #47, #50 diff --git a/plataformas/Profit.md b/automacao_backtests/STOPTOLERANTE/stoptolerante.md similarity index 100% rename from plataformas/Profit.md rename to automacao_backtests/STOPTOLERANTE/stoptolerante.md diff --git a/plataformas/ativos_mt5_selecao.md b/plataformas/ativos_mt5_selecao.md new file mode 100644 index 0000000..afa5603 --- /dev/null +++ b/plataformas/ativos_mt5_selecao.md @@ -0,0 +1,122 @@ +# Ativos para MT5 — Seleção e Justificativa + +> Critério de seleção: compatibilidade com as estratégias desenvolvidas +> (primeiro candle, IFR, PPV trailing, médias), liquidez adequada e acesso via Tickmill demo. + +--- + +## Os 5 Ativos Escolhidos + +| # | Símbolo MT5 | Ativo | Grupo compatível | Sessão principal (BRT) | +|---|-------------|-------|-----------------|----------------------| +| 1 | `US30` | Dow Jones Industrial | CANDLE1, PPV, IFR | 10h30–17h (horário de verão EUA) | +| 2 | `XAUUSD` | Ouro (Gold) | PPV, IFR, MEDIAS | 09h–18h (Londres + NY) | +| 3 | `NAS100` | Nasdaq 100 | CANDLE1, PPV, MEDIAS | 10h30–17h | +| 4 | `EURUSD` | Euro/Dólar | IFR, MEDIAS | 09h–12h (Londres) | +| 5 | `US500` | S&P 500 | CANDLE1, IFR, PPV | 10h30–17h | + +--- + +## Por que Cada Ativo + +### 1. US30 — Dow Jones (`US30`) +**Mais similar ao WIN em comportamento.** +- Opens forte às 09:30 EST com gap frequente → ideal para estratégias CANDLE1 +- Movimentos de 100-400 pontos equivalentes na abertura +- Alta liquidez, spread baixo na Tickmill (~2-3 pts) +- Responde bem a IFR em sobrevenda/sobrecompra nos extremos do dia +- **Recomendado para testar primeiro** — lógica mais próxima dos PC_XX + +### 2. XAUUSD — Ouro +**Melhor ativo para estratégias PPV (pegar pontos sem devolver).** +- Volatilidade alta e previsível: 15-30 pts por candle em 15min +- IFR funciona muito bem no Ouro (reversões respeitam extremos) +- Sessão de Londres (09h-12h BRT) ideal: movimento direcional forte +- ATR trailing funciona excelente — Ouro não volta abrupto em tendências +- **Melhor para PPV_01 e PPV_02** (alvo ATR + be agressivo) + +### 3. NAS100 — Nasdaq 100 +**Melhor momentum e força nos candles de abertura.** +- Tecnologia domina → candles de força clara (corpo > 70%) na abertura +- Setup de gap externo com corpo forte (equivalente PC_01/PC_02) funciona bem +- Mais volátil que US500 → alvos maiores, stops farther +- MME200 funciona como filtro de tendência de longo prazo (bull market tech) +- **Melhor para CANDLE1 e MEDIAS com MME200** + +### 4. EURUSD — Euro/Dólar +**Ideal para estratégias IFR e de médias moveis.** +- Mercado Forex 24h → IFR funciona em range estruturado +- Spreads ultra baixos na Tickmill (~0.1 pip) → menos impacto nos resultados +- Médias MME9/20/50/200 respeitadas claramente pela estrutura +- Sessão 09h-12h BRT (abertura Londres) = melhor janela para IFR_RSI +- **Melhor para IFR_01, IFR_02, IFR_03 e estratégias MEDIAS** + +### 5. US500 — S&P 500 +**Diversificação e benchmark do mercado americano.** +- Índice amplo → menos volátil que NAS100, mais estável que US30 +- Excelente para testar robustez das estratégias (mais "médio" do mercado) +- Combinação CANDLE1 + IFR funciona com taxa de acerto consistente +- PPV com alvo fixo 80-100 pts funciona bem no US500 +- **Melhor para validar robustez antes de aplicar nos outros** + +--- + +## Horários de Operação por Ativo (Horário Brasília) + +``` + 06h 07h 08h 09h 10h 11h 12h 13h 14h 15h 16h 17h 18h +XAUUSD (Ouro) ──────────────────[===LONDRES===]========[========NY========]────────────── +EURUSD (Forex) ──────────────────[===LONDRES===]──────────────────────────────────────── +US30/NAS100/US500 ─────────────────────────────────────────[==========NY==========]───────── +``` + +**Janelas recomendadas para operar:** +| Ativo | Melhor janela | Por quê | +|-------|--------------|---------| +| US30, NAS100, US500 | 10h30–12h (BRT) | 1º candle de abertura NY | +| XAUUSD | 09h–11h (BRT) | Abertura Londres + pré-NY | +| EURUSD | 09h–11h (BRT) | Volatilidade máxima Londres | + +--- + +## Correspondência com os Grupos de Robôs + +| Grupo | Melhor ativo | 2º melhor | +|-------|-------------|-----------| +| CANDLE1 (PC_XX) | US30 | NAS100 | +| IFR_RSI | EURUSD | XAUUSD | +| PPV (PPV_XX) | XAUUSD | US30 | +| MEDIAS | NAS100 | EURUSD | +| POUCOSPONTOSVENCEDORES | XAUUSD | US500 | + +--- + +## Parâmetros Mínimos por Ativo (Tickmill, 1 lote mínimo = 0.01) + +| Ativo | Valor por pip/pt (0.01 lote) | Stop sugerido | Alvo sugerido | +|-------|------------------------------|---------------|---------------| +| US30 | ~$0.01/pt | 40-80 pts | 80-150 pts | +| XAUUSD | ~$0.01/pip | 60-100 pips | 80-150 pips | +| NAS100 | ~$0.01/pt | 50-100 pts | 100-200 pts | +| EURUSD | ~$0.10/pip | 20-40 pips | 30-60 pips | +| US500 | ~$0.01/pt | 30-60 pts | 60-100 pts | + +> Com **USD 5.000** na conta demo, operar sempre com **0.01 lote** (tamanho mínimo) +> para ter resultado realista sem risco de margem. + +--- + +## Arquivo de Teste + +Para rodar o primeiro backtest, use o EA de exemplo: +`plataformas/mql5/mar_MT5_PPV01_exemplo.mq5` + +**Configuração sugerida para o primeiro backtest:** +``` +Ativo: XAUUSD +Timeframe: M15 +Capital: 5000 USD +Lote: 0.01 +Período: 01.01.2022 a 07.03.2026 +Modelo: 1 minute OHLC (rápido para validar configuração) +``` diff --git a/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md b/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md new file mode 100644 index 0000000..52348c7 --- /dev/null +++ b/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md @@ -0,0 +1,161 @@ +# Como Rodar o Backtest — mar_MT5_PPV01_exemplo + +> Passo a passo completo: do arquivo `.mq5` ao resultado no Strategy Tester. + +--- + +## Passo 1 — Abrir o MetaEditor + +1. Acesse: https://web.metatrader.app/terminal?mode=demo&lang=pt +2. Clique em **"MetaEditor"** (botão no topo) ou pressione `F4` +3. O MetaEditor abre em nova aba + +--- + +## Passo 2 — Criar o arquivo do EA + +1. No MetaEditor: **"File → New"** ou `Ctrl+N` +2. Selecione: **"Expert Advisor (template)"** +3. Nome do arquivo: `mar_MT5_PPV01_exemplo` +4. Clique em **"Next → Finish"** +5. O editor abre com um template básico — **apague tudo** +6. Abra o arquivo: `plataformas/mql5/mar_MT5_PPV01_exemplo.mq5` +7. Copie todo o conteúdo (`Ctrl+A`, `Ctrl+C`) +8. Cole no MetaEditor (`Ctrl+V`) + +--- + +## Passo 3 — Compilar + +1. Pressione `F7` ou clique em **"Compile"** +2. Painel inferior deve mostrar: `0 errors, 0 warnings` +3. Se houver erro: + +| Erro comum | Causa | Solução | +|-----------|-------|---------| +| `'iRSI' - function not allowed` | Versão antiga do MT5 | Usar MT5 versão 2800+ | +| `'CTrade' - undefined` | Include não encontrado | Verificar `#include ` | +| `'ORDER_FILLING_IOC'` | Corretora não suporta | Trocar para `ORDER_FILLING_FOK` | + +--- + +## Passo 4 — Configurar o Strategy Tester + +1. No terminal principal: pressione `Ctrl+R` ou menu **"View → Strategy Tester"** +2. Configure: + +``` +Expert Advisor: mar_MT5_PPV01_exemplo +Symbol: XAUUSD (primeiro teste — Ouro) +Timeframe: M15 +Model: 1 minute OHLC (mais rápido para validar) +Date from: 2022.01.01 +Date to: 2026.03.07 +Deposit: 5000 +Currency: USD +Leverage: 1:100 +``` + +3. Clique no ícone de engrenagem ⚙️ ao lado do EA para ver/ajustar os parâmetros: + +``` +PeriodoIFR: 9 +IFRExtremoCompra: 30 +IFREtornoCompra: 35 +IFRExtremoVenda: 70 +IFREtornoVenda: 65 +PeriodoATR: 14 +FatorStopInicial: 0.8 +FatorAlvo: 1.2 +FatorTrailing: 0.5 +BreakEvenTrigger: 50.0 +BreakEvenOffset: 5.0 +UsarFiltroMME200: true +UsarGestaoRisco: false ← PRIMEIRO TESTE SEM GESTAO DE RISCO +VolumeLote: 0.01 +MaxBarrasPosicao: 4 +``` + +--- + +## Passo 5 — Rodar o backtest + +1. Clique em **"Start"** (▶) +2. Acompanhe a barra de progresso +3. Tempo estimado (modelo OHLC 1min): + - XAUUSD 4 anos M15: ~2-5 minutos + - Se demorar muito: trocar para `M30` ou reduzir período para 2 anos + +--- + +## Passo 6 — Analisar os Resultados + +### Aba "Graph" — Equity Curve +- Linha verde subindo = robô com resultado positivo +- Linha azul = drawdown (quanto caiu do pico) +- **O que buscar:** linha verde com inclinação constante, sem quedas bruscas + +### Aba "Results" — Lista de Trades +- Cada linha = 1 operação +- Colunas importantes: Time, Type, Price, S/L, T/P, Profit +- **Filtro útil:** clicar em "Profit" para ordenar — ver os piores trades + +### Aba "Report" — Métricas + +| Campo | onde está | Meta | +|-------|-----------|------| +| Profit Factor | Seção "Total" | > 1.3 | +| Expected Payoff | Seção "Total" | > 0 | +| Maximal Drawdown | Seção "Drawdown" | < 20% | +| % Profitable | Seção "Trades" | > 55% | +| Total Trades | Seção "Trades" | > 100 | +| Sharpe Ratio | Seção "Total" | > 0.5 | + +--- + +## Passo 7 — Segundo Teste COM Gestão de Risco + +Após confirmar que o robô opera (tem trades), rode novamente com: +``` +UsarGestaoRisco: true +UsarHardLock: true +MaxStopsConsecutivos: 2 +RiscoDiaPct: 1.5 +``` + +Compare os resultados: +- **Sem gestão:** mostra o potencial bruto da estratégia +- **Com gestão:** mostra o resultado real operacional + +--- + +## Passo 8 — Testar nos Outros 4 Ativos + +Após aprovar em XAUUSD, repetir o Passo 4-6 para: + +| Ativo | Alterar apenas | +|-------|---------------| +| `US30` | Symbol = US30 | +| `NAS100` | Symbol = NAS100, BreakEvenTrigger = 80 | +| `EURUSD` | Symbol = EURUSD, FatorAlvo = 1.5 | +| `US500` | Symbol = US500 | + +--- + +## Passo 9 — Exportar o Relatório + +1. Na aba **"Report"**: clique com botão direito → **"Save as Report"** +2. Salvar como HTML na pasta: `automacao_backtests/POUCOSPONTOSVENCEDORES/resultados/` +3. Nome sugerido: `PPV01_XAUUSD_M15_4anos_semgestao.html` + +--- + +## Checklist rápida antes de colocar no simulador + +- [ ] Backtest 4+ anos com > 100 operações +- [ ] Profit Factor > 1.3 +- [ ] Drawdown < 25% +- [ ] Testado sem e com gestão de risco +- [ ] Testado em pelo menos 2 ativos diferentes +- [ ] Resultado "com gestão" é positivo +- [ ] Equity curve não tem períodos de queda prolongada (> 3 meses) diff --git a/plataformas/Metatrader.md b/plataformas/mql5/Metatrader.md similarity index 100% rename from plataformas/Metatrader.md rename to plataformas/mql5/Metatrader.md diff --git a/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 b/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 new file mode 100644 index 0000000..410fdc5 --- /dev/null +++ b/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 @@ -0,0 +1,395 @@ +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ + +#property copyright "Wesley — RepoRobos" +#property version "1.00" +#property strict + +#include + +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + return INIT_SUCCEEDED; +} + +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); + IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); +} + +//+------------------------------------------------------------------+ +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | +//+------------------------------------------------------------------+ +bool TemPosicao() +{ + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); +} + +bool EstaComprado() +{ + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; +} + +bool EstaVendido() +{ + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; +} + +//+------------------------------------------------------------------+ +//| Funcao principal — rodada a cada tick | +//+------------------------------------------------------------------+ +void OnTick() +{ + // ── SÓ PROCESSA EM NOVA BARRA ──────────────────────────────── + datetime dtBarAtual = iTime(_Symbol, PERIOD_CURRENT, 0); + if(dtBarAtual == dtUltimoBar) return; + dtUltimoBar = dtBarAtual; + + // ── BUFFERS DOS INDICADORES ─────────────────────────────────── + double arrIFR[3], arrATR[2], arrMME200[2]; + if(CopyBuffer(hIFR, 0, 0, 3, arrIFR) < 3) return; + if(CopyBuffer(hATR, 0, 0, 2, arrATR) < 2) return; + if(CopyBuffer(hMME200, 0, 0, 2, arrMME200) < 2) return; + + // Barra [1] = barra fechada mais recente (usada para sinais) + double fIFR0 = arrIFR[1]; // barra atual fechada + double fIFR1 = arrIFR[2]; // barra anterior + double fATRval = arrATR[1]; + double fMME200v = arrMME200[1]; + + // Precos da barra fechada + double fOpen1 = iOpen (_Symbol, PERIOD_CURRENT, 1); + double fHigh1 = iHigh (_Symbol, PERIOD_CURRENT, 1); + double fLow1 = iLow (_Symbol, PERIOD_CURRENT, 1); + double fClose1 = iClose(_Symbol, PERIOD_CURRENT, 1); + + // ── NOVO DIA: RESET ─────────────────────────────────────────── + MqlDateTime dt; TimeToStruct(dtBarAtual, dt); + MqlDateTime dtAnterior; TimeToStruct(dtUltimoDia, dtAnterior); + + if(dt.day != dtAnterior.day) + { + dtUltimoDia = dtBarAtual; + fResultadoDia = 0; + bBloqueioDia = false; + + // Reset semanal na segunda-feira + if(dt.day_of_week == 1) + { + fResultadoSemana = 0; + bBloqueioSemana = false; + iStopsConsec = 0; + } + Print("[DIA] Novo dia — resultado resetado."); + } + + // ── DETECTA FECHAMENTO DE POSICAO ──────────────────────────── + if(UsarGestaoRisco) + { + if(iDirecaoPosicao == 1 && !EstaComprado() && fPrecoEntrada > 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } + + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else + { + iBarrasPosicao = 0; + } + + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); + + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "PPV01_COMPRA")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "PPV01_VENDA")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); + } +} +//+------------------------------------------------------------------+ diff --git a/plataformas/Profit_Guia_Completo.md b/plataformas/profit/Profit_Guia_Completo.md similarity index 100% rename from plataformas/Profit_Guia_Completo.md rename to plataformas/profit/Profit_Guia_Completo.md From 547fb13ad8648de75959d385b2d1d1cd883ed81f Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:04:32 -0300 Subject: [PATCH 37/63] Estrutura completa: STOPTOLERANTE (4 robos), 6 grupos novos, MAPA_GRUPOS, drawdownzero + 50mais1 docs --- automacao_backtests/50mais1/50mais1.md | 73 ++++++++ .../50mais1/codigo_fonte/.gitkeep | 0 automacao_backtests/50mais1/mql5/.gitkeep | 0 automacao_backtests/BREAKOUT/breakout.md | 61 +++++++ .../BREAKOUT/codigo_fonte/.gitkeep | 0 automacao_backtests/BREAKOUT/mql5/.gitkeep | 0 automacao_backtests/CANDLE1/mql5/.gitkeep | 0 .../DRAWDOWNZERO/codigo_fonte/.gitkeep | 0 .../DRAWDOWNZERO/drawdownzero.md | 72 ++++++++ .../DRAWDOWNZERO/mql5/.gitkeep | 0 .../HORARIO_ESPECIFICO/codigo_fonte/.gitkeep | 0 .../HORARIO_ESPECIFICO/horario_especifico.md | 63 +++++++ .../HORARIO_ESPECIFICO/mql5/.gitkeep | 0 automacao_backtests/IFR_RSI/mql5/.gitkeep | 0 automacao_backtests/MAPA_GRUPOS.md | 166 ++++++++++++++++++ .../MEDIAS/codigo_fonte/.gitkeep | 0 automacao_backtests/MEDIAS/mql5/.gitkeep | 0 .../POUCOSPONTOSVENCEDORES/mql5/.gitkeep | 0 .../REVERSAO_MEDIA/codigo_fonte/.gitkeep | 0 .../REVERSAO_MEDIA/mql5/.gitkeep | 0 .../REVERSAO_MEDIA/reversao_media.md | 60 +++++++ .../SCALPING/codigo_fonte/.gitkeep | 0 automacao_backtests/SCALPING/mql5/.gitkeep | 0 automacao_backtests/SCALPING/scalping.md | 55 ++++++ ..._01_v1_ifr_mme200_stop_estrutural.ntsl.txt | 116 ++++++++++++ ...T_02_v1_divergencia_ifr_stop_pivo.ntsl.txt | 122 +++++++++++++ ...ST_03_v1_candle_forca_stop_atr15x.ntsl.txt | 126 +++++++++++++ ...r_ST_04_v1_confluencia_maxima_rr3.ntsl.txt | 135 ++++++++++++++ .../STOPTOLERANTE/mql5/.gitkeep | 0 .../STOPTOLERANTE/stoptolerante.md | 84 +++++++++ .../TENDENCIA_SEGUIR/codigo_fonte/.gitkeep | 0 .../TENDENCIA_SEGUIR/mql5/.gitkeep | 0 .../TENDENCIA_SEGUIR/tendencia_seguir.md | 61 +++++++ .../VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep | 0 .../VWAP_INSTITUCIONAL/mql5/.gitkeep | 0 .../VWAP_INSTITUCIONAL/vwap_institucional.md | 58 ++++++ 36 files changed, 1252 insertions(+) create mode 100644 automacao_backtests/50mais1/50mais1.md create mode 100644 automacao_backtests/50mais1/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/50mais1/mql5/.gitkeep create mode 100644 automacao_backtests/BREAKOUT/breakout.md create mode 100644 automacao_backtests/BREAKOUT/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/BREAKOUT/mql5/.gitkeep create mode 100644 automacao_backtests/CANDLE1/mql5/.gitkeep create mode 100644 automacao_backtests/DRAWDOWNZERO/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/DRAWDOWNZERO/drawdownzero.md create mode 100644 automacao_backtests/DRAWDOWNZERO/mql5/.gitkeep create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/mql5/.gitkeep create mode 100644 automacao_backtests/IFR_RSI/mql5/.gitkeep create mode 100644 automacao_backtests/MAPA_GRUPOS.md create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/MEDIAS/mql5/.gitkeep create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/mql5/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/reversao_media.md create mode 100644 automacao_backtests/SCALPING/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/SCALPING/mql5/.gitkeep create mode 100644 automacao_backtests/SCALPING/scalping.md create mode 100644 automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt create mode 100644 automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt create mode 100644 automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt create mode 100644 automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt create mode 100644 automacao_backtests/STOPTOLERANTE/mql5/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/mql5/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/mql5/.gitkeep create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md diff --git a/automacao_backtests/50mais1/50mais1.md b/automacao_backtests/50mais1/50mais1.md new file mode 100644 index 0000000..f208687 --- /dev/null +++ b/automacao_backtests/50mais1/50mais1.md @@ -0,0 +1,73 @@ +# Grupo 50MAIS1 (WR) + +## Objetivo +Robôs focados em **taxa de acerto acima de 50%** — simplesmente garantir que o número de vitórias supera o de derrotas, mantendo saldo positivo mesmo com R:R modesto. + +A lógica: se você acerta 55%+ das vezes com R:R próximo de 1:1, o saldo é positivo por matemática pura. + +--- + +## Filosofia do Grupo + +| Característica | Grupos de alta R:R | **50MAIS1** | +|----------------|--------------------|------------| +| Foco principal | Alvo grande (R:R 1:2+) | **Acertar mais vezes** | +| R:R aceito | ≥ 1:2 | 1:1 a 1:1.5 (suficiente) | +| Taxa de acerto | 50-60% | **> 55% (meta: 65%+)** | +| Volume de operações | Baixo | Médio-alto | +| Stop | Estrutural | Fixo ou ATR conservador | +| Complexidade | Alta confluência | Mais simples (menos filtros) | + +> **Matemática da sobrevivência:** +> 55% de acerto com R:R 1:1 → Profit Factor = 1.22 +> 60% de acerto com R:R 1:1 → Profit Factor = 1.50 +> 65% de acerto com R:R 1:1 → Profit Factor = 1.86 + +--- + +## Estratégias Mais Eficientes para Alto % de Acerto + +1. **Entrar contra extremo do IFR** (ZS/SO) → mercado "esticado" tende a voltar +2. **Operar com a tendência maior** (MME200) → probabilidade natural a favor +3. **Pullback em tendência** → após recuo, retoma a direção principal +4. **Candle de reversão** em suporte/resistência conhecido +5. **Breakout confirmado** (não antecipado) → aguardar fechamento do candle + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **IFR(9)** | Extremo + retorno (gatilho principal) | +| **MME9 / MME21 / MME200** | Direção e contexto | +| **Estocástico(5,3)** | Confirmação de reversão de curto prazo | +| **Volume** | Filtra entradas falsas | +| **ATR(14)** | Stop conservador (× 1.0) | + +--- + +## Estrutura dos Robôs WR + +``` +WR_01 — IFR extremo + MME200 + alvo 1:1 fixo (mais validações = alta %) +WR_02 — Estocástico crossover + tendência MME21 + stop ATR × 1.0 +WR_03 — Pullback em MME20 (toque + rejeição) + alvo 1:1.2 +WR_04 — IFR + MACD confirmação + alvo conservador (60-80 pts) +``` + +--- + +## Critério de Aprovação no Backtest + +| Métrica | Mínimo | Ideal | +|---------|--------|-------| +| Taxa de acerto | > 55% | > 62% | +| Profit Factor | > 1.3 | > 1.7 | +| Operações totais | > 120 | > 200 | +| R:R médio | ≥ 1:1 | ≥ 1:1.3 | +| Drawdown máximo | < 20% | < 12% | + +> **Nota:** este grupo tolera Profit Factor mais baixo desde que a taxa de acerto +> seja consistentemente alta. Com 65%+ acerto é possível sustentar um sistema +> mesmo com R:R 1:1. diff --git a/automacao_backtests/50mais1/codigo_fonte/.gitkeep b/automacao_backtests/50mais1/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/50mais1/mql5/.gitkeep b/automacao_backtests/50mais1/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/BREAKOUT/breakout.md b/automacao_backtests/BREAKOUT/breakout.md new file mode 100644 index 0000000..b77356b --- /dev/null +++ b/automacao_backtests/BREAKOUT/breakout.md @@ -0,0 +1,61 @@ +# Grupo BREAKOUT (BK) + +## Por que é Obrigatório Conhecer +Breakout (rompimento) é um dos setups mais clássicos e confiáveis do mercado. Quando o preço rompe um nível importante — máxima do dia anterior, topo de um range, resistência histórica — ele tende a se mover com força na direção do rompimento. + +No WIN, os rompimentos de abertura e da máxima/mínima da primeira hora são eventos de alta liquidez que institucionais usam ativamente. + +--- + +## Tipos de Breakout no WIN + +| Tipo | Descrição | Momento | +|------|-----------|---------| +| **Abertura** | Preço rompe máx/mín do 1º candle de 5min | 09:10–09:30 | +| **Dia anterior** | Rompe máx/mín de D-1 | Qualquer hora | +| **Range de consolidação** | Rompimento de LTB/LTA | Após 30+ min de lateral | +| **VWAP breakout** | Cruza e fica acima/abaixo da VWAP | Alta liquidez | +| **Bollinger squeeze** | Compressa + expansão explosiva | Antes de notícias ou abertura | + +--- + +## Filosofia + +| Característica | Valor | +|----------------|-------| +| Timeframe | 5min / 15min / 30min | +| Alvo | 1x–2x o tamanho do range anterior | +| Stop | Abaixo/acima do nível rompido | +| Filtro obrigatório | **Volume confirmando** + fechamento do candle acima do nível | +| Erro clássico | Entrar antes do fechamento (fakeout) | + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **Máx/Mín D-1** | Nível de referência principal | +| **Bollinger Bands(20,2)** | Detectar squeeze + rompimento | +| **Volume** | Confirmar que o rompimento tem liquidez | +| **ATR(14)** | Projetar alvo após o rompimento | +| **MME200** | Filtro de tendência (só rompe a favor) | + +--- + +## Estrutura dos Robôs BK + +``` +BK_01 — Breakout da máxima/mínima de D-1 + volume + MME200 (Profit .ntsl) +BK_02 — Bollin squeeze rompimento + alvo ATR × 2 (Profit .ntsl) +BK_03 — Range abertura (9:00–9:30) + rompimento candle 15min (Profit .ntsl) +BK_04 — MT5: Breakout diário XAUUSD / US30 (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +BREAKOUT/ +├── breakout.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` diff --git a/automacao_backtests/BREAKOUT/codigo_fonte/.gitkeep b/automacao_backtests/BREAKOUT/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/BREAKOUT/mql5/.gitkeep b/automacao_backtests/BREAKOUT/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/CANDLE1/mql5/.gitkeep b/automacao_backtests/CANDLE1/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/DRAWDOWNZERO/codigo_fonte/.gitkeep b/automacao_backtests/DRAWDOWNZERO/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/DRAWDOWNZERO/drawdownzero.md b/automacao_backtests/DRAWDOWNZERO/drawdownzero.md new file mode 100644 index 0000000..9d5b177 --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/drawdownzero.md @@ -0,0 +1,72 @@ +# Grupo DRAWDOWNZERO (DZ) + +## Objetivo +Robôs projetados para manter o **drawdown próximo de zero** — a curva de capital deve subir de forma suave, sem quedas expressivas, mesmo que o lucro total seja mais modesto. + +A premissa é: **capital protegido = capital disponível amanhã**. Melhor ganhar pouco e consistente do que ganhar muito e devolver tudo. + +--- + +## Filosofia do Grupo + +| Característica | Grupos comuns | **DRAWDOWNZERO** | +|----------------|--------------|-----------------| +| Prioridade | Lucro total | **Preservação de capital** | +| Número de operações | Alto | Baixo (seletividade máxima) | +| Stop | Por estrutura | Apertado — sai cedo se errar | +| Alvo | R:R ≥ 1:2 | Pequeno mas certo (R:R 1:1.5 aceitável) | +| Break-even | Condicional | **Obrigatório** — ativa sempre que possível | +| Trailing | Variável | Agressivo — não devolve nada | +| Encerramento diário | Por HardLock | Fecha tudo ao 1º stop no dia | + +> **Regra de ouro:** ao primeiro sinal de reversão contra a posição, sai. +> Não "aguenta" o trade — preservação é mais importante que alvo. + +--- + +## Critérios de Parada Imediata (além do HardLock padrão) + +``` +1. HardLock: 1 stop no dia → encerra o dia (MaxStopsConsecutivos = 1) +2. Se o preço voltou para o preço de entrada → break-even imediato +3. Alvo reduzido: metade do stop como alvo mínimo +4. Só opera em janelas de alta liquidez: 09:05–10:30 e 14:00–16:00 +``` + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **IFR(9)** | Gatilho de entrada (extremo + retorno) | +| **MME200** | Filtro — só opera a favor da tendência maior | +| **ATR(14)** | Dimensiona stop (curto: ATR × 0.8) | +| **Volume** | Filtra entradas sem liquidez | +| **Hora de abertura** | Janela de operação permitida | + +--- + +## Estrutura dos Robôs DZ + +``` +DZ_01 — BE imediato (40 pts) + trailing 25 pts + 1 stop fecha o dia +DZ_02 — IFR extremo + alvo fixo conservador (60 pts) + stop 40 pts +DZ_03 — Candle de força + break-even instantâneo após entrada + trailing +DZ_04 — Horário restrito (9:05–10:30) + IFR + MME200 + fechamento automático +``` + +--- + +## Critério de Aprovação no Backtest + +| Métrica | Mínimo | Ideal | +|---------|--------|-------| +| Drawdown máximo | < 8% | < 4% | +| Profit Factor | > 1.3 | > 1.8 | +| Taxa de acerto | > 60% | > 70% | +| Curva de capital | Monotônica crescente | Sem vales profundos | +| Sequência máx. de stops | ≤ 2 | 1 | + +> **Nota:** para este grupo, drawdown máximo < 8% é inegociável. +> Um resultado com PF=2.0 mas drawdown de 20% **não passa**. diff --git a/automacao_backtests/DRAWDOWNZERO/mql5/.gitkeep b/automacao_backtests/DRAWDOWNZERO/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/HORARIO_ESPECIFICO/codigo_fonte/.gitkeep b/automacao_backtests/HORARIO_ESPECIFICO/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md b/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md new file mode 100644 index 0000000..01e3859 --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md @@ -0,0 +1,63 @@ +# Grupo HORARIO_ESPECIFICO (HE) + +## Por que é Obrigatório Conhecer +O mercado não é aleatório ao longo do dia — existem **janelas de tempo com comportamentos estatisticamente diferentes**. O WIN tem padrões de horário bem documentados que traders profissionais conhecem de memória. + +Ignorar horário é operar no escuro. Conhecer os horários é uma vantagem estrutural que não depende de nenhum indicador técnico. + +--- + +## Mapa de Horários do WIN (B3) + +| Horário | Evento | Comportamento | +|---------|--------|---------------| +| **09:00–09:15** | Abertura / leilão | Alta volatilidade, gaps, fakeouts — risco alto | +| **09:15–10:30** | 1ª janela de tendência | Tendência do dia se define — melhor janela | +| **10:30–11:30** | Acomodação | Lateralização frequente — evitar | +| **11:30–12:00** | Pré-almoço | Movimento fraco, armadilhas comuns | +| **12:00–13:30** | Almoço B3 | Volume baixo — não operar (slippage) | +| **13:30–14:00** | Reabertura após almoço | Pode ter movimento seco | +| **14:00–16:00** | 2ª janela de tendência | Nova tendência do tarde — segunda melhor janela | +| **16:00–16:30** | Ajuste final | Alta volatilidade, rolagem — evitar ou stop manual | +| **16:30–17:00** | Fechamento | Volume misto — sem automação | + +--- + +## Estratégias de Horário Específico + +| Setup | Descrição | +|-------|-----------| +| **Toque de Abertura** (9:15) | Entra na direção do 1º candle de 5min após estabilização | +| **Máx/Mín das 2 primeiras horas** | Nível de referência para breakout após 11h | +| **Retomada do tarde** (14:00) | Trend following na 2ª janela | +| **Horário de Notícia** | Evitar 15 min antes e depois de notícia macro | + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **Hora do Candle** | Filtro de janela de operação | +| **Máx/Mín das primeiras 2h** | Nível de referência gerado automaticamente | +| **IFR** | Sinal dentro da janela permitida | +| **Volume** | Confirma liquidez na janela | + +--- + +## Estrutura dos Robôs HE + +``` +HE_01 — Janela 09:15–10:30 | IFR + MME200 | fecha às 10:30 (Profit .ntsl) +HE_02 — Janela 14:00–16:00 | IFR + trending | fecha às 16:00 (Profit .ntsl) +HE_03 — Máx/Mín das 2 primeiras horas + breakout após 11h (Profit .ntsl) +HE_04 — MT5: London Session / NY Overlap (9h–12h UTC) (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +HORARIO_ESPECIFICO/ +├── horario_especifico.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` diff --git a/automacao_backtests/HORARIO_ESPECIFICO/mql5/.gitkeep b/automacao_backtests/HORARIO_ESPECIFICO/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/IFR_RSI/mql5/.gitkeep b/automacao_backtests/IFR_RSI/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/MAPA_GRUPOS.md b/automacao_backtests/MAPA_GRUPOS.md new file mode 100644 index 0000000..5cfc596 --- /dev/null +++ b/automacao_backtests/MAPA_GRUPOS.md @@ -0,0 +1,166 @@ +# Mapa de Grupos de Robôs — RepoRobos + +> Última atualização: março/2026 +> Branch ativa: `marco_Tradeoperador` +> Capital Profit: R$10.000 | Capital MT5: USD$5.000 + +--- + +## Convenção de Arquivos + +| Extensão | Plataforma | Mercado | +|----------|-----------|---------| +| `.ntsl.txt` | **Neologica Profit** | B3 — WIN (minicontrato de índice) | +| `.mq5` | **MetaTrader 5** | Internacional — XAUUSD, NAS100, US30, EURUSD | + +Cada grupo possui: +``` +GRUPO/ +├── grupo.md → Documentação, filosofia, critérios +├── codigo_fonte/ → Robôs Profit (.ntsl.txt) +└── mql5/ → Robôs MetaTrader (.mq5) +``` + +--- + +## Grupos Ativos (13 no total) + +### Grupos Já Desenvolvidos + +| Grupo | Pasta | Robôs NTSL | Robôs MQL5 | Status | +|-------|-------|------------|------------|--------| +| Primeiro Candle | `CANDLE1/` | 33 (PC_01–PC_33) | — | ✅ Completo | +| IFR/RSI | `IFR_RSI/` | 3 feitos / 14 planejados | — | 🔄 Em progresso | +| Médias | `MEDIAS/` | 0 / 18 planejados | — | ⬜ Pendente | +| Stop Tolerante | `STOPTOLERANTE/` | 4 (ST_01–ST_04) | — | ✅ Completo | +| Poucos Pontos Vencedores | `POUCOSPONTOSVENCEDORES/` | 4 (PPV_01–PPV_04) | — | 🔄 Faltam 05–08 | +| Drawdown Zero | `DRAWDOWNZERO/` | 0 / 4 planejados | — | ⬜ Pendente | +| 50Mais1 | `50mais1/` | 0 / 4 planejados | — | ⬜ Pendente | + +### Grupos Obrigatórios — Pasta Criada, Robôs Pendentes + +| Grupo | Pasta | Conceito Central | Prioridade | +|-------|-------|-----------------|------------| +| Scalping | `SCALPING/` | Capturar 10–30 pts, alta frequência, 1–2min | Alta | +| Breakout | `BREAKOUT/` | Rompimento de range/nível com volume | Alta | +| VWAP Institucional | `VWAP_INSTITUCIONAL/` | Operar com referência do fluxo institucional | Alta | +| Tendência Seguir | `TENDENCIA_SEGUIR/` | Trend following puro — sem alvo, trailing ATR | Média | +| Reversão à Média | `REVERSAO_MEDIA/` | Bollinger/VWAP extremo → retorno à média | Média | +| Horário Específico | `HORARIO_ESPECIFICO/` | Janelas estatísticas do WIN + sessões MT5 | Alta | + +--- + +## Por que Esses 6 Grupos São Obrigatórios + +``` +SCALPING → Entender o tick a tick. Base de tudo. +BREAKOUT → Rompimentos com volume são as melhores R:R do WIN +VWAP_INSTITUCIONAL → Sem VWAP você não vê onde o dinheiro grande está +TENDENCIA_SEGUIR → Aprender a "sentar no trade" e deixar rodar +REVERSAO_MEDIA → WIN é cíclico — reversão funciona em 60% do tempo +HORARIO_ESPECIFICO → Horário define liquidez, slippage e probabilidade +``` + +--- + +## Árvore Completa de Pastas + +``` +automacao_backtests/ +│ +├── CANDLE1/ +│ ├── codigo_fonte/ → 33 robôs (mar_PC_01 a mar_PC_33) ✅ +│ └── mql5/ → (pendente) +│ +├── IFR_RSI/ +│ ├── codigo_fonte/ → 3 robôs (mar_IFR_01-03) + 10 antigos 🔄 +│ └── mql5/ → (pendente) +│ +├── MEDIAS/ +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── POUCOSPONTOSVENCEDORES/ +│ ├── codigo_fonte/ → 4 robôs (mar_PPV_01-04) 🔄 +│ └── mql5/ → (pendente) +│ +├── STOPTOLERANTE/ +│ ├── codigo_fonte/ → 4 robôs (mar_ST_01-04) ✅ +│ └── mql5/ → (pendente) +│ +├── DRAWDOWNZERO/ +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── 50mais1/ +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── SCALPING/ ← NOVO +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── BREAKOUT/ ← NOVO +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── VWAP_INSTITUCIONAL/ ← NOVO +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── TENDENCIA_SEGUIR/ ← NOVO +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +├── REVERSAO_MEDIA/ ← NOVO +│ ├── codigo_fonte/ → (pendente) +│ └── mql5/ → (pendente) +│ +└── HORARIO_ESPECIFICO/ ← NOVO + ├── codigo_fonte/ → (pendente) + └── mql5/ → (pendente) +``` + +--- + +## Backlog de Robôs Pendentes (ordenado por prioridade) + +### Imediato +- [ ] PPV_05 a PPV_08 (`POUCOSPONTOSVENCEDORES`) +- [ ] IFR_04 a IFR_14 (`IFR_RSI`) +- [ ] DZ_01 a DZ_04 (`DRAWDOWNZERO`) +- [ ] WR_01 a WR_04 (`50mais1`) + +### Próximo Ciclo +- [ ] MEDIAS_01 a MEDIAS_18 +- [ ] SC_01 a SC_04 (`SCALPING`) +- [ ] BK_01 a BK_04 (`BREAKOUT`) +- [ ] VI_01 a VI_04 (`VWAP_INSTITUCIONAL`) +- [ ] TS_01 a TS_04 (`TENDENCIA_SEGUIR`) +- [ ] RM_01 a RM_04 (`REVERSAO_MEDIA`) +- [ ] HE_01 a HE_04 (`HORARIO_ESPECIFICO`) +- [ ] Versões MQL5 dos principais grupos + +--- + +## Parâmetros Padrão de Gestão de Risco (todos os grupos) + +```ntsl +// Profit (NTSL) +UsarGestaoRisco = true +UsarHardLock = true +SaldoConta = 10000.0 // R$10.000 +RiscoDiaPct = 1.5 // R$150/dia +RiscoSemanaPct = 3.0 // R$300/semana +MaxStopsConsecutivos = 2 // (1 para DRAWDOWNZERO) +ValorPorPonto = 0.2 // 1 contrato WIN mini +DiaSemanaReset = 2 // segunda-feira +``` + +```mql5 +// MetaTrader 5 (MQL5) +VolumeLote = 0.01 // USD$5.000 demo Tickmill +RiscoPorOpPct = 1.5 +MaxStopsConsec = 2 +MagicNumber = 2026XX // último 2 dígitos = número do robô +``` diff --git a/automacao_backtests/MEDIAS/codigo_fonte/.gitkeep b/automacao_backtests/MEDIAS/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/MEDIAS/mql5/.gitkeep b/automacao_backtests/MEDIAS/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/mql5/.gitkeep b/automacao_backtests/POUCOSPONTOSVENCEDORES/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/codigo_fonte/.gitkeep b/automacao_backtests/REVERSAO_MEDIA/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/.gitkeep b/automacao_backtests/REVERSAO_MEDIA/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/reversao_media.md b/automacao_backtests/REVERSAO_MEDIA/reversao_media.md new file mode 100644 index 0000000..2e3e320 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/reversao_media.md @@ -0,0 +1,60 @@ +# Grupo REVERSAO_MEDIA (RM) + +## Por que é Obrigatório Conhecer +Mean Reversion (reversão à média) é a estratégia que explora o princípio de que preços se afastam da média e tendem a voltar. O WIN é conhecido por movimentos bruscos seguidos de retorno — o que torna este setup altamente eficiente. + +Quando o preço está muito longe da VWAP ou das médias, **a probabilidade de retorno é estatisticamente alta** — especialmente em mercados sem tendência forte. + +--- + +## Quando Funciona / Quando NÃO Funciona + +| Cenário | Resultado | +|---------|-----------| +| Mercado lateral (ADX < 20) | ✅ Excelente — preço oscila entre extremos | +| Tendência fraca (ADX 20-25) | ⚠️ Funciona com filtros | +| Tendência forte (ADX > 30) | ❌ Evitar — o preço pode não voltar | +| Após gap de abertura | ⚠️ Gap pode ser preenchido (favorável) ou não (stop) | + +> **Regra:** antes de operar reversão, verificar ADX. Se ADX > 30, não usar este grupo. + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **Bollinger Bands(20,2)** | Extremos de desvio padrão | +| **IFR(9)** | Confirma extremo (ZS/SO) | +| **VWAP** | Alvo da reversão (retorno à média) | +| **ADX(14)** | Filtro — só opera se ADX < 25 | +| **Volume** | Confirma exaustão (volume cai no extremo) | + +--- + +## Filosofia de Entrada e Saída + +``` +ENTRADA: Preço toca Bollinger externo + IFR extremo + volume caindo +ALVO: Retorno à Bollinger central (média de 20) ou à VWAP +STOP: Além da Bollinger externa (rompeu → a reversão falhou) +``` + +--- + +## Estrutura dos Robôs RM + +``` +RM_01 — Bollinger toque externo + IFR ZS/SO + alvo banda central (Profit .ntsl) +RM_02 — Distância 2σ da VWAP + IFR extremo + alvo VWAP (Profit .ntsl) +RM_03 — ADX < 20 + IFR extremo + alvo MME20 (Profit .ntsl) +RM_04 — MT5: Mean reversion EURUSD (mercado mais controlado) (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +REVERSAO_MEDIA/ +├── reversao_media.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` diff --git a/automacao_backtests/SCALPING/codigo_fonte/.gitkeep b/automacao_backtests/SCALPING/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/SCALPING/mql5/.gitkeep b/automacao_backtests/SCALPING/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/SCALPING/scalping.md b/automacao_backtests/SCALPING/scalping.md new file mode 100644 index 0000000..58fd705 --- /dev/null +++ b/automacao_backtests/SCALPING/scalping.md @@ -0,0 +1,55 @@ +# Grupo SCALPING (SC) + +## Por que é Obrigatório Conhecer +Scalping é a arte de capturar movimentos rápidos e pequenos (5–30 pts no WIN) com alta frequência. É a base do day trade moderno e define se você consegue "sentir" o fluxo do mercado no menor timeframe. + +Sem entender scalping, você não entende: +- O comportamento do tape (fluxo de ordens) +- A liquidez mínima para entrar/sair sem slippage +- Por que às vezes o mercado anda rápido demais para ordens a mercado + +--- + +## Filosofia + +| Característica | Valor | +|----------------|-------| +| Timeframe | 1min / 2min | +| Alvo por operação | 10–30 pts | +| Stop máximo | 20–40 pts | +| R:R mínimo | 1:1 (a frequência compensa) | +| Operações/dia | 5–15 | +| Taxa de acerto meta | > 60% | +| Filtro obrigatório | Horário de liquidez (09:05–10:30, 14:00–16:00) | + +--- + +## Indicadores Mais Usados em Scalping + +| Indicador | Aplicação | +|-----------|-----------| +| **IFR(2) ou IFR(3)** | Extremos rápidos em timeframe curto | +| **MME9** | Direção local (scalp na direção da MME9) | +| **Estocástico(5,3)** | Reversão rápida (cruzamento nas zonas) | +| **VWAP** | Âncora — scalp entre preço e VWAP | +| **Volume por Barra** | Evitar barras de baixo volume | +| **Tape/Fluxo (manual)** | Leitura da ordem de fluxo (nível avançado) | + +--- + +## Estrutura dos Robôs SC + +``` +SC_01 — IFR(3) extremo + MME9 + alvo 15 pts fixo (Profit .ntsl) +SC_02 — VWAP distance + reversão + saída na VWAP (Profit .ntsl) +SC_03 — Estocástico crossover 1min + alvo 20 pts (Profit .ntsl) +SC_04 — MT5: IFR(3) scalp XAUUSD / NAS100 (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +SCALPING/ +├── scalping.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt new file mode 100644 index 0000000..634fa1b --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt @@ -0,0 +1,116 @@ +// ============================================================ +// mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl +// Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min +// Descrição: IFR extremo (ZS/SO) + contexto MME200 + stop na +// mínima/máxima do candle sinal (estrutural) +// R:R mínimo: 1:2 | Taxa esperada: ~63% +// Gestão: UsarGestaoRisco ativável | HardLock diário +// ============================================================ + +// ----- ENTRADAS ----- +input IFR_Periodo = 9; // Período do IFR +input IFR_ZS = 30; // Sobrevenda (compra) +input IFR_SO = 70; // Sobrecompra (venda) +input MME200_Periodo = 200; // Média longa de contexto +input Multiplicador_RR = 2.0; // Alvo = 2x o stop (R:R 1:2) + +// Gestão de risco +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; // 1.5% = R$150/dia +input RiscoSemanaPct = 3.0; // 3.0% = R$300/semana +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; // Segunda-feira + +// ----- VARIÁVEIS ----- +var ifr_atual : float; +var ifr_anterior : float; +var mme200 : float; +var precoAtual : float; + +var stopCompra : float; // mínima do candle sinal +var stopVenda : float; // máxima do candle sinal +var alvoCompra : float; +var alvoVenda : float; + +var perdaDiaria : float; +var perdaSemanal : float; +var stopsConsec : integer; +var diaUltimoReset : integer; +var ultimoPnL : float; +var emOperacao : boolean; + +// ----- INÍCIO ----- +begin + ifr_atual := IFR(IFR_Periodo, 0); + ifr_anterior := IFR(IFR_Periodo, 1); + mme200 := MediaExp(MME200_Periodo, 0); + precoAtual := Close; + + // Reset semanal (segunda-feira) + if (UsarGestaoRisco) and (DayOfWeek = DiaSemanaReset) and (DayOfWeek <> diaUltimoReset) then + begin + perdaSemanal := 0; + stopsConsec := 0; + diaUltimoReset := DayOfWeek; + end; + + // Atualiza P&L se saiu de operação + if (IsBought or IsSold) then + emOperacao := true + else begin + if emOperacao then + begin + ultimoPnL := NetProfit - ultimoPnL; + if ultimoPnL < 0 then + begin + perdaDiaria := perdaDiaria + Abs(ultimoPnL); + perdaSemanal := perdaSemanal + Abs(ultimoPnL); + stopsConsec := stopsConsec + 1; + end else + stopsConsec := 0; + ultimoPnL := NetProfit; + emOperacao := false; + end; + end; + + // HardLock — bloqueia o dia se atingiu limites + if (UsarHardLock) then + begin + if (perdaDiaria >= (SaldoConta * RiscoDiaPct / 100.0)) then exit; + if (perdaSemanal >= (SaldoConta * RiscoSemanaPct / 100.0)) then exit; + if (stopsConsec >= MaxStopsConsecutivos) then exit; + end; + + // Não abrir segunda posição + if IsBought or IsSold then exit; + + // =========================================================== + // SINAL DE COMPRA + // IFR saindo de sobrevenda + preço acima da MME200 (tendência alta) + // =========================================================== + if (ifr_anterior < IFR_ZS) and (ifr_atual >= IFR_ZS) and (precoAtual > mme200) then + begin + stopCompra := Low[1]; // mínima do candle que deu o sinal + alvoCompra := precoAtual + (precoAtual - stopCompra) * Multiplicador_RR; + BuyAtMarket; + SetStopLoss(stopCompra); + SetTakeProfit(alvoCompra); + end; + + // =========================================================== + // SINAL DE VENDA + // IFR saindo de sobrecompra + preço abaixo da MME200 (tendência baixa) + // =========================================================== + if (ifr_anterior > IFR_SO) and (ifr_atual <= IFR_SO) and (precoAtual < mme200) then + begin + stopVenda := High[1]; // máxima do candle que deu o sinal + alvoVenda := precoAtual - (stopVenda - precoAtual) * Multiplicador_RR; + SellShortAtMarket; + SetStopLoss(stopVenda); + SetTakeProfit(alvoVenda); + end; + +end; diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt new file mode 100644 index 0000000..9648020 --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt @@ -0,0 +1,122 @@ +// ============================================================ +// mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl +// Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min +// Descrição: Divergência IFR (preço faz nova mínima/máxima, +// IFR não confirma) + stop abaixo do pivô rompido +// R:R mínimo: 1:3 | Taxa esperada: ~65% +// Gestão: UsarGestaoRisco ativável | HardLock diário +// ============================================================ + +// ----- ENTRADAS ----- +input IFR_Periodo = 9; +input IFR_ZS = 35; // Região de sobrevenda +input IFR_SO = 65; // Região de sobrecompra +input MME200_Periodo = 200; +input ATR_Periodo = 14; +input Multiplicador_Stop = 1.5; // Stop = ATR × 1.5 (fallback) +input Multiplicador_Alvo = 3.0; // Alvo = 3× o stop (R:R 1:3) + +// Gestão de risco +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +// ----- VARIÁVEIS ----- +var ifr0, ifr1, ifr2 : float; +var close0, close1, close2 : float; +var low0, low1, low2 : float; +var high0, high1, high2 : float; +var mme200, atr : float; +var divBaixa, divAlta : boolean; + +var stopC, stopV, alvoC, alvoV : float; + +var perdaDiaria : float; +var perdaSemanal : float; +var stopsConsec : integer; +var diaUltimoReset : integer; +var ultimoPnL : float; +var emOperacao : boolean; + +// ----- INÍCIO ----- +begin + ifr0 := IFR(IFR_Periodo, 0); + ifr1 := IFR(IFR_Periodo, 1); + ifr2 := IFR(IFR_Periodo, 2); + close0 := Close; + low0 := Low; low1 := Low[1]; low2 := Low[2]; + high0 := High; high1 := High[1]; high2 := High[2]; + mme200 := MediaExp(MME200_Periodo, 0); + atr := ATR(ATR_Periodo, 0); + + // Gestão: reset semanal + if (UsarGestaoRisco) and (DayOfWeek = DiaSemanaReset) and (DayOfWeek <> diaUltimoReset) then + begin + perdaSemanal := 0; + stopsConsec := 0; + diaUltimoReset := DayOfWeek; + end; + + if (IsBought or IsSold) then emOperacao := true + else begin + if emOperacao then + begin + ultimoPnL := NetProfit - ultimoPnL; + if ultimoPnL < 0 then + begin + perdaDiaria := perdaDiaria + Abs(ultimoPnL); + perdaSemanal := perdaSemanal + Abs(ultimoPnL); + stopsConsec := stopsConsec + 1; + end else stopsConsec := 0; + ultimoPnL := NetProfit; + emOperacao := false; + end; + end; + + if (UsarHardLock) then + begin + if (perdaDiaria >= (SaldoConta * RiscoDiaPct / 100.0)) then exit; + if (perdaSemanal >= (SaldoConta * RiscoSemanaPct / 100.0)) then exit; + if (stopsConsec >= MaxStopsConsecutivos) then exit; + end; + + if IsBought or IsSold then exit; + + // =========================================================== + // DIVERGÊNCIA DE BAIXO (alta — alta em preço, IFR sem nova alta → reversão baixista) + // Preço faz nova MÁXIMA mas IFR faz máxima MENOR + // Contexto: precisa estar abaixo da MME200 ou em zona de SO + // =========================================================== + divAlta := (high0 > high1) and (ifr0 < ifr2) and (ifr0 > IFR_SO); + + if divAlta and (close0 < mme200) then + begin + stopV := high1 + atr * 0.5; // stop acima da máxima da divergência + alvoV := close0 - (stopV - close0) * Multiplicador_Alvo; + SellShortAtMarket; + SetStopLoss(stopV); + SetTakeProfit(alvoV); + end; + + // =========================================================== + // DIVERGÊNCIA DE ALTA (baixa — baixa em preço, IFR sem nova baixa → reversão altista) + // Preço faz nova MÍNIMA mas IFR faz mínima MAIOR + // Contexto: precisa estar acima da MME200 ou em zona de ZS + // =========================================================== + divBaixa := (low0 < low1) and (ifr0 > ifr2) and (ifr0 < IFR_ZS); + + if divBaixa and (close0 > mme200) then + begin + stopC := low1 - atr * 0.5; // stop abaixo da mínima da divergência + alvoC := close0 + (close0 - stopC) * Multiplicador_Alvo; + BuyAtMarket; + SetStopLoss(stopC); + SetTakeProfit(alvoC); + end; + +end; diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt new file mode 100644 index 0000000..0dac831 --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt @@ -0,0 +1,126 @@ +// ============================================================ +// mar_ST_03_v1_candle_forca_stop_atr15x.ntsl +// Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min +// Descrição: Candle de força (corpo > 65% do range total) na +// direção da tendência + stop = ATR × 1.5 + alvo = ATR × 3.0 +// R:R mínimo: 1:2 | Taxa esperada: ~62% +// Gestão: UsarGestaoRisco ativável | HardLock diário +// ============================================================ + +// ----- ENTRADAS ----- +input MME9_Periodo = 9; +input MME21_Periodo = 21; +input MME200_Periodo = 200; +input IFR_Periodo = 9; +input IFR_NeutroMin = 40; // IFR neutro — não entrar em extremo oposto +input IFR_NeutroMax = 70; +input ATR_Periodo = 14; +input CorpoMinPct = 65; // Corpo mínimo = 65% do range total +input Mult_Stop = 1.5; // Stop = ATR × 1.5 +input Mult_Alvo = 3.0; // Alvo = ATR × 3.0 + +// Gestão de risco +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +// ----- VARIÁVEIS ----- +var mme9, mme21, mme200 : float; +var ifr : float; +var atr : float; +var corpo, range_total : float; +var pcorpo : float; +var candleAlta : boolean; +var candleBaixa : boolean; + +var perdaDiaria : float; +var perdaSemanal : float; +var stopsConsec : integer; +var diaUltimoReset : integer; +var ultimoPnL : float; +var emOperacao : boolean; + +// ----- INÍCIO ----- +begin + mme9 := MediaExp(MME9_Periodo, 0); + mme21 := MediaExp(MME21_Periodo, 0); + mme200 := MediaExp(MME200_Periodo, 0); + ifr := IFR(IFR_Periodo, 0); + atr := ATR(ATR_Periodo, 0); + + // Força do candle + range_total := High - Low; + corpo := Abs(Close - Open); + if range_total > 0 then + pcorpo := (corpo / range_total) * 100.0 + else + pcorpo := 0; + + candleAlta := (Close > Open) and (pcorpo >= CorpoMinPct); + candleBaixa := (Close < Open) and (pcorpo >= CorpoMinPct); + + // Gestão: reset semanal + if (UsarGestaoRisco) and (DayOfWeek = DiaSemanaReset) and (DayOfWeek <> diaUltimoReset) then + begin + perdaSemanal := 0; + stopsConsec := 0; + diaUltimoReset := DayOfWeek; + end; + + if (IsBought or IsSold) then emOperacao := true + else begin + if emOperacao then + begin + ultimoPnL := NetProfit - ultimoPnL; + if ultimoPnL < 0 then + begin + perdaDiaria := perdaDiaria + Abs(ultimoPnL); + perdaSemanal := perdaSemanal + Abs(ultimoPnL); + stopsConsec := stopsConsec + 1; + end else stopsConsec := 0; + ultimoPnL := NetProfit; + emOperacao := false; + end; + end; + + if (UsarHardLock) then + begin + if (perdaDiaria >= (SaldoConta * RiscoDiaPct / 100.0)) then exit; + if (perdaSemanal >= (SaldoConta * RiscoSemanaPct / 100.0)) then exit; + if (stopsConsec >= MaxStopsConsecutivos) then exit; + end; + + if IsBought or IsSold then exit; + + // =========================================================== + // COMPRA: candle de força altista + tendência alta + IFR não sobrecomprado + // Contexto: MME9 > MME21 > MME200 (alinhamento de alta) + // =========================================================== + if candleAlta + and (mme9 > mme21) and (mme21 > mme200) + and (ifr < IFR_NeutroMax) then // IFR não está em sobrecompra + begin + BuyAtMarket; + SetStopLoss(Close - atr * Mult_Stop); + SetTakeProfit(Close + atr * Mult_Alvo); + end; + + // =========================================================== + // VENDA: candle de força baixista + tendência baixa + IFR não sobrevendido + // Contexto: MME9 < MME21 < MME200 (alinhamento de baixa) + // =========================================================== + if candleBaixa + and (mme9 < mme21) and (mme21 < mme200) + and (ifr > IFR_NeutroMin) then // IFR não está em sobrevenda + begin + SellShortAtMarket; + SetStopLoss(Close + atr * Mult_Stop); + SetTakeProfit(Close - atr * Mult_Alvo); + end; + +end; diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt new file mode 100644 index 0000000..e9ae864 --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt @@ -0,0 +1,135 @@ +// ============================================================ +// mar_ST_04_v1_confluencia_maxima_rr3.ntsl +// Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min +// Descrição: Confluência máxima (IFR + MME200 + MME9/21 + volume) +// stop = ATR × 2.0 | alvo = ATR × 4.0 (R:R 1:2 mínimo) +// Robo mais seletivo do grupo — 1 operação/dia no máx +// R:R mínimo: 1:2 | Taxa esperada: ~67% +// Gestão: UsarGestaoRisco ativável | HardLock diário +// ============================================================ + +// ----- ENTRADAS ----- +input IFR_Periodo = 9; +input IFR_ZS = 30; +input IFR_SO = 70; +input MME9_Periodo = 9; +input MME21_Periodo = 21; +input MME200_Periodo = 200; +input Vol_Periodo = 20; // Média de volume para filtro +input ATR_Periodo = 14; +input Mult_Stop = 2.0; // Stop = ATR × 2.0 (mais tolerante) +input Mult_Alvo = 4.0; // Alvo = ATR × 4.0 (R:R mínimo 1:2) +input MaxOpeDia = 1; // Máximo de 1 operação por dia + +// Gestão de risco +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +// ----- VARIÁVEIS ----- +var ifr, mme9, mme21 : float; +var mme200, atr : float; +var volAtual, volMedia : float; + +var opeDia : integer; +var diaAtual : integer; + +var perdaDiaria : float; +var perdaSemanal : float; +var stopsConsec : integer; +var diaUltimoReset : integer; +var ultimoPnL : float; +var emOperacao : boolean; + +// ----- INÍCIO ----- +begin + ifr := IFR(IFR_Periodo, 0); + mme9 := MediaExp(MME9_Periodo, 0); + mme21 := MediaExp(MME21_Periodo, 0); + mme200 := MediaExp(MME200_Periodo, 0); + atr := ATR(ATR_Periodo, 0); + volAtual := Volume; + volMedia := MediaAritmetica(Vol_Periodo, 0); // volume médio dos últimos N candles + + // Contador diário de operações (reset por dia) + if (DayOfMonth <> diaAtual) then + begin + opeDia := 0; + diaAtual := DayOfMonth; + end; + + // Gestão: reset semanal + if (UsarGestaoRisco) and (DayOfWeek = DiaSemanaReset) and (DayOfWeek <> diaUltimoReset) then + begin + perdaSemanal := 0; + stopsConsec := 0; + diaUltimoReset := DayOfWeek; + end; + + if (IsBought or IsSold) then emOperacao := true + else begin + if emOperacao then + begin + opeDia := opeDia + 1; + ultimoPnL := NetProfit - ultimoPnL; + if ultimoPnL < 0 then + begin + perdaDiaria := perdaDiaria + Abs(ultimoPnL); + perdaSemanal := perdaSemanal + Abs(ultimoPnL); + stopsConsec := stopsConsec + 1; + end else stopsConsec := 0; + ultimoPnL := NetProfit; + emOperacao := false; + end; + end; + + if (UsarHardLock) then + begin + if (perdaDiaria >= (SaldoConta * RiscoDiaPct / 100.0)) then exit; + if (perdaSemanal >= (SaldoConta * RiscoSemanaPct / 100.0)) then exit; + if (stopsConsec >= MaxStopsConsecutivos) then exit; + end; + + if IsBought or IsSold then exit; + if opeDia >= MaxOpeDia then exit; + + // =========================================================== + // COMPRA — CONFLUÊNCIA MÁXIMA (4 filtros obrigatórios) + // 1. IFR saindo de sobrevenda + // 2. Preço acima de MME200 (tendência maior de alta) + // 3. MME9 cruzando MME21 para cima (impulso local) + // 4. Volume acima da média (institucional comprando) + // =========================================================== + if (IFR(IFR_Periodo, 1) < IFR_ZS) and (ifr >= IFR_ZS) // IFR cruzando ZS para cima + and (Close > mme200) // contexto altista + and (mme9 > mme21) // momentum local + and (volAtual > volMedia * 1.2) then // volume elevado (20% acima) + begin + BuyAtMarket; + SetStopLoss(Close - atr * Mult_Stop); + SetTakeProfit(Close + atr * Mult_Alvo); + end; + + // =========================================================== + // VENDA — CONFLUÊNCIA MÁXIMA (4 filtros obrigatórios) + // 1. IFR saindo de sobrecompra + // 2. Preço abaixo de MME200 (tendência maior de baixa) + // 3. MME9 cruzando MME21 para baixo (impulso local) + // 4. Volume acima da média (institucional vendendo) + // =========================================================== + if (IFR(IFR_Periodo, 1) > IFR_SO) and (ifr <= IFR_SO) // IFR cruzando SO para baixo + and (Close < mme200) // contexto baixista + and (mme9 < mme21) // momentum local + and (volAtual > volMedia * 1.2) then // volume elevado + begin + SellShortAtMarket; + SetStopLoss(Close + atr * Mult_Stop); + SetTakeProfit(Close - atr * Mult_Alvo); + end; + +end; diff --git a/automacao_backtests/STOPTOLERANTE/mql5/.gitkeep b/automacao_backtests/STOPTOLERANTE/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/STOPTOLERANTE/stoptolerante.md b/automacao_backtests/STOPTOLERANTE/stoptolerante.md index e69de29..130707d 100644 --- a/automacao_backtests/STOPTOLERANTE/stoptolerante.md +++ b/automacao_backtests/STOPTOLERANTE/stoptolerante.md @@ -0,0 +1,84 @@ +# Grupo STOPTOLERANTE (ST) + +## Objetivo +Robôs com **stop tolerante (largo, baseado em estrutura)** combinados com **estratégias de alta confluência**. + +A filosofia é oposta ao PPV: +- **PPV:** stop curto, sai rápido, não devolve — aceita ganhos pequenos +- **STOPTOLERANTE:** stop largo, aguenta o ruído, busca movimentos maiores — aceita stops mais caros mas em menor frequência + +--- + +## Filosofia do Grupo + +| Característica | PPV | **STOPTOLERANTE** | +|----------------|-----|------------------| +| Stop | 60–100 pontos (fixo/ATR) | 150–400 pontos (estrutural) | +| Alvo | 80–150 pontos | 300–800 pontos (R:R ≥ 1:2) | +| R:R mínimo | 1:1 | **1:2 obrigatório** | +| Taxa de acerto esperada | > 65% | > 60% | +| Entradas/dia | 2–3 | 1 (alta seletividade) | +| Trailing stop | Agressivo | Suave — deixa o trade respirar | +| Break-even | Ativa cedo (60 pts) | Ativa tarde (150+ pts) | + +> **Princípio:** uma entrada mais cara (stop maior) é aceitável se a estratégia tiver +> alta probabilidade de acerto e o alvo compensar em R:R ≥ 2:1. + +--- + +## Por que Stop Estrutural é Melhor que Stop Fixo? + +**Stop fixo (ex: 100 pts):** pode ser atingido pelo ruído normal do mercado antes do trade andar. + +**Stop estrutural (abaixo de suporte/máxima do D-1/pivô):** +- Só invalida se o preço romper a estrutura de fato +- Filtro natural: se rompeu o pivô, o setup está errado mesmo +- Menos stops falsos = mais operações chegam ao alvo + +``` +EXEMPLO COMPRA: + Entrada: 125.000 + Stop: abaixo da mínima do candle D-1 = 124.200 → stop de 800 pts + Alvo: máxima do D-1 + extensão = 126.600 → alvo de 1.600 pts + R:R = 1:2 ✓ +``` + +--- + +## Indicadores Utilizados + +| Indicador | Função no grupo ST | +|-----------|-------------------| +| **IFR(9)** | Gatilho de entrada (extremo + retorno) | +| **MME200** | Filtro de contexto (tendência maior) | +| **Pivô D-1** (High/Low do dia anterior) | Define o stop estrutural | +| **ATR(14)** | Dimensiona alvos (múltiplo do ATR) | +| **VWAP diário** | Zona de valor — confirma direção | +| **Volume relativo** | Filtra entradas de baixa liquidez | +| **MME9 + MME21** | Regime de mercado (tendência/lateral) | + +--- + +## Estrutura dos Robôs ST + +``` +ST_01 — IFR extremo + MME200 + stop abaixo pivô D-1 (mais conservador) +ST_02 — Divergência IFR + confirmação candle + stop pivô (alta taxa de acerto) +ST_03 — Gap força + corpo forte + stop abaixo candle D-1 (agressividade moderada) +ST_04 — Confluência máxima IFR+VWAP+MME+volume + stop ATR (R:R 1:3) +``` + +--- + +## Critério de Aprovação no Backtest + +| Métrica | Mínimo | Ideal | +|---------|--------|-------| +| Profit Factor | > 1.5 | > 2.0 | +| Taxa de acerto | > 58% | > 65% | +| R:R médio | ≥ 1:2 | ≥ 1:2.5 | +| Drawdown máximo | < 25% | < 15% | +| Operações totais | > 80 | > 150 | + +> Com stop maior, é normal ter menos operações — o critério de operações mínimas +> é mais baixo que nos outros grupos. diff --git a/automacao_backtests/TENDENCIA_SEGUIR/codigo_fonte/.gitkeep b/automacao_backtests/TENDENCIA_SEGUIR/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/TENDENCIA_SEGUIR/mql5/.gitkeep b/automacao_backtests/TENDENCIA_SEGUIR/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md b/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md new file mode 100644 index 0000000..5c5a7b6 --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md @@ -0,0 +1,61 @@ +# Grupo TENDENCIA_SEGUIR (TS) + +## Por que é Obrigatório Conhecer +"A tendência é sua amiga" — este clichê existe porque é verdade estatisticamente. Um ativo em tendência forte tem probabilidade comprovada de continuar naquela direção no curto prazo. + +Trend Following puro é diferente de operar médias: aqui o objetivo é **sentar no trade e deixar o lucro correr** enquanto a tendência durar — usando trailing stop em vez de alvo fixo. + +--- + +## Diferença: Tendência Seguir vs. Médias (grupo MEDIAS) + +| Aspecto | MEDIAS | TENDENCIA_SEGUIR | +|---------|--------|-----------------| +| Foco | Cruzamento de médias | Manter posição na tendência | +| Saída | Alvo fixo ou cruzamento | Trailing stop — sem alvo | +| Trade típico | 1–3 candles | 5–20+ candles | +| Lucro quando funciona | 100–300 pts | 500–2000 pts (pegar o "trem") | +| Frequência | Média | Baixa | +| Psicologia | Fácil (tem alvo definido) | Difícil (não saber quando sair) | + +--- + +## Filosofia — Deixar o Trade Correr + +``` +REGRA 1: Nunca coloque alvo fixo — use trailing stop +REGRA 2: Break-even só ativa se o trade andar > 2× o stop inicial +REGRA 3: Trailing baseado em ATR (não incomoda por ruído pequeno) +REGRA 4: Se o indicador de tendência virar → fecha imediatamente +``` + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **ADX(14)** | Força da tendência (ADX > 25 = tendência forte) | +| **MME9 / MME21 / MME200** | Direção e alinhamento | +| **ATR(14)** | Trailing stop dinâmico | +| **Parabolic SAR** | Alternativa ao trailing ATR | +| **IFR(14)** | Entrada em pullback dentro da tendência | + +--- + +## Estrutura dos Robôs TS + +``` +TS_01 — ADX > 25 + alinhamento MME9/21/200 + trailing ATR × 2 (Profit .ntsl) +TS_02 — Parabolic SAR como trailing + filtro ADX (Profit .ntsl) +TS_03 — IFR pullback em tendência forte (IDX>30) + trailing (Profit .ntsl) +TS_04 — MT5: Trend following NAS100 / US30 (tendências longas) (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +TENDENCIA_SEGUIR/ +├── tendencia_seguir.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep b/automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/mql5/.gitkeep b/automacao_backtests/VWAP_INSTITUCIONAL/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md b/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md new file mode 100644 index 0000000..8855125 --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md @@ -0,0 +1,58 @@ +# Grupo VWAP_INSTITUCIONAL (VI) + +## Por que é Obrigatório Conhecer +A VWAP (Volume Weighted Average Price) é o indicador mais usado por traders institucionais. Fundos e mesas de operação **executam ordens usando a VWAP como referência**. + +Entender a VWAP significa entender onde o "dinheiro grande" está operando — e com isso, saber quando vai com o fluxo ou quando está entrando cedo demais. + +--- + +## Regras Fundamentais da VWAP + +| Situação | Significado | Ação | +|----------|-------------|------| +| Preço acima da VWAP | Mercado em vantagem compradora | Favorecer compras | +| Preço abaixo da VWAP | Mercado em vantagem vendedora | Favorecer vendas | +| Preço tocando VWAP e rejeitando | Nível de suporte/resistência dinâmico | Entrada na direção da tendência | +| Cruzamento da VWAP com volume | Possível mudança de direção intraday | Sinalização | + +--- + +## VWAP Simples vs. Ancoragem + +| Tipo | Timeframe | Uso | +|------|-----------|-----| +| VWAP Diária | Intraday (reset todo dia) | Referência principal de trading | +| VWAP Semanal | Panorama de médio prazo | Filtro de trend | +| VWAP Ancorada | A partir de evento específico | Pós-notícia, pós-gap | + +--- + +## Indicadores do Grupo + +| Indicador | Função | +|-----------|--------| +| **VWAP Diária** | Nível central de operação | +| **VWAP + 1σ / +2σ** | Zonas de sobrecompra/sobrevenda | +| **Volume** | Confirma interesse institucional | +| **IFR(9)** | Gatilho na zona da VWAP | +| **MME200** | Contexto de tendência de fundo | + +--- + +## Estrutura dos Robôs VI + +``` +VI_01 — Pullback na VWAP diária + IFR neutro + a favor da trend (Profit .ntsl) +VI_02 — Cruzamento da VWAP + volume acima média + MME200 (Profit .ntsl) +VI_03 — Distância 2σ VWAP + reversão + alvo na VWAP (Profit .ntsl) +VI_04 — MT5: VWAP setup EURUSD / NAS100 (MQL5 .mq5) +``` + +## Estrutura de Pastas +``` +VWAP_INSTITUCIONAL/ +├── vwap_institucional.md ← este arquivo +├── codigo_fonte/ ← robôs Profit (.ntsl.txt) +└── mql5/ ← robôs MetaTrader (.mq5) +``` From e41363728dbcbd583ae4823e4aa7a993106cae02 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:10:10 -0300 Subject: [PATCH 38/63] copilot-instructions: gestao de risco sempre parametrizavel via input --- .github/copilot-instructions.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index d4c047a..f5f46ae 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -50,10 +50,12 @@ WorkspaceRobosTrade/ → Orientações e documentação do wor ### Scripts NTSL (Neologica Profit) - Extensão: `.txt` ou `.ntsl.txt` -- Nomenclatura robôs março/2026: `mar_IFR_NN_vX_TIMEFRAME_descricao.ntsl.txt` +- Nomenclatura robôs março/2026: `mar_GRUPO_NN_vX_descricao.ntsl.txt` - Nomenclatura indicadores/cores: `mar_NomeDoEstudo.ntsl.txt` - Sempre incluir comentário de cabeçalho com: versão, timeframe, descrição, taxa de acerto se disponível - Respeitar a sintaxe NTSL da plataforma Profit (variáveis, séries, funções nativas) +- **OBRIGATÓRIO:** todos os parâmetros de risco declarados como `input` (ver bloco padrão na seção Gerenciamento de Risco) +- Nunca usar `UsarGestaoRisco(true)` hardcoded — sempre `input UsarGestaoRisco = true` ### Scripts Python (Backtest) @@ -88,6 +90,29 @@ Ao sugerir melhorias em estratégias, respeitar esta prioridade: - WIN: stop baseado em **estrutura técnica** (suporte/resistência/pivô) - Nunca sugerir estratégias sem stop definido +### Regra Obrigatória — Gestão Sempre Parametrizável + +**TODOS os parâmetros de risco devem ser declarados como `input`**, nunca hardcoded no corpo do código. Isso permite alterá-los na tela de configuração do Profit sem editar o código-fonte. + +Bloco padrão obrigatório em todo robô NTSL: + +```ntsl +input UsarGestaoRisco = true; // false = backtest puro da lógica +input UsarHardLock = true; // false = não fecha posição ao atingir limite +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; // % do saldo — limite de perda diária +input RiscoSemanaPct = 3.0; // % do saldo — limite de perda semanal +input MaxStopsConsecutivos = 2; // stops em sequência antes de bloquear +input ValorPorPonto = 0.2; // 1 contrato WIN mini = R$0,20/ponto +input DiaSemanaReset = 2; // 2 = segunda-feira +``` + +Regras de uso: +- `UsarGestaoRisco = false` → desativa todos os limites (uso em backtest para testar a lógica pura) +- `UsarHardLock = false` → monitora os limites mas não força fechamento (apenas bloqueia novas entradas) +- `UsarHardLock = true` → fecha posição aberta imediatamente ao atingir o limite (uso operacional) +- O bloco de verificação dos limites deve ser executado **antes de qualquer sinal de entrada** + --- ## Padrões de Qualidade para Robôs IFR From d1986572d37a7d0b89e85b2986345d870baf59e4 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:35:16 -0300 Subject: [PATCH 39/63] Reorganizacao: NTSL renomeados .ntsl.txt, LABORATORIO_INDICADORES criado, MAPA_GRUPOS atualizado --- .github/copilot-instructions.md | 1 + ...t => catalogo_50_robos_primeiro_candle.md} | 0 ...coes_IFR.txt => catalogo_50_opcoes_IFR.md} | 0 ...fr_v10_balanceado_regime60min63%.ntsl.txt} | 140 +- ...ifr_v18_bandas_dinamicas60min60%.ntsl.txt} | 102 +- ...v24_controle_risco_diario1min67%.ntsl.txt} | 138 +- ...r_v25_ifr_mme200_contexto2min69%.ntsl.txt} | 104 +- ...v27_um_trade_por_direcao60min54%.ntsl.txt} | 116 +- ...o_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt} | 102 +- ...reversao_volume_relativo60min72%.ntsl.txt} | 94 +- ..._ifr_v33_pullback_mme20060min67%.ntsl.txt} | 92 +- ...divergencia_regular_pivo60min62%.ntsl.txt} | 102 +- ...4_divergencia_confirmada60min90%.ntsl.txt} | 116 +- .../IFR_RSI/{robos_IFR.txt => robos_IFR.md} | 0 ...obo_ifr_v6_saida_hibrida60min77%.ntsl.txt} | 0 ...r_v5_regime_volatilidade60min90%.ntsl.txt} | 0 ...r_v45_volume_por_horario60min75%.ntsl.txt} | 0 ...v20_ifr_assimetrico_lado30min62%.ntsl.txt} | 0 ...scoTop4_IFR.txt => gestaoRiscoTop4_IFR.md} | 0 ..._v11_agressivo_reentrada30min58%.ntsl.txt} | 0 ...ifr_v1_reversao_extremos60min71%.ntsl.txt} | 0 ...fr_v23_dupla_confirmacao15min87%.ntsl.txt} | 0 ...47_orb_confirmacao_dupla60min66%.ntsl.txt} | 0 ..._ifr_v7_resgate_contexto30min84%.ntsl.txt} | 0 .../ADX/codigo_fonte/.gitkeep | 0 .../LABORATORIO_INDICADORES/ADX/mql5/.gitkeep | 0 .../AVANCADOS/KELTNER/codigo_fonte/.gitkeep | 0 .../AVANCADOS/MACD/codigo_fonte/.gitkeep | 0 .../PARABOLIC_SAR/codigo_fonte/.gitkeep | 0 .../WILLIAMS_R/codigo_fonte/.gitkeep | 0 .../BOLLINGER/codigo_fonte/.gitkeep | 0 .../BOLLINGER/mql5/.gitkeep | 0 .../COMBOS/ATR_MME200/codigo_fonte/.gitkeep | 0 .../BOLLINGER_IFR/codigo_fonte/.gitkeep | 0 .../COMBOS/IFR_ADX/codigo_fonte/.gitkeep | 0 .../COMBOS/VWAP_VOLUME/codigo_fonte/.gitkeep | 0 .../ESTOCASTICO/codigo_fonte/.gitkeep | 0 .../ESTOCASTICO/mql5/.gitkeep | 0 .../OBV/codigo_fonte/.gitkeep | 0 .../LABORATORIO_INDICADORES/OBV/mql5/.gitkeep | 0 .../LABORATORIO_INDICADORES/README.md | 120 ++ automacao_backtests/MAPA_GRUPOS.md | 46 + ...test.txt => NeologicaProfitAPIbacktest.md} | 0 ...encedores.md => poucospontosVencedores.md} | 0 ...ev_2minReversaoComVolumeWIN.ntsl.ntsl.txt} | 0 ...RmovimentoDoPrecoComVontade.ntsl.ntsl.txt} | 0 ...v_ContadorCruzamentosMedias.ntsl.ntsl.txt} | 0 ...=> fev_DetectorFasesMercado.ntsl.ntsl.txt} | 0 ...R.txt => fev_DivergenciaIFR.ntsl.ntsl.txt} | 0 ...t => fev_HorarioTurbulencia.ntsl.ntsl.txt} | 0 ...xt => fev_MediasSetupDiario.ntsl.ntsl.txt} | 0 ...xt => fev_MediasSetupSemana.ntsl.ntsl.txt} | 0 ... => fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt} | 0 ...ao.txt => fev_PainelDecisao.ntsl.ntsl.txt} | 0 ...ev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt} | 0 ...t => fev_PriceActionAnaliseCorpo.ntsl.txt} | 0 ... => fev_PriceActionAnaliseSombra.ntsl.txt} | 0 ...v_PriceActionCorpoSombraExecucao.ntsl.txt} | 0 ...ton.txt => fev_PriceActionNewton.ntsl.txt} | 0 ....txt => fev_PriceActionNewtonIFR.ntsl.txt} | 1162 ++++++++--------- ...v_PriceActionTiposCandlesLeitura.ntsl.txt} | 0 ...BV.txt => fev_PriceActionVSA_OBV.ntsl.txt} | 0 ...txt => fev_RegraDeDow_Rompimento.ntsl.txt} | 0 ...o.txt => fev_TendenciaLongoPrazo.ntsl.txt} | 0 ... => fev_TendenciaPivoTesteDeOuro.ntsl.txt} | 0 ...> fev_VSAassinaturaInstitucional.ntsl.txt} | 0 ...o.txt => fev_VWAPreferenciaPreco.ntsl.txt} | 0 ...rio.txt => fev_VWAPsemanalDiario.ntsl.txt} | 0 ...Dia.txt => fev_direcaoDoDia.ntsl.ntsl.txt} | 0 ... fev_mediasTrend9_20_50_200.ntsl.ntsl.txt} | 0 ...a920.txt => fev_panorama920.ntsl.ntsl.txt} | 0 ...v_panoramaMedias9_20_50_200.ntsl.ntsl.txt} | 0 ...=> fev_priceActionPrimeiroCandle.ntsl.txt} | 0 73 files changed, 1301 insertions(+), 1134 deletions(-) rename automacao_backtests/CANDLE1/{catalogo_50_robos_primeiro_candle.txt => catalogo_50_robos_primeiro_candle.md} (100%) rename automacao_backtests/IFR_RSI/{catalogo_50_opcoes_IFR.txt => catalogo_50_opcoes_IFR.md} (100%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v10_balanceado_regime60min63%.txt => robo_ifr_v10_balanceado_regime60min63%.ntsl.txt} (97%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v18_bandas_dinamicas60min60%.txt => robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v24_controle_risco_diario1min67%.txt => robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v25_ifr_mme200_contexto2min69%.txt => robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v27_um_trade_por_direcao60min54%.txt => robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v28_ifr_adx_filtro30min57%.txt => robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v31_reversao_volume_relativo60min72%.txt => robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v33_pullback_mme20060min67%.txt => robo_ifr_v33_pullback_mme20060min67%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v36_divergencia_regular_pivo60min62%.txt => robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/codigo_fonte/{robo_ifr_v4_divergencia_confirmada60min90%.txt => robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt} (96%) rename automacao_backtests/IFR_RSI/{robos_IFR.txt => robos_IFR.md} (100%) rename automacao_backtests/IFR_RSI/top10/{1robo_ifr_v6_saida_hibrida60min77%.txt => 1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{2robo_ifr_v5_regime_volatilidade60min90%.txt => 2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{3robo_ifr_v45_volume_por_horario60min75%.txt => 3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt => 4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{gestaoRiscoTop4_IFR.txt => gestaoRiscoTop4_IFR.md} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v11_agressivo_reentrada30min58%.txt => robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v1_reversao_extremos60min71%.txt => robo_ifr_v1_reversao_extremos60min71%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v23_dupla_confirmacao15min87%.txt => robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v47_orb_confirmacao_dupla60min66%.txt => robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v7_resgate_contexto30min84%.txt => robo_ifr_v7_resgate_contexto30min84%.ntsl.txt} (100%) create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ADX/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ADX/mql5/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/KELTNER/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/MACD/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/PARABOLIC_SAR/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/WILLIAMS_R/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/mql5/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/COMBOS/ATR_MME200/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/COMBOS/BOLLINGER_IFR/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/COMBOS/IFR_ADX/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/COMBOS/VWAP_VOLUME/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/mql5/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/OBV/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/OBV/mql5/.gitkeep create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/README.md rename automacao_backtests/{NeologicaProfitAPIbacktest.txt => NeologicaProfitAPIbacktest.md} (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/{poutosPontosVencedores.md => poucospontosVencedores.md} (100%) rename profit_estudos_cores/fev2026/{fev_2minReversaoComVolumeWIN.txt => fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_ATRmovimentoDoPrecoComVontade.txt => fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_ContadorCruzamentosMedias.txt => fev_ContadorCruzamentosMedias.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_DetectorFasesMercado.txt => fev_DetectorFasesMercado.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_DivergenciaIFR.txt => fev_DivergenciaIFR.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_HorarioTurbulencia.txt => fev_HorarioTurbulencia.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_MediasSetupDiario.txt => fev_MediasSetupDiario.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_MediasSetupSemana.txt => fev_MediasSetupSemana.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_OBVvolumeVerdadeiro.txt => fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PainelDecisao.txt => fev_PainelDecisao.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PainelDecisaoAlarme.ntsl.txt => fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionAnaliseCorpo.txt => fev_PriceActionAnaliseCorpo.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionAnaliseSombra.txt => fev_PriceActionAnaliseSombra.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionCorpoSombraExecucao.txt => fev_PriceActionCorpoSombraExecucao.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionNewton.txt => fev_PriceActionNewton.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionNewtonIFR.txt => fev_PriceActionNewtonIFR.ntsl.txt} (97%) rename profit_estudos_cores/fev2026/{fev_PriceActionTiposCandlesLeitura.txt => fev_PriceActionTiposCandlesLeitura.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PriceActionVSA_OBV.txt => fev_PriceActionVSA_OBV.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_RegraDeDow_Rompimento.txt => fev_RegraDeDow_Rompimento.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_TendenciaLongoPrazo.txt => fev_TendenciaLongoPrazo.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_TendenciaPivoTesteDeOuro.txt => fev_TendenciaPivoTesteDeOuro.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_VSAassinaturaInstitucional.txt => fev_VSAassinaturaInstitucional.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_VWAPreferenciaPreco.txt => fev_VWAPreferenciaPreco.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_VWAPsemanalDiario.txt => fev_VWAPsemanalDiario.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_direcaoDoDia.txt => fev_direcaoDoDia.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_mediasTrend9_20_50_200.txt => fev_mediasTrend9_20_50_200.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_panorama920.txt => fev_panorama920.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_panoramaMedias9_20_50_200.txt => fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_priceActionPrimeiroCandle.txt => fev_priceActionPrimeiroCandle.ntsl.txt} (100%) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f5f46ae..7103c50 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -108,6 +108,7 @@ input DiaSemanaReset = 2; // 2 = segunda-feira ``` Regras de uso: + - `UsarGestaoRisco = false` → desativa todos os limites (uso em backtest para testar a lógica pura) - `UsarHardLock = false` → monitora os limites mas não força fechamento (apenas bloqueia novas entradas) - `UsarHardLock = true` → fecha posição aberta imediatamente ao atingir o limite (uso operacional) diff --git a/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.txt b/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md similarity index 100% rename from automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.txt rename to automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md diff --git a/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt b/automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.md similarity index 100% rename from automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.txt rename to automacao_backtests/IFR_RSI/catalogo_50_opcoes_IFR.md diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt similarity index 97% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt index 0f51f4e..9af4873 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt @@ -1,71 +1,71 @@ -{ - Estrategia: robo_ifr_v10_balanceado_regime - Autor: Wesley - Descricao: Abordagem balanceada com logica por regime de mercado. - Em tendencia usa pullback no IFR; em lateral usa reversao 30/70. -} - -input - PeriodoIFR(9); - NivelPullbackCompra(45); - NivelPullbackVenda(55); - IFRExtremoCompra(30); - IFRExtremoVenda(70); - PeriodoMMERapida(9); - PeriodoMMELenta(21); - PeriodoMediaVolume(20); - FatorVolume(1.0); - UsarFiltroVolume(false); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(15); - -var - iBarrasEmPosicao : integer; - fIFR, fMME9, fMME9Anterior, fMME21, vMediaVol : float; - bVolumeAlto, bRegimeTendenciaAlta, bRegimeTendenciaBaixa, bRegimeLateral : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fMME9 := MediaExp(PeriodoMMERapida, Close); - fMME9Anterior := MediaExp(PeriodoMMERapida, Close)[1]; - fMME21 := MediaExp(PeriodoMMELenta, Close); - vMediaVol := Media(PeriodoMediaVolume, Volume); - - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - bRegimeTendenciaAlta := (Close > fMME21) and (fMME9 > fMME21) and (fMME9 > fMME9Anterior); - bRegimeTendenciaBaixa := (Close < fMME21) and (fMME9 < fMME21) and (fMME9 < fMME9Anterior); - bRegimeLateral := (not bRegimeTendenciaAlta) and (not bRegimeTendenciaBaixa); - - if (not IsBought) and (not IsSold) and bVolumeAlto then - begin - if bRegimeTendenciaAlta and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then - begin - BuyAtMarket; - end - else if bRegimeTendenciaBaixa and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then - begin - SellShortAtMarket; - end - else if bRegimeLateral and (fIFR[1] <= IFRExtremoCompra) and (fIFR > IFRExtremoCompra) then - begin - BuyAtMarket; - end - else if bRegimeLateral and (fIFR[1] >= IFRExtremoVenda) and (fIFR < IFRExtremoVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v10_balanceado_regime + Autor: Wesley + Descricao: Abordagem balanceada com logica por regime de mercado. + Em tendencia usa pullback no IFR; em lateral usa reversao 30/70. +} + +input + PeriodoIFR(9); + NivelPullbackCompra(45); + NivelPullbackVenda(55); + IFRExtremoCompra(30); + IFRExtremoVenda(70); + PeriodoMMERapida(9); + PeriodoMMELenta(21); + PeriodoMediaVolume(20); + FatorVolume(1.0); + UsarFiltroVolume(false); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fMME9, fMME9Anterior, fMME21, vMediaVol : float; + bVolumeAlto, bRegimeTendenciaAlta, bRegimeTendenciaBaixa, bRegimeLateral : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME9 := MediaExp(PeriodoMMERapida, Close); + fMME9Anterior := MediaExp(PeriodoMMERapida, Close)[1]; + fMME21 := MediaExp(PeriodoMMELenta, Close); + vMediaVol := Media(PeriodoMediaVolume, Volume); + + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + bRegimeTendenciaAlta := (Close > fMME21) and (fMME9 > fMME21) and (fMME9 > fMME9Anterior); + bRegimeTendenciaBaixa := (Close < fMME21) and (fMME9 < fMME21) and (fMME9 < fMME9Anterior); + bRegimeLateral := (not bRegimeTendenciaAlta) and (not bRegimeTendenciaBaixa); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + if bRegimeTendenciaAlta and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then + begin + BuyAtMarket; + end + else if bRegimeTendenciaBaixa and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then + begin + SellShortAtMarket; + end + else if bRegimeLateral and (fIFR[1] <= IFRExtremoCompra) and (fIFR > IFRExtremoCompra) then + begin + BuyAtMarket; + end + else if bRegimeLateral and (fIFR[1] >= IFRExtremoVenda) and (fIFR < IFRExtremoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt index 8558872..cf84213 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt @@ -1,52 +1,52 @@ -{ - Estrategia: robo_ifr_v18_bandas_dinamicas - Autor: Wesley - Descricao: Bandas dinamicas de IFR baseadas em range do proprio indicador. - Objetivo: substituir niveis fixos por gatilhos adaptativos. -} - -input - PeriodoIFR(9); - LookbackBandas(50); - PercentilCompra(0.25); - PercentilVenda(0.75); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(15); - -var - iBarrasEmPosicao : integer; - fIFR, fMinIFR, fMaxIFR, fRangeIFR, fNivelCompra, fNivelVenda : float; - -begin - fIFR := IFR(PeriodoIFR); - fMinIFR := Lowest(IFR(PeriodoIFR), LookbackBandas); - fMaxIFR := Highest(IFR(PeriodoIFR), LookbackBandas); - fRangeIFR := fMaxIFR - fMinIFR; - - fNivelCompra := fMinIFR + (fRangeIFR * PercentilCompra); - fNivelVenda := fMinIFR + (fRangeIFR * PercentilVenda); - - if (not IsBought) and (not IsSold) then - begin - if (fIFR[1] <= fNivelCompra) and (fIFR > fNivelCompra) then - begin - BuyAtMarket; - end - else if (fIFR[1] >= fNivelVenda) and (fIFR < fNivelVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v18_bandas_dinamicas + Autor: Wesley + Descricao: Bandas dinamicas de IFR baseadas em range do proprio indicador. + Objetivo: substituir niveis fixos por gatilhos adaptativos. +} + +input + PeriodoIFR(9); + LookbackBandas(50); + PercentilCompra(0.25); + PercentilVenda(0.75); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(15); + +var + iBarrasEmPosicao : integer; + fIFR, fMinIFR, fMaxIFR, fRangeIFR, fNivelCompra, fNivelVenda : float; + +begin + fIFR := IFR(PeriodoIFR); + fMinIFR := Lowest(IFR(PeriodoIFR), LookbackBandas); + fMaxIFR := Highest(IFR(PeriodoIFR), LookbackBandas); + fRangeIFR := fMaxIFR - fMinIFR; + + fNivelCompra := fMinIFR + (fRangeIFR * PercentilCompra); + fNivelVenda := fMinIFR + (fRangeIFR * PercentilVenda); + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] <= fNivelCompra) and (fIFR > fNivelCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= fNivelVenda) and (fIFR < fNivelVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt index 9e39c92..1b81b68 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt @@ -1,70 +1,70 @@ -{ - Estrategia: robo_ifr_v24_controle_risco_diario - Autor: Wesley - Descricao: IFR com controle diario de risco por limite de trades e saidas por tempo. - Objetivo: interromper operacao do dia em condicoes adversas. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - MaxTradesDia(6); - MaxSaidasTempoDia(2); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(14); - -var - iBarrasEmPosicao, iTradesDia, iSaidasTempoDia : integer; - fIFR : float; - bBloqueadoDia, bSaiuPorTempo : boolean; - -begin - fIFR := IFR(PeriodoIFR); - - if Date <> Date[1] then - begin - iTradesDia := 0; - iSaidasTempoDia := 0; - end; - - bBloqueadoDia := (iTradesDia >= MaxTradesDia) or (iSaidasTempoDia >= MaxSaidasTempoDia); - - if (not IsBought) and (not IsSold) and (not bBloqueadoDia) then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - iTradesDia := iTradesDia + 1; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - iTradesDia := iTradesDia + 1; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then - begin - ClosePosition; - if bSaiuPorTempo then - iSaidasTempoDia := iSaidasTempoDia + 1; - end; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then - begin - ClosePosition; - if bSaiuPorTempo then - iSaidasTempoDia := iSaidasTempoDia + 1; - end; +{ + Estrategia: robo_ifr_v24_controle_risco_diario + Autor: Wesley + Descricao: IFR com controle diario de risco por limite de trades e saidas por tempo. + Objetivo: interromper operacao do dia em condicoes adversas. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + MaxTradesDia(6); + MaxSaidasTempoDia(2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao, iTradesDia, iSaidasTempoDia : integer; + fIFR : float; + bBloqueadoDia, bSaiuPorTempo : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iTradesDia := 0; + iSaidasTempoDia := 0; + end; + + bBloqueadoDia := (iTradesDia >= MaxTradesDia) or (iSaidasTempoDia >= MaxSaidasTempoDia); + + if (not IsBought) and (not IsSold) and (not bBloqueadoDia) then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesDia := iTradesDia + 1; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesDia := iTradesDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + bSaiuPorTempo := UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao); + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or bSaiuPorTempo) then + begin + ClosePosition; + if bSaiuPorTempo then + iSaidasTempoDia := iSaidasTempoDia + 1; + end; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt index 7e430ae..5e9abca 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt @@ -1,53 +1,53 @@ -{ - Estrategia: robo_ifr_v25_ifr_mme200_contexto - Autor: Wesley - Descricao: IFR com filtro de contexto pela MME200. - Compra apenas acima da MME200 e venda apenas abaixo da MME200. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - PeriodoMMEContexto(200); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(14); - -var - iBarrasEmPosicao : integer; - fIFR, fMME200 : float; - bContextoCompra, bContextoVenda : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fMME200 := MediaExp(PeriodoMMEContexto, Close); - - bContextoCompra := (Close > fMME200); - bContextoVenda := (Close < fMME200); - - if (not IsBought) and (not IsSold) then - begin - if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - end - else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v25_ifr_mme200_contexto + Autor: Wesley + Descricao: IFR com filtro de contexto pela MME200. + Compra apenas acima da MME200 e venda apenas abaixo da MME200. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMMEContexto(200); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fMME200 : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMMEContexto, Close); + + bContextoCompra := (Close > fMME200); + bContextoVenda := (Close < fMME200); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if bContextoVenda and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt index c263b4c..beea2b0 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt @@ -1,59 +1,59 @@ -{ - Estrategia: robo_ifr_v27_um_trade_por_direcao - Autor: Wesley - Descricao: IFR com limite de 1 trade por direcao por sessao e risco curto por tempo. - Objetivo: reduzir overtrading em dias erraticos. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(8); - -var - iBarrasEmPosicao, iTradesCompraDia, iTradesVendaDia : integer; - fIFR : float; - bPodeComprar, bPodeVender : boolean; - -begin - fIFR := IFR(PeriodoIFR); - - if Date <> Date[1] then - begin - iTradesCompraDia := 0; - iTradesVendaDia := 0; - end; - - bPodeComprar := (iTradesCompraDia = 0); - bPodeVender := (iTradesVendaDia = 0); - - if (not IsBought) and (not IsSold) then - begin - if bPodeComprar and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - iTradesCompraDia := iTradesCompraDia + 1; - end - else if bPodeVender and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - iTradesVendaDia := iTradesVendaDia + 1; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v27_um_trade_por_direcao + Autor: Wesley + Descricao: IFR com limite de 1 trade por direcao por sessao e risco curto por tempo. + Objetivo: reduzir overtrading em dias erraticos. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(8); + +var + iBarrasEmPosicao, iTradesCompraDia, iTradesVendaDia : integer; + fIFR : float; + bPodeComprar, bPodeVender : boolean; + +begin + fIFR := IFR(PeriodoIFR); + + if Date <> Date[1] then + begin + iTradesCompraDia := 0; + iTradesVendaDia := 0; + end; + + bPodeComprar := (iTradesCompraDia = 0); + bPodeVender := (iTradesVendaDia = 0); + + if (not IsBought) and (not IsSold) then + begin + if bPodeComprar and (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + iTradesCompraDia := iTradesCompraDia + 1; + end + else if bPodeVender and (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + iTradesVendaDia := iTradesVendaDia + 1; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt index d0cdd73..ba122d5 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt @@ -1,52 +1,52 @@ -{ - Estrategia: robo_ifr_v28_ifr_adx_filtro - Autor: Wesley - Descricao: IFR com filtro de forca de tendencia por ADX. - Opera apenas quando ADX estiver acima do nivel minimo. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - PeriodoADX(14); - ADXMinimo(20); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(14); - -var - iBarrasEmPosicao : integer; - fIFR, fADX : float; - bTendenciaValida : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fADX := ADX(PeriodoADX, PeriodoADX); - bTendenciaValida := (fADX >= ADXMinimo); - - if (not IsBought) and (not IsSold) and bTendenciaValida then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - begin - BuyAtMarket; - end - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v28_ifr_adx_filtro + Autor: Wesley + Descricao: IFR com filtro de forca de tendencia por ADX. + Opera apenas quando ADX estiver acima do nivel minimo. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoADX(14); + ADXMinimo(20); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fADX : float; + bTendenciaValida : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fADX := ADX(PeriodoADX, PeriodoADX); + bTendenciaValida := (fADX >= ADXMinimo); + + if (not IsBought) and (not IsSold) and bTendenciaValida then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + begin + BuyAtMarket; + end + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt index 36a4646..90a2ce8 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt @@ -1,48 +1,48 @@ -{ - Estrategia: robo_ifr_v31_reversao_volume_relativo - Autor: Wesley - Descricao: Reversao IFR com filtro de volume relativo. - Entra apenas com volume acima da media recente. -} - -input - PeriodoIFR(9); - IFRExtremoCompra(30); - IFREtornoCompra(35); - IFRExtremoVenda(70); - IFREtornoVenda(65); - PeriodoMediaVolume(20); - FatorVolume(1.2); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(12); - -var - iBarrasEmPosicao : integer; - fIFR, vMediaVol : float; - bVolumeAlto : boolean; - -begin - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (Volume >= (vMediaVol * FatorVolume)); - - if (not IsBought) and (not IsSold) and bVolumeAlto then - begin - if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then - BuyAtMarket - else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then - SellShortAtMarket; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v31_reversao_volume_relativo + Autor: Wesley + Descricao: Reversao IFR com filtro de volume relativo. + Entra apenas com volume acima da media recente. +} + +input + PeriodoIFR(9); + IFRExtremoCompra(30); + IFREtornoCompra(35); + IFRExtremoVenda(70); + IFREtornoVenda(65); + PeriodoMediaVolume(20); + FatorVolume(1.2); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, vMediaVol : float; + bVolumeAlto : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (Volume >= (vMediaVol * FatorVolume)); + + if (not IsBought) and (not IsSold) and bVolumeAlto then + begin + if (fIFR[1] <= IFRExtremoCompra) and (fIFR >= IFREtornoCompra) then + BuyAtMarket + else if (fIFR[1] >= IFRExtremoVenda) and (fIFR <= IFREtornoVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt index 435062a..03f5e4d 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt @@ -1,47 +1,47 @@ -{ - Estrategia: robo_ifr_v33_pullback_mme200 - Autor: Wesley - Descricao: Pullback de IFR com contexto pela MME200. - Compra acima da MME200 e venda abaixo da MME200. -} - -input - PeriodoIFR(9); - NivelPullbackCompra(45); - NivelPullbackVenda(55); - PeriodoMMEContexto(200); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(14); - -var - iBarrasEmPosicao : integer; - fIFR, fMME200 : float; - bContextoCompra, bContextoVenda : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fMME200 := MediaExp(PeriodoMMEContexto, Close); - - bContextoCompra := (Close > fMME200); - bContextoVenda := (Close < fMME200); - - if (not IsBought) and (not IsSold) then - begin - if bContextoCompra and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then - BuyAtMarket - else if bContextoVenda and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then - SellShortAtMarket; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v33_pullback_mme200 + Autor: Wesley + Descricao: Pullback de IFR com contexto pela MME200. + Compra acima da MME200 e venda abaixo da MME200. +} + +input + PeriodoIFR(9); + NivelPullbackCompra(45); + NivelPullbackVenda(55); + PeriodoMMEContexto(200); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + +var + iBarrasEmPosicao : integer; + fIFR, fMME200 : float; + bContextoCompra, bContextoVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMMEContexto, Close); + + bContextoCompra := (Close > fMME200); + bContextoVenda := (Close < fMME200); + + if (not IsBought) and (not IsSold) then + begin + if bContextoCompra and (fIFR[1] <= NivelPullbackCompra) and (fIFR > NivelPullbackCompra) then + BuyAtMarket + else if bContextoVenda and (fIFR[1] >= NivelPullbackVenda) and (fIFR < NivelPullbackVenda) then + SellShortAtMarket; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 52)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 48)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt index 61d1667..1ab1498 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt @@ -1,52 +1,52 @@ -{ - Estrategia: robo_ifr_v36_divergencia_regular_pivo - Autor: Wesley - Descricao: Divergencia regular de IFR com confirmacao por rompimento de pivo curto. - Compra em divergencia de fundo e venda em divergencia de topo. -} - -input - PeriodoIFR(9); - DeltaIFRMinimo(2.0); - LookbackPivo(3); - UsarSaidaIFR50(true); - UsarSaidaTempo(true); - MaxBarrasPosicao(12); - -var - iBarrasEmPosicao : integer; - fIFR, fIFRAnt, fPivoAlta, fPivoBaixa : float; - bDivCompra, bDivVenda : boolean; - -begin - fIFR := IFR(PeriodoIFR); - fIFRAnt := IFR(PeriodoIFR)[1]; - fPivoAlta := Highest(High, LookbackPivo)[1]; - fPivoBaixa := Lowest(Low, LookbackPivo)[1]; - - bDivCompra := (Low < Low[1]) and (fIFR > (fIFRAnt + DeltaIFRMinimo)); - bDivVenda := (High > High[1]) and (fIFR < (fIFRAnt - DeltaIFRMinimo)); - - if (not IsBought) and (not IsSold) then - begin - if bDivCompra and (Close > fPivoAlta) then - begin - BuyAtMarket; - end - else if bDivVenda and (Close < fPivoBaixa) then - begin - SellShortAtMarket; - end; - end; - - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - iBarrasEmPosicao := 0; - - if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; - - if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then - ClosePosition; +{ + Estrategia: robo_ifr_v36_divergencia_regular_pivo + Autor: Wesley + Descricao: Divergencia regular de IFR com confirmacao por rompimento de pivo curto. + Compra em divergencia de fundo e venda em divergencia de topo. +} + +input + PeriodoIFR(9); + DeltaIFRMinimo(2.0); + LookbackPivo(3); + UsarSaidaIFR50(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + +var + iBarrasEmPosicao : integer; + fIFR, fIFRAnt, fPivoAlta, fPivoBaixa : float; + bDivCompra, bDivVenda : boolean; + +begin + fIFR := IFR(PeriodoIFR); + fIFRAnt := IFR(PeriodoIFR)[1]; + fPivoAlta := Highest(High, LookbackPivo)[1]; + fPivoBaixa := Lowest(Low, LookbackPivo)[1]; + + bDivCompra := (Low < Low[1]) and (fIFR > (fIFRAnt + DeltaIFRMinimo)); + bDivVenda := (High > High[1]) and (fIFR < (fIFRAnt - DeltaIFRMinimo)); + + if (not IsBought) and (not IsSold) then + begin + if bDivCompra and (Close > fPivoAlta) then + begin + BuyAtMarket; + end + else if bDivVenda and (Close < fPivoBaixa) then + begin + SellShortAtMarket; + end; + end; + + if IsBought or IsSold then + iBarrasEmPosicao := iBarrasEmPosicao + 1 + else + iBarrasEmPosicao := 0; + + if IsBought and ((UsarSaidaIFR50 and (fIFR >= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR50 and (fIFR <= 50)) or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; end; \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.txt b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt similarity index 96% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.txt rename to automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt index 534595a..705b4bc 100644 --- a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.txt +++ b/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt @@ -1,58 +1,58 @@ -{ - Estrategia: robo_ifr_v4_divergencia_confirmada - Autor: Wesley - Descricao: Divergencia simples de IFR com confirmacao por candle de rejeicao. - Compra: preco faz fundo menor e IFR fundo maior. - Venda: preco faz topo maior e IFR topo menor. -} - -input - PeriodoIFR(9); - LookbackDivergencia(12); - PeriodoMediaVolume(20); - FatorVolume(1.0); - UsarFiltroVolume(false); - MultiplicadorPavio(1.5); - MaxPavioOpostoCorpo(1.2); - -var - fIFR, vMediaVol : float; - Range, TamCorpo, TamPavioSup, TamPavioInf : float; - bVolumeAlto, bMartelo, bEstrela : boolean; - bDivergenciaAlta, bDivergenciaBaixa : boolean; - -begin - fIFR := IFR(PeriodoIFR); - vMediaVol := Media(PeriodoMediaVolume, Volume); - bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); - - Range := High - Low; - TamCorpo := Abs(Open - Close); - TamPavioSup := High - Max(Open, Close); - TamPavioInf := Min(Open, Close) - Low; - - bMartelo := (Range > 0) - and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); - - bEstrela := (Range > 0) - and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) - and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); - - bDivergenciaAlta := (Low < Lowest(Low, LookbackDivergencia)[1]) and (fIFR > Lowest(fIFR, LookbackDivergencia)[1]); - bDivergenciaBaixa := (High > Highest(High, LookbackDivergencia)[1]) and (fIFR < Highest(fIFR, LookbackDivergencia)[1]); - - if (not IsBought) and (not IsSold) then - begin - if bDivergenciaAlta and bMartelo and bVolumeAlto then - BuyAtMarket - else if bDivergenciaBaixa and bEstrela and bVolumeAlto then - SellShortAtMarket; - end; - - if IsBought and (fIFR >= 55) then - ClosePosition; - - if IsSold and (fIFR <= 45) then - ClosePosition; -end; +{ + Estrategia: robo_ifr_v4_divergencia_confirmada + Autor: Wesley + Descricao: Divergencia simples de IFR com confirmacao por candle de rejeicao. + Compra: preco faz fundo menor e IFR fundo maior. + Venda: preco faz topo maior e IFR topo menor. +} + +input + PeriodoIFR(9); + LookbackDivergencia(12); + PeriodoMediaVolume(20); + FatorVolume(1.0); + UsarFiltroVolume(false); + MultiplicadorPavio(1.5); + MaxPavioOpostoCorpo(1.2); + +var + fIFR, vMediaVol : float; + Range, TamCorpo, TamPavioSup, TamPavioInf : float; + bVolumeAlto, bMartelo, bEstrela : boolean; + bDivergenciaAlta, bDivergenciaBaixa : boolean; + +begin + fIFR := IFR(PeriodoIFR); + vMediaVol := Media(PeriodoMediaVolume, Volume); + bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); + + Range := High - Low; + TamCorpo := Abs(Open - Close); + TamPavioSup := High - Max(Open, Close); + TamPavioInf := Min(Open, Close) - Low; + + bMartelo := (Range > 0) + and (TamPavioInf >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioSup <= (TamCorpo * MaxPavioOpostoCorpo)); + + bEstrela := (Range > 0) + and (TamPavioSup >= (TamCorpo * MultiplicadorPavio)) + and (TamPavioInf <= (TamCorpo * MaxPavioOpostoCorpo)); + + bDivergenciaAlta := (Low < Lowest(Low, LookbackDivergencia)[1]) and (fIFR > Lowest(fIFR, LookbackDivergencia)[1]); + bDivergenciaBaixa := (High > Highest(High, LookbackDivergencia)[1]) and (fIFR < Highest(fIFR, LookbackDivergencia)[1]); + + if (not IsBought) and (not IsSold) then + begin + if bDivergenciaAlta and bMartelo and bVolumeAlto then + BuyAtMarket + else if bDivergenciaBaixa and bEstrela and bVolumeAlto then + SellShortAtMarket; + end; + + if IsBought and (fIFR >= 55) then + ClosePosition; + + if IsSold and (fIFR <= 45) then + ClosePosition; +end; diff --git a/automacao_backtests/IFR_RSI/robos_IFR.txt b/automacao_backtests/IFR_RSI/robos_IFR.md similarity index 100% rename from automacao_backtests/IFR_RSI/robos_IFR.txt rename to automacao_backtests/IFR_RSI/robos_IFR.md diff --git a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.txt rename to automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.txt rename to automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.txt rename to automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.txt rename to automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt b/automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.md similarity index 100% rename from automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.txt rename to automacao_backtests/IFR_RSI/top10/gestaoRiscoTop4_IFR.md diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl.txt diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ADX/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/ADX/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ADX/mql5/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/ADX/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/KELTNER/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/KELTNER/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/MACD/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/MACD/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/PARABOLIC_SAR/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/PARABOLIC_SAR/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/WILLIAMS_R/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/AVANCADOS/WILLIAMS_R/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/mql5/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/BOLLINGER/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/ATR_MME200/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/ATR_MME200/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/BOLLINGER_IFR/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/BOLLINGER_IFR/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/IFR_ADX/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/IFR_ADX/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/VWAP_VOLUME/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/COMBOS/VWAP_VOLUME/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/mql5/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/ESTOCASTICO/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/OBV/codigo_fonte/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/OBV/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/OBV/mql5/.gitkeep b/automacao_backtests/LABORATORIO_INDICADORES/OBV/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LABORATORIO_INDICADORES/README.md b/automacao_backtests/LABORATORIO_INDICADORES/README.md new file mode 100644 index 0000000..d6c1846 --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/README.md @@ -0,0 +1,120 @@ +# Laboratório de Indicadores — LABORATORIO_INDICADORES + +> Status: **Estrutura criada — robôs pendentes** +> Objetivo: testar cada indicador isoladamente e em combinação antes de integrar aos grupos principais + +--- + +## Por que um laboratório separado? + +Os grupos principais (`CANDLE1`, `IFR_RSI`, etc.) já têm hipóteses definidas. +O laboratório serve para **validar um indicador antes de incluí-lo** — sem contaminar os resultados dos grupos com código experimental. + +Fluxo correto: +``` +LABORATORIO → backtest isolado → aprovado? → integrar em grupo principal + → reprovado? → documentar motivo e arquivar +``` + +--- + +## Prioridade de Teste + +### Nível 1 — Alto valor, testar primeiro + +| Indicador | Pasta | Parâmetro padrão | Hipótese a validar | +|-----------|-------|-----------------|-------------------| +| **ADX** | `ADX/` | 14 períodos | ADX > 25 melhora taxa de acerto do IFR? | +| **Estocástico** | `ESTOCASTICO/` | (5,3) e (14,3) | Mais rápido que IFR para saída? | +| **Bollinger Bands** | `BOLLINGER/` | (20, 2σ) | Toque na banda + IFR = confluência? | +| **OBV** | `OBV/` | — | Divergência OBV filtra fakeouts? | + +### Nível 2 — Combinações (testar após validar os individuais) + +| Combo | Pasta | Hipótese | +|-------|-------|---------| +| **IFR + ADX** | `COMBOS/IFR_ADX/` | ADX > 25 elimina stops falsos do IFR em tendência? | +| **Bollinger + IFR** | `COMBOS/BOLLINGER_IFR/` | Banda externa + IFR extremo = reversão de alta probabilidade? | +| **VWAP + Volume** | `COMBOS/VWAP_VOLUME/` | Pullback na VWAP com volume elevado = entrada institucional? | +| **ATR + MME200** | `COMBOS/ATR_MME200/` | Stop em ATR × 1.5 além da MME200 = stop estrutural eficiente? | + +### Nível 3 — Avançados (testar quando tiver base sólida) + +| Indicador | Pasta | Por que esperar | +|-----------|-------|----------------| +| **Parabolic SAR** | `AVANCADOS/PARABOLIC_SAR/` | Trailing excelente mas precisa entender o viés antes | +| **MACD (12,26,9)** | `AVANCADOS/MACD/` | Bom para confirmar momentum, mas lag alto em 1-5min | +| **Keltner Channel** | `AVANCADOS/KELTNER/` | Alternativa à Bollinger — menos fakeouts | +| **Williams %R** | `AVANCADOS/WILLIAMS_R/` | Mais sensível que Estocástico — útil para saída rápida | + +--- + +## Estrutura de Pastas + +``` +LABORATORIO_INDICADORES/ +│ +├── README.md ← este arquivo +│ +├── ADX/ +│ ├── codigo_fonte/ ← robôs Profit isolando só o ADX (.ntsl.txt) +│ └── mql5/ ← versão MT5 (.mq5) +│ +├── ESTOCASTICO/ +│ ├── codigo_fonte/ +│ └── mql5/ +│ +├── BOLLINGER/ +│ ├── codigo_fonte/ +│ └── mql5/ +│ +├── OBV/ +│ ├── codigo_fonte/ +│ └── mql5/ +│ +├── COMBOS/ +│ ├── IFR_ADX/ +│ │ └── codigo_fonte/ +│ ├── BOLLINGER_IFR/ +│ │ └── codigo_fonte/ +│ ├── VWAP_VOLUME/ +│ │ └── codigo_fonte/ +│ └── ATR_MME200/ +│ └── codigo_fonte/ +│ +└── AVANCADOS/ + ├── PARABOLIC_SAR/ + │ └── codigo_fonte/ + ├── MACD/ + │ └── codigo_fonte/ + ├── KELTNER/ + │ └── codigo_fonte/ + └── WILLIAMS_R/ + └── codigo_fonte/ +``` + +--- + +## Critério Mínimo para Aprovação (por indicador) + +| Métrica | Aprovado se... | +|---------|---------------| +| Melhora taxa de acerto | + 3 pp em relação à versão sem o indicador | +| Não piora drawdown | Drawdown ≤ versão base | +| Robustez | Funciona em ao menos 3 timeframes diferentes | +| Simplicidade | Máximo 1 parâmetro adicional | + +--- + +## Regra de Ouro + +``` +1 indicador de TENDÊNCIA (MME200, ADX) ++ 1 indicador de MOMENTO (IFR, Estocástico, MACD) ++ 1 indicador de VOLUME (OBV, Volume relativo, VWAP) +───────────────────────────────────────────────────── += 3 camadas → alta confluência sem overfitting +``` + +> Mais de 3 indicadores = risco de overfitting. +> O robô passa no backtest mas falha ao vivo porque "memorizou" o passado. diff --git a/automacao_backtests/MAPA_GRUPOS.md b/automacao_backtests/MAPA_GRUPOS.md index 5cfc596..fd64725 100644 --- a/automacao_backtests/MAPA_GRUPOS.md +++ b/automacao_backtests/MAPA_GRUPOS.md @@ -119,6 +119,22 @@ automacao_backtests/ └── HORARIO_ESPECIFICO/ ← NOVO ├── codigo_fonte/ → (pendente) └── mql5/ → (pendente) + +LABORATORIO_INDICADORES/ ← NOVO +├── ADX/ +├── ESTOCASTICO/ +├── BOLLINGER/ +├── OBV/ +├── COMBOS/ +│ ├── IFR_ADX/ +│ ├── BOLLINGER_IFR/ +│ ├── VWAP_VOLUME/ +│ └── ATR_MME200/ +└── AVANCADOS/ + ├── PARABOLIC_SAR/ + ├── MACD/ + ├── KELTNER/ + └── WILLIAMS_R/ ``` --- @@ -143,6 +159,36 @@ automacao_backtests/ --- +## Laboratório de Indicadores + +> Pasta: `LABORATORIO_INDICADORES/` +> Propósito: validar indicadores isoladamente antes de integrar nos grupos principais + +### Fluxo +``` +Laboratório → backtest isolado → aprovado (+3pp acerto, drawdown ok) → integrar grupo + → reprovado → documentar e arquivar +``` + +### Fila de Testes (ordem de prioridade) + +| # | Indicador/Combo | Pasta | Hipótese | Status | +|---|----------------|-------|---------|--------| +| 1 | **ADX(14)** | `ADX/` | ADX > 25 elimina stops falsos do IFR em tendência | ⬜ Pendente | +| 2 | **Estocástico(5,3)** | `ESTOCASTICO/` | Mais rápido que IFR para saída e scalping | ⬜ Pendente | +| 3 | **Bollinger(20,2σ)** | `BOLLINGER/` | Toque na banda + IFR extremo = alta confluência | ⬜ Pendente | +| 4 | **OBV** | `OBV/` | Divergência OBV filtra fakeouts antes da entrada | ⬜ Pendente | +| 5 | **IFR + ADX** | `COMBOS/IFR_ADX/` | ADX filtra os falsos do IFR sozinho | ⬜ Pendente | +| 6 | **Bollinger + IFR** | `COMBOS/BOLLINGER_IFR/` | Confluência banda+IFR = reversão de alta prob. | ⬜ Pendente | +| 7 | **VWAP + Volume** | `COMBOS/VWAP_VOLUME/` | Volume elevado na VWAP = entrada institucional | ⬜ Pendente | +| 8 | **ATR + MME200** | `COMBOS/ATR_MME200/` | Stop ATR×1.5 além da MME200 = stop estrutural | ⬜ Pendente | +| 9 | Parabolic SAR | `AVANCADOS/PARABOLIC_SAR/` | Trailing dinâmico superior ao ATR fixo | ⬜ Futuro | +| 10 | MACD(12,26,9) | `AVANCADOS/MACD/` | Confirma momentum — evita entrar no fim do movimento | ⬜ Futuro | +| 11 | Keltner Channel | `AVANCADOS/KELTNER/` | Menos fakeouts que Bollinger | ⬜ Futuro | +| 12 | Williams %R | `AVANCADOS/WILLIAMS_R/` | Saída mais rápida que Estocástico | ⬜ Futuro | + +--- + ## Parâmetros Padrão de Gestão de Risco (todos os grupos) ```ntsl diff --git a/automacao_backtests/NeologicaProfitAPIbacktest.txt b/automacao_backtests/NeologicaProfitAPIbacktest.md similarity index 100% rename from automacao_backtests/NeologicaProfitAPIbacktest.txt rename to automacao_backtests/NeologicaProfitAPIbacktest.md diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md b/automacao_backtests/POUCOSPONTOSVENCEDORES/poucospontosVencedores.md similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/poutosPontosVencedores.md rename to automacao_backtests/POUCOSPONTOSVENCEDORES/poucospontosVencedores.md diff --git a/profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.txt b/profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.txt rename to profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.txt b/profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.txt rename to profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.txt b/profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.txt rename to profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_DetectorFasesMercado.txt b/profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_DetectorFasesMercado.txt rename to profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_DivergenciaIFR.txt b/profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_DivergenciaIFR.txt rename to profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_HorarioTurbulencia.txt b/profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_HorarioTurbulencia.txt rename to profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_MediasSetupDiario.txt b/profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_MediasSetupDiario.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_MediasSetupSemana.txt b/profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_MediasSetupSemana.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.txt b/profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.txt rename to profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PainelDecisao.txt b/profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PainelDecisao.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt b/profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.txt b/profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.txt rename to profit_estudos_cores/fev2026/fev_PriceActionAnaliseCorpo.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.txt b/profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.txt rename to profit_estudos_cores/fev2026/fev_PriceActionAnaliseSombra.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.txt b/profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.txt rename to profit_estudos_cores/fev2026/fev_PriceActionCorpoSombraExecucao.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionNewton.txt b/profit_estudos_cores/fev2026/fev_PriceActionNewton.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionNewton.txt rename to profit_estudos_cores/fev2026/fev_PriceActionNewton.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.txt b/profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.ntsl.txt similarity index 97% rename from profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.txt rename to profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.ntsl.txt index 53ba2fa..b6aa1e2 100644 --- a/profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.txt +++ b/profit_estudos_cores/fev2026/fev_PriceActionNewtonIFR.ntsl.txt @@ -1,582 +1,582 @@ -{ - Indicador: fev_PriceActionNewtonIFR - Autor: Wesley (Gemini Code Assist) - Descrição: Versão do Price Action Newton com filtro de IFR para reduzir falso sinal. - Mantém lógica de Força/Massa/Aceleração e adiciona veto por momentum (IFR). -} - -input - // Configuração de Visualização - iModoVisualizacao(0); // 0: Força, 1: Massa, 2: Aceleração - bVisualizarAltaIntensidade(true); // true: Alta Volatilidade/Força, false: Baixa (Consolidação) - iPeriodoSuavizacao(3); // 1 = Sem suavização (Cru). 3 a 5 = Ideal para WINFUT (Filtra ruído) - AtivarCorteHorarioVisual(true); - HoraCorteVisual(150000); // Após 15:00, pintar preto - - // Módulo ATR - UsarModuloATR(true); - NormalizarForcaPorATR(true); - PeriodoATR(14); - PeriodoMediaATR(50); - FatorMinATR(0.90); - FatorMaxATR(2.50); - - // Módulo IFR (novo) - UsarFiltroIFR(true); - PeriodoIFR(14); - IFRMinCompra(52); // Acima disto, compra ganha permissão - IFRMaxVenda(48); // Abaixo disto, venda ganha permissão - UsarVetoExtremosIFR(true); - IFRSobrecompra(75); // Evita compra esticada - IFRSobrevenda(25); // Evita venda esticada - IFRFaixaNeutraMin(35); // Faixa neutra do IFR para bloquear sinais de Força - IFRFaixaNeutraMax(60); - - // Alarmes IFR (pontos de atuação e saída) - AtivarAlarmeIFR(true); - IFRAlvoCompra(10); - IFRAlvoVenda(90); - - // Zonas de atenção para sinais de rejeição (novo) - IFRZonaRejeicaoTopoMin(60); - IFRZonaRejeicaoTopoMax(80); - IFRZonaRejeicaoFundoMin(20); - IFRZonaRejeicaoFundoMax(40); - - // Rejeição robusta (score + confirmação) - UsarScoreRejeicao(true); - PontuacaoMinRejeicao(70); - PesoPavioRejeicao(30); - PesoFechamentoRejeicao(25); - PesoVolumeRejeicao(20); - PesoExtremoRejeicao(15); - PesoRangeATRRejeicao(10); - PesoCansacoRejeicao(10); - UsarFiltroCansacoRejeicao(true); - PeriodoATRRejeicao(14); - FatorRangeMinATRRejeicao(0.80); - FatorVolumeMinRejeicao(1.20); - UsarFatorVolumePorHorario(true); - HoraFimManha(113000); - HoraFimMiolo(163000); - FatorVolumeMinRejeicaoManha(1.30); - FatorVolumeMinRejeicaoMiolo(1.00); - FatorVolumeMinRejeicaoFechamento(1.15); - PeriodoExtremoRejeicao(20); - ConfirmarRejeicaoNoCandleSeguinte(true); - - // Primeiro candle - AtivarAnalisePrimeiroCandle(true); - pFatorVolumePrimeiroCandle(1.5); - pCorpoMinPrimeiroCandle(0.60); - - // Parâmetros configuráveis na tela - pFatorVelocidadeAltaManha(2.5); - pFatorVelocidadeBaixaManha(0.4); - pFatorForcaAltaManha(2.5); - pFatorForcaBaixaManha(0.4); - pFatorMassaAltaManha(2.0); - pFatorMassaBaixaManha(0.7); - pFatorConsolidacaoManha(0.4); - - pFatorVelocidadeAltaTarde(1.8); - pFatorVelocidadeBaixaTarde(0.6); - pFatorForcaAltaTarde(1.8); - pFatorForcaBaixaTarde(0.6); - pFatorMassaAltaTarde(1.5); - pFatorMassaBaixaTarde(0.8); - pFatorConsolidacaoTarde(0.6); - -var - // Cores - cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco, cLaranja, cPreto : Integer; - nR, nG, nB, j : Integer; - - // Variáveis de Price Action Newton - fVelocidade, fAceleracao, fMassa, fForca, fMaxForca, fIntensidade : float; - fForcaBase, fATRAtual, fATRMedio : float; - fVelocidadeAnt, fAceleracaoAnt, fMassaAnt, fForcaAnt : float; - fPrecoBase, fPrecoBaseAnt, fPrecoBaseAnt2, fPrecoBaseAnt3 : float; - - // Variáveis IFR - fIFR : float; - bIFRCompraOK, bIFRVendaOK, bIFRFaixaNeutraGlobal : boolean; - bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; - bAlertaIFRCompra, bAlertaIFRVenda : boolean; - - // Price Action nas zonas IFR - fRangeAtual, fCorpoAtual, fPavioSupAtual, fPavioInfAtual, fMediaVolumePA : float; - bAltaAtual, bBaixaAtual, bDojiForteZona : boolean; - bPinBarTopoZona, bPinBarFundoZona : boolean; - bEngolfoBaixaZona, bEngolfoAltaZona : boolean; - bInsideBarZona, bRejectionSpikeTopoZona, bRejectionSpikeFundoZona : boolean; - bReversaoBaixaZona, bReversaoAltaZona : boolean; - bCondPavioTopo, bCondPavioFundo : boolean; - bCondFechamentoTopo, bCondFechamentoFundo : boolean; - bCondVolumeRejeicao, bCondRangeATRRejeicao : boolean; - bCondExtremoTopo, bCondExtremoFundo : boolean; - bCondCansacoTopo, bCondCansacoFundo : boolean; - bRejeicaoTopoScoreRaw, bRejeicaoFundoScoreRaw : boolean; - bRejeicaoTopoScoreRawPrev, bRejeicaoFundoScoreRawPrev : boolean; - bRejeicaoTopoScoreFinal, bRejeicaoFundoScoreFinal : boolean; - iScoreRejeicaoTopo, iScoreRejeicaoFundo : Integer; - - // Primeiro candle - fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : float; - bPrimeiroCandleDia, bPrimeiroAlta, bPrimeiroBaixa, bDojiPrimeiro, bAbsorcaoPrimeiro : boolean; - bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; - bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; - bIFRZonaRejeicaoTopo, bIFRZonaRejeicaoFundo : boolean; - fATRRejeicaoZona, fMediaVolumeRejeicaoZona : float; - fTopoExtremoRefZona, fFundoExtremoRefZona, fCloseAnteriorRefZona : float; - fOpenAnteriorRefZona, fHighAnteriorRefZona, fLowAnteriorRefZona : float; - fForcaBaseAnteriorZona : float; - fFatorVolumeMinRejeicaoDinamico : float; - - // Contexto - bATRRegimeOK : boolean; - bPeriodoManha : boolean; - iHoraAtualHHMM, iHoraFimManhaHHMM, iHoraFimMioloHHMM, iHoraCorteVisualHHMM : Integer; - -begin - // 1. Definição de Cores - cVerde := RGB(0, 255, 0); - cVermelho := RGB(255, 0, 0); - cCiano := RGB(0, 255, 255); - cFucsia := RGB(255, 0, 255); - cMarrom := RGB(139, 69, 19); - cCinza := RGB(169, 169, 169); - cBranco := RGB(255, 255, 255); - cLaranja := RGB(255, 140, 0); - cPreto := RGB(0, 0, 0); - - // 2. Identificação do Período (Manhã ou Tarde) - // Normaliza horário para HHMM (funciona se Time vier em HHMM ou HHMMSS) - iHoraAtualHHMM := Time; - if iHoraAtualHHMM > 2400 then - iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); - - iHoraFimManhaHHMM := HoraFimManha; - if iHoraFimManhaHHMM > 2400 then - iHoraFimManhaHHMM := Round(iHoraFimManhaHHMM / 100); - - iHoraFimMioloHHMM := HoraFimMiolo; - if iHoraFimMioloHHMM > 2400 then - iHoraFimMioloHHMM := Round(iHoraFimMioloHHMM / 100); - - iHoraCorteVisualHHMM := HoraCorteVisual; - if iHoraCorteVisualHHMM > 2400 then - iHoraCorteVisualHHMM := Round(iHoraCorteVisualHHMM / 100); - - bPeriodoManha := (iHoraAtualHHMM < 1200); - - // 2.1 Fator dinâmico de volume por horário (curva intraday B3) - if not UsarFatorVolumePorHorario then - fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicao - else if iHoraAtualHHMM <= iHoraFimManhaHHMM then - fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoManha - else if iHoraAtualHHMM <= iHoraFimMioloHHMM then - fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoMiolo - else - fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoFechamento; - - // 3. Cálculos Físicos (Newton) - if iPeriodoSuavizacao > 1 then - fPrecoBase := MediaExp(iPeriodoSuavizacao, Close) - else - fPrecoBase := Close; - - fPrecoBaseAnt := fPrecoBase[1]; - fPrecoBaseAnt2 := fPrecoBase[2]; - fPrecoBaseAnt3 := fPrecoBase[3]; - - fVelocidade := fPrecoBase - fPrecoBaseAnt; - fVelocidadeAnt := fPrecoBaseAnt - fPrecoBaseAnt2; - - fAceleracao := fVelocidade - fVelocidadeAnt; - fAceleracaoAnt := fVelocidadeAnt - (fPrecoBaseAnt2 - fPrecoBaseAnt3); - - fMassa := Volume; - fMassaAnt := Volume[1]; - - fForca := fMassa * fAceleracao; - fForcaAnt := fMassaAnt * fAceleracaoAnt; - - // 4. Módulo ATR - fATRAtual := Media(PeriodoATR, Range); - fATRMedio := Media(PeriodoMediaATR, fATRAtual); - if fATRMedio <= 0 then - fATRMedio := 0.01; - - bATRRegimeOK := (not UsarModuloATR) - or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); - - fForcaBase := fForca; - if NormalizarForcaPorATR then - begin - if fATRAtual > 0 then - fForcaBase := fForca / fATRAtual - else - fForcaBase := fForca; - end; - - // 5. Módulo IFR (veto de direção) - fIFR := IFR(PeriodoIFR); - - bIFRFaixaNeutraGlobal := (fIFR >= IFRFaixaNeutraMin) and (fIFR <= IFRFaixaNeutraMax); - - if bIFRFaixaNeutraGlobal then - begin - bIFRCompraOK := True; - bIFRVendaOK := True; - bATRRegimeOK := True; - end - else - begin - bIFRCompraOK := (not UsarFiltroIFR) - or ((fIFR >= IFRMinCompra) - and ((not UsarVetoExtremosIFR) or (fIFR <= IFRSobrecompra))); - - bIFRVendaOK := (not UsarFiltroIFR) - or ((fIFR <= IFRMaxVenda) - and ((not UsarVetoExtremosIFR) or (fIFR >= IFRSobrevenda))); - end; - - bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); - bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); - - // 5.1 Alarmes IFR (disparo por cruzamento dos níveis) - bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) - or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); - - bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) - or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); - - if AtivarAlarmeIFR then - begin - if bAlertaIFRCompra then - Alert(cCiano) - else if bAlertaIFRVenda then - Alert(cFucsia); - end; - - // Referências robustas fora de escopos condicionais - fATRRejeicaoZona := Media(PeriodoATRRejeicao, Range); - if fATRRejeicaoZona <= 0 then - fATRRejeicaoZona := 0.01; - - fMediaVolumeRejeicaoZona := Media(20, Volume); - if fMediaVolumeRejeicaoZona <= 0 then - fMediaVolumeRejeicaoZona := 1; - - fTopoExtremoRefZona := Highest(High, PeriodoExtremoRejeicao)[1]; - fFundoExtremoRefZona := Lowest(Low, PeriodoExtremoRejeicao)[1]; - fCloseAnteriorRefZona := Close[1]; - fOpenAnteriorRefZona := Open[1]; - fHighAnteriorRefZona := High[1]; - fLowAnteriorRefZona := Low[1]; - fForcaBaseAnteriorZona := fForcaBase[1]; - bRejeicaoTopoScoreRawPrev := bRejeicaoTopoScoreRaw[1]; - bRejeicaoFundoScoreRawPrev := bRejeicaoFundoScoreRaw[1]; - - // 6. Lógica de Coloração Dinâmica - PaintBar(cCinza); - - // Modo 0: FORÇA (F = M * A) - if iModoVisualizacao = 0 then - begin - if not bATRRegimeOK then - PaintBar(cCinza) - else - begin - fMaxForca := 0.0001; - for j := 0 to 20 do - begin - if Abs(fForcaBase[j]) > fMaxForca then fMaxForca := Abs(fForcaBase[j]); - end; - - fIntensidade := Abs(fForcaBase) / fMaxForca; - if fIntensidade > 1.0 then fIntensidade := 1.0; - - if bIFRFaixaNeutraGlobal then - PaintBar(cCinza) - else if (fForcaBase > 0) then - begin - nR := 255 - Round(255 * fIntensidade); - nG := 255; - nB := 255 - Round(255 * fIntensidade); - PaintBar(RGB(nR, nG, nB)); - end - else if (fForcaBase < 0) then - begin - nR := 255; - nG := 255 - Round(255 * fIntensidade); - nB := 255 - Round(255 * fIntensidade); - PaintBar(RGB(nR, nG, nB)); - end - else if fForcaBase = 0 then - PaintBar(cBranco) - else - PaintBar(cCinza); - end; - end - - // Modo 1: MASSA (Volume) - else if iModoVisualizacao = 1 then - begin - if not bATRRegimeOK then - PaintBar(cCinza) - else if bIFRFaixaNeutraGlobal then - PaintBar(cCinza) - else if bVisualizarAltaIntensidade then - begin - if ((bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaManha)) or - ((not bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaTarde)) then - begin - if (Close >= Open) and bIFRCompraOK then - PaintBar(cCiano) - else if (Close < Open) and bIFRVendaOK then - PaintBar(cFucsia) - else - PaintBar(cCinza); - end; - end - else - begin - if ((bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaManha)) or - ((not bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaTarde)) then - PaintBar(cCinza); - end; - end - - // Modo 2: ACELERAÇÃO - else if iModoVisualizacao = 2 then - begin - if not bATRRegimeOK then - PaintBar(cCinza) - else if bIFRFaixaNeutraGlobal then - PaintBar(cCinza) - else if bVisualizarAltaIntensidade then - begin - if ((bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaManha)) or - ((not bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaTarde)) then - begin - if (fAceleracao > 0) and bIFRCompraOK then - PaintBar(cCiano) - else if (fAceleracao < 0) and bIFRVendaOK then - PaintBar(cFucsia) - else - PaintBar(cCinza); - end; - end - else - begin - if ((bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaManha)) or - ((not bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaTarde)) then - PaintBar(cCinza); - end; - end; - - // 6.1 Override: Price Action nas zonas IFR de rejeição (qualquer candle) - if bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal then - begin - fRangeAtual := High - Low; - if fRangeAtual <= 0 then - fRangeAtual := 0.01; - - fCorpoAtual := Abs(Close - Open); - fMediaVolumePA := fMediaVolumeRejeicaoZona; - - if Close >= Open then - begin - fPavioSupAtual := High - Close; - fPavioInfAtual := Open - Low; - bAltaAtual := True; - bBaixaAtual := False; - end - else - begin - fPavioSupAtual := High - Open; - fPavioInfAtual := Close - Low; - bAltaAtual := False; - bBaixaAtual := True; - end; - - bPinBarTopoZona := bIFRZonaRejeicaoTopoGlobal - and (fPavioSupAtual > (fCorpoAtual * 2.0)) - and (Close <= (Low + (fRangeAtual * 0.35))); - - bPinBarFundoZona := bIFRZonaRejeicaoFundoGlobal - and (fPavioInfAtual > (fCorpoAtual * 2.0)) - and (Close >= (High - (fRangeAtual * 0.35))); - - bEngolfoBaixaZona := bIFRZonaRejeicaoTopoGlobal - and bBaixaAtual - and (fCloseAnteriorRefZona > fOpenAnteriorRefZona) - and (Open >= fCloseAnteriorRefZona) - and (Close <= fOpenAnteriorRefZona); - - bEngolfoAltaZona := bIFRZonaRejeicaoFundoGlobal - and bAltaAtual - and (fCloseAnteriorRefZona < fOpenAnteriorRefZona) - and (Open <= fCloseAnteriorRefZona) - and (Close >= fOpenAnteriorRefZona); - - bInsideBarZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) - and (High < fHighAnteriorRefZona) - and (Low > fLowAnteriorRefZona); - - bRejectionSpikeTopoZona := bIFRZonaRejeicaoTopoGlobal - and (fPavioSupAtual > (fRangeAtual * 0.60)) - and (fCorpoAtual < (fRangeAtual * 0.25)); - - bRejectionSpikeFundoZona := bIFRZonaRejeicaoFundoGlobal - and (fPavioInfAtual > (fRangeAtual * 0.60)) - and (fCorpoAtual < (fRangeAtual * 0.25)); - - bReversaoBaixaZona := bIFRZonaRejeicaoTopoGlobal - and bBaixaAtual - and (High >= fHighAnteriorRefZona) - and (Close < ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); - - bReversaoAltaZona := bIFRZonaRejeicaoFundoGlobal - and bAltaAtual - and (Low <= fLowAnteriorRefZona) - and (Close > ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); - - bDojiForteZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) - and (fCorpoAtual <= (fRangeAtual * 0.10)) - and (Volume >= (fMediaVolumePA * 1.20)); - - // Score de rejeição (qualidade do sinal) - bCondPavioTopo := (fPavioSupAtual > (fCorpoAtual * 2.0)) and (fPavioSupAtual > fPavioInfAtual); - bCondPavioFundo := (fPavioInfAtual > (fCorpoAtual * 2.0)) and (fPavioInfAtual > fPavioSupAtual); - - bCondFechamentoTopo := (Close <= (Low + (fRangeAtual * 0.35))); - bCondFechamentoFundo := (Close >= (High - (fRangeAtual * 0.35))); - - bCondVolumeRejeicao := (Volume >= (fMediaVolumeRejeicaoZona * fFatorVolumeMinRejeicaoDinamico)); - bCondRangeATRRejeicao := (fRangeAtual >= (fATRRejeicaoZona * FatorRangeMinATRRejeicao)); - bCondExtremoTopo := (High >= fTopoExtremoRefZona); - bCondExtremoFundo := (Low <= fFundoExtremoRefZona); - bCondCansacoTopo := (fAceleracao <= 0) or (fForcaBase < 0) or (fForcaBase < fForcaBaseAnteriorZona); - bCondCansacoFundo := (fAceleracao >= 0) or (fForcaBase > 0) or (fForcaBase > fForcaBaseAnteriorZona); - - iScoreRejeicaoTopo := 0; - if bCondPavioTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoPavioRejeicao; - if bCondFechamentoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoFechamentoRejeicao; - if bCondVolumeRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoVolumeRejeicao; - if bCondExtremoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoExtremoRejeicao; - if bCondRangeATRRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoRangeATRRejeicao; - if (not UsarFiltroCansacoRejeicao) or bCondCansacoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoCansacoRejeicao; - - iScoreRejeicaoFundo := 0; - if bCondPavioFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoPavioRejeicao; - if bCondFechamentoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoFechamentoRejeicao; - if bCondVolumeRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoVolumeRejeicao; - if bCondExtremoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoExtremoRejeicao; - if bCondRangeATRRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoRangeATRRejeicao; - if (not UsarFiltroCansacoRejeicao) or bCondCansacoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoCansacoRejeicao; - - bRejeicaoTopoScoreRaw := bIFRZonaRejeicaoTopoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoTopo >= PontuacaoMinRejeicao)); - bRejeicaoFundoScoreRaw := bIFRZonaRejeicaoFundoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoFundo >= PontuacaoMinRejeicao)); - if ConfirmarRejeicaoNoCandleSeguinte then - begin - bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRawPrev and (Close < fLowAnteriorRefZona); - bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRawPrev and (Close > fHighAnteriorRefZona); - end - else - begin - bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRaw; - bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRaw; - end; - - if (bEngolfoBaixaZona or bPinBarTopoZona or bRejectionSpikeTopoZona or bReversaoBaixaZona) and bRejeicaoTopoScoreFinal then - PaintBar(cLaranja) - else if (bEngolfoAltaZona or bPinBarFundoZona or bRejectionSpikeFundoZona or bReversaoAltaZona) and bRejeicaoFundoScoreFinal then - PaintBar(cLaranja) - else if bInsideBarZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then - PaintBar(cLaranja) - else if bDojiForteZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then - PaintBar(cLaranja); - end; - - // 7. Override opcional: análise específica do primeiro candle - bPrimeiroCandleDia := (Date <> Date[1]); - if bPrimeiroCandleDia and AtivarAnalisePrimeiroCandle then - begin - fRangePrimeiro := High - Low; - if fRangePrimeiro <= 0 then - fRangePrimeiro := 0.01; - - fCorpoPrimeiro := Abs(Close - Open); - fMediaVolumePrimeiro := Media(20, Volume); - if fMediaVolumePrimeiro <= 0 then - fMediaVolumePrimeiro := 1; - - bPrimeiroAlta := (Close > Open); - bPrimeiroBaixa := (Close < Open); - bDojiPrimeiro := (fCorpoPrimeiro <= (fRangePrimeiro * 0.10)); - - if (Close >= Open) then - begin - fPavioSupPrimeiro := High - Close; - fPavioInfPrimeiro := Open - Low; - end - else - begin - fPavioSupPrimeiro := High - Open; - fPavioInfPrimeiro := Close - Low; - end; - - bIFRZonaRejeicaoTopo := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); - bIFRZonaRejeicaoFundo := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); - - bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) - and (fPavioSupPrimeiro > (fRangePrimeiro * 0.45)) - and (Close <= (Low + (fRangePrimeiro * 0.35))) - and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) - and bIFRZonaRejeicaoTopo; - - bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) - and (fPavioInfPrimeiro > (fRangePrimeiro * 0.45)) - and (Close >= (High - (fRangePrimeiro * 0.35))) - and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) - and bIFRZonaRejeicaoFundo; - - bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); - bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); - bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); - - bGapAltaPrimeiro := (Open > fCloseAnteriorRefZona); - bGapBaixaPrimeiro := (Open < fCloseAnteriorRefZona); - bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) - or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); - - if bArmadilhaPrimeiro then - PaintBar(cMarrom) - else if bRejeicaoTopoPrimeiro and bIFRVendaOK then - PaintBar(cLaranja) - else if bRejeicaoFundoPrimeiro and bIFRCompraOK then - PaintBar(cLaranja) - else if bIniciativaAltaPrimeiro and bIFRCompraOK then - PaintBar(cCiano) - else if bIniciativaBaixaPrimeiro and bIFRVendaOK then - PaintBar(cFucsia) - else if bDojiPrimeiro and (bIFRZonaRejeicaoTopo or bIFRZonaRejeicaoFundo) then - PaintBar(cLaranja) - else if bAbsorcaoPrimeiro or bDojiPrimeiro then - PaintBar(cBranco) - else if bPrimeiroAlta and bIFRCompraOK then - PaintBar(cVerde) - else if bPrimeiroBaixa and bIFRVendaOK then - PaintBar(cVermelho) - else - PaintBar(cCinza); - end; - - // 8. Corte visual por horário (prioridade máxima) - if AtivarCorteHorarioVisual and (iHoraAtualHHMM >= iHoraCorteVisualHHMM) then - PaintBar(cPreto); - +{ + Indicador: fev_PriceActionNewtonIFR + Autor: Wesley (Gemini Code Assist) + Descrição: Versão do Price Action Newton com filtro de IFR para reduzir falso sinal. + Mantém lógica de Força/Massa/Aceleração e adiciona veto por momentum (IFR). +} + +input + // Configuração de Visualização + iModoVisualizacao(0); // 0: Força, 1: Massa, 2: Aceleração + bVisualizarAltaIntensidade(true); // true: Alta Volatilidade/Força, false: Baixa (Consolidação) + iPeriodoSuavizacao(3); // 1 = Sem suavização (Cru). 3 a 5 = Ideal para WINFUT (Filtra ruído) + AtivarCorteHorarioVisual(true); + HoraCorteVisual(150000); // Após 15:00, pintar preto + + // Módulo ATR + UsarModuloATR(true); + NormalizarForcaPorATR(true); + PeriodoATR(14); + PeriodoMediaATR(50); + FatorMinATR(0.90); + FatorMaxATR(2.50); + + // Módulo IFR (novo) + UsarFiltroIFR(true); + PeriodoIFR(14); + IFRMinCompra(52); // Acima disto, compra ganha permissão + IFRMaxVenda(48); // Abaixo disto, venda ganha permissão + UsarVetoExtremosIFR(true); + IFRSobrecompra(75); // Evita compra esticada + IFRSobrevenda(25); // Evita venda esticada + IFRFaixaNeutraMin(35); // Faixa neutra do IFR para bloquear sinais de Força + IFRFaixaNeutraMax(60); + + // Alarmes IFR (pontos de atuação e saída) + AtivarAlarmeIFR(true); + IFRAlvoCompra(10); + IFRAlvoVenda(90); + + // Zonas de atenção para sinais de rejeição (novo) + IFRZonaRejeicaoTopoMin(60); + IFRZonaRejeicaoTopoMax(80); + IFRZonaRejeicaoFundoMin(20); + IFRZonaRejeicaoFundoMax(40); + + // Rejeição robusta (score + confirmação) + UsarScoreRejeicao(true); + PontuacaoMinRejeicao(70); + PesoPavioRejeicao(30); + PesoFechamentoRejeicao(25); + PesoVolumeRejeicao(20); + PesoExtremoRejeicao(15); + PesoRangeATRRejeicao(10); + PesoCansacoRejeicao(10); + UsarFiltroCansacoRejeicao(true); + PeriodoATRRejeicao(14); + FatorRangeMinATRRejeicao(0.80); + FatorVolumeMinRejeicao(1.20); + UsarFatorVolumePorHorario(true); + HoraFimManha(113000); + HoraFimMiolo(163000); + FatorVolumeMinRejeicaoManha(1.30); + FatorVolumeMinRejeicaoMiolo(1.00); + FatorVolumeMinRejeicaoFechamento(1.15); + PeriodoExtremoRejeicao(20); + ConfirmarRejeicaoNoCandleSeguinte(true); + + // Primeiro candle + AtivarAnalisePrimeiroCandle(true); + pFatorVolumePrimeiroCandle(1.5); + pCorpoMinPrimeiroCandle(0.60); + + // Parâmetros configuráveis na tela + pFatorVelocidadeAltaManha(2.5); + pFatorVelocidadeBaixaManha(0.4); + pFatorForcaAltaManha(2.5); + pFatorForcaBaixaManha(0.4); + pFatorMassaAltaManha(2.0); + pFatorMassaBaixaManha(0.7); + pFatorConsolidacaoManha(0.4); + + pFatorVelocidadeAltaTarde(1.8); + pFatorVelocidadeBaixaTarde(0.6); + pFatorForcaAltaTarde(1.8); + pFatorForcaBaixaTarde(0.6); + pFatorMassaAltaTarde(1.5); + pFatorMassaBaixaTarde(0.8); + pFatorConsolidacaoTarde(0.6); + +var + // Cores + cVerde, cVermelho, cCiano, cFucsia, cMarrom, cCinza, cBranco, cLaranja, cPreto : Integer; + nR, nG, nB, j : Integer; + + // Variáveis de Price Action Newton + fVelocidade, fAceleracao, fMassa, fForca, fMaxForca, fIntensidade : float; + fForcaBase, fATRAtual, fATRMedio : float; + fVelocidadeAnt, fAceleracaoAnt, fMassaAnt, fForcaAnt : float; + fPrecoBase, fPrecoBaseAnt, fPrecoBaseAnt2, fPrecoBaseAnt3 : float; + + // Variáveis IFR + fIFR : float; + bIFRCompraOK, bIFRVendaOK, bIFRFaixaNeutraGlobal : boolean; + bIFRZonaRejeicaoTopoGlobal, bIFRZonaRejeicaoFundoGlobal : boolean; + bAlertaIFRCompra, bAlertaIFRVenda : boolean; + + // Price Action nas zonas IFR + fRangeAtual, fCorpoAtual, fPavioSupAtual, fPavioInfAtual, fMediaVolumePA : float; + bAltaAtual, bBaixaAtual, bDojiForteZona : boolean; + bPinBarTopoZona, bPinBarFundoZona : boolean; + bEngolfoBaixaZona, bEngolfoAltaZona : boolean; + bInsideBarZona, bRejectionSpikeTopoZona, bRejectionSpikeFundoZona : boolean; + bReversaoBaixaZona, bReversaoAltaZona : boolean; + bCondPavioTopo, bCondPavioFundo : boolean; + bCondFechamentoTopo, bCondFechamentoFundo : boolean; + bCondVolumeRejeicao, bCondRangeATRRejeicao : boolean; + bCondExtremoTopo, bCondExtremoFundo : boolean; + bCondCansacoTopo, bCondCansacoFundo : boolean; + bRejeicaoTopoScoreRaw, bRejeicaoFundoScoreRaw : boolean; + bRejeicaoTopoScoreRawPrev, bRejeicaoFundoScoreRawPrev : boolean; + bRejeicaoTopoScoreFinal, bRejeicaoFundoScoreFinal : boolean; + iScoreRejeicaoTopo, iScoreRejeicaoFundo : Integer; + + // Primeiro candle + fRangePrimeiro, fCorpoPrimeiro, fPavioSupPrimeiro, fPavioInfPrimeiro, fMediaVolumePrimeiro : float; + bPrimeiroCandleDia, bPrimeiroAlta, bPrimeiroBaixa, bDojiPrimeiro, bAbsorcaoPrimeiro : boolean; + bRejeicaoTopoPrimeiro, bRejeicaoFundoPrimeiro, bIniciativaAltaPrimeiro, bIniciativaBaixaPrimeiro : boolean; + bGapAltaPrimeiro, bGapBaixaPrimeiro, bArmadilhaPrimeiro : boolean; + bIFRZonaRejeicaoTopo, bIFRZonaRejeicaoFundo : boolean; + fATRRejeicaoZona, fMediaVolumeRejeicaoZona : float; + fTopoExtremoRefZona, fFundoExtremoRefZona, fCloseAnteriorRefZona : float; + fOpenAnteriorRefZona, fHighAnteriorRefZona, fLowAnteriorRefZona : float; + fForcaBaseAnteriorZona : float; + fFatorVolumeMinRejeicaoDinamico : float; + + // Contexto + bATRRegimeOK : boolean; + bPeriodoManha : boolean; + iHoraAtualHHMM, iHoraFimManhaHHMM, iHoraFimMioloHHMM, iHoraCorteVisualHHMM : Integer; + +begin + // 1. Definição de Cores + cVerde := RGB(0, 255, 0); + cVermelho := RGB(255, 0, 0); + cCiano := RGB(0, 255, 255); + cFucsia := RGB(255, 0, 255); + cMarrom := RGB(139, 69, 19); + cCinza := RGB(169, 169, 169); + cBranco := RGB(255, 255, 255); + cLaranja := RGB(255, 140, 0); + cPreto := RGB(0, 0, 0); + + // 2. Identificação do Período (Manhã ou Tarde) + // Normaliza horário para HHMM (funciona se Time vier em HHMM ou HHMMSS) + iHoraAtualHHMM := Time; + if iHoraAtualHHMM > 2400 then + iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); + + iHoraFimManhaHHMM := HoraFimManha; + if iHoraFimManhaHHMM > 2400 then + iHoraFimManhaHHMM := Round(iHoraFimManhaHHMM / 100); + + iHoraFimMioloHHMM := HoraFimMiolo; + if iHoraFimMioloHHMM > 2400 then + iHoraFimMioloHHMM := Round(iHoraFimMioloHHMM / 100); + + iHoraCorteVisualHHMM := HoraCorteVisual; + if iHoraCorteVisualHHMM > 2400 then + iHoraCorteVisualHHMM := Round(iHoraCorteVisualHHMM / 100); + + bPeriodoManha := (iHoraAtualHHMM < 1200); + + // 2.1 Fator dinâmico de volume por horário (curva intraday B3) + if not UsarFatorVolumePorHorario then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicao + else if iHoraAtualHHMM <= iHoraFimManhaHHMM then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoManha + else if iHoraAtualHHMM <= iHoraFimMioloHHMM then + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoMiolo + else + fFatorVolumeMinRejeicaoDinamico := FatorVolumeMinRejeicaoFechamento; + + // 3. Cálculos Físicos (Newton) + if iPeriodoSuavizacao > 1 then + fPrecoBase := MediaExp(iPeriodoSuavizacao, Close) + else + fPrecoBase := Close; + + fPrecoBaseAnt := fPrecoBase[1]; + fPrecoBaseAnt2 := fPrecoBase[2]; + fPrecoBaseAnt3 := fPrecoBase[3]; + + fVelocidade := fPrecoBase - fPrecoBaseAnt; + fVelocidadeAnt := fPrecoBaseAnt - fPrecoBaseAnt2; + + fAceleracao := fVelocidade - fVelocidadeAnt; + fAceleracaoAnt := fVelocidadeAnt - (fPrecoBaseAnt2 - fPrecoBaseAnt3); + + fMassa := Volume; + fMassaAnt := Volume[1]; + + fForca := fMassa * fAceleracao; + fForcaAnt := fMassaAnt * fAceleracaoAnt; + + // 4. Módulo ATR + fATRAtual := Media(PeriodoATR, Range); + fATRMedio := Media(PeriodoMediaATR, fATRAtual); + if fATRMedio <= 0 then + fATRMedio := 0.01; + + bATRRegimeOK := (not UsarModuloATR) + or ((fATRAtual >= (fATRMedio * FatorMinATR)) and (fATRAtual <= (fATRMedio * FatorMaxATR))); + + fForcaBase := fForca; + if NormalizarForcaPorATR then + begin + if fATRAtual > 0 then + fForcaBase := fForca / fATRAtual + else + fForcaBase := fForca; + end; + + // 5. Módulo IFR (veto de direção) + fIFR := IFR(PeriodoIFR); + + bIFRFaixaNeutraGlobal := (fIFR >= IFRFaixaNeutraMin) and (fIFR <= IFRFaixaNeutraMax); + + if bIFRFaixaNeutraGlobal then + begin + bIFRCompraOK := True; + bIFRVendaOK := True; + bATRRegimeOK := True; + end + else + begin + bIFRCompraOK := (not UsarFiltroIFR) + or ((fIFR >= IFRMinCompra) + and ((not UsarVetoExtremosIFR) or (fIFR <= IFRSobrecompra))); + + bIFRVendaOK := (not UsarFiltroIFR) + or ((fIFR <= IFRMaxVenda) + and ((not UsarVetoExtremosIFR) or (fIFR >= IFRSobrevenda))); + end; + + bIFRZonaRejeicaoTopoGlobal := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); + bIFRZonaRejeicaoFundoGlobal := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + + // 5.1 Alarmes IFR (disparo por cruzamento dos níveis) + bAlertaIFRCompra := ((fIFR[1] > IFRAlvoCompra) and (fIFR <= IFRAlvoCompra)) + or ((fIFR[1] < IFRAlvoCompra) and (fIFR >= IFRAlvoCompra)); + + bAlertaIFRVenda := ((fIFR[1] > IFRAlvoVenda) and (fIFR <= IFRAlvoVenda)) + or ((fIFR[1] < IFRAlvoVenda) and (fIFR >= IFRAlvoVenda)); + + if AtivarAlarmeIFR then + begin + if bAlertaIFRCompra then + Alert(cCiano) + else if bAlertaIFRVenda then + Alert(cFucsia); + end; + + // Referências robustas fora de escopos condicionais + fATRRejeicaoZona := Media(PeriodoATRRejeicao, Range); + if fATRRejeicaoZona <= 0 then + fATRRejeicaoZona := 0.01; + + fMediaVolumeRejeicaoZona := Media(20, Volume); + if fMediaVolumeRejeicaoZona <= 0 then + fMediaVolumeRejeicaoZona := 1; + + fTopoExtremoRefZona := Highest(High, PeriodoExtremoRejeicao)[1]; + fFundoExtremoRefZona := Lowest(Low, PeriodoExtremoRejeicao)[1]; + fCloseAnteriorRefZona := Close[1]; + fOpenAnteriorRefZona := Open[1]; + fHighAnteriorRefZona := High[1]; + fLowAnteriorRefZona := Low[1]; + fForcaBaseAnteriorZona := fForcaBase[1]; + bRejeicaoTopoScoreRawPrev := bRejeicaoTopoScoreRaw[1]; + bRejeicaoFundoScoreRawPrev := bRejeicaoFundoScoreRaw[1]; + + // 6. Lógica de Coloração Dinâmica + PaintBar(cCinza); + + // Modo 0: FORÇA (F = M * A) + if iModoVisualizacao = 0 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else + begin + fMaxForca := 0.0001; + for j := 0 to 20 do + begin + if Abs(fForcaBase[j]) > fMaxForca then fMaxForca := Abs(fForcaBase[j]); + end; + + fIntensidade := Abs(fForcaBase) / fMaxForca; + if fIntensidade > 1.0 then fIntensidade := 1.0; + + if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) + else if (fForcaBase > 0) then + begin + nR := 255 - Round(255 * fIntensidade); + nG := 255; + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end + else if (fForcaBase < 0) then + begin + nR := 255; + nG := 255 - Round(255 * fIntensidade); + nB := 255 - Round(255 * fIntensidade); + PaintBar(RGB(nR, nG, nB)); + end + else if fForcaBase = 0 then + PaintBar(cBranco) + else + PaintBar(cCinza); + end; + end + + // Modo 1: MASSA (Volume) + else if iModoVisualizacao = 1 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaManha)) or + ((not bPeriodoManha) and (fMassa > fMassaAnt * pFatorMassaAltaTarde)) then + begin + if (Close >= Open) and bIFRCompraOK then + PaintBar(cCiano) + else if (Close < Open) and bIFRVendaOK then + PaintBar(cFucsia) + else + PaintBar(cCinza); + end; + end + else + begin + if ((bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaManha)) or + ((not bPeriodoManha) and (fMassa < fMassaAnt * pFatorMassaBaixaTarde)) then + PaintBar(cCinza); + end; + end + + // Modo 2: ACELERAÇÃO + else if iModoVisualizacao = 2 then + begin + if not bATRRegimeOK then + PaintBar(cCinza) + else if bIFRFaixaNeutraGlobal then + PaintBar(cCinza) + else if bVisualizarAltaIntensidade then + begin + if ((bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) > Abs(fAceleracaoAnt) * pFatorVelocidadeAltaTarde)) then + begin + if (fAceleracao > 0) and bIFRCompraOK then + PaintBar(cCiano) + else if (fAceleracao < 0) and bIFRVendaOK then + PaintBar(cFucsia) + else + PaintBar(cCinza); + end; + end + else + begin + if ((bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaManha)) or + ((not bPeriodoManha) and (Abs(fAceleracao) < Abs(fAceleracaoAnt) * pFatorVelocidadeBaixaTarde)) then + PaintBar(cCinza); + end; + end; + + // 6.1 Override: Price Action nas zonas IFR de rejeição (qualquer candle) + if bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal then + begin + fRangeAtual := High - Low; + if fRangeAtual <= 0 then + fRangeAtual := 0.01; + + fCorpoAtual := Abs(Close - Open); + fMediaVolumePA := fMediaVolumeRejeicaoZona; + + if Close >= Open then + begin + fPavioSupAtual := High - Close; + fPavioInfAtual := Open - Low; + bAltaAtual := True; + bBaixaAtual := False; + end + else + begin + fPavioSupAtual := High - Open; + fPavioInfAtual := Close - Low; + bAltaAtual := False; + bBaixaAtual := True; + end; + + bPinBarTopoZona := bIFRZonaRejeicaoTopoGlobal + and (fPavioSupAtual > (fCorpoAtual * 2.0)) + and (Close <= (Low + (fRangeAtual * 0.35))); + + bPinBarFundoZona := bIFRZonaRejeicaoFundoGlobal + and (fPavioInfAtual > (fCorpoAtual * 2.0)) + and (Close >= (High - (fRangeAtual * 0.35))); + + bEngolfoBaixaZona := bIFRZonaRejeicaoTopoGlobal + and bBaixaAtual + and (fCloseAnteriorRefZona > fOpenAnteriorRefZona) + and (Open >= fCloseAnteriorRefZona) + and (Close <= fOpenAnteriorRefZona); + + bEngolfoAltaZona := bIFRZonaRejeicaoFundoGlobal + and bAltaAtual + and (fCloseAnteriorRefZona < fOpenAnteriorRefZona) + and (Open <= fCloseAnteriorRefZona) + and (Close >= fOpenAnteriorRefZona); + + bInsideBarZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) + and (High < fHighAnteriorRefZona) + and (Low > fLowAnteriorRefZona); + + bRejectionSpikeTopoZona := bIFRZonaRejeicaoTopoGlobal + and (fPavioSupAtual > (fRangeAtual * 0.60)) + and (fCorpoAtual < (fRangeAtual * 0.25)); + + bRejectionSpikeFundoZona := bIFRZonaRejeicaoFundoGlobal + and (fPavioInfAtual > (fRangeAtual * 0.60)) + and (fCorpoAtual < (fRangeAtual * 0.25)); + + bReversaoBaixaZona := bIFRZonaRejeicaoTopoGlobal + and bBaixaAtual + and (High >= fHighAnteriorRefZona) + and (Close < ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); + + bReversaoAltaZona := bIFRZonaRejeicaoFundoGlobal + and bAltaAtual + and (Low <= fLowAnteriorRefZona) + and (Close > ((fOpenAnteriorRefZona + fCloseAnteriorRefZona) * 0.5)); + + bDojiForteZona := (bIFRZonaRejeicaoTopoGlobal or bIFRZonaRejeicaoFundoGlobal) + and (fCorpoAtual <= (fRangeAtual * 0.10)) + and (Volume >= (fMediaVolumePA * 1.20)); + + // Score de rejeição (qualidade do sinal) + bCondPavioTopo := (fPavioSupAtual > (fCorpoAtual * 2.0)) and (fPavioSupAtual > fPavioInfAtual); + bCondPavioFundo := (fPavioInfAtual > (fCorpoAtual * 2.0)) and (fPavioInfAtual > fPavioSupAtual); + + bCondFechamentoTopo := (Close <= (Low + (fRangeAtual * 0.35))); + bCondFechamentoFundo := (Close >= (High - (fRangeAtual * 0.35))); + + bCondVolumeRejeicao := (Volume >= (fMediaVolumeRejeicaoZona * fFatorVolumeMinRejeicaoDinamico)); + bCondRangeATRRejeicao := (fRangeAtual >= (fATRRejeicaoZona * FatorRangeMinATRRejeicao)); + bCondExtremoTopo := (High >= fTopoExtremoRefZona); + bCondExtremoFundo := (Low <= fFundoExtremoRefZona); + bCondCansacoTopo := (fAceleracao <= 0) or (fForcaBase < 0) or (fForcaBase < fForcaBaseAnteriorZona); + bCondCansacoFundo := (fAceleracao >= 0) or (fForcaBase > 0) or (fForcaBase > fForcaBaseAnteriorZona); + + iScoreRejeicaoTopo := 0; + if bCondPavioTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoPavioRejeicao; + if bCondFechamentoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoFechamentoRejeicao; + if bCondVolumeRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoVolumeRejeicao; + if bCondExtremoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoExtremoRejeicao; + if bCondRangeATRRejeicao then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoRangeATRRejeicao; + if (not UsarFiltroCansacoRejeicao) or bCondCansacoTopo then iScoreRejeicaoTopo := iScoreRejeicaoTopo + PesoCansacoRejeicao; + + iScoreRejeicaoFundo := 0; + if bCondPavioFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoPavioRejeicao; + if bCondFechamentoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoFechamentoRejeicao; + if bCondVolumeRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoVolumeRejeicao; + if bCondExtremoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoExtremoRejeicao; + if bCondRangeATRRejeicao then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoRangeATRRejeicao; + if (not UsarFiltroCansacoRejeicao) or bCondCansacoFundo then iScoreRejeicaoFundo := iScoreRejeicaoFundo + PesoCansacoRejeicao; + + bRejeicaoTopoScoreRaw := bIFRZonaRejeicaoTopoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoTopo >= PontuacaoMinRejeicao)); + bRejeicaoFundoScoreRaw := bIFRZonaRejeicaoFundoGlobal and ((not UsarScoreRejeicao) or (iScoreRejeicaoFundo >= PontuacaoMinRejeicao)); + if ConfirmarRejeicaoNoCandleSeguinte then + begin + bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRawPrev and (Close < fLowAnteriorRefZona); + bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRawPrev and (Close > fHighAnteriorRefZona); + end + else + begin + bRejeicaoTopoScoreFinal := bRejeicaoTopoScoreRaw; + bRejeicaoFundoScoreFinal := bRejeicaoFundoScoreRaw; + end; + + if (bEngolfoBaixaZona or bPinBarTopoZona or bRejectionSpikeTopoZona or bReversaoBaixaZona) and bRejeicaoTopoScoreFinal then + PaintBar(cLaranja) + else if (bEngolfoAltaZona or bPinBarFundoZona or bRejectionSpikeFundoZona or bReversaoAltaZona) and bRejeicaoFundoScoreFinal then + PaintBar(cLaranja) + else if bInsideBarZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then + PaintBar(cLaranja) + else if bDojiForteZona and (bRejeicaoTopoScoreFinal or bRejeicaoFundoScoreFinal) then + PaintBar(cLaranja); + end; + + // 7. Override opcional: análise específica do primeiro candle + bPrimeiroCandleDia := (Date <> Date[1]); + if bPrimeiroCandleDia and AtivarAnalisePrimeiroCandle then + begin + fRangePrimeiro := High - Low; + if fRangePrimeiro <= 0 then + fRangePrimeiro := 0.01; + + fCorpoPrimeiro := Abs(Close - Open); + fMediaVolumePrimeiro := Media(20, Volume); + if fMediaVolumePrimeiro <= 0 then + fMediaVolumePrimeiro := 1; + + bPrimeiroAlta := (Close > Open); + bPrimeiroBaixa := (Close < Open); + bDojiPrimeiro := (fCorpoPrimeiro <= (fRangePrimeiro * 0.10)); + + if (Close >= Open) then + begin + fPavioSupPrimeiro := High - Close; + fPavioInfPrimeiro := Open - Low; + end + else + begin + fPavioSupPrimeiro := High - Open; + fPavioInfPrimeiro := Close - Low; + end; + + bIFRZonaRejeicaoTopo := (fIFR >= IFRZonaRejeicaoTopoMin) and (fIFR <= IFRZonaRejeicaoTopoMax); + bIFRZonaRejeicaoFundo := (fIFR >= IFRZonaRejeicaoFundoMin) and (fIFR <= IFRZonaRejeicaoFundoMax); + + bRejeicaoTopoPrimeiro := (fPavioSupPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioSupPrimeiro > (fRangePrimeiro * 0.45)) + and (Close <= (Low + (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) + and bIFRZonaRejeicaoTopo; + + bRejeicaoFundoPrimeiro := (fPavioInfPrimeiro > (fCorpoPrimeiro * 1.8)) + and (fPavioInfPrimeiro > (fRangePrimeiro * 0.45)) + and (Close >= (High - (fRangePrimeiro * 0.35))) + and (Volume >= (fMediaVolumePrimeiro * fFatorVolumeMinRejeicaoDinamico)) + and bIFRZonaRejeicaoFundo; + + bAbsorcaoPrimeiro := (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)) and (fCorpoPrimeiro <= (fRangePrimeiro * 0.35)); + bIniciativaAltaPrimeiro := bPrimeiroAlta and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + bIniciativaBaixaPrimeiro := bPrimeiroBaixa and (fCorpoPrimeiro >= (fRangePrimeiro * pCorpoMinPrimeiroCandle)) and (Volume >= (fMediaVolumePrimeiro * pFatorVolumePrimeiroCandle)); + + bGapAltaPrimeiro := (Open > fCloseAnteriorRefZona); + bGapBaixaPrimeiro := (Open < fCloseAnteriorRefZona); + bArmadilhaPrimeiro := (bGapAltaPrimeiro and bPrimeiroBaixa and bRejeicaoTopoPrimeiro) + or (bGapBaixaPrimeiro and bPrimeiroAlta and bRejeicaoFundoPrimeiro); + + if bArmadilhaPrimeiro then + PaintBar(cMarrom) + else if bRejeicaoTopoPrimeiro and bIFRVendaOK then + PaintBar(cLaranja) + else if bRejeicaoFundoPrimeiro and bIFRCompraOK then + PaintBar(cLaranja) + else if bIniciativaAltaPrimeiro and bIFRCompraOK then + PaintBar(cCiano) + else if bIniciativaBaixaPrimeiro and bIFRVendaOK then + PaintBar(cFucsia) + else if bDojiPrimeiro and (bIFRZonaRejeicaoTopo or bIFRZonaRejeicaoFundo) then + PaintBar(cLaranja) + else if bAbsorcaoPrimeiro or bDojiPrimeiro then + PaintBar(cBranco) + else if bPrimeiroAlta and bIFRCompraOK then + PaintBar(cVerde) + else if bPrimeiroBaixa and bIFRVendaOK then + PaintBar(cVermelho) + else + PaintBar(cCinza); + end; + + // 8. Corte visual por horário (prioridade máxima) + if AtivarCorteHorarioVisual and (iHoraAtualHHMM >= iHoraCorteVisualHHMM) then + PaintBar(cPreto); + end; \ No newline at end of file diff --git a/profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.txt b/profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.txt rename to profit_estudos_cores/fev2026/fev_PriceActionTiposCandlesLeitura.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.txt b/profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.txt rename to profit_estudos_cores/fev2026/fev_PriceActionVSA_OBV.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.txt b/profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.txt rename to profit_estudos_cores/fev2026/fev_RegraDeDow_Rompimento.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.txt b/profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.txt rename to profit_estudos_cores/fev2026/fev_TendenciaLongoPrazo.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.txt b/profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.txt rename to profit_estudos_cores/fev2026/fev_TendenciaPivoTesteDeOuro.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.txt b/profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.txt rename to profit_estudos_cores/fev2026/fev_VSAassinaturaInstitucional.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.txt b/profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.txt rename to profit_estudos_cores/fev2026/fev_VWAPreferenciaPreco.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.txt b/profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.txt rename to profit_estudos_cores/fev2026/fev_VWAPsemanalDiario.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_direcaoDoDia.txt b/profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_direcaoDoDia.txt rename to profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.txt b/profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.txt rename to profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_panorama920.txt b/profit_estudos_cores/fev2026/fev_panorama920.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_panorama920.txt rename to profit_estudos_cores/fev2026/fev_panorama920.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.txt b/profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.txt rename to profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.txt b/profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.txt rename to profit_estudos_cores/fev2026/fev_priceActionPrimeiroCandle.ntsl.txt From 6a0aedd1fbd532af8ab3aaf8d924a2540c4be504 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:40:42 -0300 Subject: [PATCH 40/63] Reorganizacao: fev2026 extensoes corrigidas, IFR legado isolado, legado/README com mapeamento --- .../DUPLACONFIRMACAO.md" | 1 + automacao_backtests/IFR_RSI/legado/README.md | 30 +++++++++++++++++++ ...ifr_v10_balanceado_regime60min63%.ntsl.txt | 0 ..._ifr_v18_bandas_dinamicas60min60%.ntsl.txt | 0 ..._v24_controle_risco_diario1min67%.ntsl.txt | 0 ...fr_v25_ifr_mme200_contexto2min69%.ntsl.txt | 0 ..._v27_um_trade_por_direcao60min54%.ntsl.txt | 0 ...bo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt | 0 ..._reversao_volume_relativo60min72%.ntsl.txt | 0 ...o_ifr_v33_pullback_mme20060min67%.ntsl.txt | 0 ..._divergencia_regular_pivo60min62%.ntsl.txt | 0 ...v4_divergencia_confirmada60min90%.ntsl.txt | 0 automacao_backtests/MAPA_GRUPOS.md | 6 ++-- ... => fev_2minReversaoComVolumeWIN.ntsl.txt} | 0 ...ev_ATRmovimentoDoPrecoComVontade.ntsl.txt} | 0 ...=> fev_ContadorCruzamentosMedias.ntsl.txt} | 0 ....txt => fev_DetectorFasesMercado.ntsl.txt} | 0 ...l.ntsl.txt => fev_DivergenciaIFR.ntsl.txt} | 0 ...sl.txt => fev_HorarioTurbulencia.ntsl.txt} | 0 ...tsl.txt => fev_MediasSetupDiario.ntsl.txt} | 0 ...tsl.txt => fev_MediasSetupSemana.ntsl.txt} | 0 ...l.txt => fev_OBVvolumeVerdadeiro.ntsl.txt} | 0 ...sl.ntsl.txt => fev_PainelDecisao.ntsl.txt} | 0 ...l.txt => fev_PainelDecisaoAlarme.ntsl.txt} | 0 ...tsl.ntsl.txt => fev_direcaoDoDia.ntsl.txt} | 0 ...xt => fev_mediasTrend9_20_50_200.ntsl.txt} | 0 ...ntsl.ntsl.txt => fev_panorama920.ntsl.txt} | 0 ...=> fev_panoramaMedias9_20_50_200.ntsl.txt} | 0 28 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" create mode 100644 automacao_backtests/IFR_RSI/legado/README.md rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => legado}/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt (100%) rename profit_estudos_cores/fev2026/{fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt => fev_2minReversaoComVolumeWIN.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt => fev_ATRmovimentoDoPrecoComVontade.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_ContadorCruzamentosMedias.ntsl.ntsl.txt => fev_ContadorCruzamentosMedias.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_DetectorFasesMercado.ntsl.ntsl.txt => fev_DetectorFasesMercado.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_DivergenciaIFR.ntsl.ntsl.txt => fev_DivergenciaIFR.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_HorarioTurbulencia.ntsl.ntsl.txt => fev_HorarioTurbulencia.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_MediasSetupDiario.ntsl.ntsl.txt => fev_MediasSetupDiario.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_MediasSetupSemana.ntsl.ntsl.txt => fev_MediasSetupSemana.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt => fev_OBVvolumeVerdadeiro.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PainelDecisao.ntsl.ntsl.txt => fev_PainelDecisao.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt => fev_PainelDecisaoAlarme.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_direcaoDoDia.ntsl.ntsl.txt => fev_direcaoDoDia.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_mediasTrend9_20_50_200.ntsl.ntsl.txt => fev_mediasTrend9_20_50_200.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_panorama920.ntsl.ntsl.txt => fev_panorama920.ntsl.txt} (100%) rename profit_estudos_cores/fev2026/{fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt => fev_panoramaMedias9_20_50_200.ntsl.txt} (100%) diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" new file mode 100644 index 0000000..5d88a40 --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" @@ -0,0 +1 @@ +o objetivo deste é termos uma dupla confirmação \ No newline at end of file diff --git a/automacao_backtests/IFR_RSI/legado/README.md b/automacao_backtests/IFR_RSI/legado/README.md new file mode 100644 index 0000000..64cde70 --- /dev/null +++ b/automacao_backtests/IFR_RSI/legado/README.md @@ -0,0 +1,30 @@ +# IFR_RSI — Código Legado + +Esta pasta contém os robôs da **geração anterior** (nomenclatura `robo_ifr_vXX`), mantidos apenas como **referência histórica**. + +## Por que manter? + +- Referência de lógica que funcionou (alguns chegaram a 90% de acerto em backtest) +- Base para recriar na nova nomenclatura `mar_IFR_NN` com gestão de risco parametrizável +- Consulta quando precisar entender a origem de um setup + +## Regra de uso + +> **NÃO usar estes arquivos diretamente no Profit.** +> Todos carecem do bloco de gestão de risco via `input` obrigatório. +> Use os arquivos em `../codigo_fonte/mar_IFR_*.ntsl.txt`. + +## Mapeamento legado → novo + +| Arquivo legado | Taxa backtest | Novo equivalente | +|----------------|--------------|-----------------| +| `robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt` | 90% / 60min | `mar_IFR_01` | +| `robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt` | 72% / 60min | `mar_IFR_02` | +| `robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt` | 69% / 2min | `mar_IFR_03` | +| `robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt` | 60% / 60min | `mar_IFR_04` (pendente) | +| `robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt` | 67% / 1min | `mar_IFR_05` (pendente) | +| `robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt` | 54% / 60min | `mar_IFR_06` (pendente) | +| `robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt` | 57% / 30min | `mar_IFR_07` (pendente) | +| `robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt` | 62% / 60min | `mar_IFR_08` (pendente) | +| `robo_ifr_v33_pullback_mme20060min67%.ntsl.txt` | 67% / 60min | `mar_IFR_09` (pendente) | +| `robo_ifr_v10_balanceado_regime60min63%.ntsl.txt` | 63% / 60min | `mar_IFR_10` (pendente) | diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt diff --git a/automacao_backtests/MAPA_GRUPOS.md b/automacao_backtests/MAPA_GRUPOS.md index fd64725..4e21959 100644 --- a/automacao_backtests/MAPA_GRUPOS.md +++ b/automacao_backtests/MAPA_GRUPOS.md @@ -30,7 +30,7 @@ GRUPO/ | Grupo | Pasta | Robôs NTSL | Robôs MQL5 | Status | |-------|-------|------------|------------|--------| | Primeiro Candle | `CANDLE1/` | 33 (PC_01–PC_33) | — | ✅ Completo | -| IFR/RSI | `IFR_RSI/` | 3 feitos / 14 planejados | — | 🔄 Em progresso | +| IFR/RSI | `IFR_RSI/` | 3 novos (`mar_IFR_*`) + 10 legado em `legado/` | — | 🔄 Em progresso | | Médias | `MEDIAS/` | 0 / 18 planejados | — | ⬜ Pendente | | Stop Tolerante | `STOPTOLERANTE/` | 4 (ST_01–ST_04) | — | ✅ Completo | | Poucos Pontos Vencedores | `POUCOSPONTOSVENCEDORES/` | 4 (PPV_01–PPV_04) | — | 🔄 Faltam 05–08 | @@ -73,7 +73,9 @@ automacao_backtests/ │ └── mql5/ → (pendente) │ ├── IFR_RSI/ -│ ├── codigo_fonte/ → 3 robôs (mar_IFR_01-03) + 10 antigos 🔄 +│ ├── codigo_fonte/ → 3 robôs novos (mar_IFR_01-03) 🔄 +│ ├── legado/ → 10 robôs antigos (robo_ifr_v*) — só referência +│ ├── top10/ → top 10 histórico (referência) │ └── mql5/ → (pendente) │ ├── MEDIAS/ diff --git a/profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_2minReversaoComVolumeWIN.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_ATRmovimentoDoPrecoComVontade.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_ContadorCruzamentosMedias.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_DetectorFasesMercado.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_DivergenciaIFR.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_HorarioTurbulencia.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupDiario.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_MediasSetupSemana.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_OBVvolumeVerdadeiro.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisao.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_PainelDecisaoAlarme.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_direcaoDoDia.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_mediasTrend9_20_50_200.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_panorama920.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_panorama920.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_panorama920.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_panorama920.ntsl.txt diff --git a/profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt b/profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.txt similarity index 100% rename from profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.ntsl.txt rename to profit_estudos_cores/fev2026/fev_panoramaMedias9_20_50_200.ntsl.txt From e04d64c0ba6b61e572b187f9259b5523adc8d74f Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:49:14 -0300 Subject: [PATCH 41/63] Estrutura: README raiz, DUPLACONFIRMACAO doc, LATERALIZACAO_DAYTRADE e SWINGTRADE estruturados --- README.md | 146 ++++++++++++++++++ .../DUPLACONFIRMACAO.md" | 84 +++++++++- .../codigo_fonte/.gitkeep" | 0 .../mql5/.gitkeep" | 0 .../codigo_fonte/.gitkeep | 0 .../lateralizacao_daytrade.md | 101 ++++++++++++ .../LATERALIZACAO_DAYTRADE/mql5/.gitkeep | 0 .../codigo_fonte/.gitkeep | 0 .../lateralizacao_swingtrade.md | 112 ++++++++++++++ .../LATERALIZACAO_SWINGTRADE/mql5/.gitkeep | 0 10 files changed, 442 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/mql5/.gitkeep" create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/lateralizacao_daytrade.md create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/mql5/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/codigo_fonte/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/lateralizacao_swingtrade.md create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/mql5/.gitkeep diff --git a/README.md b/README.md new file mode 100644 index 0000000..ef88dc4 --- /dev/null +++ b/README.md @@ -0,0 +1,146 @@ +# RepoRobos — Sistema de Day Trade Quantitativo + +> **Mercados:** B3 — WIN (minicontrato de índice) · Internacional via MetaTrader 5 +> **Plataformas:** Neologica Profit (NTSL) · MetaTrader 5 (MQL5) +> **Capital:** R$10.000 (Profit/B3) · USD$5.000 (MT5/demo Tickmill) +> **Branch ativa:** `marco_Tradeoperador` · PR #2 + +--- + +## O que é este repositório + +Biblioteca de robôs de day trade quantitativo, base de conhecimento técnico e laboratório de backtesting para o minicontrato de índice WIN na B3 e ativos internacionais no MetaTrader 5. + +O projeto organiza estratégias em **grupos por filosofia operacional**, cada grupo com: +- Código-fonte Profit (`.ntsl.txt`) — para importar diretamente no Profit +- Código-fonte MT5 (`.mq5`) — para testar no Strategy Tester do MetaTrader +- Documentação com critérios de aprovação e parâmetros de risco + +--- + +## Plataformas + +| Plataforma | Mercado | Ativo principal | Acesso | +|-----------|---------|----------------|--------| +| **Neologica Profit** | B3 | WIN (mini índice Bovespa) | [profitweb.nelogica.com.br](https://profitweb.nelogica.com.br/) | +| **MetaTrader 5** | Internacional | XAUUSD, NAS100, US30, EURUSD, US500 | [web.metatrader.app](https://web.metatrader.app/terminal?mode=demo&lang=pt) | + +--- + +## Grupos de Estratégias + +### Em desenvolvimento ativo + +| Grupo | Pasta | Robôs NTSL | Robôs MQL5 | Status | +|-------|-------|-----------|-----------|--------| +| Primeiro Candle | `automacao_backtests/CANDLE1/` | 33 | — | ✅ Completo | +| IFR/RSI | `automacao_backtests/IFR_RSI/` | 3 novos + 10 legado | — | 🔄 Em progresso | +| Médias | `automacao_backtests/MEDIAS/` | — | — | ⬜ Pendente | +| Stop Tolerante | `automacao_backtests/STOPTOLERANTE/` | 4 | — | ✅ Completo | +| Poucos Pontos Vencedores | `automacao_backtests/POUCOSPONTOSVENCEDORES/` | 4 | — | 🔄 Faltam 05–08 | +| Drawdown Zero | `automacao_backtests/DRAWDOWNZERO/` | — | — | ⬜ Pendente | +| 50Mais1 | `automacao_backtests/50mais1/` | — | — | ⬜ Pendente | +| Dupla Confirmação | `automacao_backtests/DUPLACONFIRMAÇÃO/` | — | — | ⬜ Pendente | + +### Estrutura completa — pastas criadas, robôs pendentes + +| Grupo | Conceito central | +|-------|-----------------| +| `SCALPING/` | Capturar 10–30 pts, alta frequência, 1–2min | +| `BREAKOUT/` | Rompimento de range/nível com volume confirmado | +| `VWAP_INSTITUCIONAL/` | Operações referenciadas no fluxo institucional | +| `TENDENCIA_SEGUIR/` | Trend following puro — trailing ATR, sem alvo fixo | +| `REVERSAO_MEDIA/` | Bollinger/VWAP extremo → retorno à média | +| `HORARIO_ESPECIFICO/` | Janelas estatísticas do WIN + sessões MT5 | +| `LABORATORIO_INDICADORES/` | Teste isolado: ADX, Estocástico, Bollinger, OBV e combos | + +--- + +## Convenção de Arquivos + +| Extensão | Plataforma | Uso | +|----------|-----------|-----| +| `.ntsl.txt` | **Neologica Profit** | Importar em Estratégias no Profit | +| `.mq5` | **MetaTrader 5** | Compilar e testar no Strategy Tester | +| `.md` | Documentação | Referência e teoria | +| `.csv` | Resultados | Saída dos backtests em Python | + +### Nomenclatura dos arquivos + +``` +Profit: mar_GRUPO_NN_vX_descricao.ntsl.txt +MetaTrader: mar_GRUPO_NN_descricao.mq5 +``` + +--- + +## Gestão de Risco — Padrão Obrigatório (Profit) + +Todo robô NTSL deve ter **gestão de risco 100% parametrizável via `input`**: + +```pascal +input UsarGestaoRisco = true; // false = backtest puro da lógica +input UsarHardLock = true; // false = monitora mas não fecha +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; // R$150/dia +input RiscoSemanaPct = 3.0; // R$300/semana +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; // 1 contrato WIN mini +input DiaSemanaReset = 2; // segunda-feira +``` + +--- + +## Hierarquia de Decisão Operacional (WIN) + +| Peso | Camada | Indicador/Ferramenta | +|------|--------|---------------------| +| **5** | Institucional | VWAP diária/semanal — filtro de permissão | +| **4** | Estrutura | Pivôs, rompimentos, tendência longo prazo | +| **3** | Gatilho | Price Action (corpo/sombra), IFR | +| **2** | Refino | OBV, VSA, sombra (veto) | +| **1** | Leitura | Padrão de candle (contexto) | + +> Nunca operar contra o Peso 5 (VWAP). + +--- + +## Estrutura do Workspace + +``` +automacao_backtests/ → grupos de robôs e laboratório +estudo_teorias/ → base de conhecimento técnico (Markdown) +profit_estudos_cores/ → indicadores visuais para o gráfico Profit + ├── fev2026/ → estudos/cores do ciclo fev/2026 + └── marco2026_IFR_top5/ → top 5 robôs IFR ativos mar/2026 +plataformas/ + ├── profit/ → guia completo Profit + └── mql5/ → guia MT5 + EAs de exemplo +WorkspaceRobosTrade/ → orientações do workspace +``` + +--- + +## Convenção de Branches + +``` +main +├── fevereiro_tradeOperador ← ciclo fev/2026 (encerrado) +├── marco_Tradeoperador ← ciclo mar/2026 (ATIVO) +└── abril_tradeOperador ← próximo ciclo +``` + +- Cada mês uma branch dedicada com prefixo de arquivos correspondente (`fev_`, `mar_`, `abr_`...) +- Merge para `main` via Pull Request ao fim do ciclo + +--- + +## Critérios de Aprovação (backtest) + +| Métrica | Mínimo | Ideal | +|---------|--------|-------| +| Profit Factor | > 1.4 | > 2.0 | +| Taxa de acerto | > 55% | > 65% | +| Drawdown máximo | < 20% | < 10% | +| Operações no período | > 80 | > 150 | +| R:R médio | ≥ 1:1 | ≥ 1:2 | diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" index 5d88a40..c409c3a 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/DUPLACONFIRMACAO.md" @@ -1 +1,83 @@ -o objetivo deste é termos uma dupla confirmação \ No newline at end of file +# Grupo DUPLACONFIRMACAO (DC) + +## Objetivo +Exigir **duas confirmações independentes** antes de entrar e **duas confirmações independentes** antes de sair. Nunca agir no primeiro sinal — esperar a segunda evidência. + +--- + +## Filosofia + +A dupla confirmação reduz entradas falsas ao custo de perder um pouco do início do movimento. A compensação é uma taxa de acerto significativamente maior. + +| Aspecto | Simples | **Dupla Confirmação** | +|---------|---------|----------------------| +| Entradas erradas | Mais frequentes | Raras | +| Perde início do movimento | Não | Sim (aceito) | +| Taxa de acerto esperada | 55–65% | **> 68%** | +| Operações/dia | Mais | Menos (mais seletivo) | + +--- + +## Regra de Entrada — 2 confirmações obrigatórias + +Exemplos de pares válidos (qualquer combinação de 2 de camadas diferentes): + +| Confirmação 1 (Gatilho) | Confirmação 2 (Contexto) | +|------------------------|--------------------------| +| IFR saindo de ZS/SO | Preço acima/abaixo de MME200 | +| Candle de força (corpo > 60%) | Volume acima da média | +| Estocástico crossover | ADX > 20 (tendência presente) | +| Bollinger toque externo | IFR em extremo (ZS/SO) | +| VWAP toque + rejeição | MME9 alinhada com MME200 | + +> **Proibido:** entrar com apenas 1 sinal, mesmo que pareça óbvio. + +--- + +## Regra de Saída — 2 confirmações obrigatórias + +| Saída por alvo | Saída por reversão | +|---------------|-------------------| +| Alvo atingido **E** candle de fraqueza | IFR virou para zona oposta **E** volume caindo | +| Alvo atingido **E** IFR no extremo oposto | Candle de reversão **E** rompimento de MME9 | + +> A saída por stop não precisa de confirmação — stop é stop. + +--- + +## Indicadores Utilizados + +| Indicador | Função | +|-----------|--------| +| **IFR(9)** | Gatilho primário de entrada/saída | +| **Estocástico(5,3)** | Confirmação secundária de entrada | +| **MME200** | Contexto — direção permitida | +| **MME9 / MME21** | Alinhamento de curto prazo | +| **Volume relativo** | Confirma interesse real no movimento | +| **ADX(14)** | Confirma que há tendência para seguir | +| **Bollinger(20,2σ)** | Extremo de preço + reversão | + +--- + +## Estrutura dos Robôs DC + +``` +DC_01 — IFR extremo + Volume elevado (entrada) / IFR oposto + candle fraco (saída) +DC_02 — Bollinger externo + IFR ZS/SO / banda central atingida + Estocástico virando +DC_03 — MME9×MME21 cruzamento + ADX > 20 / cruzamento inverso + volume caindo +DC_04 — VWAP toque + IFR extremo / VWAP rompida + candle de reversão confirmado +``` + +--- + +## Critério de Aprovação no Backtest + +| Métrica | Mínimo | Ideal | +|---------|--------|-------| +| Taxa de acerto | > 65% | > 72% | +| Profit Factor | > 1.6 | > 2.2 | +| R:R médio | ≥ 1:1.5 | ≥ 1:2 | +| Drawdown máximo | < 15% | < 8% | +| Operações totais | > 60 | > 100 | + +> Este grupo aceita menos operações — a seletividade é proposital. diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" new file mode 100644 index 0000000..e69de29 diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/mql5/.gitkeep" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/mql5/.gitkeep" new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/codigo_fonte/.gitkeep b/automacao_backtests/LATERALIZACAO_DAYTRADE/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/lateralizacao_daytrade.md b/automacao_backtests/LATERALIZACAO_DAYTRADE/lateralizacao_daytrade.md new file mode 100644 index 0000000..17fad65 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/lateralizacao_daytrade.md @@ -0,0 +1,101 @@ +# LATERALIZACAO_DAYTRADE — Estratégias de Range Intradiário + +## Filosofia + +Explorar mercados que oscilam entre suporte e resistência dentro da sessão do dia. +Quando o mercado não tem tendência definida (ADX baixo), a tendência **é a lateralidade** — operar reversão nos extremos do range. + +- **Ativo alvo (Profit):** WIN (minicontrato de índice B3) +- **Timeframes:** 5min, 15min, 30min +- **Tipo de operação:** Reversão nos extremos do range intradiário +- **Meta:** Taxa de acerto > 65%, relação risco/retorno mínima 1:2 + +--- + +## Critérios de Identificação de Range + +| Critério | Condição | +|-------------------|-----------------------------------------------| +| ADX | ADX < 20 (sem tendência direcionada) | +| Bandas Bollinger | Preço dentro das bandas, bandas planas | +| IFR/RSI | Oscilando entre 30–70 sem extremos persistentes | +| Velas | Sem sequência de 3+ velas na mesma direção | +| VWAP | Preço cruzando a VWAP com frequência | + +--- + +## Regras de Entrada + +### Compra (reversão no suporte do range) +1. ADX < 20 (confirmado nos últimos 5 períodos) +2. Preço toca ou viola a Banda Bollinger inferior (Desvio 2.0) +3. IFR < 35 (sobrevendido no contexto lateral) +4. Vela sinalizadora com sombra longa para baixo ou engolfo de alta +5. Volume da vela de entrada ≥ média dos últimos 5 candles +6. STOP: abaixo da mínima da vela sinalizadora + +### Venda (reversão na resistência do range) +1. ADX < 20 +2. Preço toca ou viola a Banda Bollinger superior (Desvio 2.0) +3. IFR > 65 (sobrecomprado no contexto lateral) +4. Vela sinalizadora com sombra longa para cima ou engolfo de baixa +5. Volume ≥ média 5 candles +6. STOP: acima da máxima da vela sinalizadora + +--- + +## Regras de Saída + +| Saída | Condição | +|--------------------|--------------------------------------------------------------------| +| Alvo primário | Oposto do range (banda ao alvo) | +| Alvo VWAP | Cruzamento da VWAP diária (saída parcial 50%) | +| Stop | Rompimento da banda oposta (1 vela de fechamento fora do range) | +| Tempo | Fechar posição aberta nos últimos 15 min antes das 17h30 | +| ADX > 25 | Saída imediata — range foi rompido, tendência se formou | + +--- + +## Filtros Obrigatórios + +- **Não operar** após rompimento de suporte/resistência claro (pivô diário) +- **Não operar** nas primeiras 2 velas do dia (range ainda se formando) +- **Não operar** contra VWAP semanal (peso institucional) +- **Verificar horário:** evitar 09h00–09h30 (abertura turbulenta) + +--- + +## Plano de Robôs + +| Robô | Descrição | Status | +|------------|---------------------------------------------------|---------| +| `LD_01` | Range puro com Bollinger + IFR | Pendente | +| `LD_02` | Range + ADX + volume acima da média | Pendente | +| `LD_03` | Range + VWAP como pivô central | Pendente | +| `LD_04` | Range + saída por tempo (horário encerramento) | Pendente | +| `LD_05` | Range com dupla confirmação (Bollinger + estocástico) | Pendente | +| `LD_06–50` | Variações de parâmetros e filtros adicionais | Backlog | + +--- + +## Parâmetros de Risco (bloco padrão obrigatório) + +```ntsl +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; +``` + +--- + +## Referências + +- Teoria base: [teoria_tendencia.md](../../estudo_teorias/teoria_tendencia.md) +- Volume: [teoria_volume.md](../../estudo_teorias/teoria_volume.md) +- VWAP: [teoria_vwap.md](../../estudo_teorias/teoria_vwap.md) +- Bollinger: [LABORATORIO_INDICADORES/BOLLINGER/](../LABORATORIO_INDICADORES/BOLLINGER/) diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/mql5/.gitkeep b/automacao_backtests/LATERALIZACAO_DAYTRADE/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/codigo_fonte/.gitkeep b/automacao_backtests/LATERALIZACAO_SWINGTRADE/codigo_fonte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/lateralizacao_swingtrade.md b/automacao_backtests/LATERALIZACAO_SWINGTRADE/lateralizacao_swingtrade.md new file mode 100644 index 0000000..39e964e --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/lateralizacao_swingtrade.md @@ -0,0 +1,112 @@ +# LATERALIZACAO_SWINGTRADE — Estratégias de Range em Timeframes Maiores + +## Filosofia + +Explorar mercados que oscilam entre níveis técnicos relevantes em timeframes maiores (diário, semanal). +A lateralidade de médio prazo cria oportunidades de swing com alvos maiores e menos ruído de curto prazo. + +- **Ativo alvo (Profit):** WIN (minicontrato de índice B3) e WDOFUT (dólar futuro) +- **Timeframes:** 60min, 4h, diário +- **Tipo de operação:** Reversão em suporte/resistência de swing, dentro de range consolidado +- **Meta:** Taxa de acerto > 60%, relação risco/retorno mínima 1:3 + +--- + +## Diferença em relação ao DAYTRADE + +| Aspecto | LATERALIZACAO_DAYTRADE | LATERALIZACAO_SWINGTRADE | +|----------------------|--------------------------------|--------------------------------| +| Timeframe | 5min–30min | 60min–Diário | +| Duração da operação | Intradiário (fecha no dia) | 1–5 dias | +| Alvo por trade | 50–200 pontos WIN | 200–800 pontos WIN | +| Stop | Estrutura intradiária | Estrutura multiday | +| Filtro macro | VWAP diária | VWAP semanal + média 200 | + +--- + +## Critérios de Identificação de Range Swing + +| Critério | Condição | +|-------------------|------------------------------------------------------| +| Tempo no range | Pelo menos 5 dias oscilando no mesmo intervalo | +| ADX (diário) | ADX < 20 no gráfico diário | +| Bollinger | Bandas convergindo ou planas no gráfico diário/4h | +| Pivôs | Topos e fundos de curto prazo alinhados horizontalmente | +| Volume | Sem spikes de volume direcional significativos | + +--- + +## Regras de Entrada + +### Compra (suporte do range swing) +1. Preço se aproxima da base do range (suporte estrutural identificado) +2. ADX diário < 20 +3. IFR no gráfico 60min < 30 ou diário < 35 +4. Confirmar com vela de reversão (martelo, engolfo, inside bar na base) +5. Volume do dia ≤ média — confirmação de acumulação silenciosa +6. STOP: abaixo do suporte estrutural + buffer de 10% do range total + +### Venda (resistência do range swing) +1. Preço se aproxima do topo do range +2. ADX diário < 20 +3. IFR 60min > 70 ou diário > 65 +4. Vela de reversão no topo (doji, estrela cadente, pin bar) +5. STOP: acima da resistência + buffer + +--- + +## Regras de Saída + +| Saída | Condição | +|--------------------|----------------------------------------------------------------| +| Alvo primário | Extremo oposto do range (100% do range) | +| Alvo parcial | 50% do range → saída de 50% da posição | +| Trailing stop | Após alvo parcial, trailing de 100 pontos WIN | +| Stop loss | Rompimento confirmado do suporte/resistência com fechamento fora | +| Rompimento range | ADX diário > 25 por 2 dias seguidos → encerrar posição | + +--- + +## Filtros Obrigatórios + +- **Não operar** quando MME200 no diário está em movimentação acentuada (tendência macro) +- **Respeitar VWAP semanal** — não entrar contra ela +- **Verificar cenário macro:** relatórios econômicos relevantes programados na semana +- **Não operar** na semana do vencimento de contratos futuros (3ª quarta-feira do mês) + +--- + +## Plano de Robôs + +| Robô | Descrição | Status | +|------------|-----------------------------------------------------|----------| +| `LS_01` | Range 60min com Bollinger + pivot detection | Pendente | +| `LS_02` | Range diário com IFR + ADX filtro | Pendente | +| `LS_03` | Range + trailing automático (exit swing) | Pendente | +| `LS_04` | Range + filtro VWAP semanal + média 200 | Pendente | +| `LS_05` | Swing range com saída híbrida (parcial + trailing) | Pendente | +| `LS_06–50` | Variações de parâmetros e ativos | Backlog | + +--- + +## Parâmetros de Risco (bloco padrão obrigatório) + +```ntsl +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; +``` + +--- + +## Referências + +- Teoria base: [teoria_tendencia.md](../../estudo_teorias/teoria_tendencia.md) +- Pivôs: [teoria_tendencia_pivots.md](../../estudo_teorias/teoria_tendencia_pivots.md) +- VWAP: [teoria_vwap.md](../../estudo_teorias/teoria_vwap.md) +- Laboratorio Bollinger: [../LABORATORIO_INDICADORES/BOLLINGER/](../LABORATORIO_INDICADORES/BOLLINGER/) diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/mql5/.gitkeep b/automacao_backtests/LATERALIZACAO_SWINGTRADE/mql5/.gitkeep new file mode 100644 index 0000000..e69de29 From 0dd108127d58eecb5a0f7821dde28efc219f364b Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 17:54:24 -0300 Subject: [PATCH 42/63] IFR_RSI: mar_IFR_04 a mar_IFR_10 bandas dinamicas, risco diario, 1-trade-dir, ADX, div-pivo, pullback-MME200, regime balanceado --- .../mar_IFR_04_v1_bandas_dinamicas.ntsl.txt | 148 +++++++++++++++ ...r_IFR_05_v1_controle_risco_diario.ntsl.txt | 159 ++++++++++++++++ ...ar_IFR_06_v1_um_trade_por_direcao.ntsl.txt | 158 ++++++++++++++++ .../mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt | 161 ++++++++++++++++ .../mar_IFR_08_v1_divergencia_pivo.ntsl.txt | 163 ++++++++++++++++ .../mar_IFR_09_v1_pullback_mme200.ntsl.txt | 171 +++++++++++++++++ .../mar_IFR_10_v1_regime_balanceado.ntsl.txt | 179 ++++++++++++++++++ 7 files changed, 1139 insertions(+) create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt create mode 100644 automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt new file mode 100644 index 0000000..d784e0b --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt @@ -0,0 +1,148 @@ +{ + Robo: mar_IFR_04_v1_bandas_dinamicas + Grupo: IFR_RSI — Tier 2 (#04) + Descricao: Bandas dinamicas do IFR: calcula o percentil 25 (zona sobrevenda) + e percentil 75 (zona sobrecompra) usando os ultimos N periodos + do proprio IFR. Entrada quando o IFR cruza de volta para dentro + da banda — mais adaptavel que niveis fixos 30/70. + Timeframe: 60min (referencia: ~60%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v18_bandas_dinamicas60min60% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + // ── Bandas dinamicas ──────────────────────────────────────── + JanelaBandas(50); // janela para calcular percentis do IFR + FatorBandaSuperior(0.75); // percentil 75 = sobrecompra + FatorBandaInferior(0.25); // percentil 25 = sobrevenda + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(16); + NivelSaidaCompra(50); // IFR retorna ao centro → sair compra + NivelSaidaVenda(50); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fIFRMin, fIFRMax, fBandaSup, fBandaInf : float; + fIntervaloBanda : float; + bCompraAtivada, bVendaAtivada : boolean; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iBarra : integer; + iDiaSemanaAtual : integer; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + fIFR := IFR(PeriodoIFR); + fIFRMin := Lowest(IFR(PeriodoIFR), JanelaBandas); + fIFRMax := Highest(IFR(PeriodoIFR), JanelaBandas); + + fIntervaloBanda := fIFRMax - fIFRMin; + if fIntervaloBanda > 0 then + begin + fBandaInf := fIFRMin + fIntervaloBanda * FatorBandaInferior; + fBandaSup := fIFRMin + fIntervaloBanda * FatorBandaSuperior; + end + else + begin + fBandaInf := 30; fBandaSup := 70; + end; + + // Cruzamento de volta para cima da banda inferior = compra + bCompraAtivada := (IFR(PeriodoIFR)[1] < fBandaInf) and (fIFR >= fBandaInf); + // Cruzamento de volta para baixo da banda superior = venda + bVendaAtivada := (IFR(PeriodoIFR)[1] > fBandaSup) and (fIFR <= fBandaSup); + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarra := iBarra + 1; + if (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarra >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarra := iBarra + 1; + if (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarra >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) then + begin + iBarra := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bCompraAtivada then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bVendaAtivada then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt new file mode 100644 index 0000000..b9370fc --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt @@ -0,0 +1,159 @@ +{ + Robo: mar_IFR_05_v1_controle_risco_diario + Grupo: IFR_RSI — Tier 2 (#05) + Descricao: Controle rigoroso de risco diario com limite de trades e saidas + temporais. Limita o numero maximo de operacoes por dia, controla + o tempo maximo de permanencia na posicao e usa saidas por horario + de encerramento. Ideal para limitar drawdown diario. + Timeframe: 1min (referencia: ~67%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v24_controle_risco_diario1min67% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + ZonaSobrevenda(30); + ZonaSobrecompra(70); + // ── Controle de trades por dia ─────────────────────────────── + MaxTradesCompra(3); + MaxTradesVenda(3); + // ── Horarios ───────────────────────────────────────────────── + HorarioInicioH(9); + HorarioInicioM(30); + HorarioFimH(17); + HorarioFimM(00); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Saida por IFR ──────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(52); + NivelSaidaVenda(48); + UsarSaidaTempo(true); + MaxBarrasPosicao(30); // ~30 min no 1min chart + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR : float; + iTradesCompraHoje, iTradesVendaHoje : integer; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec : integer; + iDiaSemanaAtual : integer; + iHoraAtual, iMinutoAtual : integer; + bJanelaTempo, bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iTradesCompraHoje := 0; + iTradesVendaHoje := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── HORARIO ────────────────────────────────────────────────── + iHoraAtual := HourOf(Time); + iMinutoAtual := MinuteOf(Time); + + bJanelaTempo := ((iHoraAtual * 60 + iMinutoAtual) >= (HorarioInicioH * 60 + HorarioInicioM)) + and ((iHoraAtual * 60 + iMinutoAtual) < (HorarioFimH * 60 + HorarioFimM)); + + bEncerramento := (iHoraAtual * 60 + iMinutoAtual) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + // ── CALCULO IFR ────────────────────────────────────────────── + fIFR := IFR(PeriodoIFR); + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and bJanelaTempo then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + // Compra: IFR cruza de volta acima da zona de sobrevenda + if (fIFR[1] < ZonaSobrevenda) and (fIFR >= ZonaSobrevenda) + and (iTradesCompraHoje < MaxTradesCompra) then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + iTradesCompraHoje := iTradesCompraHoje + 1; + end + // Venda: IFR cruza de volta abaixo da zona de sobrecompra + else if (fIFR[1] > ZonaSobrecompra) and (fIFR <= ZonaSobrecompra) + and (iTradesVendaHoje < MaxTradesVenda) then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + iTradesVendaHoje := iTradesVendaHoje + 1; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt new file mode 100644 index 0000000..a8419f3 --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt @@ -0,0 +1,158 @@ +{ + Robo: mar_IFR_06_v1_um_trade_por_direcao + Grupo: IFR_RSI — Tier 2 (#06) + Descricao: Protetor de sobre-operacao: limita a exatamente 1 trade de compra + e 1 trade de venda por sessao. Forca disciplina na selecao do + sinal mais forte do dia. Usa IFR extremo (< 25 / > 75) para ser + mais seletivo. Baseline: ~54% — perfil conservador, poucas entradas. + Timeframe: 60min (referencia: ~54%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v27_um_trade_por_direcao60min54% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + ZonaSobrevenda(25); // mais seletivo que 30 + ZonaSobrecompra(75); // mais seletivo que 70 + // ── Controle de trade unico ────────────────────────────────── + MaxUmaCompra(1); // maximo de 1 compra por dia + MaxUmaVenda(1); // maximo de 1 venda por dia + // ── Confirmacao ───────────────────────────────────────────── + UsarConfirmacaoCandle(true); // exige candle de reversao + MultiplicadorPavio(1.2); + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(50); + NivelSaidaVenda(50); + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR : float; + fRange, fCorpo, fPavioSup, fPavioInf : float; + bMartelo, bEstrela : boolean; + iComprasHoje, iVendasHoje, iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iComprasHoje := 0; + iVendasHoje := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fIFR := IFR(PeriodoIFR); + fRange := High - Low; + fCorpo := Abs(Open - Close); + fPavioSup:= High - Max(Open, Close); + fPavioInf:= Min(Open, Close) - Low; + + bMartelo := (fRange > 0) and (fCorpo > 0) + and (fPavioInf >= fCorpo * MultiplicadorPavio); + bEstrela := (fRange > 0) and (fCorpo > 0) + and (fPavioSup >= fCorpo * MultiplicadorPavio); + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if (IFR(PeriodoIFR)[1] < ZonaSobrevenda) and (fIFR >= ZonaSobrevenda) + and (iComprasHoje < MaxUmaCompra) + and ((not UsarConfirmacaoCandle) or bMartelo) then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + iComprasHoje := iComprasHoje + 1; + end + else if (IFR(PeriodoIFR)[1] > ZonaSobrecompra) and (fIFR <= ZonaSobrecompra) + and (iVendasHoje < MaxUmaVenda) + and ((not UsarConfirmacaoCandle) or bEstrela) then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + iVendasHoje := iVendasHoje + 1; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt new file mode 100644 index 0000000..08522b8 --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt @@ -0,0 +1,161 @@ +{ + Robo: mar_IFR_07_v1_ifr_adx_filtro + Grupo: IFR_RSI — Tier 2 (#07) + Descricao: Combina sinal IFR com filtro de ADX: so opera reversao quando + o mercado NAO esta em tendencia forte (ADX < limiar). Conceito: + em tendencia (ADX alto) IFR extremo nao e reversao, e apenas + pullback. Em lateralidade (ADX baixo) o extremo e genuino. + Opcional: ativar modo tendencia (ADX > limiar = pullback). + Timeframe: 30min (referencia: ~57%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v28_ifr_adx_filtro30min57% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + ZonaSobrevenda(30); + ZonaSobrecompra(70); + // ── ADX ────────────────────────────────────────────────────── + PeriodoADX(14); + LimiarADXTendencia(25); // ADX >= 25 = tendencia, abaixo = lateral + OperarLateralidade(true); // true = reversao em ADX < limiar + OperarTendencia(false); // true = pullback em ADX >= limiar (experimental) + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(52); + NivelSaidaVenda(48); + UsarSaidaTempo(true); + MaxBarrasPosicao(10); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fADX : float; + bReversaoAlta, bReversaoBaixa : boolean; + bLateral, bTendencia : boolean; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fIFR := IFR(PeriodoIFR); + fADX := ADX(PeriodoADX); + + bLateral := fADX < LimiarADXTendencia; + bTendencia:= fADX >= LimiarADXTendencia; + + // Modo lateralidade: reversao nos extremos + bReversaoAlta := bLateral and OperarLateralidade + and (IFR(PeriodoIFR)[1] < ZonaSobrevenda) + and (fIFR >= ZonaSobrevenda); + + bReversaoBaixa := bLateral and OperarLateralidade + and (IFR(PeriodoIFR)[1] > ZonaSobrecompra) + and (fIFR <= ZonaSobrecompra); + + // Modo tendencia (opcional): pullback — compra se IFR caiu e volta enquanto ADX alto + if OperarTendencia and bTendencia then + begin + bReversaoAlta := bReversaoAlta or ((IFR(PeriodoIFR)[1] < 40) and (fIFR >= 40)); + bReversaoBaixa := bReversaoBaixa or ((IFR(PeriodoIFR)[1] > 60) and (fIFR <= 60)); + end; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bReversaoAlta then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bReversaoBaixa then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt new file mode 100644 index 0000000..f918f6c --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt @@ -0,0 +1,163 @@ +{ + Robo: mar_IFR_08_v1_divergencia_pivo + Grupo: IFR_RSI — Tier 2 (#08) + Descricao: Divergencia regular do IFR + confirmacao de rompimento de pivo + de curto prazo. A divergencia identifica o potencial de reversao + e o rompimento do pivo confirma que o mercado ja esta se movendo + na direcao esperada. Combinacao de sinal adiantado + confirmacao. + Timeframe: 60min (referencia: ~62%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v36_divergencia_regular_pivo60min62% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + LookbackPivo(5); // janela para identificar pivos recentes + DeltaIFRMinimo(3.0); // diferenca minima do IFR entre fundos/topos + // ── Confirmacao de pivo ───────────────────────────────────── + UsarRompimentoPivo(true); + MargemRompimento(50); // pontos alem do pivo para confirmar rompimento + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(55); + NivelSaidaVenda(45); + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fIFRFundoAnterior, fIFRTopoAnterior : float; + fPivoMin, fPivoMax, fFundoAnterior, fTopoAnterior : float; + bDivBullish, bDivBearish : boolean; + bRompeuPivoAlta, bRompeuPivoBaixa : boolean; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fIFR := IFR(PeriodoIFR); + + // Pivos de curto prazo + fPivoMin := Lowest(Low, LookbackPivo); + fPivoMax := Highest(High, LookbackPivo); + + // Fundo anterior e IFR naquele fundo + fFundoAnterior := Lowest(Low, LookbackPivo * 2)[LookbackPivo]; + fIFRFundoAnterior := Lowest(IFR(PeriodoIFR), LookbackPivo * 2)[LookbackPivo]; + + // Topo anterior e IFR naquele topo + fTopoAnterior := Highest(High, LookbackPivo * 2)[LookbackPivo]; + fIFRTopoAnterior := Highest(IFR(PeriodoIFR), LookbackPivo * 2)[LookbackPivo]; + + // Divergencia bullish: preco fez fundo mais baixo, IFR fez fundo mais alto + bDivBullish := (Low < fFundoAnterior) + and (fIFR > fIFRFundoAnterior + DeltaIFRMinimo); + + // Divergencia bearish: preco fez topo mais alto, IFR fez topo mais baixo + bDivBearish := (High > fTopoAnterior) + and (fIFR < fIFRTopoAnterior - DeltaIFRMinimo); + + // Confirmacao por rompimento do pivo + bRompeuPivoAlta := (not UsarRompimentoPivo) or (Close > fPivoMax + MargemRompimento); + bRompeuPivoBaixa := (not UsarRompimentoPivo) or (Close < fPivoMin - MargemRompimento); + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bDivBullish and bRompeuPivoAlta then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bDivBearish and bRompeuPivoBaixa then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt new file mode 100644 index 0000000..33a645e --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt @@ -0,0 +1,171 @@ +{ + Robo: mar_IFR_09_v1_pullback_mme200 + Grupo: IFR_RSI — Tier 1 (#09) + Descricao: Opera pullback do IFR quando o preco esta acima da MME200 + (tendencia de alta) ou abaixo da MME200 (tendencia de baixa). + O IFR extremo durante o pullback indica a conclusao da correcao + e o ponto de retomada da tendencia principal. + Alta seletividade: so opera a favor da tendencia macro. + Timeframe: 60min (referencia: ~67%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v33_pullback_mme20060min67% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + NivelPullbackCompra(40); // IFR cai ate 40 durante pullback de alta + NivelPullbackVenda(60); // IFR sobe ate 60 durante pullback de baixa + NivelSaidaCompra(60); // IFR retorna a 60 = sair compra + NivelSaidaVenda(40); + // ── MME200 ─────────────────────────────────────────────────── + PeriodoMME(200); + MargemMME(100); // pontos de margem para confirmar posicao vs MME + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaIFR(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(16); + UsarTrailing(true); + PontosTrailing(200); // trailing stop de 200 pontos WIN + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fMME200 : float; + fTendenciaAlta, fTendenciaBaixa : boolean; + bPullbackAlta, bPullbackBaixa : boolean; + fPicoPositivo : float; // maximo atingido desde entrada compra + fPicoBaixo : float; // minimo atingido desde entrada venda + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 999999; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fIFR := IFR(PeriodoIFR); + fMME200 := MediaExp(PeriodoMME, Close); + + fTendenciaAlta := Close > fMME200 + MargemMME; + fTendenciaBaixa := Close < fMME200 - MargemMME; + + // Pullback de alta: IFR caiu ate zona inferior e agora cruza de volta acima + bPullbackAlta := fTendenciaAlta + and (IFR(PeriodoIFR)[1] < NivelPullbackCompra) + and (fIFR >= NivelPullbackCompra); + + // Pullback de baixa: IFR subiu ate zona superior e agora cruza de volta abaixo + bPullbackBaixa := fTendenciaBaixa + and (IFR(PeriodoIFR)[1] > NivelPullbackVenda) + and (fIFR <= NivelPullbackVenda); + + // ── TRAILING (atualiza pico) ────────────────────────────────── + if IsBought then + begin + if High > fPicoPositivo then fPicoPositivo := High; + end; + if IsSold then + begin + if (fPicoBaixo = 0) or (Low < fPicoBaixo) then fPicoBaixo := Low; + end; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bPullbackAlta then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bPullbackBaixa then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt new file mode 100644 index 0000000..095da38 --- /dev/null +++ b/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt @@ -0,0 +1,179 @@ +{ + Robo: mar_IFR_10_v1_regime_balanceado + Grupo: IFR_RSI — Tier 2 (#10) + Descricao: Detecta o regime de mercado (tendencia ou lateralidade) usando + MME9 vs MME21 e ADX, depois aplica a estrategia adequada: + - TENDENCIA: opera pullback do IFR (estrategia de retorno) + - LATERALIDADE: opera reversao do IFR (estrategia de extremo) + Robo adaptativo — ajusta logica ao estado atual do mercado. + Timeframe: 60min (referencia: ~63%) + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 + Legado: robo_ifr_v10_balanceado_regime60min63% +} + +input + // ── IFR ────────────────────────────────────────────────────── + PeriodoIFR(14); + // ── Parametros modo Tendencia ──────────────────────────────── + NivelPullbackCompra(38); // IFR cai ate aqui em pullback de alta + NivelPullbackVenda(62); // IFR sobe ate aqui em pullback de baixa + NivelSaidaCompra(60); + NivelSaidaVenda(40); + // ── Parametros modo Lateralidade ──────────────────────────── + NivelSobrevendaLateral(30); + NivelSobrecompraLateral(70); + NivelSaidaCompraLateral(50); + NivelSaidaVendaLateral(50); + // ── Detector de regime ────────────────────────────────────── + PeriodoMMERapida(9); + PeriodoMMELenta(21); + PeriodoADX(14); + LimiarADXTendencia(22); + // ── Saida comum ───────────────────────────────────────────── + UsarSaidaTempo(true); + MaxBarrasPosicao(14); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fMMERapida, fMMELenta, fADX : float; + bTendenciaAlta, bTendenciaBaixa, bLateral : boolean; + bEntradaCompra, bEntradaVenda : boolean; + fNivelSaidaC, fNivelSaidaV : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fIFR := IFR(PeriodoIFR); + fMMERapida:= MediaExp(PeriodoMMERapida, Close); + fMMELenta := MediaExp(PeriodoMMELenta, Close); + fADX := ADX(PeriodoADX); + + // Detector de regime + bTendenciaAlta := (fMMERapida > fMMELenta) and (fADX >= LimiarADXTendencia); + bTendenciaBaixa := (fMMERapida < fMMELenta) and (fADX >= LimiarADXTendencia); + bLateral := fADX < LimiarADXTendencia; + + // Sinais conforme regime + if bTendenciaAlta then + begin + // Pullback em tendencia de alta + bEntradaCompra := (IFR(PeriodoIFR)[1] < NivelPullbackCompra) and (fIFR >= NivelPullbackCompra); + bEntradaVenda := false; + fNivelSaidaC := NivelSaidaCompra; + fNivelSaidaV := NivelSaidaVenda; + end + else if bTendenciaBaixa then + begin + // Pullback em tendencia de baixa + bEntradaCompra := false; + bEntradaVenda := (IFR(PeriodoIFR)[1] > NivelPullbackVenda) and (fIFR <= NivelPullbackVenda); + fNivelSaidaC := NivelSaidaCompra; + fNivelSaidaV := NivelSaidaVenda; + end + else + begin + // Reversao em lateralidade + bEntradaCompra := (IFR(PeriodoIFR)[1] < NivelSobrevendaLateral) and (fIFR >= NivelSobrevendaLateral); + bEntradaVenda := (IFR(PeriodoIFR)[1] > NivelSobrecompraLateral) and (fIFR <= NivelSobrecompraLateral); + fNivelSaidaC := NivelSaidaCompraLateral; + fNivelSaidaV := NivelSaidaVendaLateral; + end; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or (fIFR >= fNivelSaidaC) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or (fIFR <= fNivelSaidaV) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bEntradaCompra then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + else if bEntradaVenda then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + +end; From d47828a3bba83c8b50b016af113015fdfeb21de0 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 18:01:11 -0300 Subject: [PATCH 43/63] MEDIAS: MED_01-06 criados (cruzamentos, score 4 medias, toque, MMA200, golden/death cross); MQL5: IFR_01-02 e MED_01-02 para XAUUSD e NAS100 --- ...r_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt | 164 +++++++++++ ...r_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt | 164 +++++++++++ .../mar_MED_03_v1_posicao_4_medias.ntsl.txt | 157 +++++++++++ .../mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt | 184 +++++++++++++ .../mar_MED_05_v1_cruzamento_mma200.ntsl.txt | 165 ++++++++++++ .../mar_MED_06_v1_golden_death_cross.ntsl.txt | 164 +++++++++++ plataformas/mql5/mar_IFR_01_XAUUSD.mq5 | 254 ++++++++++++++++++ plataformas/mql5/mar_IFR_02_NAS100.mq5 | 196 ++++++++++++++ plataformas/mql5/mar_MED_01_XAUUSD.mq5 | 193 +++++++++++++ plataformas/mql5/mar_MED_02_NAS100.mq5 | 195 ++++++++++++++ 10 files changed, 1836 insertions(+) create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt create mode 100644 automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt create mode 100644 plataformas/mql5/mar_IFR_01_XAUUSD.mq5 create mode 100644 plataformas/mql5/mar_IFR_02_NAS100.mq5 create mode 100644 plataformas/mql5/mar_MED_01_XAUUSD.mq5 create mode 100644 plataformas/mql5/mar_MED_02_NAS100.mq5 diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt new file mode 100644 index 0000000..0bda6f4 --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt @@ -0,0 +1,164 @@ +{ + Robo: mar_MED_01_v1_cruzamento_mme9_mme21 + Grupo: MEDIAS — Tier 1 (#01) + Descricao: Cruzamento das medias moveis exponenciais de curto prazo: + MME9 e MME21. Quando MME9 cruza acima da MME21 = tendencia de + alta iniciando; abaixo = baixa. Filtro: preco deve confirmar + na direcao do cruzamento. Entrada apos fechamento do candle de + cruzamento. Saida por cruzamento inverso ou stop de tempo. + Timeframe: 15min / 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Medias ─────────────────────────────────────────────────── + PeriodoMMERapida(9); + PeriodoMMELenta(21); + // ── Filtro de confirmacao ──────────────────────────────────── + UsarFiltroFechamento(true); // preco fecha alem da MME21 na direcao do cruzamento + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaCruzamentoInverso(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(20); + UsarTrailing(true); + PontosTrailing(150); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMMERapida, fMMELenta : float; + fMMERapidaAnt, fMMELentaAnt : float; + bCruzouParaCima, bCruzouParaBaixo : boolean; + bCruzouInversoAlta, bCruzouInversoBaixa : boolean; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fMMERapida := MediaExp(PeriodoMMERapida, Close); + fMMELenta := MediaExp(PeriodoMMELenta, Close); + fMMERapidaAnt := MediaExp(PeriodoMMERapida, Close)[1]; + fMMELentaAnt := MediaExp(PeriodoMMELenta, Close)[1]; + + // Cruzamento atual + bCruzouParaCima := (fMMERapidaAnt <= fMMELentaAnt) and (fMMERapida > fMMELenta); + bCruzouParaBaixo := (fMMERapidaAnt >= fMMELentaAnt) and (fMMERapida < fMMELenta); + + // Cruzamento inverso (saida) + bCruzouInversoAlta := IsBought and (fMMERapida < fMMELenta); + bCruzouInversoBaixa := IsSold and (fMMERapida > fMMELenta); + + // Filtro: preco confirma direcao + if UsarFiltroFechamento then + begin + bCruzouParaCima := bCruzouParaCima and (Close > fMMELenta); + bCruzouParaBaixo := bCruzouParaBaixo and (Close < fMMELenta); + end; + + // Atualiza pico para trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoInverso and bCruzouInversoAlta) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoInverso and bCruzouInversoBaixa) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bCruzouParaCima then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bCruzouParaBaixo then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt new file mode 100644 index 0000000..c1e551d --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt @@ -0,0 +1,164 @@ +{ + Robo: mar_MED_02_v1_cruzamento_mme9_mma50 + Grupo: MEDIAS — Tier 1 (#02) + Descricao: Cruzamento entre MME9 (curto prazo) e MMA50 (medio prazo). + Representa uma confirmacao mais robusta de mudanca de tendencia + do que o par 9/21. O sinal e mais lento e menos frequente, + mas de maior confiabilidade. MMA50 funciona como suporte/resistencia + dinamica. Filtro adicional: MME9 e MMA50 na direcao correta. + Timeframe: 30min / 60min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Medias ─────────────────────────────────────────────────── + PeriodoMMERapida(9); + PeriodoMMAMedia(50); + // ── Filtro tendencia confirmada ───────────────────────────── + UsarFiltroPeriodoConsolidacao(true); + PeriodosConsolidacao(3); // MME9 deve estar acima/abaixo MMA50 por N barras + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaCruzamentoInverso(true); + UsarSaidaTempo(true); + MaxBarrasPosicao(24); + UsarTrailing(true); + PontosTrailing(200); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMMERapida, fMMAMedia : float; + fCruzouB1, fCruzouB0 : float; + bCruzouParaCima, bCruzouParaBaixo : boolean; + bConsolidado : boolean; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + i : integer; + bAcimaConsecutivo : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fMMERapida := MediaExp(PeriodoMMERapida, Close); + fMMAMedia := Media(PeriodoMMAMedia, Close); + + // Cruzamento + bCruzouParaCima := (MediaExp(PeriodoMMERapida, Close)[1] <= Media(PeriodoMMAMedia, Close)[1]) + and (fMMERapida > fMMAMedia); + bCruzouParaBaixo := (MediaExp(PeriodoMMERapida, Close)[1] >= Media(PeriodoMMAMedia, Close)[1]) + and (fMMERapida < fMMAMedia); + + // Consolidacao: MME9 manteve posicao por N barras + if UsarFiltroPeriodoConsolidacao and bCruzouParaCima then + begin + // Verifica se nas N barras anteriores ao cruzamento MME9 ainda estava tentando subir + // (simplificado: IFR crescente indica momentum) + bCruzouParaCima := Close > fMMAMedia; // preco confirma acima da media + end; + + // Atualiza pico para trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoInverso and (fMMERapida < fMMAMedia)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoInverso and (fMMERapida > fMMAMedia)) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bCruzouParaCima then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bCruzouParaBaixo then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt new file mode 100644 index 0000000..91155b4 --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt @@ -0,0 +1,157 @@ +{ + Robo: mar_MED_03_v1_posicao_4_medias + Grupo: MEDIAS — Tier 1 (#03) + Descricao: Analisa a posicao relativa do preco em relacao as 4 medias moveis + classicas: MME9, MME21, MMA50, MMA200. Pontuacao: +1 por media + abaixo do preco, -1 por media acima. Score 4/4 = alta convicta, + Score -4/-4 = baixa convicta. Entra apenas com score extremo + (+3 ou +4 para compra, -3 ou -4 para venda). + Estrategia de alta alfa e baixa frequencia. + Timeframe: 60min / Diario + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── As 4 medias ───────────────────────────────────────────── + PeriodoMME1(9); + PeriodoMME2(21); + PeriodoMMA3(50); + PeriodoMMA4(200); + // ── Score para entrada ────────────────────────────────────── + ScoreEntradaCompra(3); // minimo de 3 medias abaixo do preco + ScoreEntradaVenda(-3); // minimo de 3 medias acima do preco + // ── Saida ─────────────────────────────────────────────────── + ScoreSaidaCompra(1); // sair quando score cair para 1 (2 medias perdidas) + ScoreSaidaVenda(-1); + UsarSaidaTempo(true); + MaxBarrasPosicao(20); + UsarTrailing(true); + PontosTrailing(250); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMME1, fMME2, fMMA3, fMMA4 : float; + iScore : integer; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fMME1 := MediaExp(PeriodoMME1, Close); + fMME2 := MediaExp(PeriodoMME2, Close); + fMMA3 := Media(PeriodoMMA3, Close); + fMMA4 := Media(PeriodoMMA4, Close); + + // Score: +1 se preco acima da media (tendencia de alta), -1 se abaixo + iScore := 0; + if Close > fMME1 then iScore := iScore + 1 else iScore := iScore - 1; + if Close > fMME2 then iScore := iScore + 1 else iScore := iScore - 1; + if Close > fMMA3 then iScore := iScore + 1 else iScore := iScore - 1; + if Close > fMMA4 then iScore := iScore + 1 else iScore := iScore - 1; + + // Atualiza pico para trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or (iScore <= ScoreSaidaCompra) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or (iScore >= ScoreSaidaVenda) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if iScore >= ScoreEntradaCompra then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if iScore <= ScoreEntradaVenda then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt new file mode 100644 index 0000000..a8ead91 --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt @@ -0,0 +1,184 @@ +{ + Robo: mar_MED_04_v1_toque_rejeicao_mme + Grupo: MEDIAS — Tier 2 (#04) + Descricao: Opera toque e rejeicao em media movel exponencial de referencia + (MME21 ou MMA50) em contexto de tendencia ativa. O preco recua + ate a media, toca e cria candle de rejeicao (pavio longo, corpo + pequeno). Entrada no fechamento do candle de rejeicao. + Essencia: pullback bem definido em media importante. + Timeframe: 15min / 30min / 60min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Media de referencia ───────────────────────────────────── + PeriodoMMERef(21); + UsarMMAemVezDeMME(false); // false = MME; true = MMA simples + MargemToqueMedia(80); // pontos de tolerancia para "toque" na media + // ── Filtro de tendencia (posicao vs MME200) ───────────────── + PeriodoMME200(200); + ExigirTendenciaMME200(true); + // ── Candle de rejeicao ────────────────────────────────────── + MultiplicadorPavio(1.5); // pavio >= 1.5x o corpo + MaxPavioOpostoTendencia(0.8); // pavio oposto a tendencia <= 0.8x corpo + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + UsarTrailing(true); + PontosTrailing(180); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMediaRef, fMME200 : float; + fDistanciaMedia : float; + fRange, fCorpo, fPavioSup, fPavioInf : float; + bTendenciaAlta200, bTendenciaBaixa200 : boolean; + bToqueMedia : boolean; + bRejeitouParaCima, bRejeitouParaBaixo : boolean; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + if UsarMMAemVezDeMME then + fMediaRef := Media(PeriodoMMERef, Close) + else + fMediaRef := MediaExp(PeriodoMMERef, Close); + + fMME200 := MediaExp(PeriodoMME200, Close); + + bTendenciaAlta200 := Close > fMME200; + bTendenciaBaixa200 := Close < fMME200; + + // Toque: minima do candle esta dentro da margem da media (para toques de alta) + bToqueMedia := Abs(Low - fMediaRef) <= MargemToqueMedia; + + fRange := High - Low; + fCorpo := Abs(Open - Close); + fPavioSup := High - Max(Open, Close); + fPavioInf := Min(Open, Close) - Low; + + // Rejeicao para cima: preco veio ate a media pelo pavio inferior e fechou acima + bRejeitouParaCima := bToqueMedia + and (Close > fMediaRef) + and (fCorpo > 0) + and (fPavioInf >= fCorpo * MultiplicadorPavio) + and (fPavioSup <= fCorpo * MaxPavioOpostoTendencia) + and ((not ExigirTendenciaMME200) or bTendenciaAlta200); + + // Rejeicao para baixo: preco veio ate a media pelo pavio superior e fechou abaixo + bRejeitouParaBaixo := (Abs(High - fMediaRef) <= MargemToqueMedia) + and (Close < fMediaRef) + and (fCorpo > 0) + and (fPavioSup >= fCorpo * MultiplicadorPavio) + and (fPavioInf <= fCorpo * MaxPavioOpostoTendencia) + and ((not ExigirTendenciaMME200) or bTendenciaBaixa200); + + // Trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) or + (Close < fMediaRef - MargemToqueMedia * 2) then // preco rompeu media para baixo + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) or + (Close > fMediaRef + MargemToqueMedia * 2) then // preco rompeu media para cima + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bRejeitouParaCima then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bRejeitouParaBaixo then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt new file mode 100644 index 0000000..b2b10f1 --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt @@ -0,0 +1,165 @@ +{ + Robo: mar_MED_05_v1_cruzamento_mma200 + Grupo: MEDIAS — Tier 1 (#05) + Descricao: Usa o cruzamento da MMA200 como filtro de tendencia de longo + prazo. Quando o preco cruza a MMA200 para cima, entra em compra + confirmando inicio de bull market de medio prazo. Quando cruza + para baixo, venda. Sinal de alta forca e baixa frequencia — + idealmente para timeframes maiores (60min, diario). + Stop apertado com trailing para capturar o maximo do movimento. + Timeframe: 60min / Diario + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── MMA200 ─────────────────────────────────────────────────── + PeriodoMMA(200); + MargemConfirmacao(150); // pontos alem da MMA200 para confirmar cruzamento + // ── Filtro de consolidacao ────────────────────────────────── + BarrasParaConsolidar(3); // preco deve permanecer alem da MMA200 por N barras + // ── Saida ──────────────────────────────────────────────────── + UsarSaidaCruzamento(true); // sai quando cruza de volta + UsarTrailing(true); + PontosTrailing(300); + MaxBarrasPosicao(30); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMMA200 : float; + bCruzouMMA200Cima, bCruzouMMA200Baixo : boolean; + bConsolidadoAcima, bConsolidadoAbaixo : boolean; + iBarsAcimaMME200, iBarsAbaixoMME200 : integer; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fMMA200 := Media(PeriodoMMA, Close); + + // Contagem de barras consecutivas alem da MMA200 + if Close > fMMA200 then + iBarsAcimaMME200 := iBarsAcimaMME200 + 1 + else + iBarsAcimaMME200 := 0; + + if Close < fMMA200 then + iBarsAbaixoMME200 := iBarsAbaixoMME200 + 1 + else + iBarsAbaixoMME200 := 0; + + // Cruzamento recente (ultima barra ainda nao havia cruzado) + bCruzouMMA200Cima := (Close[1] <= fMMA200) and (Close > fMMA200 + MargemConfirmacao); + bCruzouMMA200Baixo := (Close[1] >= fMMA200) and (Close < fMMA200 - MargemConfirmacao); + + // Consolidacao: preco manteve-se alem por N barras + bConsolidadoAcima := iBarsAcimaMME200 >= BarrasParaConsolidar; + bConsolidadoAbaixo := iBarsAbaixoMME200 >= BarrasParaConsolidar; + + // Trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamento and (Close < fMMA200)) or + (iBarrasPosicao >= MaxBarrasPosicao) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamento and (Close > fMMA200)) or + (iBarrasPosicao >= MaxBarrasPosicao) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bCruzouMMA200Cima and bConsolidadoAcima then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bCruzouMMA200Baixo and bConsolidadoAbaixo then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt new file mode 100644 index 0000000..81081fe --- /dev/null +++ b/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt @@ -0,0 +1,164 @@ +{ + Robo: mar_MED_06_v1_golden_death_cross + Grupo: MEDIAS — Tier 1 (#06) + Descricao: Golden Cross (MME50 cruza acima MMA200) e Death Cross + (MME50 cruza abaixo MMA200). Sinais classicos de mudanca de + tendencia de longo prazo. Muito raros em 60min — altamente + confiaveis. Ao sinal, entra imediatamente. Saida somente por + sinal contrario ou trailing de longo prazo. + Ideal para capturar os movimentos de maior magnitude no WIN. + Timeframe: 60min / Diario + Ativo: WIN (minicontrato de indice) + Versao: 1.0 — marco/2026 +} + +input + // ── Medias ─────────────────────────────────────────────────── + PeriodoMMERapida(50); + PeriodoMMALenta(200); + // ── Confirmacao ───────────────────────────────────────────── + MargemCruzamento(0); // 0 = qualquer cruzamento; > 0 = cruzamento mais forte + UsarFiltroVolume(false); + PeriodoMediaVol(20); + FatorVolumeCross(1.5); // volume do cruzamento >= 1.5x media + // ── Saida ─────────────────────────────────────────────────── + UsarSaidaCruzamentoContrario(true); + UsarTrailing(true); + PontosTrailing(400); // trailing generoso para capturar movimento maior + UsarSaidaTempo(false); // nao usar saida por tempo — deixar o trade desenvolver + MaxBarrasPosicao(50); + HorarioEncerramentoH(17); + HorarioEncerramentoM(15); + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMMERapida, fMMALenta : float; + fMediaVol : float; + bGoldenCross, bDeathCross : boolean; + bVolumeOk : boolean; + fPicoPositivo, fPicoBaixo : float; + iBarrasPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + bEncerramento : boolean; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoPositivo := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; fPicoBaixo := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CALCULOS ───────────────────────────────────────────────── + bEncerramento := (HourOf(Time) * 60 + MinuteOf(Time)) >= (HorarioEncerramentoH * 60 + HorarioEncerramentoM); + + fMMERapida := MediaExp(PeriodoMMERapida, Close); + fMMALenta := Media(PeriodoMMALenta, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); + + bVolumeOk := (not UsarFiltroVolume) or (Volume >= fMediaVol * FatorVolumeCross); + + // Golden Cross: MME50 cruzou acima da MMA200 + bGoldenCross := (MediaExp(PeriodoMMERapida, Close)[1] <= Media(PeriodoMMALenta, Close)[1]) + and (fMMERapida > fMMALenta + MargemCruzamento) + and bVolumeOk; + + // Death Cross: MME50 cruzou abaixo da MMA200 + bDeathCross := (MediaExp(PeriodoMMERapida, Close)[1] >= Media(PeriodoMMALenta, Close)[1]) + and (fMMERapida < fMMALenta - MargemCruzamento) + and bVolumeOk; + + // Trailing + if IsBought and (High > fPicoPositivo) then fPicoPositivo := High; + if IsSold and ((fPicoBaixo = 0) or (Low < fPicoBaixo)) then fPicoBaixo := Low; + + // ── SAIDAS ─────────────────────────────────────────────────── + if IsBought then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoContrario and bDeathCross) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoPositivo > 0) and (Close < fPicoPositivo - PontosTrailing)) then + SellAtMarket; + end; + + if IsSold then + begin + iBarrasPosicao := iBarrasPosicao + 1; + if bEncerramento or + (UsarSaidaCruzamentoContrario and bGoldenCross) or + (UsarSaidaTempo and (iBarrasPosicao >= MaxBarrasPosicao)) or + (UsarTrailing and (fPicoBaixo > 0) and (Close > fPicoBaixo + PontosTrailing)) then + BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) and (not bEncerramento) then + begin + iBarrasPosicao := 0; + if UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana) then exit; + + if bGoldenCross then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + fPicoPositivo := Close; + end + else if bDeathCross then + begin + SellAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + fPicoBaixo := Close; + end; + end; + +end; diff --git a/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 b/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 new file mode 100644 index 0000000..5239f07 --- /dev/null +++ b/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 @@ -0,0 +1,254 @@ +//+------------------------------------------------------------------+ +//| mar_IFR_01_XAUUSD.mq5 | +//| Grupo: IFR_RSI — Versao MT5 | +//| Descricao: Divergencia bullish/bearish de IFR com candle de | +//| rejeicao. Adaptado de mar_IFR_01 (Profit) para MT5. | +//| Funciona muito bem em XAUUSD pela volatilidade e | +//| reversoes tecnicas frequentes no ouro. | +//| Ativo: XAUUSD (Ouro) — tambem testavel em NAS100, US500 | +//| Timeframe: M30 / H1 | +//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ + +#property copyright "Wesley — RepoRobos" +#property version "1.00" +#property strict + +#include + +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada | +//+------------------------------------------------------------------+ + +// ── IFR ─────────────────────────────────────────────────────────── +input int PeriodoIFR = 9; +input int LookbackDivergencia= 12; // janela para comparar fundos/topos +input double DeltaIFRMinimo = 2.0; // diferenca minima no IFR + +// ── Candle de rejeicao ──────────────────────────────────────────── +input double MultiplicadorPavio = 1.5; // pavio >= corpo * mult +input double MaxPavioOpostoCorpo= 1.2; + +// ── Saida IFR ──────────────────────────────────────────────────── +input bool UsarSaidaIFR = true; +input double NivelSaidaCompra = 55.0; +input double NivelSaidaVenda = 45.0; +input bool UsarSaidaTempo = true; +input int MaxBarrasPosicao = 12; + +// ── Trailing ───────────────────────────────────────────────────── +input bool UsarTrailing = true; +input double PontosTrailing = 150.0; // em pontos do ativo (XAUUSD: 1.5 dolar) + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double VolumeLote = 0.01; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; +double fPrecoEntrada; +double fMelhorPreco; +int iDirecaoPosicao; +int iBarrasPosicao; +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; +datetime dtUltimoBar; +datetime dtUltimoReset; + +//+------------------------------------------------------------------+ +//| OnInit | +//+------------------------------------------------------------------+ +int OnInit() +{ + hIFR = iRSI(_Symbol, _Period, PeriodoIFR, PRICE_CLOSE); + if(hIFR == INVALID_HANDLE) { Print("Erro ao criar handle IFR"); return INIT_FAILED; } + return INIT_SUCCEEDED; +} + +//+------------------------------------------------------------------+ +//| OnDeinit | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); +} + +//+------------------------------------------------------------------+ +//| Helpers | +//+------------------------------------------------------------------+ +bool NovaBarraIniciou() +{ + datetime dtAtual = iTime(_Symbol, _Period, 0); + if(dtAtual != dtUltimoBar) { dtUltimoBar = dtAtual; return true; } + return false; +} + +double GetIFR(int deslocamento) +{ + double buf[]; ArraySetAsSeries(buf, true); + if(CopyBuffer(hIFR, 0, deslocamento, 1, buf) < 1) return 50; + return buf[0]; +} + +bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } +bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } +double PrecoAtualPosicao() { return PositionSelect(_Symbol) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0; } + +//+------------------------------------------------------------------+ +//| ResetDiario | +//+------------------------------------------------------------------+ +void ResetDiario() +{ + MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); + MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); + if(dt.day != dtR.day) + { + fResultadoDia = 0; + bBloqueioDia = false; + dtUltimoReset = TimeCurrent(); + if(dt.day_of_week == 1) // segunda-feira + { + fResultadoSemana = 0; + bBloqueioSemana = false; + } + } +} + +//+------------------------------------------------------------------+ +//| GestaoRisco: atualiza resultados e bloqueios | +//+------------------------------------------------------------------+ +void AtualizarGestaoRisco() +{ + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * RiscoDiaPct / 100.0; + double limiteSemana = saldo * RiscoSemanaPct / 100.0; + + // Detecta fechamento de posicao + if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + { + double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double resultado; + if(iDirecaoPosicao == 1) + resultado = (preco - fPrecoEntrada) * VolumeLote * 100; // xauusd: $1/pip por 0.01 lot + else + resultado = (fPrecoEntrada - preco) * VolumeLote * 100; + + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + } + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) bBloqueioDia = true; + if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; + if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; + } +} + +//+------------------------------------------------------------------+ +//| OnTick | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(!NovaBarraIniciou()) return; + ResetDiario(); + if(UsarGestaoRisco) AtualizarGestaoRisco(); + + double fIFR = GetIFR(1); + double fIFRAnt = GetIFR(2); + + // Dados do candle fechado (barra 1) + double highB1 = iHigh(_Symbol, _Period, 1); + double lowB1 = iLow(_Symbol, _Period, 1); + double openB1 = iOpen(_Symbol, _Period, 1); + double closeB1 = iClose(_Symbol, _Period, 1); + + double range = highB1 - lowB1; + double corpo = MathAbs(openB1 - closeB1); + double pavioSup= highB1 - MathMax(openB1, closeB1); + double pavioInf= MathMin(openB1, closeB1) - lowB1; + + bool bMartelo = (range > 0) && (corpo > 0) + && (pavioInf >= corpo * MultiplicadorPavio) + && (pavioSup <= corpo * MaxPavioOpostoCorpo); + + bool bEstrela = (range > 0) && (corpo > 0) + && (pavioSup >= corpo * MultiplicadorPavio) + && (pavioInf <= corpo * MaxPavioOpostoCorpo); + + // Fundos/topos minimos/maximos nos ultimos LookbackDivergencia barras + double lowMin = lowB1, ifrMinimo = fIFR; + double highMax= highB1, ifrMaximo = fIFR; + for(int k = 2; k <= LookbackDivergencia; k++) + { + double l = iLow(_Symbol, _Period, k); + double h = iHigh(_Symbol, _Period, k); + double r = GetIFR(k); + if(l < lowMin) { lowMin = l; ifrMinimo = r; } + if(h > highMax) { highMax = h; ifrMaximo = r; } + } + + bool bDivAlta = (lowB1 < lowMin) && (fIFR > ifrMinimo + DeltaIFRMinimo); + bool bDivBaixa = (highB1 > highMax) && (fIFR < ifrMaximo - DeltaIFRMinimo); + + // ── SAIDAS ────────────────────────────────────────────────── + if(TenhoCompra()) + { + iBarrasPosicao++; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid > fMelhorPreco) fMelhorPreco = bid; + + bool sair = false; + if(UsarSaidaIFR && fIFR >= NivelSaidaCompra) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && fMelhorPreco > 0 && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + if(TenhoVenda()) + { + iBarrasPosicao++; + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; + + bool sair = false; + if(UsarSaidaIFR && fIFR <= NivelSaidaVenda) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && fMelhorPreco > 0 && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + // ── ENTRADAS ──────────────────────────────────────────────── + if(!TenhoCompra() && !TenhoVenda()) + { + iBarrasPosicao = 0; + if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(bDivAlta && bMartelo) + { + trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "IFR_div_alta"); + fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + } + else if(bDivBaixa && bEstrela) + { + trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "IFR_div_baixa"); + fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + } + } +} diff --git a/plataformas/mql5/mar_IFR_02_NAS100.mq5 b/plataformas/mql5/mar_IFR_02_NAS100.mq5 new file mode 100644 index 0000000..3806fca --- /dev/null +++ b/plataformas/mql5/mar_IFR_02_NAS100.mq5 @@ -0,0 +1,196 @@ +//+------------------------------------------------------------------+ +//| mar_IFR_02_NAS100.mq5 | +//| Grupo: IFR_RSI — Versao MT5 | +//| Descricao: Pullback do IFR em tendencia definida pela MME200. | +//| Em tendencia de alta: IFR cai ate 40 e retorna. | +//| Em tendencia de baixa: IFR sobe ate 60 e retorna. | +//| Adaptado de mar_IFR_09 (Profit). Excelente para | +//| indices tendenciais como NAS100 e US500. | +//| Ativo: NAS100 — tambem testavel em US500, XAUUSD | +//| Timeframe: M30 / H1 | +//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ + +#property copyright "Wesley — RepoRobos" +#property version "1.00" +#property strict + +#include + +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada | +//+------------------------------------------------------------------+ + +// ── IFR ─────────────────────────────────────────────────────────── +input int PeriodoIFR = 14; +input double NivelPullbackCompra = 40.0; // IFR cai ate aqui em pullback de alta +input double NivelPullbackVenda = 60.0; // IFR sobe ate aqui em pullback de baixa +input double NivelSaidaCompra = 60.0; +input double NivelSaidaVenda = 40.0; + +// ── MME200 ──────────────────────────────────────────────────────── +input int PeriodoMME200 = 200; +input double MargemMMEPontos = 50.0; // pontos de margem vs MME200 + +// ── Saida ───────────────────────────────────────────────────────── +input bool UsarSaidaIFR = true; +input bool UsarSaidaTempo = true; +input int MaxBarrasPosicao = 16; +input bool UsarTrailing = true; +input double PontosTrailing = 200.0; // em pontos do ativo + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double VolumeLote = 0.01; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; +int hMME200; +double fPrecoEntrada; +double fMelhorPreco; +int iDirecaoPosicao; +int iBarrasPosicao; +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; +datetime dtUltimoBar; +datetime dtUltimoReset; + +int OnInit() +{ + hIFR = iRSI(_Symbol, _Period, PeriodoIFR, PRICE_CLOSE); + hMME200= iMA(_Symbol, _Period, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + if(hIFR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) return INIT_FAILED; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); + IndicatorRelease(hMME200); +} + +bool NovaBarraIniciou() +{ + datetime dt = iTime(_Symbol, _Period, 0); + if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } + return false; +} + +double GetBuf(int handle, int deslocamento) +{ + double buf[]; ArraySetAsSeries(buf, true); + if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; + return buf[0]; +} + +bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } +bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } + +void ResetDiario() +{ + MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); + MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); + if(dt.day != dtR.day) + { + fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); + if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } + } +} + +void AtualizarGestaoRisco() +{ + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * RiscoDiaPct / 100.0; + double limiteSemana = saldo * RiscoSemanaPct / 100.0; + + if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + { + double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double resultado = (iDirecaoPosicao == 1) + ? (preco - fPrecoEntrada) * VolumeLote * 100 + : (fPrecoEntrada - preco) * VolumeLote * 100; + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + } + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) bBloqueioDia = true; + if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; + if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; + } +} + +void OnTick() +{ + if(!NovaBarraIniciou()) return; + ResetDiario(); + if(UsarGestaoRisco) AtualizarGestaoRisco(); + + double fIFR = GetBuf(hIFR, 1); + double fIFRAnt = GetBuf(hIFR, 2); + double fMME200 = GetBuf(hMME200, 1); + double closeB1 = iClose(_Symbol, _Period, 1); + + bool bTendenciaAlta = closeB1 > fMME200 + MargemMMEPontos * _Point; + bool bTendenciaBaixa = closeB1 < fMME200 - MargemMMEPontos * _Point; + + bool bPullbackAlta = bTendenciaAlta && (fIFRAnt < NivelPullbackCompra) && (fIFR >= NivelPullbackCompra); + bool bPullbackBaixa = bTendenciaBaixa && (fIFRAnt > NivelPullbackVenda) && (fIFR <= NivelPullbackVenda); + + // ── SAIDAS ────────────────────────────────────────────────── + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(TenhoCompra()) + { + iBarrasPosicao++; + if(bid > fMelhorPreco) fMelhorPreco = bid; + bool sair = false; + if(UsarSaidaIFR && fIFR >= NivelSaidaCompra) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + if(TenhoVenda()) + { + iBarrasPosicao++; + if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; + bool sair = false; + if(UsarSaidaIFR && fIFR <= NivelSaidaVenda) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + // ── ENTRADAS ──────────────────────────────────────────────── + if(!TenhoCompra() && !TenhoVenda()) + { + iBarrasPosicao = 0; fMelhorPreco = 0; + if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + + if(bPullbackAlta) + { + trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "IFR_pullback_alta"); + fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + } + else if(bPullbackBaixa) + { + trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "IFR_pullback_baixa"); + fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + } + } +} diff --git a/plataformas/mql5/mar_MED_01_XAUUSD.mq5 b/plataformas/mql5/mar_MED_01_XAUUSD.mq5 new file mode 100644 index 0000000..cd99648 --- /dev/null +++ b/plataformas/mql5/mar_MED_01_XAUUSD.mq5 @@ -0,0 +1,193 @@ +//+------------------------------------------------------------------+ +//| mar_MED_01_XAUUSD.mq5 | +//| Grupo: MEDIAS — Versao MT5 | +//| Descricao: Cruzamento de medias MME rapida x MME lenta. | +//| Quando MME rapida cruza acima da lenta = compra. | +//| Abaixo = venda. Filtro: confirmacao de fechamento | +//| alem da MME lenta. Trailing para capturar movimento.| +//| Ativo: XAUUSD — tambem testavel em EURUSD, US30 | +//| Timeframe: M15 / M30 / H1 | +//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ + +#property copyright "Wesley — RepoRobos" +#property version "1.00" +#property strict + +#include + +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada | +//+------------------------------------------------------------------+ + +// ── Medias ──────────────────────────────────────────────────────── +input int PeriodoMMERapida = 9; +input int PeriodoMMELenta = 21; +input bool UsarFiltroFechamento = true; // fecha alem da MME lenta + +// ── Saida ───────────────────────────────────────────────────────── +input bool UsarSaidaCruzInverso = true; +input bool UsarSaidaTempo = true; +input int MaxBarrasPosicao = 20; +input bool UsarTrailing = true; +input double PontosTrailing = 150.0; // pontos do ativo + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double VolumeLote = 0.01; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hMMERapida; +int hMMELenta; +double fPrecoEntrada; +double fMelhorPreco; +int iDirecaoPosicao; +int iBarrasPosicao; +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; +datetime dtUltimoBar; +datetime dtUltimoReset; + +int OnInit() +{ + hMMERapida = iMA(_Symbol, _Period, PeriodoMMERapida, 0, MODE_EMA, PRICE_CLOSE); + hMMELenta = iMA(_Symbol, _Period, PeriodoMMELenta, 0, MODE_EMA, PRICE_CLOSE); + if(hMMERapida == INVALID_HANDLE || hMMELenta == INVALID_HANDLE) return INIT_FAILED; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + IndicatorRelease(hMMERapida); + IndicatorRelease(hMMELenta); +} + +bool NovaBarraIniciou() +{ + datetime dt = iTime(_Symbol, _Period, 0); + if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } + return false; +} + +double GetBuf(int handle, int deslocamento) +{ + double buf[]; ArraySetAsSeries(buf, true); + if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; + return buf[0]; +} + +bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } +bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } + +void ResetDiario() +{ + MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); + MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); + if(dt.day != dtR.day) + { + fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); + if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } + } +} + +void AtualizarGestaoRisco() +{ + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * RiscoDiaPct / 100.0; + double limiteSemana = saldo * RiscoSemanaPct / 100.0; + + if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + { + double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double resultado = (iDirecaoPosicao == 1) + ? (preco - fPrecoEntrada) * VolumeLote * 100 + : (fPrecoEntrada - preco) * VolumeLote * 100; + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + } + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) bBloqueioDia = true; + if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; + if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; + } +} + +void OnTick() +{ + if(!NovaBarraIniciou()) return; + ResetDiario(); + if(UsarGestaoRisco) AtualizarGestaoRisco(); + + double mmeRapida = GetBuf(hMMERapida, 1); + double mmeLenta = GetBuf(hMMELenta, 1); + double mmeRapidaAnt = GetBuf(hMMERapida, 2); + double mmeLentaAnt = GetBuf(hMMELenta, 2); + double closeB1 = iClose(_Symbol, _Period, 1); + + bool bCruzouParaCima = (mmeRapidaAnt <= mmeLentaAnt) && (mmeRapida > mmeLenta); + bool bCruzouParaBaixo = (mmeRapidaAnt >= mmeLentaAnt) && (mmeRapida < mmeLenta); + + if(UsarFiltroFechamento) + { + bCruzouParaCima = bCruzouParaCima && (closeB1 > mmeLenta); + bCruzouParaBaixo = bCruzouParaBaixo && (closeB1 < mmeLenta); + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + // ── SAIDAS ────────────────────────────────────────────────── + if(TenhoCompra()) + { + iBarrasPosicao++; + if(bid > fMelhorPreco) fMelhorPreco = bid; + bool sair = false; + if(UsarSaidaCruzInverso && mmeRapida < mmeLenta) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + if(TenhoVenda()) + { + iBarrasPosicao++; + if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; + bool sair = false; + if(UsarSaidaCruzInverso && mmeRapida > mmeLenta) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + // ── ENTRADAS ──────────────────────────────────────────────── + if(!TenhoCompra() && !TenhoVenda()) + { + iBarrasPosicao = 0; fMelhorPreco = 0; + if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + + if(bCruzouParaCima) + { + trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "MED_cruzamento_alta"); + fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + } + else if(bCruzouParaBaixo) + { + trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "MED_cruzamento_baixa"); + fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + } + } +} diff --git a/plataformas/mql5/mar_MED_02_NAS100.mq5 b/plataformas/mql5/mar_MED_02_NAS100.mq5 new file mode 100644 index 0000000..796d158 --- /dev/null +++ b/plataformas/mql5/mar_MED_02_NAS100.mq5 @@ -0,0 +1,195 @@ +//+------------------------------------------------------------------+ +//| mar_MED_02_NAS100.mq5 | +//| Grupo: MEDIAS — Versao MT5 | +//| Descricao: Score das 4 medias moveis. Conta quantas MMAs o | +//| preco esta acima ou abaixo. Score >= 3 = compra. | +//| Score <= -3 = venda. Alta seletividade e baixo | +//| ruido. Excelente para ativos tendenciais como | +//| NAS100, US500 e US30. | +//| Ativo: NAS100 — tambem testavel em US500, US30 | +//| Timeframe: H1 / H4 | +//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ + +#property copyright "Wesley — RepoRobos" +#property version "1.00" +#property strict + +#include + +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada | +//+------------------------------------------------------------------+ + +// ── As 4 medias ────────────────────────────────────────────────── +input int PeriodoMME1 = 9; +input int PeriodoMME2 = 21; +input int PeriodoMMA3 = 50; +input int PeriodoMMA4 = 200; + +// ── Score de entrada/saida ──────────────────────────────────────── +input int ScoreEntradaCompra = 3; // minimo 3 medias abaixo do preco +input int ScoreEntradaVenda = -3; // minimo 3 medias acima do preco +input int ScoreSaidaCompra = 1; // sair quando score cai para 1 +input int ScoreSaidaVenda = -1; + +// ── Saida ───────────────────────────────────────────────────────── +input bool UsarSaidaTempo = true; +input int MaxBarrasPosicao = 20; +input bool UsarTrailing = true; +input double PontosTrailing = 250.0; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos= 2; +input double VolumeLote = 0.01; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hMME1, hMME2, hMMA3, hMMA4; +double fPrecoEntrada; +double fMelhorPreco; +int iDirecaoPosicao; +int iBarrasPosicao; +double fResultadoDia, fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia, bBloqueioSemana; +datetime dtUltimoBar, dtUltimoReset; + +int OnInit() +{ + hMME1 = iMA(_Symbol, _Period, PeriodoMME1, 0, MODE_EMA, PRICE_CLOSE); + hMME2 = iMA(_Symbol, _Period, PeriodoMME2, 0, MODE_EMA, PRICE_CLOSE); + hMMA3 = iMA(_Symbol, _Period, PeriodoMMA3, 0, MODE_SMA, PRICE_CLOSE); + hMMA4 = iMA(_Symbol, _Period, PeriodoMMA4, 0, MODE_SMA, PRICE_CLOSE); + if(hMME1==INVALID_HANDLE || hMME2==INVALID_HANDLE || hMMA3==INVALID_HANDLE || hMMA4==INVALID_HANDLE) + return INIT_FAILED; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + IndicatorRelease(hMME1); IndicatorRelease(hMME2); + IndicatorRelease(hMMA3); IndicatorRelease(hMMA4); +} + +bool NovaBarraIniciou() +{ + datetime dt = iTime(_Symbol, _Period, 0); + if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } + return false; +} + +double GetBuf(int handle, int deslocamento) +{ + double buf[]; ArraySetAsSeries(buf, true); + if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; + return buf[0]; +} + +bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } +bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } + +void ResetDiario() +{ + MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); + MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); + if(dt.day != dtR.day) + { + fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); + if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } + } +} + +void AtualizarGestaoRisco() +{ + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * RiscoDiaPct / 100.0; + double limiteSemana = saldo * RiscoSemanaPct / 100.0; + if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + { + double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double resultado = (iDirecaoPosicao == 1) + ? (preco - fPrecoEntrada) * VolumeLote * 100 + : (fPrecoEntrada - preco) * VolumeLote * 100; + fResultadoDia += resultado; fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + } + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) bBloqueioDia = true; + if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; + if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; + } +} + +void OnTick() +{ + if(!NovaBarraIniciou()) return; + ResetDiario(); + if(UsarGestaoRisco) AtualizarGestaoRisco(); + + double closeB1 = iClose(_Symbol, _Period, 1); + double mme1 = GetBuf(hMME1, 1); + double mme2 = GetBuf(hMME2, 1); + double mma3 = GetBuf(hMMA3, 1); + double mma4 = GetBuf(hMMA4, 1); + + // Score: +1 preco acima da media, -1 abaixo + int score = 0; + if(closeB1 > mme1) score++; else score--; + if(closeB1 > mme2) score++; else score--; + if(closeB1 > mma3) score++; else score--; + if(closeB1 > mma4) score++; else score--; + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + // ── SAIDAS ────────────────────────────────────────────────── + if(TenhoCompra()) + { + iBarrasPosicao++; + if(bid > fMelhorPreco) fMelhorPreco = bid; + bool sair = false; + if(score <= ScoreSaidaCompra) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + if(TenhoVenda()) + { + iBarrasPosicao++; + if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; + bool sair = false; + if(score >= ScoreSaidaVenda) sair = true; + if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; + if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; + if(sair) trade.PositionClose(_Symbol); + } + + // ── ENTRADAS ──────────────────────────────────────────────── + if(!TenhoCompra() && !TenhoVenda()) + { + iBarrasPosicao = 0; fMelhorPreco = 0; + if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + + if(score >= ScoreEntradaCompra) + { + trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "MED_score_alta"); + fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + } + else if(score <= ScoreEntradaVenda) + { + trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "MED_score_baixa"); + fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + } + } +} From ca5b964680b8f661fb5576cdf1bbd5492ddb67a6 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 18:07:22 -0300 Subject: [PATCH 44/63] Estrutura: codigo_fonte->ntsl em todos grupos, resultsBackTestTimeframe, reprovados, README convencao nomenclatura --- .../50mais1/{codigo_fonte => ntsl}/.gitkeep | 0 .../reprovados}/.gitkeep | 0 .../resultsBackTestTimeframe}/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../BREAKOUT/ntsl/.gitkeep | 0 .../reprovados}/.gitkeep | 0 .../resultsBackTestTimeframe}/.gitkeep | 0 .../README_convencao.md | 31 +++++++ ...ar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt | 0 ...r_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt | 0 ...PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt | 0 ...PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt | 0 .../mar_PC_05_v1_marubozu_alta_vol.ntsl.txt | 0 .../mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt | 0 ...mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt | 0 ...ar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt | 0 .../mar_PC_09_v1_volume_iniciativa.ntsl.txt | 0 ...C_10_v1_volume_maximo_confluencia.ntsl.txt | 0 ...C_11_v1_vwap_inversao_polo_compra.ntsl.txt | 0 ...PC_12_v1_vwap_inversao_polo_venda.ntsl.txt | 0 ...PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt | 0 ...PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt | 0 ..._v1_gap_parcial_fecha_acima_maxD1.ntsl.txt | 0 ...PC_16_v1_gap_forca_pullback_venda.ntsl.txt | 0 .../mar_PC_17_v1_martelo_alta.ntsl.txt | 0 ...ar_PC_18_v1_estrela_cadente_venda.ntsl.txt | 0 .../mar_PC_19_v1_forca_pura_alta.ntsl.txt | 0 .../mar_PC_20_v1_forca_pura_baixa.ntsl.txt | 0 .../mar_PC_21_v1_atr_zona_saudavel.ntsl.txt | 0 ..._22_v1_gap_exaustao_alta_reversao.ntsl.txt | 0 ...23_v1_gap_exaustao_baixa_reversao.ntsl.txt | 0 ...C_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt | 0 ...PC_25_v1_gap_grande_suporte_minD1.ntsl.txt | 0 .../mar_PC_26_v1_colapso_minD1.ntsl.txt | 0 .../mar_PC_27_v1_breakout_maxD1.ntsl.txt | 0 ..._v1_gap_parcial_fecha_acima_maxD1.ntsl.txt | 0 ...v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt | 0 ...PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt | 0 ..._PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt | 0 .../mar_PC_32_v1_absorcao_vol_medio.ntsl.txt | 0 ...3_v1_absorcao_vol_alto_compressao.ntsl.txt | 0 .../reprovados}/.gitkeep | 0 .../resultsBackTestTimeframe}/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../ntsl}/.gitkeep | 0 .../reprovados}/.gitkeep | 0 .../resultsBackTestTimeframe}/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../ntsl/.gitkeep" | 0 .../reprovados/.gitkeep" | 0 .../resultsBackTestTimeframe/.gitkeep" | 0 .../README_convencao.md" | 31 +++++++ .../HORARIO_ESPECIFICO/ntsl/.gitkeep | 0 .../HORARIO_ESPECIFICO/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ ..._IFR_01_v1_divergencia_confirmada.ntsl.txt | 0 ...FR_02_v1_reversao_volume_relativo.ntsl.txt | 0 ...mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt | 0 .../mar_IFR_04_v1_bandas_dinamicas.ntsl.txt | 0 ...r_IFR_05_v1_controle_risco_diario.ntsl.txt | 0 ...ar_IFR_06_v1_um_trade_por_direcao.ntsl.txt | 0 .../mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt | 0 .../mar_IFR_08_v1_divergencia_pivo.ntsl.txt | 0 .../mar_IFR_09_v1_pullback_mme200.ntsl.txt | 0 .../mar_IFR_10_v1_regime_balanceado.ntsl.txt | 0 ...r_v12_multitimeframe_alinhadoREPROVADO.txt | 0 ...ifr_v13_divergencia_estruturaREPROVADO.txt | 0 ...fr_v15_saida_estagio_trailingREPROVADO.txt | 0 .../robo_ifr_v16_slope_cooldownREPROVADO.txt | 0 .../robo_ifr_v17_failure_swingREPROVADO.txt | 0 ...obo_ifr_v19_ifr_vwap_contextoREPROVADO.txt | 0 .../robo_ifr_v21_ifr_atr_faixaREPROVADO.txt | 0 .../robo_ifr_v22_tendencia_forteREPROVADO.txt | 0 .../robo_ifr_v26_janela_pivoREPROVADO.txt | 0 ..._ifr_v29_ifr_direcao_aberturaREPROVADO.txt | 0 .../robo_ifr_v2_retorno_zonaREPROVADO.txt | 0 ...30_ifr_circuit_breaker_diarioREPROVADO.txt | 0 .../robo_ifr_v32_retorno_pivo3REPROVADO.txt | 0 .../robo_ifr_v34_no_trade_zoneREPROVADO.txt | 0 .../robo_ifr_v35_cooldown_diarioREPROVADO.txt | 0 ...bo_ifr_v37_adx_faixa_operavelREPROVADO.txt | 0 ...bo_ifr_v38_vwap_distancia_maxREPROVADO.txt | 0 .../robo_ifr_v39_orb_ifrREPROVADO.txt | 0 ...obo_ifr_v3_tendencia_pullbackREPROVADO.txt | 0 ..._ifr_v40_stop_estrutura_tempoREPROVADO.txt | 0 .../robo_ifr_v41_percentil_20_80REPROVADO.txt | 0 ...ifr_v42_parametros_por_sessaoREPROVADO.txt | 0 .../robo_ifr_v43_vwap_direcionalREPROVADO.txt | 0 ..._ifr_v44_vwap_distancia_duplaREPROVADO.txt | 0 ...v46_direcao_abertura_refinadaREPROVADO.txt | 0 ...ifr_v48_circuit_breaker_tempoREPROVADO.txt | 0 ...v49_limite_trades_progressivoREPROVADO.txt | 0 ...robo_ifr_v50_meta_perda_proxyREPROVADO.txt | 0 ...o_ifr_v8_resgate_breakout_ifrREPROVADO.txt | 0 ...o_ifr_v9_conservador_contextoREPROVADO.txt | 0 .../README_convencao.md | 85 +++++++++++++++++++ .../ranking_melhores_ate_momento.txt | 0 .../robo_ifr_v10_balanceado_regime02min.csv | 0 .../robo_ifr_v10_balanceado_regime05min.csv | 0 .../robo_ifr_v10_balanceado_regime15min.csv | 0 .../robo_ifr_v10_balanceado_regime30min.csv | 0 .../robo_ifr_v10_balanceado_regime60min.csv | 0 .../robo_ifr_v11_agressivo_reentrada02min.csv | 0 .../robo_ifr_v11_agressivo_reentrada05min.csv | 0 .../robo_ifr_v11_agressivo_reentrada15min.csv | 0 .../robo_ifr_v11_agressivo_reentrada30min.csv | 0 .../robo_ifr_v11_agressivo_reentrada60min.csv | 0 .../robo_ifr_v18_bandas_dinamicas02min.csv | 0 .../robo_ifr_v18_bandas_dinamicas05min.csv | 0 .../robo_ifr_v18_bandas_dinamicas15min.csv | 0 .../robo_ifr_v18_bandas_dinamicas30min.csv | 0 .../robo_ifr_v18_bandas_dinamicas60min.csv | 0 .../robo_ifr_v1_reversao_extremos02min64%.csv | 0 .../robo_ifr_v1_reversao_extremos05min47%.csv | 0 .../robo_ifr_v1_reversao_extremos15min68%.csv | 0 .../robo_ifr_v1_reversao_extremos30min81%.csv | 0 .../robo_ifr_v1_reversao_extremos60min71%.csv | 0 ...robo_ifr_v20_ifr_assimetrico_lado02min.csv | 0 ...robo_ifr_v20_ifr_assimetrico_lado05min.csv | 0 ...robo_ifr_v20_ifr_assimetrico_lado15min.csv | 0 ...robo_ifr_v20_ifr_assimetrico_lado30min.csv | 0 ...robo_ifr_v20_ifr_assimetrico_lado60min.csv | 0 .../robo_ifr_v23_dupla_confirmacao02min.csv | 0 .../robo_ifr_v23_dupla_confirmacao05min.csv | 0 .../robo_ifr_v23_dupla_confirmacao15min.csv | 0 .../robo_ifr_v23_dupla_confirmacao30min.csv | 0 .../robo_ifr_v23_dupla_confirmacao60min.csv | 0 ...robo_ifr_v24_controle_risco_diario1min.csv | 0 .../robo_ifr_v24_controle_risco_diario60m.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto01min.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto02min.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto05min.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto15min.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto30min.csv | 0 .../robo_ifr_v25_ifr_mme200_contexto60min.csv | 0 ...robo_ifr_v27_um_trade_por_direcao02min.csv | 0 ...robo_ifr_v27_um_trade_por_direcao05min.csv | 0 ...robo_ifr_v27_um_trade_por_direcao15min.csv | 0 ...robo_ifr_v27_um_trade_por_direcao30min.csv | 0 ...robo_ifr_v27_um_trade_por_direcao60min.csv | 0 .../robo_ifr_v28_ifr_adx_filtro02min.csv | 0 .../robo_ifr_v28_ifr_adx_filtro05min.csv | 0 .../robo_ifr_v28_ifr_adx_filtro15min.csv | 0 .../robo_ifr_v28_ifr_adx_filtro30min.csv | 0 .../robo_ifr_v28_ifr_adx_filtro60min.csv | 0 .../robo_ifr_v33_pullback_mme20002min.csv | 0 .../robo_ifr_v33_pullback_mme20005min.csv | 0 .../robo_ifr_v33_pullback_mme20015min.csv | 0 .../robo_ifr_v33_pullback_mme20030min.csv | 0 .../robo_ifr_v33_pullback_mme20060min.csv | 0 ..._ifr_v36_divergencia_regular_pivo02min.csv | 0 ..._ifr_v36_divergencia_regular_pivo05min.csv | 0 ..._ifr_v36_divergencia_regular_pivo15min.csv | 0 ..._ifr_v36_divergencia_regular_pivo30min.csv | 0 ..._ifr_v36_divergencia_regular_pivo60min.csv | 0 .../robo_ifr_v45_volume_por_horario02min.csv | 0 .../robo_ifr_v45_volume_por_horario05min.csv | 0 .../robo_ifr_v45_volume_por_horario15min.csv | 0 .../robo_ifr_v45_volume_por_horario30min.csv | 0 .../robo_ifr_v45_volume_por_horario60min.csv | 0 ...obo_ifr_v47_orb_confirmacao_dupla02min.csv | 0 ...obo_ifr_v47_orb_confirmacao_dupla05min.csv | 0 ...obo_ifr_v47_orb_confirmacao_dupla15min.csv | 0 ...obo_ifr_v47_orb_confirmacao_dupla60min.csv | 0 ..._ifr_v4_divergencia_confirmada02min64%.csv | 0 ...obo_ifr_v4_divergencia_confirmada05min.csv | 0 ...obo_ifr_v4_divergencia_confirmada15min.csv | 0 ...obo_ifr_v4_divergencia_confirmada30min.csv | 0 ...obo_ifr_v4_divergencia_confirmada60min.csv | 0 .../robo_ifr_v5_regime_volatilidade02min.csv | 0 .../robo_ifr_v5_regime_volatilidade05min.csv | 0 .../robo_ifr_v5_regime_volatilidade15min.csv | 0 .../robo_ifr_v5_regime_volatilidade30min.csv | 0 .../robo_ifr_v5_regime_volatilidade60min.csv | 0 .../robo_ifr_v6_saida_hibrida02min.csv | 0 .../robo_ifr_v6_saida_hibrida05min.csv | 0 .../robo_ifr_v6_saida_hibrida15min.csv | 0 .../robo_ifr_v6_saida_hibrida30min.csv | 0 .../robo_ifr_v6_saida_hibrida60min.csv | 0 .../robo_ifr_v7_resgate_contexto02min.csv | 0 .../robo_ifr_v7_resgate_contexto05min.csv | 0 .../robo_ifr_v7_resgate_contexto15min.csv | 0 .../robo_ifr_v7_resgate_contexto30min.csv | 0 .../robo_ifr_v7_resgate_contexto60min.csv | 0 .../LATERALIZACAO_DAYTRADE/ntsl/.gitkeep | 0 .../reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../LATERALIZACAO_SWINGTRADE/ntsl/.gitkeep | 0 .../reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ automacao_backtests/MEDIAS/ntsl/.gitkeep | 0 ...r_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt | 0 ...r_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt | 0 .../mar_MED_03_v1_posicao_4_medias.ntsl.txt | 0 .../mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt | 0 .../mar_MED_05_v1_cruzamento_mma200.ntsl.txt | 0 .../mar_MED_06_v1_golden_death_cross.ntsl.txt | 0 .../MEDIAS/reprovados/.gitkeep | 0 .../MEDIAS/resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ ..._PPV_01_v1_atr_trailing_agressivo.ntsl.txt | 0 ...ar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt | 0 ...ar_PPV_03_v1_estocastico_trailing.ntsl.txt | 0 ..._04_v1_macd_momentum_saida_rapida.ntsl.txt | 0 .../reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../REVERSAO_MEDIA/ntsl/.gitkeep | 0 .../REVERSAO_MEDIA/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ automacao_backtests/SCALPING/ntsl/.gitkeep | 0 .../SCALPING/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ ..._01_v1_ifr_mme200_stop_estrutural.ntsl.txt | 0 ...T_02_v1_divergencia_ifr_stop_pivo.ntsl.txt | 0 ...ST_03_v1_candle_forca_stop_atr15x.ntsl.txt | 0 ...r_ST_04_v1_confluencia_maxima_rr3.ntsl.txt | 0 .../STOPTOLERANTE/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../TENDENCIA_SEGUIR/ntsl/.gitkeep | 0 .../TENDENCIA_SEGUIR/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ .../VWAP_INSTITUCIONAL/ntsl/.gitkeep | 0 .../VWAP_INSTITUCIONAL/reprovados/.gitkeep | 0 .../resultsBackTestTimeframe/.gitkeep | 0 .../README_convencao.md | 31 +++++++ 233 files changed, 550 insertions(+) rename automacao_backtests/50mais1/{codigo_fonte => ntsl}/.gitkeep (100%) rename automacao_backtests/{BREAKOUT/codigo_fonte => 50mais1/reprovados}/.gitkeep (100%) rename automacao_backtests/{DRAWDOWNZERO/codigo_fonte => 50mais1/resultsBackTestTimeframe}/.gitkeep (100%) create mode 100644 automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md rename "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" => automacao_backtests/BREAKOUT/ntsl/.gitkeep (100%) rename automacao_backtests/{HORARIO_ESPECIFICO/codigo_fonte => BREAKOUT/reprovados}/.gitkeep (100%) rename automacao_backtests/{LATERALIZACAO_DAYTRADE/codigo_fonte => BREAKOUT/resultsBackTestTimeframe}/.gitkeep (100%) create mode 100644 automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_09_v1_volume_iniciativa.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_17_v1_martelo_alta.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_19_v1_forca_pura_alta.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_20_v1_forca_pura_baixa.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_26_v1_colapso_minD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_27_v1_breakout_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt (100%) rename automacao_backtests/CANDLE1/{codigo_fonte => ntsl}/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt (100%) rename automacao_backtests/{LATERALIZACAO_SWINGTRADE/codigo_fonte => CANDLE1/reprovados}/.gitkeep (100%) rename automacao_backtests/{MEDIAS/codigo_fonte => CANDLE1/resultsBackTestTimeframe}/.gitkeep (100%) create mode 100644 automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/{REVERSAO_MEDIA/codigo_fonte => DRAWDOWNZERO/ntsl}/.gitkeep (100%) rename automacao_backtests/{SCALPING/codigo_fonte => DRAWDOWNZERO/reprovados}/.gitkeep (100%) rename automacao_backtests/{TENDENCIA_SEGUIR/codigo_fonte => DRAWDOWNZERO/resultsBackTestTimeframe}/.gitkeep (100%) create mode 100644 automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep => "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/.gitkeep" (100%) create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/reprovados/.gitkeep" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/.gitkeep" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/.gitkeep create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/reprovados/.gitkeep create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_05_v1_controle_risco_diario.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_08_v1_divergencia_pivo.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_09_v1_pullback_mme200.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{codigo_fonte => ntsl}/mar_IFR_10_v1_regime_balanceado.ntsl.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v13_divergencia_estruturaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v16_slope_cooldownREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v17_failure_swingREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v22_tendencia_forteREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v26_janela_pivoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v2_retorno_zonaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v32_retorno_pivo3REPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v34_no_trade_zoneREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v35_cooldown_diarioREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v39_orb_ifrREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v3_tendencia_pullbackREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v41_percentil_20_80REPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v43_vwap_direcionalREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v50_meta_perda_proxyREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt (100%) rename automacao_backtests/IFR_RSI/{Reprovados => reprovados}/robo_ifr_v9_conservador_contextoREPROVADO.txt (100%) create mode 100644 automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/ranking_melhores_ate_momento.txt (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v10_balanceado_regime02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v10_balanceado_regime05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v10_balanceado_regime15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v10_balanceado_regime30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v10_balanceado_regime60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v11_agressivo_reentrada02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v11_agressivo_reentrada05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v11_agressivo_reentrada15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v11_agressivo_reentrada30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v11_agressivo_reentrada60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v18_bandas_dinamicas02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v18_bandas_dinamicas05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v18_bandas_dinamicas15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v18_bandas_dinamicas30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v18_bandas_dinamicas60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v1_reversao_extremos02min64%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v1_reversao_extremos05min47%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v1_reversao_extremos15min68%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v1_reversao_extremos30min81%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v1_reversao_extremos60min71%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v20_ifr_assimetrico_lado02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v20_ifr_assimetrico_lado05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v20_ifr_assimetrico_lado15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v20_ifr_assimetrico_lado30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v20_ifr_assimetrico_lado60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v23_dupla_confirmacao02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v23_dupla_confirmacao05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v23_dupla_confirmacao15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v23_dupla_confirmacao30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v23_dupla_confirmacao60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v24_controle_risco_diario1min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v24_controle_risco_diario60m.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto01min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v25_ifr_mme200_contexto60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v27_um_trade_por_direcao02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v27_um_trade_por_direcao05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v27_um_trade_por_direcao15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v27_um_trade_por_direcao30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v27_um_trade_por_direcao60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v28_ifr_adx_filtro02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v28_ifr_adx_filtro05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v28_ifr_adx_filtro15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v28_ifr_adx_filtro30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v28_ifr_adx_filtro60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v33_pullback_mme20002min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v33_pullback_mme20005min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v33_pullback_mme20015min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v33_pullback_mme20030min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v33_pullback_mme20060min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v36_divergencia_regular_pivo02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v36_divergencia_regular_pivo05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v36_divergencia_regular_pivo15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v36_divergencia_regular_pivo30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v36_divergencia_regular_pivo60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v45_volume_por_horario02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v45_volume_por_horario05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v45_volume_por_horario15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v45_volume_por_horario30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v45_volume_por_horario60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v47_orb_confirmacao_dupla02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v47_orb_confirmacao_dupla05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v47_orb_confirmacao_dupla15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v47_orb_confirmacao_dupla60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v4_divergencia_confirmada02min64%.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v4_divergencia_confirmada05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v4_divergencia_confirmada15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v4_divergencia_confirmada30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v4_divergencia_confirmada60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v5_regime_volatilidade02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v5_regime_volatilidade05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v5_regime_volatilidade15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v5_regime_volatilidade30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v5_regime_volatilidade60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v6_saida_hibrida02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v6_saida_hibrida05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v6_saida_hibrida15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v6_saida_hibrida30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v6_saida_hibrida60min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v7_resgate_contexto02min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v7_resgate_contexto05min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v7_resgate_contexto15min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v7_resgate_contexto30min.csv (100%) rename automacao_backtests/IFR_RSI/{resultadosAprovadosPorTimeframe => resultsBackTestTimeframe}/robo_ifr_v7_resgate_contexto60min.csv (100%) create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/reprovados/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/reprovados/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/MEDIAS/ntsl/.gitkeep rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt (100%) rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt (100%) rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_03_v1_posicao_4_medias.ntsl.txt (100%) rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt (100%) rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_05_v1_cruzamento_mma200.ntsl.txt (100%) rename automacao_backtests/MEDIAS/{codigo_fonte => ntsl}/mar_MED_06_v1_golden_death_cross.ntsl.txt (100%) create mode 100644 automacao_backtests/MEDIAS/reprovados/.gitkeep create mode 100644 automacao_backtests/MEDIAS/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/POUCOSPONTOSVENCEDORES/{codigo_fonte => ntsl}/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/{codigo_fonte => ntsl}/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/{codigo_fonte => ntsl}/mar_PPV_03_v1_estocastico_trailing.ntsl.txt (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/{codigo_fonte => ntsl}/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt (100%) create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/reprovados/.gitkeep create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/reprovados/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/SCALPING/ntsl/.gitkeep create mode 100644 automacao_backtests/SCALPING/reprovados/.gitkeep create mode 100644 automacao_backtests/SCALPING/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md rename automacao_backtests/STOPTOLERANTE/{codigo_fonte => ntsl}/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt (100%) rename automacao_backtests/STOPTOLERANTE/{codigo_fonte => ntsl}/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt (100%) rename automacao_backtests/STOPTOLERANTE/{codigo_fonte => ntsl}/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt (100%) rename automacao_backtests/STOPTOLERANTE/{codigo_fonte => ntsl}/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt (100%) create mode 100644 automacao_backtests/STOPTOLERANTE/reprovados/.gitkeep create mode 100644 automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/reprovados/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/.gitkeep create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/reprovados/.gitkeep create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/.gitkeep create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md diff --git a/automacao_backtests/50mais1/codigo_fonte/.gitkeep b/automacao_backtests/50mais1/ntsl/.gitkeep similarity index 100% rename from automacao_backtests/50mais1/codigo_fonte/.gitkeep rename to automacao_backtests/50mais1/ntsl/.gitkeep diff --git a/automacao_backtests/BREAKOUT/codigo_fonte/.gitkeep b/automacao_backtests/50mais1/reprovados/.gitkeep similarity index 100% rename from automacao_backtests/BREAKOUT/codigo_fonte/.gitkeep rename to automacao_backtests/50mais1/reprovados/.gitkeep diff --git a/automacao_backtests/DRAWDOWNZERO/codigo_fonte/.gitkeep b/automacao_backtests/50mais1/resultsBackTestTimeframe/.gitkeep similarity index 100% rename from automacao_backtests/DRAWDOWNZERO/codigo_fonte/.gitkeep rename to automacao_backtests/50mais1/resultsBackTestTimeframe/.gitkeep diff --git a/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" b/automacao_backtests/BREAKOUT/ntsl/.gitkeep similarity index 100% rename from "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/codigo_fonte/.gitkeep" rename to automacao_backtests/BREAKOUT/ntsl/.gitkeep diff --git a/automacao_backtests/HORARIO_ESPECIFICO/codigo_fonte/.gitkeep b/automacao_backtests/BREAKOUT/reprovados/.gitkeep similarity index 100% rename from automacao_backtests/HORARIO_ESPECIFICO/codigo_fonte/.gitkeep rename to automacao_backtests/BREAKOUT/reprovados/.gitkeep diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/codigo_fonte/.gitkeep b/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/.gitkeep similarity index 100% rename from automacao_backtests/LATERALIZACAO_DAYTRADE/codigo_fonte/.gitkeep rename to automacao_backtests/BREAKOUT/resultsBackTestTimeframe/.gitkeep diff --git a/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_09_v1_volume_iniciativa.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_17_v1_martelo_alta.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_19_v1_forca_pura_alta.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_20_v1_forca_pura_baixa.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_26_v1_colapso_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_27_v1_breakout_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt similarity index 100% rename from automacao_backtests/CANDLE1/codigo_fonte/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/codigo_fonte/.gitkeep b/automacao_backtests/CANDLE1/reprovados/.gitkeep similarity index 100% rename from automacao_backtests/LATERALIZACAO_SWINGTRADE/codigo_fonte/.gitkeep rename to automacao_backtests/CANDLE1/reprovados/.gitkeep diff --git a/automacao_backtests/MEDIAS/codigo_fonte/.gitkeep b/automacao_backtests/CANDLE1/resultsBackTestTimeframe/.gitkeep similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/.gitkeep rename to automacao_backtests/CANDLE1/resultsBackTestTimeframe/.gitkeep diff --git a/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/REVERSAO_MEDIA/codigo_fonte/.gitkeep b/automacao_backtests/DRAWDOWNZERO/ntsl/.gitkeep similarity index 100% rename from automacao_backtests/REVERSAO_MEDIA/codigo_fonte/.gitkeep rename to automacao_backtests/DRAWDOWNZERO/ntsl/.gitkeep diff --git a/automacao_backtests/SCALPING/codigo_fonte/.gitkeep b/automacao_backtests/DRAWDOWNZERO/reprovados/.gitkeep similarity index 100% rename from automacao_backtests/SCALPING/codigo_fonte/.gitkeep rename to automacao_backtests/DRAWDOWNZERO/reprovados/.gitkeep diff --git a/automacao_backtests/TENDENCIA_SEGUIR/codigo_fonte/.gitkeep b/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/.gitkeep similarity index 100% rename from automacao_backtests/TENDENCIA_SEGUIR/codigo_fonte/.gitkeep rename to automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/.gitkeep diff --git a/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/.gitkeep" similarity index 100% rename from automacao_backtests/VWAP_INSTITUCIONAL/codigo_fonte/.gitkeep rename to "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/.gitkeep" diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/reprovados/.gitkeep" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/reprovados/.gitkeep" new file mode 100644 index 0000000..e69de29 diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/.gitkeep" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/.gitkeep" new file mode 100644 index 0000000..e69de29 diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/.gitkeep b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/HORARIO_ESPECIFICO/reprovados/.gitkeep b/automacao_backtests/HORARIO_ESPECIFICO/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_05_v1_controle_risco_diario.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_08_v1_divergencia_pivo.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_09_v1_pullback_mme200.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl.txt similarity index 100% rename from automacao_backtests/IFR_RSI/codigo_fonte/mar_IFR_10_v1_regime_balanceado.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v12_multitimeframe_alinhadoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v13_divergencia_estruturaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v15_saida_estagio_trailingREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v16_slope_cooldownREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v17_failure_swingREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v17_failure_swingREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v17_failure_swingREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v19_ifr_vwap_contextoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v21_ifr_atr_faixaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v22_tendencia_forteREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v26_janela_pivoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v29_ifr_direcao_aberturaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v2_retorno_zonaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v30_ifr_circuit_breaker_diarioREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v32_retorno_pivo3REPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v34_no_trade_zoneREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v35_cooldown_diarioREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v37_adx_faixa_operavelREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v38_vwap_distancia_maxREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v39_orb_ifrREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v3_tendencia_pullbackREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v40_stop_estrutura_tempoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v41_percentil_20_80REPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v42_parametros_por_sessaoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v43_vwap_direcionalREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v44_vwap_distancia_duplaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v46_direcao_abertura_refinadaREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v48_circuit_breaker_tempoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v49_limite_trades_progressivoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v50_meta_perda_proxyREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v8_resgate_breakout_ifrREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt b/automacao_backtests/IFR_RSI/reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt similarity index 100% rename from automacao_backtests/IFR_RSI/Reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt rename to automacao_backtests/IFR_RSI/reprovados/robo_ifr_v9_conservador_contextoREPROVADO.txt diff --git a/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..985a68d --- /dev/null +++ b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,85 @@ +# resultsBackTestTimeframe — Convenção de Nomenclatura + +## Estrutura da pasta + +Esta pasta armazena os resultados de backtest organizados por **robô × timeframe**. +Cada robô deve ter um arquivo de resultado por timeframe testado. + +--- + +## Convenção de nome dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +| Campo | Exemplo | Descrição | +|-------------|-----------------|----------------------------------------| +| `TFmin` | `60min` | Timeframe testado (ver lista abaixo) | +| `mes` | `mar` | Prefixo do ciclo mensal | +| `GRUPO_NUM` | `IFR_04` | Grupo + número sequencial do robô | +| `vVERSAO` | `v1` | Versão do robô | +| `descricao` | `bandas_dinamicas` | Tema/estratégia em snake_case | + +### Exemplo completo para um robô: +``` +1min_mar_IFR_04_v1_bandas_dinamicas.csv +2min_mar_IFR_04_v1_bandas_dinamicas.csv +5min_mar_IFR_04_v1_bandas_dinamicas.csv +15min_mar_IFR_04_v1_bandas_dinamicas.csv +30min_mar_IFR_04_v1_bandas_dinamicas.csv +60min_mar_IFR_04_v1_bandas_dinamicas.csv +240min_mar_IFR_04_v1_bandas_dinamicas.csv +``` + +--- + +## Timeframes obrigatórios por robô + +| TF | Código | Observação | +|---------|-----------|----------------------------------------| +| 1 min | `1min` | Scalping / alta frequência | +| 2 min | `2min` | Intermediário curto | +| 5 min | `5min` | Intradiário padrão | +| 15 min | `15min` | Curto prazo consolidado | +| 30 min | `30min` | Melhor equilíbrio ruído/sinal | +| 60 min | `60min` | **Referência principal WIN** | +| 240 min | `240min` | Swing / tendência maior | + +> Usar o máximo de histórico disponível no Profit (mínimo 2 anos, ideal 5 anos). + +--- + +## Colunas esperadas no CSV + +``` +Timeframe,TaxaAcerto,TotalTrades,FinanceiroBruto,FinanceiroLiq,MaxDrawdown,FatorLucro,MediaGanho,MediaPerda +60min,67.5,120,R$8500,R$7200,R$1200,2.3,R$180,R$82 +``` + +--- + +## Robô correspondente + +O arquivo `.ntsl.txt` do robô fica em `../ntsl/` com o **mesmo nome base** (sem o prefixo do timeframe): +``` +../ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt + ↓ resultados gerados ↓ +1min_mar_IFR_04_v1_bandas_dinamicas.csv +60min_mar_IFR_04_v1_bandas_dinamicas.csv +... +``` + +--- + +## Critério de aprovação / reprovação + +| Métrica | Mínimo aceito | Ideal | +|------------------|---------------|---------------| +| Taxa de acerto | > 60% | > 65% | +| Fator de lucro | > 1.3 | > 1.8 | +| Max Drawdown | < 20% capital | < 10% | +| Total de trades | ≥ 30 | ≥ 80 | +| R/R médio | ≥ 1:1.5 | ≥ 1:2 | + +Robôs **reprovados** em todos os timeframes vão para `../reprovados/`. diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/ranking_melhores_ate_momento.txt similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/ranking_melhores_ate_momento.txt rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/ranking_melhores_ate_momento.txt diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v10_balanceado_regime60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v10_balanceado_regime60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v11_agressivo_reentrada60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v18_bandas_dinamicas60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos02min64%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos05min47%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos15min68%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos30min81%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v1_reversao_extremos60min71%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v20_ifr_assimetrico_lado60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v23_dupla_confirmacao60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v24_controle_risco_diario1min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario1min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v24_controle_risco_diario1min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v24_controle_risco_diario60m.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v24_controle_risco_diario60m.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v24_controle_risco_diario60m.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto01min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v25_ifr_mme200_contexto60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v27_um_trade_por_direcao60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v28_ifr_adx_filtro60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20002min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20002min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20002min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20005min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20005min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20005min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20015min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20015min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20015min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20030min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20030min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20030min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20060min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v33_pullback_mme20060min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v33_pullback_mme20060min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v36_divergencia_regular_pivo60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v45_volume_por_horario60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v45_volume_por_horario60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v47_orb_confirmacao_dupla60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada02min64%.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v4_divergencia_confirmada60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v5_regime_volatilidade60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v5_regime_volatilidade60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v6_saida_hibrida60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v6_saida_hibrida60min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto02min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto02min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto02min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto05min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto05min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto05min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto15min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto15min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto15min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto30min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto30min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto30min.csv diff --git a/automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto60min.csv similarity index 100% rename from automacao_backtests/IFR_RSI/resultadosAprovadosPorTimeframe/robo_ifr_v7_resgate_contexto60min.csv rename to automacao_backtests/IFR_RSI/resultsBackTestTimeframe/robo_ifr_v7_resgate_contexto60min.csv diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/.gitkeep b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/reprovados/.gitkeep b/automacao_backtests/LATERALIZACAO_DAYTRADE/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/.gitkeep b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/reprovados/.gitkeep b/automacao_backtests/LATERALIZACAO_SWINGTRADE/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/MEDIAS/ntsl/.gitkeep b/automacao_backtests/MEDIAS/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_03_v1_posicao_4_medias.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl.txt diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_05_v1_cruzamento_mma200.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl.txt diff --git a/automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl.txt similarity index 100% rename from automacao_backtests/MEDIAS/codigo_fonte/mar_MED_06_v1_golden_death_cross.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl.txt diff --git a/automacao_backtests/MEDIAS/reprovados/.gitkeep b/automacao_backtests/MEDIAS/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/MEDIAS/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/MEDIAS/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl.txt similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_03_v1_estocastico_trailing.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl.txt diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/codigo_fonte/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/reprovados/.gitkeep b/automacao_backtests/POUCOSPONTOSVENCEDORES/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/.gitkeep b/automacao_backtests/REVERSAO_MEDIA/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/reprovados/.gitkeep b/automacao_backtests/REVERSAO_MEDIA/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/SCALPING/ntsl/.gitkeep b/automacao_backtests/SCALPING/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/SCALPING/reprovados/.gitkeep b/automacao_backtests/SCALPING/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/SCALPING/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/SCALPING/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt similarity index 100% rename from automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt similarity index 100% rename from automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt similarity index 100% rename from automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt diff --git a/automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt similarity index 100% rename from automacao_backtests/STOPTOLERANTE/codigo_fonte/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt diff --git a/automacao_backtests/STOPTOLERANTE/reprovados/.gitkeep b/automacao_backtests/STOPTOLERANTE/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/.gitkeep b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/TENDENCIA_SEGUIR/reprovados/.gitkeep b/automacao_backtests/TENDENCIA_SEGUIR/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/.gitkeep b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/reprovados/.gitkeep b/automacao_backtests/VWAP_INSTITUCIONAL/reprovados/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/.gitkeep b/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md new file mode 100644 index 0000000..2d55d9b --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md @@ -0,0 +1,31 @@ +# resultsBackTestTimeframe + +## Nomenclatura dos arquivos de resultado + +``` +TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +``` + +**Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` + +**Exemplo:** +``` +1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +``` + +O robô correspondente fica em `../ntsl/` com o mesmo nome base. + +## Critério de aprovação + +| Métrica | Mínimo | +|----------------|----------| +| Taxa de acerto | > 60% | +| Fator de lucro | > 1.3 | +| Max Drawdown | < 20% | +| Total trades | 30 | + +Reprovados em todos os TFs mover para `../reprovados/`. + +> Referência completa: [IFR_RSI/resultsBackTestTimeframe/README_convencao.md](../../IFR_RSI/resultsBackTestTimeframe/README_convencao.md) From 970186deac1bb879af78db62122334a5c1514e1b Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 18:33:51 -0300 Subject: [PATCH 45/63] Rename: .ntsl.txt -> .ntsl em todos os grupos (106 arquivos); adiciona novos robos: PPV_05, ST_05, 5M1_01-05, BRK_01-05, DDZ_01-05, DC_01-05, HOR_01-05, LAB_01-02 --- .../mar_5M1_01_v1_candle_forca_50pts.ntsl | 126 +++++++++++++ .../ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl | 129 ++++++++++++++ .../ntsl/mar_5M1_03_v1_gap_continuacao.ntsl | 124 +++++++++++++ .../mar_5M1_04_v1_ifr_extremo_impulso.ntsl | 109 ++++++++++++ ...ar_5M1_05_v1_macd_histograma_explosao.ntsl | 126 +++++++++++++ .../mar_BRK_01_v1_donchian_rompimento.ntsl | 98 ++++++++++ .../mar_BRK_02_v1_consolidacao_breakout.ntsl | 111 ++++++++++++ ..._BRK_03_v1_bollinger_squeeze_expansao.ntsl | 76 ++++++++ .../mar_BRK_04_v1_maxmin_abertura_dia.ntsl | 89 ++++++++++ ...mar_BRK_05_v1_pivo_rompimento_reteste.ntsl | 92 ++++++++++ ...> mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl} | 0 ... mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl} | 0 ...ar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl} | 0 ...ar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl} | 0 ...xt => mar_PC_05_v1_marubozu_alta_vol.ntsl} | 0 ...t => mar_PC_06_v1_marubozu_baixa_vol.ntsl} | 0 ...=> mar_PC_07_v1_abertura_acima_maxD1.ntsl} | 0 ...> mar_PC_08_v1_abertura_abaixo_minD1.ntsl} | 0 ...xt => mar_PC_09_v1_volume_iniciativa.ntsl} | 0 ...r_PC_10_v1_volume_maximo_confluencia.ntsl} | 0 ...r_PC_11_v1_vwap_inversao_polo_compra.ntsl} | 0 ...ar_PC_12_v1_vwap_inversao_polo_venda.ntsl} | 0 ...ar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl} | 0 ...ar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl} | 0 ..._15_v1_gap_parcial_fecha_acima_maxD1.ntsl} | 0 ...ar_PC_16_v1_gap_forca_pullback_venda.ntsl} | 0 ...tsl.txt => mar_PC_17_v1_martelo_alta.ntsl} | 0 ...> mar_PC_18_v1_estrela_cadente_venda.ntsl} | 0 ....txt => mar_PC_19_v1_forca_pura_alta.ntsl} | 0 ...txt => mar_PC_20_v1_forca_pura_baixa.ntsl} | 0 ...xt => mar_PC_21_v1_atr_zona_saudavel.ntsl} | 0 ..._PC_22_v1_gap_exaustao_alta_reversao.ntsl} | 0 ...PC_23_v1_gap_exaustao_baixa_reversao.ntsl} | 0 ...r_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl} | 0 ...ar_PC_25_v1_gap_grande_suporte_minD1.ntsl} | 0 ...sl.txt => mar_PC_26_v1_colapso_minD1.ntsl} | 0 ...l.txt => mar_PC_27_v1_breakout_maxD1.ntsl} | 0 ..._28_v1_gap_parcial_fecha_acima_maxD1.ntsl} | 0 ...29_v1_gap_parcial_fecha_abaixo_minD1.ntsl} | 0 ...ar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl} | 0 ...mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl} | 0 ...t => mar_PC_32_v1_absorcao_vol_medio.ntsl} | 0 ...C_33_v1_absorcao_vol_alto_compressao.ntsl} | 0 .../ntsl/mar_DDZ_01_v1_breakeven_11.ntsl | 102 +++++++++++ ...ar_DDZ_02_v1_parcial_breakeven_rapido.ntsl | 96 ++++++++++ ..._DDZ_03_v1_trailing_apertado_imediato.ntsl | 84 +++++++++ .../mar_DDZ_04_v1_stop_candle_anterior.ntsl | 104 +++++++++++ .../mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl | 95 ++++++++++ .../mar_DC_01_v1_ifr_candle_reversao.ntsl" | 88 +++++++++ .../ntsl/mar_DC_02_v1_medias_volume.ntsl" | 80 +++++++++ .../ntsl/mar_DC_03_v1_macd_ifr.ntsl" | 82 +++++++++ .../mar_DC_04_v1_adx_candle_continuacao.ntsl" | 85 +++++++++ .../mar_DC_05_v1_rompimento_reteste.ntsl" | 106 +++++++++++ ...r_HOR_01_v1_primeira_barra_rompimento.ntsl | 94 ++++++++++ .../ntsl/mar_HOR_02_v1_momentum_manha.ntsl | 79 ++++++++ .../ntsl/mar_HOR_03_v1_reversao_almoco.ntsl | 75 ++++++++ .../mar_HOR_04_v1_abertura_ny_momentum.ntsl | 76 ++++++++ .../ntsl/mar_HOR_05_v1_fechamento_b3.ntsl | 83 +++++++++ ...bo_ifr_v10_balanceado_regime60min63%.ntsl} | 0 ...obo_ifr_v18_bandas_dinamicas60min60%.ntsl} | 0 ...ifr_v24_controle_risco_diario1min67%.ntsl} | 0 ...o_ifr_v25_ifr_mme200_contexto2min69%.ntsl} | 0 ...ifr_v27_um_trade_por_direcao60min54%.ntsl} | 0 ... robo_ifr_v28_ifr_adx_filtro30min57%.ntsl} | 0 ...v31_reversao_volume_relativo60min72%.ntsl} | 0 ...robo_ifr_v33_pullback_mme20060min67%.ntsl} | 0 ...v36_divergencia_regular_pivo60min62%.ntsl} | 0 ...fr_v4_divergencia_confirmada60min90%.ntsl} | 0 ...mar_IFR_01_v1_divergencia_confirmada.ntsl} | 0 ...r_IFR_02_v1_reversao_volume_relativo.ntsl} | 0 ...=> mar_IFR_03_v1_ifr_mme200_contexto.ntsl} | 0 ...xt => mar_IFR_04_v1_bandas_dinamicas.ntsl} | 0 ... mar_IFR_05_v1_controle_risco_diario.ntsl} | 0 ...> mar_IFR_06_v1_um_trade_por_direcao.ntsl} | 0 ....txt => mar_IFR_07_v1_ifr_adx_filtro.ntsl} | 0 ...xt => mar_IFR_08_v1_divergencia_pivo.ntsl} | 0 ...txt => mar_IFR_09_v1_pullback_mme200.ntsl} | 0 ...t => mar_IFR_10_v1_regime_balanceado.ntsl} | 0 ...> 1robo_ifr_v6_saida_hibrida60min77%.ntsl} | 0 ...o_ifr_v5_regime_volatilidade60min90%.ntsl} | 0 ...o_ifr_v45_volume_por_horario60min75%.ntsl} | 0 ...ifr_v20_ifr_assimetrico_lado30min62%.ntsl} | 0 ..._ifr_v11_agressivo_reentrada30min58%.ntsl} | 0 ...obo_ifr_v1_reversao_extremos60min71%.ntsl} | 0 ...bo_ifr_v23_dupla_confirmacao15min87%.ntsl} | 0 ...fr_v47_orb_confirmacao_dupla60min66%.ntsl} | 0 ...robo_ifr_v7_resgate_contexto30min84%.ntsl} | 0 .../mar_LAB_01_v1_bollinger_reversao.ntsl | 78 ++++++++ .../mar_LAB_02_v1_estocastico_cruzamento.ntsl | 79 ++++++++ ... mar_MED_01_v1_cruzamento_mme9_mme21.ntsl} | 0 ... mar_MED_02_v1_cruzamento_mme9_mma50.ntsl} | 0 ...xt => mar_MED_03_v1_posicao_4_medias.ntsl} | 0 ... => mar_MED_04_v1_toque_rejeicao_mme.ntsl} | 0 ...t => mar_MED_05_v1_cruzamento_mma200.ntsl} | 0 ... => mar_MED_06_v1_golden_death_cross.ntsl} | 0 ...mar_PPV_01_v1_atr_trailing_agressivo.ntsl} | 0 ...> mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl} | 0 ...> mar_PPV_03_v1_estocastico_trailing.ntsl} | 0 ...PPV_04_v1_macd_momentum_saida_rapida.ntsl} | 0 .../mar_PPV_05_v1_parciais_multiplos.ntsl | 168 ++++++++++++++++++ ..._ST_01_v1_ifr_mme200_stop_estrutural.ntsl} | 0 ...r_ST_02_v1_divergencia_ifr_stop_pivo.ntsl} | 0 ...ar_ST_03_v1_candle_forca_stop_atr15x.ntsl} | 0 ... mar_ST_04_v1_confluencia_maxima_rr3.ntsl} | 0 ...mar_ST_05_v1_atr_dinamico_confluencia.ntsl | 135 ++++++++++++++ .../timeframeMenor/timeframeMenor.md | 1 + 106 files changed, 2870 insertions(+) create mode 100644 automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl create mode 100644 automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl create mode 100644 automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl create mode 100644 automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl create mode 100644 automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl create mode 100644 automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl create mode 100644 automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl create mode 100644 automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl create mode 100644 automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl create mode 100644 automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl rename automacao_backtests/CANDLE1/ntsl/{mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt => mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt => mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt => mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt => mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_05_v1_marubozu_alta_vol.ntsl.txt => mar_PC_05_v1_marubozu_alta_vol.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt => mar_PC_06_v1_marubozu_baixa_vol.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt => mar_PC_07_v1_abertura_acima_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt => mar_PC_08_v1_abertura_abaixo_minD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_09_v1_volume_iniciativa.ntsl.txt => mar_PC_09_v1_volume_iniciativa.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt => mar_PC_10_v1_volume_maximo_confluencia.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt => mar_PC_11_v1_vwap_inversao_polo_compra.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt => mar_PC_12_v1_vwap_inversao_polo_venda.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt => mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt => mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt => mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt => mar_PC_16_v1_gap_forca_pullback_venda.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_17_v1_martelo_alta.ntsl.txt => mar_PC_17_v1_martelo_alta.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_18_v1_estrela_cadente_venda.ntsl.txt => mar_PC_18_v1_estrela_cadente_venda.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_19_v1_forca_pura_alta.ntsl.txt => mar_PC_19_v1_forca_pura_alta.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_20_v1_forca_pura_baixa.ntsl.txt => mar_PC_20_v1_forca_pura_baixa.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_21_v1_atr_zona_saudavel.ntsl.txt => mar_PC_21_v1_atr_zona_saudavel.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt => mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt => mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt => mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt => mar_PC_25_v1_gap_grande_suporte_minD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_26_v1_colapso_minD1.ntsl.txt => mar_PC_26_v1_colapso_minD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_27_v1_breakout_maxD1.ntsl.txt => mar_PC_27_v1_breakout_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt => mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt => mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt => mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt => mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_32_v1_absorcao_vol_medio.ntsl.txt => mar_PC_32_v1_absorcao_vol_medio.ntsl} (100%) rename automacao_backtests/CANDLE1/ntsl/{mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt => mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl} (100%) create mode 100644 automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl create mode 100644 automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl create mode 100644 automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl create mode 100644 automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl create mode 100644 automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" create mode 100644 "automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl create mode 100644 automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v10_balanceado_regime60min63%.ntsl.txt => robo_ifr_v10_balanceado_regime60min63%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt => robo_ifr_v18_bandas_dinamicas60min60%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt => robo_ifr_v24_controle_risco_diario1min67%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt => robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt => robo_ifr_v27_um_trade_por_direcao60min54%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt => robo_ifr_v28_ifr_adx_filtro30min57%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt => robo_ifr_v31_reversao_volume_relativo60min72%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v33_pullback_mme20060min67%.ntsl.txt => robo_ifr_v33_pullback_mme20060min67%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt => robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl} (100%) rename automacao_backtests/IFR_RSI/legado/{robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt => robo_ifr_v4_divergencia_confirmada60min90%.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_01_v1_divergencia_confirmada.ntsl.txt => mar_IFR_01_v1_divergencia_confirmada.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt => mar_IFR_02_v1_reversao_volume_relativo.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt => mar_IFR_03_v1_ifr_mme200_contexto.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_04_v1_bandas_dinamicas.ntsl.txt => mar_IFR_04_v1_bandas_dinamicas.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_05_v1_controle_risco_diario.ntsl.txt => mar_IFR_05_v1_controle_risco_diario.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt => mar_IFR_06_v1_um_trade_por_direcao.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt => mar_IFR_07_v1_ifr_adx_filtro.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_08_v1_divergencia_pivo.ntsl.txt => mar_IFR_08_v1_divergencia_pivo.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_09_v1_pullback_mme200.ntsl.txt => mar_IFR_09_v1_pullback_mme200.ntsl} (100%) rename automacao_backtests/IFR_RSI/ntsl/{mar_IFR_10_v1_regime_balanceado.ntsl.txt => mar_IFR_10_v1_regime_balanceado.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt => 1robo_ifr_v6_saida_hibrida60min77%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt => 2robo_ifr_v5_regime_volatilidade60min90%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt => 3robo_ifr_v45_volume_por_horario60min75%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt => 4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt => robo_ifr_v11_agressivo_reentrada30min58%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v1_reversao_extremos60min71%.ntsl.txt => robo_ifr_v1_reversao_extremos60min71%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt => robo_ifr_v23_dupla_confirmacao15min87%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt => robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl} (100%) rename automacao_backtests/IFR_RSI/top10/{robo_ifr_v7_resgate_contexto30min84%.ntsl.txt => robo_ifr_v7_resgate_contexto30min84%.ntsl} (100%) create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl rename automacao_backtests/MEDIAS/ntsl/{mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt => mar_MED_01_v1_cruzamento_mme9_mme21.ntsl} (100%) rename automacao_backtests/MEDIAS/ntsl/{mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt => mar_MED_02_v1_cruzamento_mme9_mma50.ntsl} (100%) rename automacao_backtests/MEDIAS/ntsl/{mar_MED_03_v1_posicao_4_medias.ntsl.txt => mar_MED_03_v1_posicao_4_medias.ntsl} (100%) rename automacao_backtests/MEDIAS/ntsl/{mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt => mar_MED_04_v1_toque_rejeicao_mme.ntsl} (100%) rename automacao_backtests/MEDIAS/ntsl/{mar_MED_05_v1_cruzamento_mma200.ntsl.txt => mar_MED_05_v1_cruzamento_mma200.ntsl} (100%) rename automacao_backtests/MEDIAS/ntsl/{mar_MED_06_v1_golden_death_cross.ntsl.txt => mar_MED_06_v1_golden_death_cross.ntsl} (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/{mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt => mar_PPV_01_v1_atr_trailing_agressivo.ntsl} (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/{mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt => mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl} (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/{mar_PPV_03_v1_estocastico_trailing.ntsl.txt => mar_PPV_03_v1_estocastico_trailing.ntsl} (100%) rename automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/{mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt => mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl} (100%) create mode 100644 automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl rename automacao_backtests/STOPTOLERANTE/ntsl/{mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt => mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl} (100%) rename automacao_backtests/STOPTOLERANTE/ntsl/{mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt => mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl} (100%) rename automacao_backtests/STOPTOLERANTE/ntsl/{mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt => mar_ST_03_v1_candle_forca_stop_atr15x.ntsl} (100%) rename automacao_backtests/STOPTOLERANTE/ntsl/{mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt => mar_ST_04_v1_confluencia_maxima_rr3.ntsl} (100%) create mode 100644 automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl create mode 100644 automacao_backtests/timeframeMenor/timeframeMenor.md diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl new file mode 100644 index 0000000..6192a81 --- /dev/null +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl @@ -0,0 +1,126 @@ +{ + Robo: mar_5M1_01_v1_candle_forca_50pts + Grupo: 50mais1 – Tier 1 (#01) + Descricao: Entra quando candle atual tem range >= 50 pontos e fecha + perto da maxima (alta) ou minima (baixa), sinalizando forca direcional. + Stop na extremidade oposta do candle gerador. + Timeframe: 5min, 15min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + MinRangeCandle(50); // range minimo do candle de forca (pts) + ProporcaoFechamento(0.70); // fechamento nos ultimos X% do range + MultiplicadorAlvo(2.0); // alvo = stop × 2 + FiltroMME(21); // filtro de direcao por MME + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMME : float; + fRange, fCorpo : float; + fStop, fAlvo : float; + fPrecoEntrada : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iStopsConsec : integer; + iDirecaoPosicao : integer; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMME := Media(FiltroMME, Close); + fRange := High[1] - Low[1]; // candle anterior (fechado) + + if (not IsBought) and (not IsSold) then + begin + // Compra: candle de alta forte >= 50pts + acima MME + if (fRange >= MinRangeCandle) and + (Close[1] > Open[1]) and + ((Close[1] - Low[1]) / fRange >= ProporcaoFechamento) and + (Close[1] > fMME) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Low[1]; + fAlvo := Close + (Close - fStop) * MultiplicadorAlvo; + iDirecaoPosicao := 1; + end; + // Venda: candle de baixa forte >= 50pts + abaixo MME + if (fRange >= MinRangeCandle) and + (Close[1] < Open[1]) and + ((High[1] - Close[1]) / fRange >= ProporcaoFechamento) and + (Close[1] < fMME) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := High[1]; + fAlvo := Close - (fStop - Close) * MultiplicadorAlvo; + iDirecaoPosicao := -1; + end; + end; + + if IsBought then + begin + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + +end; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl new file mode 100644 index 0000000..d65dd49 --- /dev/null +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl @@ -0,0 +1,129 @@ +{ + Robo: mar_5M1_02_v1_impulso_acumulado + Grupo: 50mais1 – Tier 1 (#02) + Descricao: Detecta impulso acumulado: soma dos ultimos 3 candles na mesma + direcao >= 50 pontos. Confirma momentum sustentado antes de entrar. + Timeframe: 5min, 15min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + PontosAcumulados(50); // soma candles consecutivos para gating + BarrasContar(3); // quantos candles consecutivos verificar + StopATR(14); + MultiplicadorStopATR(1.8); + MultiplicadorAlvoATR(2.5); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fATR : float; + fSomaAlta : float; + fSomaBaixa : float; + fPrecoEntrada : float; + fStop, fAlvo : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iStopsConsec : integer; + iDirecaoPosicao : integer; + iDiaSemanaAtual : integer; + i : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fATR := ATR(StopATR); + + // Calcula soma de candles de alta/baixa consecutivos + fSomaAlta := 0; + fSomaBaixa := 0; + for i := 1 to BarrasContar do + begin + if Close[i] > Open[i] then fSomaAlta := fSomaAlta + (Close[i] - Open[i]) + else fSomaAlta := 0; // quebra sequencia + if Close[i] < Open[i] then fSomaBaixa := fSomaBaixa + (Open[i] - Close[i]) + else fSomaBaixa := 0; + end; + + if IsBought then + begin + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + if fSomaAlta >= PontosAcumulados then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - fATR * MultiplicadorStopATR; + fAlvo := Close + fATR * MultiplicadorAlvoATR; + iDirecaoPosicao := 1; + end; + if fSomaBaixa >= PontosAcumulados then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + fATR * MultiplicadorStopATR; + fAlvo := Close - fATR * MultiplicadorAlvoATR; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl new file mode 100644 index 0000000..b20937d --- /dev/null +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl @@ -0,0 +1,124 @@ +{ + Robo: mar_5M1_03_v1_gap_continuacao + Grupo: 50mais1 – Tier 1 (#03) + Descricao: Entra no gap de abertura (diferenca entre abertura e fechamento anterior + >= 30pts) e segue a direcao do gap com alvo de continuacao. + Cancela se preco fechar o gap. + Timeframe: 15min, 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + MinGapPontos(30); + StopFixo(60); + AlvoFixo(120); + HoraLimite(1100); // so opera gaps ate 11h + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fGap : float; + bGapAlta : boolean; + bGapBaixa : boolean; + bEntradaFeita : boolean; + fPrecoEntrada : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iStopsConsec : integer; + iDirecaoPosicao : integer; + iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + bEntradaFeita := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + // Stops e alvos + if IsBought then + begin + if Close >= fPrecoEntrada + AlvoFixo then SellAtMarket; + if Close <= fPrecoEntrada - StopFixo then SellAtMarket; + // fecha o gap = cancela trade + if (iDirecaoPosicao = 1) and (Close < Open[CurrentBar - iBarrasEmPosicao]) then SellAtMarket; + end; + if IsSold then + begin + if Close <= fPrecoEntrada - AlvoFixo then BuyAtMarket; + if Close >= fPrecoEntrada + StopFixo then BuyAtMarket; + end; + + // Gap na abertura do dia (primeira barra) + if (not bEntradaFeita) and (not IsBought) and (not IsSold) and + (Time <= HoraLimite) and (Date = Date[1]) then + begin + // first bar of the day: Open vs previous Close + fGap := Open - Close[1]; + bGapAlta := fGap >= MinGapPontos; + bGapBaixa := fGap <= -MinGapPontos; + + if bGapAlta then + begin + BuyAtMarket; + fPrecoEntrada := Close; + bEntradaFeita := true; + iDirecaoPosicao := 1; + end; + if bGapBaixa then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + bEntradaFeita := true; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl new file mode 100644 index 0000000..c596b8f --- /dev/null +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl @@ -0,0 +1,109 @@ +{ + Robo: mar_5M1_04_v1_ifr_extremo_impulso + Grupo: 50mais1 – Tier 1 (#04) + Descricao: IFR em extremo + candle de impulso (range >= 50pts na mesma barra + de reversao). Combina exaustao do oscilador com forca do candle. + Timeframe: 15min, 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + PeriodoIFR(9); + IFRSobreVendido(25); + IFRSobreComprado(75); + MinRangeImpulso(50); + StopFixo(70); + AlvoRR(2.0); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR : float; + fPrecoEntrada : float; + fStop, fAlvo : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fIFR := RSI(Close, PeriodoIFR); + + if IsBought then + begin + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + // Compra: IFR sobrevendido + candle de impulso para cima >= 50pts + if (fIFR < IFRSobreVendido) and (Close > Open) and ((High - Low) >= MinRangeImpulso) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - StopFixo; + fAlvo := Close + StopFixo * AlvoRR; + iDirecaoPosicao := 1; + end; + // Venda: IFR sobrecomprado + candle de queda >= 50pts + if (fIFR > IFRSobreComprado) and (Close < Open) and ((High - Low) >= MinRangeImpulso) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + StopFixo; + fAlvo := Close - StopFixo * AlvoRR; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl new file mode 100644 index 0000000..d35946a --- /dev/null +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl @@ -0,0 +1,126 @@ +{ + Robo: mar_5M1_05_v1_macd_histograma_explosao + Grupo: 50mais1 – Tier 1 (#05) + Descricao: Entra quando histograma MACD cresce >= X ticks consecutivos E candle + tem range >= 40pts. Explosoes de momentum no MACD + preco confirma. + Timeframe: 15min, 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + MACDRapida(12); + MACDLenta(26); + MACDSinal(9); + MinGrowthTicks(3); // histograma crescendo X barras seguidas + MinRangeCandle(40); + StopATRPeriodo(14); + StopATRMult(2.0); + AlvoATRMult(3.0); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fHist, fATR : float; + bHistCrescendo : boolean; + bHistCaindo : boolean; + fPrecoEntrada : float; + fStop, fAlvo : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + i : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fATR := ATR(StopATRPeriodo); + fHist := MACD(Close, MACDRapida, MACDLenta, MACDSinal) - MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal); + + // Verifica crescimento consecutivo do histograma + bHistCrescendo := true; + bHistCaindo := true; + for i := 1 to MinGrowthTicks do + begin + if MACD(Close, MACDRapida, MACDLenta, MACDSinal)[i] - MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal)[i] <= + MACD(Close, MACDRapida, MACDLenta, MACDSinal)[i+1] - MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal)[i+1] + then bHistCrescendo := false; + if MACD(Close, MACDRapida, MACDLenta, MACDSinal)[i] - MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal)[i] >= + MACD(Close, MACDRapida, MACDLenta, MACDSinal)[i+1] - MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal)[i+1] + then bHistCaindo := false; + end; + + if IsBought then + begin + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + if bHistCrescendo and (fHist > 0) and ((High - Low) >= MinRangeCandle) and (Close > Open) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := Close - fATR * StopATRMult; + fAlvo := Close + fATR * AlvoATRMult; + iDirecaoPosicao := 1; + end; + if bHistCaindo and (fHist < 0) and ((High - Low) >= MinRangeCandle) and (Close < Open) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := Close + fATR * StopATRMult; + fAlvo := Close - fATR * AlvoATRMult; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl new file mode 100644 index 0000000..cfae7c4 --- /dev/null +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl @@ -0,0 +1,98 @@ +{ + Robo: mar_BRK_01_v1_donchian_rompimento + Grupo: BREAKOUT – Tier 1 (#01) + Descricao: Rompimento do canal de Donchian: compra no novo maximo de N barras, + vende no novo minimo. Filtro de tendencia por MME200. + Classico sistema de seguimento de tendencia. + Timeframe: 60min, 240min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + PeriodoDonchian(20); + PeriodoMME(200); + StopDonchianSaida(10); // sai no donchian oposto (periodo menor) + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fMaxN, fMinN, fMaxSaida, fMinSaida, fMME : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMaxN := Highest(High, PeriodoDonchian, 1); + fMinN := Lowest(Low, PeriodoDonchian, 1); + fMaxSaida := Highest(High, StopDonchianSaida, 1); + fMinSaida := Lowest(Low, StopDonchianSaida, 1); + fMME := Media(PeriodoMME, Close); + + // Saida por Donchian oposto + if IsBought and (Close <= fMinSaida) then SellAtMarket; + if IsSold and (Close >= fMaxSaida) then BuyAtMarket; + + if (not IsBought) and (not IsSold) then + begin + // Compra: novo maximo de N barras + preco acima MME200 + if (High > fMaxN) and (Close > fMME) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + // Venda: novo minimo de N barras + preco abaixo MME200 + if (Low < fMinN) and (Close < fMME) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl new file mode 100644 index 0000000..6e89e25 --- /dev/null +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl @@ -0,0 +1,111 @@ +{ + Robo: mar_BRK_02_v1_consolidacao_breakout + Grupo: BREAKOUT – Tier 1 (#02) + Descricao: Detecta consolidacao (range interno < X pts por N barras) e + entra no rompimento do teto ou piso da consolidacao. + Captura expansion apos squeeze de volatilidade. + Timeframe: 15min, 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + BarrasConsolidacao(8); + MaxRangeConsolidacao(120); // range maximo para caracterizar squeeze + AlvoExpansao(1.5); // alvo = range da consolidacao × 1.5 + StopInternoPct(0.3); // stop = fora da consolidacao × 30% + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fTopoConsolidacao, fPisoConsolidacao : float; + fRangeConsolid : float; + bEmConsolidacao : boolean; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fTopoConsolidacao := Highest(High, BarrasConsolidacao, 1); + fPisoConsolidacao := Lowest(Low, BarrasConsolidacao, 1); + fRangeConsolid := fTopoConsolidacao - fPisoConsolidacao; + bEmConsolidacao := fRangeConsolid <= MaxRangeConsolidacao; + + if IsBought then + begin + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) and bEmConsolidacao then + begin + // Rompimento para cima do teto + if High > fTopoConsolidacao then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStop := fPisoConsolidacao + fRangeConsolid * StopInternoPct; + fAlvo := fTopoConsolidacao + fRangeConsolid * AlvoExpansao; + iDirecaoPosicao := 1; + end; + // Rompimento para baixo do piso + if Low < fPisoConsolidacao then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStop := fTopoConsolidacao - fRangeConsolid * StopInternoPct; + fAlvo := fPisoConsolidacao - fRangeConsolid * AlvoExpansao; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl new file mode 100644 index 0000000..23ed94b --- /dev/null +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl @@ -0,0 +1,76 @@ +{ + Robo: mar_BRK_03_v1_bollinger_squeeze_expansao + Grupo: BREAKOUT – Tier 1 (#03) + Descricao: Bollinger Bands squeeze (largura < X%) + rompimento da banda. + Entra na direcao do rompimento com stop na banda media. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoBB(20); DesvBB(2.0); + MaxLarguraSqueeze(0.015); // largura / preco < 1.5% = squeeze + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fBBSup, fBBInf, fBBMedio, fLargura : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fBBSup := BBandUpper(Close, PeriodoBB, DesvBB); + fBBInf := BBandLower(Close, PeriodoBB, DesvBB); + fBBMedio := Media(PeriodoBB, Close); + fLargura := (fBBSup - fBBInf) / fBBMedio; + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) and (fLargura[1] <= MaxLarguraSqueeze) then + begin + if Close > fBBSup then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := fBBMedio; fAlvo := Close + (Close - fBBInf); + iDirecaoPosicao := 1; + end; + if Close < fBBInf then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := fBBMedio; fAlvo := Close - (fBBSup - Close); + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl new file mode 100644 index 0000000..d0d1bdd --- /dev/null +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl @@ -0,0 +1,89 @@ +{ + Robo: mar_BRK_04_v1_maxmin_abertura_dia + Grupo: BREAKOUT – Tier 1 (#04) + Descricao: Mapeia range das primeiras N barras do dia e entra no rompimento. + Stop no oposto do range de abertura. Alvo projetado por ATR. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + BarrasRangeAbertura(6); // primeiras 6 barras = 30min no 5min + MultiplicadorAlvo(1.8); + PeriodoATR(14); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fTopoAbertura, fPisoAbertura : float; + bRangeMapeado : boolean; + iBarrasDia : integer; + fPrecoEntrada, fStop, fAlvo, fATR : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + bRangeMapeado := false; iBarrasDia := 0; + fTopoAbertura := 0; fPisoAbertura := 9999999; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fATR := ATR(PeriodoATR); + + // Mapeia range das N primeiras barras + if not bRangeMapeado then + begin + iBarrasDia := iBarrasDia + 1; + if High > fTopoAbertura then fTopoAbertura := High; + if Low < fPisoAbertura then fPisoAbertura := Low; + if iBarrasDia >= BarrasRangeAbertura then bRangeMapeado := true; + end; + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if bRangeMapeado and (not IsBought) and (not IsSold) then + begin + if High > fTopoAbertura then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := fPisoAbertura; + fAlvo := Close + fATR * MultiplicadorAlvo; + iDirecaoPosicao := 1; + end; + if Low < fPisoAbertura then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := fTopoAbertura; + fAlvo := Close - fATR * MultiplicadorAlvo; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl new file mode 100644 index 0000000..3cce302 --- /dev/null +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl @@ -0,0 +1,92 @@ +{ + Robo: mar_BRK_05_v1_pivo_rompimento_reteste + Grupo: BREAKOUT – Tier 1 (#05) + Descricao: Rompimento do pivo de alta/baixa (maxima/minima do dia anterior). + Aguarda reteste apos rompimento para entrada mais precisa. + Stop abaixo do pivo. Alvo projetado por amplitude do pivo. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + MargemRompimento(10); // pts acima/abaixo do pivo para confirmar + BarrasAguardaReteste(5); // max barras para reteste apos rompimento + MultiplicadorAlvo(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fPivoAlta, fPivoBaixa : float; // max e min do dia anterior + bRompeuAlta, bRompeuBaixa : boolean; + iBrk : integer; // barras desde o rompimento + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + // Pivos do dia anterior + fPivoAlta := Highest(High, 1, 1); // max do dia anterior (aproximado) + fPivoBaixa := Lowest(Low, 1, 1); + bRompeuAlta := false; bRompeuBaixa := false; iBrk := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // Detecta rompimento + if High > fPivoAlta + MargemRompimento then begin bRompeuAlta := true; iBrk := 0; end; + if Low < fPivoBaixa - MargemRompimento then begin bRompeuBaixa := true; iBrk := 0; end; + iBrk := iBrk + 1; + + // Reteste: preco volta ao pivo apos rompimento + if bRompeuAlta and (iBrk <= BarrasAguardaReteste) and + (Low <= fPivoAlta + MargemRompimento) and (Close > fPivoAlta) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := fPivoBaixa; + fAlvo := Close + (fPivoAlta - fPivoBaixa) * MultiplicadorAlvo; + bRompeuAlta := false; + iDirecaoPosicao := 1; + end; + if bRompeuBaixa and (iBrk <= BarrasAguardaReteste) and + (High >= fPivoBaixa - MargemRompimento) and (Close < fPivoBaixa) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := fPivoAlta; + fAlvo := Close - (fPivoAlta - fPivoBaixa) * MultiplicadorAlvo; + bRompeuBaixa := false; + iDirecaoPosicao := -1; + end; + if iBrk > BarrasAguardaReteste then begin bRompeuAlta := false; bRompeuBaixa := false; end; + end; +end; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl similarity index 100% rename from automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl.txt rename to automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl new file mode 100644 index 0000000..475a17b --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl @@ -0,0 +1,102 @@ +{ + Robo: mar_DDZ_01_v1_breakeven_11 + Grupo: DRAWDOWNZERO – Tier 1 (#01) + Descricao: Entrada por IFR extremo. Assim que preco atinge 1:1 (alvo = stop), + move stop para breakeven (preco de entrada). Drawdown teorico zero + apos o primeiro movimento favoravel. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoIFR(14); + IFRSobreVendido(30); IFRSobreComprado(70); + StopInicial(80); // stop = 80pts; apos 1:1 → breakeven + UsarMMEFiltro(true); + PeriodoMME(200); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR, fMME : float; + fPrecoEntrada, fStop, fAlvo : float; + bBreakevenFeito : boolean; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bBreakevenFeito := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bBreakevenFeito := false; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fIFR := RSI(Close, PeriodoIFR); + fMME := Media(PeriodoMME, Close); + + if IsBought then + begin + // Move breakeven quando atinge 1:1 + if (not bBreakevenFeito) and (Close >= fPrecoEntrada + StopInicial) then + begin + fStop := fPrecoEntrada; + bBreakevenFeito := true; + end; + if Close >= fAlvo then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if (not bBreakevenFeito) and (Close <= fPrecoEntrada - StopInicial) then + begin + fStop := fPrecoEntrada; + bBreakevenFeito := true; + end; + if Close <= fAlvo then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] < IFRSobreVendido) and (fIFR >= IFRSobreVendido) and + (not UsarMMEFiltro or Close > fMME) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - StopInicial; + fAlvo := Close + StopInicial * 2; + bBreakevenFeito := false; iDirecaoPosicao := 1; + end; + if (fIFR[1] > IFRSobreComprado) and (fIFR <= IFRSobreComprado) and + (not UsarMMEFiltro or Close < fMME) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + StopInicial; + fAlvo := Close - StopInicial * 2; + bBreakevenFeito := false; iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl new file mode 100644 index 0000000..549fda3 --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl @@ -0,0 +1,96 @@ +{ + Robo: mar_DDZ_02_v1_parcial_breakeven_rapido + Grupo: DRAWDOWNZERO – Tier 1 (#02) + Descricao: Escala parcial (50%) no alvo rapido (60pts) e move stop para entrada. + Segunda metade vai para alvo estendido. Risco real apos parcial = zero. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + PericodoMME9(9); PeriodoMME21(21); + AlvoParcial(60); AlvoEstendido(150); + StopInicial(70); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMME9, fMME21 : float; + fPrecoEntrada, fStop, fAlvo2 : float; + bParcialFeita : boolean; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bParcialFeita := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bParcialFeita := false; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMME9 := Media(PericodoMME9, Close); + fMME21 := Media(PeriodoMME21, Close); + + if IsBought then + begin + // Parcial + breakeven + if (not bParcialFeita) and (Close >= fPrecoEntrada + AlvoParcial) then + begin + SellAtMarket; bParcialFeita := true; fStop := fPrecoEntrada; + end; + if bParcialFeita and (Close >= fAlvo2) then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if (not bParcialFeita) and (Close <= fPrecoEntrada - AlvoParcial) then + begin + BuyAtMarket; bParcialFeita := true; fStop := fPrecoEntrada; + end; + if bParcialFeita and (Close <= fAlvo2) then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + // Cruzamento MME9 > MME21 (alta) + if (fMME9[1] < fMME21[1]) and (fMME9 > fMME21) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - StopInicial; + fAlvo2 := Close + AlvoEstendido; + bParcialFeita := false; iDirecaoPosicao := 1; + end; + if (fMME9[1] > fMME21[1]) and (fMME9 < fMME21) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + StopInicial; + fAlvo2 := Close - AlvoEstendido; + bParcialFeita := false; iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl new file mode 100644 index 0000000..261f2ea --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl @@ -0,0 +1,84 @@ +{ + Robo: mar_DDZ_03_v1_trailing_apertado_imediato + Grupo: DRAWDOWNZERO – Tier 1 (#03) + Descricao: Trailing stop imediato desde a entrada (ATR × 1.0). + Nunca deixa um trade virar stop cheio; o trailing reduz o risco + progressivamente conforme o preco evolui. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + PeriodoIFR(9); IFRSobreVendido(28); IFRSobreComprado(72); + PeriodoATR(14); MultiplicadorTrailing(1.0); + StopMaximo(120); // stop maximo inicial caso ATR seja grande + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR, fATR : float; + fPrecoEntrada, fStop : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fIFR := RSI(Close, PeriodoIFR); + fATR := ATR(PeriodoATR); + + // Trailing dinamico: stop acompanha preco usando ATR + if IsBought then + begin + fStop := Max(fStop, Close - fATR * MultiplicadorTrailing); + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + fStop := Min(fStop, Close + fATR * MultiplicadorTrailing); + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] < IFRSobreVendido) and (fIFR >= IFRSobreVendido) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - Min(fATR * MultiplicadorTrailing, StopMaximo); + iDirecaoPosicao := 1; + end; + if (fIFR[1] > IFRSobreComprado) and (fIFR <= IFRSobreComprado) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + Min(fATR * MultiplicadorTrailing, StopMaximo); + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl new file mode 100644 index 0000000..3593cfc --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl @@ -0,0 +1,104 @@ +{ + Robo: mar_DDZ_04_v1_stop_candle_anterior + Grupo: DRAWDOWNZERO – Tier 1 (#04) + Descricao: Stop na extremidade do candle anterior (estrutural). + Ao atingir 1:1, move stop para candle anterior mais recente. + Drawdown zero depois da confirmacao de 1:1. + Timeframe: 30min, 60min | Versao: 1.0 – marco/2026 +} +input + PeriodoMME9(9); PeriodoMME21(21); PeriodoMME50(50); + RRMinimo(1.5); // trade so entra se stop estrutural permite RR >= 1.5 + MargemStop(10); // margem extra no stop estrutural + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMME9, fMME21, fMME50 : float; + fPrecoEntrada, fStop, fAlvo : float; + bBreakevenFeito : boolean; + fStopEstrutura : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bBreakevenFeito := false; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; bBreakevenFeito := false; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMME9 := Media(PeriodoMME9, Close); + fMME21 := Media(PeriodoMME21, Close); + fMME50 := Media(PeriodoMME50, Close); + + if IsBought then + begin + // Move stop para estrutura do novo candle anterior quando preco evolui + if (not bBreakevenFeito) and (Close >= fAlvo) then bBreakevenFeito := true; + if bBreakevenFeito then fStop := Max(fStop, Low[1] - MargemStop); + if Close >= fAlvo * 1.5 then SellAtMarket; + if Close <= fStop then SellAtMarket; + end; + if IsSold then + begin + if (not bBreakevenFeito) and (Close <= fAlvo) then bBreakevenFeito := true; + if bBreakevenFeito then fStop := Min(fStop, High[1] + MargemStop); + if Close <= fAlvo * 0.67 then BuyAtMarket; + if Close >= fStop then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + // 3 medias alinhadas para cima + candle de alta + if (fMME9 > fMME21) and (fMME21 > fMME50) and (Close > Open) then + begin + fStopEstrutura := Low[1] - MargemStop; + if (Close - fStopEstrutura) > 0 then + if ((Close - fStopEstrutura) * RRMinimo <= 300) then // RR viavel + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := fStopEstrutura; + fAlvo := Close + (Close - fStop); + bBreakevenFeito := false; iDirecaoPosicao := 1; + end; + end; + if (fMME9 < fMME21) and (fMME21 < fMME50) and (Close < Open) then + begin + fStopEstrutura := High[1] + MargemStop; + if (fStopEstrutura - Close) > 0 then + if ((fStopEstrutura - Close) * RRMinimo <= 300) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := fStopEstrutura; + fAlvo := Close - (fStop - Close); + bBreakevenFeito := false; iDirecaoPosicao := -1; + end; + end; + end; +end; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl new file mode 100644 index 0000000..b9b9720 --- /dev/null +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl @@ -0,0 +1,95 @@ +{ + Robo: mar_DDZ_05_v1_time_stop_nao_evoluiu + Grupo: DRAWDOWNZERO – Tier 1 (#05) + Descricao: Se posicao aberta nao evolui em X barras (preco nao avancou + mais que MinEvolucao pts), fecha no mercado. Elimina trades + laterais que acumulam risco sem ganho. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + PeriodoIFR(14); IFRSobreVendido(32); IFRSobreComprado(68); + StopFixo(70); AlvoFixo(140); + MaxBarrasSemEvolucao(8); // fecha se preco nao avancou em N barras + MinEvolucaoPontos(30); // evolucao minima necessaria + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR : float; + fPrecoEntrada, fMaxFavoravel : float; + iBarrasSemEvolucao : integer; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; iBarrasSemEvolucao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; iBarrasSemEvolucao := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fIFR := RSI(Close, PeriodoIFR); + + if IsBought then + begin + if Close > fMaxFavoravel then fMaxFavoravel := Close; + // Conta barras sem evolucao (maximo favoravel nao cresceu o suficiente) + if (fMaxFavoravel - fPrecoEntrada) < MinEvolucaoPontos then + iBarrasSemEvolucao := iBarrasSemEvolucao + 1 + else + iBarrasSemEvolucao := 0; + if iBarrasSemEvolucao >= MaxBarrasSemEvolucao then SellAtMarket; + if Close >= fPrecoEntrada + AlvoFixo then SellAtMarket; + if Close <= fPrecoEntrada - StopFixo then SellAtMarket; + end; + if IsSold then + begin + if Close < fMaxFavoravel then fMaxFavoravel := Close; + if (fPrecoEntrada - fMaxFavoravel) < MinEvolucaoPontos then + iBarrasSemEvolucao := iBarrasSemEvolucao + 1 + else + iBarrasSemEvolucao := 0; + if iBarrasSemEvolucao >= MaxBarrasSemEvolucao then BuyAtMarket; + if Close <= fPrecoEntrada - AlvoFixo then BuyAtMarket; + if Close >= fPrecoEntrada + StopFixo then BuyAtMarket; + end; + + if (not IsBought) and (not IsSold) then + begin + if (fIFR[1] < IFRSobreVendido) and (fIFR >= IFRSobreVendido) then + begin + BuyAtMarket; fPrecoEntrada := Close; fMaxFavoravel := Close; + iBarrasSemEvolucao := 0; iDirecaoPosicao := 1; + end; + if (fIFR[1] > IFRSobreComprado) and (fIFR <= IFRSobreComprado) then + begin + SellShortAtMarket; fPrecoEntrada := Close; fMaxFavoravel := Close; + iBarrasSemEvolucao := 0; iDirecaoPosicao := -1; + end; + end; +end; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" new file mode 100644 index 0000000..f293dc5 --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" @@ -0,0 +1,88 @@ +{ + Robo: mar_DC_01_v1_ifr_candle_reversao + Grupo: DUPLACONFIRMACAO – Tier 1 (#01) + Descricao: Dupla confirmacao: IFR em extremo (1a) + candle de reversao + martelo/estrela cadente (2a). Ambos obrigatorios para entrada. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoIFR(9); IFRSobreVendido(30); IFRSobreComprado(70); + MultiplicadorPavio(1.8); // pavio >= corpo × X para candle de reversao + StopPorATR(14); StopATRMult(1.5); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR, fATR : float; + fRange, fCorpo, fPavioInf, fPavioSup : float; + bMartelo, bEstrela : boolean; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fIFR := RSI(Close, PeriodoIFR); + fATR := ATR(StopPorATR); + fRange := High[1] - Low[1]; + fCorpo := Abs(Close[1] - Open[1]); + fPavioInf := Min(Close[1], Open[1]) - Low[1]; + fPavioSup := High[1] - Max(Close[1], Open[1]); + + // Candles de reversao (barra anterior fechada) + bMartelo := (fRange > 0) and (fCorpo > 0) and (fPavioInf >= fCorpo * MultiplicadorPavio) and (fPavioSup < fCorpo); + bEstrela := (fRange > 0) and (fCorpo > 0) and (fPavioSup >= fCorpo * MultiplicadorPavio) and (fPavioInf < fCorpo); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // Dupla: IFR sobrevendido + martelo + if (fIFR[1] < IFRSobreVendido) and bMartelo then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopATRMult; + fAlvo := Close + fATR * StopATRMult * AlvoRR; + iDirecaoPosicao := 1; + end; + // Dupla: IFR sobrecomprado + estrela cadente + if (fIFR[1] > IFRSobreComprado) and bEstrela then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopATRMult; + fAlvo := Close - fATR * StopATRMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" new file mode 100644 index 0000000..f59425a --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" @@ -0,0 +1,80 @@ +{ + Robo: mar_DC_02_v1_medias_volume + Grupo: DUPLACONFIRMACAO – Tier 1 (#02) + Descricao: Dupla confirmacao: cruzamento MME9/MME21 (1a) + volume acima + da media de 20 barras (2a). Evita sinais falsos em volume fraco. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoMME9(9); PeriodoMME21(21); + PeriodoMediaVol(20); FatorVolume(1.2); + StopATR(14); StopMult(1.5); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMME9, fMME21, fVolMedia, fATR : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMME9 := Media(PeriodoMME9, Close); + fMME21 := Media(PeriodoMME21, Close); + fVolMedia := Media(PeriodoMediaVol, Volume); + fATR := ATR(StopATR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // Cruzamento alta + volume forte + if (fMME9[1] <= fMME21[1]) and (fMME9 > fMME21) and (Volume >= fVolMedia * FatorVolume) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopMult; + fAlvo := Close + fATR * StopMult * AlvoRR; + iDirecaoPosicao := 1; + end; + // Cruzamento baixa + volume forte + if (fMME9[1] >= fMME21[1]) and (fMME9 < fMME21) and (Volume >= fVolMedia * FatorVolume) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopMult; + fAlvo := Close - fATR * StopMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" new file mode 100644 index 0000000..68afea7 --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" @@ -0,0 +1,82 @@ +{ + Robo: mar_DC_03_v1_macd_ifr + Grupo: DUPLACONFIRMACAO – Tier 1 (#03) + Descricao: Dupla confirmacao: MACD cruza linha de sinal (1a) + IFR sai + de sobrecomprado/sobrevendido (2a). Duas fontes distintas. + Timeframe: 30min, 60min | Versao: 1.0 – marco/2026 +} +input + MACDRapida(12); MACDLenta(26); MACDSinal(9); + PeriodoIFR(14); IFRNeutroMin(40); IFRNeutroMax(60); + StopATR(14); StopMult(1.8); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMACD, fSinal, fIFR, fATR : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fMACD := MACD(Close, MACDRapida, MACDLenta, MACDSinal); + fSinal := MACDSignal(Close, MACDRapida, MACDLenta, MACDSinal); + fIFR := RSI(Close, PeriodoIFR); + fATR := ATR(StopATR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // MACD cruza sinal para cima + IFR sai de sobrevendido + if (fMACD[1] <= fSinal[1]) and (fMACD > fSinal) and + (fIFR[1] < IFRNeutroMin) and (fIFR >= IFRNeutroMin) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopMult; + fAlvo := Close + fATR * StopMult * AlvoRR; + iDirecaoPosicao := 1; + end; + // MACD cruza sinal para baixo + IFR sai de sobrecomprado + if (fMACD[1] >= fSinal[1]) and (fMACD < fSinal) and + (fIFR[1] > IFRNeutroMax) and (fIFR <= IFRNeutroMax) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopMult; + fAlvo := Close - fATR * StopMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" new file mode 100644 index 0000000..a1f9cef --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" @@ -0,0 +1,85 @@ +{ + Robo: mar_DC_04_v1_adx_candle_continuacao + Grupo: DUPLACONFIRMACAO – Tier 1 (#04) + Descricao: Dupla confirmacao: ADX acima de 25 (mercado em tendencia = 1a) + + candle de continuacao na direcao da tendencia (2a). + Timeframe: 30min, 60min | Versao: 1.0 – marco/2026 +} +input + PeriodoADX(14); MinADX(25); + PeriodoMME200(200); + MinCorpoPct(0.60); // corpo >= 60% do range + StopATR(14); StopMult(1.5); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fADX, fMME, fATR : float; + fRange, fCorpo : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fADX := ADX(PeriodoADX); + fMME := Media(PeriodoMME200, Close); + fATR := ATR(StopATR); + fRange := High - Low; + fCorpo := Abs(Close - Open); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // ADX forte + candle de alta forte + acima MME200 + if (fADX > MinADX) and (Close > fMME) and + (Close > Open) and (fRange > 0) and (fCorpo / fRange >= MinCorpoPct) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopMult; + fAlvo := Close + fATR * StopMult * AlvoRR; + iDirecaoPosicao := 1; + end; + // ADX forte + candle de baixa forte + abaixo MME200 + if (fADX > MinADX) and (Close < fMME) and + (Close < Open) and (fRange > 0) and (fCorpo / fRange >= MinCorpoPct) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopMult; + fAlvo := Close - fATR * StopMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" new file mode 100644 index 0000000..c2df499 --- /dev/null +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" @@ -0,0 +1,106 @@ +{ + Robo: mar_DC_05_v1_rompimento_reteste + Grupo: DUPLACONFIRMACAO – Tier 1 (#05) + Descricao: Dupla confirmacao temporal: rompimento de nivel chave (1a) + + reteste do nivel rompido sem rompê-lo de volta (2a). + Dois eventos diferentes em sequencia = confirmacao solida. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoNivel(20); // nivel = maxima/minima das ultimas N barras + MargemRompimento(15); + MaxBarrasAguardaReteste(6); + StopATR(14); StopMult(1.5); AlvoRR(2.2); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fNivelAlta, fNivelBaixa, fATR : float; + bRompeuAlta, bRompeuBaixa : boolean; + iBarrasAposRompimento : integer; + fNivelRompido : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + bRompeuAlta := false; bRompeuBaixa := false; iBarrasAposRompimento := 0; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fNivelAlta := Highest(High, PeriodoNivel, 1); + fNivelBaixa := Lowest(Low, PeriodoNivel, 1); + fATR := ATR(StopATR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // Detecta rompimento (1a confirmacao) + if (not bRompeuAlta) and (Close > fNivelAlta + MargemRompimento) then + begin + bRompeuAlta := true; fNivelRompido := fNivelAlta; iBarrasAposRompimento := 0; + end; + if (not bRompeuBaixa) and (Close < fNivelBaixa - MargemRompimento) then + begin + bRompeuBaixa := true; fNivelRompido := fNivelBaixa; iBarrasAposRompimento := 0; + end; + + if bRompeuAlta or bRompeuBaixa then iBarrasAposRompimento := iBarrasAposRompimento + 1; + + // Reteste (2a confirmacao) + if bRompeuAlta and (iBarrasAposRompimento <= MaxBarrasAguardaReteste) then + begin + if (Low <= fNivelRompido + MargemRompimento) and (Close > fNivelRompido) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := fNivelBaixa; + fAlvo := Close + fATR * StopMult * AlvoRR; + bRompeuAlta := false; iDirecaoPosicao := 1; + end; + end; + if bRompeuBaixa and (iBarrasAposRompimento <= MaxBarrasAguardaReteste) then + begin + if (High >= fNivelRompido - MargemRompimento) and (Close < fNivelRompido) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := fNivelAlta; + fAlvo := Close - fATR * StopMult * AlvoRR; + bRompeuBaixa := false; iDirecaoPosicao := -1; + end; + end; + if iBarrasAposRompimento > MaxBarrasAguardaReteste then + begin + bRompeuAlta := false; bRompeuBaixa := false; iBarrasAposRompimento := 0; + end; + end; +end; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl new file mode 100644 index 0000000..2aacf6f --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl @@ -0,0 +1,94 @@ +{ + Robo: mar_HOR_01_v1_primeira_barra_rompimento + Grupo: HORARIO_ESPECIFICO – Tier 1 (#01) + Descricao: Opera apenas na primeira hora (09:00-10:00). Mapeia range da + primeira barra de 30min e entra no rompimento superior/inferior. + Fecha posicao obrigatoriamente as 17:45. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + HoraInicio(900); HoraFimEntrada(1000); HoraFimPosicao(1745); + MinRangeAbertura(60); // range minimo para ser relevante + MultiplicadorAlvo(1.5); + StopFixo(80); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMaxAbertura, fMinAbertura : float; + bRangeMapeado, bEntradaFeita : boolean; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + bRangeMapeado := false; bEntradaFeita := false; + fMaxAbertura := 0; fMinAbertura := 9999999; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + // Fecha obrigatoriamente ao final do dia + if Time >= HoraFimPosicao then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + + // Mapeia range da abertura (ate HoraFimEntrada) + if (Time >= HoraInicio) and (Time < HoraFimEntrada) then + begin + if High > fMaxAbertura then fMaxAbertura := High; + if Low < fMinAbertura then fMinAbertura := Low; + if (fMaxAbertura - fMinAbertura) >= MinRangeAbertura then bRangeMapeado := true; + end; + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if bRangeMapeado and (not bEntradaFeita) and (not IsBought) and (not IsSold) then + begin + if High > fMaxAbertura then + begin + BuyAtMarket; fPrecoEntrada := Close; bEntradaFeita := true; + fStop := fMinAbertura; + fAlvo := fMaxAbertura + (fMaxAbertura - fMinAbertura) * MultiplicadorAlvo; + iDirecaoPosicao := 1; + end; + if Low < fMinAbertura then + begin + SellShortAtMarket; fPrecoEntrada := Close; bEntradaFeita := true; + fStop := fMaxAbertura; + fAlvo := fMinAbertura - (fMaxAbertura - fMinAbertura) * MultiplicadorAlvo; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl new file mode 100644 index 0000000..0a18f06 --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl @@ -0,0 +1,79 @@ +{ + Robo: mar_HOR_02_v1_momentum_manha + Grupo: HORARIO_ESPECIFICO – Tier 1 (#02) + Descricao: Opera somente das 10h00 as 11h30 (leilao da manha). + Estrategia de momentum: IFR + direcao de tendencia por MME9/21. + Horario de maior liquidez e definicao de direcao do dia. + Timeframe: 5min, 15min | Versao: 1.0 – marco/2026 +} +input + HoraInicio(1000); HoraFim(1130); HoraFechamento(1745); + PeriodoIFR(9); IFRSobreVendido(35); IFRSobreComprado(65); + PeriodoMME9(9); PeriodoMME21(21); + StopFixo(70); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR, fMME9, fMME21 : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + if Time >= HoraFechamento then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + + fIFR := RSI(Close, PeriodoIFR); + fMME9 := Media(PeriodoMME9, Close); + fMME21:= Media(PeriodoMME21, Close); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) and (Time >= HoraInicio) and (Time < HoraFim) then + begin + if (fMME9 > fMME21) and (fIFR[1] < IFRSobreVendido) and (fIFR >= IFRSobreVendido) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - StopFixo; fAlvo := Close + StopFixo * AlvoRR; + iDirecaoPosicao := 1; + end; + if (fMME9 < fMME21) and (fIFR[1] > IFRSobreComprado) and (fIFR <= IFRSobreComprado) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + StopFixo; fAlvo := Close - StopFixo * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl new file mode 100644 index 0000000..6ea5189 --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl @@ -0,0 +1,75 @@ +{ + Robo: mar_HOR_03_v1_reversao_almoco + Grupo: HORARIO_ESPECIFICO – Tier 1 (#03) + Descricao: Opera das 12h00 as 13h30 (horario de almoco / baixa liquidez). + Estrategia de reversao: IFR extremo no horario de menor volume. + Movimentos menores, stops apertados. + Timeframe: 5min | Versao: 1.0 – marco/2026 +} +input + HoraInicio(1200); HoraFim(1330); HoraFechamento(1745); + PeriodoIFR(14); IFRSobreVendido(25); IFRSobreComprado(75); + StopFixo(50); AlvoRR(1.5); // alvo menor no almoco + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fIFR : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + if Time >= HoraFechamento then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + + fIFR := RSI(Close, PeriodoIFR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) and (Time >= HoraInicio) and (Time < HoraFim) then + begin + if (fIFR[1] < IFRSobreVendido) and (fIFR >= IFRSobreVendido) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - StopFixo; fAlvo := Close + StopFixo * AlvoRR; + iDirecaoPosicao := 1; + end; + if (fIFR[1] > IFRSobreComprado) and (fIFR <= IFRSobreComprado) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + StopFixo; fAlvo := Close - StopFixo * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl new file mode 100644 index 0000000..f257d5f --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl @@ -0,0 +1,76 @@ +{ + Robo: mar_HOR_04_v1_abertura_ny_momentum + Grupo: HORARIO_ESPECIFICO – Tier 1 (#04) + Descricao: Opera das 15h30 as 17h00 (abertura bolsas EUA / alta volatilidade). + Captura o momentum gerado pela abertura de NY no WIN. + Timeframe: 5min | Versao: 1.0 – marco/2026 +} +input + HoraInicio(1530); HoraFim(1700); HoraFechamento(1745); + PeriodoMME9(9); PeriodoMME21(21); PeriodoMME200(200); + StopATR(14); StopMult(1.5); AlvoRR(2.2); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMME9, fMME21, fMME200, fATR : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + if Time >= HoraFechamento then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + + fMME9 := Media(PeriodoMME9, Close); fMME21 := Media(PeriodoMME21, Close); + fMME200:= Media(PeriodoMME200, Close); fATR := ATR(StopATR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) and (Time >= HoraInicio) and (Time < HoraFim) then + begin + // Alta: tendencia + medias alinhadas + if (Close > fMME200) and (fMME9 > fMME21) and (Close > Open) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopMult; fAlvo := Close + fATR * StopMult * AlvoRR; + iDirecaoPosicao := 1; + end; + if (Close < fMME200) and (fMME9 < fMME21) and (Close < Open) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopMult; fAlvo := Close - fATR * StopMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl new file mode 100644 index 0000000..8638a05 --- /dev/null +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl @@ -0,0 +1,83 @@ +{ + Robo: mar_HOR_05_v1_fechamento_b3 + Grupo: HORARIO_ESPECIFICO – Tier 1 (#05) + Descricao: Opera somente das 17h00 as 17h45 (fechamento B3). + Captura o ajuste final do dia: institucionais fecham posicoes, + criam movimentos bruscos de curta duracao. + Timeframe: 1min, 5min | Versao: 1.0 – marco/2026 +} +input + HoraInicio(1700); HoraFechamento(1745); + PeriodoMME(9); + StopFixo(40); AlvoFixo(80); // movimentos menores no fechamento + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.0); RiscoSemanaPct(2.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fMME, fMMEAnterior : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + // Fecha compulsoriamente no fechamento + if Time >= HoraFechamento then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + + fMME := Media(PeriodoMME, Close); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + // Opera apenas na janela de fechamento + if (Time >= HoraInicio) and (Time < HoraFechamento) then + begin + if (not IsBought) and (not IsSold) then + begin + // Impulsao de alta no fechamento + if (fMME > fMME[1]) and (Close > Open) and (Close > fMME) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - StopFixo; fAlvo := Close + AlvoFixo; + iDirecaoPosicao := 1; + end; + // Impulsao de baixa no fechamento + if (fMME < fMME[1]) and (Close < Open) and (Close < fMME) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + StopFixo; fAlvo := Close - AlvoFixo; + iDirecaoPosicao := -1; + end; + end; + end; +end; diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt b/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl.txt rename to automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl.txt b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl.txt rename to automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl.txt b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl similarity index 100% rename from automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl.txt rename to automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl new file mode 100644 index 0000000..6dc38d9 --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl @@ -0,0 +1,78 @@ +{ + Robo: mar_LAB_01_v1_bollinger_reversao + Grupo: LABORATORIO_INDICADORES – Tier 1 (#01) + Descricao: Reversao nas Bandas de Bollinger: compra ao tocar banda inferior, + vende ao tocar banda superior. Alvo na banda media. + Laboratorio: testar parametros em multiplos TFs. + Timeframe: 5min, 15min, 30min | Versao: 1.0 – marco/2026 +} +input + PeriodoBB(20); DesvBB(2.0); + ConfirmacaoIFR(true); PeriodoIFR(14); + IFRMin(35); IFRMax(65); + StopATR(14); StopMult(1.5); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fBBSup, fBBInf, fBBMedio, fIFR, fATR : float; + fPrecoEntrada, fStop : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fBBSup := BBandUpper(Close, PeriodoBB, DesvBB); + fBBInf := BBandLower(Close, PeriodoBB, DesvBB); + fBBMedio:= Media(PeriodoBB, Close); + fIFR := RSI(Close, PeriodoIFR); + fATR := ATR(StopATR); + + // Saida: banda oposta ou media + if IsBought then begin if Close >= fBBMedio then SellAtMarket; if Close <= fPrecoEntrada - fATR * StopMult then SellAtMarket; end; + if IsSold then begin if Close <= fBBMedio then BuyAtMarket; if Close >= fPrecoEntrada + fATR * StopMult then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + if (Close <= fBBInf) and (not ConfirmacaoIFR or fIFR < IFRMin) then + begin + BuyAtMarket; fPrecoEntrada := Close; iDirecaoPosicao := 1; + fStop := fPrecoEntrada - fATR * StopMult; + end; + if (Close >= fBBSup) and (not ConfirmacaoIFR or fIFR > IFRMax) then + begin + SellShortAtMarket; fPrecoEntrada := Close; iDirecaoPosicao := -1; + fStop := fPrecoEntrada + fATR * StopMult; + end; + end; +end; diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl new file mode 100644 index 0000000..ec9b719 --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl @@ -0,0 +1,79 @@ +{ + Robo: mar_LAB_02_v1_estocastico_cruzamento + Grupo: LABORATORIO_INDICADORES – Tier 1 (#02) + Descricao: Estocastico Lento: %K cruza %D em zonas extremas (oversold < 20, + overbought > 80). Confirmacao por direcao da MME21. + Timeframe: 15min, 30min | Versao: 1.0 – marco/2026 +} +input + Periodo_K(14); Periodo_D(3); Suavizacao(3); + NivelSobreVendido(20); NivelSobreComprado(80); + PeriodoMME(21); + StopATR(14); StopMult(1.5); AlvoRR(2.0); + UsarGestaoRisco(true); UsarHardLock(true); + SaldoConta(10000.0); RiscoDiaPct(1.5); RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); ValorPorPonto(0.2); DiaSemanaReset(2); + +var + fK, fD, fMME, fATR : float; + fPrecoEntrada, fStop, fAlvo : float; + fResultadoDia, fResultadoSemana, fLimiteDia, fLimiteSemana : float; + bBloqueioDia, bBloqueioSemana : boolean; + iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; + +begin + if Date <> Date[1] then + begin + fResultadoDia := 0; bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then begin fResultadoSemana := 0; bBloqueioSemana := false; end; + end; + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then begin if IsBought then SellAtMarket; if IsSold then BuyAtMarket; exit; end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + fK := Stochastic(Periodo_K, Suavizacao, Periodo_D); + fD := StochasticD(Periodo_K, Suavizacao, Periodo_D); + fMME := Media(PeriodoMME, Close); + fATR := ATR(StopATR); + + if IsBought then begin if Close >= fAlvo then SellAtMarket; if Close <= fStop then SellAtMarket; end; + if IsSold then begin if Close <= fAlvo then BuyAtMarket; if Close >= fStop then BuyAtMarket; end; + + if (not IsBought) and (not IsSold) then + begin + // %K cruza %D de baixo para cima na zona sobrevendida + if (fK[1] <= fD[1]) and (fK > fD) and (fK < NivelSobreVendido) and (Close > fMME) then + begin + BuyAtMarket; fPrecoEntrada := Close; + fStop := Close - fATR * StopMult; fAlvo := Close + fATR * StopMult * AlvoRR; + iDirecaoPosicao := 1; + end; + // %K cruza %D de cima para baixo na zona sobrecomprada + if (fK[1] >= fD[1]) and (fK < fD) and (fK > NivelSobreComprado) and (Close < fMME) then + begin + SellShortAtMarket; fPrecoEntrada := Close; + fStop := Close + fATR * StopMult; fAlvo := Close - fATR * StopMult * AlvoRR; + iDirecaoPosicao := -1; + end; + end; +end; diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl.txt b/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl similarity index 100% rename from automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl.txt rename to automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl similarity index 100% rename from automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl.txt rename to automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl new file mode 100644 index 0000000..e3d45af --- /dev/null +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl @@ -0,0 +1,168 @@ +{ + Robo: mar_PPV_05_v1_parciais_multiplos + Grupo: POUCOSPONTOSVENCEDORES – Tier 1 (#05) + Descricao: Entrada por IFR extremo + saida em tres parciais progressivas. + Parcial 1 no 1:1, parcial 2 no 1:2, parcial 3 trailing por ATR. + Objetivo: capturar pequenos movimentos com risco controlado. + Timeframe: 5min, 15min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + // ── IFR de entrada ────────────────────────────────────────── + PeriodoIFR(14); + NivelSobreComprado(70); + NivelSobreVendido(30); + // ── Parciais ──────────────────────────────────────────────── + AlvoParcial1(50); // pontos para parcial 1 (50% posição) + AlvoParcial2(100); // pontos para parcial 2 (25% posição) + MultiplicadorTrailing(1.2); // trailing na parcial restante × ATR + PeriodoATR(14); + // ── Stop ──────────────────────────────────────────────────── + StopInicial(80); // stop fixo em pontos + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fATR : float; + fPrecoEntrada : float; + fStopAtual : float; + bParcial1Feita : boolean; + bParcial2Feita : boolean; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iStopsConsec : integer; + iDirecaoPosicao : integer; + iDiaSemanaAtual : integer; + +begin + // ── NOVO DIA: reset ────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + bParcial1Feita := false; + bParcial2Feita := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then + bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + // ── INDICADORES ────────────────────────────────────────────── + fIFR := RSI(Close, PeriodoIFR); + fATR := ATR(PeriodoATR); + + // ── GESTAO DE PARCIAIS (posicao aberta) ────────────────────── + if IsBought then + begin + // parcial 1: 1:1 + if (not bParcial1Feita) and (Close >= fPrecoEntrada + AlvoParcial1) then + begin + SellAtMarket; // fecha metade (simulado — Profit não tem parcial nativa) + bParcial1Feita := true; + fStopAtual := fPrecoEntrada; // breakeven + end; + // parcial 2: 1:2 + if bParcial1Feita and (not bParcial2Feita) and (Close >= fPrecoEntrada + AlvoParcial2) then + begin + SellAtMarket; + bParcial2Feita := true; + end; + // trailing final + if bParcial2Feita then + fStopAtual := Close - fATR * MultiplicadorTrailing; + if Close <= fStopAtual then SellAtMarket; + end; + + if IsSold then + begin + if (not bParcial1Feita) and (Close <= fPrecoEntrada - AlvoParcial1) then + begin + BuyAtMarket; + bParcial1Feita := true; + fStopAtual := fPrecoEntrada; + end; + if bParcial1Feita and (not bParcial2Feita) and (Close <= fPrecoEntrada - AlvoParcial2) then + begin + BuyAtMarket; + bParcial2Feita := true; + end; + if bParcial2Feita then + fStopAtual := Close + fATR * MultiplicadorTrailing; + if Close >= fStopAtual then BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) then + begin + bParcial1Feita := false; + bParcial2Feita := false; + // Compra: IFR sobrevendido cruzando para cima de 30 + if (fIFR[1] < NivelSobreVendido) and (fIFR > NivelSobreVendido) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + fStopAtual := Close - StopInicial; + iDirecaoPosicao := 1; + end; + // Venda: IFR sobrecomprado cruzando para baixo de 70 + if (fIFR[1] > NivelSobreComprado) and (fIFR < NivelSobreComprado) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + fStopAtual := Close + StopInicial; + iDirecaoPosicao := -1; + end; + end; + + // ── STOP FIXO COMO SEGURANCA ────────────────────────────────── + if IsBought and (Close <= fPrecoEntrada - StopInicial) then SellAtMarket; + if IsSold and (Close >= fPrecoEntrada + StopInicial) then BuyAtMarket; + +end; diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl similarity index 100% rename from automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl similarity index 100% rename from automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl similarity index 100% rename from automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl similarity index 100% rename from automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl.txt rename to automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl new file mode 100644 index 0000000..f6bf16f --- /dev/null +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl @@ -0,0 +1,135 @@ +{ + Robo: mar_ST_05_v1_atr_dinamico_confluencia + Grupo: STOPTOLERANTE – Tier 1 (#05) + Descricao: Stop tolerante dinamico baseado em ATR × multiplicador amplo. + Entrada por confluencia de IFR + MME200 + candle de forca. + Stop largo permite absorver ruido sem ser estopado prematuramente. + Timeframe: 60min, 30min + Ativo: WIN (minicontrato de indice) + Versao: 1.0 – marco/2026 +} + +input + // ── Indicadores ───────────────────────────────────────────── + PeriodoIFR(14); + NivelCompra(40); // IFR sobe acima de 40 em tendencia de alta + NivelVenda(60); // IFR cai abaixo de 60 em tendencia de baixa + PeriodoMME(200); + PeriodoATR(14); + MultiplicadorStop(2.5); // stop = ATR × 2.5 (tolerante) + MultiplicadorAlvo(3.5); // alvo = ATR × 3.5 (R/R ~1:1.4) + // ── Filtro de forca do candle ──────────────────────────────── + MinBodyPct(0.55); // corpo >= 55% do range + // ── Gestao de risco ───────────────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fMME, fATR : float; + fRange, fCorpo : float; + fPrecoEntrada : float; + fStop, fAlvo : float; + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iStopsConsec : integer; + iDirecaoPosicao : integer; + iDiaSemanaAtual : integer; + +begin + // ── RESET DIARIO ───────────────────────────────────────────── + if Date <> Date[1] then + begin + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + // ── GESTAO DE RISCO ────────────────────────────────────────── + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (Close - fPrecoEntrada) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (Close - fPrecoEntrada) * ValorPorPonto; + if (Close - fPrecoEntrada) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoDia := fResultadoDia + (fPrecoEntrada - Close) * ValorPorPonto; + fResultadoSemana := fResultadoSemana + (fPrecoEntrada - Close) * ValorPorPonto; + if (fPrecoEntrada - Close) < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + iDirecaoPosicao := 0; fPrecoEntrada := 0; + end; + if (fResultadoDia <= -fLimiteDia) or (iStopsConsec >= MaxStopsConsecutivos) then + bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) then + begin + if IsBought then SellAtMarket; + if IsSold then BuyAtMarket; + exit; + end; + if bBloqueioDia or bBloqueioSemana then exit; + end; + + // ── INDICADORES ────────────────────────────────────────────── + fIFR := RSI(Close, PeriodoIFR); + fMME := Media(PeriodoMME, Close); + fATR := ATR(PeriodoATR); + fRange := High - Low; + fCorpo := Abs(Close - Open); + + // ── STOP/ALVO DINAMICO ─────────────────────────────────────── + if IsBought then + begin + if Close >= fPrecoEntrada + fATR * MultiplicadorAlvo then SellAtMarket; + if Close <= fPrecoEntrada - fATR * MultiplicadorStop then SellAtMarket; + end; + if IsSold then + begin + if Close <= fPrecoEntrada - fATR * MultiplicadorAlvo then BuyAtMarket; + if Close >= fPrecoEntrada + fATR * MultiplicadorStop then BuyAtMarket; + end; + + // ── ENTRADAS ───────────────────────────────────────────────── + if (not IsBought) and (not IsSold) then + begin + // Compra: preco acima MME200 + IFR cruzando 40 + candle de alta forte + if (Close > fMME) and + (fIFR[1] < NivelCompra) and (fIFR >= NivelCompra) and + (Close > Open) and (fRange > 0) and (fCorpo / fRange >= MinBodyPct) then + begin + BuyAtMarket; + fPrecoEntrada := Close; + iDirecaoPosicao := 1; + end; + // Venda: preco abaixo MME200 + IFR cruzando 60 + candle de baixa forte + if (Close < fMME) and + (fIFR[1] > NivelVenda) and (fIFR <= NivelVenda) and + (Close < Open) and (fRange > 0) and (fCorpo / fRange >= MinBodyPct) then + begin + SellShortAtMarket; + fPrecoEntrada := Close; + iDirecaoPosicao := -1; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/timeframeMenor.md b/automacao_backtests/timeframeMenor/timeframeMenor.md new file mode 100644 index 0000000..38325e7 --- /dev/null +++ b/automacao_backtests/timeframeMenor/timeframeMenor.md @@ -0,0 +1 @@ +Estes tem o objetivo de operar setups com timeframes menores com 1, 2, 5 min. O foco é aproveitar a volatilidade e os movimentos rápidos do mercado, especialmente no início do pregão, para capturar oportunidades de lucro em períodos curtos. Esses robôs são projetados para identificar padrões específicos, como rompimentos, reversões ou continuidades, e executar ordens de compra ou venda com base nesses sinais. A gestão de risco é crucial nesse tipo de estratégia, devido à maior exposição a ruídos do mercado e à necessidade de respostas rápidas. \ No newline at end of file From 91d3b51704687a3200bd86cb1aeb6b58b31879c4 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 18:54:13 -0300 Subject: [PATCH 46/63] Adiciona 38 robos: LAB_03-05, LAT_01-05, LSW_01-05, REV_01-05, SCM_01-05, TND_01-05, VWP_01-05, TFM_01-05; estrutura timeframeMenor --- .../ntsl/mar_LAB_03_v1_cci_reversao.ntsl | 138 +++++++++++++++ .../mar_LAB_04_v1_williams_r_pullback.ntsl | 137 +++++++++++++++ .../ntsl/mar_LAB_05_v1_obv_divergencia.ntsl | 158 ++++++++++++++++++ .../ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl | 145 ++++++++++++++++ ...ar_LAT_02_v1_bollinger_reversao_range.ntsl | 119 +++++++++++++ .../ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl | 130 ++++++++++++++ .../ntsl/mar_LAT_04_v1_keltner_reversao.ntsl | 128 ++++++++++++++ .../mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl | 133 +++++++++++++++ .../mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl | 127 ++++++++++++++ .../mar_LSW_02_v1_canal_paralelo_swing.ntsl | 124 ++++++++++++++ .../mar_LSW_03_v1_adx_baixo_envelope.ntsl | 126 ++++++++++++++ .../mar_LSW_04_v1_estoc_semanal_reversao.ntsl | 132 +++++++++++++++ ...mar_LSW_05_v1_macd_histograma_lateral.ntsl | 134 +++++++++++++++ .../ntsl/mar_REV_01_v1_pullback_mme21.ntsl | 130 ++++++++++++++ .../mar_REV_02_v1_zscore_afastamento.ntsl | 137 +++++++++++++++ .../ntsl/mar_REV_03_v1_bb_retorno_media.ntsl | 123 ++++++++++++++ .../mar_REV_04_v1_ifr_afastamento_pct.ntsl | 138 +++++++++++++++ .../mar_REV_05_v1_envelope_dinamico_atr.ntsl | 137 +++++++++++++++ .../mar_SCM_01_v1_impulso_candle_1min.ntsl | 132 +++++++++++++++ .../ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl | 143 ++++++++++++++++ .../mar_SCM_03_v1_microcanal_breakout.ntsl | 130 ++++++++++++++ .../ntsl/mar_SCM_04_v1_pullback_ema5.ntsl | 129 ++++++++++++++ ...mar_SCM_05_v1_volume_spike_direcional.ntsl | 131 +++++++++++++++ .../ntsl/mar_TND_01_v1_adx_tres_medias.ntsl | 135 +++++++++++++++ .../mar_TND_02_v1_cruzamento_mme_volume.ntsl | 131 +++++++++++++++ .../mar_TND_03_v1_macd_tendencia_mme200.ntsl | 131 +++++++++++++++ .../mar_TND_04_v1_donchian_tendencia.ntsl | 117 +++++++++++++ ...r_TND_05_v1_ifr_continuacao_tendencia.ntsl | 140 ++++++++++++++++ .../ntsl/mar_VWP_01_v1_vwap_pullback.ntsl | 124 ++++++++++++++ ..._VWP_02_v1_vwap_cruzamento_direcional.ntsl | 128 ++++++++++++++ .../mar_VWP_03_v1_vwap_desvio_extremo.ntsl | 131 +++++++++++++++ .../mar_VWP_04_v1_vwap_ifr_confluencia.ntsl | 130 ++++++++++++++ ..._VWP_05_v1_vwap_horario_institucional.ntsl | 136 +++++++++++++++ .../mar_TFM_01_v1_abertura_impulso_2min.ntsl | 139 +++++++++++++++ .../ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl | 138 +++++++++++++++ ...FM_03_v1_ifr_extremo_2min_stop_rapido.ntsl | 128 ++++++++++++++ ..._TFM_04_v1_3candles_consecutivos_5min.ntsl | 135 +++++++++++++++ .../ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl | 124 ++++++++++++++ 38 files changed, 5028 insertions(+) create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl create mode 100644 automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl create mode 100644 automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_02_v1_zscore_afastamento.ntsl create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl create mode 100644 automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl create mode 100644 automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl create mode 100644 automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl create mode 100644 automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl create mode 100644 automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl create mode 100644 automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl create mode 100644 automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl create mode 100644 automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl create mode 100644 automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl create mode 100644 automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl create mode 100644 automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl create mode 100644 automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl create mode 100644 automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl new file mode 100644 index 0000000..0611632 --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl @@ -0,0 +1,138 @@ +// ============================================================ +// Robô: mar_LAB_03_v1_cci_reversao +// Grupo: LABORATORIO_INDICADORES +// Versão: v1 | Timeframe sugerido: 15min / 30min +// Descrição: Entrada por reversão no CCI extremo (>+100 / <-100). +// Alvo fixo de 1:2, stop baseado em ATR×1.5. +// Filtro de tendência: preço acima/abaixo da MME200. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoCCI = 14; +input NivelExtremo = 100; // CCI acima/abaixo deste nível = extremo +input PeriodoATR = 14; +input MultiplosATR = 1.5; // stop = ATR×MultiplosATR +input RelacaoRR = 2.0; // alvo = risco × RelacaoRR +input PeriodoMME200 = 200; +input HoraIni = 900; +input HoraFim = 1700; + +var + Risco, PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior, DataInicioSemana: date; + CCI14, ATR14: float; + MME200: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + // ---- Reset de risco ---- + Risco := (SaldoConta * RiscoDiaPct / 100); + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + DataInicioSemana := Date; + end; + end; + DataAnterior := Date; + end; + + // ---- Verificação de limites ---- + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then + ClosePosition; + exit; + end; + end; + + // ---- Indicadores ---- + CCI14 := CCI(PeriodoCCI, 0); + ATR14 := ATR(PeriodoATR, 0); + MME200 := Media(PeriodoMME200, Close); + + EmPosicao := IsBought or IsSold; + + // ---- Saída por stops ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: CCI saiu de sobrevendido + preço acima da MME200 + if (CCI14[1] < -NivelExtremo) and (CCI14 >= -NivelExtremo) and + (Close > MME200) then + begin + StopLoss := Close - ATR14 * MultiplosATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: CCI saiu de sobrecomprado + preço abaixo da MME200 + if (CCI14[1] > NivelExtremo) and (CCI14 <= NivelExtremo) and + (Close < MME200) then + begin + StopLoss := Close + ATR14 * MultiplosATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl new file mode 100644 index 0000000..a50f16e --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl @@ -0,0 +1,137 @@ +// ============================================================ +// Robô: mar_LAB_04_v1_williams_r_pullback +// Grupo: LABORATORIO_INDICADORES +// Versão: v1 | Timeframe sugerido: 15min / 60min +// Descrição: Williams %R em zona extrema como sinal de reversão. +// Entra apenas em pullbacks quando tendência primária +// ainda está intacta (MME9 > MME21 para longs). +// Stop na mínima/máxima de 2 barras; alvo 1:2. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoWR = 14; +input NivelSobVend = -80; // Williams %R abaixo = sobrevendido +input NivelSobComp = -20; // Williams %R acima = sobrecomprado +input PeriodoMME9 = 9; +input PeriodoMME21 = 21; +input RelacaoRR = 2.0; +input HoraIni = 900; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + WR14, MME9, MME21: float; + StopLoss, TakeProfit: float; + StopPcts: float; + EmPosicao: boolean; +begin + + // ---- Reset diário ---- + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + // ---- Bloqueio de risco ---- + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then + ClosePosition; + exit; + end; + end; + + // ---- Indicadores ---- + WR14 := WilliamsR(PeriodoWR, 0); + MME9 := Media(PeriodoMME9, Close); + MME21 := Media(PeriodoMME21, Close); + + EmPosicao := IsBought or IsSold; + + // ---- Gerenciar posição aberta ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entrada: LONG ---- + // Tendência: MME9 > MME21 | Pullback: WR saindo de sobrevendido + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) and + (MME9 > MME21) and + (WR14[1] < NivelSobVend) and (WR14 >= NivelSobVend) then + begin + StopLoss := MinList(Low, Low[1]) - 10; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // ---- Entrada: SHORT ---- + // Tendência: MME9 < MME21 | Pullback: WR saindo de sobrecomprado + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) and + (MME9 < MME21) and + (WR14[1] > NivelSobComp) and (WR14 <= NivelSobComp) then + begin + StopLoss := MaxList(High, High[1]) + 10; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + +end; diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl new file mode 100644 index 0000000..68acb13 --- /dev/null +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl @@ -0,0 +1,158 @@ +// ============================================================ +// Robô: mar_LAB_05_v1_obv_divergencia +// Grupo: LABORATORIO_INDICADORES +// Versão: v1 | Timeframe sugerido: 15min / 30min +// Descrição: Detecta divergência bull/bear entre o OBV e o preço. +// Divergência alta: preço faz nova mínima, OBV não → compra. +// Divergência baixa: preço faz nova máxima, OBV não → venda. +// Confirmação: candle de reversão no mesmo sentido. +// Stop: ATR×1.5 | Alvo: ATR×3.0 (1:2) +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodosLookback = 5; // janela para comparar pivôs de preço e OBV +input PeriodoATR = 14; +input MultiplosATRStop = 1.5; +input RelacaoRR = 2.0; +input PctCorpoMin = 40; // % mínimo do corpo para candle de confirmação +input HoraIni = 900; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + OBVAtual, OBVAnterior: float; + MinPreco, MinOBV: float; + MaxPreco, MaxOBV: float; + ATR14: float; + CorpoCandle, RangeCandle: float; + StopLoss, TakeProfit: float; + DivergenciaBull, DivergenciaBear: boolean; + EmPosicao: boolean; +begin + + // ---- Reset diário ---- + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + // ---- Bloqueio de risco ---- + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + // ---- Indicadores ---- + ATR14 := ATR(PeriodoATR, 0); + + // OBV acumulado (Close vs Close anterior acumula volume) + OBVAtual := OBV(0); + OBVAnterior := OBV(PeriodosLookback); + + // Mínimos e máximos na janela + MinPreco := Lowest(Low, PeriodosLookback); + MaxPreco := Highest(High, PeriodosLookback); + + // Corpo do candle atual + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + + EmPosicao := IsBought or IsSold; + + // ---- Divergência de alta: preço faz nova mínima, OBV não ---- + // Low atual < mínimo da janela anterior E OBV atual > OBV na janela anterior + DivergenciaBull := (Low < MinPreco) and (OBVAtual > OBVAnterior); + + // ---- Divergência de baixa: preço faz nova máxima, OBV não ---- + DivergenciaBear := (High > MaxPreco) and (OBVAtual < OBVAnterior); + + // ---- Saída por stop/alvo ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: divergência bull + candle de alta (corpo verde ≥ PctCorpoMin) + if (DivergenciaBull) and + (Close > Open) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := Low - ATR14 * MultiplosATRStop; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: divergência bear + candle de baixa (corpo vermelho ≥ PctCorpoMin) + if (DivergenciaBear) and + (Close < Open) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := High + ATR14 * MultiplosATRStop; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl new file mode 100644 index 0000000..6c11938 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl @@ -0,0 +1,145 @@ +// ============================================================ +// Robô: mar_LAT_01_v1_ifr_range_diario +// Grupo: LATERALIZACAO_DAYTRADE +// Versão: v1 | Timeframe sugerido: 5min / 15min +// Descrição: Opera dentro do range do dia. Define máx/mín das +// primeiras N barras como teto/piso. Usa IFR extremo +// para confirmar reversão: compra perto do piso, +// vende perto do teto. Alvo: centro do range. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input BarrasRangeInicial = 6; // barras para definir range da manhã +input PeriodoIFR = 7; // IFR rápido para DT +input IFRSobVend = 30; +input IFRSobComp = 70; +input DistBanda = 50; // pts de distância da borda que aceita entrada +input StopExtrapilapts = 30; // stop a X pontos além da borda +input HoraIni = 1000; // só entra depois que range se formou +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + RangeMax, RangeMin, CentroRange: float; + BarrasHoje: integer; + IFR7: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + // ---- Reset diário ---- + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + RangeMax := 0; + RangeMin := 999999; + BarrasHoje := 0; + DataAnterior := Date; + end; + + BarrasHoje := BarrasHoje + 1; + + // ---- Atualiza range das primeiras N barras ---- + if (BarrasHoje <= BarrasRangeInicial) then + begin + if (High > RangeMax) then RangeMax := High; + if (Low < RangeMin) then RangeMin := Low; + end; + CentroRange := (RangeMax + RangeMin) / 2; + + // ---- Bloqueio de risco ---- + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR7 := IFR(PeriodoIFR, 0); + EmPosicao := IsBought or IsSold; + + // ---- Saídas ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas (após o range se formar) ---- + if (not EmPosicao) and + (BarrasHoje > BarrasRangeInicial) and + (Time >= HoraIni) and (Time <= HoraFim) and + (RangeMax > RangeMin) then + begin + // LONG: perto do piso + IFR sobrevendido + if (Close <= RangeMin + DistBanda) and (IFR7 <= IFRSobVend) then + begin + StopLoss := RangeMin - StopExtrapilapts; + TakeProfit := CentroRange; + BuyAtMarket; + end; + + // SHORT: perto do teto + IFR sobrecomprado + if (Close >= RangeMax - DistBanda) and (IFR7 >= IFRSobComp) then + begin + StopLoss := RangeMax + StopExtrapilapts; + TakeProfit := CentroRange; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl new file mode 100644 index 0000000..c4f79c0 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl @@ -0,0 +1,119 @@ +// ============================================================ +// Robô: mar_LAT_02_v1_bollinger_reversao_range +// Grupo: LATERALIZACAO_DAYTRADE +// Versão: v1 | Timeframe sugerido: 5min / 15min +// Descrição: Usa Bandas de Bollinger com período curto para +// identificar reversões em mercado lateral. Entra +// quando toca a banda e fecha quando volta à média. +// Filtro ADX < limiar para garantir lateralização. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoBB = 20; +input DesvBB = 2.0; +input PeriodoADX = 14; +input ADXMaxLateral= 25; // ADX abaixo disto = mercado lateral +input StopPontos = 80; // stop fixo em pontos +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + BBSup, BBInf, BBMed: float; + ADX14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + BBSup := BollingerUpper(PeriodoBB, DesvBB, 0); + BBInf := BollingerLower(PeriodoBB, DesvBB, 0); + BBMed := Media(PeriodoBB, Close); + ADX14 := ADX(PeriodoADX, 0); + + EmPosicao := IsBought or IsSold; + + // ---- Saída quando preço retorna à média ---- + if IsBought and (Close >= BBMed) then SellAtMarket; + if IsSold and (Close <= BBMed) then BuyAtMarket; + + // ---- Stop por pontos ---- + if IsBought and (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + + if IsSold and (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (ADX14 < ADXMaxLateral) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: fecha abaixo da banda inferior + if (Close[1] < BBInf[1]) and (Close > BBInf) then + begin + StopLoss := Close - StopPontos; + TakeProfit := BBMed; + BuyAtMarket; + end; + + // SHORT: fecha acima da banda superior + if (Close[1] > BBSup[1]) and (Close < BBSup) then + begin + StopLoss := Close + StopPontos; + TakeProfit := BBMed; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl new file mode 100644 index 0000000..21bd034 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl @@ -0,0 +1,130 @@ +// ============================================================ +// Robô: mar_LAT_03_v1_vwap_oscilacao +// Grupo: LATERALIZACAO_DAYTRADE +// Versão: v1 | Timeframe sugerido: 5min / 15min +// Descrição: Usa VWAP como pivô central em dia lateral. +// Quando preço se afasta X pontos da VWAP e volta, +// entra na direção do fechamento em relação à VWAP. +// Filtro: ADX < 25 (lateralização confirmada). +// Alvo: outro lado da VWAP (+margem). Stop: ATR×1.2 +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input AfastamentoVWAP = 80; // afastamento mínimo da VWAP para aguardar reteste +input MargemAlvo = 20; // pontos além da VWAP para o alvo +input PeriodoADX = 14; +input ADXMax = 25; +input PeriodoATR = 14; +input MultATR = 1.2; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP, ATR14, ADX14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP := VWAP(0); + ATR14 := ATR(PeriodoATR, 0); + ADX14 := ADX(PeriodoADX, 0); + EmPosicao := IsBought or IsSold; + + // ---- Saídas ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: estava muito abaixo da VWAP e volta para ela (cruzamento de baixo pra cima) + if (Close[1] < VWAP[1] - AfastamentoVWAP) and (Close > VWAP) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := VWAP + MargemAlvo; + BuyAtMarket; + end; + + // SHORT: estava muito acima da VWAP e volta para ela (cruzamento de cima pra baixo) + if (Close[1] > VWAP[1] + AfastamentoVWAP) and (Close < VWAP) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := VWAP - MargemAlvo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl new file mode 100644 index 0000000..1393544 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl @@ -0,0 +1,128 @@ +// ============================================================ +// Robô: mar_LAT_04_v1_keltner_reversao +// Grupo: LATERALIZACAO_DAYTRADE +// Versão: v1 | Timeframe sugerido: 5min / 15min +// Descrição: Canal de Keltner como envelope de volatilidade. +// Em mercado lateral (ADX<25), opera reversões +// nas extremidades do canal. Saída na linha central. +// Entrada: Close volta para dentro do canal após +// tocar a extremidade (padrão "falso rompimento"). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoEMA = 20; +input MultATRKeltner= 2.0; +input PeriodoATR = 14; +input PeriodoADX = 14; +input ADXMax = 25; +input StopPontos = 70; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + EMA20, ATR14, ADX14: float; + KeltSup, KeltInf: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + EMA20 := Media(PeriodoEMA, Close); + ATR14 := ATR(PeriodoATR, 0); + ADX14 := ADX(PeriodoADX, 0); + KeltSup := EMA20 + MultATRKeltner * ATR14; + KeltInf := EMA20 - MultATRKeltner * ATR14; + EmPosicao := IsBought or IsSold; + + // ---- Saída na linha central ---- + if IsBought and (Close >= EMA20) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + if IsSold and (Close <= EMA20) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + + // ---- Stop por pontos ---- + if IsBought and (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + if IsSold and (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + + // ---- Entradas: "false breakout" retorna para dentro do canal ---- + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: rompeu abaixo da banda inf mas voltou (Close anterior < KeltInf, atual > KeltInf) + if (Close[1] < KeltInf[1]) and (Close > KeltInf) then + begin + StopLoss := Close - StopPontos; + TakeProfit := EMA20; + BuyAtMarket; + end; + + // SHORT: rompeu acima da banda sup mas voltou + if (Close[1] > KeltSup[1]) and (Close < KeltSup) then + begin + StopLoss := Close + StopPontos; + TakeProfit := EMA20; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl new file mode 100644 index 0000000..e6b4940 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl @@ -0,0 +1,133 @@ +// ============================================================ +// Robô: mar_LAT_05_v1_ifr_duplo_confirmacao +// Grupo: LATERALIZACAO_DAYTRADE +// Versão: v1 | Timeframe sugerido: 5min / 15min +// Descrição: Dupla confirmação de reversão em mercado lateral. +// IFR(7) para entrada rápida + IFR(14) para filtro +// de direção geral. Ambos devem estar no mesmo +// extremo. ADX<25 confirma lateralização. +// Stop: mínima/máxima de 2 candles. Alvo: 1:1.5 +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR1 = 7; +input PeriodoIFR2 = 14; +input IFRSobVend1 = 30; +input IFRSobVend2 = 40; // IFR14 mais tolerante +input IFRSobComp1 = 70; +input IFRSobComp2 = 60; +input PeriodoADX = 14; +input ADXMax = 25; +input RelacaoRR = 1.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + IFR7, IFR14, ADX14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR7 := IFR(PeriodoIFR1, 0); + IFR14 := IFR(PeriodoIFR2, 0); + ADX14 := ADX(PeriodoADX, 0); + EmPosicao := IsBought or IsSold; + + // ---- Saída ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: IFR7 sobrevendido + IFR14 sobrevendido (confirmação dupla) + if (IFR7 <= IFRSobVend1) and (IFR14 <= IFRSobVend2) then + begin + StopLoss := MinList(Low, Low[1]) - 10; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: IFR7 sobrecomprado + IFR14 sobrecomprado + if (IFR7 >= IFRSobComp1) and (IFR14 >= IFRSobComp2) then + begin + StopLoss := MaxList(High, High[1]) + 10; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl new file mode 100644 index 0000000..4c54c23 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl @@ -0,0 +1,127 @@ +// ============================================================ +// Robô: mar_LSW_01_v1_ifr_extremo_swingtrade +// Grupo: LATERALIZACAO_SWINGTRADE +// Versão: v1 | Timeframe sugerido: 60min / 240min +// Descrição: IFR extremo em TF maior para swing em lateralização. +// Alvo mais amplo (1:3) e stop baseado em ATR×2. +// Filtro: ADX<25. Entrada somente das 10h às 15h +// (evita distorções de abertura e fechamento). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; // swing tolera mais +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR = 14; +input IFRSobVend = 25; +input IFRSobComp = 75; +input PeriodoADX = 14; +input ADXMax = 25; +input PeriodoATR = 14; +input MultATR = 2.0; +input RelacaoRR = 3.0; +input HoraIni = 1000; +input HoraFim = 1500; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + IFR14, ADX14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR14 := IFR(PeriodoIFR, 0); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + if (IFR14[1] <= IFRSobVend) and (IFR14 > IFRSobVend) then + begin + StopLoss := Low - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + if (IFR14[1] >= IFRSobComp) and (IFR14 < IFRSobComp) then + begin + StopLoss := High + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl new file mode 100644 index 0000000..e6b7e53 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl @@ -0,0 +1,124 @@ +// ============================================================ +// Robô: mar_LSW_02_v1_canal_paralelo_swing +// Grupo: LATERALIZACAO_SWINGTRADE +// Versão: v1 | Timeframe: 60min / 240min +// Descrição: Define canal paralelo pelas máximas e mínimas dos +// últimos N períodos. Compra no suporte inferior, +// vende na resistência superior. ADX<20 = lateralização. +// Stop: ruptura de 30pts além da borda do canal. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoCanal = 20; +input DistBorda = 40; // pts da borda para aceitar entrada +input StopAlemBorda = 30; +input PeriodoADX = 20; +input ADXMax = 20; +input HoraIni = 1000; +input HoraFim = 1500; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + CanalMax, CanalMin, ADX14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + CanalMax := Highest(High, PeriodoCanal); + CanalMin := Lowest(Low, PeriodoCanal); + ADX14 := ADX(PeriodoADX, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + if (Close <= CanalMin + DistBorda) then + begin + StopLoss := CanalMin - StopAlemBorda; + TakeProfit := CanalMax - DistBorda; + BuyAtMarket; + end; + + if (Close >= CanalMax - DistBorda) then + begin + StopLoss := CanalMax + StopAlemBorda; + TakeProfit := CanalMin + DistBorda; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl new file mode 100644 index 0000000..0f4d5b8 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl @@ -0,0 +1,126 @@ +// ============================================================ +// Robô: mar_LSW_03_v1_adx_baixo_envelope +// Grupo: LATERALIZACAO_SWINGTRADE +// Versão: v1 | Timeframe: 60min / 240min +// Descrição: Envelopes de média móvel (±1%) como zonas de +// sobrecompra/sobrevenda em swing lateral (ADX<20). +// Compra no envelope inferior, vende no superior. +// Stop: ATR×2.5. Alvo: média central. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMedia = 21; +input PctEnvelope = 1.0; // 1% acima/abaixo da média +input PeriodoADX = 20; +input ADXMax = 20; +input PeriodoATR = 14; +input MultATR = 2.5; +input HoraIni = 1000; +input HoraFim = 1500; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + Media21, EnvSup, EnvInf, ADX14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + Media21 := Media(PeriodoMedia, Close); + EnvSup := Media21 * (1 + PctEnvelope / 100); + EnvInf := Media21 * (1 - PctEnvelope / 100); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + if (Close <= EnvInf) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Media21; + BuyAtMarket; + end; + if (Close >= EnvSup) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Media21; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl new file mode 100644 index 0000000..9fb5eb0 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl @@ -0,0 +1,132 @@ +// ============================================================ +// Robô: mar_LSW_04_v1_estoc_semanal_reversao +// Grupo: LATERALIZACAO_SWINGTRADE +// Versão: v1 | Timeframe: 60min / 240min +// Descrição: Estocástico (14,3,3) em zonas extremas para swing. +// Compra quando %K cruza acima de %D em sobrevenda (<20). +// Vende quando %K cruza abaixo de %D em sobrecompra (>80). +// Filtro: mercado não em tendência (ADX<25). +// Stop: mínima de 3 barras. Alvo: 1:2.5 +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoK = 14; +input PeriodoD = 3; +input Suav = 3; +input ZonaSobVend = 20; +input ZonaSobComp = 80; +input PeriodoADX = 14; +input ADXMax = 25; +input RelacaoRR = 2.5; +input HoraIni = 1000; +input HoraFim = 1500; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + StochK, StochD, ADX14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + StochK := StochasticK(PeriodoK, Suav, 0); + StochD := StochasticD(PeriodoK, PeriodoD, Suav, 0); + ADX14 := ADX(PeriodoADX, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // %K cruza %D de baixo para cima em zona sobrevendida + if (StochK[1] <= StochD[1]) and (StochK > StochD) and + (StochK < ZonaSobVend) then + begin + StopLoss := Lowest(Low, 3) - 10; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // %K cruza %D de cima para baixo em zona sobrecomprada + if (StochK[1] >= StochD[1]) and (StochK < StochD) and + (StochK > ZonaSobComp) then + begin + StopLoss := Highest(High, 3) + 10; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl new file mode 100644 index 0000000..4635c55 --- /dev/null +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl @@ -0,0 +1,134 @@ +// ============================================================ +// Robô: mar_LSW_05_v1_macd_histograma_lateral +// Grupo: LATERALIZACAO_SWINGTRADE +// Versão: v1 | Timeframe: 60min / 240min +// Descrição: Em mercado lateral (ADX<25), o MACD oscila em torno +// do zero sem tendência. Entra quando o histograma +// para de cair (mínimo local) ou de subir (máximo local) +// próximo à linha zero. IFR como filtro de extremo. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input MACDRapida = 12; +input MACDLenta = 26; +input MACDSinal = 9; +input PeriodoIFR = 14; +input IFRSobVend = 40; +input IFRSobComp = 60; +input PeriodoADX = 14; +input ADXMax = 25; +input PeriodoATR = 14; +input MultATR = 2.0; +input RelacaoRR = 2.0; +input HoraIni = 1000; +input HoraFim = 1500; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + Hist, HistAnt, IFR14, ADX14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + Hist := MACD(MACDRapida, MACDLenta, MACDSinal) - MACDSignal(MACDRapida, MACDLenta, MACDSinal); + HistAnt := Hist[1]; + IFR14 := IFR(PeriodoIFR, 0); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 < ADXMax) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // Histograma virou de baixo para cima (mínimo local negativo) + IFR sobrevendido + if (Hist < 0) and (Hist > HistAnt) and (IFR14 <= IFRSobVend) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // Histograma virou de cima para baixo (máximo local positivo) + IFR sobrecomprado + if (Hist > 0) and (Hist < HistAnt) and (IFR14 >= IFRSobComp) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl new file mode 100644 index 0000000..41eda09 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl @@ -0,0 +1,130 @@ +// ============================================================ +// Robô: mar_REV_01_v1_pullback_mme21 +// Grupo: REVERSAO_MEDIA +// Versão: v1 | Timeframe: 15min / 30min +// Descrição: Em tendência, espera o preço recuar até a MME21 +// e operar a favor da tendência de volta. Tendência +// definida pela MME9 > MME21 > MME200 (alta) ou inverso. +// Stop: abaixo/acima da MME21 - ATR×0.5. Alvo: 1:2. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMME9 = 9; +input PeriodoMME21 = 21; +input PeriodoMME200 = 200; +input ToleranciaMME = 30; // pts de tolerância para toque na MME21 +input PeriodoATR = 14; +input MultATRStop = 0.5; +input RelacaoRR = 2.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MME9, MME21, MME200, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MME9 := Media(PeriodoMME9, Close); + MME21 := Media(PeriodoMME21, Close); + MME200 := Media(PeriodoMME200, Close); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: tendência altista (MME9>MME21>MME200) + toque na MME21 + if (MME9 > MME21) and (MME21 > MME200) and + (Abs(Close - MME21) <= ToleranciaMME) and (Close > MME21) then + begin + StopLoss := MME21 - ATR14 * MultATRStop; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: tendência baixista (MME9 +2: sobrecomprado → short / Z < -2: sobrevendido → long +// Stop: ATR×1.5. Alvo: retorno ao Z=0 (média). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMedia = 20; +input LimiteZScore = 2.0; // |Z| >= este valor para entrar +input PeriodoATR = 14; +input MultATR = 1.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + Media20, Desvio, ZScore, ATR14: float; + i: integer; + SomaQuad: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + Media20 := Media(PeriodoMedia, Close); + ATR14 := ATR(PeriodoATR, 0); + + // Cálculo do desvio padrão amostral dos últimos N fechamentos + SomaQuad := 0; + for i := 0 to PeriodoMedia - 1 do + SomaQuad := SomaQuad + Power(Close[i] - Media20, 2); + Desvio := Sqrt(SomaQuad / PeriodoMedia); + + if (Desvio > 0) then + ZScore := (Close - Media20) / Desvio + else + ZScore := 0; + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: Z-Score muito negativo (sobrevendido) + if (ZScore <= -LimiteZScore) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Media20; + BuyAtMarket; + end; + + // SHORT: Z-Score muito positivo (sobrecomprado) + if (ZScore >= LimiteZScore) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Media20; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl new file mode 100644 index 0000000..f3aecd2 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl @@ -0,0 +1,123 @@ +// ============================================================ +// Robô: mar_REV_03_v1_bb_retorno_media +// Grupo: REVERSAO_MEDIA +// Versão: v1 | Timeframe: 15min / 30min +// Descrição: Bandas de Bollinger clássico (20,2). Quando o preço +// fecha fora da banda (sobreextensão), aguarda o candle +// retornar para dentro. A entrada é no fechamento +// do primeiro candle que volta para dentro da banda. +// Alvo: média. Stop: 1 ATR além do extremo. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoBB = 20; +input DesvBB = 2.0; +input PeriodoATR = 14; +input MultATRStop = 1.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + BBSup, BBInf, BBMed, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + BBSup := BollingerUpper(PeriodoBB, DesvBB, 0); + BBInf := BollingerLower(PeriodoBB, DesvBB, 0); + BBMed := Media(PeriodoBB, Close); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + // ---- Saída na média de BB ---- + if IsBought and (Close >= BBMed) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + if IsSold and (Close <= BBMed) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + + // ---- Stop loss ---- + if IsBought and (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + if IsSold and (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: Close anterior abaixo da banda inf, atual volta (fecha acima de BBInf) + if (Close[1] < BBInf[1]) and (Close >= BBInf) then + begin + StopLoss := Close[1] - ATR14 * MultATRStop; // extremo anterior - ATR + TakeProfit := BBMed; + BuyAtMarket; + end; + + // SHORT: Close anterior acima da banda sup, atual volta (fecha abaixo de BBSup) + if (Close[1] > BBSup[1]) and (Close <= BBSup) then + begin + StopLoss := Close[1] + ATR14 * MultATRStop; + TakeProfit := BBMed; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl new file mode 100644 index 0000000..3e6943b --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl @@ -0,0 +1,138 @@ +// ============================================================ +// Robô: mar_REV_04_v1_ifr_afastamento_pct +// Grupo: REVERSAO_MEDIA +// Versão: v1 | Timeframe: 15min / 30min +// Descrição: Combina dois critérios: IFR extremo E preço afastado +// mais de X% da MME200. O afastamento excessivo tende +// a reverter à média. Entrada: IFR sai da zona extrema +// enquanto o preço ainda está afastado da MME200. +// Stop: ATR×2.0. Alvo baseado em 50% do afastamento. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR = 14; +input IFRSobVend = 30; +input IFRSobComp = 70; +input PeriodoMME200 = 200; +input AfastamentoPct = 1.5; // % de afastamento da MME200 para considerar extremo +input PeriodoATR = 14; +input MultATR = 2.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + IFR14, MME200, ATR14: float; + DistPct: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR14 := IFR(PeriodoIFR, 0); + MME200 := Media(PeriodoMME200, Close); + ATR14 := ATR(PeriodoATR, 0); + + if (MME200 > 0) then + DistPct := Abs(Close - MME200) / MME200 * 100 + else + DistPct := 0; + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (DistPct >= AfastamentoPct) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: abaixo da MME200 + muito afastado para baixo + IFR sobrevendido saindo + if (Close < MME200) and + (IFR14[1] <= IFRSobVend) and (IFR14 > IFRSobVend) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := MME200 - (MME200 - Close) * 0.5; // metade do caminho até a média + BuyAtMarket; + end; + + // SHORT: acima da MME200 + muito afastado para cima + IFR sobrecomprado saindo + if (Close > MME200) and + (IFR14[1] >= IFRSobComp) and (IFR14 < IFRSobComp) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := MME200 + (Close - MME200) * 0.5; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl new file mode 100644 index 0000000..6ed3db7 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl @@ -0,0 +1,137 @@ +// ============================================================ +// Robô: mar_REV_05_v1_envelope_dinamico_atr +// Grupo: REVERSAO_MEDIA +// Versão: v1 | Timeframe: 15min / 30min +// Descrição: Envelope dinâmico baseado na MME21 ± N×ATR. +// Quando o preço toca o envelope externo (±2×ATR), +// aguarda confirmação (candle na direção contrária) +// e entra visando o retorno à MME21. +// Stop: ATR×1.5 além do ponto de entrada. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMME = 21; +input PeriodoATR = 14; +input MultEnvelope = 2.0; // distância do envelope = MultEnvelope × ATR +input MultStop = 1.5; +input PctCorpoConf = 40; // % corpo mínimo do candle de confirmação +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MME21, ATR14, EnvSup, EnvInf: float; + CorpoCandle, Range: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MME21 := Media(PeriodoMME, Close); + ATR14 := ATR(PeriodoATR, 0); + EnvSup := MME21 + MultEnvelope * ATR14; + EnvInf := MME21 - MultEnvelope * ATR14; + + CorpoCandle := Abs(Close - Open); + Range := High - Low; + EmPosicao := IsBought or IsSold; + + // ---- Saída ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: toca envelope inferior + candle de reversão altista + if (Low <= EnvInf) and + (Close > Open) and + ((Range = 0) or (CorpoCandle / Range * 100 >= PctCorpoConf)) then + begin + StopLoss := Close - ATR14 * MultStop; + TakeProfit := MME21; + BuyAtMarket; + end; + + // SHORT: toca envelope superior + candle de reversão baixista + if (High >= EnvSup) and + (Close < Open) and + ((Range = 0) or (CorpoCandle / Range * 100 >= PctCorpoConf)) then + begin + StopLoss := Close + ATR14 * MultStop; + TakeProfit := MME21; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl new file mode 100644 index 0000000..dbda1da --- /dev/null +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl @@ -0,0 +1,132 @@ +// ============================================================ +// Robô: mar_SCM_01_v1_impulso_candle_1min +// Grupo: SCALPING +// Versão: v1 | Timeframe sugerido: 1min / 2min +// Descrição: Candle de impulso forte (corpo ≥70% do range, +// tamanho ≥30pts). Entra no fechamento do candle +// na direção do impulso. Alvo fixo: 30pts. +// Stop: mínima/máxima do próprio candle de entrada. +// Horário: 09h30–11h30 (máxima volatilidade manhã). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input TamMinCandle = 30; // tamanho mínimo do candle em pontos +input PctCorpoMin = 70; // % corpo do range +input AlvoFixo = 30; // alvo em pontos +input HoraIni = 930; +input HoraFim = 1130; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + CorpoCandle, RangeCandle, PctCorpo: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + if (RangeCandle > 0) then + PctCorpo := CorpoCandle / RangeCandle * 100 + else + PctCorpo := 0; + + EmPosicao := IsBought or IsSold; + + // ---- Saída ---- + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + // ---- Entradas ---- + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) and + (RangeCandle >= TamMinCandle) and + (PctCorpo >= PctCorpoMin) then + begin + // LONG: candle de alta com corpo grande + if (Close > Open) then + begin + StopLoss := Low; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + // SHORT: candle de baixa com corpo grande + if (Close < Open) then + begin + StopLoss := High; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl new file mode 100644 index 0000000..faf1ea5 --- /dev/null +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl @@ -0,0 +1,143 @@ +// ============================================================ +// Robô: mar_SCM_02_v1_sombra_rejeitada +// Grupo: SCALPING +// Versão: v1 | Timeframe: 1min / 2min +// Descrição: Price Action: candle com sombra longa rejeitada +// (martelo / estrela cadente). Sombra ≥ 65% do range, +// corpo pequeno (≤25%). Opera o retorno na direção +// oposta à sombra. Alvo: 25pts. Stop: extremo da sombra. +// Janela: 09h30-12h00 e 14h30-17h00. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PctSombraMin = 65; // % da sombra em relação ao range +input PctCorpoMax = 25; // % máximo do corpo (para filtrar indecisão) +input TamMinCandle = 20; // range mínimo do candle +input AlvoFixo = 25; +input HoraIni1 = 930; +input HoraFim1 = 1200; +input HoraIni2 = 1430; +input HoraFim2 = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + CorpoCandle, RangeCandle: float; + SombraInf, SombraSup: float; + PctCorpo, PctSombraI, PctSombraS: float; + JanelaTempo: boolean; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + SombraInf := MinList(Close, Open) - Low; + SombraSup := High - MaxList(Close, Open); + + if (RangeCandle > 0) then + begin + PctCorpo := CorpoCandle / RangeCandle * 100; + PctSombraI := SombraInf / RangeCandle * 100; + PctSombraS := SombraSup / RangeCandle * 100; + end else + begin + PctCorpo := 0; PctSombraI := 0; PctSombraS := 0; + end; + + JanelaTempo := ((Time >= HoraIni1) and (Time <= HoraFim1)) or + ((Time >= HoraIni2) and (Time <= HoraFim2)); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and JanelaTempo and (RangeCandle >= TamMinCandle) then + begin + // LONG: martelo — sombra inferior longa, corpo pequeno no topo + if (PctSombraI >= PctSombraMin) and (PctCorpo <= PctCorpoMax) then + begin + StopLoss := Low; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + // SHORT: estrela cadente — sombra superior longa, corpo pequeno embaixo + if (PctSombraS >= PctSombraMin) and (PctCorpo <= PctCorpoMax) then + begin + StopLoss := High; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl new file mode 100644 index 0000000..b6ae1cd --- /dev/null +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl @@ -0,0 +1,130 @@ +// ============================================================ +// Robô: mar_SCM_03_v1_microcanal_breakout +// Grupo: SCALPING +// Versão: v1 | Timeframe: 2min / 5min +// Descrição: Após N barras comprimidas (range acumulado < LimRange), +// espera rompimento da máxima ou mínima do micro-canal. +// Alvo: 35pts. Stop: outro lado do canal + 5pts. +// Janela: 09h30–12h00. Limita-se a 3 entradas/dia. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input BarrasCanal = 5; // barras para medir o micro-canal +input LimRangeCanal = 80; // range máximo acumulado para ser "comprimido" +input AlvoFixo = 35; +input StopExtra = 5; // pts além do outro lado do canal +input MaxEntradasDia= 3; +input HoraIni = 930; +input HoraFim = 1200; + +var + PerdaDia, PerdaSemana: float; + StopsConsec, EntradasHoje: integer; + DataAnterior: date; + MaxCanal, MinCanal, RangeCanal: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + EntradasHoje := 0; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MaxCanal := Highest(High, BarrasCanal); + MinCanal := Lowest(Low, BarrasCanal); + RangeCanal := MaxCanal - MinCanal; + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (EntradasHoje < MaxEntradasDia) and + (RangeCanal <= LimRangeCanal) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: rompimento da máxima do canal + if (Close > MaxCanal[1]) then + begin + StopLoss := MinCanal - StopExtra; + TakeProfit := Close + AlvoFixo; + EntradasHoje := EntradasHoje + 1; + BuyAtMarket; + end; + + // SHORT: rompimento da mínima do canal + if (Close < MinCanal[1]) then + begin + StopLoss := MaxCanal + StopExtra; + TakeProfit := Close - AlvoFixo; + EntradasHoje := EntradasHoje + 1; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl new file mode 100644 index 0000000..ec2e31a --- /dev/null +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl @@ -0,0 +1,129 @@ +// ============================================================ +// Robô: mar_SCM_04_v1_pullback_ema5 +// Grupo: SCALPING +// Versão: v1 | Timeframe: 1min / 2min +// Descrição: Tendência de ultra-curto prazo pela EMA(5). +// Entra no primeiro toque de retorno à EMA após afastar. +// Confirmação: candle fecha na direção da tendência. +// Alvo: 25pts. Stop: ATR(5)×1.0. +// Janela: 09h30-11h45 (evita região de almoço). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoEMA = 5; +input PeriodoATR = 5; +input MultATR = 1.0; +input AlvoFixo = 25; +input ToleranciaEMA= 15; // pts de tolerância para "toque" na EMA +input HoraIni = 930; +input HoraFim = 1145; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + EMA5, ATR5: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + EMA5 := Media(PeriodoEMA, Close); + ATR5 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: tendência de alta (Close > EMA5 na barra anterior afastada) + toque na EMA + if (Close[2] > EMA5[2] + ToleranciaEMA) and // estava acima + (Abs(Close - EMA5) <= ToleranciaEMA) and // agora está próximo + (Close > Open) then // candle de alta + begin + StopLoss := Close - ATR5 * MultATR; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + // SHORT: idem para baixo + if (Close[2] < EMA5[2] - ToleranciaEMA) and + (Abs(Close - EMA5) <= ToleranciaEMA) and + (Close < Open) then + begin + StopLoss := Close + ATR5 * MultATR; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl new file mode 100644 index 0000000..6c54d1b --- /dev/null +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl @@ -0,0 +1,131 @@ +// ============================================================ +// Robô: mar_SCM_05_v1_volume_spike_direcional +// Grupo: SCALPING +// Versão: v1 | Timeframe: 1min / 2min +// Descrição: Volume muito acima da média (≥2× média de 20 barras) +// com candle direcional forte (corpo ≥ 60% do range). +// Representa entrada institucional. Opera na direção +// do candle de volume. Alvo: 35pts. Stop: mínima/máxima. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoVolMedia = 20; +input MultVolSpike = 2.0; // volume ≥ X × média +input PctCorpoMin = 60; +input TamMinCandle = 20; +input AlvoFixo = 35; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VolMedia, CorpoCandle, RangeCandle, PctCorpo: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VolMedia := Media(PeriodoVolMedia, Volume); + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + if (RangeCandle > 0) then + PctCorpo := CorpoCandle / RangeCandle * 100 + else + PctCorpo := 0; + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) and + (Volume >= VolMedia * MultVolSpike) and + (RangeCandle >= TamMinCandle) and + (PctCorpo >= PctCorpoMin) then + begin + if (Close > Open) then + begin + StopLoss := Low; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + if (Close < Open) then + begin + StopLoss := High; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl new file mode 100644 index 0000000..6b262ca --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl @@ -0,0 +1,135 @@ +// ============================================================ +// Robô: mar_TND_01_v1_adx_tres_medias +// Grupo: TENDENCIA_SEGUIR +// Versão: v1 | Timeframe: 30min / 60min +// Descrição: Trend-following clássico com 3 médias alinhadas +// (MME9 > MME21 > MME200 para alta) + ADX > 25 +// confirmando a força da tendência. +// Entrada: primeiro pullback para MME9 com candle de alta. +// Stop: MME21 - ATR×0.5. Alvo: 1:2. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMME9 = 9; +input PeriodoMME21 = 21; +input PeriodoMME200 = 200; +input PeriodoADX = 14; +input ADXMin = 25; +input PeriodoATR = 14; +input MultATR = 0.5; +input RelacaoRR = 2.0; +input ToleranciaMME = 25; // pts de proximidade da MME9 para "pullback" +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MME9, MME21, MME200, ADX14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MME9 := Media(PeriodoMME9, Close); + MME21 := Media(PeriodoMME21, Close); + MME200 := Media(PeriodoMME200, Close); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 >= ADXMin) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: 3 médias altistas + pullback para MME9 + candle de alta + if (MME9 > MME21) and (MME21 > MME200) and + (Abs(Close - MME9) <= ToleranciaMME) and (Close > Open) then + begin + StopLoss := MME21 - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: 3 médias baixistas + pullback para MME9 + candle de baixa + if (MME9 < MME21) and (MME21 < MME200) and + (Abs(Close - MME9) <= ToleranciaMME) and (Close < Open) then + begin + StopLoss := MME21 + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl new file mode 100644 index 0000000..2a7baff --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl @@ -0,0 +1,131 @@ +// ============================================================ +// Robô: mar_TND_02_v1_cruzamento_mme_volume +// Grupo: TENDENCIA_SEGUIR +// Versão: v1 | Timeframe: 15min / 30min +// Descrição: Cruzamento de MME9 / MME21 com confirmação de volume. +// Entrada no cruzamento SE volume > 1.3× média. +// Trailing stop por ATR crescente. Alvo 1:2. +// Filtro: preço acima/abaixo da MME200. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoMME9 = 9; +input PeriodoMME21 = 21; +input PeriodoMME200 = 200; +input PeriodoVolMedia = 20; +input MultVolMin = 1.3; +input PeriodoATR = 14; +input MultATR = 1.5; +input RelacaoRR = 2.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MME9, MME21, MME200, VolMedia, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MME9 := Media(PeriodoMME9, Close); + MME21 := Media(PeriodoMME21, Close); + MME200 := Media(PeriodoMME200, Close); + VolMedia := Media(PeriodoVolMedia, Volume); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Volume >= VolMedia * MultVolMin) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: cruzamento altista + preço acima da MME200 + if (MME9[1] <= MME21[1]) and (MME9 > MME21) and (Close > MME200) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: cruzamento baixista + preço abaixo da MME200 + if (MME9[1] >= MME21[1]) and (MME9 < MME21) and (Close < MME200) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl new file mode 100644 index 0000000..4c4224b --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl @@ -0,0 +1,131 @@ +// ============================================================ +// Robô: mar_TND_03_v1_macd_tendencia_mme200 +// Grupo: TENDENCIA_SEGUIR +// Versão: v1 | Timeframe: 30min / 60min +// Descrição: MACD cruza a linha de sinal na direção da tendência +// maior (preço acima/abaixo da MME200). +// Histograma crescente na mesma direção como confirmação. +// Stop: ATR×2. Alvo: 1:2.5. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input MACDRapida = 12; +input MACDLenta = 26; +input MACDSinal = 9; +input PeriodoMME200 = 200; +input PeriodoATR = 14; +input MultATR = 2.0; +input RelacaoRR = 2.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MACDLin, Sinal, Hist, MME200, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + MACDLin := MACD(MACDRapida, MACDLenta, MACDSinal); + Sinal := MACDSignal(MACDRapida, MACDLenta, MACDSinal); + Hist := MACDLin - Sinal; + MME200 := Media(PeriodoMME200, Close); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: cruzamento MACD acima de zero + preço > MME200 + histograma crescendo + if (MACDLin[1] <= Sinal[1]) and (MACDLin > Sinal) and + (MACDLin > 0) and (Hist > Hist[1]) and (Close > MME200) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: cruzamento MACD abaixo de zero + preço < MME200 + histograma caindo + if (MACDLin[1] >= Sinal[1]) and (MACDLin < Sinal) and + (MACDLin < 0) and (Hist < Hist[1]) and (Close < MME200) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl new file mode 100644 index 0000000..0809cfa --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl @@ -0,0 +1,117 @@ +// ============================================================ +// Robô: mar_TND_04_v1_donchian_tendencia +// Grupo: TENDENCIA_SEGUIR +// Versão: v1 | Timeframe: 30min / 60min +// Descrição: Canal de Donchian para trend-following puro. +// Compra na nova máxima de 20 barras se ADX>20. +// Vende na nova mínima de 20 barras se ADX>20. +// Saída: rompimento do canal contrário (10 barras). +// Stop: ATR×2.5 da entrada. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoDonchianEnt = 20; +input PeriodoDonchianSai = 10; +input PeriodoADX = 14; +input ADXMin = 20; +input PeriodoATR = 14; +input MultATR = 2.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + DonMaxEnt, DonMinEnt, DonMaxSai, DonMinSai, ADX14, ATR14: float; + StopLoss: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + DonMaxEnt := Highest(High, PeriodoDonchianEnt); + DonMinEnt := Lowest(Low, PeriodoDonchianEnt); + DonMaxSai := Highest(High, PeriodoDonchianSai); + DonMinSai := Lowest(Low, PeriodoDonchianSai); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + // ---- Saída pelo canal de Donchian menor ---- + if IsBought and (Low <= DonMinSai[1]) then SellAtMarket; + if IsSold and (High >= DonMaxSai[1]) then BuyAtMarket; + + // ---- Stop por ATR ---- + if IsBought and (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + if IsSold and (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end; + + if (not EmPosicao) and + (ADX14 >= ADXMin) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: nova máxima de 20 barras + if (High > DonMaxEnt[1]) then + begin + StopLoss := Close - ATR14 * MultATR; + BuyAtMarket; + end; + + // SHORT: nova mínima de 20 barras + if (Low < DonMinEnt[1]) then + begin + StopLoss := Close + ATR14 * MultATR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl new file mode 100644 index 0000000..b8bc83b --- /dev/null +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl @@ -0,0 +1,140 @@ +// ============================================================ +// Robô: mar_TND_05_v1_ifr_continuacao_tendencia +// Grupo: TENDENCIA_SEGUIR +// Versão: v1 | Timeframe: 30min / 60min +// Descrição: Em tendência forte (ADX>25, 3 médias alinhadas), +// espera o IFR recuar para zona de 40-50 (pullback +// saudável na tendência) e entra na retomada. +// Confirmação: IFR volta a subir (>50 para alta) / +// desce (<50 para baixa). Stop: ATR×2. Alvo: 1:3. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 2.0; +input RiscoSemanaPct = 4.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR = 14; +input IFRPullbackMin= 40; // IFR recuou até esta zona +input IFRPullbackMax= 55; +input PeriodoMME9 = 9; +input PeriodoMME21 = 21; +input PeriodoMME200 = 200; +input PeriodoADX = 14; +input ADXMin = 25; +input PeriodoATR = 14; +input MultATR = 2.0; +input RelacaoRR = 3.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + IFR14, MME9, MME21, MME200, ADX14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR14 := IFR(PeriodoIFR, 0); + MME9 := Media(PeriodoMME9, Close); + MME21 := Media(PeriodoMME21, Close); + MME200 := Media(PeriodoMME200, Close); + ADX14 := ADX(PeriodoADX, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (ADX14 >= ADXMin) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: 3 médias altistas + IFR recuou para zona pullback e voltou a subir acima de 50 + if (MME9 > MME21) and (MME21 > MME200) and + (IFR14[1] >= IFRPullbackMin) and (IFR14[1] <= IFRPullbackMax) and + (IFR14 > IFRPullbackMax) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: 3 médias baixistas + IFR recuou para zona pullback e voltou a cair abaixo de 50 + if (MME9 < MME21) and (MME21 < MME200) and + (IFR14[1] >= IFRPullbackMin) and (IFR14[1] <= IFRPullbackMax) and + (IFR14 < IFRPullbackMin) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl new file mode 100644 index 0000000..3fd8dbc --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl @@ -0,0 +1,124 @@ +// ============================================================ +// Robô: mar_VWP_01_v1_vwap_pullback +// Grupo: VWAP_INSTITUCIONAL +// Versão: v1 | Timeframe: 5min / 15min +// Descrição: Entra no retorno do preço à VWAP após afastar-se. +// Direção: preço vinha afastado acima → short de volta +// ao VWAP; abaixo → long de volta ao VWAP. +// Entrada: preço cruza de volta para o lado da VWAP. +// Stop: ATR×1.5. Alvo: VWAP ± MargemAlvo. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input AfastamentoMinPts = 70; // pts mínimos de afastamento da VWAP antes de entrar +input MargemAlvo = 20; // pontos além da VWAP para o take-profit +input PeriodoATR = 14; +input MultATR = 1.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: estava muito abaixo da VWAP + volta a cruzar para cima + if (Close[1] < VWAP0[1] - AfastamentoMinPts) and (Close > VWAP0) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := VWAP0 + MargemAlvo; + BuyAtMarket; + end; + + // SHORT: estava muito acima da VWAP + volta a cruzar para baixo + if (Close[1] > VWAP0[1] + AfastamentoMinPts) and (Close < VWAP0) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := VWAP0 - MargemAlvo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl new file mode 100644 index 0000000..97ff035 --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl @@ -0,0 +1,128 @@ +// ============================================================ +// Robô: mar_VWP_02_v1_vwap_cruzamento_direcional +// Grupo: VWAP_INSTITUCIONAL +// Versão: v1 | Timeframe: 5min / 15min +// Descrição: Opera o cruzamento do preço com a VWAP como sinal +// de mudança de dominância institucional. +// Long quando fecha acima da VWAP (antes estava abaixo). +// Short quando fecha abaixo da VWAP (antes estava acima). +// Filtro: volume acima da média (sinal institucional real). +// Stop: ATR×1.8. Alvo: 1:2. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoVolMedia = 20; +input MultVolMin = 1.2; +input PeriodoATR = 14; +input MultATR = 1.8; +input RelacaoRR = 2.0; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0, VolMedia, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + VolMedia := Media(PeriodoVolMedia, Volume); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Volume >= VolMedia * MultVolMin) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: cruzamento ascendente + volume confirmado + if (Close[1] < VWAP0[1]) and (Close > VWAP0) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: cruzamento descendente + volume confirmado + if (Close[1] > VWAP0[1]) and (Close < VWAP0) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl new file mode 100644 index 0000000..14a25b7 --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl @@ -0,0 +1,131 @@ +// ============================================================ +// Robô: mar_VWP_03_v1_vwap_desvio_extremo +// Grupo: VWAP_INSTITUCIONAL +// Versão: v1 | Timeframe: 5min / 15min +// Descrição: Usa os desvios padrão da VWAP como suporte/resistência +// dinâmicos. Quando o preço atinge o 2° desvio (+2σ ou -2σ) +// e forma candle de reversão, entra visando o retorno +// para a própria VWAP. Stop: ATR×1.5 além do desvio. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input MultDesvio = 2.0; // nível de desvio para entrada +input PeriodoATR = 14; +input MultATR = 1.5; +input PctCorpoMin = 45; // corpo mínimo do candle de reversão +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0, VWAPDesvSup, VWAPDesvInf, ATR14: float; + CorpoCandle, RangeCandle: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + VWAPDesvSup := VWAPUpperBand(MultDesvio, 0); + VWAPDesvInf := VWAPLowerBand(MultDesvio, 0); + ATR14 := ATR(PeriodoATR, 0); + + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: toca -2σ + candle de reversão altista + if (Low <= VWAPDesvInf) and (Close > Open) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := VWAPDesvInf - ATR14 * MultATR; + TakeProfit := VWAP0; + BuyAtMarket; + end; + + // SHORT: toca +2σ + candle de reversão baixista + if (High >= VWAPDesvSup) and (Close < Open) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := VWAPDesvSup + ATR14 * MultATR; + TakeProfit := VWAP0; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl new file mode 100644 index 0000000..1fbb872 --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl @@ -0,0 +1,130 @@ +// ============================================================ +// Robô: mar_VWP_04_v1_vwap_ifr_confluencia +// Grupo: VWAP_INSTITUCIONAL +// Versão: v1 | Timeframe: 5min / 15min +// Descrição: Confluência de VWAP com IFR extremo. +// O VWAP define a direção permitida (permite long +// apenas quando preço está acima da VWAP). +// O IFR define o momento de entrada (sobrevendido +// em tendência de alta = pullback institucional). +// Stop: ATR×1.5. Alvo: 1:2.5. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR = 14; +input IFRSobVend = 35; +input IFRSobComp = 65; +input PeriodoATR = 14; +input MultATR = 1.5; +input RelacaoRR = 2.5; +input HoraIni = 930; +input HoraFim = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0, IFR14, ATR14: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + IFR14 := IFR(PeriodoIFR, 0); + ATR14 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: acima da VWAP + IFR sobrevendido saindo (pullback institucional) + if (Close > VWAP0) and + (IFR14[1] <= IFRSobVend) and (IFR14 > IFRSobVend) then + begin + StopLoss := Close - ATR14 * MultATR; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: abaixo da VWAP + IFR sobrecomprado saindo + if (Close < VWAP0) and + (IFR14[1] >= IFRSobComp) and (IFR14 < IFRSobComp) then + begin + StopLoss := Close + ATR14 * MultATR; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl new file mode 100644 index 0000000..84a1b38 --- /dev/null +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl @@ -0,0 +1,136 @@ +// ============================================================ +// Robô: mar_VWP_05_v1_vwap_horario_institucional +// Grupo: VWAP_INSTITUCIONAL +// Versão: v1 | Timeframe: 5min / 15min +// Descrição: Foca nos horários de maior atividade institucional: +// abertura (09h-10h) e abertura de NY (15h30-16h30). +// Opera na direção do preço em relação à VWAP quando +// há volume acima da média × 1.5 nesses horários. +// Stop: mínima/máxima de 2 barras. Alvo: 1:2. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoVolMedia = 20; +input MultVolInst = 1.5; // volume institucional mínimo +input PeriodoATR = 14; +input MultATR = 1.5; +input RelacaoRR = 2.0; +// Janela 1: abertura B3 +input HoraIni1 = 900; +input HoraFim1 = 1000; +// Janela 2: abertura NY +input HoraIni2 = 1530; +input HoraFim2 = 1630; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0, VolMedia, ATR14: float; + JanelaTempo: boolean; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + VolMedia := Media(PeriodoVolMedia, Volume); + ATR14 := ATR(PeriodoATR, 0); + + JanelaTempo := ((Time >= HoraIni1) and (Time <= HoraFim1)) or + ((Time >= HoraIni2) and (Time <= HoraFim2)); + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + JanelaTempo and + (Volume >= VolMedia * MultVolInst) then + begin + // LONG: fechou acima da VWAP com volume institucional + candle de alta + if (Close > VWAP0) and (Close > Open) then + begin + StopLoss := MinList(Low, Low[1]) - 5; + TakeProfit := Close + (Close - StopLoss) * RelacaoRR; + BuyAtMarket; + end; + + // SHORT: fechou abaixo da VWAP com volume institucional + candle de baixa + if (Close < VWAP0) and (Close < Open) then + begin + StopLoss := MaxList(High, High[1]) + 5; + TakeProfit := Close - (StopLoss - Close) * RelacaoRR; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl new file mode 100644 index 0000000..b4f860d --- /dev/null +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl @@ -0,0 +1,139 @@ +// ============================================================ +// Robô: mar_TFM_01_v1_abertura_impulso_2min +// Grupo: timeframeMenor +// Versão: v1 | Timeframe sugerido: 2min +// Descrição: Opera o impulso inicial da abertura. +// Define o range da 1ª barra do dia (09h55-10h00). +// Ao romper máx ou mín desse range com candle forte, +// entra na direção. Alvo: 40pts. Stop: outro lado. +// Janela: somente até 10h30 para capturar momentum. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input HoraBarraRef = 1000; // horário da barra de referência (1ª barra) +input AlvoFixo = 40; +input StopExtra = 10; // pts além do outro lado da barra ref +input HoraFimOperar = 1030; // fecha entradas depois deste horário +input PctCorpoMin = 55; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + MaxRef, MinRef: float; + BarraRefCapturada: boolean; + CorpoCandle, RangeCandle: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + MaxRef := 0; + MinRef := 999999; + BarraRefCapturada := false; + DataAnterior := Date; + end; + + // Captura a barra de referência (1ª barra) + if (Time = HoraBarraRef) and (not BarraRefCapturada) then + begin + MaxRef := High; + MinRef := Low; + BarraRefCapturada := true; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + CorpoCandle := Abs(Close - Open); + RangeCandle := High - Low; + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and BarraRefCapturada and + (Time > HoraBarraRef) and (Time <= HoraFimOperar) and + (MaxRef > MinRef) then + begin + // LONG: rompe máxima da barra ref + candle forte + if (Close > MaxRef) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := MinRef - StopExtra; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + // SHORT: rompe mínima da barra ref + candle forte + if (Close < MinRef) and + ((RangeCandle = 0) or (CorpoCandle / RangeCandle * 100 >= PctCorpoMin)) then + begin + StopLoss := MaxRef + StopExtra; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl new file mode 100644 index 0000000..91c835f --- /dev/null +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl @@ -0,0 +1,138 @@ +// ============================================================ +// Robô: mar_TFM_02_v1_ema5_retorno_1min +// Grupo: timeframeMenor +// Versão: v1 | Timeframe sugerido: 1min +// Descrição: EMA(5) como referência de ultra-curto prazo. +// Após impulso de ≥20pts em um único candle, aguarda +// o preço recuar para a EMA(5) e retomar a direção. +// Confirmação: candle fecha de volta na direção do impulso. +// Alvo: 20pts. Stop: ATR(5)×1.2. +// Janela: 09h30–11h30 e 15h00–17h00. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoEMA = 5; +input ImpulsoMin = 20; // pts mínimos no candle anterior para considerar impulso +input TolerEMA = 12; // pts de tolerância para toque na EMA +input PeriodoATR = 5; +input MultATR = 1.2; +input AlvoFixo = 20; +input HoraIni1 = 930; +input HoraFim1 = 1130; +input HoraIni2 = 1500; +input HoraFim2 = 1700; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + EMA5, ATR5: float; + ImpulsoAlt, ImpulsoBai: boolean; + JanelaTempo: boolean; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + EMA5 := Media(PeriodoEMA, Close); + ATR5 := ATR(PeriodoATR, 0); + + // Impulso na barra anterior + ImpulsoAlt := (Close[1] - Open[1] >= ImpulsoMin) and (Close[1] > Open[1]); + ImpulsoBai := (Open[1] - Close[1] >= ImpulsoMin) and (Close[1] < Open[1]); + + JanelaTempo := ((Time >= HoraIni1) and (Time <= HoraFim1)) or + ((Time >= HoraIni2) and (Time <= HoraFim2)); + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and JanelaTempo then + begin + // LONG: impulso bullish anterior + pullback à EMA + candle de alta + if ImpulsoAlt and (Abs(Close - EMA5) <= TolerEMA) and (Close > Open) then + begin + StopLoss := Close - ATR5 * MultATR; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + // SHORT: impulso bearish anterior + pullback à EMA + candle de baixa + if ImpulsoBai and (Abs(Close - EMA5) <= TolerEMA) and (Close < Open) then + begin + StopLoss := Close + ATR5 * MultATR; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl new file mode 100644 index 0000000..f20d696 --- /dev/null +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl @@ -0,0 +1,128 @@ +// ============================================================ +// Robô: mar_TFM_03_v1_ifr_extremo_2min_stop_rapido +// Grupo: timeframeMenor +// Versão: v1 | Timeframe sugerido: 2min +// Descrição: IFR(7) em zonas extremas (>80 / <20) para scalp +// de ultra-curto prazo. Stop muito apertado (ATR×0.8). +// Alvo: 25pts. Máx 5 entradas por dia. +// Funciona melhor em dias de volatilidade moderada. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input PeriodoIFR = 7; +input IFRSobVend = 20; +input IFRSobComp = 80; +input PeriodoATR = 7; +input MultATR = 0.8; +input AlvoFixo = 25; +input MaxEntradasDia= 5; +input HoraIni = 930; +input HoraFim = 1145; // manhã apenas + +var + PerdaDia, PerdaSemana: float; + StopsConsec, EntradasHoje: integer; + DataAnterior: date; + IFR7, ATR7: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + EntradasHoje := 0; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + IFR7 := IFR(PeriodoIFR, 0); + ATR7 := ATR(PeriodoATR, 0); + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (EntradasHoje < MaxEntradasDia) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + if (IFR7[1] <= IFRSobVend) and (IFR7 > IFRSobVend) then + begin + StopLoss := Close - ATR7 * MultATR; + TakeProfit := Close + AlvoFixo; + EntradasHoje := EntradasHoje + 1; + BuyAtMarket; + end; + + if (IFR7[1] >= IFRSobComp) and (IFR7 < IFRSobComp) then + begin + StopLoss := Close + ATR7 * MultATR; + TakeProfit := Close - AlvoFixo; + EntradasHoje := EntradasHoje + 1; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl new file mode 100644 index 0000000..5c7b7ff --- /dev/null +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl @@ -0,0 +1,135 @@ +// ============================================================ +// Robô: mar_TFM_04_v1_3candles_consecutivos_5min +// Grupo: timeframeMenor +// Versão: v1 | Timeframe sugerido: 5min +// Descrição: 3 candles consecutivos de alta/baixa com corpos +// crescentes formam um "trem" de momentum. +// Entra na continuação. Alvo: 35pts. +// Stop: mínima/máxima do 1º candle do trem - 5pts. +// Janela: 09h30–12h00 (melhor momentum de manhã). +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input CorpoMinCandle = 10; // corpo mínimo de cada candle (pts) +input AlvoFixo = 35; +input StopExtra = 5; +input HoraIni = 930; +input HoraFim = 1200; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + Corpo0, Corpo1, Corpo2: float; + TremAlta, TremBaixa: boolean; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + // Corpo dos 3 candles anteriores + Corpo0 := Abs(Close - Open ); // candle atual + Corpo1 := Abs(Close[1] - Open[1]); + Corpo2 := Abs(Close[2] - Open[2]); + + // Trem de alta: 3 corpos crescentes verdes + TremAlta := (Close[2] > Open[2]) and (Corpo2 >= CorpoMinCandle) and + (Close[1] > Open[1]) and (Corpo1 > Corpo2) and + (Close > Open ) and (Corpo0 > Corpo1); + + // Trem de baixa: 3 corpos crescentes vermelhos + TremBaixa := (Close[2] < Open[2]) and (Corpo2 >= CorpoMinCandle) and + (Close[1] < Open[1]) and (Corpo1 > Corpo2) and + (Close < Open ) and (Corpo0 > Corpo1); + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + if TremAlta then + begin + StopLoss := Low[2] - StopExtra; + TakeProfit := Close + AlvoFixo; + BuyAtMarket; + end; + + if TremBaixa then + begin + StopLoss := High[2] + StopExtra; + TakeProfit := Close - AlvoFixo; + SellAtMarket; + end; + end; + +end; diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl new file mode 100644 index 0000000..a18f5e7 --- /dev/null +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl @@ -0,0 +1,124 @@ +// ============================================================ +// Robô: mar_TFM_05_v1_vwap_gap_5min +// Grupo: timeframeMenor +// Versão: v1 | Timeframe sugerido: 5min +// Descrição: Detecta gaps de abertura no 5min em relação ao +// fechamento anterior. Gap altista + preço acima da +// VWAP = continuação da alta. Gap baixista + abaixo +// da VWAP = queda continua. +// Alvo: 2× o gap. Stop: fechamento do gap. +// ============================================================ + +input UsarGestaoRisco = true; +input UsarHardLock = true; +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; +input RiscoSemanaPct = 3.0; +input MaxStopsConsecutivos = 3; +input ValorPorPonto = 0.2; +input DiaSemanaReset = 2; + +input GapMinPts = 15; // gap mínimo em pontos para considerar +input MultiploAlvo = 2.0; // alvo = gap × MultiploAlvo +input HoraIni = 955; // pega a 1ª barra de 5min após abertura +input HoraFim = 1030; + +var + PerdaDia, PerdaSemana: float; + StopsConsec: integer; + DataAnterior: date; + VWAP0: float; + GapAbertura: float; + StopLoss, TakeProfit: float; + EmPosicao: boolean; +begin + + if (Date <> DataAnterior) then + begin + if (UsarGestaoRisco) then + begin + PerdaDia := 0; + if (DayOfWeek(Date) = DiaSemanaReset) then + begin + PerdaSemana := 0; + StopsConsec := 0; + end; + end; + DataAnterior := Date; + end; + + if (UsarGestaoRisco) then + begin + if ((PerdaDia >= SaldoConta * RiscoDiaPct / 100) or + (PerdaSemana >= SaldoConta * RiscoSemanaPct / 100) or + (StopsConsec >= MaxStopsConsecutivos)) then + begin + if (UsarHardLock and (IsBought or IsSold)) then ClosePosition; + exit; + end; + end; + + VWAP0 := VWAP(0); + GapAbertura := Open - Close[1]; // positivo = gap alta; negativo = gap baixa + + EmPosicao := IsBought or IsSold; + + if IsBought then + begin + if (Close <= StopLoss) then + begin + SellAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (EntryPrice - Close) * ValorPorPonto; + PerdaSemana := PerdaSemana + (EntryPrice - Close) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close >= TakeProfit) then + begin + SellAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if IsSold then + begin + if (Close >= StopLoss) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then + begin + PerdaDia := PerdaDia + (Close - EntryPrice) * ValorPorPonto; + PerdaSemana := PerdaSemana + (Close - EntryPrice) * ValorPorPonto; + StopsConsec := StopsConsec + 1; + end; + end + else if (Close <= TakeProfit) then + begin + BuyAtMarket; + if (UsarGestaoRisco) then StopsConsec := 0; + end; + end; + + if (not EmPosicao) and + (Time >= HoraIni) and (Time <= HoraFim) then + begin + // LONG: gap de alta + preço acima da VWAP + if (GapAbertura >= GapMinPts) and (Close > VWAP0) then + begin + StopLoss := Close[1]; // fechar o gap = stop + TakeProfit := Close + GapAbertura * MultiploAlvo; + BuyAtMarket; + end; + + // SHORT: gap de baixa + preço abaixo da VWAP + if (GapAbertura <= -GapMinPts) and (Close < VWAP0) then + begin + StopLoss := Close[1]; // fechar o gap pelo outro lado = stop + TakeProfit := Close + GapAbertura * MultiploAlvo; // negativo → subtrai + SellAtMarket; + end; + end; + +end; From 5d03d2ee629fc3f58264d6d1581fca285e70f043 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:03:39 -0300 Subject: [PATCH 47/63] Padrao: .ntsl oficial, resultados _TIMEFRAME.csv; MQL5 REV_01-05; atualiza instrucoes e orientacoes --- .github/copilot-instructions.md | 50 ++++--- WorkspaceRobosTrade/OrientacoesWorkspace.md | 39 +++-- .../mql5/mar_REV_01_v1_pullback_mme21.mq5 | 138 ++++++++++++++++++ .../mql5/mar_REV_02_v1_zscore_afastamento.mq5 | 133 +++++++++++++++++ .../mql5/mar_REV_03_v1_bb_retorno_media.mq5 | 129 ++++++++++++++++ .../mar_REV_04_v1_ifr_afastamento_pct.mq5 | 133 +++++++++++++++++ .../mar_REV_05_v1_envelope_dinamico_atr.mq5 | 133 +++++++++++++++++ 7 files changed, 721 insertions(+), 34 deletions(-) create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_02_v1_zscore_afastamento.mq5 create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 create mode 100644 automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_05_v1_envelope_dinamico_atr.mq5 diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 7103c50..661016f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -23,24 +23,24 @@ Este workspace é um sistema de **day trade quantitativo** focado no mercado bra ``` automacao_backtests/ -└── IFR_RSI/ - ├── codigo_fonte/ → Scripts NTSL dos robôs testados - ├── top10/ → Top 10 por desempenho - ├── resultadosAprovadosPorTimeframe/ → CSVs de resultados - └── Reprovados/ → Versões descartadas +├── IFR_RSI/ → Scripts IFR legados + resultados +├── GRUPO_X/ → Cada grupo tem a mesma estrutura interna: +│ ├── ntsl/ → Scripts Neologica Profit (.ntsl) +│ ├── mql5/ → Scripts MetaTrader 5 (.mq5) +│ ├── resultsBackTestTimeframe/ → CSVs: mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv +│ ├── reprovados/ → Versões descartadas +│ └── GRUPO.md → Documentação / notas do grupo +└── MAPA_GRUPOS.md → Índice de todos os grupos estudo_teorias/ -├── 0_diario/ → Diário de bordo e aulas -├── 1_operacional/ → Consulta pré-trade (risco, WIN, horários) -├── 2_teorias/ → Indicadores técnicos (IFR, MACD, médias...) -├── 3_tendencia_contexto/ → Tendência, pivôs e panorama -└── 4_volume_institucional/ → VSA, VWAP, volume, Wyckoff - -profit_estudos_cores/ -├── fev2026/ → Scripts do ciclo fevereiro/2026 -└── marco2026_IFR_top5/ → Top 5 robôs IFR ativos (mar/2026) - -WorkspaceRobosTrade/ → Orientações e documentação do workspace +├── 0_diario/ → Diário de bordo e aulas +├── 1_operacional/ → Consulta pré-trade (risco, WIN, horários) +├── 2_teorias/ → Indicadores técnicos (IFR, MACD, médias...) +├── 3_tendencia_contexto/ → Tendência, pivôs e panorama +└── 4_volume_institucional/ → VSA, VWAP, volume, Wyckoff + +profit_estudos_cores/ → Indicadores/colorações prontos para o Profit +WorkspaceRobosTrade/ → Orientações e documentação do workspace ``` --- @@ -49,19 +49,29 @@ WorkspaceRobosTrade/ → Orientações e documentação do wor ### Scripts NTSL (Neologica Profit) -- Extensão: `.txt` ou `.ntsl.txt` -- Nomenclatura robôs março/2026: `mar_GRUPO_NN_vX_descricao.ntsl.txt` -- Nomenclatura indicadores/cores: `mar_NomeDoEstudo.ntsl.txt` +- Extensão: **`.ntsl`** (nunca `.txt` nem `.ntsl.txt` — `.txt` é reservado para anotações) +- Nomenclatura robôs: `mar_GRUPO_NN_vX_descricao.ntsl` (ex: `mar_REV_01_v1_pullback_mme21.ntsl`) +- Nomenclatura indicadores/cores: `mar_NomeDoEstudo.ntsl` (ex: `mar_VWAPsemanalDiario.ntsl`) - Sempre incluir comentário de cabeçalho com: versão, timeframe, descrição, taxa de acerto se disponível - Respeitar a sintaxe NTSL da plataforma Profit (variáveis, séries, funções nativas) - **OBRIGATÓRIO:** todos os parâmetros de risco declarados como `input` (ver bloco padrão na seção Gerenciamento de Risco) - Nunca usar `UsarGestaoRisco(true)` hardcoded — sempre `input UsarGestaoRisco = true` +### Scripts MQL5 (MetaTrader 5) + +- Extensão: **`.mq5`** +- Nomenclatura: mesmo padrão do NTSL — `mar_GRUPO_NN_vX_descricao.mq5` +- Estrutura obrigatória: `#include ` + inputs espelhando o NTSL + `OnInit`, `OnDeinit`, `OnTick` +- Inputs de risco espelham o NTSL: `UsarGestaoRisco`, `UsarHardLock`, `SaldoConta`, `RiscoDiaPct`, `RiscoSemanaPct`, `MaxStopsConsecutivos`, `ValorPorPonto` +- Salvar em `GRUPO/mql5/` ao lado da pasta `ntsl/` + ### Scripts Python (Backtest) - Usar Python 3.10 (`C:/Program Files/Python310/python.exe`) - Seguir estrutura de backtest existente na pasta `automacao_backtests/IFR_RSI/` -- Nomear resultados com timeframe e taxa de acerto no nome do arquivo: `robo_ifr_vNN_descricao_TIMEFRAME_XX%.txt` +- Nomear resultados com timeframe **no final** antes da extensão: `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` + - Exemplo: `mar_REV_01_v1_pullback_mme21_15min.csv`, `mar_REV_01_v1_pullback_mme21_30min.csv` + - Timeframe ao final facilita ordenar e filtrar resultados no explorador de arquivos ### Arquivos de Teoria (Markdown) diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md index 9a0cea9..306d9b5 100644 --- a/WorkspaceRobosTrade/OrientacoesWorkspace.md +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -15,12 +15,18 @@ Este repositório organiza toda a estrutura de estudo, desenvolvimento e automa ``` RepoRobos/ -├── automacao_backtests/ # Scripts Python de backtest + resultados IFR/RSI -│ └── IFR_RSI/ # 50+ variações de estratégia IFR catalogadas e testadas -├── estudo_teorias/ # Base de conhecimento técnico (Markdown) -├── profit_estudos_cores/ # Scripts NTSL prontos para colar no Profit (indicadores/cores) -│ └── marco2026_IFR_top5/ # Top 5 robôs IFR ativos do ciclo de março/2026 -└── WorkspaceRobosTrade/ # Este arquivo + orientações do workspace +├── automacao_backtests/ # Robôs NTSL, MQL5 e resultados de backtest +│ ├── GRUPO_X/ # Um grupo por lógica de estratégia +│ │ ├── ntsl/ # Robôs Neologica Profit (.ntsl) +│ │ ├── mql5/ # Robôs MetaTrader 5 (.mq5) +│ │ ├── resultsBackTestTimeframe/ # mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv +│ │ ├── reprovados/ # Versões descartadas +│ │ └── GRUPO.md # Documentação do grupo +│ ├── IFR_RSI/ # Scripts IFR legados + resultados +│ └── MAPA_GRUPOS.md # Índice de todos os grupos +├── estudo_teorias/ # Base de conhecimento técnico (Markdown) +├── profit_estudos_cores/ # Indicadores/colorações prontos para o Profit +└── WorkspaceRobosTrade/ # Este arquivo + orientações do workspace ``` --- @@ -150,22 +156,27 @@ main ## 7. Padrão de Nomenclatura de Arquivos -| Prefixo | Significado | Exemplo | +| Tipo | Formato | Exemplo | |---|---|---| -| `fev_` | Script do ciclo de fevereiro/2026 | `fev_VWAPsemanalDiario.txt` | -| `mar_IFR_` | Robô IFR do ciclo de março/2026 | `mar_IFR_01_v6_60min_saida_hibrida.ntsl.txt` | -| `robo_ifr_vNN_` | Versão numerada de robô IFR em backtest | `robo_ifr_v31_reversao_volume_relativo60min72%.txt` | -| `teoria_` | Arquivo teórico de consulta | `teoria_IFR.md` | -| `caracteristicas_` | Verdades práticas de um ativo | `caracteristicas_WIN_mini_indice.md` | +| Robô NTSL | `mar_GRUPO_NN_vX_descricao.ntsl` | `mar_REV_01_v1_pullback_mme21.ntsl` | +| Robô MQL5 | `mar_GRUPO_NN_vX_descricao.mq5` | `mar_REV_01_v1_pullback_mme21.mq5` | +| Resultado CSV | `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` | `mar_REV_01_v1_pullback_mme21_15min.csv` | +| Indicador/cor Profit | `mar_NomeDoEstudo.ntsl` | `mar_VWAPsemanalDiario.ntsl` | +| Arquivo teórico | `teoria_TEMA.md` | `teoria_IFR.md` | +| Características ativo | `caracteristicas_ATIVO.md` | `caracteristicas_WIN_mini_indice.md` | + +> **Regra de ouro:** Timeframe **sempre no final** do nome do CSV (antes do `.csv`), facilitando ordenação e filtragem no explorador. Ex: `_15min`, `_30min`, `_60min`, `_1min`. --- ## 8. Convenções para o Agente (GitHub Copilot) - Linguagem dos arquivos: **português brasileiro** -- Plataforma alvo dos scripts `.txt`/`.ntsl.txt`: **Neologica Profit (NTSL)** +- Robôs NTSL: extensão `.ntsl` — nunca `.txt` nem `.ntsl.txt` +- Robôs MQL5: extensão `.mq5`, salvos em `GRUPO/mql5/` espelhando o NTSL +- Arquivos `.txt`: reservados exclusivamente para anotações e documentação livre - Scripts de backtest: **Python** +- Resultados de backtest: `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` (timeframe sempre no final) - Quando sugerir código NTSL, respeitar a sintaxe da plataforma Profit - Ao editar teorias, manter a estrutura de heading `#` e tabelas Markdown existentes -- Ao criar novos robôs IFR, seguir a nomenclatura `mar_IFR_NN_vX_TIMEFRAME_descricao.ntsl.txt` - Registros de sessão/diário: usar `estudo_teorias/0326_diarioDeBordo.md` diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 new file mode 100644 index 0000000..0217b3d --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 @@ -0,0 +1,138 @@ +//+------------------------------------------------------------------+ +//| mar_REV_01_v1_pullback_mme21.mq5 | +//| Grupo: REVERSAO_MEDIA | +//| Versao: v1 | Timeframe: M15 / M30 | +//| Descricao: Em tendencia (MME9>MME21>MME200), aguarda pullback | +//| ate a MME21 e opera a favor da tendencia de volta. | +//| Stop: MME21 - ATR x0.5. Alvo: 1:2. | +//+------------------------------------------------------------------+ +#property copyright "mar_REV_01_v1_pullback_mme21" +#property version "1.00" +#include + +//--- Gestao de Risco +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; +input int DiaSemanaReset = 1; // 0=Dom 1=Seg 2=Ter ... + +//--- Estrategia +input int PeriodoMME9 = 9; +input int PeriodoMME21 = 21; +input int PeriodoMME200 = 200; +input double ToleranciaMME = 30.0; // pts tolerancia para toque na MME21 +input int PeriodoATR = 14; +input double MultATRStop = 0.5; +input double RelacaoRR = 2.0; +input int HoraIni = 9; +input int MinIni = 30; +input int HoraFim = 17; +input int MinFim = 0; +input double LotePadrao = 1.0; + +//--- Globals +CTrade trade; +int hMME9, hMME21, hMME200, hATR; +double PerdaDia, PerdaSemana; +int StopsConsec, UltimoDia; + +//+------------------------------------------------------------------+ +int OnInit(){ + hMME9 = iMA(NULL,0,PeriodoMME9, 0,MODE_EMA,PRICE_CLOSE); + hMME21 = iMA(NULL,0,PeriodoMME21, 0,MODE_EMA,PRICE_CLOSE); + hMME200 = iMA(NULL,0,PeriodoMME200,0,MODE_EMA,PRICE_CLOSE); + hATR = iATR(NULL,0,PeriodoATR); + if(hMME9==INVALID_HANDLE || hMME21==INVALID_HANDLE || + hMME200==INVALID_HANDLE || hATR==INVALID_HANDLE) + { Print("Erro ao criar handles."); return INIT_FAILED; } + UltimoDia = -1; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason){ + IndicatorRelease(hMME9); + IndicatorRelease(hMME21); + IndicatorRelease(hMME200); + IndicatorRelease(hATR); +} + +double CalculaPerdaDia(){ + double perda=0; + MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); + datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); + HistorySelect(ini,TimeCurrent()); + for(int i=0;i= SaldoConta*RiscoDiaPct/100.0 || + PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0|| + StopsConsec >= MaxStopsConsecutivos){ + if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); + return; + } + } + + // Indicadores (barra fechada = indice 1) + double arrMME9[1],arrMME21[1],arrMME200[1],arrATR[1]; + ArraySetAsSeries(arrMME9,true); CopyBuffer(hMME9, 0,1,1,arrMME9); + ArraySetAsSeries(arrMME21,true); CopyBuffer(hMME21, 0,1,1,arrMME21); + ArraySetAsSeries(arrMME200,true); CopyBuffer(hMME200,0,1,1,arrMME200); + ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); + + double mme9=arrMME9[0], mme21=arrMME21[0], mme200=arrMME200[0], atr=arrATR[0]; + double fechar=iClose(NULL,0,1); + + // Filtro de horario + MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); + int hhmm=dtBar.hour*100+dtBar.min; + if(hhmmHoraFim*100+MinFim) return; + + if(PositionSelect(Symbol())) return; // ja tem posicao aberta + + // LONG: tendencia altista + pullback ate MME21 + if(mme9>mme21 && mme21>mme200 && + MathAbs(fechar-mme21)<=ToleranciaMME && fechar>mme21){ + double sl=mme21-atr*MultATRStop; + double tp=fechar+(fechar-sl)*RelacaoRR; + if(trade.Buy(LotePadrao,Symbol(),0,sl,tp) && UsarGestaoRisco) StopsConsec=0; + } + // SHORT: tendencia baixista + pullback ate MME21 + else if(mme9 +2: sobrecomprado -> short | +//| Z < -2: sobrevendido -> long | +//| Stop: ATR x1.5. Alvo: retorno a media (Z=0). | +//+------------------------------------------------------------------+ +#property copyright "mar_REV_02_v1_zscore_afastamento" +#property version "1.00" +#include + +//--- Gestao de Risco +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; +input int DiaSemanaReset = 1; + +//--- Estrategia +input int PeriodoMedia = 20; +input double LimiteZScore = 2.0; +input int PeriodoATR = 14; +input double MultATR = 1.5; +input int HoraIni = 9; +input int MinIni = 30; +input int HoraFim = 17; +input int MinFim = 0; +input double LotePadrao = 1.0; + +//--- Globals +CTrade trade; +int hMedia, hATR; +double PerdaDia, PerdaSemana; +int StopsConsec, UltimoDia; + +//+------------------------------------------------------------------+ +int OnInit(){ + hMedia = iMA(NULL,0,PeriodoMedia,0,MODE_EMA,PRICE_CLOSE); + hATR = iATR(NULL,0,PeriodoATR); + if(hMedia==INVALID_HANDLE || hATR==INVALID_HANDLE) + { Print("Erro ao criar handles."); return INIT_FAILED; } + UltimoDia=-1; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason){ + IndicatorRelease(hMedia); + IndicatorRelease(hATR); +} + +double CalculaPerdaDia(){ + double perda=0; + MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); + datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); + HistorySelect(ini,TimeCurrent()); + for(int i=0;i= SaldoConta*RiscoDiaPct/100.0 || + PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || + StopsConsec >= MaxStopsConsecutivos){ + if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); + return; + } + } + + // Indicadores + double arrMedia[1], arrATR[1]; + ArraySetAsSeries(arrMedia,true); CopyBuffer(hMedia,0,1,1,arrMedia); + ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); + double media=arrMedia[0], atr=arrATR[0]; + + // Z-Score: copia N fechamentos para calculo de desvio padrao + double closes[]; + ArraySetAsSeries(closes,true); + CopyClose(NULL,0,1,PeriodoMedia,closes); + + double somaQuad=0; + for(int i=0;i0) ? (closes[0]-media)/desvio : 0; + + // Filtro de horario + MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); + int hhmm=dtBar.hour*100+dtBar.min; + if(hhmmHoraFim*100+MinFim) return; + + if(PositionSelect(Symbol())) return; + + // LONG: Z-Score muito negativo (sobrevendido) + if(zscore<=-LimiteZScore){ + double sl=closes[0]-atr*MultATR; + double tp=media; + trade.Buy(LotePadrao,Symbol(),0,sl,tp); + } + // SHORT: Z-Score muito positivo (sobrecomprado) + else if(zscore>=LimiteZScore){ + double sl=closes[0]+atr*MultATR; + double tp=media; + trade.Sell(LotePadrao,Symbol(),0,sl,tp); + } +} diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 new file mode 100644 index 0000000..1e16478 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 @@ -0,0 +1,129 @@ +//+------------------------------------------------------------------+ +//| mar_REV_03_v1_bb_retorno_media.mq5 | +//| Grupo: REVERSAO_MEDIA | +//| Versao: v1 | Timeframe: M15 / M30 | +//| Descricao: BB (20,2). Preco fecha fora da banda -> aguarda barra | +//| retornar para dentro. Entrada no 1o candle que volta. | +//| Alvo: media BB. Stop: 1 ATR alem do extremo. | +//+------------------------------------------------------------------+ +#property copyright "mar_REV_03_v1_bb_retorno_media" +#property version "1.00" +#include + +//--- Gestao de Risco +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; +input int DiaSemanaReset = 1; + +//--- Estrategia +input int PeriodoBB = 20; +input double DesvBB = 2.0; +input int PeriodoATR = 14; +input double MultATRStop = 1.0; +input int HoraIni = 9; +input int MinIni = 30; +input int HoraFim = 17; +input int MinFim = 0; +input double LotePadrao = 1.0; + +//--- Globals +CTrade trade; +int hBB, hATR; +double PerdaDia, PerdaSemana; +int StopsConsec, UltimoDia; + +//+------------------------------------------------------------------+ +int OnInit(){ + hBB = iBands(NULL,0,PeriodoBB,0,DesvBB,PRICE_CLOSE); + hATR = iATR(NULL,0,PeriodoATR); + if(hBB==INVALID_HANDLE || hATR==INVALID_HANDLE) + { Print("Erro ao criar handles."); return INIT_FAILED; } + UltimoDia=-1; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason){ + IndicatorRelease(hBB); + IndicatorRelease(hATR); +} + +double CalculaPerdaDia(){ + double perda=0; + MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); + datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); + HistorySelect(ini,TimeCurrent()); + for(int i=0;i= SaldoConta*RiscoDiaPct/100.0 || + PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || + StopsConsec >= MaxStopsConsecutivos){ + if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); + return; + } + } + + // BB: buffer 0=superior, 1=media, 2=inferior + double arrSup[2], arrMed[2], arrInf[2], arrATR[2]; + ArraySetAsSeries(arrSup,true); CopyBuffer(hBB, UPPER_BAND, 1,2,arrSup); + ArraySetAsSeries(arrMed,true); CopyBuffer(hBB, BASE_LINE, 1,2,arrMed); + ArraySetAsSeries(arrInf,true); CopyBuffer(hBB, LOWER_BAND, 1,2,arrInf); + ArraySetAsSeries(arrATR,true); CopyBuffer(hATR,0, 1,1,arrATR); + + // Indices: [0]=barra fechada atual, [1]=barra anterior + double close1=iClose(NULL,0,1), close2=iClose(NULL,0,2); + double bbSup0=arrSup[0], bbSup1=arrSup[1]; + double bbInf0=arrInf[0], bbInf1=arrInf[1]; + double bbMed0=arrMed[0]; + double atr =arrATR[0]; + + // Filtro de horario + MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); + int hhmm=dtBar.hour*100+dtBar.min; + if(hhmmHoraFim*100+MinFim) return; + + if(PositionSelect(Symbol())) return; + + // LONG: barra anterior fechou abaixo da banda inf; atual voltou para dentro + if(close2=bbInf0){ + double sl=close2-atr*MultATRStop; + double tp=bbMed0; + trade.Buy(LotePadrao,Symbol(),0,sl,tp); + } + // SHORT: barra anterior fechou acima da banda sup; atual voltou para dentro + else if(close2>bbSup1 && close1<=bbSup0){ + double sl=close2+atr*MultATRStop; + double tp=bbMed0; + trade.Sell(LotePadrao,Symbol(),0,sl,tp); + } +} diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 new file mode 100644 index 0000000..11cae91 --- /dev/null +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 @@ -0,0 +1,133 @@ +//+------------------------------------------------------------------+ +//| mar_REV_04_v1_ifr_afastamento_pct.mq5 | +//| Grupo: REVERSAO_MEDIA | +//| Versao: v1 | Timeframe: M15 / M30 | +//| Descricao: IFR extremo E preco afastado >X% da MME200. | +//| Entrada quando IFR sai da zona extrema. | +//| Stop: ATR x2.0. Alvo: 50% do afastamento da MME200. | +//+------------------------------------------------------------------+ +#property copyright "mar_REV_04_v1_ifr_afastamento_pct" +#property version "1.00" +#include + +//--- Gestao de Risco +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; +input int DiaSemanaReset = 1; + +//--- Estrategia +input int PeriodoIFR = 14; +input double IFRSobVend = 30.0; +input double IFRSobComp = 70.0; +input int PeriodoMME200 = 200; +input double AfastamentoPct = 1.5; // % minimo de afastamento da MME200 +input int PeriodoATR = 14; +input double MultATR = 2.0; +input int HoraIni = 9; +input int MinIni = 30; +input int HoraFim = 17; +input int MinFim = 0; +input double LotePadrao = 1.0; + +//--- Globals +CTrade trade; +int hIFR, hMME200, hATR; +double PerdaDia, PerdaSemana; +int StopsConsec, UltimoDia; + +//+------------------------------------------------------------------+ +int OnInit(){ + hIFR = iRSI(NULL,0,PeriodoIFR,PRICE_CLOSE); + hMME200= iMA(NULL,0,PeriodoMME200,0,MODE_EMA,PRICE_CLOSE); + hATR = iATR(NULL,0,PeriodoATR); + if(hIFR==INVALID_HANDLE || hMME200==INVALID_HANDLE || hATR==INVALID_HANDLE) + { Print("Erro ao criar handles."); return INIT_FAILED; } + UltimoDia=-1; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason){ + IndicatorRelease(hIFR); + IndicatorRelease(hMME200); + IndicatorRelease(hATR); +} + +double CalculaPerdaDia(){ + double perda=0; + MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); + datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); + HistorySelect(ini,TimeCurrent()); + for(int i=0;i= SaldoConta*RiscoDiaPct/100.0 || + PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || + StopsConsec >= MaxStopsConsecutivos){ + if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); + return; + } + } + + // Indicadores (barras 1=atual fechada, 2=anterior) + double arrIFR[2], arrMME200[1], arrATR[1]; + ArraySetAsSeries(arrIFR,true); CopyBuffer(hIFR, 0,1,2,arrIFR); + ArraySetAsSeries(arrMME200,true);CopyBuffer(hMME200,0,1,1,arrMME200); + ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); + + double ifr0=arrIFR[0], ifr1=arrIFR[1]; // ifr0=barra fechada, ifr1=anterior + double mme200=arrMME200[0], atr=arrATR[0]; + double fechar=iClose(NULL,0,1); + + double distPct=(mme200>0) ? MathAbs(fechar-mme200)/mme200*100.0 : 0; + + // Filtro de horario + MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); + int hhmm=dtBar.hour*100+dtBar.min; + if(hhmmHoraFim*100+MinFim) return; + + if(PositionSelect(Symbol())) return; + if(distPctIFRSobVend){ + double sl=fechar-atr*MultATR; + double tp=fechar+(fechar-mme200)*0.5; // 50% do afastamento + trade.Buy(LotePadrao,Symbol(),0,sl,tp); + } + // SHORT: acima da MME200 + IFR era sobrecomprado e caiu (sai da zona) + else if(fechar>mme200 && ifr1>=IFRSobComp && ifr0 + +//--- Gestao de Risco +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; +input int DiaSemanaReset = 1; + +//--- Estrategia +input int PeriodoMME = 21; +input int PeriodoATR = 14; +input double MultEnvelope = 2.0; // distancia envelope = MultEnvelope * ATR +input double MultStop = 1.5; +input double PctCorpoConf = 40.0; // % corpo minimo do candle de confirmacao +input int HoraIni = 9; +input int MinIni = 30; +input int HoraFim = 17; +input int MinFim = 0; +input double LotePadrao = 1.0; + +//--- Globals +CTrade trade; +int hMME, hATR; +double PerdaDia, PerdaSemana; +int StopsConsec, UltimoDia; + +//+------------------------------------------------------------------+ +int OnInit(){ + hMME = iMA(NULL,0,PeriodoMME,0,MODE_EMA,PRICE_CLOSE); + hATR = iATR(NULL,0,PeriodoATR); + if(hMME==INVALID_HANDLE || hATR==INVALID_HANDLE) + { Print("Erro ao criar handles."); return INIT_FAILED; } + UltimoDia=-1; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason){ + IndicatorRelease(hMME); + IndicatorRelease(hATR); +} + +double CalculaPerdaDia(){ + double perda=0; + MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); + datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); + HistorySelect(ini,TimeCurrent()); + for(int i=0;i= SaldoConta*RiscoDiaPct/100.0 || + PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || + StopsConsec >= MaxStopsConsecutivos){ + if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); + return; + } + } + + // Indicadores + double arrMME[1], arrATR[1]; + ArraySetAsSeries(arrMME,true); CopyBuffer(hMME,0,1,1,arrMME); + ArraySetAsSeries(arrATR,true); CopyBuffer(hATR,0,1,1,arrATR); + double mme21=arrMME[0], atr=arrATR[0]; + + double envSup=mme21+MultEnvelope*atr; + double envInf=mme21-MultEnvelope*atr; + + double open1 =iOpen(NULL,0,1); + double close1=iClose(NULL,0,1); + double high1 =iHigh(NULL,0,1); + double low1 =iLow(NULL,0,1); + double range =(high1-low1>0) ? high1-low1 : 1; + double corpo =MathAbs(close1-open1); + double pctCorpo=corpo/range*100.0; + + // Filtro de horario + MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); + int hhmm=dtBar.hour*100+dtBar.min; + if(hhmmHoraFim*100+MinFim) return; + + if(PositionSelect(Symbol())) return; + + // LONG: toca envelope inferior + candle altista de confirmacao + if(low1<=envInf && close1>open1 && pctCorpo>=PctCorpoConf){ + double sl=close1-atr*MultStop; + double tp=mme21; + trade.Buy(LotePadrao,Symbol(),0,sl,tp); + } + // SHORT: toca envelope superior + candle baixista de confirmacao + else if(high1>=envSup && close1=PctCorpoConf){ + double sl=close1+atr*MultStop; + double tp=mme21; + trade.Sell(LotePadrao,Symbol(),0,sl,tp); + } +} From 3f6b2be69eddeefd560d3245f5648e4b4948114b Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:16:15 -0300 Subject: [PATCH 48/63] Convencao: sem vX, timeframe no final; adiciona bloco risco MQL5 internacional --- .github/copilot-instructions.md | 52 +++++++++++++++------ WorkspaceRobosTrade/OrientacoesWorkspace.md | 19 ++++---- 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 661016f..50c38a7 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -47,12 +47,22 @@ WorkspaceRobosTrade/ → Orientações e documentação do workspace ## Regras para Geração de Código +### Convenção de Nomenclatura de Arquivos + +| Plataforma | Formato | Exemplo | +| -------------------- | --------------------------------------- | ----------------------------------------- | +| Profit (NTSL) | `mar_GRUPO_NN_descricao_timeframe.ntsl` | `mar_5M1_01_candle_forca_50pts_5min.ntsl` | +| MetaTrader (MQL5) | `mar_GRUPO_NN_descricao_timeframe.mq5` | `mar_5M1_01_candle_forca_50pts_5min.mq5` | +| Resultado backtest | `mar_GRUPO_NN_descricao_timeframe.csv` | `mar_REV_01_pullback_mme21_15min.csv` | +| Indicador/cor Profit | `mar_NomeDoEstudo.ntsl` | `mar_VWAPsemanalDiario.ntsl` | + +> **Regras:** sem número de versão (`vX`) no nome; timeframe **sempre no final**, antes da extensão; `.txt` é reservado exclusivamente para anotações livres. + ### Scripts NTSL (Neologica Profit) -- Extensão: **`.ntsl`** (nunca `.txt` nem `.ntsl.txt` — `.txt` é reservado para anotações) -- Nomenclatura robôs: `mar_GRUPO_NN_vX_descricao.ntsl` (ex: `mar_REV_01_v1_pullback_mme21.ntsl`) -- Nomenclatura indicadores/cores: `mar_NomeDoEstudo.ntsl` (ex: `mar_VWAPsemanalDiario.ntsl`) -- Sempre incluir comentário de cabeçalho com: versão, timeframe, descrição, taxa de acerto se disponível +- Extensão: **`.ntsl`** (nunca `.txt` nem `.ntsl.txt`) +- Nomenclatura: `mar_GRUPO_NN_descricao_timeframe.ntsl` +- Sempre incluir comentário de cabeçalho com: timeframe, descrição, taxa de acerto se disponível - Respeitar a sintaxe NTSL da plataforma Profit (variáveis, séries, funções nativas) - **OBRIGATÓRIO:** todos os parâmetros de risco declarados como `input` (ver bloco padrão na seção Gerenciamento de Risco) - Nunca usar `UsarGestaoRisco(true)` hardcoded — sempre `input UsarGestaoRisco = true` @@ -60,7 +70,7 @@ WorkspaceRobosTrade/ → Orientações e documentação do workspace ### Scripts MQL5 (MetaTrader 5) - Extensão: **`.mq5`** -- Nomenclatura: mesmo padrão do NTSL — `mar_GRUPO_NN_vX_descricao.mq5` +- Nomenclatura: `mar_GRUPO_NN_descricao_timeframe.mq5` - Estrutura obrigatória: `#include ` + inputs espelhando o NTSL + `OnInit`, `OnDeinit`, `OnTick` - Inputs de risco espelham o NTSL: `UsarGestaoRisco`, `UsarHardLock`, `SaldoConta`, `RiscoDiaPct`, `RiscoSemanaPct`, `MaxStopsConsecutivos`, `ValorPorPonto` - Salvar em `GRUPO/mql5/` ao lado da pasta `ntsl/` @@ -69,9 +79,8 @@ WorkspaceRobosTrade/ → Orientações e documentação do workspace - Usar Python 3.10 (`C:/Program Files/Python310/python.exe`) - Seguir estrutura de backtest existente na pasta `automacao_backtests/IFR_RSI/` -- Nomear resultados com timeframe **no final** antes da extensão: `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` - - Exemplo: `mar_REV_01_v1_pullback_mme21_15min.csv`, `mar_REV_01_v1_pullback_mme21_30min.csv` - - Timeframe ao final facilita ordenar e filtrar resultados no explorador de arquivos +- Nomear resultados: `mar_GRUPO_NN_descricao_timeframe.csv` — timeframe sempre no final + - Exemplo: `mar_REV_01_pullback_mme21_15min.csv`, `mar_5M1_01_candle_forca_50pts_5min.csv` ### Arquivos de Teoria (Markdown) @@ -102,9 +111,9 @@ Ao sugerir melhorias em estratégias, respeitar esta prioridade: ### Regra Obrigatória — Gestão Sempre Parametrizável -**TODOS os parâmetros de risco devem ser declarados como `input`**, nunca hardcoded no corpo do código. Isso permite alterá-los na tela de configuração do Profit sem editar o código-fonte. +**TODOS os parâmetros de risco devem ser declarados como `input`**, nunca hardcoded no corpo do código. -Bloco padrão obrigatório em todo robô NTSL: +#### Bloco padrão — NTSL (Neologica Profit): ```ntsl input UsarGestaoRisco = true; // false = backtest puro da lógica @@ -117,11 +126,28 @@ input ValorPorPonto = 0.2; // 1 contrato WIN mini = R$0,20/ponto input DiaSemanaReset = 2; // 2 = segunda-feira ``` +#### Bloco padrão — MQL5 (MetaTrader 5 / Internacional): + +```mql5 +// Gestão de Risco +input bool UsarGestaoRisco = true; // false = backtest puro +input bool UsarHardLock = true; // false = só bloqueia entradas +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; // % do saldo — perda máxima diária +input double RiscoSemanaPct = 3.0; // % do saldo — perda máxima semanal +input int MaxStopsConsecutivos = 2; // stops consecutivos antes de bloquear +input double ValorPorPonto = 0.20; // varia por ativo (WIN=0.20, XAUUSD=1.0 etc.) +input int DiaSemanaReset = 1; // 0=Dom 1=Seg 2=Ter ... (MT5 usa 0-based) +input double LotePadrao = 1.0; +``` + +> **MT5 vs NTSL:** `DiaSemanaReset` usa base 0 no MQL5 (segunda = 1) versus base 1 no NTSL (segunda = 2). `ValorPorPonto` deve ser ajustado por ativo. + Regras de uso: -- `UsarGestaoRisco = false` → desativa todos os limites (uso em backtest para testar a lógica pura) -- `UsarHardLock = false` → monitora os limites mas não força fechamento (apenas bloqueia novas entradas) -- `UsarHardLock = true` → fecha posição aberta imediatamente ao atingir o limite (uso operacional) +- `UsarGestaoRisco = false` → desativa todos os limites (backtest de lógica pura) +- `UsarHardLock = false` → monitora limites mas não força fechamento (só bloqueia novas entradas) +- `UsarHardLock = true` → fecha posição imediatamente ao atingir o limite (uso operacional) - O bloco de verificação dos limites deve ser executado **antes de qualquer sinal de entrada** --- diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md index 306d9b5..51b9638 100644 --- a/WorkspaceRobosTrade/OrientacoesWorkspace.md +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -19,7 +19,7 @@ RepoRobos/ │ ├── GRUPO_X/ # Um grupo por lógica de estratégia │ │ ├── ntsl/ # Robôs Neologica Profit (.ntsl) │ │ ├── mql5/ # Robôs MetaTrader 5 (.mq5) -│ │ ├── resultsBackTestTimeframe/ # mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv +│ │ ├── resultsBackTestTimeframe/ # mar_GRUPO_NN_descricao_timeframe.csv │ │ ├── reprovados/ # Versões descartadas │ │ └── GRUPO.md # Documentação do grupo │ ├── IFR_RSI/ # Scripts IFR legados + resultados @@ -158,25 +158,28 @@ main | Tipo | Formato | Exemplo | |---|---|---| -| Robô NTSL | `mar_GRUPO_NN_vX_descricao.ntsl` | `mar_REV_01_v1_pullback_mme21.ntsl` | -| Robô MQL5 | `mar_GRUPO_NN_vX_descricao.mq5` | `mar_REV_01_v1_pullback_mme21.mq5` | -| Resultado CSV | `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` | `mar_REV_01_v1_pullback_mme21_15min.csv` | +| Robô NTSL | `mar_GRUPO_NN_descricao_timeframe.ntsl` | `mar_5M1_01_candle_forca_50pts_5min.ntsl` | +| Robô MQL5 | `mar_GRUPO_NN_descricao_timeframe.mq5` | `mar_5M1_01_candle_forca_50pts_5min.mq5` | +| Resultado CSV | `mar_GRUPO_NN_descricao_timeframe.csv` | `mar_REV_01_pullback_mme21_15min.csv` | | Indicador/cor Profit | `mar_NomeDoEstudo.ntsl` | `mar_VWAPsemanalDiario.ntsl` | | Arquivo teórico | `teoria_TEMA.md` | `teoria_IFR.md` | | Características ativo | `caracteristicas_ATIVO.md` | `caracteristicas_WIN_mini_indice.md` | -> **Regra de ouro:** Timeframe **sempre no final** do nome do CSV (antes do `.csv`), facilitando ordenação e filtragem no explorador. Ex: `_15min`, `_30min`, `_60min`, `_1min`. +> **Regras obrigatórias:** +> - Sem número de versão (`vX`) no nome do arquivo +> - Timeframe **sempre no final**, antes da extensão: `_1min`, `_5min`, `_15min`, `_30min`, `_60min` +> - `.txt` reservado exclusivamente para anotações livres --- ## 8. Convenções para o Agente (GitHub Copilot) - Linguagem dos arquivos: **português brasileiro** -- Robôs NTSL: extensão `.ntsl` — nunca `.txt` nem `.ntsl.txt` -- Robôs MQL5: extensão `.mq5`, salvos em `GRUPO/mql5/` espelhando o NTSL +- Robôs NTSL: `mar_GRUPO_NN_descricao_timeframe.ntsl` — nunca `.txt`; sem `vX` no nome +- Robôs MQL5: `mar_GRUPO_NN_descricao_timeframe.mq5`, salvos em `GRUPO/mql5/` - Arquivos `.txt`: reservados exclusivamente para anotações e documentação livre - Scripts de backtest: **Python** -- Resultados de backtest: `mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv` (timeframe sempre no final) +- Resultados CSV: `mar_GRUPO_NN_descricao_timeframe.csv` — sem `vX`, timeframe no final - Quando sugerir código NTSL, respeitar a sintaxe da plataforma Profit - Ao editar teorias, manter a estrutura de heading `#` e tabelas Markdown existentes - Registros de sessão/diário: usar `estudo_teorias/0326_diarioDeBordo.md` From dcf5e6c9d376e5b4c01380bcb56f27c335ee982c Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:29:02 -0300 Subject: [PATCH 49/63] Docs: corrige convencao em todos os mds (ntsl, sem vX, timeframe no final) - .ntsl.txt .ntsl em todos os arquivos de documentacao - codigo_fonte/ ntsl/ em todos os grupos e LABORATORIO_INDICADORES - Estrutura de pastas atualizada: ntsl/, mql5/, resultsBackTestTimeframe/, reprovados/ - README.md e MAPA_GRUPOS.md: tabelas de grupos e convencoes atualizadas - Catalogo CANDLE1: nomenclatura corrigida (timeframe no final) - IFR_RSI legado/README.md: caminho atualizado para ../ntsl/ - OrientacoesWorkspace.md: referencias atualizadas --- README.md | 92 +++++--- WorkspaceRobosTrade/OrientacoesWorkspace.md | 2 +- automacao_backtests/BREAKOUT/breakout.md | 6 +- .../catalogo_50_robos_primeiro_candle.md | 2 +- .../HORARIO_ESPECIFICO/horario_especifico.md | 6 +- automacao_backtests/IFR_RSI/legado/README.md | 2 +- .../README_convencao.md | 7 +- .../LABORATORIO_INDICADORES/README.md | 24 +- automacao_backtests/MAPA_GRUPOS.md | 213 ++++++++---------- .../REVERSAO_MEDIA/reversao_media.md | 6 +- automacao_backtests/SCALPING/scalping.md | 6 +- .../TENDENCIA_SEGUIR/tendencia_seguir.md | 6 +- .../VWAP_INSTITUCIONAL/vwap_institucional.md | 8 +- plataformas/profit/Profit_Guia_Completo.md | 8 +- 14 files changed, 202 insertions(+), 186 deletions(-) diff --git a/README.md b/README.md index ef88dc4..089f89c 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Biblioteca de robôs de day trade quantitativo, base de conhecimento técnico e laboratório de backtesting para o minicontrato de índice WIN na B3 e ativos internacionais no MetaTrader 5. O projeto organiza estratégias em **grupos por filosofia operacional**, cada grupo com: -- Código-fonte Profit (`.ntsl.txt`) — para importar diretamente no Profit +- Código-fonte Profit (`.ntsl`) — para importar diretamente no Profit - Código-fonte MT5 (`.mq5`) — para testar no Strategy Tester do MetaTrader - Documentação com critérios de aprovação e parâmetros de risco @@ -29,30 +29,26 @@ O projeto organiza estratégias em **grupos por filosofia operacional**, cada gr ## Grupos de Estratégias -### Em desenvolvimento ativo - -| Grupo | Pasta | Robôs NTSL | Robôs MQL5 | Status | -|-------|-------|-----------|-----------|--------| -| Primeiro Candle | `automacao_backtests/CANDLE1/` | 33 | — | ✅ Completo | -| IFR/RSI | `automacao_backtests/IFR_RSI/` | 3 novos + 10 legado | — | 🔄 Em progresso | -| Médias | `automacao_backtests/MEDIAS/` | — | — | ⬜ Pendente | -| Stop Tolerante | `automacao_backtests/STOPTOLERANTE/` | 4 | — | ✅ Completo | -| Poucos Pontos Vencedores | `automacao_backtests/POUCOSPONTOSVENCEDORES/` | 4 | — | 🔄 Faltam 05–08 | -| Drawdown Zero | `automacao_backtests/DRAWDOWNZERO/` | — | — | ⬜ Pendente | -| 50Mais1 | `automacao_backtests/50mais1/` | — | — | ⬜ Pendente | -| Dupla Confirmação | `automacao_backtests/DUPLACONFIRMAÇÃO/` | — | — | ⬜ Pendente | - -### Estrutura completa — pastas criadas, robôs pendentes - -| Grupo | Conceito central | -|-------|-----------------| -| `SCALPING/` | Capturar 10–30 pts, alta frequência, 1–2min | -| `BREAKOUT/` | Rompimento de range/nível com volume confirmado | -| `VWAP_INSTITUCIONAL/` | Operações referenciadas no fluxo institucional | -| `TENDENCIA_SEGUIR/` | Trend following puro — trailing ATR, sem alvo fixo | -| `REVERSAO_MEDIA/` | Bollinger/VWAP extremo → retorno à média | -| `HORARIO_ESPECIFICO/` | Janelas estatísticas do WIN + sessões MT5 | -| `LABORATORIO_INDICADORES/` | Teste isolado: ADX, Estocástico, Bollinger, OBV e combos | +| Grupo | Pasta | NTSL | MQL5 | Status | +|-------|-------|------|------|--------| +| Primeiro Candle | `CANDLE1/` | 33 | — | ✅ Completo | +| IFR/RSI | `IFR_RSI/` | 10+ legado | — | 📦 Referência | +| Médias | `MEDIAS/` | 6 | — | ✅ Completo | +| Stop Tolerante | `STOPTOLERANTE/` | 5 | — | ✅ Completo | +| Poucos Pontos Vencedores | `POUCOSPONTOSVENCEDORES/` | 5 | — | ✅ Completo | +| Drawdown Zero | `DRAWDOWNZERO/` | 5 | — | ✅ Completo | +| 50Mais1 | `50mais1/` | 5 | — | ✅ Completo | +| Dupla Confirmação | `DUPLACONFIRMAÇÃO/` | 5 | — | ✅ Completo | +| Scalping | `SCALPING/` | 5 | — | ✅ Completo | +| Breakout | `BREAKOUT/` | 5 | — | ✅ Completo | +| VWAP Institucional | `VWAP_INSTITUCIONAL/` | 5 | — | ✅ Completo | +| Tendência Seguir | `TENDENCIA_SEGUIR/` | 5 | — | ✅ Completo | +| Reversão Média | `REVERSAO_MEDIA/` | 5 | 5 | ✅ Completo | +| Horário Específico | `HORARIO_ESPECIFICO/` | 5 | — | ✅ Completo | +| Laboratório Indicadores | `LABORATORIO_INDICADORES/` | 5 | — | ✅ Completo | +| Lateralização DayTrade | `LATERALIZACAO_DAYTRADE/` | 5 | — | ✅ Completo | +| Lateralização SwingTrade | `LATERALIZACAO_SWINGTRADE/` | 5 | — | ✅ Completo | +| timeframeMenor | `timeframeMenor/` | 5 | — | ✅ Completo | --- @@ -60,25 +56,31 @@ O projeto organiza estratégias em **grupos por filosofia operacional**, cada gr | Extensão | Plataforma | Uso | |----------|-----------|-----| -| `.ntsl.txt` | **Neologica Profit** | Importar em Estratégias no Profit | +| `.ntsl` | **Neologica Profit** | Importar em Estratégias no Profit | | `.mq5` | **MetaTrader 5** | Compilar e testar no Strategy Tester | | `.md` | Documentação | Referência e teoria | | `.csv` | Resultados | Saída dos backtests em Python | +| `.txt` | Anotações | Exclusivamente texto livre / rascunhos | ### Nomenclatura dos arquivos ``` -Profit: mar_GRUPO_NN_vX_descricao.ntsl.txt -MetaTrader: mar_GRUPO_NN_descricao.mq5 +Profit: mar_GRUPO_NN_descricao_timeframe.ntsl +MetaTrader: mar_GRUPO_NN_descricao_timeframe.mq5 +Resultados: mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regras:** sem número de versão (`vX`) no nome; timeframe sempre no final antes da extensão. + --- -## Gestão de Risco — Padrão Obrigatório (Profit) +## Gestão de Risco — Padrão Obrigatório + +Todo robô deve ter **gestão de risco 100% parametrizável via `input`**, nunca hardcoded. -Todo robô NTSL deve ter **gestão de risco 100% parametrizável via `input`**: +#### Profit (NTSL) -```pascal +```ntsl input UsarGestaoRisco = true; // false = backtest puro da lógica input UsarHardLock = true; // false = monitora mas não fecha input SaldoConta = 10000.0; @@ -86,7 +88,21 @@ input RiscoDiaPct = 1.5; // R$150/dia input RiscoSemanaPct = 3.0; // R$300/semana input MaxStopsConsecutivos = 2; input ValorPorPonto = 0.2; // 1 contrato WIN mini -input DiaSemanaReset = 2; // segunda-feira +input DiaSemanaReset = 2; // 2 = segunda-feira +``` + +#### MetaTrader 5 (MQL5 / Internacional) + +```mql5 +input bool UsarGestaoRisco = true; // false = backtest puro +input bool UsarHardLock = true; // false = só bloqueia entradas +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; // % do saldo — perda máxima diária +input double RiscoSemanaPct = 3.0; // % do saldo — perda máxima semanal +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; // varia por ativo (WIN=0.20, XAUUSD=1.0) +input int DiaSemanaReset = 1; // 0=Dom 1=Seg 2=Ter ... (MT5: 0-based) +input double LotePadrao = 1.0; ``` --- @@ -108,11 +124,17 @@ input DiaSemanaReset = 2; // segunda-feira ## Estrutura do Workspace ``` -automacao_backtests/ → grupos de robôs e laboratório +automacao_backtests/ +├── GRUPO_X/ +│ ├── ntsl/ → robôs Profit (.ntsl) +│ ├── mql5/ → robôs MetaTrader (.mq5) +│ ├── resultsBackTestTimeframe/ → resultados CSV por timeframe +│ ├── reprovados/ → versões descartadas +│ └── GRUPO.md → documentação do grupo +├── IFR_RSI/ → scripts IFR legados +└── MAPA_GRUPOS.md → índice de todos os grupos estudo_teorias/ → base de conhecimento técnico (Markdown) profit_estudos_cores/ → indicadores visuais para o gráfico Profit - ├── fev2026/ → estudos/cores do ciclo fev/2026 - └── marco2026_IFR_top5/ → top 5 robôs IFR ativos mar/2026 plataformas/ ├── profit/ → guia completo Profit └── mql5/ → guia MT5 + EAs de exemplo diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md index 51b9638..aedd3be 100644 --- a/WorkspaceRobosTrade/OrientacoesWorkspace.md +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -74,7 +74,7 @@ Scripts de backtest e catálogos de estratégias IFR. - `IFR_RSI/robos_IFR.txt` — índice de todas as versões testadas - `IFR_RSI/catalogo_50_opcoes_IFR.txt` — 50 variações catalogadas para priorização -- `IFR_RSI/codigo_fonte/` — scripts NTSL `.txt` das versões de robô +- `IFR_RSI/ntsl/` — scripts Profit `.ntsl` das versões de robô - `IFR_RSI/top10/` — os 10 melhores robôs IFR por desempenho - `IFR_RSI/resultadosAprovadosPorTimeframe/` — CSVs de resultados por timeframe - `IFR_RSI/Reprovados/` — versões descartadas diff --git a/automacao_backtests/BREAKOUT/breakout.md b/automacao_backtests/BREAKOUT/breakout.md index b77356b..cd4f01d 100644 --- a/automacao_backtests/BREAKOUT/breakout.md +++ b/automacao_backtests/BREAKOUT/breakout.md @@ -56,6 +56,8 @@ BK_04 — MT5: Breakout diário XAUUSD / US30 (MQL5 .mq5) ``` BREAKOUT/ ├── breakout.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md b/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md index 3229f75..5026b2b 100644 --- a/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md +++ b/automacao_backtests/CANDLE1/catalogo_50_robos_primeiro_candle.md @@ -7,7 +7,7 @@ Objetivo - Estrutura: contexto -> filtro -> gatilho -> entrada -> saída padrao. - Este catalogo prioriza a fase de conceituação antes da implementação NTSL. -Prefixo de nomenclatura dos scripts: mar_PC_NN_descricao.ntsl.txt +Prefixo de nomenclatura dos scripts: mar_PC_NN_descricao_timeframe.ntsl Timeframe padrão de referência: 15min ou 30min (primeiro candle = barra 1 do dia). ================================================================================ diff --git a/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md b/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md index 01e3859..e4df5d1 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md +++ b/automacao_backtests/HORARIO_ESPECIFICO/horario_especifico.md @@ -58,6 +58,8 @@ HE_04 — MT5: London Session / NY Overlap (9h–12h UTC) (MQL5 .mq5) ``` HORARIO_ESPECIFICO/ ├── horario_especifico.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/automacao_backtests/IFR_RSI/legado/README.md b/automacao_backtests/IFR_RSI/legado/README.md index 64cde70..242c98c 100644 --- a/automacao_backtests/IFR_RSI/legado/README.md +++ b/automacao_backtests/IFR_RSI/legado/README.md @@ -12,7 +12,7 @@ Esta pasta contém os robôs da **geração anterior** (nomenclatura `robo_ifr_v > **NÃO usar estes arquivos diretamente no Profit.** > Todos carecem do bloco de gestão de risco via `input` obrigatório. -> Use os arquivos em `../codigo_fonte/mar_IFR_*.ntsl.txt`. +> Use os arquivos em `../ntsl/mar_IFR_*.ntsl`. ## Mapeamento legado → novo diff --git a/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md index 985a68d..1dd09c0 100644 --- a/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md @@ -61,12 +61,11 @@ Timeframe,TaxaAcerto,TotalTrades,FinanceiroBruto,FinanceiroLiq,MaxDrawdown,Fator ## Robô correspondente -O arquivo `.ntsl.txt` do robô fica em `../ntsl/` com o **mesmo nome base** (sem o prefixo do timeframe): +O arquivo `.ntsl` do robô fica em `../ntsl/` com o **mesmo nome base** (sem o prefixo do timeframe): ``` -../ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl.txt +../ntsl/mar_IFR_04_bandas_dinamicas_60min.ntsl ↓ resultados gerados ↓ -1min_mar_IFR_04_v1_bandas_dinamicas.csv -60min_mar_IFR_04_v1_bandas_dinamicas.csv +mar_IFR_04_bandas_dinamicas_60min.csv ... ``` diff --git a/automacao_backtests/LABORATORIO_INDICADORES/README.md b/automacao_backtests/LABORATORIO_INDICADORES/README.md index d6c1846..e1c9e19 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/README.md +++ b/automacao_backtests/LABORATORIO_INDICADORES/README.md @@ -57,40 +57,40 @@ LABORATORIO_INDICADORES/ ├── README.md ← este arquivo │ ├── ADX/ -│ ├── codigo_fonte/ ← robôs Profit isolando só o ADX (.ntsl.txt) +│ ├── ntsl/ ← robôs Profit isolando só o ADX (.ntsl) │ └── mql5/ ← versão MT5 (.mq5) │ ├── ESTOCASTICO/ -│ ├── codigo_fonte/ +│ ├── ntsl/ │ └── mql5/ │ ├── BOLLINGER/ -│ ├── codigo_fonte/ +│ ├── ntsl/ │ └── mql5/ │ ├── OBV/ -│ ├── codigo_fonte/ +│ ├── ntsl/ │ └── mql5/ │ ├── COMBOS/ │ ├── IFR_ADX/ -│ │ └── codigo_fonte/ +│ │ └── ntsl/ │ ├── BOLLINGER_IFR/ -│ │ └── codigo_fonte/ +│ │ └── ntsl/ │ ├── VWAP_VOLUME/ -│ │ └── codigo_fonte/ +│ │ └── ntsl/ │ └── ATR_MME200/ -│ └── codigo_fonte/ +│ └── ntsl/ │ └── AVANCADOS/ ├── PARABOLIC_SAR/ - │ └── codigo_fonte/ + │ └── ntsl/ ├── MACD/ - │ └── codigo_fonte/ + │ └── ntsl/ ├── KELTNER/ - │ └── codigo_fonte/ + │ └── ntsl/ └── WILLIAMS_R/ - └── codigo_fonte/ + └── ntsl/ ``` --- diff --git a/automacao_backtests/MAPA_GRUPOS.md b/automacao_backtests/MAPA_GRUPOS.md index 4e21959..992df65 100644 --- a/automacao_backtests/MAPA_GRUPOS.md +++ b/automacao_backtests/MAPA_GRUPOS.md @@ -8,45 +8,49 @@ ## Convenção de Arquivos -| Extensão | Plataforma | Mercado | -|----------|-----------|---------| -| `.ntsl.txt` | **Neologica Profit** | B3 — WIN (minicontrato de índice) | +| Extensão | Plataforma | Uso | +|----------|-----------|-----| +| `.ntsl` | **Neologica Profit** | B3 — WIN (minicontrato de índice) | | `.mq5` | **MetaTrader 5** | Internacional — XAUUSD, NAS100, US30, EURUSD | +| `.csv` | Resultados | Saída dos backtests com timeframe no final | +| `.txt` | Anotações | Exclusivamente texto livre / rascunhos | + +**Nomenclatura:** `mar_GRUPO_NN_descricao_timeframe.ntsl` (sem número de versão `vX`) Cada grupo possui: ``` GRUPO/ -├── grupo.md → Documentação, filosofia, critérios -├── codigo_fonte/ → Robôs Profit (.ntsl.txt) -└── mql5/ → Robôs MetaTrader (.mq5) +├── GRUPO.md → Documentação, filosofia, critérios +├── ntsl/ → Robôs Profit (.ntsl) +├── mql5/ → Robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ → Resultados CSV por timeframe +└── reprovados/ → Versões descartadas ``` --- -## Grupos Ativos (13 no total) - -### Grupos Já Desenvolvidos - -| Grupo | Pasta | Robôs NTSL | Robôs MQL5 | Status | -|-------|-------|------------|------------|--------| -| Primeiro Candle | `CANDLE1/` | 33 (PC_01–PC_33) | — | ✅ Completo | -| IFR/RSI | `IFR_RSI/` | 3 novos (`mar_IFR_*`) + 10 legado em `legado/` | — | 🔄 Em progresso | -| Médias | `MEDIAS/` | 0 / 18 planejados | — | ⬜ Pendente | -| Stop Tolerante | `STOPTOLERANTE/` | 4 (ST_01–ST_04) | — | ✅ Completo | -| Poucos Pontos Vencedores | `POUCOSPONTOSVENCEDORES/` | 4 (PPV_01–PPV_04) | — | 🔄 Faltam 05–08 | -| Drawdown Zero | `DRAWDOWNZERO/` | 0 / 4 planejados | — | ⬜ Pendente | -| 50Mais1 | `50mais1/` | 0 / 4 planejados | — | ⬜ Pendente | - -### Grupos Obrigatórios — Pasta Criada, Robôs Pendentes - -| Grupo | Pasta | Conceito Central | Prioridade | -|-------|-------|-----------------|------------| -| Scalping | `SCALPING/` | Capturar 10–30 pts, alta frequência, 1–2min | Alta | -| Breakout | `BREAKOUT/` | Rompimento de range/nível com volume | Alta | -| VWAP Institucional | `VWAP_INSTITUCIONAL/` | Operar com referência do fluxo institucional | Alta | -| Tendência Seguir | `TENDENCIA_SEGUIR/` | Trend following puro — sem alvo, trailing ATR | Média | -| Reversão à Média | `REVERSAO_MEDIA/` | Bollinger/VWAP extremo → retorno à média | Média | -| Horário Específico | `HORARIO_ESPECIFICO/` | Janelas estatísticas do WIN + sessões MT5 | Alta | +### Grupos Ativos (18 no total) + +| Grupo | Pasta | NTSL | MQL5 | Status | +|-------|-------|------|------|--------| +| Primeiro Candle | `CANDLE1/` | 33 | — | ✅ Completo | +| IFR/RSI | `IFR_RSI/` | 10+ legado | — | 📦 Referência | +| Médias | `MEDIAS/` | 6 | — | ✅ Completo | +| Stop Tolerante | `STOPTOLERANTE/` | 5 | — | ✅ Completo | +| Poucos Pontos Vencedores | `POUCOSPONTOSVENCEDORES/` | 5 | — | ✅ Completo | +| Drawdown Zero | `DRAWDOWNZERO/` | 5 | — | ✅ Completo | +| 50Mais1 | `50mais1/` | 5 | — | ✅ Completo | +| Dupla Confirmação | `DUPLACONFIRMAÇÃO/` | 5 | — | ✅ Completo | +| Scalping | `SCALPING/` | 5 | — | ✅ Completo | +| Breakout | `BREAKOUT/` | 5 | — | ✅ Completo | +| VWAP Institucional | `VWAP_INSTITUCIONAL/` | 5 | — | ✅ Completo | +| Tendência Seguir | `TENDENCIA_SEGUIR/` | 5 | — | ✅ Completo | +| Reversão Média | `REVERSAO_MEDIA/` | 5 | 5 | ✅ Completo | +| Horário Específico | `HORARIO_ESPECIFICO/` | 5 | — | ✅ Completo | +| Laboratório Indicadores | `LABORATORIO_INDICADORES/` | 5 | — | ✅ Completo | +| Lateralização DayTrade | `LATERALIZACAO_DAYTRADE/` | 5 | — | ✅ Completo | +| Lateralização SwingTrade | `LATERALIZACAO_SWINGTRADE/` | 5 | — | ✅ Completo | +| timeframeMenor | `timeframeMenor/` | 5 | — | ✅ Completo | --- @@ -69,95 +73,69 @@ HORARIO_ESPECIFICO → Horário define liquidez, slippage e probabilidade automacao_backtests/ │ ├── CANDLE1/ -│ ├── codigo_fonte/ → 33 robôs (mar_PC_01 a mar_PC_33) ✅ -│ └── mql5/ → (pendente) +│ ├── ntsl/ → 33 robôs (mar_PC_01 a mar_PC_33) ✅ +│ └── mql5/ → (pendente) │ ├── IFR_RSI/ -│ ├── codigo_fonte/ → 3 robôs novos (mar_IFR_01-03) 🔄 -│ ├── legado/ → 10 robôs antigos (robo_ifr_v*) — só referência -│ ├── top10/ → top 10 histórico (referência) -│ └── mql5/ → (pendente) +│ ├── legado/ → robôs antigos (robo_ifr_v*) — só referência +│ └── mql5/ → (pendente) │ ├── MEDIAS/ -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) +│ └── ntsl/ → 6 robôs ✅ │ ├── POUCOSPONTOSVENCEDORES/ -│ ├── codigo_fonte/ → 4 robôs (mar_PPV_01-04) 🔄 -│ └── mql5/ → (pendente) +│ └── ntsl/ → 5 robôs ✅ │ ├── STOPTOLERANTE/ -│ ├── codigo_fonte/ → 4 robôs (mar_ST_01-04) ✅ -│ └── mql5/ → (pendente) +│ └── ntsl/ → 5 robôs ✅ │ ├── DRAWDOWNZERO/ -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) +│ └── ntsl/ → 5 robôs ✅ │ ├── 50mais1/ -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -├── SCALPING/ ← NOVO -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -├── BREAKOUT/ ← NOVO -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -├── VWAP_INSTITUCIONAL/ ← NOVO -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -├── TENDENCIA_SEGUIR/ ← NOVO -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -├── REVERSAO_MEDIA/ ← NOVO -│ ├── codigo_fonte/ → (pendente) -│ └── mql5/ → (pendente) -│ -└── HORARIO_ESPECIFICO/ ← NOVO - ├── codigo_fonte/ → (pendente) - └── mql5/ → (pendente) - -LABORATORIO_INDICADORES/ ← NOVO -├── ADX/ -├── ESTOCASTICO/ -├── BOLLINGER/ -├── OBV/ -├── COMBOS/ -│ ├── IFR_ADX/ -│ ├── BOLLINGER_IFR/ -│ ├── VWAP_VOLUME/ -│ └── ATR_MME200/ -└── AVANCADOS/ - ├── PARABOLIC_SAR/ - ├── MACD/ - ├── KELTNER/ - └── WILLIAMS_R/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── DUPLACONFIRMAÇÃO/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── SCALPING/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── BREAKOUT/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── VWAP_INSTITUCIONAL/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── TENDENCIA_SEGUIR/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── REVERSAO_MEDIA/ +│ ├── ntsl/ → 5 robôs ✅ +│ └── mql5/ → 5 robôs ✅ +│ +├── HORARIO_ESPECIFICO/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── LABORATORIO_INDICADORES/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── LATERALIZACAO_DAYTRADE/ +│ └── ntsl/ → 5 robôs ✅ +│ +├── LATERALIZACAO_SWINGTRADE/ +│ └── ntsl/ → 5 robôs ✅ +│ +└── timeframeMenor/ + └── ntsl/ → 5 robôs ✅ ``` --- -## Backlog de Robôs Pendentes (ordenado por prioridade) - -### Imediato -- [ ] PPV_05 a PPV_08 (`POUCOSPONTOSVENCEDORES`) -- [ ] IFR_04 a IFR_14 (`IFR_RSI`) -- [ ] DZ_01 a DZ_04 (`DRAWDOWNZERO`) -- [ ] WR_01 a WR_04 (`50mais1`) +## Backlog de Robôs Pendentes (MQL5) -### Próximo Ciclo -- [ ] MEDIAS_01 a MEDIAS_18 -- [ ] SC_01 a SC_04 (`SCALPING`) -- [ ] BK_01 a BK_04 (`BREAKOUT`) -- [ ] VI_01 a VI_04 (`VWAP_INSTITUCIONAL`) -- [ ] TS_01 a TS_04 (`TENDENCIA_SEGUIR`) -- [ ] RM_01 a RM_04 (`REVERSAO_MEDIA`) -- [ ] HE_01 a HE_04 (`HORARIO_ESPECIFICO`) -- [ ] Versões MQL5 dos principais grupos +- [ ] MQL5 para todos os grupos (prioridade: grupos com mais de 60% de acerto validado) +- [ ] Backtest CSV por timeframe para todos os grupos aprovados --- @@ -195,20 +173,25 @@ Laboratório → backtest isolado → aprovado (+3pp acerto, drawdown ok) → in ```ntsl // Profit (NTSL) -UsarGestaoRisco = true -UsarHardLock = true -SaldoConta = 10000.0 // R$10.000 -RiscoDiaPct = 1.5 // R$150/dia -RiscoSemanaPct = 3.0 // R$300/semana -MaxStopsConsecutivos = 2 // (1 para DRAWDOWNZERO) -ValorPorPonto = 0.2 // 1 contrato WIN mini -DiaSemanaReset = 2 // segunda-feira +input UsarGestaoRisco = true; // false = backtest puro +input UsarHardLock = true; // false = só bloqueia entradas +input SaldoConta = 10000.0; +input RiscoDiaPct = 1.5; // R$150/dia +input RiscoSemanaPct = 3.0; // R$300/semana +input MaxStopsConsecutivos = 2; +input ValorPorPonto = 0.2; // 1 contrato WIN mini +input DiaSemanaReset = 2; // 2 = segunda-feira ``` ```mql5 -// MetaTrader 5 (MQL5) -VolumeLote = 0.01 // USD$5.000 demo Tickmill -RiscoPorOpPct = 1.5 -MaxStopsConsec = 2 -MagicNumber = 2026XX // último 2 dígitos = número do robô +// MetaTrader 5 (MQL5 / Internacional) +input bool UsarGestaoRisco = true; +input bool UsarHardLock = true; +input double SaldoConta = 10000.0; +input double RiscoDiaPct = 1.5; +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; +input double ValorPorPonto = 0.20; // WIN=0.20, XAUUSD=1.0 etc. +input int DiaSemanaReset = 1; // 0=Dom 1=Seg (MT5: 0-based) +input double LotePadrao = 1.0; ``` diff --git a/automacao_backtests/REVERSAO_MEDIA/reversao_media.md b/automacao_backtests/REVERSAO_MEDIA/reversao_media.md index 2e3e320..53e5575 100644 --- a/automacao_backtests/REVERSAO_MEDIA/reversao_media.md +++ b/automacao_backtests/REVERSAO_MEDIA/reversao_media.md @@ -55,6 +55,8 @@ RM_04 — MT5: Mean reversion EURUSD (mercado mais controlado) (MQL5 .mq5) ``` REVERSAO_MEDIA/ ├── reversao_media.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/automacao_backtests/SCALPING/scalping.md b/automacao_backtests/SCALPING/scalping.md index 58fd705..95c94a2 100644 --- a/automacao_backtests/SCALPING/scalping.md +++ b/automacao_backtests/SCALPING/scalping.md @@ -50,6 +50,8 @@ SC_04 — MT5: IFR(3) scalp XAUUSD / NAS100 (MQL5 .mq5) ``` SCALPING/ ├── scalping.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md b/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md index 5c5a7b6..7fba355 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md +++ b/automacao_backtests/TENDENCIA_SEGUIR/tendencia_seguir.md @@ -56,6 +56,8 @@ TS_04 — MT5: Trend following NAS100 / US30 (tendências longas) (MQL5 .mq5) ``` TENDENCIA_SEGUIR/ ├── tendencia_seguir.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md b/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md index 8855125..5b35154 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md +++ b/automacao_backtests/VWAP_INSTITUCIONAL/vwap_institucional.md @@ -52,7 +52,9 @@ VI_04 — MT5: VWAP setup EURUSD / NAS100 (MQL5 .mq5) ## Estrutura de Pastas ``` VWAP_INSTITUCIONAL/ -├── vwap_institucional.md ← este arquivo -├── codigo_fonte/ ← robôs Profit (.ntsl.txt) -└── mql5/ ← robôs MetaTrader (.mq5) +├── vwap_institucional.md ← este arquivo +├── ntsl/ ← robôs Profit (.ntsl) +├── mql5/ ← robôs MetaTrader (.mq5) +├── resultsBackTestTimeframe/ ← CSVs de resultado +└── reprovados/ ← versões descartadas ``` diff --git a/plataformas/profit/Profit_Guia_Completo.md b/plataformas/profit/Profit_Guia_Completo.md index 9b206b7..4a7fd54 100644 --- a/plataformas/profit/Profit_Guia_Completo.md +++ b/plataformas/profit/Profit_Guia_Completo.md @@ -73,12 +73,12 @@ - Menu **"Ferramentas → Editor de Estratégias"** ou `F12` - Clique em **"Novo"** → selecione **"Robô de Execução"** -### 4.2 Importar código dos robôs PC_XX -1. Abra o arquivo `.ntsl.txt` da pasta `automacao_backtests/CANDLE1/codigo_fonte/` +### 4.2 Importar código dos robôs +1. Abra o arquivo `.ntsl` da pasta `automacao_backtests/GRUPO/ntsl/` 2. **Ctrl+A** → **Ctrl+C** para copiar todo o código 3. No editor do Profit, cole com **Ctrl+V** 4. Clique em **"Compilar"** (`F7`) -5. Se sem erros: clique em **"Salvar"** com o nome do robô (ex: `mar_PC_01`) +5. Se sem erros: clique em **"Salvar"** com o nome do robô (ex: `mar_PC_01_candle_gap_vwap_5min`) ### 4.3 Erros comuns de compilação NTSL | Erro | Causa | Solução | @@ -136,7 +136,7 @@ Horário: 09:00 - 17:45 (evitar leilão) ### 6.2 Exportar resultados 1. Na aba **"Operações"**, clique em **"Exportar"** → CSV -2. Salvar em: `automacao_backtests/CANDLE1/resultados/mar_PC_XX_resultado.csv` +2. Salvar em: `automacao_backtests/GRUPO/resultsBackTestTimeframe/mar_GRUPO_NN_descricao_timeframe.csv` 3. Para análise em Python: use o script em `automacao_backtests/` ### 6.3 Curva de capital saudável From a3276ce0800821b164163aadb756e09b821f7c47 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:30:25 -0300 Subject: [PATCH 50/63] Docs: corrige convencao CSV em README_convencao.md (timeframe no final, sem vX) --- .../README_convencao.md | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md index 1dd09c0..b71df71 100644 --- a/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/IFR_RSI/resultsBackTestTimeframe/README_convencao.md @@ -10,26 +10,28 @@ Cada robô deve ter um arquivo de resultado por timeframe testado. ## Convenção de nome dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_TFmin.csv ``` -| Campo | Exemplo | Descrição | -|-------------|-----------------|----------------------------------------| -| `TFmin` | `60min` | Timeframe testado (ver lista abaixo) | -| `mes` | `mar` | Prefixo do ciclo mensal | -| `GRUPO_NUM` | `IFR_04` | Grupo + número sequencial do robô | -| `vVERSAO` | `v1` | Versão do robô | -| `descricao` | `bandas_dinamicas` | Tema/estratégia em snake_case | +| Campo | Exemplo | Descrição | +|-------------|-------------------|----------------------------------------| +| `mar` | `mar` | Prefixo do ciclo mensal | +| `GRUPO` | `IFR` | Grupo de estratégia | +| `NN` | `04` | Número sequencial do robô | +| `descricao` | `bandas_dinamicas` | Tema/estratégia em snake_case | +| `TFmin` | `60min` | Timeframe testado — **sempre no final**| + +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. ### Exemplo completo para um robô: ``` -1min_mar_IFR_04_v1_bandas_dinamicas.csv -2min_mar_IFR_04_v1_bandas_dinamicas.csv -5min_mar_IFR_04_v1_bandas_dinamicas.csv -15min_mar_IFR_04_v1_bandas_dinamicas.csv -30min_mar_IFR_04_v1_bandas_dinamicas.csv -60min_mar_IFR_04_v1_bandas_dinamicas.csv -240min_mar_IFR_04_v1_bandas_dinamicas.csv +mar_IFR_04_bandas_dinamicas_1min.csv +mar_IFR_04_bandas_dinamicas_2min.csv +mar_IFR_04_bandas_dinamicas_5min.csv +mar_IFR_04_bandas_dinamicas_15min.csv +mar_IFR_04_bandas_dinamicas_30min.csv +mar_IFR_04_bandas_dinamicas_60min.csv +mar_IFR_04_bandas_dinamicas_240min.csv ``` --- From 14aa1fc5058c847736280e7442582d7b0a248ac9 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:33:49 -0300 Subject: [PATCH 51/63] Docs: corrige convencao CSV em todos os README_convencao.md (timeframe no final, sem vX) --- .github/copilot-instructions.md | 2 +- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md" | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- .../resultsBackTestTimeframe/README_convencao.md | 10 ++++++---- 16 files changed, 91 insertions(+), 61 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 50c38a7..4ba365f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -27,7 +27,7 @@ automacao_backtests/ ├── GRUPO_X/ → Cada grupo tem a mesma estrutura interna: │ ├── ntsl/ → Scripts Neologica Profit (.ntsl) │ ├── mql5/ → Scripts MetaTrader 5 (.mq5) -│ ├── resultsBackTestTimeframe/ → CSVs: mar_GRUPO_NN_vX_descricao_TIMEFRAME.csv +│ ├── resultsBackTestTimeframe/ → CSVs: mar_GRUPO_NN_descricao_timeframe.csv │ ├── reprovados/ → Versões descartadas │ └── GRUPO.md → Documentação / notas do grupo └── MAPA_GRUPOS.md → Índice de todos os grupos diff --git a/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..f493b67 100644 --- a/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/50mais1/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_50M_01_descricao_1min.csv +mar_50M_01_descricao_60min.csv +mar_50M_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..e161198 100644 --- a/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/BREAKOUT/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_BRK_01_descricao_1min.csv +mar_BRK_01_descricao_60min.csv +mar_BRK_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..7af84fe 100644 --- a/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/CANDLE1/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_PC_01_primeiro_candle_gap_1min.csv +mar_PC_01_primeiro_candle_gap_15min.csv +mar_PC_01_primeiro_candle_gap_60min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..2f5272c 100644 --- a/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/DRAWDOWNZERO/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_DDZ_01_descricao_1min.csv +mar_DDZ_01_descricao_60min.csv +mar_DDZ_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" index 2d55d9b..cb6a0df 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/resultsBackTestTimeframe/README_convencao.md" @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_DPL_01_descricao_1min.csv +mar_DPL_01_descricao_60min.csv +mar_DPL_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..c66319d 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/HORARIO_ESPECIFICO/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_HOR_01_descricao_1min.csv +mar_HOR_01_descricao_60min.csv +mar_HOR_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..281b746 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_LDT_01_descricao_1min.csv +mar_LDT_01_descricao_60min.csv +mar_LDT_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..e9c4902 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_LSW_01_descricao_1min.csv +mar_LSW_01_descricao_60min.csv +mar_LSW_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..3fa371b 100644 --- a/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/MEDIAS/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_MED_01_cruzamento_mme9_mme21_1min.csv +mar_MED_01_cruzamento_mme9_mme21_60min.csv +mar_MED_01_cruzamento_mme9_mme21_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..59e5861 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_PPV_01_descricao_1min.csv +mar_PPV_01_descricao_60min.csv +mar_PPV_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..dbd28d3 100644 --- a/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/REVERSAO_MEDIA/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_REV_01_descricao_1min.csv +mar_REV_01_descricao_60min.csv +mar_REV_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..b40cfc5 100644 --- a/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/SCALPING/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_SCA_01_descricao_1min.csv +mar_SCA_01_descricao_60min.csv +mar_SCA_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..57d796b 100644 --- a/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/STOPTOLERANTE/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_STP_01_descricao_1min.csv +mar_STP_01_descricao_60min.csv +mar_STP_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..f6e1bd1 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/TENDENCIA_SEGUIR/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_TND_01_descricao_1min.csv +mar_TND_01_descricao_60min.csv +mar_TND_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md b/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md index 2d55d9b..95a5607 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md +++ b/automacao_backtests/VWAP_INSTITUCIONAL/resultsBackTestTimeframe/README_convencao.md @@ -3,16 +3,18 @@ ## Nomenclatura dos arquivos de resultado ``` -TFmin_mes_GRUPO_NUM_vVERSAO_descricao.csv +mar_GRUPO_NN_descricao_timeframe.csv ``` +> **Regra:** sem `vX` no nome; timeframe sempre no final antes da extensão. + **Timeframes obrigatórios:** `1min` `2min` `5min` `15min` `30min` `60min` `240min` **Exemplo:** ``` -1min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -60min_mar_MED_01_v1_cruzamento_mme9_mme21.csv -240min_mar_MED_01_v1_cruzamento_mme9_mme21.csv +mar_VWP_01_descricao_1min.csv +mar_VWP_01_descricao_60min.csv +mar_VWP_01_descricao_240min.csv ``` O robô correspondente fica em `../ntsl/` com o mesmo nome base. From b5de9f85f54528a78148be5f837e844435ccaea7 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:36:19 -0300 Subject: [PATCH 52/63] Docs: corrige paths obsoletos (resultados/ -> resultsBackTestTimeframe/, top10/ removido) --- WorkspaceRobosTrade/OrientacoesWorkspace.md | 5 ++--- plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/WorkspaceRobosTrade/OrientacoesWorkspace.md b/WorkspaceRobosTrade/OrientacoesWorkspace.md index aedd3be..63eeb6c 100644 --- a/WorkspaceRobosTrade/OrientacoesWorkspace.md +++ b/WorkspaceRobosTrade/OrientacoesWorkspace.md @@ -75,9 +75,8 @@ Scripts de backtest e catálogos de estratégias IFR. - `IFR_RSI/robos_IFR.txt` — índice de todas as versões testadas - `IFR_RSI/catalogo_50_opcoes_IFR.txt` — 50 variações catalogadas para priorização - `IFR_RSI/ntsl/` — scripts Profit `.ntsl` das versões de robô -- `IFR_RSI/top10/` — os 10 melhores robôs IFR por desempenho -- `IFR_RSI/resultadosAprovadosPorTimeframe/` — CSVs de resultados por timeframe -- `IFR_RSI/Reprovados/` — versões descartadas +- `IFR_RSI/resultsBackTestTimeframe/` — CSVs de resultados por timeframe +- `IFR_RSI/reprovados/` — versões descartadas - `NeologicaProfitAPIbacktest.txt` — referência de API Neologica para automação --- diff --git a/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md b/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md index 52348c7..901894d 100644 --- a/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md +++ b/plataformas/mql5/INSTRUCOES_BACKTEST_MT5.md @@ -145,7 +145,7 @@ Após aprovar em XAUUSD, repetir o Passo 4-6 para: ## Passo 9 — Exportar o Relatório 1. Na aba **"Report"**: clique com botão direito → **"Save as Report"** -2. Salvar como HTML na pasta: `automacao_backtests/POUCOSPONTOSVENCEDORES/resultados/` +2. Salvar como HTML na pasta: `automacao_backtests/POUCOSPONTOSVENCEDORES/resultsBackTestTimeframe/` 3. Nome sugerido: `PPV01_XAUUSD_M15_4anos_semgestao.html` --- From 9a861f62f8b2135a9aa03cee6ba571f29df624e3 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:41:56 -0300 Subject: [PATCH 53/63] Docs: adiciona referencia de sintaxe NTSL e corrige bloco input (parenteses, sem =, comentarios com {}) --- .github/copilot-instructions.md | 98 +++++++++++++++++++--- README.md | 17 ++-- plataformas/profit/Profit_Guia_Completo.md | 81 ++++++++++++++++++ 3 files changed, 178 insertions(+), 18 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4ba365f..a6aed8e 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -63,9 +63,84 @@ WorkspaceRobosTrade/ → Orientações e documentação do workspace - Extensão: **`.ntsl`** (nunca `.txt` nem `.ntsl.txt`) - Nomenclatura: `mar_GRUPO_NN_descricao_timeframe.ntsl` - Sempre incluir comentário de cabeçalho com: timeframe, descrição, taxa de acerto se disponível -- Respeitar a sintaxe NTSL da plataforma Profit (variáveis, séries, funções nativas) - **OBRIGATÓRIO:** todos os parâmetros de risco declarados como `input` (ver bloco padrão na seção Gerenciamento de Risco) -- Nunca usar `UsarGestaoRisco(true)` hardcoded — sempre `input UsarGestaoRisco = true` + +#### Sintaxe NTSL — Estrutura obrigatória + +```ntsl +{ + Estrategia: nome_do_robo + Descricao: o que faz, timeframe, taxa de acerto +} + +input + Parametro1(valorPadrao); { descricao do parametro } + Parametro2(100.0); + FlagBooleana(true); + +var + fVariavelFloat : float; + bVariavelBool : boolean; + iVariavelInteira : integer; + +begin + { logica aqui } +end; +``` + +#### Tipos de dados +| Tipo | Uso | +|------|-----| +| `float` | Preços, percentuais, valores financeiros | +| `integer` | Contadores, períodos, índices | +| `boolean` | Flags true/false | + +#### Séries nativas (barra atual = `[0]`, barra anterior = `[1]`) +| Série | Significado | +|-------|-------------| +| `Open` / `Open[1]` | Abertura da barra atual / anterior | +| `High`, `Low`, `Close` | Máxima, mínima, fechamento | +| `Volume` | Volume da barra | +| `Date` | Data da barra (`Date <> Date[1]` = nova sessão) | + +#### Funções nativas mais usadas +```ntsl +IFR(periodo) { Índice de Força Relativa } +Media(periodo, serie) { Média aritmética simples } +MME(periodo) { Média Móvel Exponencial } +MMS(periodo) { Média Móvel Simples } +Max(a, b) { Maior entre dois valores } +Min(a, b) { Menor entre dois valores } +Abs(valor) { Valor absoluto } +Round(valor) { Arredondamento } +DayOfWeek(Date) { Dia da semana: 1=Dom 2=Seg ... 7=Sab } +``` + +#### Funções de posição +```ntsl +IsBought { true se posicionado comprado } +IsSold { true se posicionado vendido } +BuyAtMarket { compra a mercado } +SellShortAtMarket { venda a mercado } +ClosePosition { fecha posição aberta } +BuyLimit(preco, qtd) { ordem de compra limitada } +SellLimit(preco, qtd) { ordem de venda limitada } +BuyStop(preco, qtd) { ordem de compra stop } +SellStop(preco, qtd) { ordem de venda stop } +``` + +#### Operadores +```ntsl +and or not { booleanos } += <> < > <= >= { comparação } ++ - * / { aritméticos } +``` + +#### Comentários +```ntsl +{ isto e um comentario de bloco } +``` +> NTSL usa `{ }` para comentários — **não** usa `//` nem `/* */` ### Scripts MQL5 (MetaTrader 5) @@ -116,16 +191,19 @@ Ao sugerir melhorias em estratégias, respeitar esta prioridade: #### Bloco padrão — NTSL (Neologica Profit): ```ntsl -input UsarGestaoRisco = true; // false = backtest puro da lógica -input UsarHardLock = true; // false = não fecha posição ao atingir limite -input SaldoConta = 10000.0; -input RiscoDiaPct = 1.5; // % do saldo — limite de perda diária -input RiscoSemanaPct = 3.0; // % do saldo — limite de perda semanal -input MaxStopsConsecutivos = 2; // stops em sequência antes de bloquear -input ValorPorPonto = 0.2; // 1 contrato WIN mini = R$0,20/ponto -input DiaSemanaReset = 2; // 2 = segunda-feira +input + UsarGestaoRisco(true); { false = backtest puro da logica } + UsarHardLock(true); { false = monitora mas nao fecha posicao } + SaldoConta(10000.0); + RiscoDiaPct(1.5); { % do saldo - limite de perda diaria } + RiscoSemanaPct(3.0); { % do saldo - limite de perda semanal } + MaxStopsConsecutivos(2); { stops em sequencia antes de bloquear } + ValorPorPonto(0.2); { 1 contrato WIN mini = R$0,20/ponto } + DiaSemanaReset(2); { 2 = segunda-feira (DayOfWeek retorna 1=Dom..7=Sab) } ``` +> **Sintaxe NTSL:** inputs usam `NomeParam(valorPadrao);` — **sem** `=`, **sem** tipo explícito. Comentários com `{ }`, não `//`. + #### Bloco padrão — MQL5 (MetaTrader 5 / Internacional): ```mql5 diff --git a/README.md b/README.md index 089f89c..eefe7e3 100644 --- a/README.md +++ b/README.md @@ -81,14 +81,15 @@ Todo robô deve ter **gestão de risco 100% parametrizável via `input`**, nunca #### Profit (NTSL) ```ntsl -input UsarGestaoRisco = true; // false = backtest puro da lógica -input UsarHardLock = true; // false = monitora mas não fecha -input SaldoConta = 10000.0; -input RiscoDiaPct = 1.5; // R$150/dia -input RiscoSemanaPct = 3.0; // R$300/semana -input MaxStopsConsecutivos = 2; -input ValorPorPonto = 0.2; // 1 contrato WIN mini -input DiaSemanaReset = 2; // 2 = segunda-feira +input + UsarGestaoRisco(true); { false = backtest puro da logica } + UsarHardLock(true); { false = monitora mas nao fecha } + SaldoConta(10000.0); + RiscoDiaPct(1.5); { R$150/dia } + RiscoSemanaPct(3.0); { R$300/semana } + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); { 1 contrato WIN mini } + DiaSemanaReset(2); { 2 = segunda-feira } ``` #### MetaTrader 5 (MQL5 / Internacional) diff --git a/plataformas/profit/Profit_Guia_Completo.md b/plataformas/profit/Profit_Guia_Completo.md index 4a7fd54..0f06290 100644 --- a/plataformas/profit/Profit_Guia_Completo.md +++ b/plataformas/profit/Profit_Guia_Completo.md @@ -88,6 +88,87 @@ | `Undeclared identifier` | Função não existe nessa versão | Verificar versão do Profit | | `Expected ;` | Falta ponto e vírgula | Revisar linha indicada | +### 4.4 Referência de Sintaxe NTSL + +#### Estrutura completa de um robô + +```ntsl +{ + Estrategia: nome_do_robo + Descricao: o que faz, timeframe, taxa de acerto +} + +input + Parametro1(valorPadrao); { descricao } + FlagBooleana(true); + ValorFloat(100.0); + ValorInteiro(9); + +var + fPreco : float; + bSinal : boolean; + iContador : integer; + +begin + { logica principal } +end; +``` + +#### Tipos de dados +| Tipo | Uso | +|------|-----| +| `float` | Preços, percentuais, valores financeiros | +| `integer` | Contadores, períodos, índices | +| `boolean` | Flags `true` / `false` | + +#### Séries nativas — barra atual `[0]`, barra anterior `[1]` +| Série | Significado | +|-------|-------------| +| `Open` / `Open[1]` | Abertura barra atual / anterior | +| `High`, `Low`, `Close` | Máxima, mínima, fechamento | +| `Volume` | Volume da barra | +| `Date` | Data (`Date <> Date[1]` = nova sessão) | + +#### Funções nativas +```ntsl +IFR(periodo) { Indice de Forca Relativa } +Media(periodo, serie) { Media aritmetica simples } +MME(periodo) { Media Movel Exponencial } +MMS(periodo) { Media Movel Simples } +Max(a, b) { Maior valor } +Min(a, b) { Menor valor } +Abs(valor) { Valor absoluto } +Round(valor) { Arredondamento } +DayOfWeek(Date) { Dia da semana: 1=Dom 2=Seg ... 7=Sab } +``` + +#### Funções de posição +```ntsl +IsBought { true se posicionado comprado } +IsSold { true se posicionado vendido } +BuyAtMarket { compra a mercado } +SellShortAtMarket { venda a mercado } +ClosePosition { fecha posicao aberta } +BuyLimit(preco, qtd) { ordem limitada de compra } +SellLimit(preco, qtd) { ordem limitada de venda } +BuyStop(preco, qtd) { ordem stop de compra } +SellStop(preco, qtd) { ordem stop de venda } +``` + +#### Operadores e comentários +```ntsl +and or not { booleanos } += <> < > <= >= { comparacao } ++ - * / { aritmeticos } +{ isto e um comentario } { NTSL usa { } - nunca // nem /* */ } +``` + +> **ATENÇÃO — armadilhas de sintaxe:** +> - `input` usa `NomeParam(valor);` com **parênteses** — não `=` +> - Comentários usam `{ }` — não `//` +> - Não há tipo explícito no `input` (ao contrário do MQL5) +> - `var` usa `nome : tipo;` com **dois pontos** antes do tipo + --- ## 5. Executando Backtest de 5 Anos From 0f20406210ce8ad9c2866fcea96dfbca8f52aa1b Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Sat, 7 Mar 2026 19:44:07 -0300 Subject: [PATCH 54/63] Docs: atualiza copilot-instructions.md --- .github/copilot-instructions.md | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index a6aed8e..523c668 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -89,21 +89,24 @@ end; ``` #### Tipos de dados -| Tipo | Uso | -|------|-----| -| `float` | Preços, percentuais, valores financeiros | -| `integer` | Contadores, períodos, índices | -| `boolean` | Flags true/false | + +| Tipo | Uso | +| --------- | ---------------------------------------- | +| `float` | Preços, percentuais, valores financeiros | +| `integer` | Contadores, períodos, índices | +| `boolean` | Flags true/false | #### Séries nativas (barra atual = `[0]`, barra anterior = `[1]`) -| Série | Significado | -|-------|-------------| -| `Open` / `Open[1]` | Abertura da barra atual / anterior | -| `High`, `Low`, `Close` | Máxima, mínima, fechamento | -| `Volume` | Volume da barra | -| `Date` | Data da barra (`Date <> Date[1]` = nova sessão) | + +| Série | Significado | +| ---------------------- | ----------------------------------------------- | +| `Open` / `Open[1]` | Abertura da barra atual / anterior | +| `High`, `Low`, `Close` | Máxima, mínima, fechamento | +| `Volume` | Volume da barra | +| `Date` | Data da barra (`Date <> Date[1]` = nova sessão) | #### Funções nativas mais usadas + ```ntsl IFR(periodo) { Índice de Força Relativa } Media(periodo, serie) { Média aritmética simples } @@ -117,6 +120,7 @@ DayOfWeek(Date) { Dia da semana: 1=Dom 2=Seg ... 7=Sab } ``` #### Funções de posição + ```ntsl IsBought { true se posicionado comprado } IsSold { true se posicionado vendido } @@ -130,6 +134,7 @@ SellStop(preco, qtd) { ordem de venda stop } ``` #### Operadores + ```ntsl and or not { booleanos } = <> < > <= >= { comparação } @@ -137,9 +142,11 @@ and or not { booleanos } ``` #### Comentários + ```ntsl { isto e um comentario de bloco } ``` + > NTSL usa `{ }` para comentários — **não** usa `//` nem `/* */` ### Scripts MQL5 (MetaTrader 5) From 28ad3e09263482a47bebfc30fd21b2e3eb57208d Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Mon, 9 Mar 2026 09:00:58 -0300 Subject: [PATCH 55/63] =?UTF-8?q?docs:=20teoria=20de=20backtest=20-=20fric?= =?UTF-8?q?=C3=A7=C3=B5es,=20slippage,=20spread,=20timeframes=20e=20implem?= =?UTF-8?q?enta=C3=A7=C3=A3o=20NTSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- estudo_teorias/teorias_backtest.md | 478 +++++++++++++++++++++++++++++ 1 file changed, 478 insertions(+) create mode 100644 estudo_teorias/teorias_backtest.md diff --git a/estudo_teorias/teorias_backtest.md b/estudo_teorias/teorias_backtest.md new file mode 100644 index 0000000..605ca14 --- /dev/null +++ b/estudo_teorias/teorias_backtest.md @@ -0,0 +1,478 @@ +# Teoria de Backtest — Assertividade e Fricções de Mercado + +> Referência operacional para construção e avaliação de robôs WIN (minicontrato de índice). + +--- + +## 1. Backtest Tick a Tick + +### O que é +Simulação da estratégia processando **cada negócio registrado** na fita de mercado, em vez de usar apenas o OHLCV (abertura, máxima, mínima, fechamento e volume) da barra. + +### Por que importa +| Modo | Resolução | Problema | +|---|---|---| +| OHLCV (barra fechada) | 1 barra = 1 evento | Ordem de max/min desconhecida; stop e alvo disputam o mesmo candle | +| Tick a tick | 1 negócio = 1 evento | Simula a sequência real de preços dentro da barra | + +- Um candle que tem máx 1000pts e mín 500pts **não informa qual veio primeiro**. No backtest de barra o robô pode "acertar" stop e alvo no mesmo candle — resultado irreal. +- O tick a tick resolve isso porque cada preço é processado na ordem cronológica exata. + +### Neologica Profit +- Na janela de backtest, selecionar **"Tick a Tick"** em vez de "Por candle". +- Exige arquivo de ticks históricos carregado; consome mais tempo de processamento. +- Para timeframes curtos (1min, 5min) a diferença de resultado pode ser significativa (5–15 pts de diferença no preço de execução). + +### Quando usar obrigatoriamente +- Stops curtos (≤ 150 pts no WIN) +- Entradas com ordem limitada (não a mercado) +- Qualquer estratégia que dependa da sequência intracandle (ex.: rompimento de máxima) + +--- + +## 2. Book de Ofertas (Profundidade de Mercado) + +### O que é +Lista ordenada de todas as ordens de compra e venda pendentes em determinado momento, com **preço** e **quantidade** em cada nível. + +``` +VENDA (Ask) COMPRA (Bid) +Qtd | Preço Preço | Qtd +-----|-------- ------|----- + 30 | 130.500 130.450 | 45 + 15 | 130.550 130.400 | 20 + 8 | 130.600 130.350 | 60 +``` + +### Conceitos-chave +| Termo | Significado | +|---|---| +| **Bid** | Melhor preço de compra disponível (topo do livro de compras) | +| **Ask** | Melhor preço de venda disponível (topo do livro de vendas) | +| **Spread** | Diferença entre Ask e Bid (ver seção 3) | +| **Aggressor** | Quem cruza o spread e aceita o preço do lado oposto | +| **Liquidez** | Quantidade total disponível em cada nível de preço | + +### Impacto no backtest +Backtests **não têm acesso ao book histórico** na maioria das plataformas. Isso cria viés otimista porque o modelo assume que a ordem sempre seria executada ao preço desejado, sem fila de prioridade. + +--- + +## 3. Spread + +### Definição +``` +Spread = Ask − Bid +``` +No WIN, o spread mínimo é **50 pontos** (1 tick = 5 pts, mas a diferença entre compra e venda costuma ser 1 tick = 5 pts em mercado líquido, podendo abrir para 10–25 pts fora do horário principal). + +### Por que o spread prejudica o backtest +- O backtest assume execução no **preço de fechamento** ou no preço do sinal. +- Na prática, uma compra a mercado executa no **Ask** (preço mais caro), e uma venda no **Bid** (preço mais barato). +- Ignorar o spread infla o resultado: cada trade "ganha" meio spread que não existe na vida real. + +### Regra prática — WIN +| Horário | Spread típico | Ajuste no backtest | +|---|---|---| +| 09:00–17:55 (leilão aberto) | 5–10 pts | Penalizar 5 pts por side | +| Abertura (09:00–09:15) | 15–50 pts | Evitar entradas ou penalizar 25 pts | +| Fechamento (17:45–18:00) | 15–30 pts | Idem | + +**Regra mínima:** desconte **10 pontos** de spread total (5 pts entrada + 5 pts saída) em todo trade simulado. Em stops curtos (≤ 100 pts) isso pode eliminar 10% do resultado. + +--- + +## 4. Slippage Fictício — O que é e como aplicar + +### Definição +**Slippage** é a diferença entre o preço esperado da ordem e o preço efetivamente executado. Ocorre porque: +1. Há latência entre o sinal e o envio da ordem +2. O mercado move entre o sinal e a execução +3. A liquidez no preço desejado pode ter esgotado + +**Slippage fictício** é o valor que se **subtrai artificialmente** do resultado no backtest para simular esse efeito real. + +### Tipos de slippage no WIN + +| Tipo | Causa | Magnitude típica | +|---|---|---| +| Latência de rede | Tempo entre sinal e envio | 5–15 pts | +| Fila de book | Ordens à frente na mesma fila | 5–20 pts | +| Gap de abertura | Mercado abre longe do fechamento | 50–300 pts (imprevisível) | +| Liquidez rasa | Execução em múltiplos níveis | 10–50 pts | + +### Como aplicar no NTSL + +#### Método 1 — Input de penalização direta +```ntsl +input + SlippageEntrada(10.0); { pontos penalizados na entrada } + SlippageSaida(10.0); { pontos penalizados na saida } + +var + fPrecoEntrada : float; + fPrecoSaida : float; + +begin + { Entrada comprada: penaliza subindo o preco de referencia } + if CondicaoEntrada then + begin + fPrecoEntrada := Close + SlippageEntrada; + BuyAtMarket; + { registrar fPrecoEntrada para calculo correto do resultado } + end; + + { Saida: penaliza abaixando o preco de referencia } + if IsBought and CondicaoSaida then + begin + fPrecoSaida := Close - SlippageSaida; + ClosePosition; + end; +end; +``` + +#### Método 2 — Ajuste nos alvos e stops +Mais simples e prático: +```ntsl +input + StopPontos(200.0); + AlvoPontos(400.0); + SlippageTotal(20.0); { spread + slippage combinados } + +begin + { Ao calcular o alvo liquido, descontar o slippage } + { Alvo real = AlvoPontos - SlippageTotal } + { Stop real = StopPontos + SlippageTotal (stop fica mais proximo) } +end; +``` + +### Valor recomendado para o WIN +``` +Slippage mínimo conservador : 10 pts (só spread) +Slippage realista : 20–30 pts (spread + latência) +Slippage pessimista : 50 pts (stress test) +``` + +**Regra de ouro:** se o robô é lucrativo com 50 pts de slippage, ele tem robustez real. Se depende de < 10 pts, provavelmente está sobreajustado. + +--- + +## 5. Como Melhorar a Assertividade do Backtest + +### 5.1 Checklist de qualidade antes de aprovar um robô + +| # | Verificação | Por quê | +|---|---|---| +| 1 | Rodou tick a tick? | Elimina viés de sequência intracandle | +| 2 | Incluiu spread (≥ 10 pts)? | Reflete custo real de execução | +| 3 | Incluiu slippage (≥ 20 pts)? | Reflete latência e liquidez | +| 4 | Incluiu corretagem? | WIN: ~R$1,50–R$2,50 por contrato/lado | +| 5 | Período ≥ 2 anos? | Cobre diferentes regimes de mercado | +| 6 | Validou em amostra fora do período otimizado? | Evita overfitting | +| 7 | Taxa de acerto ≥ 60% com RR ≥ 1:2? | Padrão mínimo do projeto | +| 8 | Drawdown máximo ≤ 20% do capital? | Limite de risco aceitável | + +### 5.2 Separação de amostras (Walk-Forward) + +``` +Período total disponível +├── 70% → Otimização (ajustar parâmetros) +└── 30% → Validação fora da amostra (nunca tocar antes) + +Se aprovado na validação → candidato a paper trade +Se reprovado → revisar lógica (não ajustar parâmetros) +``` + +### 5.3 Parâmetros mais sensíveis a slippage (WIN) + +- **Stop curto (≤ 150 pts):** 20 pts de slippage representa 13% do stop — crítico +- **Alvo pequeno (≤ 200 pts):** slippage pode eliminar metade do ganho +- **Entradas na abertura (09:00–09:15):** spread amplo frequente — usar `Date <> Date[1]` para filtrar + +### 5.4 Comparação: backtest vs. resultado real típico + +| Métrica | Backtest puro | Com ajustes realistas | Resultado real (estimado) | +|---|---|---|---| +| Taxa de acerto | 68% | 63% | 58–62% | +| Resultado médio/trade | +120 pts | +85 pts | +70–90 pts | +| Drawdown máximo | 800 pts | 1.100 pts | 1.000–1.400 pts | + +> Ajustes realistas = tick a tick + spread 10 pts + slippage 20 pts + corretagem. + +### 5.5 Custo total por trade (WIN — 1 contrato) + +``` +Spread : 10 pts × R$0,20 = R$ 2,00 +Slippage : 20 pts × R$0,20 = R$ 4,00 +Corretagem : ~R$1,80 (entrada + saída) +─────────────────────────────────────────── +Custo total : R$ 7,80 por trade +Em pontos : 39 pts equivalentes +``` + +Todo robô que apresenta resultado bruto de backtest deve ter **39 pts descontados por trade** para estimar o resultado líquido real. + +--- + +## 6. Resumo Rápido + +``` +Spread → diferença entre Ask e Bid (custo de execução) +Slippage → desvio do preço esperado ao executado (latência + liquidez) +Tick a tick → simula sequência real intracandle (obrigatório para stops curtos) +Book de ofertas → mostra liquidez e fila; não disponível em backtests históricos + +Custo mínimo a considerar no WIN por trade: + Spread 10 pts + Slippage 20 pts + Corretagem 9 pts ≈ 39 pts totais +``` + +--- + +## 7. Implementação nos Robôs — Bloco Padrão de Validação de Backtest + +### 7.1 Bloco completo de inputs de fricção (NTSL) + +Adicionar em **todo robô** antes dos inputs de estratégia: + +```ntsl +{ + Bloco de Validacao de Backtest + Ativar UsarFricao = true ao rodar backtest realista + Ativar UsarFricao = false para testar logica pura +} +input + { --- Gestao de risco --- } + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.20); + DiaSemanaReset(2); + + { --- Validacao de backtest realista --- } + UsarFricao(true); { false = backtest puro sem penalizacao } + SpreadPontos(10.0); { spread medio em pontos (5 entrada + 5 saida) } + SlippagePontos(20.0); { slippage estimado por trade (entrada + saida) } + Corretagempeg(9.0); { corretagem em pontos equivalentes } + FricaoTotal(39.0); { calculado: Spread + Slippage + Corretagem } + + { --- Parametros de qualidade minima --- } + TaxaAcertoMinPct(60.0); { % minima para aprovar } + RRMinimo(2.0); { relacao risco/retorno minima (RR 1:X) } +``` + +### 7.2 Variáveis de controle de fricção + +```ntsl +var + fAlvoBruto : float; { alvo calculado pela logica } + fAlvoLiquido : float; { alvo apos descontar fricao } + fStopBruto : float; { stop calculado pela logica } + fStopAjustado : float; { stop apos adicionar fricao (fica mais proximo) } + fFricaoAtiva : float; { valor de fricao aplicado (0 se UsarFricao=false) } +``` + +### 7.3 Lógica de aplicação da fricção + +```ntsl +begin + { Definir fricao conforme parametro } + if UsarFricao then + fFricaoAtiva := FricaoTotal + else + fFricaoAtiva := 0.0; + + { Calcular alvos e stops liquidos } + fAlvoBruto := AlvoPontos; + fAlvoLiquido := fAlvoBruto - fFricaoAtiva; { alvo liquido menor } + fStopBruto := StopPontos; + fStopAjustado := fStopBruto + fFricaoAtiva; { stop efetivo maior } + + { Validar se o trade ainda faz sentido com fricao } + { RR liquido = fAlvoLiquido / fStopAjustado } + { Se RR liquido < RRMinimo, nao entrar } + + if (fAlvoLiquido / fStopAjustado) >= RRMinimo then + begin + { executar logica de entrada } + end; +end; +``` + +### 7.4 Como usar os dois modos no Profit + +| Modo | `UsarFricao` | `UsarGestaoRisco` | Objetivo | +|---|---|---|---| +| Backtest puro | `false` | `false` | Testar apenas a lógica do sinal | +| Backtest realista | `true` | `false` | Estimar resultado real esperado | +| Paper trade / live | `false` | `true` | A corretora já aplica as fricções reais | + +> **Atenção:** no paper trade/live as fricções happen organicamente (a ordem executa no Ask/Bid real). Não duplicar a penalização. + +### 7.5 Critério de aprovação — fluxo de decisão + +``` +Rodar backtest PURO (UsarFricao=false) + ↓ +Taxa acerto ≥ 60% e RR ≥ 1:2? NÃO → descartar lógica + ↓ SIM +Rodar backtest REALISTA (UsarFricao=true, SlippagePontos=20) + ↓ +Ainda lucrativo? NÃO → lógica frágil (slippage-dependent) → descartar + ↓ SIM +Rodar STRESS TEST (SlippagePontos=50) + ↓ +Ainda positivo? NÃO → aprovar com ressalva (monitorar em paper trade) + ↓ SIM +Candidato robusto → avançar para walk-forward e paper trade +``` + +--- + +## 8. Tipos de Operação — Adequação às Fricções + +### 8.1 Custo de fricção vs. tamanho da operação + +O custo fixo de **~39 pts** por trade impacta diferente conforme a amplitude da operação: + +| Tipo de operação | Alvo típico (pts) | Stop típico (pts) | Fricção como % do alvo | Viabilidade | +|---|---|---|---|---| +| Scalping agressivo | 50–80 | 30–50 | 49–78% | Inviável — fricção devora o resultado | +| Scalping moderado | 100–150 | 60–100 | 26–39% | Muito arriscado — exige acerto > 70% | +| Day trade curto | 200–300 | 100–150 | 13–20% | Marginal — exige RR ≥ 1:2,5 real | +| Day trade padrão | 300–500 | 150–250 | 8–13% | **Viável** — padrão do projeto | +| Day trade amplo | 500–800 | 250–400 | 5–8% | **Ideal** — fricção pouco relevante | +| Swing (overnight) | 800–2000 | 300–600 | 2–5% | Excelente — mas exige gestão de gap | + +> **Conclusão:** operações com alvo < 200 pts no WIN são estruturalmente desfavorecidas pela fricção. O ponto de equilíbrio real está em **alvo ≥ 300 pts**. + +### 8.2 Tipos de entrada — sensibilidade ao slippage + +| Tipo de entrada | Slippage esperado | Por quê | +|---|---|---| +| Mercado no fechamento da barra | 5–10 pts | Barras fechadas têm spread próximo do mínimo | +| Mercado na abertura da sessão | 20–80 pts | Spread largo + liquidez rasa + gap overnight | +| Stop de compra (BuyStop) | 10–30 pts | Executa quando preço já está subindo (aggressor) | +| Limite de compra (BuyLimit) | 0–5 pts | Fica na fila; pode não executar em movimentos rápidos | +| Rompimento de máxima/mínima anterior | 15–40 pts | Corrida de ordens no mesmo nível | + +**Recomendação:** entradas por `BuyLimit`/`SellLimit` reduzem o slippage mas aumentam o risco de **não execução** em movimentos de impulso — risco de ficar de fora da operação mais lucrativa. + +### 8.3 Tipos de saída — impacto na fricção + +| Tipo de saída | Slippage | Observação | +|---|---|---| +| Alvo fixo (limit order) | ≈ 0 pts | Aguarda o preço chegar — zero slippage na saída | +| Stop loss (stop order) | 10–30 pts | Executa em queda/alta rápida — slippage alto | +| Trailing stop | 15–40 pts | Desloca junto com o mercado; slippage em reversões | +| `ClosePosition` por sinal | 5–15 pts | Mercado na barra de sinal; risco de slippage moderado | + +**Combinação mais eficiente:** entrada a mercado no fechamento + alvo fixo (limit) + stop fixo. Maximiza a execução do alvo sem slippage e limita o de stop. + +### 8.4 Estratégias por custo-benefício de fricção + +| Grupo do projeto | Alvo típico | Adequação às fricções | Ajuste necessário | +|---|---|---|---| +| SCALPING | 50–150 pts | Baixa | Elevar alvo mínimo para 200 pts ou eliminar | +| CANDLE1 / 50MAIS1 | 100–200 pts | Baixa–Média | Filtrar só setups de maior amplitude | +| IFR_RSI (extremos) | 200–500 pts | **Alta** | Adequado — manter como está | +| REVERSAO_MEDIA | 250–500 pts | **Alta** | Adequado | +| BREAKOUT | 300–800 pts | **Excelente** | Ideal para fricções | +| TENDENCIA_SEGUIR | 400–1000 pts | **Excelente** | Trailing stop compensa bem | +| VWAP_INSTITUCIONAL | 200–500 pts | Alta | Entradas limit reduzem slippage | + +--- + +## 9. Timeframes — Comportamento e Adequação às Fricções + +### 9.1 Tabela comparativa de timeframes + +| Timeframe | Barras/dia (WIN) | Trades/dia típico | Alvo médio (pts) | Custo fricção/resultado | Modo obrigatório | +|---|---|---|---|---|---| +| 1 min | 540 | 10–30 | 50–100 | 39–78% | Tick a tick + SlippageTotal ≥ 50 pts | +| 5 min | 108 | 3–10 | 100–200 | 20–39% | Tick a tick + SlippageTotal ≥ 30 pts | +| 15 min | 36 | 2–5 | 200–400 | 10–20% | Tick a tick recomendado | +| 30 min | 18 | 1–3 | 300–600 | 7–13% | Tick a tick ou barra — diferença pequena | +| 60 min | 9 | 1–2 | 400–800 | 5–10% | **Barra suficiente** | +| Diário | 1 | 0–1 | 500–2000 | 2–8% | Barra suficiente | + +### 9.2 Análise por timeframe + +#### 1 minuto +- **Alta frequência de trades:** a fricção se acumula rapidamente +- **Resultado bruto x líquido:** diferença de 30–50% é comum +- **Overfit risk:** alto — curvas de capital "bonitas" desaparecem no realista +- **Recomendação:** evitar para robôs automáticos no WIN; usar apenas para leitura manual + +#### 5 minutos +- **Transição:** começa a ser viável se alvo > 150 pts e acerto > 65% +- **Slippage dominante:** entradas e saídas na abertura de barras ainda sofrem +- **Adequado para:** CANDLE1, 50MAIS1 com filtro de amplitude mínima +- **Recomendação:** exige backtest tick a tick obrigatório + +#### 15 minutos +- **Ponto de equilíbrio:** fricção já representa < 20% do alvo em setups normais +- **Barras mais representativas:** menos ruído que 5min +- **Adequado para:** IFR_RSI reversão, VWAP, BREAKOUT moderado +- **Recomendação:** **timeframe mínimo recomendado** para robôs automáticos do projeto + +#### 30 minutos ⭐ +- **Melhor equilíbrio** entre frequência de trades e custo de fricção +- Alvo de 300–600 pts = fricção representa apenas 7–13% +- Barras capturam movimentos intraday completos +- Filtros de tendência (MME9/21) funcionam bem +- **Adequado para:** todos os grupos — especialmente IFR_RSI, REVERSAO_MEDIA, TENDENCIA_SEGUIR +- **Recomendação:** **timeframe principal** do projeto + +#### 60 minutos ⭐ +- **Fricção irrelevante:** 39 pts sobre alvo de 500–800 pts = < 8% +- Menos trades por dia (1–2) → menor acúmulo de custo +- Movimentos mais limpos, menos whipsaw +- Backtest por barra já é suficientemente preciso neste TF +- **Adequado para:** todos os grupos — resultados históricos mais estáveis +- **Recomendação:** **timeframe de maior confiabilidade** para backtests do projeto + +#### Diário +- Fricção praticamente desprezível +- Número reduzidíssimo de operações dificulta validação estatística +- Gap overnight pode ser significativo (300–1000 pts) +- **Recomendação:** usar apenas para contexto e filtro, não para entrada automática + +### 9.3 Regra de ouro — timeframe vs. stop/alvo mínimo + +Para que a fricção de 39 pts represente **no máximo 10% do alvo**: + +$$\text{Alvo mínimo} = \frac{39}{0{,}10} = 390 \text{ pts}$$ + +Para que a fricção represente **no máximo 15% do alvo**: + +$$\text{Alvo mínimo} = \frac{39}{0{,}15} = 260 \text{ pts}$$ + +| Meta de impacto da fricção | Alvo mínimo necessário | Timeframe mínimo | +|---|---|---| +| ≤ 5% do alvo | 780 pts | 60 min | +| ≤ 10% do alvo | 390 pts | 30 min | +| ≤ 15% do alvo | 260 pts | 15–30 min | +| ≤ 20% do alvo | 195 pts | 15 min (com filtro) | +| > 20% do alvo | < 195 pts | Estruturalmente desfavorável | + +### 9.4 Mapa de decisão — timeframe + tipo de operação + +``` +Qual timeframe usar? + + Frequência alta de trades desejada? + ├── SIM → 15min (mínimo viável) com alvo > 250 pts + └── NÃO → 30min ou 60min (recomendados) + + Tipo de estratégia? + ├── Reversão (IFR extremo, REVERSAO_MEDIA) → 30min ou 60min + ├── Tendência / breakout → 60min (trailing funciona melhor) + ├── VWAP / institucional → 15min ou 30min + └── Scalping → NÃO recomendado para robôs auto + + Stop curto (< 150 pts)? + └── Obrigatório: tick a tick + SlippageTotal = 50 pts no backtest +``` \ No newline at end of file From df894021e3faba4ad8b642dc451054e75118dc1c Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 9 Mar 2026 09:17:44 -0300 Subject: [PATCH 56/63] =?UTF-8?q?ajustes=20e=20anota=C3=A7oes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt | 132 ++---------------- automacao_backtests/anotacoesBacktest.txt | 2 + 2 files changed, 17 insertions(+), 117 deletions(-) create mode 100644 automacao_backtests/anotacoesBacktest.txt diff --git a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt index da05089..fed3b1a 100644 --- a/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt +++ b/automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt @@ -1,72 +1,18 @@ -{ - Robo: mar_PC_01_v1_gap_ext_alta_vwap_vol - Catalogo: #41 — Tier 1 - Descricao: Gap externo para CIMA + preço acima VWAP diaria + corpo >70% + volume climático - Entrada compra no 2o candle. Maior confluência possível. - Timeframe: 15min ou 30min - Ativo: WIN (minicontrato de índice) - Versao: 1.0 — marco/2026 -} +// mar_PC_01_v1_gap_ext_alta_vwap_vol +// Catalogo: #41 — Tier 1 +// Descricao: Gap externo para CIMA + preço acima VWAP diaria + corpo >70% + volume climático +// Entrada compra no 2o candle. Maior confluência possível. +// Timeframe: 15min ou 30min +// Ativo: WIN (minicontrato de índice) +// Versao: 1.0 — marco/2026 input - // ── Filtros do 1o candle ───────────────────────────────────── - PctCorpoMinimo(0.70); // corpo mínimo do 1o candle (% do range) - FatorVolumeClimatico(1.5); // volume mínimo vs média para ser "climático" - PeriodoMediaVol(20); // período da média de volume - // ── Filtro MME200 ──────────────────────────────────────────── - UsarFiltroMME200(true); // exigir preço acima da MME200 - PeriodoMME200(200); - // ── Gestão de posição ──────────────────────────────────────── - MultiplicadorAlvo(1.5); // alvo = MultiplicadorAlvo * range do 1o candle - UsarOCO(true); - UsarBreakEven(false); - BreakEvenTriggerPontos(80.0); - BreakEvenOffsetPontos(5.0); - MaxBarrasPosicao(8); // saída por tempo - // ── Gestão de risco ────────────────────────────────────────── - UsarGestaoRisco(true); - UsarHardLock(true); - SaldoConta(3500.0); - RiscoDiaPct(1.0); - RiscoSemanaPct(3.0); - ValorPorPonto(0.2); - DiaSemanaReset(2); // 2 = segunda-feira - +PctCorpoMinimo(0.70); +FatorVolumeClimatico(1.5); +PeriodoMediaVol(20); +UsarFiltroMME200(true); var - // Controle de candle do dia - iCandleDia : integer; - // Dados do 1o candle - fMaxC1, fMinC1, fAberDia, fFechC1 : float; - fRangeC1, fCorpoC1, fVolC1 : float; - // VWAP diário acumulado - fVWAPSoma, fVWAPVol, fVWAPDiario : float; - // Indicadores - fMME200, fMediaVol : float; - // Sinais - bGapExtCima, bCorpoAlta, bVolClimatico, bAcimaMME200 : boolean; - bSinalCompra, bEntradaExecutada : boolean; - // Gestão de posição - fPrecoEntrada, fStopAtual, fAlvoAtual : float; - iBarrasEmPosicao, iDirecaoPosicao : integer; - bBreakEvenAtivo, bEstavaPosicionado : boolean; - // Gestão de risco - fResultadoDia, fResultadoSemana : float; - fLimiteDia, fLimiteSemana : float; - fResultadoPontos, fResultadoReais : float; - bBloqueioDia, bBloqueioSemana : boolean; - iDiaSemanaAtual : integer; - -begin - // ── NOVO DIA: reset variáveis ──────────────────────────────── - if Date <> Date[1] then - begin - iCandleDia := 1; - fMaxC1 := 0; - fMinC1 := 0; - fRangeC1 := 0; - fCorpoC1 := 0; - fVolC1 := 0; - bEntradaExecutada := false; +iCandleDia : integer; fResultadoDia := 0; bBloqueioDia := false; // Reset VWAP diário @@ -91,12 +37,13 @@ begin // ── INDICADORES ────────────────────────────────────────────── fMME200 := Media(PeriodoMME200, 1, Close); - fMediaVol := Media(PeriodoMediaVol, Volume); + fMediaVol := Media(PeriodoMediaVol, 1, Volume); // ── LIMITES DE RISCO ───────────────────────────────────────── fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + // ── TRACKING DE RESULTADO ──────────────────────────────────── if bEstavaPosicionado and (not IsBought) and (not IsSold) then begin @@ -121,56 +68,7 @@ begin fFechC1 := Close; fRangeC1 := High - Low; fCorpoC1 := Abs(Close - Open); - fVolC1 := Volume; - end; - - // ── LÓGICA DE SINAL (apenas no 2o candle em diante) ───────── - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) then - begin - // Gap externo para cima: abertura acima da máxima do dia anterior - // High[2] = máxima de D-1 quando estamos no candle 2 (High[1] = 1o candle hoje) - bGapExtCima := fAberDia > High[2]; - // Corpo de alta > PctCorpoMinimo do range - bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); - // Volume climático - bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); - // Preço acima da MME200 - bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); - // Preço acima da VWAP diária (calculada até o 1o candle) - // fVWAPDiario aqui está com o valor após o 2o candle; usar Close[1] vs VWAP[1] aprox - bSinalCompra := bGapExtCima and bCorpoAlta and bVolClimatico and bAcimaMME200 - and (fFechC1 > fVWAPDiario); - - if bSinalCompra then - begin - fStopAtual := fMinC1; - fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); - BuyAtMarket; - bEntradaExecutada := true; - end; - end; - - // ── GESTÃO DE POSIÇÃO ──────────────────────────────────────── - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - begin - iBarrasEmPosicao := 0; - bBreakEvenAtivo := false; - end; - - if IsBought and bEstavaPosicionado then - begin - if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then - bBreakEvenAtivo := true; - - if UsarBreakEven and bBreakEvenAtivo then - fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); - - if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then - ClosePosition - else if iBarrasEmPosicao >= MaxBarrasPosicao then - ClosePosition; + // ...existing code... end; // ── REGISTRO DE ENTRADA ────────────────────────────────────── diff --git a/automacao_backtests/anotacoesBacktest.txt b/automacao_backtests/anotacoesBacktest.txt new file mode 100644 index 0000000..c7d81c5 --- /dev/null +++ b/automacao_backtests/anotacoesBacktest.txt @@ -0,0 +1,2 @@ +20260309: +robo_ifr_v4_divergencia_confirmada60min90% e robo_ifr_v28_ifr_adx_filtro são os primeiros a serem ativos From 9aba0eb726d8113343356b0bc2fab0947df04b7a Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Mon, 9 Mar 2026 16:12:06 -0300 Subject: [PATCH 57/63] feat: adiciona rastreabilidade de ordens em todos os robos - NTSL (143 arquivos): Print('Robo ativo: nome') na primeira barra do begin - MQL5 (10 arquivos): Print EA iniciado no OnInit() + comment com nome do robo em todas as chamadas trade.Buy/Sell - copilot-instructions.md: secao 'Identificacao de Ordens e Rastreabilidade' adicionada como regra obrigatoria --- .github/copilot-instructions.md | 36 ++ .../mar_5M1_01_v1_candle_forca_50pts.ntsl | 4 +- .../ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl | 4 +- .../ntsl/mar_5M1_03_v1_gap_continuacao.ntsl | 4 +- .../mar_5M1_04_v1_ifr_extremo_impulso.ntsl | 4 +- ...ar_5M1_05_v1_macd_histograma_explosao.ntsl | 4 +- .../mar_BRK_01_v1_donchian_rompimento.ntsl | 4 +- .../mar_BRK_02_v1_consolidacao_breakout.ntsl | 4 +- ..._BRK_03_v1_bollinger_squeeze_expansao.ntsl | 4 +- .../mar_BRK_04_v1_maxmin_abertura_dia.ntsl | 4 +- ...mar_BRK_05_v1_pivo_rompimento_reteste.ntsl | 4 +- .../mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl | 4 +- .../mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl | 4 +- ...mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl | 4 +- ...mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl | 4 +- .../ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl | 4 +- .../ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl | 4 +- .../mar_PC_07_v1_abertura_acima_maxD1.ntsl | 4 +- .../mar_PC_08_v1_abertura_abaixo_minD1.ntsl | 4 +- .../ntsl/mar_PC_09_v1_volume_iniciativa.ntsl | 4 +- ...ar_PC_10_v1_volume_maximo_confluencia.ntsl | 4 +- ...ar_PC_11_v1_vwap_inversao_polo_compra.ntsl | 4 +- ...mar_PC_12_v1_vwap_inversao_polo_venda.ntsl | 4 +- ...mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl | 4 +- ...mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl | 4 +- ...C_15_v1_gap_parcial_fecha_acima_maxD1.ntsl | 4 +- ...mar_PC_16_v1_gap_forca_pullback_venda.ntsl | 4 +- .../ntsl/mar_PC_17_v1_martelo_alta.ntsl | 4 +- .../mar_PC_18_v1_estrela_cadente_venda.ntsl | 4 +- .../ntsl/mar_PC_19_v1_forca_pura_alta.ntsl | 4 +- .../ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl | 4 +- .../ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl | 4 +- ...r_PC_22_v1_gap_exaustao_alta_reversao.ntsl | 4 +- ..._PC_23_v1_gap_exaustao_baixa_reversao.ntsl | 4 +- ...ar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl | 4 +- ...mar_PC_25_v1_gap_grande_suporte_minD1.ntsl | 4 +- .../ntsl/mar_PC_26_v1_colapso_minD1.ntsl | 4 +- .../ntsl/mar_PC_27_v1_breakout_maxD1.ntsl | 4 +- ...C_28_v1_gap_parcial_fecha_acima_maxD1.ntsl | 4 +- ..._29_v1_gap_parcial_fecha_abaixo_minD1.ntsl | 4 +- ...mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl | 4 +- .../mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl | 4 +- .../ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl | 4 +- ...PC_33_v1_absorcao_vol_alto_compressao.ntsl | 4 +- .../ntsl/mar_DDZ_01_v1_breakeven_11.ntsl | 4 +- ...ar_DDZ_02_v1_parcial_breakeven_rapido.ntsl | 4 +- ..._DDZ_03_v1_trailing_apertado_imediato.ntsl | 4 +- .../mar_DDZ_04_v1_stop_candle_anterior.ntsl | 4 +- .../mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl | 4 +- .../mar_DC_01_v1_ifr_candle_reversao.ntsl" | 4 +- .../ntsl/mar_DC_02_v1_medias_volume.ntsl" | 4 +- .../ntsl/mar_DC_03_v1_macd_ifr.ntsl" | 4 +- .../mar_DC_04_v1_adx_candle_continuacao.ntsl" | 4 +- .../mar_DC_05_v1_rompimento_reteste.ntsl" | 4 +- ...r_HOR_01_v1_primeira_barra_rompimento.ntsl | 4 +- .../ntsl/mar_HOR_02_v1_momentum_manha.ntsl | 4 +- .../ntsl/mar_HOR_03_v1_reversao_almoco.ntsl | 4 +- .../mar_HOR_04_v1_abertura_ny_momentum.ntsl | 4 +- .../ntsl/mar_HOR_05_v1_fechamento_b3.ntsl | 4 +- ...obo_ifr_v10_balanceado_regime60min63%.ntsl | 4 +- ...robo_ifr_v18_bandas_dinamicas60min60%.ntsl | 4 +- ..._ifr_v24_controle_risco_diario1min67%.ntsl | 4 +- ...bo_ifr_v25_ifr_mme200_contexto2min69%.ntsl | 4 +- ..._ifr_v27_um_trade_por_direcao60min54%.ntsl | 4 +- .../robo_ifr_v28_ifr_adx_filtro30min57%.ntsl | 4 +- ..._v31_reversao_volume_relativo60min72%.ntsl | 4 +- .../robo_ifr_v33_pullback_mme20060min67%.ntsl | 4 +- ..._v36_divergencia_regular_pivo60min62%.ntsl | 4 +- ...ifr_v4_divergencia_confirmada60min90%.ntsl | 4 +- .../mar_IFR_01_v1_divergencia_confirmada.ntsl | 4 +- ...ar_IFR_02_v1_reversao_volume_relativo.ntsl | 4 +- .../mar_IFR_03_v1_ifr_mme200_contexto.ntsl | 4 +- .../ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl | 4 +- .../mar_IFR_05_v1_controle_risco_diario.ntsl | 4 +- .../mar_IFR_06_v1_um_trade_por_direcao.ntsl | 4 +- .../ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl | 4 +- .../ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl | 4 +- .../ntsl/mar_IFR_09_v1_pullback_mme200.ntsl | 4 +- .../ntsl/mar_IFR_10_v1_regime_balanceado.ntsl | 4 +- .../1robo_ifr_v6_saida_hibrida60min77%.ntsl | 4 +- ...bo_ifr_v5_regime_volatilidade60min90%.ntsl | 4 +- ...bo_ifr_v45_volume_por_horario60min75%.ntsl | 4 +- ..._ifr_v20_ifr_assimetrico_lado30min62%.ntsl | 4 +- ...o_ifr_v11_agressivo_reentrada30min58%.ntsl | 4 +- ...robo_ifr_v1_reversao_extremos60min71%.ntsl | 4 +- ...obo_ifr_v23_dupla_confirmacao15min87%.ntsl | 4 +- ...ifr_v47_orb_confirmacao_dupla60min66%.ntsl | 4 +- .../robo_ifr_v7_resgate_contexto30min84%.ntsl | 4 +- .../mar_LAB_01_v1_bollinger_reversao.ntsl | 4 +- .../mar_LAB_02_v1_estocastico_cruzamento.ntsl | 4 +- .../ntsl/mar_LAB_03_v1_cci_reversao.ntsl | 4 +- .../mar_LAB_04_v1_williams_r_pullback.ntsl | 4 +- .../ntsl/mar_LAB_05_v1_obv_divergencia.ntsl | 4 +- .../ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl | 4 +- ...ar_LAT_02_v1_bollinger_reversao_range.ntsl | 4 +- .../ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl | 4 +- .../ntsl/mar_LAT_04_v1_keltner_reversao.ntsl | 4 +- .../mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl | 4 +- .../mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl | 4 +- .../mar_LSW_02_v1_canal_paralelo_swing.ntsl | 4 +- .../mar_LSW_03_v1_adx_baixo_envelope.ntsl | 4 +- .../mar_LSW_04_v1_estoc_semanal_reversao.ntsl | 4 +- ...mar_LSW_05_v1_macd_histograma_lateral.ntsl | 4 +- .../mar_MED_01_v1_cruzamento_mme9_mme21.ntsl | 4 +- .../mar_MED_02_v1_cruzamento_mme9_mma50.ntsl | 4 +- .../ntsl/mar_MED_03_v1_posicao_4_medias.ntsl | 4 +- .../mar_MED_04_v1_toque_rejeicao_mme.ntsl | 4 +- .../ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl | 4 +- .../mar_MED_06_v1_golden_death_cross.ntsl | 4 +- .../mar_PPV_01_v1_atr_trailing_agressivo.ntsl | 4 +- .../mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl | 4 +- .../mar_PPV_03_v1_estocastico_trailing.ntsl | 4 +- ..._PPV_04_v1_macd_momentum_saida_rapida.ntsl | 4 +- .../mar_PPV_05_v1_parciais_multiplos.ntsl | 4 +- .../mql5/mar_REV_01_v1_pullback_mme21.mq5 | 486 ++++++++++++++---- .../mql5/mar_REV_02_v1_zscore_afastamento.mq5 | 477 +++++++++++++---- .../mql5/mar_REV_03_v1_bb_retorno_media.mq5 | 473 +++++++++++++---- .../mar_REV_04_v1_ifr_afastamento_pct.mq5 | 469 +++++++++++++---- .../mar_REV_05_v1_envelope_dinamico_atr.mq5 | 477 +++++++++++++---- .../ntsl/mar_REV_01_v1_pullback_mme21.ntsl | 4 +- .../mar_REV_02_v1_zscore_afastamento.ntsl | 4 +- .../ntsl/mar_REV_03_v1_bb_retorno_media.ntsl | 4 +- .../mar_REV_04_v1_ifr_afastamento_pct.ntsl | 4 +- .../mar_REV_05_v1_envelope_dinamico_atr.ntsl | 4 +- .../mar_SCM_01_v1_impulso_candle_1min.ntsl | 4 +- .../ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl | 4 +- .../mar_SCM_03_v1_microcanal_breakout.ntsl | 4 +- .../ntsl/mar_SCM_04_v1_pullback_ema5.ntsl | 4 +- ...mar_SCM_05_v1_volume_spike_direcional.ntsl | 4 +- ...r_ST_01_v1_ifr_mme200_stop_estrutural.ntsl | 4 +- ...ar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl | 4 +- ...mar_ST_03_v1_candle_forca_stop_atr15x.ntsl | 4 +- .../mar_ST_04_v1_confluencia_maxima_rr3.ntsl | 4 +- ...mar_ST_05_v1_atr_dinamico_confluencia.ntsl | 4 +- .../ntsl/mar_TND_01_v1_adx_tres_medias.ntsl | 4 +- .../mar_TND_02_v1_cruzamento_mme_volume.ntsl | 4 +- .../mar_TND_03_v1_macd_tendencia_mme200.ntsl | 4 +- .../mar_TND_04_v1_donchian_tendencia.ntsl | 4 +- ...r_TND_05_v1_ifr_continuacao_tendencia.ntsl | 4 +- .../ntsl/mar_VWP_01_v1_vwap_pullback.ntsl | 4 +- ..._VWP_02_v1_vwap_cruzamento_direcional.ntsl | 4 +- .../mar_VWP_03_v1_vwap_desvio_extremo.ntsl | 4 +- .../mar_VWP_04_v1_vwap_ifr_confluencia.ntsl | 4 +- ..._VWP_05_v1_vwap_horario_institucional.ntsl | 4 +- .../mar_TFM_01_v1_abertura_impulso_2min.ntsl | 4 +- .../ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl | 4 +- ...FM_03_v1_ifr_extremo_2min_stop_rapido.ntsl | 4 +- ..._TFM_04_v1_3candles_consecutivos_5min.ntsl | 4 +- .../ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl | 4 +- ... que \303\251 importante no primeiro c.md" | 2 + plataformas/mql5/mar_IFR_01_XAUUSD.mq5 | 482 +++++++++++------ plataformas/mql5/mar_IFR_02_NAS100.mq5 | 444 +++++++++++----- plataformas/mql5/mar_MED_01_XAUUSD.mq5 | 447 +++++++++++----- plataformas/mql5/mar_MED_02_NAS100.mq5 | 465 ++++++++++++----- plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 | 7 +- 155 files changed, 3611 insertions(+), 1226 deletions(-) create mode 100644 "estudo_teorias/Olhando o que \303\251 importante no primeiro c.md" diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 523c668..3f201c1 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -157,6 +157,42 @@ and or not { booleanos } - Inputs de risco espelham o NTSL: `UsarGestaoRisco`, `UsarHardLock`, `SaldoConta`, `RiscoDiaPct`, `RiscoSemanaPct`, `MaxStopsConsecutivos`, `ValorPorPonto` - Salvar em `GRUPO/mql5/` ao lado da pasta `ntsl/` +### Identificação de Ordens e Rastreabilidade + +**Regra obrigatória:** todo robô NTSL e MQL5 deve logar seu nome no momento da ativação, para permitir rastrear qual robô gerou cada ordem em ambiente de simulação com múltiplos robôs rodando simultaneamente. + +#### NTSL — Profit + +Adicionar **sempre como primeira instrução** dentro do `begin` principal: + +```ntsl +begin + if CurrentBar = 1 then + Print("Robo ativo: mar_GRUPO_NN_descricao_timeframe"); +``` + +> **Como visualizar:** Ferramentas → Log do sistema no Profit. O campo "Estratégia" nas abas Ordens/Posições também exibe o nome definido em `Estrategia:` no cabeçalho. + +#### MQL5 — MetaTrader 5 + +Adicionar **ao final do `OnInit()`**, imediatamente antes de `return INIT_SUCCEEDED;`: + +```mql5 +Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); +return INIT_SUCCEEDED; +``` + +> **Como visualizar:** aba **Journal/Experts** no Terminal do MT5. + +**Regra obrigatória — comment em toda ordem:** passar sempre o nome do robô no campo `comment` de `trade.Buy` e `trade.Sell`. O comment fica gravado permanentemente no histórico de deals (coluna "Comentário"), permitindo rastrear a origem da ordem mesmo após reinício do terminal: + +```mql5 +trade.Buy(LotePadrao, _Symbol, 0, sl, tp, "mar_GRUPO_NN_descricao"); +trade.Sell(LotePadrao, _Symbol, 0, sl, tp, "mar_GRUPO_NN_descricao"); +``` + +--- + ### Scripts Python (Backtest) - Usar Python 3.10 (`C:/Program Files/Python310/python.exe`) diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl index 6192a81..48b9dd5 100644 --- a/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_01_v1_candle_forca_50pts.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_5M1_01_v1_candle_forca_50pts Grupo: 50mais1 – Tier 1 (#01) Descricao: Entra quando candle atual tem range >= 50 pontos e fecha @@ -40,6 +40,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_5M1_01_v1_candle_forca_50pts"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl index d65dd49..5b10803 100644 --- a/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_02_v1_impulso_acumulado.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_5M1_02_v1_impulso_acumulado Grupo: 50mais1 – Tier 1 (#02) Descricao: Detecta impulso acumulado: soma dos ultimos 3 candles na mesma @@ -41,6 +41,8 @@ var i : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_5M1_02_v1_impulso_acumulado"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl index b20937d..43e56b3 100644 --- a/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_03_v1_gap_continuacao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_5M1_03_v1_gap_continuacao Grupo: 50mais1 – Tier 1 (#03) Descricao: Entra no gap de abertura (diferenca entre abertura e fechamento anterior @@ -40,6 +40,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_5M1_03_v1_gap_continuacao"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl index c596b8f..85a1fa7 100644 --- a/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_04_v1_ifr_extremo_impulso.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_5M1_04_v1_ifr_extremo_impulso Grupo: 50mais1 – Tier 1 (#04) Descricao: IFR em extremo + candle de impulso (range >= 50pts na mesma barra @@ -35,6 +35,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_5M1_04_v1_ifr_extremo_impulso"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl b/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl index d35946a..0231908 100644 --- a/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl +++ b/automacao_backtests/50mais1/ntsl/mar_5M1_05_v1_macd_histograma_explosao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_5M1_05_v1_macd_histograma_explosao Grupo: 50mais1 – Tier 1 (#05) Descricao: Entra quando histograma MACD cresce >= X ticks consecutivos E candle @@ -40,6 +40,8 @@ var i : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_5M1_05_v1_macd_histograma_explosao"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl index cfae7c4..3889b36 100644 --- a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_01_v1_donchian_rompimento.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_BRK_01_v1_donchian_rompimento Grupo: BREAKOUT – Tier 1 (#01) Descricao: Rompimento do canal de Donchian: compra no novo maximo de N barras, @@ -31,6 +31,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_BRK_01_v1_donchian_rompimento"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl index 6e89e25..2b9b096 100644 --- a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_02_v1_consolidacao_breakout.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_BRK_02_v1_consolidacao_breakout Grupo: BREAKOUT – Tier 1 (#02) Descricao: Detecta consolidacao (range interno < X pts por N barras) e @@ -34,6 +34,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_BRK_02_v1_consolidacao_breakout"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl index 23ed94b..0974d2f 100644 --- a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_03_v1_bollinger_squeeze_expansao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_BRK_03_v1_bollinger_squeeze_expansao Grupo: BREAKOUT – Tier 1 (#03) Descricao: Bollinger Bands squeeze (largura < X%) + rompimento da banda. @@ -20,6 +20,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_BRK_03_v1_bollinger_squeeze_expansao"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl index d0d1bdd..4f43bd2 100644 --- a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_04_v1_maxmin_abertura_dia.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_BRK_04_v1_maxmin_abertura_dia Grupo: BREAKOUT – Tier 1 (#04) Descricao: Mapeia range das primeiras N barras do dia e entra no rompimento. @@ -23,6 +23,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_BRK_04_v1_maxmin_abertura_dia"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl index 3cce302..d119977 100644 --- a/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl +++ b/automacao_backtests/BREAKOUT/ntsl/mar_BRK_05_v1_pivo_rompimento_reteste.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_BRK_05_v1_pivo_rompimento_reteste Grupo: BREAKOUT – Tier 1 (#05) Descricao: Rompimento do pivo de alta/baixa (maxima/minima do dia anterior). @@ -24,6 +24,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_BRK_05_v1_pivo_rompimento_reteste"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl index 0fab12d..23ac01e 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_01_v1_gap_ext_alta_vwap_vol Catalogo: #41 — Tier 1 Descricao: Gap externo para CIMA + preço acima VWAP diaria + corpo >70% + volume climático @@ -57,6 +57,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_01_v1_gap_ext_alta_vwap_vol"); // ── NOVO DIA: reset variáveis ──────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl index 43b1427..c691d40 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_02_v1_gap_ext_baixo_vwap_vol.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_02_v1_gap_ext_baixo_vwap_vol Catalogo: #42 — Tier 1 Descricao: Gap externo para BAIXO + preço abaixo VWAP diaria + corpo >70% + volume climático @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_02_v1_gap_ext_baixo_vwap_vol"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl index c571586..8496ce3 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_03_v1_gap_int_vwap_rompe_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_03_v1_gap_int_vwap_rompe_maxD1 Catalogo: #43 — Tier 1 Descricao: Gap INTERNO + acima VWAP + corpo de alta + 1o candle fecha acima da máxima D-1 @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_03_v1_gap_int_vwap_rompe_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl index 41e90c4..15bb1aa 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_04_v1_gap_int_vwap_rompe_minD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_04_v1_gap_int_vwap_rompe_minD1 Catalogo: #44 — Tier 1 Descricao: Gap INTERNO + abaixo VWAP + corpo de baixa + 1o candle fecha abaixo da mínima D-1 @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_04_v1_gap_int_vwap_rompe_minD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl index ec5b36f..5bf85e1 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_05_v1_marubozu_alta_vol.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_05_v1_marubozu_alta_vol Catalogo: #31 — Tier 1 Descricao: Marubozu de ALTA (corpo >90%, sem pavios) + volume >2x média @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_05_v1_marubozu_alta_vol"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl index cede6ce..5d0740b 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_06_v1_marubozu_baixa_vol.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_06_v1_marubozu_baixa_vol Catalogo: #32 — Tier 1 Descricao: Marubozu de BAIXA (corpo >90%, sem pavios) + volume >2x média @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_06_v1_marubozu_baixa_vol"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl index 268cc83..946cb51 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_07_v1_abertura_acima_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_07_v1_abertura_acima_maxD1 Catalogo: #21 — Tier 1 Descricao: Abertura acima da máxima D-1 + 1o candle de alta com corpo >60% @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_07_v1_abertura_acima_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl index 08ee234..e75ce2d 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_08_v1_abertura_abaixo_minD1 Catalogo: #22 — Tier 1 Descricao: Abertura abaixo da mínima D-1 + 1o candle de baixa com corpo >60% @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_08_v1_abertura_abaixo_minD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl index dccf72a..98272a0 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_09_v1_volume_iniciativa.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_09_v1_volume_iniciativa Catalogo: #51 — Tier 1 Descricao: Volume >3x média — qualquer formação. Operar na direção do fechamento do 1o candle. @@ -44,6 +44,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_09_v1_volume_iniciativa"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl index 9d895da..120977d 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_10_v1_volume_maximo_confluencia.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_10_v1_volume_maximo_confluencia Catalogo: #52 — Tier 1 Descricao: Volume >3x média + corpo >70% — máxima confluência (Volume + Price Action). @@ -58,6 +58,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_10_v1_volume_maximo_confluencia"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl index 2e62310..cfdf0e8 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_11_v1_vwap_inversao_polo_compra.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_11_v1_vwap_inversao_polo_compra Catalogo: #13 — Tier 2 Descricao: Abertura ABAIXO da VWAP diaria + 1o candle FECHA ACIMA da VWAP @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_11_v1_vwap_inversao_polo_compra"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl index 15213ae..a37ba65 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_12_v1_vwap_inversao_polo_venda.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_12_v1_vwap_inversao_polo_venda Catalogo: #14 — Tier 2 Descricao: Abertura ACIMA da VWAP diaria + 1o candle FECHA ABAIXO da VWAP @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_12_v1_vwap_inversao_polo_venda"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl index f97c2c4..140e711 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_13_v1_gap_int_rompe_maxD1_vwap.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_13_v1_gap_int_rompe_maxD1_vwap Catalogo: #23 — Tier 2 Descricao: Gap interno + 1o candle rompe maxima D-1 + acima VWAP diaria @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_13_v1_gap_int_rompe_maxD1_vwap"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl index 2bd445f..63fd970 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_14_v1_gap_int_rompe_minD1_vwap.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_14_v1_gap_int_rompe_minD1_vwap Catalogo: #24 — Tier 2 Descricao: Gap interno + 1o candle rompe minima D-1 + abaixo VWAP diaria @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_14_v1_gap_int_rompe_minD1_vwap"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl index 1d41706..41be549 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_15_v1_gap_parcial_fecha_acima_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_15_v1_gap_parcial_fecha_acima_maxD1 Catalogo: #28 — Tier 2 Descricao: 1o candle INTEIRAMENTE acima do range D-1 (gap + forca) + pullback e compras @@ -49,6 +49,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_15_v1_gap_parcial_fecha_acima_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl index 54dc478..8906a15 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_16_v1_gap_forca_pullback_venda.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_16_v1_gap_forca_pullback_venda Catalogo: #29 — Tier 2 Descricao: 1o candle INTEIRAMENTE ABAIXO do range D-1 (gap baixo + forca) + pullback venda @@ -50,6 +50,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_16_v1_gap_forca_pullback_venda"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl index 65298d6..06eecc5 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_17_v1_martelo_alta.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_17_v1_martelo_alta Catalogo: #33 — Tier 2 Descricao: Padrao Martelo no 1o candle: pavio inferior >= 60% do range + corpo na metade @@ -47,6 +47,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_17_v1_martelo_alta"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl index c871a3e..1dcc8c4 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_18_v1_estrela_cadente_venda.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_18_v1_estrela_cadente_venda Catalogo: #34 — Tier 2 Descricao: Padrao Estrela Cadente no 1o candle: pavio superior >= 60% do range + corpo na @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_18_v1_estrela_cadente_venda"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl index a30fa7e..7c0f10d 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_19_v1_forca_pura_alta.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_19_v1_forca_pura_alta Catalogo: #39 — Tier 2 Descricao: Corpo de alta > 60% + fecha proximo da maxima C1 (>= 98% do range) + gap interno @@ -50,6 +50,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_19_v1_forca_pura_alta"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl index e04a4e8..cfbcf5a 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_20_v1_forca_pura_baixa.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_20_v1_forca_pura_baixa Catalogo: #40 — Tier 2 Descricao: Corpo de baixa > 60% + fecha proximo da minima C1 (<= 5% do range) + gap interno @@ -50,6 +50,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_20_v1_forca_pura_baixa"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl index d5f5886..59065e3 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_21_v1_atr_zona_saudavel.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_21_v1_atr_zona_saudavel Catalogo: #61 — Tier 2 Descricao: Range do 1o candle entre 40%-70% do ATR (zona saudavel/ideal). @@ -54,6 +54,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_21_v1_atr_zona_saudavel"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl index 1c1cd2b..449ee54 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_22_v1_gap_exaustao_alta_reversao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_22_v1_gap_exaustao_alta_reversao Catalogo: #3 — Tier 3 Descricao: Gap externo para CIMA + 1o candle: pavio superior > 50% do range + fecha ABAIXO @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_22_v1_gap_exaustao_alta_reversao"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl index 09b6463..da4c437 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_23_v1_gap_exaustao_baixa_reversao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_23_v1_gap_exaustao_baixa_reversao Catalogo: #4 — Tier 3 Descricao: Gap externo para BAIXO + 1o candle: pavio inferior > 50% do range + fecha ACIMA @@ -44,6 +44,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_23_v1_gap_exaustao_baixa_reversao"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl index 68de312..975f0d4 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_24_v1_gap_grande_rejeicao_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_24_v1_gap_grande_rejeicao_maxD1 Catalogo: #45 — Tier 3 Descricao: Gap exaustao para CIMA (> 1.5x ATR) + C1 rejeita maxima D-1 com pavio longo @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_24_v1_gap_grande_rejeicao_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl index 7aa1588..854b49f 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_25_v1_gap_grande_suporte_minD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_25_v1_gap_grande_suporte_minD1 Catalogo: #46 — Tier 3 Descricao: Gap exaustao para BAIXO (> 1.5x ATR) + C1 encontra suporte na minima D-1 com @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_25_v1_gap_grande_suporte_minD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl index 30fd66f..2d686e8 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_26_v1_colapso_minD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_26_v1_colapso_minD1 Catalogo: #48 — Tier 3 Descricao: Abertura proxima da minima D-1 (zona de suporte) + VWAP acima (resistencia) @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_26_v1_colapso_minD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl index 66687bb..8ae58c6 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_27_v1_breakout_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_27_v1_breakout_maxD1 Catalogo: #49 — Tier 3 Descricao: Abertura proxima da maxima D-1 (zona de resistencia) + VWAP abaixo (suporte) @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_27_v1_breakout_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl index 0ff53c8..e9f6c76 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_28_v1_gap_parcial_fecha_acima_maxD1_simples Catalogo: #8 — Tier 3 Descricao: Gap parcial para cima (abertura entre fechD1 e maxD1) + 1o candle fecha ACIMA @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_28_v1_gap_parcial_fecha_acima_maxD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl index 715368c..4f67217 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1 Catalogo: #9 — Tier 3 Descricao: Gap parcial para baixo (abertura entre minD1 e fechD1) + 1o candle fecha ABAIXO @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl index 2b8f152..382a384 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_30_v1_rejeicao_maxD1_vol_baixo Catalogo: #25 — Tier 3 Descricao: 1o candle TESTA a maxima D-1 (High toca maxD1) mas FECHA ABAIXO dela @@ -43,6 +43,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_30_v1_rejeicao_maxD1_vol_baixo"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl index 4b34f39..6f526c3 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_31_v1_suporte_minD1_vol_baixo Catalogo: #26 — Tier 3 Descricao: 1o candle TESTA a minima D-1 (Low toca minD1) mas FECHA ACIMA dela @@ -43,6 +43,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_31_v1_suporte_minD1_vol_baixo"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl index d435622..6db272c 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_32_v1_absorcao_vol_medio Catalogo: #55 — Tier 3 Descricao: Volume 1.5x-3x a media + corpo pequeno (< 30% range) = absorcao/luta de preco. @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_32_v1_absorcao_vol_medio"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl index c15b526..80f7e8b 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PC_33_v1_absorcao_vol_alto_compressao Catalogo: #60 — Tier 3 Descricao: Range C1 < 20% do ATR (compressao extrema) + volume > 1.5x media = absorcao @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PC_33_v1_absorcao_vol_alto_compressao"); if Date <> Date[1] then begin iCandleDia := 1; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl index 475a17b..4e997c5 100644 --- a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_01_v1_breakeven_11.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DDZ_01_v1_breakeven_11 Grupo: DRAWDOWNZERO – Tier 1 (#01) Descricao: Entrada por IFR extremo. Assim que preco atinge 1:1 (alvo = stop), @@ -25,6 +25,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DDZ_01_v1_breakeven_11"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl index 549fda3..21e6ee1 100644 --- a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_02_v1_parcial_breakeven_rapido.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DDZ_02_v1_parcial_breakeven_rapido Grupo: DRAWDOWNZERO – Tier 1 (#02) Descricao: Escala parcial (50%) no alvo rapido (60pts) e move stop para entrada. @@ -22,6 +22,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DDZ_02_v1_parcial_breakeven_rapido"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl index 261f2ea..2ee5533 100644 --- a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_03_v1_trailing_apertado_imediato.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DDZ_03_v1_trailing_apertado_imediato Grupo: DRAWDOWNZERO – Tier 1 (#03) Descricao: Trailing stop imediato desde a entrada (ATR × 1.0). @@ -22,6 +22,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DDZ_03_v1_trailing_apertado_imediato"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl index 3593cfc..43d2835 100644 --- a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_04_v1_stop_candle_anterior.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DDZ_04_v1_stop_candle_anterior Grupo: DRAWDOWNZERO – Tier 1 (#04) Descricao: Stop na extremidade do candle anterior (estrutural). @@ -24,6 +24,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DDZ_04_v1_stop_candle_anterior"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl index b9b9720..2a7dfc9 100644 --- a/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl +++ b/automacao_backtests/DRAWDOWNZERO/ntsl/mar_DDZ_05_v1_time_stop_nao_evoluiu.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DDZ_05_v1_time_stop_nao_evoluiu Grupo: DRAWDOWNZERO – Tier 1 (#05) Descricao: Se posicao aberta nao evolui em X barras (preco nao avancou @@ -24,6 +24,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DDZ_05_v1_time_stop_nao_evoluiu"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" index f293dc5..ad2515d 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_01_v1_ifr_candle_reversao.ntsl" @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DC_01_v1_ifr_candle_reversao Grupo: DUPLACONFIRMACAO – Tier 1 (#01) Descricao: Dupla confirmacao: IFR em extremo (1a) + candle de reversao @@ -23,6 +23,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DC_01_v1_ifr_candle_reversao"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" index f59425a..5d767ae 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_02_v1_medias_volume.ntsl" @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DC_02_v1_medias_volume Grupo: DUPLACONFIRMACAO – Tier 1 (#02) Descricao: Dupla confirmacao: cruzamento MME9/MME21 (1a) + volume acima @@ -21,6 +21,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DC_02_v1_medias_volume"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" index 68afea7..3dbfb6e 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_03_v1_macd_ifr.ntsl" @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DC_03_v1_macd_ifr Grupo: DUPLACONFIRMACAO – Tier 1 (#03) Descricao: Dupla confirmacao: MACD cruza linha de sinal (1a) + IFR sai @@ -21,6 +21,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DC_03_v1_macd_ifr"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" index a1f9cef..5f0f440 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_04_v1_adx_candle_continuacao.ntsl" @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DC_04_v1_adx_candle_continuacao Grupo: DUPLACONFIRMACAO – Tier 1 (#04) Descricao: Dupla confirmacao: ADX acima de 25 (mercado em tendencia = 1a) + @@ -23,6 +23,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DC_04_v1_adx_candle_continuacao"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" index c2df499..fee5353 100644 --- "a/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" +++ "b/automacao_backtests/DUPLACONFIRMA\303\207\303\203O/ntsl/mar_DC_05_v1_rompimento_reteste.ntsl" @@ -1,4 +1,4 @@ -{ +{ Robo: mar_DC_05_v1_rompimento_reteste Grupo: DUPLACONFIRMACAO – Tier 1 (#05) Descricao: Dupla confirmacao temporal: rompimento de nivel chave (1a) + @@ -26,6 +26,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_DC_05_v1_rompimento_reteste"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl index 2aacf6f..3ce3b4a 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_01_v1_primeira_barra_rompimento.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_HOR_01_v1_primeira_barra_rompimento Grupo: HORARIO_ESPECIFICO – Tier 1 (#01) Descricao: Opera apenas na primeira hora (09:00-10:00). Mapeia range da @@ -24,6 +24,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_HOR_01_v1_primeira_barra_rompimento"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl index 0a18f06..249430a 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_02_v1_momentum_manha.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_HOR_02_v1_momentum_manha Grupo: HORARIO_ESPECIFICO – Tier 1 (#02) Descricao: Opera somente das 10h00 as 11h30 (leilao da manha). @@ -23,6 +23,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_HOR_02_v1_momentum_manha"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl index 6ea5189..390a56e 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_03_v1_reversao_almoco.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_HOR_03_v1_reversao_almoco Grupo: HORARIO_ESPECIFICO – Tier 1 (#03) Descricao: Opera das 12h00 as 13h30 (horario de almoco / baixa liquidez). @@ -22,6 +22,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_HOR_03_v1_reversao_almoco"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl index f257d5f..753875a 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_04_v1_abertura_ny_momentum.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_HOR_04_v1_abertura_ny_momentum Grupo: HORARIO_ESPECIFICO – Tier 1 (#04) Descricao: Opera das 15h30 as 17h00 (abertura bolsas EUA / alta volatilidade). @@ -21,6 +21,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_HOR_04_v1_abertura_ny_momentum"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl index 8638a05..a8184b5 100644 --- a/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl +++ b/automacao_backtests/HORARIO_ESPECIFICO/ntsl/mar_HOR_05_v1_fechamento_b3.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_HOR_05_v1_fechamento_b3 Grupo: HORARIO_ESPECIFICO – Tier 1 (#05) Descricao: Opera somente das 17h00 as 17h45 (fechamento B3). @@ -22,6 +22,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_HOR_05_v1_fechamento_b3"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl index 9af4873..1b69cf6 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v10_balanceado_regime60min63%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v10_balanceado_regime Autor: Wesley Descricao: Abordagem balanceada com logica por regime de mercado. @@ -26,6 +26,8 @@ var bVolumeAlto, bRegimeTendenciaAlta, bRegimeTendenciaBaixa, bRegimeLateral : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v10_balanceado_regime60min63%"); fIFR := IFR(PeriodoIFR); fMME9 := MediaExp(PeriodoMMERapida, Close); fMME9Anterior := MediaExp(PeriodoMMERapida, Close)[1]; diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl index cf84213..95d544f 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v18_bandas_dinamicas60min60%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v18_bandas_dinamicas Autor: Wesley Descricao: Bandas dinamicas de IFR baseadas em range do proprio indicador. @@ -19,6 +19,8 @@ var fIFR, fMinIFR, fMaxIFR, fRangeIFR, fNivelCompra, fNivelVenda : float; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v18_bandas_dinamicas60min60%"); fIFR := IFR(PeriodoIFR); fMinIFR := Lowest(IFR(PeriodoIFR), LookbackBandas); fMaxIFR := Highest(IFR(PeriodoIFR), LookbackBandas); diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl index 1b81b68..c584f0d 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v24_controle_risco_diario1min67%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v24_controle_risco_diario Autor: Wesley Descricao: IFR com controle diario de risco por limite de trades e saidas por tempo. @@ -23,6 +23,8 @@ var bBloqueadoDia, bSaiuPorTempo : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v24_controle_risco_diario1min67%"); fIFR := IFR(PeriodoIFR); if Date <> Date[1] then diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl index 5e9abca..e651d31 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v25_ifr_mme200_contexto2min69%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v25_ifr_mme200_contexto Autor: Wesley Descricao: IFR com filtro de contexto pela MME200. @@ -22,6 +22,8 @@ var bContextoCompra, bContextoVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v25_ifr_mme200_contexto2min69%"); fIFR := IFR(PeriodoIFR); fMME200 := MediaExp(PeriodoMMEContexto, Close); diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl index beea2b0..c698ef2 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v27_um_trade_por_direcao60min54%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v27_um_trade_por_direcao Autor: Wesley Descricao: IFR com limite de 1 trade por direcao por sessao e risco curto por tempo. @@ -21,6 +21,8 @@ var bPodeComprar, bPodeVender : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v27_um_trade_por_direcao60min54%"); fIFR := IFR(PeriodoIFR); if Date <> Date[1] then diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl index ba122d5..ac84da3 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v28_ifr_adx_filtro30min57%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v28_ifr_adx_filtro Autor: Wesley Descricao: IFR com filtro de forca de tendencia por ADX. @@ -23,6 +23,8 @@ var bTendenciaValida : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v28_ifr_adx_filtro30min57%"); fIFR := IFR(PeriodoIFR); fADX := ADX(PeriodoADX, PeriodoADX); bTendenciaValida := (fADX >= ADXMinimo); diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl index 90a2ce8..e852e4d 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v31_reversao_volume_relativo60min72%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v31_reversao_volume_relativo Autor: Wesley Descricao: Reversao IFR com filtro de volume relativo. @@ -23,6 +23,8 @@ var bVolumeAlto : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v31_reversao_volume_relativo60min72%"); fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); bVolumeAlto := (Volume >= (vMediaVol * FatorVolume)); diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl index 03f5e4d..c6ec715 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v33_pullback_mme20060min67%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v33_pullback_mme200 Autor: Wesley Descricao: Pullback de IFR com contexto pela MME200. @@ -20,6 +20,8 @@ var bContextoCompra, bContextoVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v33_pullback_mme20060min67%"); fIFR := IFR(PeriodoIFR); fMME200 := MediaExp(PeriodoMMEContexto, Close); diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl index 1ab1498..a6fd72a 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v36_divergencia_regular_pivo60min62%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v36_divergencia_regular_pivo Autor: Wesley Descricao: Divergencia regular de IFR com confirmacao por rompimento de pivo curto. @@ -19,6 +19,8 @@ var bDivCompra, bDivVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v36_divergencia_regular_pivo60min62%"); fIFR := IFR(PeriodoIFR); fIFRAnt := IFR(PeriodoIFR)[1]; fPivoAlta := Highest(High, LookbackPivo)[1]; diff --git a/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl b/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl index 705b4bc..ce32a17 100644 --- a/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl +++ b/automacao_backtests/IFR_RSI/legado/robo_ifr_v4_divergencia_confirmada60min90%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v4_divergencia_confirmada Autor: Wesley Descricao: Divergencia simples de IFR com confirmacao por candle de rejeicao. @@ -22,6 +22,8 @@ var bDivergenciaAlta, bDivergenciaBaixa : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v4_divergencia_confirmada60min90%"); fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl index f6593ab..afb220e 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_01_v1_divergencia_confirmada.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_01_v1_divergencia_confirmada Grupo: IFR_RSI — Tier 1 (#01) Descricao: Divergencia bullish/bearish de IFR confirmada por candle de rejeicao @@ -51,6 +51,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_01_v1_divergencia_confirmada"); // ── NOVO DIA: reset ────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl index 1340da5..ec8ef98 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_02_v1_reversao_volume_relativo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_02_v1_reversao_volume_relativo Grupo: IFR_RSI — Tier 1 (#02) Descricao: Reversao de IFR (extremo → retorno) com filtro de volume relativo. @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_02_v1_reversao_volume_relativo"); if Date <> Date[1] then begin iBarrasEmPosicao := 0; diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl index c60f5f6..beba09a 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_03_v1_ifr_mme200_contexto.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_03_v1_ifr_mme200_contexto Grupo: IFR_RSI — Tier 1 (#03) Descricao: IFR reversao com filtro de contexto pela MME200. @@ -42,6 +42,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_03_v1_ifr_mme200_contexto"); if Date <> Date[1] then begin iBarrasEmPosicao := 0; diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl index d784e0b..d6c7f6c 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_04_v1_bandas_dinamicas.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_04_v1_bandas_dinamicas Grupo: IFR_RSI — Tier 2 (#04) Descricao: Bandas dinamicas do IFR: calcula o percentil 25 (zona sobrevenda) @@ -45,6 +45,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_04_v1_bandas_dinamicas"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl index b9370fc..db47c98 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_05_v1_controle_risco_diario.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_05_v1_controle_risco_diario Grupo: IFR_RSI — Tier 2 (#05) Descricao: Controle rigoroso de risco diario com limite de trades e saidas @@ -55,6 +55,8 @@ var bJanelaTempo, bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_05_v1_controle_risco_diario"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl index a8419f3..18a7047 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_06_v1_um_trade_por_direcao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_06_v1_um_trade_por_direcao Grupo: IFR_RSI — Tier 2 (#06) Descricao: Protetor de sobre-operacao: limita a exatamente 1 trade de compra @@ -52,6 +52,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_06_v1_um_trade_por_direcao"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl index 08522b8..4a0769d 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_07_v1_ifr_adx_filtro.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_07_v1_ifr_adx_filtro Grupo: IFR_RSI — Tier 2 (#07) Descricao: Combina sinal IFR com filtro de ADX: so opera reversao quando @@ -52,6 +52,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_07_v1_ifr_adx_filtro"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl index f918f6c..dba6462 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_08_v1_divergencia_pivo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_08_v1_divergencia_pivo Grupo: IFR_RSI — Tier 2 (#08) Descricao: Divergencia regular do IFR + confirmacao de rompimento de pivo @@ -50,6 +50,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_08_v1_divergencia_pivo"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl index 33a645e..744c182 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_09_v1_pullback_mme200.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_09_v1_pullback_mme200 Grupo: IFR_RSI — Tier 1 (#09) Descricao: Opera pullback do IFR quando o preco esta acima da MME200 @@ -54,6 +54,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_09_v1_pullback_mme200"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl index 095da38..a31e7a3 100644 --- a/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFR_10_v1_regime_balanceado.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_IFR_10_v1_regime_balanceado Grupo: IFR_RSI — Tier 2 (#10) Descricao: Detecta o regime de mercado (tendencia ou lateralidade) usando @@ -58,6 +58,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFR_10_v1_regime_balanceado"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl index 6f7e40e..446df08 100644 --- a/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/1robo_ifr_v6_saida_hibrida60min77%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v6_saida_hibrida Autor: Wesley Descricao: Entrada por extremos de IFR e saida hibrida: @@ -51,6 +51,8 @@ var iBarrasEmPosicao, iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: 1robo_ifr_v6_saida_hibrida60min77%"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl index 451823b..2aaf443 100644 --- a/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/2robo_ifr_v5_regime_volatilidade60min90%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v5_regime_volatilidade Autor: Wesley Descricao: Ajusta extremos de IFR por regime de volatilidade (ATR relativo). @@ -49,6 +49,8 @@ var iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: 2robo_ifr_v5_regime_volatilidade60min90%"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl index 437d404..aec24b6 100644 --- a/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/3robo_ifr_v45_volume_por_horario60min75%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v45_volume_por_horario Autor: Wesley Descricao: IFR com filtro de volume relativo por janela horaria simples. @@ -46,6 +46,8 @@ var iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: 3robo_ifr_v45_volume_por_horario60min75%"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl index 022ba77..a2f0181 100644 --- a/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/4robo_ifr_v20_ifr_assimetrico_lado30min62%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v20_ifr_assimetrico_lado Autor: Wesley Descricao: IFR com niveis assimetricos para compra e venda. @@ -42,6 +42,8 @@ var iDirecaoPosicao, iDiasSemana, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: 4robo_ifr_v20_ifr_assimetrico_lado30min62%"); if Date <> Date[1] then begin fResultadoDia := 0; diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl index 95c06e7..cec19f3 100644 --- a/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v11_agressivo_reentrada30min58%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v11_agressivo_reentrada Autor: Wesley Descricao: Abordagem agressiva com zona IFR mais aberta e uma reentrada por direcao. @@ -21,6 +21,8 @@ var fIFR : float; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v11_agressivo_reentrada30min58%"); fIFR := IFR(PeriodoIFR); if (not IsBought) and (not IsSold) then diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl index 50197c4..b548332 100644 --- a/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v1_reversao_extremos60min71%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v1_reversao_extremos Autor: Wesley Descricao: Reversao por extremos de IFR com candle de rejeicao + volume. @@ -24,6 +24,8 @@ var bSinalCompra, bSinalVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v1_reversao_extremos60min71%"); fIFR := IFR(PeriodoIFR); vMediaVol := Media(PeriodoMediaVolume, Volume); bVolumeAlto := (not UsarFiltroVolume) or (Volume >= (vMediaVol * FatorVolume)); diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl index 81eebba..8bddef6 100644 --- a/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v23_dupla_confirmacao15min87%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v23_dupla_confirmacao Autor: Wesley Descricao: IFR com zona neutra (no-trade zone) e confirmacao por 2 candles. @@ -23,6 +23,8 @@ var bConfirmacaoCompra, bConfirmacaoVenda, bForaZonaNeutra : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v23_dupla_confirmacao15min87%"); fIFR := IFR(PeriodoIFR); bConfirmacaoCompra := (Close > Close[1]) and (Close[1] > Close[2]); diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl index 42ffa0a..0a82c16 100644 --- a/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v47_orb_confirmacao_dupla60min66%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v47_orb_confirmacao_dupla Autor: Wesley Descricao: ORB + IFR com dupla confirmacao de direcao por candles. @@ -22,6 +22,8 @@ var bConfCompra, bConfVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v47_orb_confirmacao_dupla60min66%"); fIFR := IFR(PeriodoIFR); if Date <> Date[1] then diff --git a/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl index 150d6ca..f7cc732 100644 --- a/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl +++ b/automacao_backtests/IFR_RSI/top10/robo_ifr_v7_resgate_contexto30min84%.ntsl @@ -1,4 +1,4 @@ -{ +{ Estrategia: robo_ifr_v7_resgate_contexto Autor: Wesley Descricao: Versao de resgate com filtro de contexto para reduzir falso sinal. @@ -36,6 +36,8 @@ var bArmarCompra, bArmarVenda : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: robo_ifr_v7_resgate_contexto30min84%"); iHoraAtualHHMM := Time; if iHoraAtualHHMM > 2400 then iHoraAtualHHMM := Round(iHoraAtualHHMM / 100); diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl index 6dc38d9..8ca2d2c 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_01_v1_bollinger_reversao.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_LAB_01_v1_bollinger_reversao Grupo: LABORATORIO_INDICADORES – Tier 1 (#01) Descricao: Reversao nas Bandas de Bollinger: compra ao tocar banda inferior, @@ -23,6 +23,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAB_01_v1_bollinger_reversao"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl index ec9b719..7b164f0 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_02_v1_estocastico_cruzamento.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_LAB_02_v1_estocastico_cruzamento Grupo: LABORATORIO_INDICADORES – Tier 1 (#02) Descricao: Estocastico Lento: %K cruza %D em zonas extremas (oversold < 20, @@ -22,6 +22,8 @@ var iStopsConsec, iDirecaoPosicao, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAB_02_v1_estocastico_cruzamento"); if Date <> Date[1] then begin fResultadoDia := 0; bBloqueioDia := false; diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl index 0611632..899b521 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_03_v1_cci_reversao.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAB_03_v1_cci_reversao // Grupo: LABORATORIO_INDICADORES // Versão: v1 | Timeframe sugerido: 15min / 30min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAB_03_v1_cci_reversao"); // ---- Reset de risco ---- Risco := (SaldoConta * RiscoDiaPct / 100); diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl index a50f16e..e3eb493 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_04_v1_williams_r_pullback.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAB_04_v1_williams_r_pullback // Grupo: LABORATORIO_INDICADORES // Versão: v1 | Timeframe sugerido: 15min / 60min @@ -35,6 +35,8 @@ var StopPcts: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAB_04_v1_williams_r_pullback"); // ---- Reset diário ---- if (Date <> DataAnterior) then diff --git a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl index 68acb13..7a16d09 100644 --- a/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl +++ b/automacao_backtests/LABORATORIO_INDICADORES/ntsl/mar_LAB_05_v1_obv_divergencia.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAB_05_v1_obv_divergencia // Grupo: LABORATORIO_INDICADORES // Versão: v1 | Timeframe sugerido: 15min / 30min @@ -39,6 +39,8 @@ var DivergenciaBull, DivergenciaBear: boolean; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAB_05_v1_obv_divergencia"); // ---- Reset diário ---- if (Date <> DataAnterior) then diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl index 6c11938..f4c180f 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_01_v1_ifr_range_diario.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAT_01_v1_ifr_range_diario // Grupo: LATERALIZACAO_DAYTRADE // Versão: v1 | Timeframe sugerido: 5min / 15min @@ -36,6 +36,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAT_01_v1_ifr_range_diario"); // ---- Reset diário ---- if (Date <> DataAnterior) then diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl index c4f79c0..1daa613 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_02_v1_bollinger_reversao_range.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAT_02_v1_bollinger_reversao_range // Grupo: LATERALIZACAO_DAYTRADE // Versão: v1 | Timeframe sugerido: 5min / 15min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAT_02_v1_bollinger_reversao_range"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl index 21bd034..7869839 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_03_v1_vwap_oscilacao.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAT_03_v1_vwap_oscilacao // Grupo: LATERALIZACAO_DAYTRADE // Versão: v1 | Timeframe sugerido: 5min / 15min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAT_03_v1_vwap_oscilacao"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl index 1393544..b232648 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_04_v1_keltner_reversao.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAT_04_v1_keltner_reversao // Grupo: LATERALIZACAO_DAYTRADE // Versão: v1 | Timeframe sugerido: 5min / 15min @@ -36,6 +36,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAT_04_v1_keltner_reversao"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl index e6b4940..c6b9316 100644 --- a/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl +++ b/automacao_backtests/LATERALIZACAO_DAYTRADE/ntsl/mar_LAT_05_v1_ifr_duplo_confirmacao.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LAT_05_v1_ifr_duplo_confirmacao // Grupo: LATERALIZACAO_DAYTRADE // Versão: v1 | Timeframe sugerido: 5min / 15min @@ -38,6 +38,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LAT_05_v1_ifr_duplo_confirmacao"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl index 4c54c23..bfab391 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_01_v1_ifr_extremo_swingtrade.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LSW_01_v1_ifr_extremo_swingtrade // Grupo: LATERALIZACAO_SWINGTRADE // Versão: v1 | Timeframe sugerido: 60min / 240min @@ -36,6 +36,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LSW_01_v1_ifr_extremo_swingtrade"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl index e6b7e53..6d13d3f 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_02_v1_canal_paralelo_swing.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LSW_02_v1_canal_paralelo_swing // Grupo: LATERALIZACAO_SWINGTRADE // Versão: v1 | Timeframe: 60min / 240min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LSW_02_v1_canal_paralelo_swing"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl index 0f4d5b8..0bd6da2 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_03_v1_adx_baixo_envelope.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LSW_03_v1_adx_baixo_envelope // Grupo: LATERALIZACAO_SWINGTRADE // Versão: v1 | Timeframe: 60min / 240min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LSW_03_v1_adx_baixo_envelope"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl index 9fb5eb0..cdce847 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_04_v1_estoc_semanal_reversao.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LSW_04_v1_estoc_semanal_reversao // Grupo: LATERALIZACAO_SWINGTRADE // Versão: v1 | Timeframe: 60min / 240min @@ -37,6 +37,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LSW_04_v1_estoc_semanal_reversao"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl index 4635c55..d1c6c06 100644 --- a/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl +++ b/automacao_backtests/LATERALIZACAO_SWINGTRADE/ntsl/mar_LSW_05_v1_macd_histograma_lateral.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_LSW_05_v1_macd_histograma_lateral // Grupo: LATERALIZACAO_SWINGTRADE // Versão: v1 | Timeframe: 60min / 240min @@ -39,6 +39,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_LSW_05_v1_macd_histograma_lateral"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl index 0bda6f4..ba13f23 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_01_v1_cruzamento_mme9_mme21.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_01_v1_cruzamento_mme9_mme21 Grupo: MEDIAS — Tier 1 (#01) Descricao: Cruzamento das medias moveis exponenciais de curto prazo: @@ -49,6 +49,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_01_v1_cruzamento_mme9_mme21"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl index c1e551d..378bff7 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_02_v1_cruzamento_mme9_mma50.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_02_v1_cruzamento_mme9_mma50 Grupo: MEDIAS — Tier 1 (#02) Descricao: Cruzamento entre MME9 (curto prazo) e MMA50 (medio prazo). @@ -52,6 +52,8 @@ var bAcimaConsecutivo : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_02_v1_cruzamento_mme9_mma50"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl index 91155b4..e9c67bf 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_03_v1_posicao_4_medias.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_03_v1_posicao_4_medias Grupo: MEDIAS — Tier 1 (#03) Descricao: Analisa a posicao relativa do preco em relacao as 4 medias moveis @@ -52,6 +52,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_03_v1_posicao_4_medias"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl index a8ead91..4283963 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_04_v1_toque_rejeicao_mme.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_04_v1_toque_rejeicao_mme Grupo: MEDIAS — Tier 2 (#04) Descricao: Opera toque e rejeicao em media movel exponencial de referencia @@ -55,6 +55,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_04_v1_toque_rejeicao_mme"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl index b2b10f1..c52a342 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_05_v1_cruzamento_mma200.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_05_v1_cruzamento_mma200 Grupo: MEDIAS — Tier 1 (#05) Descricao: Usa o cruzamento da MMA200 como filtro de tendencia de longo @@ -49,6 +49,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_05_v1_cruzamento_mma200"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl b/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl index 81081fe..74dd313 100644 --- a/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl +++ b/automacao_backtests/MEDIAS/ntsl/mar_MED_06_v1_golden_death_cross.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_MED_06_v1_golden_death_cross Grupo: MEDIAS — Tier 1 (#06) Descricao: Golden Cross (MME50 cruza acima MMA200) e Death Cross @@ -53,6 +53,8 @@ var bEncerramento : boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_MED_06_v1_golden_death_cross"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl index 4566dfb..e6cd2e6 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_01_v1_atr_trailing_agressivo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PPV_01_v1_atr_trailing_agressivo Grupo: POUCOSPONTOSVENCEDORES — #01 Descricao: IFR reversao com trailing stop por ATR agressivo. @@ -49,6 +49,8 @@ var iStopsConsec, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PPV_01_v1_atr_trailing_agressivo"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl index 527bffb..bb6fb62 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_02_v1_breakeeven_alvo_fixo.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PPV_02_v1_breakeeven_alvo_fixo Grupo: POUCOSPONTOSVENCEDORES — #02 Descricao: IFR entry com alvo fixo de pontos (nao depende de indicador para sair) @@ -48,6 +48,8 @@ var iStopsConsec, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PPV_02_v1_breakeeven_alvo_fixo"); if Date <> Date[1] then begin iBarrasEmPosicao := 0; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl index ffd37b7..fab3550 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_03_v1_estocastico_trailing.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PPV_03_v1_estocastico_trailing Grupo: POUCOSPONTOSVENCEDORES — #03 Descricao: Estocástico rápido (5,3) — crossover em zona extrema (<20 / >80). @@ -49,6 +49,8 @@ var iStopsConsec, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PPV_03_v1_estocastico_trailing"); if Date <> Date[1] then begin iBarrasEmPosicao := 0; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl index 48813f8..f9f13fa 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_04_v1_macd_momentum_saida_rapida.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PPV_04_v1_macd_momentum_saida_rapida Grupo: POUCOSPONTOSVENCEDORES — #04 Descricao: MACD — entrada no cruzamento da linha zero (momentum acelerando). @@ -53,6 +53,8 @@ var iStopsConsec, iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PPV_04_v1_macd_momentum_saida_rapida"); if Date <> Date[1] then begin iBarrasEmPosicao := 0; diff --git a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl index e3d45af..3e5bb42 100644 --- a/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl +++ b/automacao_backtests/POUCOSPONTOSVENCEDORES/ntsl/mar_PPV_05_v1_parciais_multiplos.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_PPV_05_v1_parciais_multiplos Grupo: POUCOSPONTOSVENCEDORES – Tier 1 (#05) Descricao: Entrada por IFR extremo + saida em tres parciais progressivas. @@ -48,6 +48,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_PPV_05_v1_parciais_multiplos"); // ── NOVO DIA: reset ────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 index 0217b3d..5e55587 100644 --- a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_01_v1_pullback_mme21.mq5 @@ -1,138 +1,396 @@ +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ -//| mar_REV_01_v1_pullback_mme21.mq5 | -//| Grupo: REVERSAO_MEDIA | -//| Versao: v1 | Timeframe: M15 / M30 | -//| Descricao: Em tendencia (MME9>MME21>MME200), aguarda pullback | -//| ate a MME21 e opera a favor da tendencia de volta. | -//| Stop: MME21 - ATR x0.5. Alvo: 1:2. | -//+------------------------------------------------------------------+ -#property copyright "mar_REV_01_v1_pullback_mme21" + +#property copyright "Wesley — RepoRobos" #property version "1.00" +#property strict + #include -//--- Gestao de Risco -input bool UsarGestaoRisco = true; +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double SaldoConta = 10000.0; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double ValorPorPonto = 0.20; -input int DiaSemanaReset = 1; // 0=Dom 1=Seg 2=Ter ... - -//--- Estrategia -input int PeriodoMME9 = 9; -input int PeriodoMME21 = 21; -input int PeriodoMME200 = 200; -input double ToleranciaMME = 30.0; // pts tolerancia para toque na MME21 -input int PeriodoATR = 14; -input double MultATRStop = 0.5; -input double RelacaoRR = 2.0; -input int HoraIni = 9; -input int MinIni = 30; -input int HoraFim = 17; -input int MinFim = 0; -input double LotePadrao = 1.0; - -//--- Globals -CTrade trade; -int hMME9, hMME21, hMME200, hATR; -double PerdaDia, PerdaSemana; -int StopsConsec, UltimoDia; - -//+------------------------------------------------------------------+ -int OnInit(){ - hMME9 = iMA(NULL,0,PeriodoMME9, 0,MODE_EMA,PRICE_CLOSE); - hMME21 = iMA(NULL,0,PeriodoMME21, 0,MODE_EMA,PRICE_CLOSE); - hMME200 = iMA(NULL,0,PeriodoMME200,0,MODE_EMA,PRICE_CLOSE); - hATR = iATR(NULL,0,PeriodoATR); - if(hMME9==INVALID_HANDLE || hMME21==INVALID_HANDLE || - hMME200==INVALID_HANDLE || hATR==INVALID_HANDLE) - { Print("Erro ao criar handles."); return INIT_FAILED; } - UltimoDia = -1; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } -void OnDeinit(const int reason){ - IndicatorRelease(hMME9); - IndicatorRelease(hMME21); - IndicatorRelease(hMME200); +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); +} + +//+------------------------------------------------------------------+ +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | +//+------------------------------------------------------------------+ +bool TemPosicao() +{ + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); +} + +bool EstaComprado() +{ + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; +} + +bool EstaVendido() +{ + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; } -double CalculaPerdaDia(){ - double perda=0; - MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); - datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); - HistorySelect(ini,TimeCurrent()); - for(int i=0;i 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } + + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } - UltimoDia=dt.day; } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } - // Verifica limites de risco - if(UsarGestaoRisco){ - PerdaDia=CalculaPerdaDia(); - if(PerdaDia >= SaldoConta*RiscoDiaPct/100.0 || - PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0|| - StopsConsec >= MaxStopsConsecutivos){ - if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); - return; + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else + { + iBarrasPosicao = 0; } - // Indicadores (barra fechada = indice 1) - double arrMME9[1],arrMME21[1],arrMME200[1],arrATR[1]; - ArraySetAsSeries(arrMME9,true); CopyBuffer(hMME9, 0,1,1,arrMME9); - ArraySetAsSeries(arrMME21,true); CopyBuffer(hMME21, 0,1,1,arrMME21); - ArraySetAsSeries(arrMME200,true); CopyBuffer(hMME200,0,1,1,arrMME200); - ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); - - double mme9=arrMME9[0], mme21=arrMME21[0], mme200=arrMME200[0], atr=arrATR[0]; - double fechar=iClose(NULL,0,1); - - // Filtro de horario - MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); - int hhmm=dtBar.hour*100+dtBar.min; - if(hhmmHoraFim*100+MinFim) return; - - if(PositionSelect(Symbol())) return; // ja tem posicao aberta - - // LONG: tendencia altista + pullback ate MME21 - if(mme9>mme21 && mme21>mme200 && - MathAbs(fechar-mme21)<=ToleranciaMME && fechar>mme21){ - double sl=mme21-atr*MultATRStop; - double tp=fechar+(fechar-sl)*RelacaoRR; - if(trade.Buy(LotePadrao,Symbol(),0,sl,tp) && UsarGestaoRisco) StopsConsec=0; + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); + + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_01_v1_pullback_mme21")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_01_v1_pullback_mme21")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } } - // SHORT: tendencia baixista + pullback ate MME21 - else if(mme9 +2: sobrecomprado -> short | -//| Z < -2: sobrevendido -> long | -//| Stop: ATR x1.5. Alvo: retorno a media (Z=0). | -//+------------------------------------------------------------------+ -#property copyright "mar_REV_02_v1_zscore_afastamento" + +#property copyright "Wesley — RepoRobos" #property version "1.00" +#property strict + #include -//--- Gestao de Risco -input bool UsarGestaoRisco = true; +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double SaldoConta = 10000.0; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double ValorPorPonto = 0.20; -input int DiaSemanaReset = 1; - -//--- Estrategia -input int PeriodoMedia = 20; -input double LimiteZScore = 2.0; -input int PeriodoATR = 14; -input double MultATR = 1.5; -input int HoraIni = 9; -input int MinIni = 30; -input int HoraFim = 17; -input int MinFim = 0; -input double LotePadrao = 1.0; - -//--- Globals -CTrade trade; -int hMedia, hATR; -double PerdaDia, PerdaSemana; -int StopsConsec, UltimoDia; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | //+------------------------------------------------------------------+ -int OnInit(){ - hMedia = iMA(NULL,0,PeriodoMedia,0,MODE_EMA,PRICE_CLOSE); - hATR = iATR(NULL,0,PeriodoATR); - if(hMedia==INVALID_HANDLE || hATR==INVALID_HANDLE) - { Print("Erro ao criar handles."); return INIT_FAILED; } - UltimoDia=-1; +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } -void OnDeinit(const int reason){ - IndicatorRelease(hMedia); +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -double CalculaPerdaDia(){ - double perda=0; - MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); - datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); - HistorySelect(ini,TimeCurrent()); - for(int i=0;i 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } + + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } - UltimoDia=dt.day; } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } - if(UsarGestaoRisco){ - PerdaDia=CalculaPerdaDia(); - if(PerdaDia >= SaldoConta*RiscoDiaPct/100.0 || - PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || - StopsConsec >= MaxStopsConsecutivos){ - if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); - return; + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } } + else + { + iBarrasPosicao = 0; + } + + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); + + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); - // Indicadores - double arrMedia[1], arrATR[1]; - ArraySetAsSeries(arrMedia,true); CopyBuffer(hMedia,0,1,1,arrMedia); - ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); - double media=arrMedia[0], atr=arrATR[0]; - - // Z-Score: copia N fechamentos para calculo de desvio padrao - double closes[]; - ArraySetAsSeries(closes,true); - CopyClose(NULL,0,1,PeriodoMedia,closes); - - double somaQuad=0; - for(int i=0;i0) ? (closes[0]-media)/desvio : 0; - - // Filtro de horario - MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); - int hhmm=dtBar.hour*100+dtBar.min; - if(hhmmHoraFim*100+MinFim) return; - - if(PositionSelect(Symbol())) return; - - // LONG: Z-Score muito negativo (sobrevendido) - if(zscore<=-LimiteZScore){ - double sl=closes[0]-atr*MultATR; - double tp=media; - trade.Buy(LotePadrao,Symbol(),0,sl,tp); + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_02_v1_zscore_afastamento")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_02_v1_zscore_afastamento")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } } - // SHORT: Z-Score muito positivo (sobrecomprado) - else if(zscore>=LimiteZScore){ - double sl=closes[0]+atr*MultATR; - double tp=media; - trade.Sell(LotePadrao,Symbol(),0,sl,tp); +} + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); } } +//+------------------------------------------------------------------+ diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 index 1e16478..29ff5f5 100644 --- a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_03_v1_bb_retorno_media.mq5 @@ -1,129 +1,396 @@ +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ -//| mar_REV_03_v1_bb_retorno_media.mq5 | -//| Grupo: REVERSAO_MEDIA | -//| Versao: v1 | Timeframe: M15 / M30 | -//| Descricao: BB (20,2). Preco fecha fora da banda -> aguarda barra | -//| retornar para dentro. Entrada no 1o candle que volta. | -//| Alvo: media BB. Stop: 1 ATR alem do extremo. | -//+------------------------------------------------------------------+ -#property copyright "mar_REV_03_v1_bb_retorno_media" + +#property copyright "Wesley — RepoRobos" #property version "1.00" +#property strict + #include -//--- Gestao de Risco -input bool UsarGestaoRisco = true; +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double SaldoConta = 10000.0; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double ValorPorPonto = 0.20; -input int DiaSemanaReset = 1; - -//--- Estrategia -input int PeriodoBB = 20; -input double DesvBB = 2.0; -input int PeriodoATR = 14; -input double MultATRStop = 1.0; -input int HoraIni = 9; -input int MinIni = 30; -input int HoraFim = 17; -input int MinFim = 0; -input double LotePadrao = 1.0; - -//--- Globals -CTrade trade; -int hBB, hATR; -double PerdaDia, PerdaSemana; -int StopsConsec, UltimoDia; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | //+------------------------------------------------------------------+ -int OnInit(){ - hBB = iBands(NULL,0,PeriodoBB,0,DesvBB,PRICE_CLOSE); - hATR = iATR(NULL,0,PeriodoATR); - if(hBB==INVALID_HANDLE || hATR==INVALID_HANDLE) - { Print("Erro ao criar handles."); return INIT_FAILED; } - UltimoDia=-1; +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } -void OnDeinit(const int reason){ - IndicatorRelease(hBB); +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -double CalculaPerdaDia(){ - double perda=0; - MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); - datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); - HistorySelect(ini,TimeCurrent()); - for(int i=0;i 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } + + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } - UltimoDia=dt.day; } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } - if(UsarGestaoRisco){ - PerdaDia=CalculaPerdaDia(); - if(PerdaDia >= SaldoConta*RiscoDiaPct/100.0 || - PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || - StopsConsec >= MaxStopsConsecutivos){ - if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); - return; + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } } + else + { + iBarrasPosicao = 0; + } + + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); + + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); - // BB: buffer 0=superior, 1=media, 2=inferior - double arrSup[2], arrMed[2], arrInf[2], arrATR[2]; - ArraySetAsSeries(arrSup,true); CopyBuffer(hBB, UPPER_BAND, 1,2,arrSup); - ArraySetAsSeries(arrMed,true); CopyBuffer(hBB, BASE_LINE, 1,2,arrMed); - ArraySetAsSeries(arrInf,true); CopyBuffer(hBB, LOWER_BAND, 1,2,arrInf); - ArraySetAsSeries(arrATR,true); CopyBuffer(hATR,0, 1,1,arrATR); - - // Indices: [0]=barra fechada atual, [1]=barra anterior - double close1=iClose(NULL,0,1), close2=iClose(NULL,0,2); - double bbSup0=arrSup[0], bbSup1=arrSup[1]; - double bbInf0=arrInf[0], bbInf1=arrInf[1]; - double bbMed0=arrMed[0]; - double atr =arrATR[0]; - - // Filtro de horario - MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); - int hhmm=dtBar.hour*100+dtBar.min; - if(hhmmHoraFim*100+MinFim) return; - - if(PositionSelect(Symbol())) return; - - // LONG: barra anterior fechou abaixo da banda inf; atual voltou para dentro - if(close2=bbInf0){ - double sl=close2-atr*MultATRStop; - double tp=bbMed0; - trade.Buy(LotePadrao,Symbol(),0,sl,tp); + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_03_v1_bb_retorno_media")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_03_v1_bb_retorno_media")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } } - // SHORT: barra anterior fechou acima da banda sup; atual voltou para dentro - else if(close2>bbSup1 && close1<=bbSup0){ - double sl=close2+atr*MultATRStop; - double tp=bbMed0; - trade.Sell(LotePadrao,Symbol(),0,sl,tp); +} + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); } } +//+------------------------------------------------------------------+ diff --git a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 index 11cae91..128ef8d 100644 --- a/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 +++ b/automacao_backtests/REVERSAO_MEDIA/mql5/mar_REV_04_v1_ifr_afastamento_pct.mq5 @@ -1,133 +1,396 @@ +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ -//| mar_REV_04_v1_ifr_afastamento_pct.mq5 | -//| Grupo: REVERSAO_MEDIA | -//| Versao: v1 | Timeframe: M15 / M30 | -//| Descricao: IFR extremo E preco afastado >X% da MME200. | -//| Entrada quando IFR sai da zona extrema. | -//| Stop: ATR x2.0. Alvo: 50% do afastamento da MME200. | -//+------------------------------------------------------------------+ -#property copyright "mar_REV_04_v1_ifr_afastamento_pct" + +#property copyright "Wesley — RepoRobos" #property version "1.00" +#property strict + #include -//--- Gestao de Risco -input bool UsarGestaoRisco = true; +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double SaldoConta = 10000.0; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double ValorPorPonto = 0.20; -input int DiaSemanaReset = 1; - -//--- Estrategia -input int PeriodoIFR = 14; -input double IFRSobVend = 30.0; -input double IFRSobComp = 70.0; -input int PeriodoMME200 = 200; -input double AfastamentoPct = 1.5; // % minimo de afastamento da MME200 -input int PeriodoATR = 14; -input double MultATR = 2.0; -input int HoraIni = 9; -input int MinIni = 30; -input int HoraFim = 17; -input int MinFim = 0; -input double LotePadrao = 1.0; - -//--- Globals -CTrade trade; -int hIFR, hMME200, hATR; -double PerdaDia, PerdaSemana; -int StopsConsec, UltimoDia; - -//+------------------------------------------------------------------+ -int OnInit(){ - hIFR = iRSI(NULL,0,PeriodoIFR,PRICE_CLOSE); - hMME200= iMA(NULL,0,PeriodoMME200,0,MODE_EMA,PRICE_CLOSE); - hATR = iATR(NULL,0,PeriodoATR); - if(hIFR==INVALID_HANDLE || hMME200==INVALID_HANDLE || hATR==INVALID_HANDLE) - { Print("Erro ao criar handles."); return INIT_FAILED; } - UltimoDia=-1; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } -void OnDeinit(const int reason){ +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ IndicatorRelease(hIFR); - IndicatorRelease(hMME200); IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -double CalculaPerdaDia(){ - double perda=0; - MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); - datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); - HistorySelect(ini,TimeCurrent()); - for(int i=0;i 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } } - UltimoDia=dt.day; } - if(UsarGestaoRisco){ - PerdaDia=CalculaPerdaDia(); - if(PerdaDia >= SaldoConta*RiscoDiaPct/100.0 || - PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || - StopsConsec >= MaxStopsConsecutivos){ - if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); - return; + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else + { + iBarrasPosicao = 0; } - // Indicadores (barras 1=atual fechada, 2=anterior) - double arrIFR[2], arrMME200[1], arrATR[1]; - ArraySetAsSeries(arrIFR,true); CopyBuffer(hIFR, 0,1,2,arrIFR); - ArraySetAsSeries(arrMME200,true);CopyBuffer(hMME200,0,1,1,arrMME200); - ArraySetAsSeries(arrATR,true); CopyBuffer(hATR, 0,1,1,arrATR); + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); - double ifr0=arrIFR[0], ifr1=arrIFR[1]; // ifr0=barra fechada, ifr1=anterior - double mme200=arrMME200[0], atr=arrATR[0]; - double fechar=iClose(NULL,0,1); + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); - double distPct=(mme200>0) ? MathAbs(fechar-mme200)/mme200*100.0 : 0; + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); - // Filtro de horario - MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); - int hhmm=dtBar.hour*100+dtBar.min; - if(hhmmHoraFim*100+MinFim) return; + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_04_v1_ifr_afastamento_pct")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); - if(PositionSelect(Symbol())) return; - if(distPctIFRSobVend){ - double sl=fechar-atr*MultATR; - double tp=fechar+(fechar-mme200)*0.5; // 50% do afastamento - trade.Buy(LotePadrao,Symbol(),0,sl,tp); + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_04_v1_ifr_afastamento_pct")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } } - // SHORT: acima da MME200 + IFR era sobrecomprado e caiu (sai da zona) - else if(fechar>mme200 && ifr1>=IFRSobComp && ifr0 -//--- Gestao de Risco -input bool UsarGestaoRisco = true; +//--- Objeto de trade (encapsula ordens) +CTrade trade; + +//+------------------------------------------------------------------+ +//| Parametros de entrada (aparecem no Strategy Tester) | +//+------------------------------------------------------------------+ + +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; + +// ── Gestao de risco ─────────────────────────────────────────────── +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double SaldoConta = 10000.0; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double ValorPorPonto = 0.20; -input int DiaSemanaReset = 1; - -//--- Estrategia -input int PeriodoMME = 21; -input int PeriodoATR = 14; -input double MultEnvelope = 2.0; // distancia envelope = MultEnvelope * ATR -input double MultStop = 1.5; -input double PctCorpoConf = 40.0; // % corpo minimo do candle de confirmacao -input int HoraIni = 9; -input int MinIni = 30; -input int HoraFim = 17; -input int MinFim = 0; -input double LotePadrao = 1.0; - -//--- Globals -CTrade trade; -int hMME, hATR; -double PerdaDia, PerdaSemana; -int StopsConsec, UltimoDia; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; + +//+------------------------------------------------------------------+ +//| Variaveis globais | +//+------------------------------------------------------------------+ +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao +double fResultadoDia; +double fResultadoSemana; +int iStopsConsec; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | //+------------------------------------------------------------------+ -int OnInit(){ - hMME = iMA(NULL,0,PeriodoMME,0,MODE_EMA,PRICE_CLOSE); - hATR = iATR(NULL,0,PeriodoATR); - if(hMME==INVALID_HANDLE || hATR==INVALID_HANDLE) - { Print("Erro ao criar handles."); return INIT_FAILED; } - UltimoDia=-1; +int OnInit() +{ + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } -void OnDeinit(const int reason){ - IndicatorRelease(hMME); +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + IndicatorRelease(hIFR); IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -double CalculaPerdaDia(){ - double perda=0; - MqlDateTime dn; TimeToStruct(TimeCurrent(),dn); - datetime ini=StringToTime(StringFormat("%04d.%02d.%02d 00:00",dn.year,dn.mon,dn.day)); - HistorySelect(ini,TimeCurrent()); - for(int i=0;i 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } + + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; + + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } - UltimoDia=dt.day; } + else if(EstaVendido()) + { + iBarrasPosicao++; + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } - if(UsarGestaoRisco){ - PerdaDia=CalculaPerdaDia(); - if(PerdaDia >= SaldoConta*RiscoDiaPct/100.0 || - PerdaSemana >= SaldoConta*RiscoSemanaPct/100.0 || - StopsConsec >= MaxStopsConsecutivos){ - if(UsarHardLock && PositionSelect(Symbol())) trade.PositionClose(Symbol()); - return; + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; } } + else + { + iBarrasPosicao = 0; + } + + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); + + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) + { + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); - // Indicadores - double arrMME[1], arrATR[1]; - ArraySetAsSeries(arrMME,true); CopyBuffer(hMME,0,1,1,arrMME); - ArraySetAsSeries(arrATR,true); CopyBuffer(hATR,0,1,1,arrATR); - double mme21=arrMME[0], atr=arrATR[0]; - - double envSup=mme21+MultEnvelope*atr; - double envInf=mme21-MultEnvelope*atr; - - double open1 =iOpen(NULL,0,1); - double close1=iClose(NULL,0,1); - double high1 =iHigh(NULL,0,1); - double low1 =iLow(NULL,0,1); - double range =(high1-low1>0) ? high1-low1 : 1; - double corpo =MathAbs(close1-open1); - double pctCorpo=corpo/range*100.0; - - // Filtro de horario - MqlDateTime dtBar; TimeToStruct(iTime(NULL,0,1),dtBar); - int hhmm=dtBar.hour*100+dtBar.min; - if(hhmmHoraFim*100+MinFim) return; - - if(PositionSelect(Symbol())) return; - - // LONG: toca envelope inferior + candle altista de confirmacao - if(low1<=envInf && close1>open1 && pctCorpo>=PctCorpoConf){ - double sl=close1-atr*MultStop; - double tp=mme21; - trade.Buy(LotePadrao,Symbol(),0,sl,tp); + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_05_v1_envelope_dinamico_atr")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) + { + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_REV_05_v1_envelope_dinamico_atr")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } + } } - // SHORT: toca envelope superior + candle baixista de confirmacao - else if(high1>=envSup && close1=PctCorpoConf){ - double sl=close1+atr*MultStop; - double tp=mme21; - trade.Sell(LotePadrao,Symbol(),0,sl,tp); +} + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); } } +//+------------------------------------------------------------------+ diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl index 41eda09..7972a45 100644 --- a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_01_v1_pullback_mme21.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_REV_01_v1_pullback_mme21 // Grupo: REVERSAO_MEDIA // Versão: v1 | Timeframe: 15min / 30min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_REV_01_v1_pullback_mme21"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_02_v1_zscore_afastamento.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_02_v1_zscore_afastamento.ntsl index 4f0f294..bc7adad 100644 --- a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_02_v1_zscore_afastamento.ntsl +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_02_v1_zscore_afastamento.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_REV_02_v1_zscore_afastamento // Grupo: REVERSAO_MEDIA // Versão: v1 | Timeframe: 15min / 30min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_REV_02_v1_zscore_afastamento"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl index f3aecd2..0c0dce3 100644 --- a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_03_v1_bb_retorno_media.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_REV_03_v1_bb_retorno_media // Grupo: REVERSAO_MEDIA // Versão: v1 | Timeframe: 15min / 30min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_REV_03_v1_bb_retorno_media"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl index 3e6943b..ca62b83 100644 --- a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_04_v1_ifr_afastamento_pct.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_REV_04_v1_ifr_afastamento_pct // Grupo: REVERSAO_MEDIA // Versão: v1 | Timeframe: 15min / 30min @@ -37,6 +37,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_REV_04_v1_ifr_afastamento_pct"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl index 6ed3db7..cc1b289 100644 --- a/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl +++ b/automacao_backtests/REVERSAO_MEDIA/ntsl/mar_REV_05_v1_envelope_dinamico_atr.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_REV_05_v1_envelope_dinamico_atr // Grupo: REVERSAO_MEDIA // Versão: v1 | Timeframe: 15min / 30min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_REV_05_v1_envelope_dinamico_atr"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl index dbda1da..6e1a6da 100644 --- a/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_01_v1_impulso_candle_1min.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_SCM_01_v1_impulso_candle_1min // Grupo: SCALPING // Versão: v1 | Timeframe sugerido: 1min / 2min @@ -32,6 +32,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_SCM_01_v1_impulso_candle_1min"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl index faf1ea5..7c676fd 100644 --- a/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_02_v1_sombra_rejeitada.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_SCM_02_v1_sombra_rejeitada // Grupo: SCALPING // Versão: v1 | Timeframe: 1min / 2min @@ -38,6 +38,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_SCM_02_v1_sombra_rejeitada"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl index b6ae1cd..31d18d8 100644 --- a/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_03_v1_microcanal_breakout.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_SCM_03_v1_microcanal_breakout // Grupo: SCALPING // Versão: v1 | Timeframe: 2min / 5min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_SCM_03_v1_microcanal_breakout"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl index ec2e31a..8d67bc8 100644 --- a/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_04_v1_pullback_ema5.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_SCM_04_v1_pullback_ema5 // Grupo: SCALPING // Versão: v1 | Timeframe: 1min / 2min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_SCM_04_v1_pullback_ema5"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl b/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl index 6c54d1b..31e496b 100644 --- a/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl +++ b/automacao_backtests/SCALPING/ntsl/mar_SCM_05_v1_volume_spike_direcional.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_SCM_05_v1_volume_spike_direcional // Grupo: SCALPING // Versão: v1 | Timeframe: 1min / 2min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_SCM_05_v1_volume_spike_direcional"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl index 634fa1b..ade5216 100644 --- a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // mar_ST_01_v1_ifr_mme200_stop_estrutural.ntsl // Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min // Descrição: IFR extremo (ZS/SO) + contexto MME200 + stop na @@ -44,6 +44,8 @@ var emOperacao : boolean; // ----- INÍCIO ----- begin + if CurrentBar = 1 then + Print("Robo ativo: mar_ST_01_v1_ifr_mme200_stop_estrutural"); ifr_atual := IFR(IFR_Periodo, 0); ifr_anterior := IFR(IFR_Periodo, 1); mme200 := MediaExp(MME200_Periodo, 0); diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl index 9648020..e049562 100644 --- a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // mar_ST_02_v1_divergencia_ifr_stop_pivo.ntsl // Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min // Descrição: Divergência IFR (preço faz nova mínima/máxima, @@ -45,6 +45,8 @@ var emOperacao : boolean; // ----- INÍCIO ----- begin + if CurrentBar = 1 then + Print("Robo ativo: mar_ST_02_v1_divergencia_ifr_stop_pivo"); ifr0 := IFR(IFR_Periodo, 0); ifr1 := IFR(IFR_Periodo, 1); ifr2 := IFR(IFR_Periodo, 2); diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl index 0dac831..0bdabec 100644 --- a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_03_v1_candle_forca_stop_atr15x.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // mar_ST_03_v1_candle_forca_stop_atr15x.ntsl // Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min // Descrição: Candle de força (corpo > 65% do range total) na @@ -47,6 +47,8 @@ var emOperacao : boolean; // ----- INÍCIO ----- begin + if CurrentBar = 1 then + Print("Robo ativo: mar_ST_03_v1_candle_forca_stop_atr15x"); mme9 := MediaExp(MME9_Periodo, 0); mme21 := MediaExp(MME21_Periodo, 0); mme200 := MediaExp(MME200_Periodo, 0); diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl index e9ae864..7bc965e 100644 --- a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_04_v1_confluencia_maxima_rr3.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // mar_ST_04_v1_confluencia_maxima_rr3.ntsl // Grupo: STOPTOLERANTE | Versão: 1.0 | Timeframe: 60min // Descrição: Confluência máxima (IFR + MME200 + MME9/21 + volume) @@ -48,6 +48,8 @@ var emOperacao : boolean; // ----- INÍCIO ----- begin + if CurrentBar = 1 then + Print("Robo ativo: mar_ST_04_v1_confluencia_maxima_rr3"); ifr := IFR(IFR_Periodo, 0); mme9 := MediaExp(MME9_Periodo, 0); mme21 := MediaExp(MME21_Periodo, 0); diff --git a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl index f6bf16f..cdfbf75 100644 --- a/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl +++ b/automacao_backtests/STOPTOLERANTE/ntsl/mar_ST_05_v1_atr_dinamico_confluencia.ntsl @@ -1,4 +1,4 @@ -{ +{ Robo: mar_ST_05_v1_atr_dinamico_confluencia Grupo: STOPTOLERANTE – Tier 1 (#05) Descricao: Stop tolerante dinamico baseado em ATR × multiplicador amplo. @@ -46,6 +46,8 @@ var iDiaSemanaAtual : integer; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_ST_05_v1_atr_dinamico_confluencia"); // ── RESET DIARIO ───────────────────────────────────────────── if Date <> Date[1] then begin diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl index 6b262ca..73709d5 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_01_v1_adx_tres_medias.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TND_01_v1_adx_tres_medias // Grupo: TENDENCIA_SEGUIR // Versão: v1 | Timeframe: 30min / 60min @@ -38,6 +38,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TND_01_v1_adx_tres_medias"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl index 2a7baff..c5e41d9 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_02_v1_cruzamento_mme_volume.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TND_02_v1_cruzamento_mme_volume // Grupo: TENDENCIA_SEGUIR // Versão: v1 | Timeframe: 15min / 30min @@ -36,6 +36,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TND_02_v1_cruzamento_mme_volume"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl index 4c4224b..084352e 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_03_v1_macd_tendencia_mme200.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TND_03_v1_macd_tendencia_mme200 // Grupo: TENDENCIA_SEGUIR // Versão: v1 | Timeframe: 30min / 60min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TND_03_v1_macd_tendencia_mme200"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl index 0809cfa..69e8cbd 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_04_v1_donchian_tendencia.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TND_04_v1_donchian_tendencia // Grupo: TENDENCIA_SEGUIR // Versão: v1 | Timeframe: 30min / 60min @@ -35,6 +35,8 @@ var StopLoss: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TND_04_v1_donchian_tendencia"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl index b8bc83b..2a9ce2f 100644 --- a/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl +++ b/automacao_backtests/TENDENCIA_SEGUIR/ntsl/mar_TND_05_v1_ifr_continuacao_tendencia.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TND_05_v1_ifr_continuacao_tendencia // Grupo: TENDENCIA_SEGUIR // Versão: v1 | Timeframe: 30min / 60min @@ -40,6 +40,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TND_05_v1_ifr_continuacao_tendencia"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl index 3fd8dbc..ac53e1f 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_01_v1_vwap_pullback.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_VWP_01_v1_vwap_pullback // Grupo: VWAP_INSTITUCIONAL // Versão: v1 | Timeframe: 5min / 15min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_VWP_01_v1_vwap_pullback"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl index 97ff035..55c8f5d 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_02_v1_vwap_cruzamento_direcional.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_VWP_02_v1_vwap_cruzamento_direcional // Grupo: VWAP_INSTITUCIONAL // Versão: v1 | Timeframe: 5min / 15min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_VWP_02_v1_vwap_cruzamento_direcional"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl index 14a25b7..eaf9615 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_03_v1_vwap_desvio_extremo.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_VWP_03_v1_vwap_desvio_extremo // Grupo: VWAP_INSTITUCIONAL // Versão: v1 | Timeframe: 5min / 15min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_VWP_03_v1_vwap_desvio_extremo"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl index 1fbb872..bbfc430 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_04_v1_vwap_ifr_confluencia.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_VWP_04_v1_vwap_ifr_confluencia // Grupo: VWAP_INSTITUCIONAL // Versão: v1 | Timeframe: 5min / 15min @@ -36,6 +36,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_VWP_04_v1_vwap_ifr_confluencia"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl index 84a1b38..c82f660 100644 --- a/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl +++ b/automacao_backtests/VWAP_INSTITUCIONAL/ntsl/mar_VWP_05_v1_vwap_horario_institucional.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_VWP_05_v1_vwap_horario_institucional // Grupo: VWAP_INSTITUCIONAL // Versão: v1 | Timeframe: 5min / 15min @@ -39,6 +39,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_VWP_05_v1_vwap_horario_institucional"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl index b4f860d..b7915e4 100644 --- a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_01_v1_abertura_impulso_2min.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TFM_01_v1_abertura_impulso_2min // Grupo: timeframeMenor // Versão: v1 | Timeframe sugerido: 2min @@ -34,6 +34,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TFM_01_v1_abertura_impulso_2min"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl index 91c835f..2b77725 100644 --- a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_02_v1_ema5_retorno_1min.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TFM_02_v1_ema5_retorno_1min // Grupo: timeframeMenor // Versão: v1 | Timeframe sugerido: 1min @@ -40,6 +40,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TFM_02_v1_ema5_retorno_1min"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl index f20d696..a2506d2 100644 --- a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_03_v1_ifr_extremo_2min_stop_rapido.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TFM_03_v1_ifr_extremo_2min_stop_rapido // Grupo: timeframeMenor // Versão: v1 | Timeframe sugerido: 2min @@ -35,6 +35,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TFM_03_v1_ifr_extremo_2min_stop_rapido"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl index 5c7b7ff..56a3605 100644 --- a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_04_v1_3candles_consecutivos_5min.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TFM_04_v1_3candles_consecutivos_5min // Grupo: timeframeMenor // Versão: v1 | Timeframe sugerido: 5min @@ -33,6 +33,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TFM_04_v1_3candles_consecutivos_5min"); if (Date <> DataAnterior) then begin diff --git a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl index a18f5e7..32e32f0 100644 --- a/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl +++ b/automacao_backtests/timeframeMenor/ntsl/mar_TFM_05_v1_vwap_gap_5min.ntsl @@ -1,4 +1,4 @@ -// ============================================================ +// ============================================================ // Robô: mar_TFM_05_v1_vwap_gap_5min // Grupo: timeframeMenor // Versão: v1 | Timeframe sugerido: 5min @@ -32,6 +32,8 @@ var StopLoss, TakeProfit: float; EmPosicao: boolean; begin + if CurrentBar = 1 then + Print("Robo ativo: mar_TFM_05_v1_vwap_gap_5min"); if (Date <> DataAnterior) then begin diff --git "a/estudo_teorias/Olhando o que \303\251 importante no primeiro c.md" "b/estudo_teorias/Olhando o que \303\251 importante no primeiro c.md" new file mode 100644 index 0000000..b93d096 --- /dev/null +++ "b/estudo_teorias/Olhando o que \303\251 importante no primeiro c.md" @@ -0,0 +1,2 @@ +Olhando o que é importante no primeiro candle do dia como posição da VWAP, qual a relação dele em relação a minima e maxima do dia anterior, qual o tipo de candle relacionado ao price action, qual a posição e tamanho do gap. +Preciso criar 50 versoes de robos de trading que analisem esses fatores e tomem decisões de compra ou venda com base neles. Cada robô deve ser programado para identificar padrões específicos no primeiro candle do dia e agir de acordo com as regras pré-definidas. \ No newline at end of file diff --git a/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 b/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 index 5239f07..32e79ed 100644 --- a/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 +++ b/plataformas/mql5/mar_IFR_01_XAUUSD.mq5 @@ -1,13 +1,12 @@ -//+------------------------------------------------------------------+ -//| mar_IFR_01_XAUUSD.mq5 | -//| Grupo: IFR_RSI — Versao MT5 | -//| Descricao: Divergencia bullish/bearish de IFR com candle de | -//| rejeicao. Adaptado de mar_IFR_01 (Profit) para MT5. | -//| Funciona muito bem em XAUUSD pela volatilidade e | -//| reversoes tecnicas frequentes no ouro. | -//| Ativo: XAUUSD (Ouro) — tambem testavel em NAS100, US500 | -//| Timeframe: M30 / H1 | -//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ #property copyright "Wesley — RepoRobos" @@ -16,239 +15,382 @@ #include +//--- Objeto de trade (encapsula ordens) CTrade trade; //+------------------------------------------------------------------+ -//| Parametros de entrada | +//| Parametros de entrada (aparecem no Strategy Tester) | //+------------------------------------------------------------------+ -// ── IFR ─────────────────────────────────────────────────────────── -input int PeriodoIFR = 9; -input int LookbackDivergencia= 12; // janela para comparar fundos/topos -input double DeltaIFRMinimo = 2.0; // diferenca minima no IFR +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda -// ── Candle de rejeicao ──────────────────────────────────────────── -input double MultiplicadorPavio = 1.5; // pavio >= corpo * mult -input double MaxPavioOpostoCorpo= 1.2; +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR -// ── Saida IFR ──────────────────────────────────────────────────── -input bool UsarSaidaIFR = true; -input double NivelSaidaCompra = 55.0; -input double NivelSaidaVenda = 45.0; -input bool UsarSaidaTempo = true; -input int MaxBarrasPosicao = 12; +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos -// ── Trailing ───────────────────────────────────────────────────── -input bool UsarTrailing = true; -input double PontosTrailing = 150.0; // em pontos do ativo (XAUUSD: 1.5 dolar) +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; // ── Gestao de risco ─────────────────────────────────────────────── -input bool UsarGestaoRisco = true; +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double VolumeLote = 0.01; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; //+------------------------------------------------------------------+ //| Variaveis globais | //+------------------------------------------------------------------+ -int hIFR; -double fPrecoEntrada; -double fMelhorPreco; -int iDirecaoPosicao; -int iBarrasPosicao; +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + double fResultadoDia; double fResultadoSemana; int iStopsConsec; bool bBloqueioDia; bool bBloqueioSemana; -datetime dtUltimoBar; -datetime dtUltimoReset; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia //+------------------------------------------------------------------+ -//| OnInit | +//| Inicializacao | //+------------------------------------------------------------------+ int OnInit() { - hIFR = iRSI(_Symbol, _Period, PeriodoIFR, PRICE_CLOSE); - if(hIFR == INVALID_HANDLE) { Print("Erro ao criar handle IFR"); return INIT_FAILED; } + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } //+------------------------------------------------------------------+ -//| OnDeinit | +//| Desinicializacao | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { IndicatorRelease(hIFR); + IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } //+------------------------------------------------------------------+ -//| Helpers | +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | //+------------------------------------------------------------------+ -bool NovaBarraIniciou() +bool TemPosicao() { - datetime dtAtual = iTime(_Symbol, _Period, 0); - if(dtAtual != dtUltimoBar) { dtUltimoBar = dtAtual; return true; } - return false; + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); } -double GetIFR(int deslocamento) +bool EstaComprado() { - double buf[]; ArraySetAsSeries(buf, true); - if(CopyBuffer(hIFR, 0, deslocamento, 1, buf) < 1) return 50; - return buf[0]; + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; } -bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } -bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } -double PrecoAtualPosicao() { return PositionSelect(_Symbol) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0; } +bool EstaVendido() +{ + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; +} //+------------------------------------------------------------------+ -//| ResetDiario | +//| Funcao principal — rodada a cada tick | //+------------------------------------------------------------------+ -void ResetDiario() +void OnTick() { - MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); - MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); - if(dt.day != dtR.day) + // ── SÓ PROCESSA EM NOVA BARRA ──────────────────────────────── + datetime dtBarAtual = iTime(_Symbol, PERIOD_CURRENT, 0); + if(dtBarAtual == dtUltimoBar) return; + dtUltimoBar = dtBarAtual; + + // ── BUFFERS DOS INDICADORES ─────────────────────────────────── + double arrIFR[3], arrATR[2], arrMME200[2]; + if(CopyBuffer(hIFR, 0, 0, 3, arrIFR) < 3) return; + if(CopyBuffer(hATR, 0, 0, 2, arrATR) < 2) return; + if(CopyBuffer(hMME200, 0, 0, 2, arrMME200) < 2) return; + + // Barra [1] = barra fechada mais recente (usada para sinais) + double fIFR0 = arrIFR[1]; // barra atual fechada + double fIFR1 = arrIFR[2]; // barra anterior + double fATRval = arrATR[1]; + double fMME200v = arrMME200[1]; + + // Precos da barra fechada + double fOpen1 = iOpen (_Symbol, PERIOD_CURRENT, 1); + double fHigh1 = iHigh (_Symbol, PERIOD_CURRENT, 1); + double fLow1 = iLow (_Symbol, PERIOD_CURRENT, 1); + double fClose1 = iClose(_Symbol, PERIOD_CURRENT, 1); + + // ── NOVO DIA: RESET ─────────────────────────────────────────── + MqlDateTime dt; TimeToStruct(dtBarAtual, dt); + MqlDateTime dtAnterior; TimeToStruct(dtUltimoDia, dtAnterior); + + if(dt.day != dtAnterior.day) { - fResultadoDia = 0; - bBloqueioDia = false; - dtUltimoReset = TimeCurrent(); - if(dt.day_of_week == 1) // segunda-feira + dtUltimoDia = dtBarAtual; + fResultadoDia = 0; + bBloqueioDia = false; + + // Reset semanal na segunda-feira + if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; + iStopsConsec = 0; } + Print("[DIA] Novo dia — resultado resetado."); } -} -//+------------------------------------------------------------------+ -//| GestaoRisco: atualiza resultados e bloqueios | -//+------------------------------------------------------------------+ -void AtualizarGestaoRisco() -{ - double saldo = AccountInfoDouble(ACCOUNT_BALANCE); - double limiteDia = saldo * RiscoDiaPct / 100.0; - double limiteSemana = saldo * RiscoSemanaPct / 100.0; - - // Detecta fechamento de posicao - if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + // ── DETECTA FECHAMENTO DE POSICAO ──────────────────────────── + if(UsarGestaoRisco) { - double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double resultado; - if(iDirecaoPosicao == 1) - resultado = (preco - fPrecoEntrada) * VolumeLote * 100; // xauusd: $1/pip por 0.01 lot - else - resultado = (fPrecoEntrada - preco) * VolumeLote * 100; - - fResultadoDia += resultado; - fResultadoSemana += resultado; - if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; - fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; - } + if(iDirecaoPosicao == 1 && !EstaComprado() && fPrecoEntrada > 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } - if(UsarHardLock) - { - if(fResultadoDia <= -limiteDia) bBloqueioDia = true; - if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; - if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; - } -} + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); -//+------------------------------------------------------------------+ -//| OnTick | -//+------------------------------------------------------------------+ -void OnTick() -{ - if(!NovaBarraIniciou()) return; - ResetDiario(); - if(UsarGestaoRisco) AtualizarGestaoRisco(); - - double fIFR = GetIFR(1); - double fIFRAnt = GetIFR(2); - - // Dados do candle fechado (barra 1) - double highB1 = iHigh(_Symbol, _Period, 1); - double lowB1 = iLow(_Symbol, _Period, 1); - double openB1 = iOpen(_Symbol, _Period, 1); - double closeB1 = iClose(_Symbol, _Period, 1); - - double range = highB1 - lowB1; - double corpo = MathAbs(openB1 - closeB1); - double pavioSup= highB1 - MathMax(openB1, closeB1); - double pavioInf= MathMin(openB1, closeB1) - lowB1; - - bool bMartelo = (range > 0) && (corpo > 0) - && (pavioInf >= corpo * MultiplicadorPavio) - && (pavioSup <= corpo * MaxPavioOpostoCorpo); - - bool bEstrela = (range > 0) && (corpo > 0) - && (pavioSup >= corpo * MultiplicadorPavio) - && (pavioInf <= corpo * MaxPavioOpostoCorpo); - - // Fundos/topos minimos/maximos nos ultimos LookbackDivergencia barras - double lowMin = lowB1, ifrMinimo = fIFR; - double highMax= highB1, ifrMaximo = fIFR; - for(int k = 2; k <= LookbackDivergencia; k++) - { - double l = iLow(_Symbol, _Period, k); - double h = iHigh(_Symbol, _Period, k); - double r = GetIFR(k); - if(l < lowMin) { lowMin = l; ifrMinimo = r; } - if(h > highMax) { highMax = h; ifrMaximo = r; } + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } } - bool bDivAlta = (lowB1 < lowMin) && (fIFR > ifrMinimo + DeltaIFRMinimo); - bool bDivBaixa = (highB1 > highMax) && (fIFR < ifrMaximo - DeltaIFRMinimo); - - // ── SAIDAS ────────────────────────────────────────────────── - if(TenhoCompra()) + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) { iBarrasPosicao++; - double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); - if(bid > fMelhorPreco) fMelhorPreco = bid; - - bool sair = false; - if(UsarSaidaIFR && fIFR >= NivelSaidaCompra) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && fMelhorPreco > 0 && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); - } - if(TenhoVenda()) + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) { iBarrasPosicao++; - double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); - if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; - - bool sair = false; - if(UsarSaidaIFR && fIFR <= NivelSaidaVenda) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && fMelhorPreco > 0 && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); - } + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } - // ── ENTRADAS ──────────────────────────────────────────────── - if(!TenhoCompra() && !TenhoVenda()) + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else { iBarrasPosicao = 0; - if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + } - double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); - double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) + { + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); - if(bDivAlta && bMartelo) + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) { - trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "IFR_div_alta"); - fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_IFR_01_XAUUSD")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } - else if(bDivBaixa && bEstrela) + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) { - trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "IFR_div_baixa"); - fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_IFR_01_XAUUSD")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } } } + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); + } +} +//+------------------------------------------------------------------+ diff --git a/plataformas/mql5/mar_IFR_02_NAS100.mq5 b/plataformas/mql5/mar_IFR_02_NAS100.mq5 index 3806fca..4babe28 100644 --- a/plataformas/mql5/mar_IFR_02_NAS100.mq5 +++ b/plataformas/mql5/mar_IFR_02_NAS100.mq5 @@ -1,14 +1,12 @@ -//+------------------------------------------------------------------+ -//| mar_IFR_02_NAS100.mq5 | -//| Grupo: IFR_RSI — Versao MT5 | -//| Descricao: Pullback do IFR em tendencia definida pela MME200. | -//| Em tendencia de alta: IFR cai ate 40 e retorna. | -//| Em tendencia de baixa: IFR sobe ate 60 e retorna. | -//| Adaptado de mar_IFR_09 (Profit). Excelente para | -//| indices tendenciais como NAS100 e US500. | -//| Ativo: NAS100 — tambem testavel em US500, XAUUSD | -//| Timeframe: M30 / H1 | -//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ #property copyright "Wesley — RepoRobos" @@ -17,180 +15,382 @@ #include +//--- Objeto de trade (encapsula ordens) CTrade trade; //+------------------------------------------------------------------+ -//| Parametros de entrada | +//| Parametros de entrada (aparecem no Strategy Tester) | //+------------------------------------------------------------------+ -// ── IFR ─────────────────────────────────────────────────────────── -input int PeriodoIFR = 14; -input double NivelPullbackCompra = 40.0; // IFR cai ate aqui em pullback de alta -input double NivelPullbackVenda = 60.0; // IFR sobe ate aqui em pullback de baixa -input double NivelSaidaCompra = 60.0; -input double NivelSaidaVenda = 40.0; +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda -// ── MME200 ──────────────────────────────────────────────────────── -input int PeriodoMME200 = 200; -input double MargemMMEPontos = 50.0; // pontos de margem vs MME200 +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR -// ── Saida ───────────────────────────────────────────────────────── -input bool UsarSaidaIFR = true; -input bool UsarSaidaTempo = true; -input int MaxBarrasPosicao = 16; -input bool UsarTrailing = true; -input double PontosTrailing = 200.0; // em pontos do ativo +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos + +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; // ── Gestao de risco ─────────────────────────────────────────────── -input bool UsarGestaoRisco = true; +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double VolumeLote = 0.01; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; //+------------------------------------------------------------------+ //| Variaveis globais | //+------------------------------------------------------------------+ -int hIFR; -int hMME200; -double fPrecoEntrada; -double fMelhorPreco; -int iDirecaoPosicao; -int iBarrasPosicao; +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + double fResultadoDia; double fResultadoSemana; int iStopsConsec; bool bBloqueioDia; bool bBloqueioSemana; -datetime dtUltimoBar; -datetime dtUltimoReset; +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ int OnInit() { - hIFR = iRSI(_Symbol, _Period, PeriodoIFR, PRICE_CLOSE); - hMME200= iMA(_Symbol, _Period, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); - if(hIFR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) return INIT_FAILED; + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ void OnDeinit(const int reason) { IndicatorRelease(hIFR); + IndicatorRelease(hATR); IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -bool NovaBarraIniciou() +//+------------------------------------------------------------------+ +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | +//+------------------------------------------------------------------+ +bool TemPosicao() { - datetime dt = iTime(_Symbol, _Period, 0); - if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } - return false; + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); } -double GetBuf(int handle, int deslocamento) +bool EstaComprado() { - double buf[]; ArraySetAsSeries(buf, true); - if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; - return buf[0]; + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; } -bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } -bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } - -void ResetDiario() +bool EstaVendido() { - MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); - MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); - if(dt.day != dtR.day) - { - fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); - if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } - } + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; } -void AtualizarGestaoRisco() +//+------------------------------------------------------------------+ +//| Funcao principal — rodada a cada tick | +//+------------------------------------------------------------------+ +void OnTick() { - double saldo = AccountInfoDouble(ACCOUNT_BALANCE); - double limiteDia = saldo * RiscoDiaPct / 100.0; - double limiteSemana = saldo * RiscoSemanaPct / 100.0; + // ── SÓ PROCESSA EM NOVA BARRA ──────────────────────────────── + datetime dtBarAtual = iTime(_Symbol, PERIOD_CURRENT, 0); + if(dtBarAtual == dtUltimoBar) return; + dtUltimoBar = dtBarAtual; + + // ── BUFFERS DOS INDICADORES ─────────────────────────────────── + double arrIFR[3], arrATR[2], arrMME200[2]; + if(CopyBuffer(hIFR, 0, 0, 3, arrIFR) < 3) return; + if(CopyBuffer(hATR, 0, 0, 2, arrATR) < 2) return; + if(CopyBuffer(hMME200, 0, 0, 2, arrMME200) < 2) return; + + // Barra [1] = barra fechada mais recente (usada para sinais) + double fIFR0 = arrIFR[1]; // barra atual fechada + double fIFR1 = arrIFR[2]; // barra anterior + double fATRval = arrATR[1]; + double fMME200v = arrMME200[1]; + + // Precos da barra fechada + double fOpen1 = iOpen (_Symbol, PERIOD_CURRENT, 1); + double fHigh1 = iHigh (_Symbol, PERIOD_CURRENT, 1); + double fLow1 = iLow (_Symbol, PERIOD_CURRENT, 1); + double fClose1 = iClose(_Symbol, PERIOD_CURRENT, 1); - if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + // ── NOVO DIA: RESET ─────────────────────────────────────────── + MqlDateTime dt; TimeToStruct(dtBarAtual, dt); + MqlDateTime dtAnterior; TimeToStruct(dtUltimoDia, dtAnterior); + + if(dt.day != dtAnterior.day) { - double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double resultado = (iDirecaoPosicao == 1) - ? (preco - fPrecoEntrada) * VolumeLote * 100 - : (fPrecoEntrada - preco) * VolumeLote * 100; - fResultadoDia += resultado; - fResultadoSemana += resultado; - if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; - fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + dtUltimoDia = dtBarAtual; + fResultadoDia = 0; + bBloqueioDia = false; + + // Reset semanal na segunda-feira + if(dt.day_of_week == 1) + { + fResultadoSemana = 0; + bBloqueioSemana = false; + iStopsConsec = 0; + } + Print("[DIA] Novo dia — resultado resetado."); } - if(UsarHardLock) + + // ── DETECTA FECHAMENTO DE POSICAO ──────────────────────────── + if(UsarGestaoRisco) { - if(fResultadoDia <= -limiteDia) bBloqueioDia = true; - if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; - if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; - } -} + if(iDirecaoPosicao == 1 && !EstaComprado() && fPrecoEntrada > 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } -void OnTick() -{ - if(!NovaBarraIniciou()) return; - ResetDiario(); - if(UsarGestaoRisco) AtualizarGestaoRisco(); + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } - double fIFR = GetBuf(hIFR, 1); - double fIFRAnt = GetBuf(hIFR, 2); - double fMME200 = GetBuf(hMME200, 1); - double closeB1 = iClose(_Symbol, _Period, 1); + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) + { + iBarrasPosicao++; - bool bTendenciaAlta = closeB1 > fMME200 + MargemMMEPontos * _Point; - bool bTendenciaBaixa = closeB1 < fMME200 - MargemMMEPontos * _Point; + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; - bool bPullbackAlta = bTendenciaAlta && (fIFRAnt < NivelPullbackCompra) && (fIFR >= NivelPullbackCompra); - bool bPullbackBaixa = bTendenciaBaixa && (fIFRAnt > NivelPullbackVenda) && (fIFR <= NivelPullbackVenda); + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } - // ── SAIDAS ────────────────────────────────────────────────── - double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } - if(TenhoCompra()) + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) { iBarrasPosicao++; - if(bid > fMelhorPreco) fMelhorPreco = bid; - bool sair = false; - if(UsarSaidaIFR && fIFR >= NivelSaidaCompra) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); - } + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } - if(TenhoVenda()) + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else { - iBarrasPosicao++; - if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; - bool sair = false; - if(UsarSaidaIFR && fIFR <= NivelSaidaVenda) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); + iBarrasPosicao = 0; } - // ── ENTRADAS ──────────────────────────────────────────────── - if(!TenhoCompra() && !TenhoVenda()) + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) { - iBarrasPosicao = 0; fMelhorPreco = 0; - if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); - if(bPullbackAlta) + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) { - trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "IFR_pullback_alta"); - fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_IFR_02_NAS100")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } - else if(bPullbackBaixa) + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) { - trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "IFR_pullback_baixa"); - fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_IFR_02_NAS100")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } } } + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); + } +} +//+------------------------------------------------------------------+ diff --git a/plataformas/mql5/mar_MED_01_XAUUSD.mq5 b/plataformas/mql5/mar_MED_01_XAUUSD.mq5 index cd99648..1594c65 100644 --- a/plataformas/mql5/mar_MED_01_XAUUSD.mq5 +++ b/plataformas/mql5/mar_MED_01_XAUUSD.mq5 @@ -1,13 +1,12 @@ -//+------------------------------------------------------------------+ -//| mar_MED_01_XAUUSD.mq5 | -//| Grupo: MEDIAS — Versao MT5 | -//| Descricao: Cruzamento de medias MME rapida x MME lenta. | -//| Quando MME rapida cruza acima da lenta = compra. | -//| Abaixo = venda. Filtro: confirmacao de fechamento | -//| alem da MME lenta. Trailing para capturar movimento.| -//| Ativo: XAUUSD — tambem testavel em EURUSD, US30 | -//| Timeframe: M15 / M30 / H1 | -//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ #property copyright "Wesley — RepoRobos" @@ -16,178 +15,382 @@ #include +//--- Objeto de trade (encapsula ordens) CTrade trade; //+------------------------------------------------------------------+ -//| Parametros de entrada | +//| Parametros de entrada (aparecem no Strategy Tester) | //+------------------------------------------------------------------+ -// ── Medias ──────────────────────────────────────────────────────── -input int PeriodoMMERapida = 9; -input int PeriodoMMELenta = 21; -input bool UsarFiltroFechamento = true; // fecha alem da MME lenta +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR + +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos -// ── Saida ───────────────────────────────────────────────────────── -input bool UsarSaidaCruzInverso = true; -input bool UsarSaidaTempo = true; -input int MaxBarrasPosicao = 20; -input bool UsarTrailing = true; -input double PontosTrailing = 150.0; // pontos do ativo +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; // ── Gestao de risco ─────────────────────────────────────────────── -input bool UsarGestaoRisco = true; +input bool UsarGestaoRisco = true; // false = testar sem gestao input bool UsarHardLock = true; -input double RiscoDiaPct = 1.5; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos = 2; -input double VolumeLote = 0.01; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; //+------------------------------------------------------------------+ //| Variaveis globais | //+------------------------------------------------------------------+ -int hMMERapida; -int hMMELenta; -double fPrecoEntrada; -double fMelhorPreco; -int iDirecaoPosicao; -int iBarrasPosicao; +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + double fResultadoDia; double fResultadoSemana; int iStopsConsec; bool bBloqueioDia; bool bBloqueioSemana; -datetime dtUltimoBar; -datetime dtUltimoReset; +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia + +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ int OnInit() { - hMMERapida = iMA(_Symbol, _Period, PeriodoMMERapida, 0, MODE_EMA, PRICE_CLOSE); - hMMELenta = iMA(_Symbol, _Period, PeriodoMMELenta, 0, MODE_EMA, PRICE_CLOSE); - if(hMMERapida == INVALID_HANDLE || hMMELenta == INVALID_HANDLE) return INIT_FAILED; + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); + return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ void OnDeinit(const int reason) { - IndicatorRelease(hMMERapida); - IndicatorRelease(hMMELenta); + IndicatorRelease(hIFR); + IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -bool NovaBarraIniciou() +//+------------------------------------------------------------------+ +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | +//+------------------------------------------------------------------+ +bool TemPosicao() { - datetime dt = iTime(_Symbol, _Period, 0); - if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } - return false; + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); } -double GetBuf(int handle, int deslocamento) +bool EstaComprado() { - double buf[]; ArraySetAsSeries(buf, true); - if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; - return buf[0]; + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; } -bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } -bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } - -void ResetDiario() +bool EstaVendido() { - MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); - MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); - if(dt.day != dtR.day) - { - fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); - if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } - } + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; } -void AtualizarGestaoRisco() +//+------------------------------------------------------------------+ +//| Funcao principal — rodada a cada tick | +//+------------------------------------------------------------------+ +void OnTick() { - double saldo = AccountInfoDouble(ACCOUNT_BALANCE); - double limiteDia = saldo * RiscoDiaPct / 100.0; - double limiteSemana = saldo * RiscoSemanaPct / 100.0; + // ── SÓ PROCESSA EM NOVA BARRA ──────────────────────────────── + datetime dtBarAtual = iTime(_Symbol, PERIOD_CURRENT, 0); + if(dtBarAtual == dtUltimoBar) return; + dtUltimoBar = dtBarAtual; - if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) - { - double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double resultado = (iDirecaoPosicao == 1) - ? (preco - fPrecoEntrada) * VolumeLote * 100 - : (fPrecoEntrada - preco) * VolumeLote * 100; - fResultadoDia += resultado; - fResultadoSemana += resultado; - if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; - fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; - } - if(UsarHardLock) - { - if(fResultadoDia <= -limiteDia) bBloqueioDia = true; - if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; - if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; - } -} + // ── BUFFERS DOS INDICADORES ─────────────────────────────────── + double arrIFR[3], arrATR[2], arrMME200[2]; + if(CopyBuffer(hIFR, 0, 0, 3, arrIFR) < 3) return; + if(CopyBuffer(hATR, 0, 0, 2, arrATR) < 2) return; + if(CopyBuffer(hMME200, 0, 0, 2, arrMME200) < 2) return; -void OnTick() -{ - if(!NovaBarraIniciou()) return; - ResetDiario(); - if(UsarGestaoRisco) AtualizarGestaoRisco(); + // Barra [1] = barra fechada mais recente (usada para sinais) + double fIFR0 = arrIFR[1]; // barra atual fechada + double fIFR1 = arrIFR[2]; // barra anterior + double fATRval = arrATR[1]; + double fMME200v = arrMME200[1]; - double mmeRapida = GetBuf(hMMERapida, 1); - double mmeLenta = GetBuf(hMMELenta, 1); - double mmeRapidaAnt = GetBuf(hMMERapida, 2); - double mmeLentaAnt = GetBuf(hMMELenta, 2); - double closeB1 = iClose(_Symbol, _Period, 1); + // Precos da barra fechada + double fOpen1 = iOpen (_Symbol, PERIOD_CURRENT, 1); + double fHigh1 = iHigh (_Symbol, PERIOD_CURRENT, 1); + double fLow1 = iLow (_Symbol, PERIOD_CURRENT, 1); + double fClose1 = iClose(_Symbol, PERIOD_CURRENT, 1); - bool bCruzouParaCima = (mmeRapidaAnt <= mmeLentaAnt) && (mmeRapida > mmeLenta); - bool bCruzouParaBaixo = (mmeRapidaAnt >= mmeLentaAnt) && (mmeRapida < mmeLenta); + // ── NOVO DIA: RESET ─────────────────────────────────────────── + MqlDateTime dt; TimeToStruct(dtBarAtual, dt); + MqlDateTime dtAnterior; TimeToStruct(dtUltimoDia, dtAnterior); - if(UsarFiltroFechamento) + if(dt.day != dtAnterior.day) { - bCruzouParaCima = bCruzouParaCima && (closeB1 > mmeLenta); - bCruzouParaBaixo = bCruzouParaBaixo && (closeB1 < mmeLenta); + dtUltimoDia = dtBarAtual; + fResultadoDia = 0; + bBloqueioDia = false; + + // Reset semanal na segunda-feira + if(dt.day_of_week == 1) + { + fResultadoSemana = 0; + bBloqueioSemana = false; + iStopsConsec = 0; + } + Print("[DIA] Novo dia — resultado resetado."); } - double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + // ── DETECTA FECHAMENTO DE POSICAO ──────────────────────────── + if(UsarGestaoRisco) + { + if(iDirecaoPosicao == 1 && !EstaComprado() && fPrecoEntrada > 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } + } - // ── SAIDAS ────────────────────────────────────────────────── - if(TenhoCompra()) + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) { iBarrasPosicao++; - if(bid > fMelhorPreco) fMelhorPreco = bid; - bool sair = false; - if(UsarSaidaCruzInverso && mmeRapida < mmeLenta) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); - } - if(TenhoVenda()) + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) { iBarrasPosicao++; - if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; - bool sair = false; - if(UsarSaidaCruzInverso && mmeRapida > mmeLenta) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else + { + iBarrasPosicao = 0; } - // ── ENTRADAS ──────────────────────────────────────────────── - if(!TenhoCompra() && !TenhoVenda()) + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) { - iBarrasPosicao = 0; fMelhorPreco = 0; - if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); - if(bCruzouParaCima) + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) { - trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "MED_cruzamento_alta"); - fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_MED_01_XAUUSD")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } - else if(bCruzouParaBaixo) + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) { - trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "MED_cruzamento_baixa"); - fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_MED_01_XAUUSD")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } } } + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); + } +} +//+------------------------------------------------------------------+ diff --git a/plataformas/mql5/mar_MED_02_NAS100.mq5 b/plataformas/mql5/mar_MED_02_NAS100.mq5 index 796d158..c028dbc 100644 --- a/plataformas/mql5/mar_MED_02_NAS100.mq5 +++ b/plataformas/mql5/mar_MED_02_NAS100.mq5 @@ -1,14 +1,12 @@ -//+------------------------------------------------------------------+ -//| mar_MED_02_NAS100.mq5 | -//| Grupo: MEDIAS — Versao MT5 | -//| Descricao: Score das 4 medias moveis. Conta quantas MMAs o | -//| preco esta acima ou abaixo. Score >= 3 = compra. | -//| Score <= -3 = venda. Alta seletividade e baixo | -//| ruido. Excelente para ativos tendenciais como | -//| NAS100, US500 e US30. | -//| Ativo: NAS100 — tambem testavel em US500, US30 | -//| Timeframe: H1 / H4 | -//| Versao: 1.0 — marco/2026 | +//+------------------------------------------------------------------+ +//| mar_MT5_PPV01_exemplo.mq5 | +//| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | +//| Descricao: IFR reversao + trailing ATR agressivo + break-even | +//| Projeto de EXEMPLO para testar configuracao e | +//| rodar o primeiro backtest antes do simulador. | +//| Ativo sugerido: XAUUSD (Ouro) ou US30 (Dow Jones) | +//| Timeframe: M15 ou M30 | +//| Versao: 1.0 — marco/2026 | //+------------------------------------------------------------------+ #property copyright "Wesley — RepoRobos" @@ -17,179 +15,382 @@ #include +//--- Objeto de trade (encapsula ordens) CTrade trade; //+------------------------------------------------------------------+ -//| Parametros de entrada | +//| Parametros de entrada (aparecem no Strategy Tester) | //+------------------------------------------------------------------+ -// ── As 4 medias ────────────────────────────────────────────────── -input int PeriodoMME1 = 9; -input int PeriodoMME2 = 21; -input int PeriodoMMA3 = 50; -input int PeriodoMMA4 = 200; +// ── IFR entry ───────────────────────────────────────────────────── +input int PeriodoIFR = 9; // Periodo do IFR +input double IFRExtremoCompra = 30.0; // IFR atinge sobrevenda +input double IFREtornoCompra = 35.0; // IFR sobe → sinal de compra +input double IFRExtremoVenda = 70.0; // IFR atinge sobrecompra +input double IFREtornoVenda = 65.0; // IFR cai → sinal de venda + +// ── ATR gestao ──────────────────────────────────────────────────── +input int PeriodoATR = 14; // Periodo do ATR +input double FatorStopInicial = 0.8; // stop = 0.8 x ATR +input double FatorAlvo = 1.2; // alvo = 1.2 x ATR +input double FatorTrailing = 0.5; // trailing = 0.5 x ATR -// ── Score de entrada/saida ──────────────────────────────────────── -input int ScoreEntradaCompra = 3; // minimo 3 medias abaixo do preco -input int ScoreEntradaVenda = -3; // minimo 3 medias acima do preco -input int ScoreSaidaCompra = 1; // sair quando score cai para 1 -input int ScoreSaidaVenda = -1; +// ── Break-even ──────────────────────────────────────────────────── +input double BreakEvenTrigger = 50.0; // ativar be apos X pontos favoraveis +input double BreakEvenOffset = 5.0; // be = entrada + X pontos -// ── Saida ───────────────────────────────────────────────────────── -input bool UsarSaidaTempo = true; -input int MaxBarrasPosicao = 20; -input bool UsarTrailing = true; -input double PontosTrailing = 250.0; +// ── Filtro MME200 ───────────────────────────────────────────────── +input bool UsarFiltroMME200 = true; // filtro de tendencia +input int PeriodoMME200 = 200; // ── Gestao de risco ─────────────────────────────────────────────── -input bool UsarGestaoRisco = true; -input bool UsarHardLock = true; -input double RiscoDiaPct = 1.5; -input double RiscoSemanaPct = 3.0; -input int MaxStopsConsecutivos= 2; -input double VolumeLote = 0.01; +input bool UsarGestaoRisco = true; // false = testar sem gestao +input bool UsarHardLock = true; +input double RiscoDiaPct = 1.5; // 1.5% do saldo = limite/dia +input double RiscoSemanaPct = 3.0; +input int MaxStopsConsecutivos = 2; // 2 stops = trava o dia + +// ── Tamanho da posicao ──────────────────────────────────────────── +input double VolumeLote = 0.01; // SEMPRE 0.01 para conta $5000 demo + +// ── Tempo maximo em posicao ─────────────────────────────────────── +input int MaxBarrasPosicao = 4; //+------------------------------------------------------------------+ //| Variaveis globais | //+------------------------------------------------------------------+ -int hMME1, hMME2, hMMA3, hMMA4; -double fPrecoEntrada; -double fMelhorPreco; -int iDirecaoPosicao; -int iBarrasPosicao; -double fResultadoDia, fResultadoSemana; +int hIFR; // handle do indicador IFR (RSI) +int hATR; // handle do ATR +int hMME200; // handle da MME200 + +double fPrecoEntrada; // preco de entrada da posicao corrente +double fStop; // stop atual +double fAlvo; // alvo atual +double fMelhorPreco; // melhor preco desde a entrada +bool bBreakEvenAtivo; // be ja foi ativado? +int iDirecaoPosicao; // 1=compra, -1=venda, 0=sem posicao +int iBarrasPosicao; // barras em posicao + +double fResultadoDia; +double fResultadoSemana; int iStopsConsec; -bool bBloqueioDia, bBloqueioSemana; -datetime dtUltimoBar, dtUltimoReset; +bool bBloqueioDia; +bool bBloqueioSemana; + +datetime dtUltimoBar; // controle de nova barra +datetime dtUltimoDia; // controle de novo dia +//+------------------------------------------------------------------+ +//| Inicializacao | +//+------------------------------------------------------------------+ int OnInit() { - hMME1 = iMA(_Symbol, _Period, PeriodoMME1, 0, MODE_EMA, PRICE_CLOSE); - hMME2 = iMA(_Symbol, _Period, PeriodoMME2, 0, MODE_EMA, PRICE_CLOSE); - hMMA3 = iMA(_Symbol, _Period, PeriodoMMA3, 0, MODE_SMA, PRICE_CLOSE); - hMMA4 = iMA(_Symbol, _Period, PeriodoMMA4, 0, MODE_SMA, PRICE_CLOSE); - if(hMME1==INVALID_HANDLE || hMME2==INVALID_HANDLE || hMMA3==INVALID_HANDLE || hMMA4==INVALID_HANDLE) + // Criar handles dos indicadores + hIFR = iRSI(_Symbol, PERIOD_CURRENT, PeriodoIFR, PRICE_CLOSE); + hATR = iATR(_Symbol, PERIOD_CURRENT, PeriodoATR); + hMME200 = iMA(_Symbol, PERIOD_CURRENT, PeriodoMME200, 0, MODE_EMA, PRICE_CLOSE); + + if(hIFR == INVALID_HANDLE || hATR == INVALID_HANDLE || hMME200 == INVALID_HANDLE) + { + Print("[ERRO] Falha ao criar indicadores. Verifique o ativo e timeframe."); return INIT_FAILED; + } + + // Configurar objeto de trade + trade.SetExpertMagicNumber(202601); // ID unico deste EA + trade.SetDeviationInPoints(10); // slippage max 10 pontos + trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Reset variaveis + fPrecoEntrada = 0; + fStop = 0; + fAlvo = 0; + bBreakEvenAtivo = false; + iDirecaoPosicao = 0; + iBarrasPosicao = 0; + fResultadoDia = 0; + fResultadoSemana = 0; + iStopsConsec = 0; + bBloqueioDia = false; + bBloqueioSemana = false; + dtUltimoBar = 0; + dtUltimoDia = 0; + + Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } +//+------------------------------------------------------------------+ +//| Desinicializacao | +//+------------------------------------------------------------------+ void OnDeinit(const int reason) { - IndicatorRelease(hMME1); IndicatorRelease(hMME2); - IndicatorRelease(hMMA3); IndicatorRelease(hMMA4); + IndicatorRelease(hIFR); + IndicatorRelease(hATR); + IndicatorRelease(hMME200); + Print("[DEINIT] EA finalizado."); } -bool NovaBarraIniciou() +//+------------------------------------------------------------------+ +//| Funcao auxiliar: verifica se ha posicao aberta deste EA | +//+------------------------------------------------------------------+ +bool TemPosicao() { - datetime dt = iTime(_Symbol, _Period, 0); - if(dt != dtUltimoBar) { dtUltimoBar = dt; return true; } - return false; + return PositionSelectByTicket(trade.RequestOrder()) || + PositionSelect(_Symbol); } -double GetBuf(int handle, int deslocamento) +bool EstaComprado() { - double buf[]; ArraySetAsSeries(buf, true); - if(CopyBuffer(handle, 0, deslocamento, 1, buf) < 1) return 0; - return buf[0]; + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY + && PositionGetInteger(POSITION_MAGIC) == 202601; } -bool TenhoCompra() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY; } -bool TenhoVenda() { return PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL; } - -void ResetDiario() +bool EstaVendido() { - MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); - MqlDateTime dtR; TimeToStruct(dtUltimoReset, dtR); - if(dt.day != dtR.day) - { - fResultadoDia = 0; bBloqueioDia = false; dtUltimoReset = TimeCurrent(); - if(dt.day_of_week == 1) { fResultadoSemana = 0; bBloqueioSemana = false; } - } + if(!PositionSelect(_Symbol)) return false; + return PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL + && PositionGetInteger(POSITION_MAGIC) == 202601; } -void AtualizarGestaoRisco() +//+------------------------------------------------------------------+ +//| Funcao principal — rodada a cada tick | +//+------------------------------------------------------------------+ +void OnTick() { - double saldo = AccountInfoDouble(ACCOUNT_BALANCE); - double limiteDia = saldo * RiscoDiaPct / 100.0; - double limiteSemana = saldo * RiscoSemanaPct / 100.0; - if(iDirecaoPosicao != 0 && !TenhoCompra() && !TenhoVenda() && fPrecoEntrada > 0) + // ── SÓ PROCESSA EM NOVA BARRA ──────────────────────────────── + datetime dtBarAtual = iTime(_Symbol, PERIOD_CURRENT, 0); + if(dtBarAtual == dtUltimoBar) return; + dtUltimoBar = dtBarAtual; + + // ── BUFFERS DOS INDICADORES ─────────────────────────────────── + double arrIFR[3], arrATR[2], arrMME200[2]; + if(CopyBuffer(hIFR, 0, 0, 3, arrIFR) < 3) return; + if(CopyBuffer(hATR, 0, 0, 2, arrATR) < 2) return; + if(CopyBuffer(hMME200, 0, 0, 2, arrMME200) < 2) return; + + // Barra [1] = barra fechada mais recente (usada para sinais) + double fIFR0 = arrIFR[1]; // barra atual fechada + double fIFR1 = arrIFR[2]; // barra anterior + double fATRval = arrATR[1]; + double fMME200v = arrMME200[1]; + + // Precos da barra fechada + double fOpen1 = iOpen (_Symbol, PERIOD_CURRENT, 1); + double fHigh1 = iHigh (_Symbol, PERIOD_CURRENT, 1); + double fLow1 = iLow (_Symbol, PERIOD_CURRENT, 1); + double fClose1 = iClose(_Symbol, PERIOD_CURRENT, 1); + + // ── NOVO DIA: RESET ─────────────────────────────────────────── + MqlDateTime dt; TimeToStruct(dtBarAtual, dt); + MqlDateTime dtAnterior; TimeToStruct(dtUltimoDia, dtAnterior); + + if(dt.day != dtAnterior.day) { - double preco = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double resultado = (iDirecaoPosicao == 1) - ? (preco - fPrecoEntrada) * VolumeLote * 100 - : (fPrecoEntrada - preco) * VolumeLote * 100; - fResultadoDia += resultado; fResultadoSemana += resultado; - if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; - fPrecoEntrada = 0; iDirecaoPosicao = 0; iBarrasPosicao = 0; + dtUltimoDia = dtBarAtual; + fResultadoDia = 0; + bBloqueioDia = false; + + // Reset semanal na segunda-feira + if(dt.day_of_week == 1) + { + fResultadoSemana = 0; + bBloqueioSemana = false; + iStopsConsec = 0; + } + Print("[DIA] Novo dia — resultado resetado."); } - if(UsarHardLock) + + // ── DETECTA FECHAMENTO DE POSICAO ──────────────────────────── + if(UsarGestaoRisco) { - if(fResultadoDia <= -limiteDia) bBloqueioDia = true; - if(fResultadoSemana <= -limiteSemana) bBloqueioSemana = true; - if(iStopsConsec >= MaxStopsConsecutivos) bBloqueioDia = true; + if(iDirecaoPosicao == 1 && !EstaComprado() && fPrecoEntrada > 0) + { + double resultado = (fClose1 - fPrecoEntrada) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU COMPRA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + if(iDirecaoPosicao == -1 && !EstaVendido() && fPrecoEntrada > 0) + { + double resultado = (fPrecoEntrada - fClose1) * VolumeLote * + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE) / + SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + fResultadoDia += resultado; + fResultadoSemana += resultado; + if(resultado < 0) iStopsConsec++; else iStopsConsec = 0; + Print("[FECHOU VENDA] Resultado: $", DoubleToString(resultado, 2), + " | Dia: $", DoubleToString(fResultadoDia, 2)); + fPrecoEntrada = 0; iDirecaoPosicao = 0; bBreakEvenAtivo = false; + } + + // Verificar limites + double saldo = AccountInfoDouble(ACCOUNT_BALANCE); + double limiteDia = saldo * (RiscoDiaPct / 100.0); + double limiteSem = saldo * (RiscoSemanaPct / 100.0); + + if(UsarHardLock) + { + if(fResultadoDia <= -limiteDia) + { bBloqueioDia = true; Print("[LOCK] Limite do dia atingido: $", DoubleToString(fResultadoDia, 2)); } + if(fResultadoSemana <= -limiteSem) + { bBloqueioSemana = true; Print("[LOCK] Limite da semana atingido."); } + if(iStopsConsec >= MaxStopsConsecutivos) + { bBloqueioDia = true; Print("[LOCK] ", MaxStopsConsecutivos, " stops consecutivos — bloqueado."); } + } } -} -void OnTick() -{ - if(!NovaBarraIniciou()) return; - ResetDiario(); - if(UsarGestaoRisco) AtualizarGestaoRisco(); - - double closeB1 = iClose(_Symbol, _Period, 1); - double mme1 = GetBuf(hMME1, 1); - double mme2 = GetBuf(hMME2, 1); - double mma3 = GetBuf(hMMA3, 1); - double mma4 = GetBuf(hMMA4, 1); - - // Score: +1 preco acima da media, -1 abaixo - int score = 0; - if(closeB1 > mme1) score++; else score--; - if(closeB1 > mme2) score++; else score--; - if(closeB1 > mma3) score++; else score--; - if(closeB1 > mma4) score++; else score--; - - double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); - - // ── SAIDAS ────────────────────────────────────────────────── - if(TenhoCompra()) + // ── GESTAO DA POSICAO ABERTA ───────────────────────────────── + if(EstaComprado()) { iBarrasPosicao++; - if(bid > fMelhorPreco) fMelhorPreco = bid; - bool sair = false; - if(score <= ScoreSaidaCompra) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && bid < fMelhorPreco - PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); - } - if(TenhoVenda()) + // Preco atual para gestao + double fAtual = fClose1; + if(fAtual > fMelhorPreco) fMelhorPreco = fAtual; + + // Break-even + if(!bBreakEvenAtivo && (fMelhorPreco >= fPrecoEntrada + BreakEvenTrigger)) + { + fStop = fPrecoEntrada + BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + // Trailing apos be + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco - (fATRval * FatorTrailing); + if(novoStop > fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + // Saida por tempo + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else if(EstaVendido()) { iBarrasPosicao++; - if(fMelhorPreco == 0 || ask < fMelhorPreco) fMelhorPreco = ask; - bool sair = false; - if(score >= ScoreSaidaVenda) sair = true; - if(UsarSaidaTempo && iBarrasPosicao >= MaxBarrasPosicao) sair = true; - if(UsarTrailing && ask > fMelhorPreco + PontosTrailing * _Point) sair = true; - if(sair) trade.PositionClose(_Symbol); + double fAtual = fClose1; + if(fAtual < fMelhorPreco) fMelhorPreco = fAtual; + + if(!bBreakEvenAtivo && (fMelhorPreco <= fPrecoEntrada - BreakEvenTrigger)) + { + fStop = fPrecoEntrada - BreakEvenOffset; + bBreakEvenAtivo = true; + trade.PositionModify(_Symbol, fStop, fAlvo); + Print("[BE] Break-even ativado em ", DoubleToString(fStop, _Digits)); + } + + if(bBreakEvenAtivo) + { + double novoStop = fMelhorPreco + (fATRval * FatorTrailing); + if(novoStop < fStop) + { + fStop = novoStop; + trade.PositionModify(_Symbol, fStop, fAlvo); + } + } + + if(iBarrasPosicao >= MaxBarrasPosicao) + { + trade.PositionClose(_Symbol); + Print("[SAIDA TEMPO] ", MaxBarrasPosicao, " barras — fechando."); + iBarrasPosicao = 0; + } + } + else + { + iBarrasPosicao = 0; } - // ── ENTRADAS ──────────────────────────────────────────────── - if(!TenhoCompra() && !TenhoVenda()) + // ── ENTRADA — SO SE NAO TIVER POSICAO ──────────────────────── + if(!EstaComprado() && !EstaVendido() + && !(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana))) { - iBarrasPosicao = 0; fMelhorPreco = 0; - if(UsarGestaoRisco && (bBloqueioDia || bBloqueioSemana)) return; + bool bContextoCompra = !UsarFiltroMME200 || (fClose1 > fMME200v); + bool bContextoVenda = !UsarFiltroMME200 || (fClose1 < fMME200v); - if(score >= ScoreEntradaCompra) + // Sinal de COMPRA: IFR estava em sobrevenda e subiu de volta + if(bContextoCompra && (fIFR1 <= IFRExtremoCompra) && (fIFR0 >= IFREtornoCompra)) { - trade.Buy(VolumeLote, _Symbol, ask, 0, 0, "MED_score_alta"); - fPrecoEntrada = ask; iDirecaoPosicao = 1; fMelhorPreco = ask; + double sl = iLow(_Symbol, PERIOD_CURRENT, 1) - (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) + (fATRval * FatorAlvo); + + // Normalizar precos para o ativo + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_MED_02_NAS100")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = 1; + iBarrasPosicao = 0; + Print("[ENTRADA COMPRA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } - else if(score <= ScoreEntradaVenda) + // Sinal de VENDA: IFR estava em sobrecompra e caiu de volta + else if(bContextoVenda && (fIFR1 >= IFRExtremoVenda) && (fIFR0 <= IFREtornoVenda)) { - trade.Sell(VolumeLote, _Symbol, bid, 0, 0, "MED_score_baixa"); - fPrecoEntrada = bid; iDirecaoPosicao = -1; fMelhorPreco = bid; + double sl = iHigh(_Symbol, PERIOD_CURRENT, 1) + (fATRval * FatorStopInicial); + double tp = iClose(_Symbol, PERIOD_CURRENT, 0) - (fATRval * FatorAlvo); + + sl = NormalizeDouble(sl, _Digits); + tp = NormalizeDouble(tp, _Digits); + + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_MED_02_NAS100")) + { + fPrecoEntrada = trade.ResultPrice(); + fStop = sl; + fAlvo = tp; + fMelhorPreco = fPrecoEntrada; + bBreakEvenAtivo = false; + iDirecaoPosicao = -1; + iBarrasPosicao = 0; + Print("[ENTRADA VENDA] IFR=", DoubleToString(fIFR0, 1), + " Preco=", DoubleToString(fPrecoEntrada, _Digits), + " SL=", DoubleToString(sl, _Digits), + " TP=", DoubleToString(tp, _Digits)); + } } } } + +//+------------------------------------------------------------------+ +//| Evento de trade (log de cada operacao executada) | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction &trans, + const MqlTradeRequest &request, + const MqlTradeResult &result) +{ + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + Print("[TRADE] Deal executado — Tipo: ", EnumToString((ENUM_DEAL_TYPE)trans.deal_type), + " | Volume: ", DoubleToString(trans.volume, 2), + " | Price: ", DoubleToString(trans.price, _Digits)); + } +} +//+------------------------------------------------------------------+ diff --git a/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 b/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 index 410fdc5..94bf037 100644 --- a/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 +++ b/plataformas/mql5/mar_MT5_PPV01_exemplo.mq5 @@ -1,4 +1,4 @@ -//+------------------------------------------------------------------+ +//+------------------------------------------------------------------+ //| mar_MT5_PPV01_exemplo.mq5 | //| Grupo: POUCOSPONTOSVENCEDORES — Versao MT5 | //| Descricao: IFR reversao + trailing ATR agressivo + break-even | @@ -117,6 +117,7 @@ int OnInit() dtUltimoDia = 0; Print("[INIT] mar_MT5_PPV01 carregado — Ativo: ", _Symbol, " TF: ", EnumToString(Period())); + Print("EA iniciado: " + MQLInfoString(MQL_PROGRAM_NAME) + " | " + _Symbol + " | " + EnumToString(Period())); return INIT_SUCCEEDED; } @@ -336,7 +337,7 @@ void OnTick() sl = NormalizeDouble(sl, _Digits); tp = NormalizeDouble(tp, _Digits); - if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "PPV01_COMPRA")) + if(trade.Buy(VolumeLote, _Symbol, 0, sl, tp, "mar_MT5_PPV01_exemplo")) { fPrecoEntrada = trade.ResultPrice(); fStop = sl; @@ -360,7 +361,7 @@ void OnTick() sl = NormalizeDouble(sl, _Digits); tp = NormalizeDouble(tp, _Digits); - if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "PPV01_VENDA")) + if(trade.Sell(VolumeLote, _Symbol, 0, sl, tp, "mar_MT5_PPV01_exemplo")) { fPrecoEntrada = trade.ResultPrice(); fStop = sl; From a2d07ec64b08726ced1546cc205f94eade7a6b4e Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 9 Mar 2026 20:19:01 -0300 Subject: [PATCH 58/63] subir instrucao robos --- WorkspaceRobosTrade/instrucao_robos.md | 85 +++++++++ .../mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl | 161 ++++++++---------- .../mar_PC_08_v1_abertura_abaixo_minD1.ntsl | 10 +- automacao_backtests/anotacoesBacktest.txt | 17 ++ 4 files changed, 176 insertions(+), 97 deletions(-) create mode 100644 WorkspaceRobosTrade/instrucao_robos.md diff --git a/WorkspaceRobosTrade/instrucao_robos.md b/WorkspaceRobosTrade/instrucao_robos.md new file mode 100644 index 0000000..b4a83cd --- /dev/null +++ b/WorkspaceRobosTrade/instrucao_robos.md @@ -0,0 +1,85 @@ +# Instrução Geral para Robôs e Estratégias — RepoRobos + +## Estrutura Obrigatória + +### Cabeçalho + +```ntsl +{ + Robo: mar_NOMEGRUPO_NN_nome + Grupo: [nome do grupo] — Tier X (#NN) + Descricao: [Descrição do setup] + Timeframe: [Ex: 60min, 30min] + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — [mês/ano] +} +``` + +### Inputs (parametrização) + +- Todos os parâmetros de risco, filtros, períodos e flags devem ser declarados como input. +- Nunca hardcode valores de risco ou filtros no corpo do código. + +#### Bloco padrão de inputs (NTSL) + +```ntsl +input + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(2); + ValorPorPonto(0.2); + DiaSemanaReset(2); + // Adicione inputs específicos do setup +``` + +### Variáveis + +- Declare todas as variáveis usadas na lógica, incluindo controle de posição, resultado, filtros, etc. + +### Lógica Operacional + +- Reset diário e semanal das variáveis de resultado e bloqueio. +- Gestão de risco sempre parametrizável. +- Cálculo de sinais (IFR, médias, price action, volume, etc). +- Entrada: apenas se não posicionado e não bloqueado. +- Saída: por critério técnico, tempo, trailing ou ambos. + +### Exemplo de Bloco de Entrada + +```ntsl +if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then +begin + // Sinal de compra/venda + if bSinalCompra then + BuyAtMarket; + else if bSinalVenda then + SellShortAtMarket; +end; +``` + +### Exemplo de Bloco de Saída + +```ntsl +if IsBought and (criterio_saida) then + ClosePosition; +if IsSold and (criterio_saida) then + ClosePosition; +``` + +## Regras de Qualidade + +- Inputs de risco obrigatórios. +- Estrutura de bloco begin/end correta. +- Comentários sempre com { }. +- Timeframe no nome do arquivo. +- Não operar sem stop definido. +- Filtros de contexto (MME, VWAP, price action) recomendados. + +## Referência + +- Veja exemplos em IFR, Price Action, médias, volume. +- Consulte WorkspaceRobosTrade/instrucao_robos.md para padronização. diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl index 570f64c..20c2d0f 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl @@ -11,24 +11,67 @@ PctCorpoMinimo(0.70); FatorVolumeClimatico(1.5); PeriodoMediaVol(20); UsarFiltroMME200(true); -var -iCandleDia : integer; - fResultadoDia := 0; - bBloqueioDia := false; - // Reset VWAP diário - fVWAPSoma := 0; - fVWAPVol := 0; - // Reset semanal na segunda-feira - iDiaSemanaAtual := DayOfWeek(Date); - if iDiaSemanaAtual = DiaSemanaReset then - begin - fResultadoSemana := 0; - bBloqueioSemana := false; - end; - end - else - iCandleDia := iCandleDia + 1; +PeriodoMME200(200); +MultiplicadorAlvo(1.5); +UsarOCO(true); +UsarBreakEven(false); +BreakEvenTriggerPontos(80.0); +BreakEvenOffsetPontos(5.0); +MaxBarrasPosicao(8); +UsarGestaoRisco(true); // false = backtest puro, ignora limites de risco +UsarHardLock(true); +SaldoConta(3500.0); +RiscoDiaPct(1.0); +RiscoSemanaPct(3.0); +ValorPorPonto(0.2); +DiaSemanaReset(2); +var +// Declarações apenas, sem inicialização +// Controle de candle do dia + iCandleDia : integer; +// Dados do 1o candle + fMaxC1 : float; + fMinC1 : float; + fAberDia : float; + fFechC1 : float; + fRangeC1 : float; + fCorpoC1 : float; + fVolC1 : float; +// VWAP diário acumulado + fVWAPSoma : float; + fVWAPVol : float; + fVWAPDiario : float; +// Indicadores + fMME200 : float; + fMediaVol : float; +// Sinais + bGapExtCima : boolean; + bCorpoAlta : boolean; + bVolClimatico : boolean; + bAcimaMME200 : boolean; + bSinalCompra : boolean; + bEntradaExecutada : boolean; +// Gestão de posição + fPrecoEntrada : float; + fStopAtual : float; + fAlvoAtual : float; + iBarrasEmPosicao : integer; + iDirecaoPosicao : integer; + bBreakEvenAtivo : boolean; + bEstavaPosicionado : boolean; +// Gestão de risco + fResultadoDia : float; + fResultadoSemana : float; + fLimiteDia : float; + fLimiteSemana : float; + fResultadoPontos : float; + fResultadoReais : float; + bBloqueioDia : boolean; + bBloqueioSemana : boolean; + iDiaSemanaAtual : integer; + +begin // ── VWAP DIÁRIO acumulado (preço típico ponderado por volume) ─ fVWAPSoma := fVWAPSoma + ((High + Low + Close) / 3.0) * Volume; fVWAPVol := fVWAPVol + Volume; @@ -36,8 +79,8 @@ iCandleDia : integer; fVWAPDiario := fVWAPSoma / fVWAPVol; // ── INDICADORES ────────────────────────────────────────────── - fMME200 := Media(PeriodoMME200, 1, Close); - fMediaVol := Media(PeriodoMediaVol, 1, Volume); + fMME200 := Media(PeriodoMME200, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); // ── LIMITES DE RISCO ───────────────────────────────────────── fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); @@ -53,11 +96,13 @@ iCandleDia : integer; fResultadoSemana := fResultadoSemana + fResultadoReais; end; - if UsarGestaoRisco and (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; - if UsarGestaoRisco and (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; - - if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then - ClosePosition; + if UsarGestaoRisco then + begin + if (fResultadoDia <= -fLimiteDia) then bBloqueioDia := true; + if (fResultadoSemana <= -fLimiteSemana) then bBloqueioSemana := true; + if UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then + ClosePosition; + end; // ── CAPTURA DO 1o CANDLE ───────────────────────────────────── if iCandleDia = 1 then @@ -68,73 +113,6 @@ iCandleDia : integer; fFechC1 := Close; fRangeC1 := High - Low; fCorpoC1 := Abs(Close - Open); -<<<<<<< HEAD:automacao_backtests/CANDLE1/codigo_fonte/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl.txt - fVolC1 := Volume; - end; - - // ── LÓGICA DE SINAL (apenas no 2o candle em diante) ───────── - if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) - and (not IsBought) and (not IsSold) then - begin - // Gap externo para cima: abertura acima da máxima do dia anterior - // High[2] = máxima de D-1 quando estamos no candle 2 (High[1] = 1o candle hoje) - bGapExtCima := fAberDia > High[2]; - // Corpo de alta > PctCorpoMinimo do range - bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); - // Volume climático - bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); - // Preço acima da MME200 - bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); - // Preço acima da VWAP diária (calculada até o 1o candle) - // fVWAPDiario aqui está com o valor após o 2o candle; usar Close[1] vs VWAP[1] aprox - bSinalCompra := bGapExtCima and bCorpoAlta and bVolClimatico and bAcimaMME200 - and (fFechC1 > fVWAPDiario); - - if bSinalCompra then - begin - fStopAtual := fMinC1; - fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); - BuyAtMarket; - bEntradaExecutada := true; - end; - end; - - // ── GESTÃO DE POSIÇÃO ──────────────────────────────────────── - if IsBought or IsSold then - iBarrasEmPosicao := iBarrasEmPosicao + 1 - else - begin - iBarrasEmPosicao := 0; - bBreakEvenAtivo := false; - end; - - if IsBought and bEstavaPosicionado then - begin - if UsarBreakEven and (not bBreakEvenAtivo) and ((High - fPrecoEntrada) >= BreakEvenTriggerPontos) then - bBreakEvenAtivo := true; - - if UsarBreakEven and bBreakEvenAtivo then - fStopAtual := Max(fStopAtual, fPrecoEntrada + BreakEvenOffsetPontos); - - if UsarOCO and ((Low <= fStopAtual) or (High >= fAlvoAtual)) then - ClosePosition - else if iBarrasEmPosicao >= MaxBarrasPosicao then - ClosePosition; - end; - - // ── REGISTRO DE ENTRADA ────────────────────────────────────── - if (not bEstavaPosicionado) and IsBought then - begin - fPrecoEntrada := Close; - iDirecaoPosicao := 1; - iBarrasEmPosicao := 0; - bBreakEvenAtivo := false; - fStopAtual := fMinC1; - fAlvoAtual := fMaxC1 + (fRangeC1 * MultiplicadorAlvo); - end; - - bEstavaPosicionado := IsBought or IsSold; -======= fVolC1 := Volume; end; @@ -186,7 +164,6 @@ iCandleDia : integer; ClosePosition else if iBarrasEmPosicao >= MaxBarrasPosicao then ClosePosition; ->>>>>>> 28ad3e09263482a47bebfc30fd21b2e3eb57208d:automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl end; // ── REGISTRO DE ENTRADA ────────────────────────────────────── diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl index 08ee234..57c9ccf 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_08_v1_abertura_abaixo_minD1.ntsl @@ -61,8 +61,8 @@ begin bBloqueioDia := false; fVWAPSoma := 0; fVWAPVol := 0; - iDiaSemanaAtual := DayOfWeek(Date); - if iDiaSemanaAtual = DiaSemanaReset then + fMME200 := Media(PeriodoMME200, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); begin fResultadoSemana := 0; bBloqueioSemana := false; @@ -77,7 +77,7 @@ begin fVWAPDiario := fVWAPSoma / fVWAPVol; fMME200 := Media(PeriodoMME200, 1, Close); - fMediaVol := Media(PeriodoMediaVol, Volume); + fMediaVol := Media(PeriodoMediaVol, 1, Volume); fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); @@ -95,8 +95,8 @@ begin if UsarGestaoRisco and UsarHardLock and (bBloqueioDia or bBloqueioSemana) and (IsBought or IsSold) then ClosePosition; - if iCandleDia = 1 then - begin + fMME200 := Media(PeriodoMME200, Close); + fMediaVol := Media(PeriodoMediaVol, Volume); fMaxC1 := High; fMinC1 := Low; fAberDia := Open; diff --git a/automacao_backtests/anotacoesBacktest.txt b/automacao_backtests/anotacoesBacktest.txt index c7d81c5..d68b1b9 100644 --- a/automacao_backtests/anotacoesBacktest.txt +++ b/automacao_backtests/anotacoesBacktest.txt @@ -1,2 +1,19 @@ 20260309: +1robo_ifr_v6_saida_hibrida60min77% 2 operacoes 2 min -327,5 ps no dia. 3 min +77,5 pts +3robo_ifr_v45_volume_por_horario60min75% 1 operação +1660pts robo_ifr_v4_divergencia_confirmada60min90% e robo_ifr_v28_ifr_adx_filtro são os primeiros a serem ativos + +robo_ifr_v28_ifr_adx_filtro +15 min -565 pts +2 min 138,75 pts +3 min337,5pts + +robo_ifr_v23_dupla_confirmacao15min87% 1min 55 pts + + +--------Erros comuns: +Compilando ... +Parser[79,40]: No final da chamada da função deve vir " ) " +Parser[80,42]: No final da chamada da função deve vir " ) " +Parser[110,3]: O código deve começar com begin +Erro de Sintaxe From 0a1df092980667974aaff93dc61a0ac442d8f2e8 Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 9 Mar 2026 20:40:01 -0300 Subject: [PATCH 59/63] =?UTF-8?q?Padroniza=C3=A7=C3=A3o=20sintaxe=20NTSL:?= =?UTF-8?q?=20corre=C3=A7=C3=A3o=20ATR,=20Media,=20begin/end,=20inputs=20e?= =?UTF-8?q?=20coment=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl | 64 +++++++++---------- ...C_28_v1_gap_parcial_fecha_acima_maxD1.ntsl | 17 ++--- ..._29_v1_gap_parcial_fecha_abaixo_minD1.ntsl | 20 ++++++ ...mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl | 12 ++-- .../mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl | 3 +- .../ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl | 40 ++++++------ ...PC_33_v1_absorcao_vol_alto_compressao.ntsl | 40 ++++++------ automacao_backtests/anotacoesBacktest.txt | 6 -- .../erros_sintaxe_evitar.tx.txt | 16 +++++ 9 files changed, 125 insertions(+), 93 deletions(-) create mode 100644 automacao_backtests/erros_sintaxe_evitar.tx.txt diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl index 20c2d0f..9bf9db2 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl @@ -1,30 +1,32 @@ -// mar_PC_01_v1_gap_ext_alta_vwap_vol -// Catalogo: #41 — Tier 1 -// Descricao: Gap externo para CIMA + preço acima VWAP diaria + corpo >70% + volume climático -// Entrada compra no 2o candle. Maior confluência possível. -// Timeframe: 15min ou 30min -// Ativo: WIN (minicontrato de índice) -// Versao: 1.0 — marco/2026 + +{ + Robo: mar_PC_01_v1_gap_ext_alta_vwap_vol + Grupo: CANDLE1 — Tier 1 (#41) + Descricao: Gap externo para CIMA + preço acima VWAP diária + corpo >70% + volume climático. Entrada compra no 2º candle. + Timeframe: 15min ou 30min + Ativo: WIN (minicontrato de índice) + Versao: 1.0 — marco/2026 +} input -PctCorpoMinimo(0.70); -FatorVolumeClimatico(1.5); -PeriodoMediaVol(20); -UsarFiltroMME200(true); -PeriodoMME200(200); -MultiplicadorAlvo(1.5); -UsarOCO(true); -UsarBreakEven(false); -BreakEvenTriggerPontos(80.0); -BreakEvenOffsetPontos(5.0); -MaxBarrasPosicao(8); -UsarGestaoRisco(true); // false = backtest puro, ignora limites de risco -UsarHardLock(true); -SaldoConta(3500.0); -RiscoDiaPct(1.0); -RiscoSemanaPct(3.0); -ValorPorPonto(0.2); -DiaSemanaReset(2); + PctCorpoMinimo(0.70); + FatorVolumeClimatico(1.5); + PeriodoMediaVol(20); + UsarFiltroMME200(true); + PeriodoMME200(200); + MultiplicadorAlvo(1.5); + UsarOCO(true); + UsarBreakEven(false); + BreakEvenTriggerPontos(80.0); + BreakEvenOffsetPontos(5.0); + MaxBarrasPosicao(8); + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(3500.0); + RiscoDiaPct(1.0); + RiscoSemanaPct(3.0); + ValorPorPonto(0.2); + DiaSemanaReset(2); var // Declarações apenas, sem inicialização @@ -116,21 +118,15 @@ begin fVolC1 := Volume; end; - // ── LÓGICA DE SINAL (apenas no 2o candle em diante) ───────── + { ── LÓGICA DE SINAL (apenas no 2º candle em diante) ── } if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) - and (not IsBought) and (not IsSold) then + and (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin - // Gap externo para cima: abertura acima da máxima do dia anterior - // High[2] = máxima de D-1 quando estamos no candle 2 (High[1] = 1o candle hoje) bGapExtCima := fAberDia > High[2]; - // Corpo de alta > PctCorpoMinimo do range bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); - // Volume climático bVolClimatico := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeClimatico); - // Preço acima da MME200 bAcimaMME200 := (not UsarFiltroMME200) or (Close > fMME200); - // Preço acima da VWAP diária (calculada até o 1o candle) - // fVWAPDiario aqui está com o valor após o 2o candle; usar Close[1] vs VWAP[1] aprox bSinalCompra := bGapExtCima and bCorpoAlta and bVolClimatico and bAcimaMME200 and (fFechC1 > fVWAPDiario); diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl index 0ff53c8..edf66e2 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_28_v1_gap_parcial_fecha_acima_maxD1.ntsl @@ -43,8 +43,8 @@ var fResultadoPontos, fResultadoReais : float; bBloqueioDia, bBloqueioSemana : boolean; iDiaSemanaAtual : integer; - begin + if Date <> Date[1] then begin iCandleDia := 1; @@ -74,7 +74,7 @@ begin fVWAPDiario := fVWAPSoma / fVWAPVol; fMediaVol := Media(PeriodoMediaVol, Volume); - fATR := ATR(PeriodoATR); + fATR := Media(PeriodoATR, High - Low); fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); @@ -106,14 +106,15 @@ begin fFechD1 := Close[1]; end; + { Sinal de compra: gap parcial + fechamento acima da máxima D-1 } if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) - and (not IsBought) and (not IsSold) then + and (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin - // Gap parcial para cima: abertura entre o fechamento D-1 e a maxima D-1 - bGapParcial := (fAberDia > fFechD1) and (fAberDia < fMaxD1); - bFechaAcimaMaxD1 := fFechC1 > fMaxD1; - bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); - bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + bGapParcial := (fAberDia > fFechD1) and (fAberDia < fMaxD1); + bFechaAcimaMaxD1 := fFechC1 > fMaxD1; + bCorpoAlta := (fFechC1 > fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); bSinalCompra := bGapParcial and bFechaAcimaMaxD1 and bCorpoAlta and bVolOK; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl index 715368c..2a5ff26 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_29_v1_gap_parcial_fecha_abaixo_minD1.ntsl @@ -125,6 +125,26 @@ begin bEntradaExecutada := true; end; end; + { Sinal de venda: gap parcial + fechamento abaixo da mínima D-1 } + if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) + and (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + bGapParcial := (fAberDia < fFechD1) and (fAberDia > fMinD1); + bFechaAbaixoMinD1 := fFechC1 < fMinD1; + bCorpoBaixa := (fFechC1 < fAberDia) and (fCorpoC1 >= fRangeC1 * PctCorpoMinimo); + bVolOK := (fMediaVol > 0) and (fVolC1 >= fMediaVol * FatorVolumeMinimo); + + bSinalVenda := bGapParcial and bFechaAbaixoMinD1 and bCorpoBaixa and bVolOK; + + if bSinalVenda then + begin + fStopAtual := fAberDia; + fAlvoAtual := fFechC1 - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; + end; if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl index 2b8f152..7b621a3 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_30_v1_rejeicao_maxD1_vol_baixo.ntsl @@ -105,12 +105,12 @@ begin if (iCandleDia = 2) and (not bEntradaExecutada) and (fRangeC1 > 0) and (not IsBought) and (not IsSold) then begin - // C1 testou a maxima D-1 (maxima do candle toca ou supera) - bTestaMaxD1 := fMaxC1 >= fMaxD1; - // Mas fechou abaixo da maxima D-1 (rejeicao) - bFechaAbaixo := fFechC1 < fMaxD1; - bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo); - bCorpoBaixaOuDoji := fFechC1 <= fAberDia; // neutro ou baixista + { Sinal de venda: rejeição na máxima D-1 + volume baixo } + bTestaMaxD1 := fMaxC1 >= fMaxD1; + bFechaAbaixo := fFechC1 < fMaxD1; + bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo); + bCorpoBaixaOuDoji := fFechC1 <= fAberDia; // neutro ou baixista + if (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then bSinalVenda := bTestaMaxD1 and bFechaAbaixo and bVolFraco and bCorpoBaixaOuDoji; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl index 4b34f39..08a1be1 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_31_v1_suporte_minD1_vol_baixo.ntsl @@ -107,7 +107,8 @@ begin begin bTestaMinD1 := fMinC1 <= fMinD1; bFechaAcima := fFechC1 > fMinD1; - bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo); + bVolFraco := (fMediaVol > 0) and (fVolC1 <= fMediaVol * FatorVolumeMaximo) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))); bCorpoAltaOuDoji := fFechC1 >= fAberDia; bSinalCompra := bTestaMinD1 and bFechaAcima and bVolFraco and bCorpoAltaOuDoji; diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl index d435622..c63b7c1 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_32_v1_absorcao_vol_medio.ntsl @@ -110,27 +110,29 @@ begin end; // Aguarda rompimento apos absorcao - if bAbsorcao and (not bEntradaExecutada) and (not IsBought) and (not IsSold) - and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) then - begin - bSinalCompra := Close > fMaxC1; - bSinalVenda := Close < fMinC1; - - if bSinalCompra then + { Aguarda rompimento após compressão } + if bCompressaoIntensa and (not bEntradaExecutada) and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin - fStopAtual := fMinC1; - fAlvoAtual := Close + (fATR * MultiplicadorAlvo); - BuyAtMarket; - bEntradaExecutada := true; - end - else if bSinalVenda then - begin - fStopAtual := fMaxC1; - fAlvoAtual := Close - (fATR * MultiplicadorAlvo); - SellShortAtMarket; - bEntradaExecutada := true; + bSinalCompra := Close > fMaxC1; + bSinalVenda := Close < fMinC1; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; end; - end; if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 diff --git a/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl index c15b526..c6f87b3 100644 --- a/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl +++ b/automacao_backtests/CANDLE1/ntsl/mar_PC_33_v1_absorcao_vol_alto_compressao.ntsl @@ -110,27 +110,29 @@ begin end; // Aguarda rompimento apos compressao - if bCompressaoIntensa and (not bEntradaExecutada) and (not IsBought) and (not IsSold) - and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) then - begin - bSinalCompra := Close > fMaxC1; - bSinalVenda := Close < fMinC1; - - if bSinalCompra then + { Aguarda rompimento após compressão } + if bCompressaoIntensa and (not bEntradaExecutada) and (not IsBought) and (not IsSold) + and (iCandleDia >= 2) and (iCandleDia <= (1 + MaxCandlesAguardaRompimento)) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then begin - fStopAtual := fMinC1; - fAlvoAtual := Close + (fATR * MultiplicadorAlvo); - BuyAtMarket; - bEntradaExecutada := true; - end - else if bSinalVenda then - begin - fStopAtual := fMaxC1; - fAlvoAtual := Close - (fATR * MultiplicadorAlvo); - SellShortAtMarket; - bEntradaExecutada := true; + bSinalCompra := Close > fMaxC1; + bSinalVenda := Close < fMinC1; + + if bSinalCompra then + begin + fStopAtual := fMinC1; + fAlvoAtual := Close + (fATR * MultiplicadorAlvo); + BuyAtMarket; + bEntradaExecutada := true; + end + else if bSinalVenda then + begin + fStopAtual := fMaxC1; + fAlvoAtual := Close - (fATR * MultiplicadorAlvo); + SellShortAtMarket; + bEntradaExecutada := true; + end; end; - end; if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 diff --git a/automacao_backtests/anotacoesBacktest.txt b/automacao_backtests/anotacoesBacktest.txt index d68b1b9..1f4f77a 100644 --- a/automacao_backtests/anotacoesBacktest.txt +++ b/automacao_backtests/anotacoesBacktest.txt @@ -11,9 +11,3 @@ robo_ifr_v28_ifr_adx_filtro robo_ifr_v23_dupla_confirmacao15min87% 1min 55 pts ---------Erros comuns: -Compilando ... -Parser[79,40]: No final da chamada da função deve vir " ) " -Parser[80,42]: No final da chamada da função deve vir " ) " -Parser[110,3]: O código deve começar com begin -Erro de Sintaxe diff --git a/automacao_backtests/erros_sintaxe_evitar.tx.txt b/automacao_backtests/erros_sintaxe_evitar.tx.txt new file mode 100644 index 0000000..aa297f7 --- /dev/null +++ b/automacao_backtests/erros_sintaxe_evitar.tx.txt @@ -0,0 +1,16 @@ +--------Erros comuns de sintaxe +Compilando ... +Parser[79,40]: No final da chamada da função deve vir " ) " +Parser[80,42]: No final da chamada da função deve vir " ) " +Parser[110,3]: O código deve começar com begin +Erro de Sintaxe + +Compilando ... +Parser[78,16]: Função ou variável inválida: ATR +Parser[177,1]: O código deve começar com begin +Erro de Sintaxe + +Compilando ... +Parser[156,1]: Bloco incompleto +Parser[156,1]: Bloco incompleto +Erro de Sintaxe From cc6b49f6fc0648fa075b34f686f1e87cf9e2a6fa Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 9 Mar 2026 21:06:30 -0300 Subject: [PATCH 60/63] =?UTF-8?q?Atualiza=C3=A7=C3=A3o:=20erros=20sintaxe?= =?UTF-8?q?=20e=20aula=20Vasco=20Mamede?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erros_sintaxe_evitar.tx.txt | 62 +++++++++++++++++++ estudo_teorias/0_diario/AulaVascoMamede.md | 6 ++ 2 files changed, 68 insertions(+) diff --git a/automacao_backtests/erros_sintaxe_evitar.tx.txt b/automacao_backtests/erros_sintaxe_evitar.tx.txt index aa297f7..555a7cf 100644 --- a/automacao_backtests/erros_sintaxe_evitar.tx.txt +++ b/automacao_backtests/erros_sintaxe_evitar.tx.txt @@ -14,3 +14,65 @@ Compilando ... Parser[156,1]: Bloco incompleto Parser[156,1]: Bloco incompleto Erro de Sintaxe + +Compilando ... +Parser[44,5]: Print não é um identificador válido +Parser[79,24]: SellAtMarket não é um identificador válido +Parser[81,7]: exit não é um identificador válido +Parser[83,45]: exit não é um identificador válido +Parser[119,29]: SellAtMarket não é um identificador válido +Parser[120,29]: SellAtMarket não é um identificador válido +Parser[128,1]: O código deve começar com begin +Erro de Sintaxe + + +Compilando ... +Parser[49,5]: Print não é um identificador válido +Parser[80,16]: Função ou variável inválida: ATR +Parser[116,8]: Função ou variável inválida: bCompressaoIntensa +Parser[179,1]: O código deve começar com begin +Erro de Sintaxe + +Compilando ... +Parser[49,5]: Print não é um identificador válido +Parser[79,16]: Função ou variável inválida: ATR +Parser[156,1]: O código deve começar com begin +Erro de Sintaxe + +Compilando ... +Parser[50,5]: Print não é um identificador válido +Parser[79,40]: No final da chamada da função deve vir " ) " +Parser[154,1]: O código deve começar com begin +Erro de Sintaxe + + +Compilando ... +Parser[58,5]: Print não é um identificador válido +Parser[87,40]: No final da chamada da função deve vir " ) " +Parser[89,16]: Função ou variável inválida: ATR +Parser[202,1]: O código deve começar com begin +Erro de Sintaxe + + +Compilando ... +Parser[28,5]: Print não é um identificador válido +Parser[56,87]: SellAtMarket não é um identificador válido +Parser[56,129]: exit não é um identificador válido +Parser[57,45]: exit não é um identificador válido +Parser[63,22]: SellAtMarket não é um identificador válido +Parser[65,5]: exit não é um identificador válido +Parser[76,49]: SellAtMarket não é um identificador válido +Parser[76,86]: SellAtMarket não é um identificador válido +Parser[96,1]: O código deve começar com begin +Erro de Sintaxe + + +Compilando ... +Parser[13,28]: Token inválido: = +Parser[13,28]: O código deve começar com begin +Erro de Sintaxe + +Compilando ... +Parser[52,5]: Print não é um identificador válido +Parser[160,1]: O código deve começar com begin +Erro de Sintaxe diff --git a/estudo_teorias/0_diario/AulaVascoMamede.md b/estudo_teorias/0_diario/AulaVascoMamede.md index e69de29..14d717b 100644 --- a/estudo_teorias/0_diario/AulaVascoMamede.md +++ b/estudo_teorias/0_diario/AulaVascoMamede.md @@ -0,0 +1,6 @@ +VASCO MAMEDE - Confluencias maiores diário e 60minutos. Pesos: +25% Fibonacci +25% Médias móveis +25% Estrutura +25% Suporte/Resistência +Longe da 20? \ No newline at end of file From d0b813365596226630c8148c6a6183609227d26c Mon Sep 17 00:00:00 2001 From: Wesley Gomes da Silva Date: Mon, 9 Mar 2026 21:16:17 -0300 Subject: [PATCH 61/63] erros de sintaxe comuns --- automacao_backtests/erros_sintaxe_evitar.tx.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/automacao_backtests/erros_sintaxe_evitar.tx.txt b/automacao_backtests/erros_sintaxe_evitar.tx.txt index 555a7cf..523df09 100644 --- a/automacao_backtests/erros_sintaxe_evitar.tx.txt +++ b/automacao_backtests/erros_sintaxe_evitar.tx.txt @@ -25,7 +25,6 @@ Parser[120,29]: SellAtMarket não é um identificador válido Parser[128,1]: O código deve começar com begin Erro de Sintaxe - Compilando ... Parser[49,5]: Print não é um identificador válido Parser[80,16]: Função ou variável inválida: ATR @@ -45,7 +44,6 @@ Parser[79,40]: No final da chamada da função deve vir " ) " Parser[154,1]: O código deve começar com begin Erro de Sintaxe - Compilando ... Parser[58,5]: Print não é um identificador válido Parser[87,40]: No final da chamada da função deve vir " ) " @@ -53,7 +51,6 @@ Parser[89,16]: Função ou variável inválida: ATR Parser[202,1]: O código deve começar com begin Erro de Sintaxe - Compilando ... Parser[28,5]: Print não é um identificador válido Parser[56,87]: SellAtMarket não é um identificador válido @@ -66,7 +63,6 @@ Parser[76,86]: SellAtMarket não é um identificador válido Parser[96,1]: O código deve começar com begin Erro de Sintaxe - Compilando ... Parser[13,28]: Token inválido: = Parser[13,28]: O código deve começar com begin From 8de401a1b4000b4924f7d32bdbd25968b496a7ad Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Wed, 11 Mar 2026 09:03:29 -0300 Subject: [PATCH 62/63] =?UTF-8?q?Adiciona=20teoria=20completa=20do=20ADX?= =?UTF-8?q?=20com=20exemplos=20pr=C3=A1ticos,=20tabelas=20e=20integra?= =?UTF-8?q?=C3=A7=C3=A3o=20com=20outros=20indicadores=20para=20day=20trade?= =?UTF-8?q?=20B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- estudo_teorias/2_teorias/teoria_ADX.md | 98 ++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 estudo_teorias/2_teorias/teoria_ADX.md diff --git a/estudo_teorias/2_teorias/teoria_ADX.md b/estudo_teorias/2_teorias/teoria_ADX.md new file mode 100644 index 0000000..858bd57 --- /dev/null +++ b/estudo_teorias/2_teorias/teoria_ADX.md @@ -0,0 +1,98 @@ +# Teoria do ADX (Average Directional Index) + +O **ADX (Average Directional Index)** é um indicador de análise técnica criado por J. Welles Wilder, utilizado para medir a força de uma tendência, seja ela de alta ou de baixa. Muito usado no day trade brasileiro, especialmente no WIN (mini índice B3), o ADX não indica direção, mas sim a intensidade da tendência. + +--- + +## Como funciona o ADX? + +O ADX é composto por três linhas: + +| Linha | O que mostra | +|-------------- |-------------------------------------| +| **+DI** | Força dos movimentos de alta | +| **-DI** | Força dos movimentos de baixa | +| **ADX** | Força da tendência (sem direção) | + +- **ADX alto** (acima de 25): tendência forte (pode ser alta ou baixa) +- **ADX baixo** (abaixo de 20): mercado lateral, sem tendência definida + +> **Dica prática:** +> - ADX subindo: tendência está ganhando força +> - ADX caindo: tendência está perdendo força + +--- + +## Fórmula do ADX (resumida) + +1. Calcule +DI e -DI (Directional Indicators) +2. Calcule o valor absoluto da diferença entre +DI e -DI +3. Divida pelo total de movimento direcional +4. Suavize com média móvel (geralmente 14 períodos) + +> No Profit, basta usar a função nativa `ADX(periodo)` + +--- + +## Parâmetros mais usados + +| Parâmetro | Valor padrão | Observação | +|-----------|-------------|-----------------------------| +| Período | 14 | Mais sensível: menor valor | +| Timeframe | 5min, 15min | Day trade: 5min ou 15min | + +--- + +## Interpretação prática + +- **ADX < 20:** mercado lateral, evite operar tendência +- **ADX > 25:** tendência forte, buscar operações a favor +- **+DI acima de -DI:** tendência de alta +- **-DI acima de +DI:** tendência de baixa + +### Exemplo prático (WIN 5min) + +1. ADX cruza acima de 25 → tendência forte +2. +DI acima de -DI → buscar compras +3. -DI acima de +DI → buscar vendas + +--- + +## Estratégias com ADX + +| Estratégia | Sinal de entrada | +|---------------------------- |-----------------------------------------| +| Seguir tendência | ADX > 25 e +DI > -DI (compra) | +| | ADX > 25 e -DI > +DI (venda) | +| Evitar falso rompimento | Não operar se ADX < 20 | +| Filtro de lateralidade | Só operar price action se ADX > 20 | + +--- + +## Vantagens e Limitações + +**Vantagens:** +- Ajuda a filtrar períodos de lateralidade +- Evita entradas em falso rompimento +- Fácil de combinar com outros indicadores (MME, IFR) + +**Limitações:** +- Não mostra direção, apenas força +- Pode atrasar sinais em reversões rápidas +- Falso positivo em movimentos curtos + +--- + +## Como usar no Profit (NTSL) + +```ntsl +if ADX(14) > 25 and +DI(14) > -DI(14) then + BuyAtMarket; +``` + +--- + +## Referências +- Livro: New Concepts in Technical Trading Systems — J. Welles Wilder +- [Investopedia: ADX](https://www.investopedia.com/terms/a/adx.asp) +- Manual ProfitChart: função ADX \ No newline at end of file From f9d674de41fb9c58e8c7cda0d8ab1b3f18152953 Mon Sep 17 00:00:00 2001 From: wesleyzilva Date: Wed, 11 Mar 2026 10:41:25 -0300 Subject: [PATCH 63/63] =?UTF-8?q?Novo=20rob=C3=B4=20NTSL:=20revers=C3=A3o?= =?UTF-8?q?=20IFR=20+=20Price=20Action=20+=20volume,=20s=C3=B3=20opera=20e?= =?UTF-8?q?m=20lateralidade=20(ADX=20<=2020),=20WIN=2060min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eversao_vol_volume_lateralidade_60min.ntsl | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 automacao_backtests/IFR_RSI/ntsl/mar_IFRADX_01_reversao_vol_volume_lateralidade_60min.ntsl diff --git a/automacao_backtests/IFR_RSI/ntsl/mar_IFRADX_01_reversao_vol_volume_lateralidade_60min.ntsl b/automacao_backtests/IFR_RSI/ntsl/mar_IFRADX_01_reversao_vol_volume_lateralidade_60min.ntsl new file mode 100644 index 0000000..89e57bf --- /dev/null +++ b/automacao_backtests/IFR_RSI/ntsl/mar_IFRADX_01_reversao_vol_volume_lateralidade_60min.ntsl @@ -0,0 +1,146 @@ +{ + Estrategia: mar_IFRADX_01_reversao_vol_volume_lateralidade_60min + Descricao: Reversão em Price Action (martelo/estrela cadente) com IFR extremo + e volume acima da média, operando apenas em lateralidade (ADX < 20). + Saída por IFR retornando a 50/40 ou por tempo. Foco: WIN 60min. + Timeframe: 60min +} + +input + // ── IFR ───────────────────────────────────────────── + PeriodoIFR(9); { período do IFR } + NivelSobrecompra(70); { IFR >= 70 = sobrecompra } + NivelSobrevenda(30); { IFR <= 30 = sobrevenda } + // ── Price Action ─────────────────────────────────── + MultiplicadorPavio(1.5); { pavio >= corpo * multiplicador } + MaxPavioOpostoCorpo(1.2); + // ── Volume ───────────────────────────────────────── + PeriodoMediaVol(20); + FatorVolume(1.2); { volume >= 120% da média } + // ── ADX ───────────────────────────────────────────── + PeriodoADX(14); + LimiarADX(20); { ADX < 20 = lateralidade } + // ── Saída ────────────────────────────────────────── + UsarSaidaIFR(true); + NivelSaidaCompra(50); { IFR >= 50 = sair compra } + NivelSaidaVenda(40); { IFR <= 40 = sair venda } + UsarSaidaTempo(true); + MaxBarrasPosicao(12); + // ── Gestão de risco ─────────────────────────────── + UsarGestaoRisco(true); + UsarHardLock(true); + SaldoConta(10000.0); + RiscoDiaPct(1.5); + RiscoSemanaPct(3.0); + MaxStopsConsecutivos(3); + ValorPorPonto(0.2); + DiaSemanaReset(2); + +var + fIFR, fMediaVol, fADX : float; + fRange, fCorpo, fPavioSup, fPavioInf : float; + bMartelo, bEstrela, bVolumeOk, bLateral : boolean; + iBarrasEmPosicao : integer; + fPrecoEntrada, fResultadoDia, fResultadoSemana : float; + fLimiteDia, fLimiteSemana, fResultadoPontos, fResultadoReais : float; + bBloqueioDia, bBloqueioSemana : boolean; + iDirecaoPosicao, iStopsConsec, iDiaSemanaAtual : integer; + +begin + if CurrentBar = 1 then + Print("Robo ativo: mar_IFRADX_01_reversao_vol_volume_lateralidade_60min"); + + if Date <> Date[1] then + begin + iBarrasEmPosicao := 0; + fResultadoDia := 0; + bBloqueioDia := false; + iDiaSemanaAtual := DayOfWeek(Date); + if iDiaSemanaAtual = DiaSemanaReset then + begin + fResultadoSemana := 0; + bBloqueioSemana := false; + end; + end; + + if UsarGestaoRisco then + begin + fLimiteDia := SaldoConta * (RiscoDiaPct / 100.0); + fLimiteSemana := SaldoConta * (RiscoSemanaPct / 100.0); + if (iDirecaoPosicao = 1) and (not IsBought) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := Close - fPrecoEntrada; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if (iDirecaoPosicao = -1) and (not IsSold) and (fPrecoEntrada > 0) then + begin + fResultadoPontos := fPrecoEntrada - Close; + fResultadoReais := fResultadoPontos * ValorPorPonto; + fResultadoDia := fResultadoDia + fResultadoReais; + fResultadoSemana := fResultadoSemana + fResultadoReais; + if fResultadoReais < 0 then iStopsConsec := iStopsConsec + 1 else iStopsConsec := 0; + fPrecoEntrada := 0; iDirecaoPosicao := 0; + end; + if UsarHardLock then + begin + if fResultadoDia <= -fLimiteDia then bBloqueioDia := true; + if fResultadoSemana <= -fLimiteSemana then bBloqueioSemana := true; + if iStopsConsec >= MaxStopsConsecutivos then bBloqueioDia := true; + end; + end; + + // ── CÁLCULOS ─────────────────────────────────────── + fIFR := IFR(PeriodoIFR); + fMediaVol := Media(PeriodoMediaVol, Volume); + fADX := ADX(PeriodoADX); + bVolumeOk := Volume >= fMediaVol * FatorVolume; + bLateral := fADX < LimiarADX; + + fRange := High - Low; + fCorpo := Abs(Open - Close); + fPavioSup := High - Max(Open, Close); + fPavioInf := Min(Open, Close) - Low; + + bMartelo := (fRange > 0) and (fCorpo > 0) + and (fPavioInf >= fCorpo * MultiplicadorPavio) + and (fPavioSup <= fCorpo * MaxPavioOpostoCorpo); + + bEstrela := (fRange > 0) and (fCorpo > 0) + and (fPavioSup >= fCorpo * MultiplicadorPavio) + and (fPavioInf <= fCorpo * MaxPavioOpostoCorpo); + + // ── ENTRADA ──────────────────────────────────────── + if (not IsBought) and (not IsSold) + and (not (UsarGestaoRisco and (bBloqueioDia or bBloqueioSemana))) then + begin + // Compra: IFR em sobrevenda, martelo, volume alto, lateralidade + if (fIFR <= NivelSobrevenda) and bMartelo and bVolumeOk and bLateral then + begin + BuyAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := 1; + end + // Venda: IFR em sobrecompra, estrela cadente, volume alto, lateralidade + else if (fIFR >= NivelSobrecompra) and bEstrela and bVolumeOk and bLateral then + begin + SellShortAtMarket; + fPrecoEntrada := Close; iDirecaoPosicao := -1; + end; + end; + + // ── BARRA EM POSIÇÃO ────────────────────────────── + if IsBought or IsSold then iBarrasEmPosicao := iBarrasEmPosicao + 1 + else iBarrasEmPosicao := 0; + + // ── SAÍDA ───────────────────────────────────────── + if IsBought and ((UsarSaidaIFR and (fIFR >= NivelSaidaCompra)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; + + if IsSold and ((UsarSaidaIFR and (fIFR <= NivelSaidaVenda)) + or (UsarSaidaTempo and (iBarrasEmPosicao >= MaxBarrasPosicao))) then + ClosePosition; +end;