Vous êtes confronté à des défis dans l'acquisition de données financières pour vos stratégies de trading quantiattif ? Coûts élevés, interfaces API complexes, sources de données instables ou impossibilité d'utiliser vos fichiers locaux TDX ? Cette solution gratuite et puissante est faite pour vous.
Le problème : une barrière d'accès aux données
Les développeurs quantitatifs en recherche de données historiques ou en temps réel sont souvent bloqués par :
- Abonnements coûteux (des milliers de yuans par a)
- Documentation technique dense et processus d'authentification compliqués
- Problèmes de latence réseau ou de perte de données
- Impossibilité d’exploiter les données locales du logiciel TDX
MOOTDX résout ces problèmes grâce à une bibliothèque open source qui permet d’accéder gratuitement aux données TDX via une interface Python simple et efficace.
Avantages clés de MOOTDX
| Caractéristique | MOOTDX | API commerciales | Autres solutions opensource |
|---|---|---|---|
| Cout | Gratuit | Des milliers de yuans/an | Limité ou partiellement gratuit |
| Facilité d'utilisation | API native Python, quelques lignes suffisent | Complexité élevée | Configuration complexe |
| Source de données | TDX officiel + données locales | Seule source externe | Instable ou fragmentée |
| Fonctionnalités | Données en temps réel, historiques, financières | Complète mais chère | Partielles, nécessitant plusieurs outils |
| Support communautaire | Actif, mise à jour régulière | Support commercial | Limité |
| Extensibilité | Personnalisable, support développement secondaire | Système fermé | Modeste |
Installation rapide en 3 étapes
-
Cloner le dépôt : ``` git clone https://gitcode.com/GitHub_Trending/mo/mootdx cd mootdx
-
Installer avec toutes les dépendances : ``` pip install -U 'mootdx[all]'
-
Vérifier l’installation : ``` import mootdx print(f"Version MOOTDX : {mootdx.version}")
from mootdx.quotes import Quotes from mootdx.reader import Reader from mootdx.affair import Affair
print("Tous les modules ont été chargés avec succès !")
Exemple pratique : récupérer les cours en temps réel
from mootdx.quotes import Quotes
client = Quotes.factory(market='std', bestip=True)
data = client.quotes(symbol='600519') # Action Maotai
print(f"Nom : {data['name'].values[0]}")
print(f"Prix actuel : {data['last_close'].values[0]} ¥")
print(f"Ouverture : {data['open'].values[0]} ¥")
print(f"Max : {data['high'].values[0]} ¥")
print(f"Min : {data['low'].values[0]} ¥")
client.close()
Applications concrètes
1. Surveillance en temps réel d’un portefeuille
def surveiller_portefeuille(symbols):
client = Quotes.factory(market='std', bestip=True)
for sym in symbols:
res = client.quotes(symbol=sym)
print(f"{sym} : {res['last_close'].values[0]} ¥")
client.close()
portefeuille = ['600036', '601318', '300750']
surveiller_portefeuille(portefeuille)
2. Analyse historique et backtesting
from mootdx.reader import Reader
import pandas as pd
def analyser_tendance(symbol, jours=365):
reader = Reader.factory(market='std', tdxdir='/chemin/vers/tdx')
df = reader.daily(symbol=symbol)
df['MA5'] = df['close'].rolling(5).mean()
df['MA20'] = df['close'].rolling(20).mean()
croisement_or = (df['MA5'] > df['MA20']) & (df['MA5'].shift(1) <= df['MA20'].shift(1))
return df[croisement_or]
signaux = analyser_tendance('600036')
print(f"{len(signaux)} signaux de croisement détectés")
3. Filtre fondamental basé sur les ratios financiers
from mootdx.affair import Affair
def rechercher_stocks_sous-évalués():
files = Affair.files()
if not files: return None
data = Affair.parse(downdir='./financiers', filename=files[0]['filename'])
filtres = (data['PE'] < 15) & (data['ROE'] > 15)
return data[filtres].sort_values('ROE', ascending=False)
resultats = rechercher_stocks_sous-évalués()
if resultats is not None:
print(f"{len(resultats)} actions potentiellement sous-évaluées trouvées")
4. Données multi-marchés (futures, options)
def obtenir_donnees_futures():
client = Quotes.factory(market='ext', server=('112.74.214.43', 7727))
symboles = ['IF2309', 'IC2309', 'IH2309']
resultats = []
for s in symboles:
res = client.quote(market=1, symbol=s)
if res is not None:
resultats.append(res)
client.close()
return resultats
donnees = obtenir_donnees_futures()
print(f"{len(donnees)} contrats futures récupérés")
Questions fréquentes
- Cache des résultats : Utilisez
@lru_cachepour éviter les requêtes redondantes. - Gestion des erreurs : Implémentez des mécanismes de retry avec délai exponentiel.
- Surveillance des performances : Mesurez le temps d’exécution pour optimiser les requêtes.
Conclusion
MOOTDX transforme la gestion des données financières pour les traders Python. Il offre une alternative gratuite, fiable et extensible aux services payants. Que vous soyez débutant ou expert, cette bibliothèque vous permet de :
- Commencer immédiatement avec une installation simple
- Accéder à des données en temps réel et historiques
- Construire des systèmes de surveillance, de backtesting ou de sélection fondamentale
- Contribuer à un projet open source dynamique
Prenez dès maintenant votre première donnée. Créez votre premier système. Développez votre stratégie. Le futur de la finance quantitative commence ici.