BJF Trading Group Inc. – Ontario, Kanada Kontakt Mitgliederbereich Blog
EN DE JA AR KO ES PT ID VI CN



Für Entwickler · SharpTrader-Plattform

Entwickeln mit SharpTrader: C#-Bot-API, EasyFIX-Anbindung und die Charting-Bibliothek BjfChart

SharpTrader ist eine Trading-Plattform, die für Trader und nicht für Broker entwickelt wurde, und sie steht allen offen, die Code für Trader schreiben. Schreiben Sie eigene Strategien in C# direkt in der Plattform, binden Sie Ihre externe Software über die EasyFIX API an die Ausführungs-Engine an oder integrieren Sie unsere GPU-beschleunigte Candlestick-Charting-Bibliothek in Ihr eigenes .NET-Terminal.

C#-Strategien mit Live-Ticks und Multi-Broker-Sitzungen
EasyFIX API: 50+ FIX-Konnektoren, Krypto-Börsen
BjfChart DLL: 22 Indikatoren, Zeichenwerkzeuge, Order-Ticket
.NET Framework 4.8 und .NET 8

Charting-Rundgang ansehen Kontakte für Entwickler



C#native Strategiesprache, kompiliert in SharpTrader 50+FIX-API-Konnektoren zu Brokern plus große Krypto-Börsen 22Indikatoren in BjfChart, abgeglichen mit Referenzberechnungen 2Zielplattformen in einer DLL: net48 für ältere Anwendungen, net8.0-windows für neue



Drei Wege, mit BJF zu entwickeln

Jede Option löst ein anderes Problem. Wählen Sie die, die dazu passt, wo Ihr Code läuft.

In der Plattform

Coding-Modul: C#-Bot-API

Schreiben Sie eine Strategie als C#-Klasse, kompilieren Sie sie in SharpTrader und führen Sie sie mit jedem verbundenen Broker oder jeder Börse aus. Ticks, Positionen, Orders und Indikatoren sind jeweils nur einen Aufruf entfernt.

Mehr zur Bot-API

Außerhalb der Plattform

EasyFIX API

Behalten Sie Ihre eigene Engine in einer beliebigen Sprache und nutzen Sie SharpTrader als Gateway: Es streamt Ihnen Kurse und leitet Ihre Orders über seine Broker- und Börsenkonnektoren weiter.

Mehr zu EasyFIX

In Ihrem eigenen Terminal

Charting-Bibliothek BjfChart

Eine einzige DLL, die Ihrer .NET-Anwendung professionelle Candlestick-Charts, Indikatoren, Zeichenwerkzeuge, ein Trading-Panel und ein Orderbuch mit Live-Tick-Feed bietet.

Charting-Bibliothek ansehen



Coding-Modul: Strategien in C# schreiben

Das Coding-Modul macht SharpTrader zu einer Entwicklungsumgebung für automatisierte Strategien. Ein Bot ist eine C#-Klasse, die von der Basisklasse Bot der Plattform erbt und auf Ereignisse reagiert: Initialisierung, jeden eingehenden Tick, eröffnete Position, geschlossene Position und Aktualisierungen des Orderstatus. Die Plattform kompiliert ihn, zeigt Ihre Eingabeparameter in der Oberfläche an und führt ihn auf Live- oder Demokonten parallel zu den integrierten Arbitrage-, News- und Impuls-Strategien aus.

Was die API Ihnen bietet

