Skip to content
Closed

ups #6991

Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
84b868a
Add laptop quant desk: csp + gs-quant + ArcticDB EMA crossover sweep
claude Nov 8, 2026
4ba420a
Merge pull request #1 from joseedson18jc/claude/quirky-archimedes-ytfumc
joseedson18jc Nov 8, 2026
4495e5f
Add multi-year regime study: trend filters, stay-flat, mean reversion
claude Nov 8, 2026
b88fd08
Add multi-year study results: report, charts, per-sweep tables
claude Nov 8, 2026
6d32d34
Robust construction: long/flat, whole-grid ensembles, vol targeting
claude Nov 8, 2026
18d063c
Solve study caveats: next-open execution, honest selection, more coin…
claude Nov 9, 2026
ec2f487
Study outputs on 2017+ BTC history at 15 bps next-open pricing
claude Nov 9, 2026
b83057a
Deflated Sharpe: no-skill dispersion and vol-matched buy & hold compa…
claude Nov 9, 2026
0e2fbc3
Robustness, multi-coin and paper outputs (run before the DSR fix)
claude Nov 9, 2026
1d7c220
Final outputs: corrected Deflated Sharpe, robustness, 9 coins, paper …
claude Nov 9, 2026
8dbea2c
Test the open issues: long-only hold-outs, survivorship-free universe…
claude Nov 9, 2026
61c2596
Full run on fresh data: study, robustness and coin outputs (report pe…
claude Nov 9, 2026
0983482
Full run: long-only hold-outs, survivorship-free universe, Bitstamp/C…
claude Nov 9, 2026
1148d50
README: results of the full run, what is still open, current costs an…
claude Nov 9, 2026
173fe7e
quant_desk: use one import style per module (CodeQL py/import-and-imp…
claude Nov 9, 2026
991b598
Merge branch 'Tracer-Cloud:main' into main
joseedson18jc Nov 9, 2026
84bb32f
Apply suggestion from @greptile-apps[bot]
joseedson18jc Nov 9, 2026
c9402fa
Fix initial EMA entry logic and ignore generated output artifacts.
joseedson18jc Nov 9, 2026
2409e03
quant_desk: always_in opens right after warm-up instead of waiting fo…
claude Nov 9, 2026
92d2a91
quant_desk: stop committing generated output
claude Nov 9, 2026
1f59648
Merge main into claude/quirky-archimedes-ytfumc
claude Nov 9, 2026
2fba47f
Merge main into claude/quirky-archimedes-ytfumc
claude Nov 9, 2026
1aa146e
Merge pull request #2 from joseedson18jc/claude/quirky-archimedes-ytfumc
joseedson18jc Nov 9, 2026
8d77aba
quant_desk README: re-checked results after the always_in entry fix
claude Nov 9, 2026
c2a99f6
Merge pull request #3 from joseedson18jc/claude/quirky-archimedes-ytfumc
joseedson18jc Nov 9, 2026
436c565
ci: run cli-live-agent without live_llm tests outside Tracer-Cloud/op…
claude Nov 9, 2026
758f74d
Merge pull request #4 from joseedson18jc/claude/quirky-archimedes-ytfumc
joseedson18jc Nov 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions quant_desk/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.venv/
data/
__pycache__/
.pytest_cache/
.ruff_cache/
# The repo root ignores output/; keep this run's report and charts as a committed snapshot.
!output/
68 changes: 68 additions & 0 deletions quant_desk/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Mesa quant no laptop — BTC/USDT, csp + gs-quant + ArcticDB

Pipeline completo e local (sem caixa preta: código e dados ficam com você):

1. baixa 30 dias de barras de 1 minuto de BTC/USDT da API pública da Binance (sem chave);
2. reamostra para 15m e grava as duas séries numa biblioteca local **ArcticDB** (LMDB);
3. lê de volta do ArcticDB e calcula EMA, Bandas de Bollinger e RSI com
`gs_quant.timeseries`, mais um perfil de volume (POC e value area de 70%);
4. reproduz as barras como stream no **csp** e roda um cruzamento de EMA long/short com
taxa de 2 bps;
5. varre **212 combos** (rápida 4–24 passo 2 × lenta 12–96 passo 4, com lenta ≥ 1,5 × rápida)
num único grafo csp, classifica por Sharpe, divide os 30 dias em 4 janelas e rotula cada
combo como **platô** ou **pico**;
6. desenha cada LONG e SHORT na barra exata e grava o log do agente com o mesmo timestamp;
7. roda um **walk-forward** (escolhe na janela k, opera na k+1) para comparar com a "tela".

## Rodar

Pré-requisitos: Python 3.10+ (testado em 3.13) e acesso de rede a `data-api.binance.vision`.
Comment thread
joseedson18jc marked this conversation as resolved.
Resolved

```bash
cd quant_desk
python -m venv .venv # ou: uv venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python run_desk.py # baixa dados novos e roda tudo (~20 s)
.venv/bin/python run_desk.py --no-fetch # reaproveita as barras já gravadas no ArcticDB
.venv/bin/python -m pytest # testes (dados sintéticos, sem rede)
```

Saídas em `output/`:

| arquivo | conteúdo |
|---|---|
| `REPORT.md` | ranking, platô vs pico, walk-forward, indicadores na última barra |
| `trades.png` | preço, EMAs, Bollinger, todos os trades, RSI, equity vs buy & hold, perfil de volume |
| `trades_zoom.png` | últimos 2 dias em candles, cada trade rotulado com a hora da barra |
| `sweep_heatmap.png` | Sharpe nos 212 combos, picos e platôs marcados |
| `windows.png` | equity dos 5 melhores dentro de cada janela |
| `walk_forward.png` | walk-forward fora da amostra vs a tela e buy & hold |
| `agent.log` | uma linha por trade, com o timestamp da barra que disparou |
| `sweep.csv` | os 212 combos com todas as métricas |

O ArcticDB fica em `data/arctic` (símbolos `BTCUSDT_1m`, `BTCUSDT_15m`,
`BTCUSDT_15m_ema_sweep`; cada execução grava uma nova versão).

## Regras de execução (para não se enganar)

- As barras são carimbadas no **fechamento**. O cruzamento na barra *t* executa no fechamento
de *t* e só ganha o movimento de *t* → *t+1*. Um teste injeta lookahead e verifica que ele é pego.
- A taxa é 2 bps por unidade de mudança de posição: entrada 2 bps, virada long↔short 4 bps.
- A estratégia fica sempre posicionada depois do primeiro cruzamento (stop-and-reverse).
- Sharpe anualizado com √(365 × 96) sobre retornos de 15m, já descontadas as taxas.
- **Platô**: os vizinhos na grade (±1 passo) mantêm ≥ 50% do Sharpe **e** o combo é positivo
em ≥ 3 de 4 janelas. **Pico**: qualquer outro combo com Sharpe > 0.

## Leia antes de confiar

- O melhor combo é escolhido nos mesmos dados em que é mostrado. É uma tela, não prova.
Olhe o walk-forward e o `REPORT.md`, que mostra quanto do resultado veio de um único dia.
- 30 dias geram só 3 passos de walk-forward. Rode com mais histórico (`LOOKBACK_DAYS` em
`desk/config.py`) antes de concluir qualquer coisa.
- Faça paper trade por semanas antes de pensar em operar ao vivo.
- **Licença do ArcticDB**: Business Source License 1.1. Uso em produção é permitido, exceto
oferecer o ArcticDB como serviço de banco de dados. Cada versão vira Apache 2.0 dois anos
após o lançamento. Confira os termos da versão que você usa antes de qualquer uso comercial.
- gs-quant não tem função de perfil de volume; aquele cálculo é um histograma próprio
(`desk/indicators.py`).
- Os dados são BTC/**USDT** da Binance, usado como proxy de BTC/USD.
1 change: 1 addition & 0 deletions quant_desk/desk/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Laptop quant desk: Binance bars -> ArcticDB -> gs-quant indicators -> csp strategy replay."""
Loading
Loading