SharpTrader est une plateforme de trading conçue pour les traders, pas pour les courtiers, et elle est ouverte à ceux qui écrivent du code pour eux. Écrivez vos propres stratégies en C# directement dans la plateforme, connectez vos logiciels externes à son moteur d’exécution via l’API EasyFIX, ou intégrez notre bibliothèque de graphiques en chandeliers accélérée par GPU dans votre propre terminal .NET.
| C#langage natif des stratégies, compilé dans SharpTrader | 50+connecteurs FIX API vers des courtiers, plus les principaux exchanges crypto | 22indicateurs dans BjfChart, vérifiés par rapport à des calculs de référence | 2cibles dans une seule DLL : net48 pour les applications existantes, net8.0-windows pour les nouvelles |
Chaque option répond à un besoin différent. Choisissez celle qui correspond à l’endroit où se trouve votre code.
Dans la plateforme
Module de programmation : API de bots en C#Écrivez une stratégie sous forme de classe C#, compilez-la dans SharpTrader et exécutez-la sur n’importe quel courtier ou exchange connecté. Ticks, positions, ordres et indicateurs sont tous accessibles en un seul appel. |
En dehors de la plateforme
API EasyFIXConservez votre propre moteur, dans n’importe quel langage, et faites de SharpTrader votre passerelle : il vous transmet les cotations en continu et achemine vos ordres via ses connecteurs vers les courtiers et les exchanges. |
Dans votre propre terminal
Bibliothèque graphique BjfChartUne seule DLL qui apporte à votre application .NET des graphiques en chandeliers professionnels, des indicateurs, des outils de dessin, un panneau de trading et un carnet d’ordres, avec un flux de ticks en temps réel. |
Le module de programmation transforme SharpTrader en environnement de développement pour stratégies automatisées. Un bot est une classe C# qui hérite de la classe de base Bot de la plateforme et réagit à des événements : initialisation, chaque tick entrant, ouverture de position, fermeture de position et mises à jour du statut des ordres. La plateforme le compile, affiche vos paramètres dans l’interface et l’exécute sur des comptes réels ou de démonstration, en parallèle des stratégies intégrées d’arbitrage, d’actualités et d’impulsion.
| Domaine | Ce que vous pouvez faire |
|---|---|
| Données de marché | Bid, ask, spread et valeur du point par symbole et par session, via l’objet ticker. Une session correspond à un compte connecté chez un courtier ou sur un exchange ; un même bot peut donc surveiller et trader plusieurs contreparties à la fois grâce à l’index de session. |
| Ordres et positions | sendOrder pour l’exécution au marché, modifyPositionByID pour le stop-loss et le take-profit, closePositionByID, recherches par ID ou par commentaire, et listes en temps réel des ordres ouverts, clôturés et en attente. |
| Détails des positions | Chaque position contient les prix et heures d’ouverture et de clôture, le volume, le sens, la session, le profit, le commentaire, le stop-loss, le take-profit, ainsi que le slippage mesuré et le temps d’exécution pour les deux jambes. C’est ce dernier point qui permet à un bot de s’adapter à la façon dont un courtier vous exécute réellement. |
| Indicateurs | Fonctions d’indicateurs intégrées, comme EMA et MACD, sur n’importe quelle unité de temps, enrichies en continu au fil des mises à jour de la plateforme. |
| Paramètres et journalisation | Les propriétés publiques marquées [PropertyInfo] apparaissent comme paramètres modifiables dans l’interface ; writeLog écrit dans le journal de la plateforme ; stopBot arrête la stratégie depuis le code. |
| État du compte | Solde et fonds propres (equity) par session pour les règles de risque et le dimensionnement des positions. |
// Squelette illustratif. Les noms suivent la référence de la bibliothèque de programmation SharpTrader. using SharpTraderBot; public class SpreadGuardBot : Bot { [PropertyInfo(0.10, "Lot size")] public double Lots { get; set; } [PropertyInfo(20, "Max spread, points")] public int MaxSpreadPoints { get; set; } string _inFlight; // un seul ordre en cours par tick public virtual void OnInit() { writeLog("SpreadGuardBot started"); } public virtual void OnTick(NewTickEventArgs args) { int session = 0; // index de session = compte courtier string symbol = args.tick.symbol; double point = ticker.getPointValue(session, symbol); double spread = (ticker.getAsk(session, symbol) - ticker.getBid(session, symbol)) / point; if (spread > MaxSpreadPoints || _inFlight != null) return; _inFlight = sendOrder(session, symbol, Lots, OrderSide.BUY, OrderType.MARKET, 0, "spread-guard"); } }
foreach au lieu de Where, Select ou Any. Les prix renvoyés par l’API sont exprimés en points du courtier ; multipliez-les par la valeur du point avant de les comparer à vos propres seuils. Et limitez-vous à un seul ordre en cours par tick, protégé par l’ID d’ordre client renvoyé, à moins d’aimer déboguer des exécutions en double.Référence complète des classes, méthodes et événements : documentation de la bibliothèque de programmation SharpTrader. Le module de programmation est un module complémentaire de SharpTrader Pro ; consultez la page SharpTrader Pro pour l’offre actuelle.
Tout n’a pas vocation à tourner dans la plateforme. Si vous utilisez déjà un moteur de signaux, un gestionnaire de risque, une interface personnalisée ou une chaîne de recherche, EasyFIX lui permet de communiquer avec SharpTrader via un protocole FIX simplifié. SharpTrader devient votre passerelle d’exécution : il gère les connexions aux courtiers et aux exchanges, tandis que vous envoyez des ordres et recevez cotations et exécutions depuis votre propre code, dans le langage de votre choix.
Ce que transporte EasyFIX
|
Intégrations typiques
|
EasyFIX est un dialecte FIX modifié : il conserve le modèle de messages que les développeurs connaissent déjà tout en supprimant le formalisme dont une liaison entre un trader et une passerelle n’a pas besoin. La spécification, des exemples de sessions et une connexion de test sont fournis sur demande aux utilisateurs de SharpTrader Pro et Lite. Écrivez à support@bjftradinggroup.com en décrivant brièvement ce que vous prévoyez de connecter.
En 2026, nous avons entièrement reconstruit les graphiques de SharpTrader, et le moteur qui les anime est disponible pour les développeurs sous forme de bibliothèque autonome. BjfChart est un contrôle de graphiques en chandeliers pour WinForms, accéléré par GPU et basé sur SkiaSharp. Il affiche des dizaines de milliers de barres à 60 images par seconde et est livré sous la forme d’un unique fichier BjfChart.dll ciblant à la fois net48 et net8.0-windows ; il s’intègre ainsi aussi bien dans des terminaux .NET Framework existants que dans de nouvelles applications .NET 8.
Vidéo : SharpTrader Charting, nouvelle bibliothèque graphique et démonstration du trading manuel
Huit unités de temps, des indicateurs, des outils Fibonacci et de tendance, un ticket d’ordre avec lignes de stop-loss et de take-profit déplaçables, et des graphiques multi-courtiers, présentés en direct dans SharpTrader. Ouvrir sur YouTube
Moteur graphique
|
Couche de trading
|
| Groupe | Inclus |
|---|---|
| Indicateurs superposés | SMA, EMA, WMA, VWAP, bandes de Bollinger, canaux de Keltner, canaux de Donchian, Envelope, Parabolic SAR. |
| Indicateurs en sous-panneau | RSI, MACD avec histogramme, Stochastique, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, écart-type, On-Balance Volume, Money Flow Index. |
| Précision | Les calculs des indicateurs sont vérifiés par rapport à des implémentations de référence indépendantes : SMA, EMA, Bollinger, RSI, ATR, Stochastique et CCI concordent à 1e-9 près ; MACD, ADX, DI, Williams %R, MFI et OBV sont validés quant à leur exactitude et à leur plage de valeurs. |
| Outils de dessin | Ligne de tendance, demi-droite, ligne prolongée, ligne et demi-droite horizontales, ligne verticale, flèche, canal parallèle, rectangle, ellipse, retracement de Fibonacci, extension de Fibonacci, et un outil de mesure affichant l’écart de prix, la variation en pourcentage et le nombre de barres. Tous sont ancrés dans l’espace des données et restent donc fixés lors du zoom et du déplacement. |
| Extensibilité | Implémentez IIndicator (ou dérivez de IndicatorBase), renvoyez une ou plusieurs séries alignées sur la liste des chandeliers, choisissez superposition ou sous-panneau, ligne, histogramme ou points, puis enregistrez l’indicateur pour qu’il apparaisse dans le menu contextuel et dans les dispositions sauvegardées. |
using BjfChart;
using BjfChart.Indicators;
using BjfChart.Models;
var chart = new ChartControl { Dock = DockStyle.Fill };
form.Controls.Add(chart);
chart.SetData(myCandles); // IEnumerable<Candle>
chart.AddIndicator("ema");
chart.AddIndicator("bb");
chart.AddIndicator("macd"); // s’affiche dans son propre sous-panneau
chart.AddIndicator(new RsiIndicator(21)); // ou par type, avec des paramètres personnalisés
chart.CandleInterval = TimeSpan.FromMinutes(15); // active le regroupement automatique
chart.FeedTick(DateTime.UtcNow, price, volume); // crée un nouveau chandelier à chaque limite
chart.StartDrawing(DrawingKind.FibRetracement); // le prochain glisser trace un retracement de Fibonacci
chart.SaveLayout(@"C:\layouts\eurusd.json");
// Panneau de trading relié à votre couche d’exécution
var panel = new TradingPanel { Dock = DockStyle.Right, Symbol = "EURUSD" };
panel.AttachChart(chart); // trace les lignes d’entrée / SL / TP sur le graphique
panel.OrderSubmitted += (s, req) => myExecutionEngine.Send(req);
panel.PositionModified += (s, pos) => broker.Modify(pos); // après déplacement du SL ou du TP
Tout ce qui est accessible dans le code l’est aussi depuis le menu contextuel du graphique : ajouter ou supprimer des indicateurs, choisir un outil de dessin, gérer les superpositions, changer de thème, enregistrer ou charger une disposition. La compilation de la bibliothèque nécessite Windows et le SDK .NET 8.0 ou supérieur ; NuGet restaure SkiaSharp automatiquement. Une application de démonstration exécutable avec des ticks simulés en temps réel est incluse.
Toutes les questions des développeurs sont traitées par l’équipe qui conçoit la plateforme. Pour les questions sur l’API de bots et EasyFIX, indiquez votre version de SharpTrader et votre type de compte ; pour BjfChart, indiquez votre cible .NET et votre flux de données.
| E-mailsupport@bjftradinggroup.comIdéal pour les exemples de code, les spécifications et les licences | Téléphone+1 (905) 599-5507Du lundi au vendredi, de 9 h 00 à 18 h 00, heure de l’Est (Toronto) | Telegramt.me/bjftradinggroupQuestions rapides et suivis |
BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. Demandes générales : page de contact.
Nouveaux articles, études et nouvelles versions de produits, envoyés dès leur publication.
Un bot pour une particularité d’un courtier, un moteur externe qui a besoin d’une passerelle d’exécution, ou un terminal qui doit avoir ses graphiques d’ici vendredi. Un e-mail avec les détails, une réponse avec l’étape suivante.
BJF Trading Group Inc. développe des outils logiciels pour les traders et développeurs expérimentés. Nous ne sommes ni un courtier, ni une institution financière, ni un conseiller en investissement, et nous n’exécutons pas de transactions et ne gérons pas de fonds. Les exemples de code de cette page sont illustratifs et peuvent différer de la référence actuelle de la bibliothèque ; consultez toujours la documentation correspondant à la version de votre plateforme. Le trading sur le Forex, les CFD et les cryptomonnaies comporte un risque élevé de perte et ne convient pas à tous les investisseurs. Rien sur cette page ne constitue un conseil financier ni une promesse de profit.