Bereich Was Sie tun können
Marktdaten Bid, Ask, Spread und Punktwert je Symbol und je Sitzung über das Objekt ticker. Eine Sitzung ist ein verbundenes Broker- oder Börsenkonto, sodass ein einzelner Bot über den Sitzungsindex mehrere Gegenparteien gleichzeitig beobachten und handeln kann.
Orders und Positionen sendOrder für Market-Ausführung, modifyPositionByID für Stop-Loss und Take-Profit, closePositionByID, Abfragen nach ID oder Kommentar sowie Live-Listen offener, geschlossener und ausstehender Orders.
Positionsdetails Jede Position enthält Eröffnungs- und Schlusskurse und -zeiten, Volumen, Richtung, Sitzung, Gewinn, Kommentar, Stop-Loss, Take-Profit sowie die gemessene Slippage und Ausführungszeit für beide Seiten. Gerade Letzteres ermöglicht es einem Bot, sich daran anzupassen, wie ein Broker Sie tatsächlich ausführt.
Indikatoren Integrierte Indikatorfunktionen wie EMA und MACD auf jedem Timeframe, die mit Plattform-Updates laufend erweitert werden.
Eingaben und Logging Öffentliche Eigenschaften, die mit [PropertyInfo] gekennzeichnet sind, erscheinen als bearbeitbare Eingaben in der Oberfläche; writeLog schreibt in das Plattform-Log; stopBot stoppt die Strategie per Code.
Kontostatus Balance und Equity je Sitzung für Risikoregeln und Positionsgrößenbestimmung.

Ein minimales Strategiegerüst

// Illustrative skeleton. Names follow the SharpTrader coding library reference.
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;                            // one order in flight per tick

    public virtual void OnInit() { writeLog("SpreadGuardBot started"); }

    public virtual void OnTick(NewTickEventArgs args)
    {
        int session = 0;                         // session index = broker account
        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");
    }
}
Gut zu wissen, bevor Sie die erste Zeile schreiben. Die Sandbox kompiliert gegen einen festen Satz von Assemblies: System, System.Collections, System.Runtime, System.Console und die SharpTrader-Bot-Bibliothek. LINQ gehört nicht dazu, schreiben Sie also einfache foreach-Schleifen statt Where, Select oder Any. Preise aus der API sind in Broker-Punkten angegeben; multiplizieren Sie sie mit dem Punktwert, bevor Sie sie mit Ihren eigenen Schwellenwerten vergleichen. Und halten Sie pro Tick nur eine Order in Bearbeitung, abgesichert über die zurückgegebene Client-Order-ID – es sei denn, Sie debuggen gern doppelte Ausführungen.

Vollständige Referenz zu Klassen, Methoden und Ereignissen: Dokumentation der SharpTrader-Coding-Bibliothek. Das Coding-Modul ist eine Erweiterung für SharpTrader Pro; das aktuelle Paket finden Sie auf der Seite zu SharpTrader Pro.



EasyFIX API: Ihre eigene Software mit SharpTrader verbinden

Nicht alles gehört in die Plattform. Wenn Sie bereits eine Signal-Engine, einen Risikomanager, ein eigenes Frontend oder eine Research-Pipeline betreiben, kann diese über EasyFIX mit SharpTrader per vereinfachtem FIX-Protokoll kommunizieren. SharpTrader wird zu Ihrem Ausführungs-Gateway: Es hält die Verbindungen zu Brokern und Börsen, und Sie senden Orders und empfangen Kurse und Ausführungen aus Ihrem eigenen Code, in der Sprache Ihrer Wahl.

Was EasyFIX überträgt

  • Marktdaten: Kurse für die abonnierten Symbole aus jeder Sitzung, die SharpTrader geöffnet hat.
  • Orderflow: neue Orders, Änderungen und Schließungen, die an die gewählte Sitzung weitergeleitet werden.
  • Ausführungsberichte: Ausführungen, Ablehnungen, Positions- und Orderstatus zurück an Ihre Anwendung.
  • Zugang zu denselben 50+ FIX-API-Broker-Konnektoren und Anbindungen an große Krypto-Börsen, die SharpTrader für seine eigenen Strategien nutzt.

Typische Integrationen

  • Eine externe Strategie in Python, Java, C++ oder einer beliebigen Sprache mit Socket und FIX-Nachrichten-Builder.
  • Eine unternehmensweite Risikoschicht, die mehrere SharpTrader-Instanzen überwacht.
  • Eine eigene Trading-GUI oder ein Dashboard auf Basis der SharpTrader-Ausführung.
  • Aufzeichnung von Kursen und Ausführungen für Research, Backtesting und Audits der Broker-Ausführung.

