Skip to content

Repository files navigation

CIRO Short Sale Analysis

Analyse des données officielles de ventes à découvert du CIRO — classification MM vs directionnel, Risk Map, rapports PDF.

FR | EN below


Analyse des données de ventes à découvert

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.

Pourquoi c'est important

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.

Fonctionnalités

  • 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

Usage

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_csv

Les fichiers CSV doivent être téléchargés depuis : ciro.ca → Market Data → Short Sale Statistics

Interprétation des seuils

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

Distinction clé : NSP vs Volume quotidien

  • % 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

Fichiers

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)

CIRO Short Sale Analysis (EN)

Analyzes weekly short sale reports published by CIRO (Canadian Investment Regulatory Organization). Automatically distinguishes market-maker structural activity from directional bearish signals.

Why This Matters

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.

Features

  • 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

Usage

pip install -r requirements.txt
python ciro_analysis.py --folder /path/to/ciro/csv/files

Key Concept: Market Maker vs. Directional Short

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

Short Squeeze Risk

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

About

CIRO NSP% + short squeeze detection

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages