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.
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 |
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. |
Fuori dalla piattaforma
EasyFIX APIMantieni 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. |
Nel tuo terminale
Libreria grafica BjfChartUn’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. |
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.
| 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. |
// 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"); } }
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.
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
|
Integrazioni tipiche
|
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.
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
Motore grafico
|
Livello di trading
|
| 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. |
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.
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.
Nuovi articoli, studi e rilasci di prodotti, inviati non appena li pubblichiamo.
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.
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.