EasyFIX ist ein modifizierter FIX-Dialekt: Er behält das Nachrichtenmodell bei, das Entwickler bereits kennen, und verzichtet auf den Overhead, den eine Verbindung zwischen Retail-Anwendung und Gateway nicht braucht. Spezifikation, Beispielsitzungen und eine Testverbindung stehen Nutzern von SharpTrader Pro und Lite auf Anfrage zur Verfügung. Schreiben Sie an support@bjftradinggroup.com mit einer kurzen Beschreibung dessen, was Sie anbinden möchten.



BjfChart: die Charting-Bibliothek hinter den neuen SharpTrader-Charts

2026 haben wir das Charting in SharpTrader von Grund auf neu entwickelt, und die Engine dahinter steht Entwicklern als eigenständige Bibliothek zur Verfügung. BjfChart ist ein GPU-beschleunigtes Candlestick-Charting-Control für WinForms auf Basis von SkiaSharp. Es rendert Zehntausende Bars mit 60 Bildern pro Sekunde und wird als einzelne BjfChart.dll ausgeliefert, die sowohl net48 als auch net8.0-windows unterstützt – so passt sie in ältere .NET-Framework-Terminals ebenso wie in neue .NET-8-Anwendungen.

Video: SharpTrader Charting – neue Charting-Bibliothek und Rundgang zum manuellen Trading

Acht Timeframes, Indikatoren, Fibonacci- und Trend-Werkzeuge, ein Order-Ticket mit verschiebbaren Stop-Loss- und Take-Profit-Linien sowie Multi-Broker-Charts, live in SharpTrader gezeigt. Auf YouTube öffnen

Was die Bibliothek enthält

Chart-Engine

  • Candlestick-Darstellung mit Volumen-Unterpanel, Fadenkreuz, Live-Preisanzeige und schwebender OHLC-Legende.
  • Zoom per Mausrad, bei dem die Bar unter dem Cursor fixiert bleibt, Verschieben per Klicken und Ziehen.
  • Echtzeit-Feed: PushTick fügt einen Tick in die letzte Bar ein, FeedTick gruppiert Ticks automatisch zu Kerzen eines beliebigen Intervalls.
  • Overlays mehrerer Symbole zum Vergleich, mit unabhängiger oder gemeinsamer Skala.
  • Speichern des Layouts als JSON: Indikatoren, Zeichnungen, Overlays und Ansichtsbereich werden gespeichert und wiederhergestellt.
  • Dunkles (BJF-Navy und Gold) und helles Theme, zur Laufzeit umschaltbar, jede Farbe anpassbar.
  • Wasserzeichen aus einer Logodatei, URL oder Text hinter den Kerzen.

Trading-Schicht

  • TradingPanel: ein Order-Ticket (Kauf und Verkauf als Market, Limit oder Stop, Menge, Preis, Stop-Loss, Take-Profit) mit Live-Anzeige von Position und G/V.
  • Einstiegs-, Stop-Loss-, Take-Profit- und Linien für offene Orders werden automatisch im Chart gezeichnet; Stop-Loss und Take-Profit sind verschiebbar und lösen beim Loslassen Ereignisse aus.
  • Das Panel führt selbst nichts aus. Es löst Ereignisse für Ihre Ausführungsschicht aus, sei es eine FIX-API-Sitzung, eine Broker-Bridge oder SharpTrader über EasyFIX.
  • OrderBookPanel: eine Markttiefe-Leiter mit Größe je Level und proportionalen Tiefenbalken; ein Klick auf ein Level übernimmt den Limitpreis.
  • Beliebige Preislinien nach ID für Broker-Orders, optional verschiebbar.

Indikatoren und Zeichenwerkzeuge

