BJF Trading Group Inc. — Ontario, Canada Contatti Area membri Blog Affiliati
EN DE JA AR KO ES PT ID VI HI FR TR IT CN



Per sviluppatori · Piattaforma SharpTrader

Sviluppa su SharpTrader: API per bot in C#, connettività EasyFIX e libreria grafica BjfChart

SharpTrader è una piattaforma di trading creata per i trader, non per i broker, ed è aperta a chi scrive codice per loro. Scrivi le tue strategie in C# direttamente nella piattaforma, collega il tuo software esterno al suo motore di esecuzione tramite la EasyFIX API, oppure integra la nostra libreria di grafici a candele con accelerazione GPU nel tuo terminale .NET.

Strategie in C# con tick in tempo reale e sessioni multi-broker
EasyFIX API: oltre 50 connettori FIX, exchange cripto
DLL BjfChart: 22 indicatori, strumenti di disegno, ticket d’ordine
.NET Framework 4.8 e .NET 8

Guarda la presentazione dei grafici Contatti per sviluppatori



C#linguaggio nativo per le strategie, compilato all’interno di SharpTrader 50+connettori FIX API verso broker, oltre ai principali exchange cripto 22indicatori in BjfChart, verificati con calcoli di riferimento 2target in un’unica DLL: net48 per le applicazioni legacy, net8.0-windows per le nuove



Tre modi per sviluppare con BJF

Ogni opzione risolve un problema diverso. Scegli quella che corrisponde a dove vive il tuo codice.

Dentro la piattaforma

Modulo di programmazione: API per bot in C#

Scrivi una strategia come classe C#, compilala in SharpTrader ed eseguila su qualsiasi broker o exchange connesso. Tick, posizioni, ordini e indicatori sono tutti a portata di una sola chiamata.

Scopri l’API per bot

Fuori dalla piattaforma

EasyFIX API

Mantieni il tuo motore, in qualsiasi linguaggio, e lascia che SharpTrader faccia da gateway: ti invia le quotazioni in streaming e instrada i tuoi ordini tramite i suoi connettori verso broker ed exchange.

Scopri EasyFIX

Nel tuo terminale

Libreria grafica BjfChart

Un’unica DLL che fornisce alla tua applicazione .NET grafici a candele professionali, indicatori, strumenti di disegno, un pannello di trading e un book di ordini, con feed di tick in tempo reale.

Scopri la libreria grafica



Modulo di programmazione: scrivi strategie in C#

Il modulo di programmazione trasforma SharpTrader in un ambiente di sviluppo per strategie automatizzate. Un bot è una classe C# che eredita dalla classe base Bot della piattaforma e reagisce agli eventi: inizializzazione, ogni tick in arrivo, apertura di posizione, chiusura di posizione e aggiornamenti dello stato degli ordini. La piattaforma lo compila, mostra i tuoi parametri nell’interfaccia e lo esegue su conti reali o demo, accanto alle strategie integrate di arbitraggio, news e impulso.

Cosa ti offre l’API

Area Cosa puoi fare
Dati di mercato Bid, ask, spread e valore del punto per simbolo e per sessione, tramite l’oggetto ticker. Una sessione corrisponde a un conto broker o exchange connesso, quindi un singolo bot può monitorare e negoziare con più controparti contemporaneamente tramite l’indice di sessione.
Ordini e posizioni sendOrder per l’esecuzione a mercato, modifyPositionByID per stop-loss e take-profit, closePositionByID, ricerche per ID o per commento ed elenchi aggiornati in tempo reale di ordini aperti, chiusi e pendenti.
Dettagli della posizione Ogni posizione riporta prezzi e orari di apertura e chiusura, volume, direzione, sessione, profitto, commento, stop-loss, take-profit, oltre allo slippage misurato e al tempo di esecuzione per entrambe le gambe. Quest’ultima parte è ciò che permette a un bot di adattarsi al modo in cui un broker esegue realmente i tuoi ordini.
Indicatori Funzioni di indicatori integrate come EMA e MACD su qualsiasi timeframe, costantemente ampliate con gli aggiornamenti della piattaforma.
Parametri e log Le proprietà pubbliche contrassegnate con [PropertyInfo] compaiono come parametri modificabili nell’interfaccia; writeLog scrive nel log della piattaforma; stopBot arresta la strategia dal codice.
Stato del conto Saldo ed equity per sessione, per le regole di rischio e il dimensionamento delle posizioni.

