02Data Lab

The Lab

A selection of technical implementations and applied engineering.

24/24snippets
ES|QL

Identifier les anomalies de cycle de vie (Création vs Suppression)

Utilisation de MAX(CASE(...)) pour extraire et comparer chronologiquement les états d'un compte utilisateur.

ELKAnomalieAudit
MQL5

Trailing Stop Dynamique basé sur ATR

Implémentation d'un trailing stop auto-adaptatif qui ajuste la distance de protection selon la volatilité du marché mesurée par l'indicateur ATR.

TradingExpert AdvisorATR
Machine Learning

Inférence ONNX depuis un modèle Scikit-learn

Pipeline complète : entraînement d'un RandomForest en Scikit-learn, export au format ONNX, puis chargement pour inférence.

PythonONNXScikit-learn
Python

Feature Engineering : Signaux Techniques pour ML

Calcul automatisé de features techniques (RSI, EMA, Volatilité) à partir de données OHLCV.

PandasFeature EngineeringRSI
Spark

Déduplication par fenêtre glissante (Spark SQL)

Utilisation des Window Functions en Spark/Scala pour dédoublonner des enregistrements.

ScalaBig DataWindow Functions
Vega

Donut Chart : Répartition des niveaux de logs

Visualisation Vega-Lite pour Kibana affichant la proportion des niveaux de logs avec une esthétique néon.

Vega-LiteKibanaMonitoring
SQL

Agrégation filtrée : GROUP BY + HAVING

Regrouper, agréger (COUNT/SUM/AVG) puis filtrer sur le résultat agrégé avec HAVING — ce que WHERE ne peut pas faire.

SQLGROUP BYHAVING
ES|QL

Corrélation d'événements et calcul de durée (Timeout)

Utilisation de COALESCE pour joindre des logs asynchrones et DATE_DIFF pour identifier les processus dépassant un seuil de temps (ex: 20 mins).

ELKCorrélationDATE_DIFF
MQL5

Filtre de Session de Trading (London / NY)

Fonction utilitaire pour restreindre l'exécution d'un EA aux heures d'ouverture d'une session de marché spécifique.

TradingSessionFiltre
Python

Décorateur de Retry robuste pour appels API

Gestion des erreurs transitoires avec backoff exponentiel pour les requêtes HTTP.

APIRequestsDecorators
Spark

Optimisation de l'écriture Parquet partitionnée

Optimisation du stockage pour accélérer les requêtes via partitionnement intelligent et repartitioning.

ScalaParquetPerformance
Vega

Heatmap de trafic horaire interactif

Génère une carte thermique pour identifier les pics d'utilisation par jour et par heure.

VegaKibanaAnalytics
SQL

Fonctions de fenêtre : cumul & classement

Total cumulé, rang et valeur précédente sans collapser les lignes, via les window functions (OVER ... PARTITION BY ... ORDER BY).

SQLWindow FunctionsCumul
ES|QL

Top N des IPs suspectes par échecs d'authentification

Requête performante pour agréger les échecs de connexion par IP et filtrer celles dépassant un seuil de risque.

SécuritéAuthForensics
MQL5

Vérification sécurisée des positions ouvertes

Vérifie si une position appartient à l'Expert Advisor en utilisant le Magic Number.

TradingPositionsMagicNumber
Python

Pandas : agrégations multiples par groupe

Agréger plusieurs colonnes avec des fonctions différentes en un seul groupby().agg() nommé — l'équivalent pandas d'un GROUP BY riche.

PythonPandasgroupby
Vega

Scatter Plot de Corrélation Temps de Réponse vs Volume

Visualisation complexe permettant d'identifier la dégradation des performances sous charge.

VegaPerfCorrelation
SQL

Sous-totaux automatiques : ROLLUP

Produire des sous-totaux et un total général en une requête avec GROUP BY ROLLUP — idéal pour un rapport hiérarchique (région → pays → total).

SQLROLLUPGROUPING SETS
Vega

Graphique multicouche CPU vs Mémoire

Superpose deux métriques hétérogènes sur un même graphique avec double axe Y.

VegaSystemDashboard
SQL

Pivot (table croisée) par agrégation conditionnelle

Transformer des lignes en colonnes avec SUM(CASE WHEN ...) — un pivot portable, sans clause PIVOT propriétaire.

SQLPivotCASE
SQL

Dédoublonnage : garder la ligne la plus récente

Garder 1 ligne par clé (la plus récente) avec ROW_NUMBER() dans une CTE — robuste et lisible.

SQLDéduplicationROW_NUMBER
SQL

CTE récursive : parcourir une hiérarchie

Descendre une arborescence (organigramme, catégories, nomenclature) avec WITH RECURSIVE.

SQLRécursifCTE
SQL

Médiane & percentiles (P50 / P95)

Médiane et percentiles robustes avec PERCENTILE_CONT — bien plus représentatif que la moyenne sur des données asymétriques.

SQLPercentileMédiane
SQL

Agrégation par tranche de temps (time bucketing)

Regrouper des événements par fenêtre temporelle (heure/jour/semaine) avec DATE_TRUNC pour des séries temporelles propres.

SQLTime SeriesDATE_TRUNC