Gruppe Enthalten
Overlay-Indikatoren SMA, EMA, WMA, VWAP, Bollinger-Bänder, Keltner-Kanäle, Donchian-Kanäle, Envelope, Parabolic SAR.
Indikatoren im Unterpanel RSI, MACD mit Histogramm, Stochastik, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Standardabweichung, On-Balance Volume, Money Flow Index.
Genauigkeit Die Indikatorberechnungen werden mit unabhängigen Referenzimplementierungen abgeglichen: SMA, EMA, Bollinger, RSI, ATR, Stochastik und CCI stimmen auf 1e-9 überein; MACD, ADX, DI, Williams %R, MFI und OBV sind auf Korrektheit und Wertebereich validiert.
Zeichenwerkzeuge Trendlinie, Strahl, verlängerte Linie, horizontale Linie und horizontaler Strahl, vertikale Linie, Pfeil, paralleler Kanal, Rechteck, Ellipse, Fibonacci-Retracement, Fibonacci-Extension und ein Messwerkzeug mit Preisdifferenz, prozentualer Veränderung und Anzahl der Bars. Alle sind im Datenraum verankert und bleiben beim Zoomen und Verschieben fixiert.
Erweiterbarkeit Implementieren Sie IIndicator (oder leiten Sie von IndicatorBase ab), geben Sie eine oder mehrere an der Kerzenliste ausgerichtete Reihen zurück, wählen Sie Overlay oder Unterpanel, Linie, Histogramm oder Punkte, und registrieren Sie den Indikator, damit er im Kontextmenü und in gespeicherten Layouts erscheint.

Zehn Zeilen bis zum funktionierenden Chart

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");                        // draws in its own sub-panel
chart.AddIndicator(new RsiIndicator(21));          // or by type, with custom parameters

chart.CandleInterval = TimeSpan.FromMinutes(15);   // enables auto-bucketing
chart.FeedTick(DateTime.UtcNow, price, volume);    // rolls a new candle at each boundary

chart.StartDrawing(DrawingKind.FibRetracement);    // next drag draws a fib retracement
chart.SaveLayout(@"C:\layouts\eurusd.json");

// Trading panel wired to your execution layer
var panel = new TradingPanel { Dock = DockStyle.Right, Symbol = "EURUSD" };
panel.AttachChart(chart);                          // draws entry / SL / TP lines on the chart
panel.OrderSubmitted += (s, req) => myExecutionEngine.Send(req);
panel.PositionModified += (s, pos) => broker.Modify(pos);   // after a drag of SL or TP

Alles im Code ist auch über das Kontextmenü des Charts erreichbar: Indikatoren hinzufügen oder entfernen, ein Zeichenwerkzeug wählen, Overlays verwalten, das Theme wechseln, ein Layout speichern oder laden. Zum Kompilieren benötigt die Bibliothek Windows und das .NET SDK 8.0 oder neuer; NuGet stellt SkiaSharp automatisch wieder her. Eine lauffähige Demo-Anwendung mit simulierten Live-Ticks ist enthalten.

BjfChart in Ihrem Produkt einsetzen. Die Bibliothek wird an SharpTrader-Entwickler, White-Label-Partner und Anbieter von Drittanbieter-Terminals lizenziert. Bei Fragen zur Nutzung, zu Lizenzbedingungen, zu einem Demo-Build oder zur Integration mit Ihrem Datenfeed kontaktieren Sie uns direkt über die unten stehenden Angaben. Nennen Sie uns Ihr .NET-Ziel und Ihre Datenquelle, und wir antworten innerhalb eines Werktags.



Kontakte für Entwickler

Alle Entwicklerfragen gehen an dasselbe Team, das die Plattform entwickelt. Geben Sie bei Fragen zur Bot-API und zu EasyFIX Ihre SharpTrader-Version und Ihren Kontotyp an; bei BjfChart Ihr .NET-Ziel und Ihren Datenfeed.

E-Mailsupport@bjftradinggroup.comIdeal für Codebeispiele, Spezifikationen und Lizenzierung Telefon+1 (905) 599-5507Montag bis Freitag, 9:00 bis 18:00 Uhr Eastern Time (Toronto) Telegramt.me/bjftradinggroupKurze Fragen und Rückfragen

BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Kanada. Allgemeine Anfragen: Kontaktseite.