Uno scheletro minimo di strategia

// 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");
    }
}
Buono a sapersi prima di scrivere la prima riga. La sandbox compila con un insieme fisso di assembly: System, System.Collections, System.Runtime, System.Console e la libreria per bot di SharpTrader. LINQ non è tra questi, quindi scrivi semplici cicli foreach invece di Where, Select o Any. I prezzi forniti dall’API sono in punti del broker; moltiplicali per il valore del punto prima di confrontarli con le tue soglie. E mantieni un solo ordine in corso per tick, controllato tramite l’ID ordine client restituito, a meno che tu non ami fare il debug di esecuzioni duplicate.

Riferimento completo di classi, metodi ed eventi: documentazione della libreria di programmazione di SharpTrader. Il modulo di programmazione è un componente aggiuntivo di SharpTrader Pro; consulta la pagina di SharpTrader Pro per il pacchetto attuale.



EasyFIX API: collega il tuo software a SharpTrader

Non tutto deve stare dentro la piattaforma. Se utilizzi già un motore di segnali, un gestore del rischio, un front end personalizzato o una pipeline di ricerca, EasyFIX gli permette di comunicare con SharpTrader tramite un protocollo FIX semplificato. SharpTrader diventa il tuo gateway di esecuzione: mantiene le connessioni con broker ed exchange, mentre tu invii ordini e ricevi quotazioni ed esecuzioni dal tuo codice, nel linguaggio che preferisci.

Cosa trasmette EasyFIX

  • Dati di mercato: quotazioni dei simboli a cui ti iscrivi, da qualsiasi sessione aperta in SharpTrader.
  • Flusso degli ordini: nuovi ordini, modifiche e chiusure instradati alla sessione scelta.
  • Report di esecuzione: esecuzioni, rifiuti, stato di posizioni e ordini restituiti alla tua applicazione.
  • Accesso agli stessi oltre 50 connettori FIX API verso broker e alle connessioni con i principali exchange cripto che SharpTrader utilizza per le proprie strategie.

Integrazioni tipiche

  • Una strategia esterna scritta in Python, Java, C++ o in qualsiasi linguaggio dotato di socket e di un generatore di messaggi FIX.
  • Un livello di rischio a livello aziendale che supervisiona più istanze di SharpTrader.
  • Un’interfaccia grafica di trading o una dashboard personalizzata basata sull’esecuzione di SharpTrader.
  • Registrazione di quotazioni ed esecuzioni per ricerca, backtest e audit dell’esecuzione dei broker.

EasyFIX è un dialetto FIX modificato: mantiene il modello di messaggi che gli sviluppatori già conoscono, eliminando le formalità di cui un collegamento tra trader retail e gateway non ha bisogno. La specifica, sessioni di esempio e una connessione di test sono disponibili su richiesta per gli utenti di SharpTrader Pro e Lite. Scrivi a support@bjftradinggroup.com con una breve descrizione di ciò che intendi collegare.



BjfChart: la libreria grafica alla base dei nuovi grafici di SharpTrader

Nel 2026 abbiamo ricostruito da zero i grafici di SharpTrader, e il motore che li alimenta è disponibile per gli sviluppatori come libreria autonoma. BjfChart è un controllo per grafici a candele con accelerazione GPU per WinForms, basato su SkiaSharp. Visualizza decine di migliaia di barre a 60 fotogrammi al secondo ed è distribuito come un’unica BjfChart.dll che supporta sia net48 sia net8.0-windows, così si integra tanto nei terminali .NET Framework legacy quanto nelle nuove applicazioni .NET 8.

Video: SharpTrader Charting, nuova libreria grafica e presentazione del trading manuale

Otto timeframe, indicatori, strumenti di Fibonacci e di trend, un ticket d’ordine con linee di stop-loss e take-profit trascinabili e grafici multi-broker, mostrati dal vivo in SharpTrader. Apri su YouTube

