Analyse des données officielles de ventes à découvert du CIRO — classification MM vs directionnel, Risk Map, rapports PDF.
FR | EN below
Analyse les rapports hebdomadaires de ventes à découvert publiés par le CIRO (Canadian Investment Regulatory Organization — régulateur officiel des marchés financiers canadiens). Distingue l'activité technique des teneurs de marché des signaux directionnels baissiers.
Le CIRO publie chaque semaine le volume de ventes à découvert par titre. Un pourcentage élevé ne signifie pas forcément une pression baissière — il peut refléter l'activité structurelle des market makers qui fournissent de la liquidité. Ce projet classe automatiquement les deux cas.
- Chargement automatique de 1 ou 2 CSV CIRO (comparaison temporelle si deux fichiers)
- Classification MM vs directionnel :
- Probable Market Maker : secteur financier + volume > 40%
- Signal directionnel : secteur non-financier + volume > 50%
- À surveiller : 30–50%
- Détection des positions doublées entre deux périodes
- Risk Map : scatter plot (valeur shortée × % volume, bulles proportionnelles)
- Rapport PDF 4 pages : top anomalies, classification, comparaison temporelle
- Tableau terminal Rich : colorisé rouge/orange/bleu, liens cliquables Google Finance
pip install -r requirements.txt
# Analyser les CSV dans le dossier courant
python ciro_analysis.py
# Spécifier un dossier contenant les CSV CIRO
python ciro_analysis.py --folder /chemin/vers/dossier_csvLes fichiers CSV doivent être téléchargés depuis :
ciro.ca → Market Data → Short Sale Statistics
| % Volume shorté | Signal | Interprétation |
|---|---|---|
| > 50% | 🔴 Anomalie | Activité hors-norme — vérifier si MM ou directionnel |
| 30–50% | 🟠 Alerte | Activité élevée — surveiller l'évolution |
| < 30% | 🔵 Normal | Dans les normes habituelles du marché |
La moyenne TSX pour les grandes capitalisations se situe autour de 20–30%.
- % Volume quotidien : inclut les allers-retours intraday des market makers → peut être gonflé
- Net Short Position (NSP) : publication bi-mensuelle CIRO du total des positions courtes nettes → indicateur de conviction directionnelle réelle
| Fichier | Description |
|---|---|
ciro_analysis.py |
Script principal unifié (735 lignes) |
requirements.txt |
Dépendances Python |
LANCEMENT.md |
Guide de démarrage |
*.csv |
Données CIRO réelles (octobre 2025) |
Analyzes weekly short sale reports published by CIRO (Canadian Investment Regulatory Organization). Automatically distinguishes market-maker structural activity from directional bearish signals.
A high short sale percentage does not necessarily indicate bearish pressure. Market makers routinely short stocks to provide liquidity when buyers appear. This project classifies each case automatically using sector and volume filters.
- Auto-loads 1 or 2 CIRO CSV files (temporal comparison if two available)
- MM vs. Directional classification: financial sector + >40% vol → probable MM; non-financial + >50% → directional signal
- Doubled positions detection: flags tickers where shorted value ≥ 2× prior period
- Risk Map: scatter plot (dollar value × % volume, bubble size proportional to position)
- 4-page PDF report: top anomalies, classification table, temporal comparison
- Rich terminal tables: color-coded alerts, clickable Google Finance links
pip install -r requirements.txt
python ciro_analysis.py --folder /path/to/ciro/csv/files| Type | Mechanism | Interpretation |
|---|---|---|
| Market Maker | Shorts stock to fill a buy order, covers shortly after | Structural liquidity provision — not bearish |
| Directional | Borrows and sells expecting price decline | Genuine bearish conviction |
| NSP (Net Short Position) | Published bi-weekly by CIRO | True accumulated bearish exposure |
High NSP + positive catalyst → forced covering → rapid price spike. Monitoring NSP trend (growing vs. declining) is more actionable than daily volume percentage.
Built with Python 3.8+ · pandas · matplotlib · rich · reportlab · Real CIRO regulatory data