Häufig gestellte Fragen

Welche Sprache verwenden SharpTrader-Bots?
C#. Ein Bot ist eine Klasse, die von der Basisklasse Bot der Plattform erbt und Ereignis-Handler für Initialisierung, Ticks, Positionsänderungen und Aktualisierungen des Orderstatus implementiert. Er wird in SharpTrader kompiliert und läuft neben den integrierten Strategien.
Kann ein Bot gleichzeitig mit mehreren Brokern oder Börsen handeln?
Ja. Jeder Marktdaten- und Order-Aufruf erhält einen Sitzungsindex, und eine Sitzung ist ein verbundenes Broker- oder Börsenkonto. Ein Bot kann Kurse aus einer Sitzung lesen und Orders an eine andere senden – so wird Multi-Broker- und Cross-Exchange-Logik geschrieben.
Was ist die EasyFIX API und für wen ist sie gedacht?
EasyFIX ist ein vereinfachtes FIX-Protokoll, mit dem sich externe Software mit SharpTrader als Ausführungs-Gateway verbinden kann. Es richtet sich an Entwickler, die ihre eigene Engine außerhalb der Plattform betreiben und Kurse empfangen sowie Orders über die Broker- und Börsenkonnektoren von SharpTrader senden möchten. Spezifikation und Testverbindung werden auf Anfrage bereitgestellt.
Ist BjfChart separat von SharpTrader erhältlich?
Ja. BjfChart ist eine eigenständige .NET-Bibliothek, eine einzelne DLL für net48 und net8.0-windows auf Basis von SkiaSharp. Sie wird an SharpTrader-Entwickler, White-Label-Partner und Terminal-Anbieter lizenziert. Für Bedingungen und einen Demo-Build wenden Sie sich an support@bjftradinggroup.com.
Führt das Trading-Panel von BjfChart Orders aus?
Nein. Das Panel löst Ereignisse aus (Order übermittelt, Schließung einer Position angefordert, Position nach Verschieben von Stop-Loss oder Take-Profit geändert), und die Host-Anwendung leitet sie an ihre eigene Ausführungsschicht weiter, etwa eine FIX-API-Sitzung, eine Broker-Bridge oder SharpTrader über EasyFIX.
Kann ich eigene Indikatoren zu BjfChart hinzufügen?
Ja. Implementieren Sie das Interface IIndicator oder leiten Sie von IndicatorBase ab, geben Sie eine oder mehrere an der Kerzenliste ausgerichtete Reihen zurück, wählen Sie die Darstellung als Overlay oder im Unterpanel und registrieren Sie den Indikator, damit er im Kontextmenü erscheint und in Layouts gespeichert wird.
Wird der Quellcode von SharpTrader oder BjfChart verkauft?
Nein. BJF Trading Group lizenziert kompilierte Builds und bietet API-Zugang, Dokumentation und Support. Der Quellcode wird unter keinem Programm verkauft oder offengelegt.





Erzählen Sie uns, was Sie entwickeln

Ein Bot für eine bestimmte Eigenheit eines Brokers, eine externe Engine, die ein Ausführungs-Gateway braucht, oder ein Terminal, das bis Freitag Charts benötigt. Eine E-Mail mit den Details, eine Antwort mit dem nächsten Schritt.

E-Mail an das Entwicklerteam Schreiben Sie uns auf Telegram

BJF Trading Group Inc. entwickelt Software-Tools für erfahrene Trader und Entwickler. Wir sind weder Broker noch Finanzinstitut oder Anlageberater und führen keine Trades aus und verwalten keine Gelder. Die Codebeispiele auf dieser Seite dienen der Veranschaulichung und können von der aktuellen Bibliotheksreferenz abweichen; prüfen Sie stets die Dokumentation für Ihre Plattformversion. Der Handel mit Forex, CFDs und Kryptowährungen birgt ein hohes Verlustrisiko und ist nicht für alle Anleger geeignet. Nichts auf dieser Seite ist eine Finanzberatung oder ein Gewinnversprechen.