Cosa include la libreria

Motore grafico

  • Visualizzazione a candele con sotto-pannello dei volumi, mirino, etichetta del prezzo in tempo reale e legenda OHLC mobile.
  • Zoom con la rotellina del mouse che mantiene fissa la barra sotto il cursore, spostamento con clic e trascinamento.
  • Feed in tempo reale: PushTick incorpora un tick nell’ultima barra, FeedTick raggruppa automaticamente i tick in candele di qualsiasi intervallo.
  • Sovrapposizioni multi-simbolo per il confronto, con scala indipendente o condivisa.
  • Salvataggio del layout in JSON: indicatori, disegni, sovrapposizioni e area di visualizzazione vengono salvati e ripristinati.
  • Temi scuro (blu navy e oro BJF) e chiaro, commutabili in fase di esecuzione, con ogni colore modificabile.
  • Filigrana da file di logo, URL o testo dietro le candele.

Livello di trading

  • TradingPanel: un ticket d’ordine (acquisto e vendita a mercato, limite o stop, quantità, prezzo, stop-loss, take-profit) con visualizzazione in tempo reale della posizione e del P/L.
  • Le linee di ingresso, stop-loss, take-profit e degli ordini pendenti vengono disegnate automaticamente sul grafico; stop-loss e take-profit sono trascinabili e generano eventi al rilascio.
  • Il pannello non esegue nulla da solo. Genera eventi per il tuo livello di esecuzione, che sia una sessione FIX API, un bridge verso il broker o SharpTrader tramite EasyFIX.
  • OrderBookPanel: una scala di profondità del mercato con dimensione per livello e barre di profondità proporzionali; fai clic su un livello per precompilare un prezzo limite.
  • Linee di prezzo arbitrarie per ID per gli ordini del broker, con trascinamento opzionale.

Indicatori e strumenti di disegno

Gruppo Inclusi
Indicatori in sovrapposizione SMA, EMA, WMA, VWAP, Bande di Bollinger, Canali di Keltner, Canali di Donchian, Envelope, Parabolic SAR.
Indicatori in sotto-pannello RSI, MACD con istogramma, Stocastico, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Deviazione standard, On-Balance Volume, Money Flow Index.
Precisione I calcoli degli indicatori sono verificati rispetto a implementazioni di riferimento indipendenti: SMA, EMA, Bollinger, RSI, ATR, Stocastico e CCI coincidono fino a 1e-9; MACD, ADX, DI, Williams %R, MFI e OBV sono convalidati per correttezza e intervallo dei valori.
Strumenti di disegno Linea di trend, semiretta, linea estesa, linea e semiretta orizzontale, linea verticale, freccia, canale parallelo, rettangolo, ellisse, ritracciamento di Fibonacci, estensione di Fibonacci e uno strumento di misura che mostra la differenza di prezzo, la variazione percentuale e il numero di barre. Tutti ancorati allo spazio dei dati, quindi restano fissi durante zoom e spostamento.
Estensibilità Implementa IIndicator (o deriva da IndicatorBase), restituisci una o più serie allineate all’elenco delle candele, scegli sovrapposizione o sotto-pannello, linea, istogramma o punti, e registralo perché compaia nel menu contestuale e nei layout salvati.

Dieci righe per un grafico funzionante

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

Tutto ciò che è nel codice è raggiungibile anche dal menu contestuale del grafico: aggiungere o rimuovere indicatori, scegliere uno strumento di disegno, gestire le sovrapposizioni, cambiare tema, salvare o caricare un layout. Per la compilazione la libreria richiede Windows e il .NET SDK 8.0 o successivo; NuGet ripristina automaticamente SkiaSharp. È inclusa un’applicazione demo eseguibile con tick in tempo reale simulati.

Usare BjfChart nel tuo prodotto. La libreria è concessa in licenza agli sviluppatori di SharpTrader, ai partner white-label e ai fornitori di terminali di terze parti. Per domande sull’utilizzo, condizioni di licenza, una build demo o assistenza per integrarla con il tuo feed di dati, contattaci direttamente utilizzando i recapiti qui sotto. Indicaci quale target .NET utilizzi e com’è strutturata la tua fonte di dati: ti risponderemo entro un giorno lavorativo.



