SharpTrader là nền tảng giao dịch được xây dựng cho nhà giao dịch, không phải cho broker, và mở cửa cho những người viết code cho họ. Hãy viết chiến lược riêng bằng C# ngay trong nền tảng, kết nối phần mềm bên ngoài của bạn với bộ máy khớp lệnh thông qua EasyFIX API, hoặc tích hợp thư viện biểu đồ nến tăng tốc GPU của chúng tôi vào terminal .NET của riêng bạn.
| C#ngôn ngữ chiến lược gốc, được biên dịch ngay trong SharpTrader | 50+connector FIX API tới các broker, cùng các sàn crypto lớn | 22chỉ báo trong BjfChart, được đối chiếu với các phép tính tham chiếu | 2target trong một DLL: net48 cho ứng dụng cũ, net8.0-windows cho ứng dụng mới |
Mỗi lựa chọn giải quyết một vấn đề khác nhau. Hãy chọn cách phù hợp với nơi code của bạn đang chạy.
Bên trong nền tảng
Module lập trình: C# bot APIViết chiến lược dưới dạng một lớp C#, biên dịch trong SharpTrader và chạy trên bất kỳ broker hoặc sàn nào đã kết nối. Tick, vị thế, lệnh và chỉ báo đều chỉ cách một lời gọi hàm. |
Bên ngoài nền tảng
EasyFIX APIGiữ nguyên bộ máy của riêng bạn, bằng bất kỳ ngôn ngữ nào, và để SharpTrader làm cổng kết nối: nó truyền báo giá tới bạn và định tuyến lệnh của bạn qua các connector broker và sàn giao dịch. |
Trong terminal của riêng bạn
Thư viện biểu đồ BjfChartMột DLL duy nhất mang đến cho ứng dụng .NET của bạn biểu đồ nến chuyên nghiệp, chỉ báo, công cụ vẽ, bảng giao dịch và sổ lệnh, với luồng tick trực tiếp. |
Module lập trình biến SharpTrader thành một môi trường phát triển cho các chiến lược tự động. Một bot là một lớp C# kế thừa từ lớp cơ sở Bot của nền tảng và phản hồi các sự kiện: khởi tạo, mỗi tick đến, vị thế được mở, vị thế được đóng và cập nhật trạng thái lệnh. Nền tảng biên dịch bot, hiển thị các tham số đầu vào của bạn trong giao diện và chạy nó trên tài khoản thật hoặc demo song song với các chiến lược arbitrage, tin tức và impulse tích hợp sẵn.
| Lĩnh vực | Bạn có thể làm gì |
|---|---|
| Dữ liệu thị trường | Bid, ask, spread và giá trị point theo từng mã và từng phiên, thông qua đối tượng ticker. Một phiên là một tài khoản broker hoặc sàn đã kết nối, vì vậy một bot có thể theo dõi và giao dịch với nhiều đối tác cùng lúc theo chỉ số phiên. |
| Lệnh và vị thế | sendOrder để khớp lệnh thị trường, modifyPositionByID cho stop-loss và take-profit, closePositionByID, tra cứu theo ID hoặc theo comment, và danh sách trực tiếp các lệnh đang mở, đã đóng và lệnh chờ. |
| Chi tiết vị thế | Mỗi vị thế chứa giá và thời gian mở, đóng, khối lượng, chiều lệnh, phiên, lợi nhuận, comment, stop-loss, take-profit, cùng độ trượt giá và thời gian khớp lệnh đo được cho cả hai chân. Phần cuối cùng này cho phép bot thích ứng với cách broker thực sự khớp lệnh cho bạn. |
| Chỉ báo | Các hàm chỉ báo tích hợp sẵn như EMA và MACD trên mọi khung thời gian, liên tục được mở rộng qua các bản cập nhật nền tảng. |
| Tham số đầu vào và ghi log | Các thuộc tính public được đánh dấu bằng [PropertyInfo] sẽ xuất hiện dưới dạng tham số có thể chỉnh sửa trong giao diện; writeLog ghi vào log của nền tảng; stopBot dừng chiến lược từ code. |
| Trạng thái tài khoản | Balance và equity theo từng phiên cho các quy tắc rủi ro và tính khối lượng vị thế. |
// 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 thông thường thay vì Where, Select hoặc Any. Giá từ API tính theo point của broker; hãy nhân với giá trị point trước khi so sánh với ngưỡng của riêng bạn. Và chỉ giữ một lệnh đang xử lý mỗi tick, được bảo vệ bằng client order ID trả về, trừ khi bạn thích gỡ lỗi các lần khớp lệnh trùng lặp.Tài liệu tham chiếu đầy đủ về lớp, phương thức và sự kiện: tài liệu thư viện lập trình SharpTrader. Module lập trình là tiện ích bổ sung cho SharpTrader Pro; xem trang SharpTrader Pro để biết gói hiện tại.
Không phải mọi thứ đều nên nằm trong nền tảng. Nếu bạn đã vận hành một bộ máy tín hiệu, một hệ thống quản lý rủi ro, một giao diện tùy chỉnh hoặc một quy trình nghiên cứu, EasyFIX cho phép chúng giao tiếp với SharpTrader qua một giao thức FIX đơn giản hóa. SharpTrader trở thành cổng khớp lệnh của bạn: nó giữ các kết nối tới broker và sàn giao dịch, còn bạn gửi lệnh và nhận báo giá, kết quả khớp lệnh từ code của riêng mình, bằng bất kỳ ngôn ngữ nào bạn muốn.
EasyFIX truyền tải những gì
|
Các tích hợp điển hình
|
EasyFIX là một phương ngữ FIX đã được sửa đổi: nó giữ mô hình thông điệp mà các nhà phát triển đã quen thuộc, đồng thời bỏ đi những thủ tục rườm rà mà một kết nối từ người dùng cá nhân tới gateway không cần đến. Đặc tả, phiên mẫu và kết nối thử nghiệm được cung cấp cho người dùng SharpTrader Pro và Lite theo yêu cầu. Hãy viết tới support@bjftradinggroup.com kèm mô tả ngắn về những gì bạn định kết nối.
Năm 2026, chúng tôi đã xây dựng lại hoàn toàn phần biểu đồ trong SharpTrader, và bộ máy đứng sau nó được cung cấp cho các nhà phát triển dưới dạng một thư viện độc lập. BjfChart là một control biểu đồ nến tăng tốc GPU cho WinForms, xây dựng trên SkiaSharp. Nó hiển thị hàng chục nghìn thanh nến ở tốc độ 60 khung hình mỗi giây và được phân phối dưới dạng một tệp BjfChart.dll duy nhất nhắm tới cả net48 và net8.0-windows, vì vậy nó tích hợp được vào cả các terminal .NET Framework cũ lẫn các ứng dụng .NET 8 mới.
Video: SharpTrader Charting, thư viện biểu đồ mới và hướng dẫn giao dịch thủ công
Tám khung thời gian, chỉ báo, công cụ Fibonacci và xu hướng, phiếu lệnh với đường stop-loss và take-profit có thể kéo thả, và biểu đồ đa broker, được trình diễn trực tiếp trong SharpTrader. Mở trên YouTube
Bộ máy biểu đồ
|
Lớp giao dịch
|
| Nhóm | Bao gồm |
|---|---|
| Chỉ báo chồng trên biểu đồ | SMA, EMA, WMA, VWAP, Bollinger Bands, kênh Keltner, kênh Donchian, Envelope, Parabolic SAR. |
| Chỉ báo ở bảng phụ | RSI, MACD kèm histogram, Stochastic, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Standard Deviation, On-Balance Volume, Money Flow Index. |
| Độ chính xác | Phép tính chỉ báo được đối chiếu với các bản triển khai tham chiếu độc lập: SMA, EMA, Bollinger, RSI, ATR, Stochastic và CCI khớp đến 1e-9; MACD, ADX, DI, Williams %R, MFI và OBV được kiểm chứng về tính đúng đắn và phạm vi giá trị. |
| Công cụ vẽ | Đường xu hướng, tia, đường kéo dài, đường ngang và tia ngang, đường dọc, mũi tên, kênh song song, hình chữ nhật, hình elip, Fibonacci thoái lui, Fibonacci mở rộng và công cụ đo hiển thị chênh lệch giá, phần trăm thay đổi và số thanh nến. Tất cả đều neo theo tọa độ dữ liệu, nên chúng giữ nguyên vị trí khi phóng to và di chuyển. |
| Khả năng mở rộng | Triển khai IIndicator (hoặc kế thừa IndicatorBase), trả về một hoặc nhiều chuỗi dữ liệu căn theo danh sách nến, chọn hiển thị chồng hoặc bảng phụ, dạng đường, histogram hoặc chấm, và đăng ký để chỉ báo xuất hiện trong menu chuột phải và trong các bố cục đã lưu. |
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
Mọi thứ trong code cũng có thể truy cập từ menu chuột phải trên biểu đồ: thêm hoặc xóa chỉ báo, chọn công cụ vẽ, quản lý lớp chồng, đổi giao diện, lưu hoặc tải bố cục. Để build, thư viện yêu cầu Windows và .NET SDK 8.0 trở lên; NuGet tự động khôi phục SkiaSharp. Kèm theo là một ứng dụng demo có thể chạy ngay với tick trực tiếp mô phỏng.
Mọi câu hỏi của nhà phát triển đều được chuyển tới chính đội ngũ xây dựng nền tảng. Với câu hỏi về bot API và EasyFIX, hãy ghi rõ phiên bản SharpTrader và loại tài khoản; với BjfChart, hãy ghi rõ target .NET và nguồn dữ liệu.
| Emailsupport@bjftradinggroup.comPhù hợp nhất cho code mẫu, đặc tả và cấp phép | Điện thoại+1 (905) 599-5507Thứ Hai đến thứ Sáu, 9:00 đến 18:00 giờ miền Đông (Toronto) | Telegramt.me/bjftradinggroupCâu hỏi nhanh và trao đổi tiếp theo |
BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. Liên hệ chung: trang liên hệ.
Bài viết mới, tài liệu nghiên cứu và phát hành sản phẩm, được gửi đến ngay khi chúng tôi xuất bản.
Một bot cho một đặc điểm riêng của broker, một bộ máy bên ngoài cần cổng khớp lệnh, hay một terminal cần có biểu đồ trước thứ Sáu. Một email kèm chi tiết, một phản hồi với bước tiếp theo.
Gửi email cho đội ngũ phát triển Nhắn tin cho chúng tôi qua Telegram
BJF Trading Group Inc. phát triển các công cụ phần mềm cho nhà giao dịch và nhà phát triển có kinh nghiệm. Chúng tôi không phải là broker, tổ chức tài chính hay cố vấn đầu tư, và chúng tôi không thực hiện giao dịch hay quản lý tiền vốn. Code mẫu trên trang này mang tính minh họa và có thể khác với tài liệu tham chiếu hiện tại của thư viện; hãy luôn kiểm tra tài liệu cho phiên bản nền tảng của bạn. Giao dịch forex, CFD và tiền mã hóa có rủi ro thua lỗ cao và không phù hợp với tất cả nhà đầu tư. Không nội dung nào trên trang này là lời khuyên tài chính hay lời hứa về lợi nhuận.