Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
cdb42d9
Add files from C:\Nova pasta
wesleyzilva Feb 24, 2026
f33b719
adequação de branchs
wesleyzilva Feb 24, 2026
66ca9b7
...
wesleyzilva Feb 24, 2026
1fb2997
ajustes de nomes e organização
wesleyzilva Feb 24, 2026
e74182c
reorganização para que a nova branch fique em ordem do que já foi est…
wesleyzilva Feb 24, 2026
83c70b6
reorganização
wesleyzilva Feb 24, 2026
d507e23
Ajustes de candles de rejeição e zonas de rejeição.
wesleyzilva Feb 24, 2026
361bfcf
Ajustes de volatilidade por horario durante o pregão B3 WIN
wesleyzilva Feb 24, 2026
5f1b0f0
Ajustes de corte de horario de operação
wesleyzilva Feb 24, 2026
b3e4fee
Ajsutes para identificaçao de Força de ATR entre 30 e 70
wesleyzilva Feb 25, 2026
71caf2d
ajuste de forças em zona de IFR para operçaão
wesleyzilva Feb 26, 2026
67bf975
ajustes
wesleyzilva Feb 26, 2026
cbb1581
Adiciona alarmes IFR em 10, 50 e 90
wesleyzilva Mar 2, 2026
2f69303
Cria indicador mar_IFR_reversaoComVolume com alertas IFR
wesleyzilva Mar 2, 2026
39804be
Adiciona pasta automacao_backtests na raiz
wesleyzilva Mar 2, 2026
9d2e9d4
Remove alarme de IFR 50 dos indicadores
wesleyzilva Mar 2, 2026
e907bd6
Analise de 50 possiveis robos via IFR e seus resultados em diferentes…
wesleyzilva Mar 2, 2026
0dc9264
top 10 IFR
wesleyzilva Mar 2, 2026
7dc7039
Atualiza top10 IFR e adiciona indicadores de cores marco2026
wesleyzilva Mar 2, 2026
e102f97
Atualiza arquivos de analise IFR
wesleyzilva Mar 2, 2026
608a77b
Adiciona gestao de risco e reset semanal fixo nos robos top10
wesleyzilva Mar 2, 2026
78c740f
Aprimora top4 com OCO/breakeven parametrizavel e hard lock
wesleyzilva Mar 2, 2026
e1af58a
Adiciona ruleset JSON para proteger branch marco_Tradeoperador
wesleyzilva Mar 2, 2026
e6a770a
Adiciona configurações do workspace: copilot-instructions, mcp.json, …
wesleyzilva Mar 7, 2026
1209fd1
Adiciona configurações Checkmarx do workspace
wesleyzilva Mar 7, 2026
39e6525
Adiciona arquivo .code-workspace do workspace TradeRobos
wesleyzilva Mar 7, 2026
9b4e8c6
Reorganiza estrutura: fev2026/, codigo_fonte/, subpastas estudo_teori…
wesleyzilva Mar 7, 2026
1a12cbb
Adiciona catalogo 50 variações robos primeiro candle (GAP, VWAP, Rang…
wesleyzilva Mar 7, 2026
88c5d9b
Adiciona grupos Volume/ATR/MME200 ao catalogo e expande teoria primei…
wesleyzilva Mar 7, 2026
3554956
Adiciona 10 robos Tier1 primeiro candle (PC_01 a PC_10)
wesleyzilva Mar 7, 2026
04c8e21
Corrige bugs nos 10 robos PC_01-PC_10: resultado short, guard IsBough…
wesleyzilva Mar 7, 2026
6b9bfd1
Adiciona Tier2 (PC_11-PC_21) e Tier3 (PC_22-PC_33) - 23 robos primeir…
wesleyzilva Mar 7, 2026
31071bc
Adiciona guias completos Profit e MetaTrader - backtest 5 anos, otimi…
wesleyzilva Mar 7, 2026
bcd0a35
Refina gestao de risco Profit - criterios exatos de desligamento, 1 c…
wesleyzilva Mar 7, 2026
6cc5b4a
Atualiza capital real - Profit R e MT5 USD5k com limites de risco rec…
wesleyzilva Mar 7, 2026
e1d21f6
Adiciona grupo PPV (4 robos), EA MQL5 exemplo, selecao 5 ativos MT5, …
wesleyzilva Mar 7, 2026
547fb13
Estrutura completa: STOPTOLERANTE (4 robos), 6 grupos novos, MAPA_GRU…
wesleyzilva Mar 7, 2026
e413637
copilot-instructions: gestao de risco sempre parametrizavel via input
wesleyzilva Mar 7, 2026
d198657
Reorganizacao: NTSL renomeados .ntsl.txt, LABORATORIO_INDICADORES cri…
wesleyzilva Mar 7, 2026
6a0aedd
Reorganizacao: fev2026 extensoes corrigidas, IFR legado isolado, lega…
wesleyzilva Mar 7, 2026
e04d64c
Estrutura: README raiz, DUPLACONFIRMACAO doc, LATERALIZACAO_DAYTRADE …
wesleyzilva Mar 7, 2026
0dd1081
IFR_RSI: mar_IFR_04 a mar_IFR_10 bandas dinamicas, risco diario, 1-t…
wesleyzilva Mar 7, 2026
d47828a
MEDIAS: MED_01-06 criados (cruzamentos, score 4 medias, toque, MMA200…
wesleyzilva Mar 7, 2026
ca5b964
Estrutura: codigo_fonte->ntsl em todos grupos, resultsBackTestTimefra…
wesleyzilva Mar 7, 2026
970186d
Rename: .ntsl.txt -> .ntsl em todos os grupos (106 arquivos); adicion…
wesleyzilva Mar 7, 2026
91d3b51
Adiciona 38 robos: LAB_03-05, LAT_01-05, LSW_01-05, REV_01-05, SCM_01…
wesleyzilva Mar 7, 2026
5d03d2e
Padrao: .ntsl oficial, resultados _TIMEFRAME.csv; MQL5 REV_01-05; atu…
wesleyzilva Mar 7, 2026
3f6b2be
Convencao: sem vX, timeframe no final; adiciona bloco risco MQL5 inte…
wesleyzilva Mar 7, 2026
dcf5e6c
Docs: corrige convencao em todos os mds (ntsl, sem vX, timeframe no f…
wesleyzilva Mar 7, 2026
a3276ce
Docs: corrige convencao CSV em README_convencao.md (timeframe no fina…
wesleyzilva Mar 7, 2026
14aa1fc
Docs: corrige convencao CSV em todos os README_convencao.md (timefram…
wesleyzilva Mar 7, 2026
b5de9f8
Docs: corrige paths obsoletos (resultados/ -> resultsBackTestTimefram…
wesleyzilva Mar 7, 2026
9a861f6
Docs: adiciona referencia de sintaxe NTSL e corrige bloco input (pare…
wesleyzilva Mar 7, 2026
0f20406
Docs: atualiza copilot-instructions.md
wesleyzilva Mar 7, 2026
28ad3e0
docs: teoria de backtest - fricções, slippage, spread, timeframes e i…
wesleyzilva Mar 9, 2026
df89402
ajustes e anotaçoes
wesleyzilva Mar 9, 2026
9aba0eb
feat: adiciona rastreabilidade de ordens em todos os robos
wesleyzilva Mar 9, 2026
c477407
Merge automático resolvido: mar_PC_01_v1_gap_ext_alta_vwap_vol.ntsl
wesleyzilva Mar 9, 2026
a2d07ec
subir instrucao robos
wesleyzilva Mar 9, 2026
0a1df09
Padronização sintaxe NTSL: correção ATR, Media, begin/end, inputs e c…
wesleyzilva Mar 9, 2026
ddaf055
fix(ntsl): correção automática de erros de sintaxe recorrentes
wesleyzilva Mar 9, 2026
cc6b49f
Atualização: erros sintaxe e aula Vasco Mamede
wesleyzilva Mar 10, 2026
d0b8133
erros de sintaxe comuns
wesleyzilva Mar 10, 2026
8de401a
Adiciona teoria completa do ADX com exemplos práticos, tabelas e inte…
wesleyzilva Mar 11, 2026
f9d674d
Novo robô NTSL: reversão IFR + Price Action + volume, só opera em lat…
wesleyzilva Mar 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
306 changes: 306 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
# 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/
├── 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_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/ → Indicadores/colorações prontos para o Profit
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`)
- Nomenclatura: `mar_GRUPO_NN_descricao_timeframe.ntsl`
- Sempre incluir comentário de cabeçalho com: timeframe, descrição, taxa de acerto se disponível
- **OBRIGATÓRIO:** todos os parâmetros de risco declarados como `input` (ver bloco padrão na seção Gerenciamento de Risco)

#### 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)

- Extensão: **`.mq5`**
- Nomenclatura: `mar_GRUPO_NN_descricao_timeframe.mq5`
- Estrutura obrigatória: `#include <Trade\Trade.mqh>` + 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/`

### 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`)
- Seguir estrutura de backtest existente na pasta `automacao_backtests/IFR_RSI/`
- 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)

- 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

### 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.

#### Bloco padrão — NTSL (Neologica Profit):

```ntsl
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
// 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 (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**

---

## 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: `<mês>_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
32 changes: 32 additions & 0 deletions .github/rulesets/marco_Tradeoperador.ruleset.json
Original file line number Diff line number Diff line change
@@ -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
}
}
]
}
1 change: 1 addition & 0 deletions .vscode/.checkmarxDevAssistIgnored
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions .vscode/.checkmarxIgnored
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
13 changes: 13 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
Loading