Contatti per sviluppatori

Tutte le domande degli sviluppatori arrivano allo stesso team che sviluppa la piattaforma. Per domande sull’API per bot e su EasyFIX, indica la tua versione di SharpTrader e il tipo di account; per BjfChart, indica il tuo target .NET e il feed di dati.

Emailsupport@bjftradinggroup.comIdeale per esempi di codice, specifiche e licenze Telefono+1 (905) 599-5507Dal lunedì al venerdì, dalle 9:00 alle 18:00, ora della costa orientale (Toronto) Telegramt.me/bjftradinggroupDomande rapide e follow-up

BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. Richieste generali: pagina dei contatti.



Domande frequenti

Quale linguaggio usano i bot di SharpTrader?
C#. Un bot è una classe che eredita dalla classe base Bot della piattaforma e implementa gestori di eventi per inizializzazione, tick, variazioni di posizione e aggiornamenti dello stato degli ordini. Viene compilato all’interno di SharpTrader e funziona accanto alle strategie integrate.
Un solo bot può operare con più broker o exchange contemporaneamente?
Sì. Ogni chiamata per dati di mercato e ordini accetta un indice di sessione, e una sessione corrisponde a un conto broker o exchange connesso. Un bot può leggere le quotazioni da una sessione e inviare ordini a un’altra: è così che si scrive la logica multi-broker e cross-exchange.
Che cos’è la EasyFIX API e a chi è rivolta?
EasyFIX è un protocollo FIX semplificato che consente a software esterni di connettersi a SharpTrader usandolo come gateway di esecuzione. È pensata per gli sviluppatori che mantengono il proprio motore fuori dalla piattaforma e vogliono ricevere quotazioni e inviare ordini tramite i connettori di SharpTrader verso broker ed exchange. La specifica e una connessione di test sono fornite su richiesta.
BjfChart è disponibile separatamente da SharpTrader?
Sì. BjfChart è una libreria .NET autonoma, un’unica DLL per net48 e net8.0-windows, basata su SkiaSharp. È concessa in licenza agli sviluppatori di SharpTrader, ai partner white-label e ai fornitori di terminali. Contatta support@bjftradinggroup.com per le condizioni e una build demo.
Il pannello di trading di BjfChart esegue gli ordini?
No. Il pannello genera eventi (ordine inviato, richiesta di chiusura della posizione, posizione modificata dopo il trascinamento di stop-loss o take-profit) e l’applicazione host li instrada al proprio livello di esecuzione, ad esempio una sessione FIX API, un bridge verso il broker o SharpTrader tramite EasyFIX.
Posso aggiungere i miei indicatori a BjfChart?
Sì. Implementa l’interfaccia IIndicator o deriva da IndicatorBase, restituisci una o più serie allineate all’elenco delle candele, scegli la visualizzazione in sovrapposizione o in sotto-pannello e registra l’indicatore perché compaia nel menu contestuale e venga salvato nei layout.
Il codice sorgente di SharpTrader o di BjfChart è in vendita?
No. BJF Trading Group concede in licenza build compilate e fornisce accesso alle API, documentazione e supporto. Il codice sorgente non viene venduto né divulgato nell’ambito di alcun programma.





Raccontaci cosa stai sviluppando

Un bot per una particolarità di un broker specifico, un motore esterno che ha bisogno di un gateway di esecuzione o un terminale che ha bisogno di grafici entro venerdì. Un’email con i dettagli, una risposta con il passo successivo.

Scrivi al team di sviluppo Scrivici su Telegram

BJF Trading Group Inc. sviluppa strumenti software per trader e sviluppatori esperti. Non siamo un broker, un istituto finanziario o un consulente per gli investimenti, e non eseguiamo operazioni né gestiamo fondi. Gli esempi di codice in questa pagina sono illustrativi e possono differire dal riferimento attuale della libreria; consulta sempre la documentazione relativa alla tua versione della piattaforma. Il trading su Forex, CFD e criptovalute comporta un elevato rischio di perdita e non è adatto a tutti gli investitori. Nulla in questa pagina costituisce consulenza finanziaria o promessa di profitto.