Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ résolution quotidienne, les observations ne sont consommées que lors d'un
`OnData` postérieur, ce qui rend ces imprécisions conservatrices en pratique ;
elles restent à formaliser avant tout passage intraday.

### Brancher une autre source

`write_cloud_module` (`edgar_signal.py:642`) est le convertisseur **de ce projet** : il
émet un module `.py` à partir des paires 10-K qu'il a lui-même construites, pour la
source SEC uniquement. Pour une source ouverte nouvelle (EDGAR full-text, export
Kaggle, fichier maison), le convertisseur généralisé est
[`scripts/datasets/build_qc_custom_data.py`](../../../../scripts/datasets/build_qc_custom_data.py) :
il lit `csv`/`tsv`/`json`/`jsonl` et émet le même type d'artefact (constante de
données, plus la classe `PythonData` si on la demande). Le convertisseur du projet
reste en place et inchangé — la généralisation ne le remplace pas, elle évite d'en
réécrire un par source.

## Fichiers

- `main.py` — stratégie Brain originale, laissée byte-identique
Expand Down
26 changes: 26 additions & 0 deletions scripts/datasets/README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Collection of scripts for downloading and managing historical market data for Qu
| `stitch_crypto.py` | Bitstamp + Binance + yfinance | BTC/USD 1h continuous CSV |
| `build_panier_anti_bias.py` | yfinance (26 symbols, 7 asset classes) | Multi-asset panier CSVs |
| `dezip_forex.py` | FXCM/Oanda zip archives | Forex bid/ask OHLCV CSVs |
| `build_qc_custom_data.py` | Local tabular file (csv, tsv, json, jsonl) | `.py` module consumable by a QuantConnect Cloud project |

## Quick Start

Expand Down Expand Up @@ -81,6 +82,31 @@ Output: `MyIA.AI.Notebooks/QuantConnect/datasets/qc/`

Prerequisite: `pip install lean` + `lean login` for lean-cli mode.

### Converting a dataset into a QuantConnect module

A QuantConnect Cloud project **rejects `.csv` files**: only `.py` is accepted.
`build_qc_custom_data.py` converts a local tabular file into a `.py` module — the
data constant, plus the `PythonData` class that reads it back if requested.

```bash
# A JSONL file (one JSON object per line) -> data module
python scripts/datasets/build_qc_custom_data.py \
--input signals.jsonl --variable KAGGLE_SIGNALS --output signals_data.py

# With a custom-data class: name the role of each column
python scripts/datasets/build_qc_custom_data.py \
--input filings.csv --delimiter ';' --variable FILINGS \
--class-name FilingSignal --date-column accepted_at \
--ticker-column ticker --value-column similarity --output filing_data.py
```

Input formats: `csv`, `tsv`, `json` (list of objects), `jsonl`/`ndjson`.
Values are kept as strings (the consumer types its own columns) and the output is
deterministic: converting the same file twice is byte-identical. The emitted
module targets a Cloud project; it is not runnable outside LEAN (`AlgorithmImports`).

Tests: `python -m pytest scripts/datasets/tests/test_build_qc_custom_data.py -q`

### Crypto archive (multi-source)

```bash
Expand Down
27 changes: 27 additions & 0 deletions scripts/datasets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Collection de scripts pour télécharger et gérer les données de marché histo
| `stitch_crypto.py` | Bitstamp + Binance + yfinance | CSV continu horaire BTC/USD |
| `build_panier_anti_bias.py` | yfinance (26 symboles, 7 classes d'actifs) | CSV panier multi-actifs |
| `dezip_forex.py` | Archives zip FXCM/Oanda | CSV OHLCV forex bid/ask |
| `build_qc_custom_data.py` | Fichier tabulaire local (csv, tsv, json, jsonl) | Module `.py` consommable par un projet QuantConnect Cloud |

## Démarrage rapide

Expand Down Expand Up @@ -83,6 +84,32 @@ Sortie : `MyIA.AI.Notebooks/QuantConnect/datasets/qc/`

Pré-requis : `pip install lean` + `lean login` pour le mode lean-cli.

### Conversion d'un dataset en module QuantConnect

Un projet QuantConnect Cloud **refuse les fichiers `.csv`** : seul du `.py` est accepté.
`build_qc_custom_data.py` convertit un fichier tabulaire local en module `.py` — la
constante de données, et si on le demande la classe `PythonData` qui la relit.

```bash
# Un fichier JSONL (un objet JSON par ligne) -> module de données
python scripts/datasets/build_qc_custom_data.py \
--input signals.jsonl --variable KAGGLE_SIGNALS --output signals_data.py

# Avec une classe de custom data : indiquer le rôle de chaque colonne
python scripts/datasets/build_qc_custom_data.py \
--input filings.csv --delimiter ';' --variable FILINGS \
--class-name FilingSignal --date-column accepted_at \
--ticker-column ticker --value-column similarity --output filing_data.py
```

Formats d'entrée : `csv`, `tsv`, `json` (liste d'objets), `jsonl`/`ndjson`.
Les valeurs sont conservées en chaînes de caractères (le consommateur type ses
colonnes lui-même) et le rendu est déterministe : deux conversions du même
fichier sont byte-identiques. Le module produit est destiné à être déposé dans
un projet Cloud ; il n'est pas exécutable tel quel hors de LEAN (`AlgorithmImports`).

Tests : `python -m pytest scripts/datasets/tests/test_build_qc_custom_data.py -q`

### Archive crypto (multi-sources)

```bash
Expand Down
Loading
Loading