SharpTrader es una plataforma de trading creada para traders, no para brokers, y está abierta a quienes escriben código para ellos. Escriba sus propias estrategias en C# dentro de la plataforma, conecte su software externo a su motor de ejecución mediante la EasyFIX API o integre nuestra librería de gráficos de velas acelerada por GPU en su propio terminal .NET.
Ver la demostración de gráficos Contactos para desarrolladores
| C#lenguaje nativo de estrategias, compilado dentro de SharpTrader | 50+conectores FIX API a brokers, además de los principales exchanges de criptomonedas | 22indicadores en BjfChart, contrastados con cálculos de referencia | 2destinos en una sola DLL: net48 para aplicaciones heredadas, net8.0-windows para las nuevas |
Cada opción resuelve un problema distinto. Elija la que corresponda al lugar donde reside su código.
Dentro de la plataforma
Módulo de programación: API de bots en C#Escriba una estrategia como una clase C#, compílela dentro de SharpTrader y ejecútela con cualquier broker o exchange conectado. Ticks, posiciones, órdenes e indicadores están a una sola llamada de distancia. |
Fuera de la plataforma
EasyFIX APIMantenga su propio motor, en cualquier lenguaje, y deje que SharpTrader sea la pasarela: le transmite cotizaciones y enruta sus órdenes a través de sus conectores de brokers y exchanges. |
En su propio terminal
Librería de gráficos BjfChartUna única DLL que aporta a su aplicación .NET gráficos de velas profesionales, indicadores, herramientas de dibujo, un panel de trading y un libro de órdenes, con feed de ticks en vivo. |
El módulo de programación convierte SharpTrader en un entorno de desarrollo para estrategias automatizadas. Un bot es una clase C# que hereda de la clase base Bot de la plataforma y reacciona a eventos: inicialización, cada tick entrante, posición abierta, posición cerrada y actualizaciones del estado de las órdenes. La plataforma lo compila, muestra sus parámetros de entrada en la interfaz y lo ejecuta en cuentas reales o demo junto a las estrategias integradas de arbitraje, noticias e impulso.
| Área | Qué puede hacer |
|---|---|
| Datos de mercado | Bid, ask, spread y valor del punto por símbolo y por sesión, a través del objeto ticker. Una sesión es una cuenta conectada de un broker o exchange, por lo que un solo bot puede vigilar y operar con varias contrapartes a la vez mediante el índice de sesión. |
| Órdenes y posiciones | sendOrder para ejecución a mercado, modifyPositionByID para stop-loss y take-profit, closePositionByID, búsquedas por ID o por comentario, y listas en vivo de órdenes abiertas, cerradas y pendientes. |
| Detalles de la posición | Cada posición incluye precios y horas de apertura y cierre, volumen, lado, sesión, beneficio, comentario, stop-loss, take-profit y el deslizamiento y tiempo de ejecución medidos para ambas patas. Esto último es lo que permite a un bot adaptarse a cómo le ejecuta realmente un broker. |
| Indicadores | Funciones de indicadores integradas como EMA y MACD en cualquier marco temporal, ampliadas continuamente con las actualizaciones de la plataforma. |
| Parámetros de entrada y registro | Las propiedades públicas marcadas con [PropertyInfo] aparecen como parámetros editables en la interfaz; writeLog escribe en el registro de la plataforma; stopBot detiene la estrategia desde el código. |
| Estado de la cuenta | Balance y equity por sesión para reglas de riesgo y cálculo del tamaño de posición. |
// 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 sencillos en lugar de Where, Select o Any. Los precios de la API están en puntos del broker; multiplíquelos por el valor del punto antes de compararlos con sus propios umbrales. Y mantenga una sola orden en curso por tick, protegida por el ID de orden de cliente devuelto, a menos que disfrute depurando ejecuciones duplicadas.Referencia completa de clases, métodos y eventos: documentación de la librería de programación de SharpTrader. El módulo de programación es un complemento de SharpTrader Pro; consulte la página de SharpTrader Pro para ver el paquete actual.
No todo tiene que estar dentro de la plataforma. Si ya utiliza un motor de señales, un gestor de riesgo, un front end personalizado o un flujo de investigación, EasyFIX le permite comunicarse con SharpTrader mediante un protocolo FIX simplificado. SharpTrader se convierte en su pasarela de ejecución: mantiene las conexiones con brokers y exchanges, y usted envía órdenes y recibe cotizaciones y ejecuciones desde su propio código, en el lenguaje que prefiera.
Qué transporta EasyFIX
|
Integraciones típicas
|
EasyFIX es un dialecto FIX modificado: conserva el modelo de mensajes que los desarrolladores ya conocen y elimina las formalidades que un enlace entre usuario minorista y pasarela no necesita. La especificación, sesiones de ejemplo y una conexión de prueba están disponibles para los usuarios de SharpTrader Pro y Lite previa solicitud. Escriba a support@bjftradinggroup.com con una breve descripción de lo que piensa conectar.
En 2026 reconstruimos desde cero los gráficos de SharpTrader, y el motor que los impulsa está disponible para desarrolladores como librería independiente. BjfChart es un control de gráficos de velas acelerado por GPU para WinForms, construido sobre SkiaSharp. Renderiza decenas de miles de barras a 60 fotogramas por segundo y se distribuye como un único BjfChart.dll que apunta tanto a net48 como a net8.0-windows, por lo que se integra igual en terminales heredados de .NET Framework que en nuevas aplicaciones .NET 8.
Vídeo: SharpTrader Charting, nueva librería de gráficos y demostración de trading manual
Ocho marcos temporales, indicadores, herramientas de Fibonacci y de tendencia, un ticket de órdenes con líneas de stop-loss y take-profit arrastrables y gráficos multibroker, mostrados en vivo dentro de SharpTrader. Abrir en YouTube
Motor de gráficos
|
Capa de trading
|
| Grupo | Incluido |
|---|---|
| Indicadores superpuestos | SMA, EMA, WMA, VWAP, Bandas de Bollinger, Canales de Keltner, Canales de Donchian, Envelope, Parabolic SAR. |
| Indicadores en subpanel | RSI, MACD con histograma, Estocástico, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Desviación estándar, On-Balance Volume, Money Flow Index. |
| Precisión | Los cálculos de los indicadores se contrastan con implementaciones de referencia independientes: SMA, EMA, Bollinger, RSI, ATR, Estocástico y CCI coinciden hasta 1e-9; MACD, ADX, DI, Williams %R, MFI y OBV están validados en cuanto a exactitud y rango. |
| Herramientas de dibujo | Línea de tendencia, rayo, línea extendida, línea y rayo horizontales, línea vertical, flecha, canal paralelo, rectángulo, elipse, retroceso de Fibonacci, extensión de Fibonacci y una herramienta de medición que muestra la diferencia de precio, el cambio porcentual y el número de barras. Todas están ancladas en el espacio de datos, por lo que permanecen fijas al hacer zoom y desplazarse. |
| Extensibilidad | Implemente IIndicator (o cree una subclase de IndicatorBase), devuelva una o varias series alineadas con la lista de velas, elija superposición o subpanel, línea, histograma o puntos, y regístrelo para que aparezca en el menú contextual y en los diseños guardados. |
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
Todo lo que hay en el código también es accesible desde el menú contextual del gráfico: añadir o quitar indicadores, elegir una herramienta de dibujo, gestionar superposiciones, cambiar de tema, guardar o cargar un diseño. La librería requiere Windows y el .NET SDK 8.0 o posterior para compilar; NuGet restaura SkiaSharp automáticamente. Se incluye una aplicación de demostración ejecutable con ticks en vivo simulados.
Todas las preguntas de desarrolladores llegan al mismo equipo que construye la plataforma. Para preguntas sobre la API de bots y EasyFIX, indique su versión de SharpTrader y tipo de cuenta; para BjfChart, indique su destino .NET y su feed de datos.
| Correo electrónicosupport@bjftradinggroup.comIdeal para ejemplos de código, especificaciones y licencias | Teléfono+1 (905) 599-5507De lunes a viernes, de 9:00 a 18:00, hora del Este (Toronto) | Telegramt.me/bjftradinggroupPreguntas rápidas y seguimiento |
BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canadá. Consultas generales: página de contacto.
Nuevos artículos, trabajos de investigación y lanzamientos de productos, enviados en cuanto los publicamos.
Un bot para una peculiaridad concreta de un broker, un motor externo que necesita una pasarela de ejecución o un terminal que necesita gráficos para el viernes. Un correo con los detalles, una respuesta con el siguiente paso.
BJF Trading Group Inc. desarrolla herramientas de software para traders y desarrolladores experimentados. No somos un broker, una institución financiera ni un asesor de inversiones, y no ejecutamos operaciones ni gestionamos fondos. Los ejemplos de código de esta página son ilustrativos y pueden diferir de la referencia actual de la librería; consulte siempre la documentación de la versión de su plataforma. El trading de forex, CFD y criptomonedas conlleva un alto riesgo de pérdida y no es adecuado para todos los inversores. Nada de lo que aparece en esta página constituye asesoramiento financiero ni una promesa de beneficios.