O SharpTrader é uma plataforma de trading feita para traders, não para brokers, e está aberta a quem escreve código para eles. Escreva suas próprias estratégias em C# dentro da plataforma, conecte seu software externo ao motor de execução por meio da EasyFIX API ou integre nossa biblioteca de gráficos de candles acelerada por GPU ao seu próprio terminal .NET.
Assista à demonstração dos gráficos Contatos para desenvolvedores
| C#linguagem nativa de estratégias, compilada dentro do SharpTrader | 50+conectores FIX API para brokers, além das principais exchanges de cripto | 22indicadores no BjfChart, verificados contra cálculos de referência | 2alvos em uma única DLL: net48 para aplicações legadas, net8.0-windows para as novas |
Cada opção resolve um problema diferente. Escolha a que corresponde a onde seu código está.
Dentro da plataforma
Módulo de programação: API de bots em C#Escreva uma estratégia como uma classe C#, compile-a dentro do SharpTrader e execute-a em qualquer broker ou exchange conectado. Ticks, posições, ordens e indicadores estão todos a uma chamada de distância. |
Fora da plataforma
EasyFIX APIMantenha seu próprio motor, em qualquer linguagem, e deixe o SharpTrader ser o gateway: ele transmite cotações para você e roteia suas ordens pelos conectores de brokers e exchanges. |
No seu próprio terminal
Biblioteca de gráficos BjfChartUma única DLL que oferece à sua aplicação .NET gráficos de candles profissionais, indicadores, ferramentas de desenho, um painel de trading e um livro de ofertas, com feed de ticks em tempo real. |
O módulo de programação transforma o SharpTrader em um ambiente de desenvolvimento para estratégias automatizadas. Um bot é uma classe C# que herda da classe base Bot da plataforma e reage a eventos: inicialização, cada tick recebido, posição aberta, posição fechada e atualizações de status de ordens. A plataforma o compila, mostra seus parâmetros de entrada na interface e o executa em contas reais ou demo, lado a lado com as estratégias integradas de arbitragem, notícias e impulso.
| Área | O que você pode fazer |
|---|---|
| Dados de mercado | Bid, ask, spread e valor do ponto por símbolo e por sessão, por meio do objeto ticker. Uma sessão é uma conta conectada em um broker ou exchange, então um único bot pode acompanhar e operar várias contrapartes ao mesmo tempo pelo índice da sessão. |
| Ordens e posições | sendOrder para execução a mercado, modifyPositionByID para stop-loss e take-profit, closePositionByID, buscas por ID ou por comentário e listas em tempo real de ordens abertas, fechadas e pendentes. |
| Detalhes da posição | Cada posição contém preços e horários de abertura e fechamento, volume, lado, sessão, lucro, comentário, stop-loss, take-profit e o slippage e o tempo de execução medidos para as duas pontas. É essa última parte que permite a um bot se adaptar à forma como um broker realmente executa suas ordens. |
| Indicadores | Funções de indicadores integradas, como EMA e MACD, em qualquer timeframe, continuamente ampliadas com as atualizações da plataforma. |
| Parâmetros de entrada e logs | Propriedades públicas marcadas com [PropertyInfo] aparecem como parâmetros editáveis na interface; writeLog grava no log da plataforma; stopBot interrompe a estratégia pelo código. |
| Estado da conta | Saldo e patrimônio líquido por sessão para regras de risco e dimensionamento de posições. |
// 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 simples em vez de Where, Select ou Any. Os preços da API estão em pontos do broker; multiplique pelo valor do ponto antes de comparar com seus próprios limites. E mantenha uma única ordem em andamento por tick, controlada pelo ID de ordem do cliente retornado, a menos que você goste de depurar execuções duplicadas.Referência completa de classes, métodos e eventos: documentação da biblioteca de programação do SharpTrader. O módulo de programação é um complemento do SharpTrader Pro; consulte a página do SharpTrader Pro para o pacote atual.
Nem tudo pertence ao interior da plataforma. Se você já executa um motor de sinais, um gerenciador de risco, um front-end personalizado ou um pipeline de pesquisa, a EasyFIX permite que ele se comunique com o SharpTrader por meio de um protocolo FIX simplificado. O SharpTrader se torna seu gateway de execução: ele mantém as conexões com brokers e exchanges, e você envia ordens e recebe cotações e execuções a partir do seu próprio código, na linguagem que preferir.
O que a EasyFIX transporta
|
Integrações típicas
|
A EasyFIX é um dialeto FIX modificado: mantém o modelo de mensagens que os desenvolvedores já conhecem, dispensando as formalidades de que uma conexão entre varejo e gateway não precisa. A especificação, sessões de exemplo e uma conexão de teste estão disponíveis mediante solicitação para usuários do SharpTrader Pro e Lite. Escreva para support@bjftradinggroup.com com uma breve descrição do que você pretende conectar.
Em 2026 reconstruímos do zero os gráficos do SharpTrader, e o motor por trás deles está disponível para desenvolvedores como uma biblioteca independente. O BjfChart é um controle de gráficos de candles acelerado por GPU para WinForms, construído sobre SkiaSharp. Ele renderiza dezenas de milhares de barras a 60 quadros por segundo e é distribuído como uma única BjfChart.dll compatível com net48 e net8.0-windows, podendo ser integrado tanto a terminais legados em .NET Framework quanto a novas aplicações .NET 8.
Vídeo: SharpTrader Charting, nova biblioteca de gráficos e demonstração do trading manual
Oito timeframes, indicadores, ferramentas de Fibonacci e de tendência, uma boleta de ordens com linhas de stop-loss e take-profit arrastáveis e gráficos com vários brokers, mostrados ao vivo dentro do SharpTrader. Abrir no YouTube
Motor de gráficos
|
Camada de trading
|
| Grupo | Incluído |
|---|---|
| Indicadores sobrepostos | SMA, EMA, WMA, VWAP, Bandas de Bollinger, Canais de Keltner, Canais de Donchian, Envelope, Parabolic SAR. |
| Indicadores em subpainel | RSI, MACD com histograma, Estocástico, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Desvio Padrão, On-Balance Volume, Money Flow Index. |
| Precisão | Os cálculos dos indicadores são verificados contra implementações de referência independentes: SMA, EMA, Bollinger, RSI, ATR, Estocástico e CCI coincidem até 1e-9; MACD, ADX, DI, Williams %R, MFI e OBV são validados quanto à correção e ao intervalo de valores. |
| Ferramentas de desenho | Linha de tendência, raio, linha estendida, linha e raio horizontais, linha vertical, seta, canal paralelo, retângulo, elipse, retração de Fibonacci, extensão de Fibonacci e uma ferramenta de medição que mostra a variação de preço, a variação percentual e o número de barras. Todas ancoradas no espaço dos dados, permanecendo fixas durante o zoom e o deslocamento. |
| Extensibilidade | Implemente IIndicator (ou crie uma subclasse de IndicatorBase), retorne uma ou mais séries alinhadas à lista de candles, escolha sobreposição ou subpainel, linha, histograma ou pontos, e registre-o para que apareça no menu do botão direito e nos layouts salvos. |
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
Tudo o que está no código também pode ser acessado pelo menu do botão direito no gráfico: adicionar ou remover indicadores, escolher uma ferramenta de desenho, gerenciar sobreposições, trocar o tema, salvar ou carregar um layout. Para compilar, a biblioteca exige Windows e o .NET SDK 8.0 ou superior; o NuGet restaura o SkiaSharp automaticamente. Está incluída uma aplicação de demonstração executável com ticks em tempo real simulados.
Todas as dúvidas de desenvolvedores vão para a mesma equipe que constrói a plataforma. Para dúvidas sobre a API de bots e a EasyFIX, informe sua versão do SharpTrader e o tipo de conta; para o BjfChart, informe seu alvo .NET e o feed de dados.
| E-mailsupport@bjftradinggroup.comIdeal para exemplos de código, especificações e licenciamento | Telefone+1 (905) 599-5507Segunda a sexta, das 9:00 às 18:00, horário do Leste (Toronto) | Telegramt.me/bjftradinggroupPerguntas rápidas e acompanhamentos |
BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canadá. Contatos gerais: página de contato.
Novos artigos, estudos e lançamentos de produtos, entregues assim que os publicamos.
Um bot para uma peculiaridade específica de um broker, um motor externo que precisa de um gateway de execução ou um terminal que precisa de gráficos até sexta-feira. Um e-mail com os detalhes, uma resposta com o próximo passo.
Enviar e-mail à equipe de desenvolvimento Fale conosco no Telegram
A BJF Trading Group Inc. desenvolve ferramentas de software para traders e desenvolvedores experientes. Não somos uma corretora, instituição financeira ou consultora de investimentos, e não executamos operações nem administramos fundos. Os exemplos de código desta página são ilustrativos e podem diferir da referência atual da biblioteca; consulte sempre a documentação da sua versão da plataforma. Operar forex, CFDs e criptomoedas envolve alto risco de perda e não é adequado para todos os investidores. Nada nesta página constitui aconselhamento financeiro ou promessa de lucro.