{"id":8075,"date":"2024-08-28T17:20:14","date_gmt":"2024-08-28T17:20:14","guid":{"rendered":"https:\/\/bjftradinggroup.com\/?page_id=8075"},"modified":"2026-09-25T15:46:18","modified_gmt":"2026-09-25T15:46:18","slug":"developers","status":"publish","type":"page","link":"https:\/\/bjftradinggroup.com\/vi\/developers\/","title":{"rendered":"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n"},"content":{"rendered":"<p><\/p>\n<div class=\"dev-page\">\n<p><!-- ============================================================ --><br \/>\n<!-- HERO                                                         --><br \/>\n<!-- ============================================================ --><\/p>\n<div class=\"dev-hero\">\n<span class=\"dev-eyebrow\">D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n &middot; N\u1ec1n t\u1ea3ng SharpTrader<\/span><\/p>\n<h1>X\u00e2y d\u1ef1ng tr\u00ean SharpTrader: <span class=\"dev-gold\">C# bot API, k\u1ebft n\u1ed1i EasyFIX v\u00e0 th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart<\/span><\/h1>\n<p>SharpTrader l\u00e0 n\u1ec1n t\u1ea3ng giao d\u1ecbch \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng cho nh\u00e0 giao d\u1ecbch, kh\u00f4ng ph\u1ea3i cho broker, v\u00e0 m\u1edf c\u1eeda cho nh\u1eefng ng\u01b0\u1eddi vi\u1ebft code cho h\u1ecd. H\u00e3y vi\u1ebft chi\u1ebfn l\u01b0\u1ee3c ri\u00eang b\u1eb1ng C# ngay trong n\u1ec1n t\u1ea3ng, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m b\u00ean ngo\u00e0i c\u1ee7a b\u1ea1n v\u1edbi b\u1ed9 m\u00e1y kh\u1edbp l\u1ec7nh th\u00f4ng qua EasyFIX API, ho\u1eb7c t\u00edch h\u1ee3p th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 n\u1ebfn t\u0103ng t\u1ed1c GPU c\u1ee7a ch\u00fang t\u00f4i v\u00e0o terminal .NET c\u1ee7a ri\u00eang b\u1ea1n.<\/p>\n<div class=\"dev-chips\">\n<span class=\"dev-chip\">Chi\u1ebfn l\u01b0\u1ee3c C# v\u1edbi tick tr\u1ef1c ti\u1ebfp v\u00e0 phi\u00ean \u0111a broker<\/span><br \/>\n<span class=\"dev-chip\">EasyFIX API: h\u01a1n 50 connector FIX, s\u00e0n crypto<\/span><br \/>\n<span class=\"dev-chip\">BjfChart DLL: 22 ch\u1ec9 b\u00e1o, c\u00f4ng c\u1ee5 v\u1ebd, phi\u1ebfu l\u1ec7nh<\/span><br \/>\n<span class=\"dev-chip\">.NET Framework 4.8 v\u00e0 .NET 8<\/span>\n<\/div>\n<p style=\"margin-top:18px !important\"><a class=\"dev-btn\" href=\"#charting\">Xem video h\u01b0\u1edbng d\u1eabn bi\u1ec3u \u0111\u1ed3<\/a> <a class=\"dev-btn-ghost\" href=\"#contact\">Li\u00ean h\u1ec7 d\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n<\/a><\/p>\n<\/div>\n<p><!-- ============================================================ --><br \/>\n<!-- KEY NUMBERS                                                  --><br \/>\n<!-- ============================================================ --><\/p>\n<table class=\"dev-stats\">\n<tbody>\n<tr>\n<td><strong>C#<\/strong><span>ng\u00f4n ng\u1eef chi\u1ebfn l\u01b0\u1ee3c g\u1ed1c, \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch ngay trong SharpTrader<\/span><\/td>\n<td><strong>50+<\/strong><span>connector FIX API t\u1edbi c\u00e1c broker, c\u00f9ng c\u00e1c s\u00e0n crypto l\u1edbn<\/span><\/td>\n<td><strong>22<\/strong><span>ch\u1ec9 b\u00e1o trong BjfChart, \u0111\u01b0\u1ee3c \u0111\u1ed1i chi\u1ebfu v\u1edbi c\u00e1c ph\u00e9p t\u00ednh tham chi\u1ebfu<\/span><\/td>\n<td><strong>2<\/strong><span>target trong m\u1ed9t DLL: net48 cho \u1ee9ng d\u1ee5ng c\u0169, net8.0-windows cho \u1ee9ng d\u1ee5ng m\u1edbi<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!-- ============================================================ --><br \/>\n<!-- THREE WAYS                                                   --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"ways\">Ba c\u00e1ch x\u00e2y d\u1ef1ng c\u00f9ng BJF<\/h2>\n<p>M\u1ed7i l\u1ef1a ch\u1ecdn gi\u1ea3i quy\u1ebft m\u1ed9t v\u1ea5n \u0111\u1ec1 kh\u00e1c nhau. H\u00e3y ch\u1ecdn c\u00e1ch ph\u00f9 h\u1ee3p v\u1edbi n\u01a1i code c\u1ee7a b\u1ea1n \u0111ang ch\u1ea1y.<\/p>\n<table class=\"dev-threecol\">\n<tbody>\n<tr>\n<td class=\"dev-col\">\n<span class=\"dev-tag\">B\u00ean trong n\u1ec1n t\u1ea3ng<\/span><\/p>\n<h3>Module l\u1eadp tr\u00ecnh: C# bot API<\/h3>\n<p>Vi\u1ebft chi\u1ebfn l\u01b0\u1ee3c d\u01b0\u1edbi d\u1ea1ng m\u1ed9t l\u1edbp C#, bi\u00ean d\u1ecbch trong SharpTrader v\u00e0 ch\u1ea1y tr\u00ean b\u1ea5t k\u1ef3 broker ho\u1eb7c s\u00e0n n\u00e0o \u0111\u00e3 k\u1ebft n\u1ed1i. Tick, v\u1ecb th\u1ebf, l\u1ec7nh v\u00e0 ch\u1ec9 b\u00e1o \u0111\u1ec1u ch\u1ec9 c\u00e1ch m\u1ed9t l\u1eddi g\u1ecdi h\u00e0m.<\/p>\n<p><a href=\"#bot-api\">T\u00ecm hi\u1ec3u v\u1ec1 bot API<\/a><\/p>\n<\/td>\n<td class=\"dev-col\">\n<span class=\"dev-tag\">B\u00ean ngo\u00e0i n\u1ec1n t\u1ea3ng<\/span><\/p>\n<h3>EasyFIX API<\/h3>\n<p>Gi\u1eef nguy\u00ean b\u1ed9 m\u00e1y c\u1ee7a ri\u00eang b\u1ea1n, b\u1eb1ng b\u1ea5t k\u1ef3 ng\u00f4n ng\u1eef n\u00e0o, v\u00e0 \u0111\u1ec3 SharpTrader l\u00e0m c\u1ed5ng k\u1ebft n\u1ed1i: n\u00f3 truy\u1ec1n b\u00e1o gi\u00e1 t\u1edbi b\u1ea1n v\u00e0 \u0111\u1ecbnh tuy\u1ebfn l\u1ec7nh c\u1ee7a b\u1ea1n qua c\u00e1c connector broker v\u00e0 s\u00e0n giao d\u1ecbch.<\/p>\n<p><a href=\"#easyfix\">T\u00ecm hi\u1ec3u v\u1ec1 EasyFIX<\/a><\/p>\n<\/td>\n<td class=\"dev-col\">\n<span class=\"dev-tag\">Trong terminal c\u1ee7a ri\u00eang b\u1ea1n<\/span><\/p>\n<h3>Th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart<\/h3>\n<p>M\u1ed9t DLL duy nh\u1ea5t mang \u0111\u1ebfn cho \u1ee9ng d\u1ee5ng .NET c\u1ee7a b\u1ea1n bi\u1ec3u \u0111\u1ed3 n\u1ebfn chuy\u00ean nghi\u1ec7p, ch\u1ec9 b\u00e1o, c\u00f4ng c\u1ee5 v\u1ebd, b\u1ea3ng giao d\u1ecbch v\u00e0 s\u1ed5 l\u1ec7nh, v\u1edbi lu\u1ed3ng tick tr\u1ef1c ti\u1ebfp.<\/p>\n<p><a href=\"#charting\">Xem th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!-- ============================================================ --><br \/>\n<!-- BOT API                                                      --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"bot-api\">Module l\u1eadp tr\u00ecnh: vi\u1ebft chi\u1ebfn l\u01b0\u1ee3c b\u1eb1ng C#<\/h2>\n<p>Module l\u1eadp tr\u00ecnh bi\u1ebfn SharpTrader th\u00e0nh m\u1ed9t m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n cho c\u00e1c chi\u1ebfn l\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng. M\u1ed9t bot l\u00e0 m\u1ed9t l\u1edbp C# k\u1ebf th\u1eeba t\u1eeb l\u1edbp c\u01a1 s\u1edf <code>Bot<\/code> c\u1ee7a n\u1ec1n t\u1ea3ng v\u00e0 ph\u1ea3n h\u1ed3i c\u00e1c s\u1ef1 ki\u1ec7n: kh\u1edfi t\u1ea1o, m\u1ed7i tick \u0111\u1ebfn, v\u1ecb th\u1ebf \u0111\u01b0\u1ee3c m\u1edf, v\u1ecb th\u1ebf \u0111\u01b0\u1ee3c \u0111\u00f3ng v\u00e0 c\u1eadp nh\u1eadt tr\u1ea1ng th\u00e1i l\u1ec7nh. N\u1ec1n t\u1ea3ng bi\u00ean d\u1ecbch bot, hi\u1ec3n th\u1ecb c\u00e1c tham s\u1ed1 \u0111\u1ea7u v\u00e0o c\u1ee7a b\u1ea1n trong giao di\u1ec7n v\u00e0 ch\u1ea1y n\u00f3 tr\u00ean t\u00e0i kho\u1ea3n th\u1eadt ho\u1eb7c demo song song v\u1edbi c\u00e1c chi\u1ebfn l\u01b0\u1ee3c arbitrage, tin t\u1ee9c v\u00e0 impulse t\u00edch h\u1ee3p s\u1eb5n.<\/p>\n<h3>API cung c\u1ea5p cho b\u1ea1n nh\u1eefng g\u00ec<\/h3>\n<table class=\"dev-tbl\">\n<thead>\n<tr>\n<th>L\u0129nh v\u1ef1c<\/th>\n<th>B\u1ea1n c\u00f3 th\u1ec3 l\u00e0m g\u00ec<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>D\u1eef li\u1ec7u th\u1ecb tr\u01b0\u1eddng<\/td>\n<td>Bid, ask, spread v\u00e0 gi\u00e1 tr\u1ecb point theo t\u1eebng m\u00e3 v\u00e0 t\u1eebng phi\u00ean, th\u00f4ng qua \u0111\u1ed1i t\u01b0\u1ee3ng <code>ticker<\/code>. M\u1ed9t phi\u00ean l\u00e0 m\u1ed9t t\u00e0i kho\u1ea3n broker ho\u1eb7c s\u00e0n \u0111\u00e3 k\u1ebft n\u1ed1i, v\u00ec v\u1eady m\u1ed9t bot c\u00f3 th\u1ec3 theo d\u00f5i v\u00e0 giao d\u1ecbch v\u1edbi nhi\u1ec1u \u0111\u1ed1i t\u00e1c c\u00f9ng l\u00fac theo ch\u1ec9 s\u1ed1 phi\u00ean.<\/td>\n<\/tr>\n<tr>\n<td>L\u1ec7nh v\u00e0 v\u1ecb th\u1ebf<\/td>\n<td><code>sendOrder<\/code> \u0111\u1ec3 kh\u1edbp l\u1ec7nh th\u1ecb tr\u01b0\u1eddng, <code>modifyPositionByID<\/code> cho stop-loss v\u00e0 take-profit, <code>closePositionByID<\/code>, tra c\u1ee9u theo ID ho\u1eb7c theo comment, v\u00e0 danh s\u00e1ch tr\u1ef1c ti\u1ebfp c\u00e1c l\u1ec7nh \u0111ang m\u1edf, \u0111\u00e3 \u0111\u00f3ng v\u00e0 l\u1ec7nh ch\u1edd.<\/td>\n<\/tr>\n<tr>\n<td>Chi ti\u1ebft v\u1ecb th\u1ebf<\/td>\n<td>M\u1ed7i v\u1ecb th\u1ebf ch\u1ee9a gi\u00e1 v\u00e0 th\u1eddi gian m\u1edf, \u0111\u00f3ng, kh\u1ed1i l\u01b0\u1ee3ng, chi\u1ec1u l\u1ec7nh, phi\u00ean, l\u1ee3i nhu\u1eadn, comment, stop-loss, take-profit, c\u00f9ng \u0111\u1ed9 tr\u01b0\u1ee3t gi\u00e1 v\u00e0 th\u1eddi gian kh\u1edbp l\u1ec7nh \u0111o \u0111\u01b0\u1ee3c cho c\u1ea3 hai ch\u00e2n. Ph\u1ea7n cu\u1ed1i c\u00f9ng n\u00e0y cho ph\u00e9p bot th\u00edch \u1ee9ng v\u1edbi c\u00e1ch broker th\u1ef1c s\u1ef1 kh\u1edbp l\u1ec7nh cho b\u1ea1n.<\/td>\n<\/tr>\n<tr>\n<td>Ch\u1ec9 b\u00e1o<\/td>\n<td>C\u00e1c h\u00e0m ch\u1ec9 b\u00e1o t\u00edch h\u1ee3p s\u1eb5n nh\u01b0 EMA v\u00e0 MACD tr\u00ean m\u1ecdi khung th\u1eddi gian, li\u00ean t\u1ee5c \u0111\u01b0\u1ee3c m\u1edf r\u1ed9ng qua c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt n\u1ec1n t\u1ea3ng.<\/td>\n<\/tr>\n<tr>\n<td>Tham s\u1ed1 \u0111\u1ea7u v\u00e0o v\u00e0 ghi log<\/td>\n<td>C\u00e1c thu\u1ed9c t\u00ednh public \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u b\u1eb1ng <code>[PropertyInfo]<\/code> s\u1ebd xu\u1ea5t hi\u1ec7n d\u01b0\u1edbi d\u1ea1ng tham s\u1ed1 c\u00f3 th\u1ec3 ch\u1ec9nh s\u1eeda trong giao di\u1ec7n; <code>writeLog<\/code> ghi v\u00e0o log c\u1ee7a n\u1ec1n t\u1ea3ng; <code>stopBot<\/code> d\u1eebng chi\u1ebfn l\u01b0\u1ee3c t\u1eeb code.<\/td>\n<\/tr>\n<tr>\n<td>Tr\u1ea1ng th\u00e1i t\u00e0i kho\u1ea3n<\/td>\n<td>Balance v\u00e0 equity theo t\u1eebng phi\u00ean cho c\u00e1c quy t\u1eafc r\u1ee7i ro v\u00e0 t\u00ednh kh\u1ed1i l\u01b0\u1ee3ng v\u1ecb th\u1ebf.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>B\u1ed9 khung chi\u1ebfn l\u01b0\u1ee3c t\u1ed1i thi\u1ec3u<\/h3>\n<pre class=\"dev-code\"><span class=\"c\">\/\/ Illustrative skeleton. Names follow the SharpTrader coding library reference.<\/span>\nusing SharpTraderBot;\n\npublic class SpreadGuardBot : Bot\n{\n    [PropertyInfo(0.10, \"Lot size\")]\n    public double Lots { get; set; }\n\n    [PropertyInfo(20, \"Max spread, points\")]\n    public int MaxSpreadPoints { get; set; }\n\n    string _inFlight;                            <span class=\"c\">\/\/ one order in flight per tick<\/span>\n\n    public virtual void OnInit() { writeLog(\"SpreadGuardBot started\"); }\n\n    public virtual void OnTick(NewTickEventArgs args)\n    {\n        int session = 0;                         <span class=\"c\">\/\/ session index = broker account<\/span>\n        string symbol = args.tick.symbol;\n\n        double point  = ticker.getPointValue(session, symbol);\n        double spread = (ticker.getAsk(session, symbol) - ticker.getBid(session, symbol)) \/ point;\n\n        if (spread &gt; MaxSpreadPoints || _inFlight != null) return;\n\n        _inFlight = sendOrder(session, symbol, Lots, OrderSide.BUY, OrderType.MARKET, 0, \"spread-guard\");\n    }\n}<\/pre>\n<div class=\"dev-note\"><strong>Nh\u1eefng \u0111i\u1ec1u n\u00ean bi\u1ebft tr\u01b0\u1edbc khi vi\u1ebft d\u00f2ng code \u0111\u1ea7u ti\u00ean.<\/strong> Sandbox bi\u00ean d\u1ecbch v\u1edbi m\u1ed9t t\u1eadp assembly c\u1ed1 \u0111\u1ecbnh: System, System.Collections, System.Runtime, System.Console v\u00e0 th\u01b0 vi\u1ec7n bot c\u1ee7a SharpTrader. LINQ kh\u00f4ng n\u1eb1m trong s\u1ed1 \u0111\u00f3, v\u00ec v\u1eady h\u00e3y vi\u1ebft v\u00f2ng l\u1eb7p <code>foreach<\/code> th\u00f4ng th\u01b0\u1eddng thay v\u00ec <code>Where<\/code>, <code>Select<\/code> ho\u1eb7c <code>Any<\/code>. Gi\u00e1 t\u1eeb API t\u00ednh theo point c\u1ee7a broker; h\u00e3y nh\u00e2n v\u1edbi gi\u00e1 tr\u1ecb point tr\u01b0\u1edbc khi so s\u00e1nh v\u1edbi ng\u01b0\u1ee1ng c\u1ee7a ri\u00eang b\u1ea1n. V\u00e0 ch\u1ec9 gi\u1eef m\u1ed9t l\u1ec7nh \u0111ang x\u1eed l\u00fd m\u1ed7i tick, \u0111\u01b0\u1ee3c b\u1ea3o v\u1ec7 b\u1eb1ng client order ID tr\u1ea3 v\u1ec1, tr\u1eeb khi b\u1ea1n th\u00edch g\u1ee1 l\u1ed7i c\u00e1c l\u1ea7n kh\u1edbp l\u1ec7nh tr\u00f9ng l\u1eb7p.<\/div>\n<p>T\u00e0i li\u1ec7u tham chi\u1ebfu \u0111\u1ea7y \u0111\u1ee7 v\u1ec1 l\u1edbp, ph\u01b0\u01a1ng th\u1ee9c v\u00e0 s\u1ef1 ki\u1ec7n: <a href=\"https:\/\/sharptrader.arbitragesoftware.net\/bot\/\">t\u00e0i li\u1ec7u th\u01b0 vi\u1ec7n l\u1eadp tr\u00ecnh SharpTrader<\/a>. Module l\u1eadp tr\u00ecnh l\u00e0 ti\u1ec7n \u00edch b\u1ed5 sung cho SharpTrader Pro; xem <a href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-forex-crypto-arbitrage\/\">trang SharpTrader Pro<\/a> \u0111\u1ec3 bi\u1ebft g\u00f3i hi\u1ec7n t\u1ea1i.<\/p>\n<p><!-- ============================================================ --><br \/>\n<!-- EASYFIX                                                      --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"easyfix\">EasyFIX API: k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m c\u1ee7a ri\u00eang b\u1ea1n v\u1edbi SharpTrader<\/h2>\n<p>Kh\u00f4ng ph\u1ea3i m\u1ecdi th\u1ee9 \u0111\u1ec1u n\u00ean n\u1eb1m trong n\u1ec1n t\u1ea3ng. N\u1ebfu b\u1ea1n \u0111\u00e3 v\u1eadn h\u00e0nh m\u1ed9t b\u1ed9 m\u00e1y t\u00edn hi\u1ec7u, m\u1ed9t h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd r\u1ee7i ro, m\u1ed9t giao di\u1ec7n t\u00f9y ch\u1ec9nh ho\u1eb7c m\u1ed9t quy tr\u00ecnh nghi\u00ean c\u1ee9u, EasyFIX cho ph\u00e9p ch\u00fang giao ti\u1ebfp v\u1edbi SharpTrader qua m\u1ed9t giao th\u1ee9c FIX \u0111\u01a1n gi\u1ea3n h\u00f3a. SharpTrader tr\u1edf th\u00e0nh c\u1ed5ng kh\u1edbp l\u1ec7nh c\u1ee7a b\u1ea1n: n\u00f3 gi\u1eef c\u00e1c k\u1ebft n\u1ed1i t\u1edbi broker v\u00e0 s\u00e0n giao d\u1ecbch, c\u00f2n b\u1ea1n g\u1eedi l\u1ec7nh v\u00e0 nh\u1eadn b\u00e1o gi\u00e1, k\u1ebft qu\u1ea3 kh\u1edbp l\u1ec7nh t\u1eeb code c\u1ee7a ri\u00eang m\u00ecnh, b\u1eb1ng b\u1ea5t k\u1ef3 ng\u00f4n ng\u1eef n\u00e0o b\u1ea1n mu\u1ed1n.<\/p>\n<table class=\"dev-twocol\">\n<tbody>\n<tr>\n<td class=\"dev-col\">\n<h3>EasyFIX truy\u1ec1n t\u1ea3i nh\u1eefng g\u00ec<\/h3>\n<ul>\n<li>D\u1eef li\u1ec7u th\u1ecb tr\u01b0\u1eddng: b\u00e1o gi\u00e1 cho c\u00e1c m\u00e3 b\u1ea1n \u0111\u0103ng k\u00fd, t\u1eeb b\u1ea5t k\u1ef3 phi\u00ean n\u00e0o SharpTrader \u0111ang m\u1edf.<\/li>\n<li>Lu\u1ed3ng l\u1ec7nh: l\u1ec7nh m\u1edbi, s\u1eeda \u0111\u1ed5i v\u00e0 \u0111\u00f3ng l\u1ec7nh \u0111\u01b0\u1ee3c \u0111\u1ecbnh tuy\u1ebfn t\u1edbi phi\u00ean \u0111\u00e3 ch\u1ecdn.<\/li>\n<li>B\u00e1o c\u00e1o kh\u1edbp l\u1ec7nh: k\u1ebft qu\u1ea3 kh\u1edbp, t\u1eeb ch\u1ed1i, tr\u1ea1ng th\u00e1i v\u1ecb th\u1ebf v\u00e0 l\u1ec7nh \u0111\u01b0\u1ee3c g\u1eedi v\u1ec1 \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n.<\/li>\n<li>Truy c\u1eadp v\u00e0o c\u00f9ng h\u01a1n 50 connector FIX API t\u1edbi broker v\u00e0 c\u00e1c k\u1ebft n\u1ed1i s\u00e0n crypto l\u1edbn m\u00e0 SharpTrader s\u1eed d\u1ee5ng cho c\u00e1c chi\u1ebfn l\u01b0\u1ee3c c\u1ee7a ch\u00ednh n\u00f3.<\/li>\n<\/ul>\n<\/td>\n<td class=\"dev-col\">\n<h3>C\u00e1c t\u00edch h\u1ee3p \u0111i\u1ec3n h\u00ecnh<\/h3>\n<ul>\n<li>M\u1ed9t chi\u1ebfn l\u01b0\u1ee3c b\u00ean ngo\u00e0i vi\u1ebft b\u1eb1ng Python, Java, C++ ho\u1eb7c b\u1ea5t k\u1ef3 ng\u00f4n ng\u1eef n\u00e0o c\u00f3 socket v\u00e0 b\u1ed9 t\u1ea1o th\u00f4ng \u0111i\u1ec7p FIX.<\/li>\n<li>M\u1ed9t l\u1edbp qu\u1ea3n l\u00fd r\u1ee7i ro to\u00e0n c\u00f4ng ty gi\u00e1m s\u00e1t nhi\u1ec1u phi\u00ean b\u1ea3n SharpTrader.<\/li>\n<li>M\u1ed9t giao di\u1ec7n giao d\u1ecbch ho\u1eb7c dashboard t\u00f9y ch\u1ec9nh tr\u00ean n\u1ec1n t\u1ea3ng kh\u1edbp l\u1ec7nh SharpTrader.<\/li>\n<li>Ghi l\u1ea1i b\u00e1o gi\u00e1 v\u00e0 k\u1ebft qu\u1ea3 kh\u1edbp l\u1ec7nh cho nghi\u00ean c\u1ee9u, backtest v\u00e0 ki\u1ec3m tra ch\u1ea5t l\u01b0\u1ee3ng kh\u1edbp l\u1ec7nh c\u1ee7a broker.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>EasyFIX l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ng\u1eef FIX \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i: n\u00f3 gi\u1eef m\u00f4 h\u00ecnh th\u00f4ng \u0111i\u1ec7p m\u00e0 c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u00e3 quen thu\u1ed9c, \u0111\u1ed3ng th\u1eddi b\u1ecf \u0111i nh\u1eefng th\u1ee7 t\u1ee5c r\u01b0\u1eddm r\u00e0 m\u00e0 m\u1ed9t k\u1ebft n\u1ed1i t\u1eeb ng\u01b0\u1eddi d\u00f9ng c\u00e1 nh\u00e2n t\u1edbi gateway kh\u00f4ng c\u1ea7n \u0111\u1ebfn. \u0110\u1eb7c t\u1ea3, phi\u00ean m\u1eabu v\u00e0 k\u1ebft n\u1ed1i th\u1eed nghi\u1ec7m \u0111\u01b0\u1ee3c cung c\u1ea5p cho ng\u01b0\u1eddi d\u00f9ng SharpTrader Pro v\u00e0 Lite theo y\u00eau c\u1ea7u. H\u00e3y vi\u1ebft t\u1edbi <a href=\"mailto:support@bjftradinggroup.com\">support@bjftradinggroup.com<\/a> k\u00e8m m\u00f4 t\u1ea3 ng\u1eafn v\u1ec1 nh\u1eefng g\u00ec b\u1ea1n \u0111\u1ecbnh k\u1ebft n\u1ed1i.<\/p>\n<p><!-- ============================================================ --><br \/>\n<!-- CHARTING LIBRARY                                             --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"charting\">BjfChart: th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 \u0111\u1ee9ng sau c\u00e1c bi\u1ec3u \u0111\u1ed3 SharpTrader m\u1edbi<\/h2>\n<p>N\u0103m 2026, ch\u00fang t\u00f4i \u0111\u00e3 x\u00e2y d\u1ef1ng l\u1ea1i ho\u00e0n to\u00e0n ph\u1ea7n bi\u1ec3u \u0111\u1ed3 trong SharpTrader, v\u00e0 b\u1ed9 m\u00e1y \u0111\u1ee9ng sau n\u00f3 \u0111\u01b0\u1ee3c cung c\u1ea5p cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n d\u01b0\u1edbi d\u1ea1ng m\u1ed9t th\u01b0 vi\u1ec7n \u0111\u1ed9c l\u1eadp. BjfChart l\u00e0 m\u1ed9t control bi\u1ec3u \u0111\u1ed3 n\u1ebfn t\u0103ng t\u1ed1c GPU cho WinForms, x\u00e2y d\u1ef1ng tr\u00ean SkiaSharp. N\u00f3 hi\u1ec3n th\u1ecb h\u00e0ng ch\u1ee5c ngh\u00ecn thanh n\u1ebfn \u1edf t\u1ed1c \u0111\u1ed9 60 khung h\u00ecnh m\u1ed7i gi\u00e2y v\u00e0 \u0111\u01b0\u1ee3c ph\u00e2n ph\u1ed1i d\u01b0\u1edbi d\u1ea1ng m\u1ed9t t\u1ec7p <code>BjfChart.dll<\/code> duy nh\u1ea5t nh\u1eafm t\u1edbi c\u1ea3 <code>net48<\/code> v\u00e0 <code>net8.0-windows<\/code>, v\u00ec v\u1eady n\u00f3 t\u00edch h\u1ee3p \u0111\u01b0\u1ee3c v\u00e0o c\u1ea3 c\u00e1c terminal .NET Framework c\u0169 l\u1eabn c\u00e1c \u1ee9ng d\u1ee5ng .NET 8 m\u1edbi.<\/p>\n<div class=\"dev-video\">\n<p class=\"dev-video-title\">Video: SharpTrader Charting, th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 m\u1edbi v\u00e0 h\u01b0\u1edbng d\u1eabn giao d\u1ecbch th\u1ee7 c\u00f4ng<\/p>\n<div class=\"dev-video-embed\">\n<iframe src=\"https:\/\/www.youtube-nocookie.com\/embed\/QBjWnSRnrxs\" title=\"SharpTrader Charting: th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 m\u1edbi v\u00e0 h\u01b0\u1edbng d\u1eabn giao d\u1ecbch th\u1ee7 c\u00f4ng\" loading=\"lazy\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div>\n<p class=\"dev-video-caption\">T\u00e1m khung th\u1eddi gian, ch\u1ec9 b\u00e1o, c\u00f4ng c\u1ee5 Fibonacci v\u00e0 xu h\u01b0\u1edbng, phi\u1ebfu l\u1ec7nh v\u1edbi \u0111\u01b0\u1eddng stop-loss v\u00e0 take-profit c\u00f3 th\u1ec3 k\u00e9o th\u1ea3, v\u00e0 bi\u1ec3u \u0111\u1ed3 \u0111a broker, \u0111\u01b0\u1ee3c tr\u00ecnh di\u1ec5n tr\u1ef1c ti\u1ebfp trong SharpTrader. <a href=\"https:\/\/youtu.be\/QBjWnSRnrxs\">M\u1edf tr\u00ean YouTube<\/a><\/p>\n<\/div>\n<h3>Th\u01b0 vi\u1ec7n bao g\u1ed3m nh\u1eefng g\u00ec<\/h3>\n<table class=\"dev-twocol\">\n<tbody>\n<tr>\n<td class=\"dev-col\">\n<h3>B\u1ed9 m\u00e1y bi\u1ec3u \u0111\u1ed3<\/h3>\n<ul>\n<li>Hi\u1ec3n th\u1ecb n\u1ebfn v\u1edbi b\u1ea3ng ph\u1ee5 kh\u1ed1i l\u01b0\u1ee3ng, crosshair, nh\u00e3n gi\u00e1 tr\u1ef1c ti\u1ebfp v\u00e0 ch\u00fa gi\u1ea3i OHLC n\u1ed5i.<\/li>\n<li>Ph\u00f3ng to b\u1eb1ng con l\u0103n chu\u1ed9t gi\u1eef c\u1ed1 \u0111\u1ecbnh thanh n\u1ebfn d\u01b0\u1edbi con tr\u1ecf, k\u00e9o b\u1eb1ng chu\u1ed9t \u0111\u1ec3 di chuy\u1ec3n.<\/li>\n<li>Lu\u1ed3ng d\u1eef li\u1ec7u th\u1eddi gian th\u1ef1c: <code>PushTick<\/code> g\u1ed9p m\u1ed9t tick v\u00e0o thanh n\u1ebfn cu\u1ed1i c\u00f9ng, <code>FeedTick<\/code> t\u1ef1 \u0111\u1ed9ng gom tick th\u00e0nh n\u1ebfn v\u1edbi b\u1ea5t k\u1ef3 kho\u1ea3ng th\u1eddi gian n\u00e0o.<\/li>\n<li>Ch\u1ed3ng nhi\u1ec1u m\u00e3 \u0111\u1ec3 so s\u00e1nh, v\u1edbi thang \u0111o \u0111\u1ed9c l\u1eadp ho\u1eb7c d\u00f9ng chung.<\/li>\n<li>L\u01b0u b\u1ed1 c\u1ee5c ra JSON: ch\u1ec9 b\u00e1o, h\u00ecnh v\u1ebd, l\u1edbp ch\u1ed3ng v\u00e0 v\u00f9ng hi\u1ec3n th\u1ecb \u0111\u01b0\u1ee3c l\u01b0u v\u00e0 kh\u00f4i ph\u1ee5c.<\/li>\n<li>Giao di\u1ec7n t\u1ed1i (xanh navy v\u00e0 v\u00e0ng BJF) v\u00e0 s\u00e1ng, chuy\u1ec3n \u0111\u1ed5i khi \u0111ang ch\u1ea1y, m\u1ecdi m\u00e0u s\u1eafc \u0111\u1ec1u c\u00f3 th\u1ec3 ch\u1ec9nh s\u1eeda.<\/li>\n<li>Watermark t\u1eeb t\u1ec7p logo, URL ho\u1eb7c v\u0103n b\u1ea3n ph\u00eda sau c\u00e1c n\u1ebfn.<\/li>\n<\/ul>\n<\/td>\n<td class=\"dev-col\">\n<h3>L\u1edbp giao d\u1ecbch<\/h3>\n<ul>\n<li><code>TradingPanel<\/code>: phi\u1ebfu l\u1ec7nh (mua v\u00e0 b\u00e1n theo gi\u00e1 th\u1ecb tr\u01b0\u1eddng, limit ho\u1eb7c stop, kh\u1ed1i l\u01b0\u1ee3ng, gi\u00e1, stop-loss, take-profit) v\u1edbi hi\u1ec3n th\u1ecb tr\u1ef1c ti\u1ebfp v\u1ecb th\u1ebf v\u00e0 P\/L.<\/li>\n<li>C\u00e1c \u0111\u01b0\u1eddng v\u00e0o l\u1ec7nh, stop-loss, take-profit v\u00e0 l\u1ec7nh ch\u1edd \u0111\u01b0\u1ee3c v\u1ebd t\u1ef1 \u0111\u1ed9ng tr\u00ean bi\u1ec3u \u0111\u1ed3; stop-loss v\u00e0 take-profit c\u00f3 th\u1ec3 k\u00e9o th\u1ea3 v\u00e0 ph\u00e1t sinh s\u1ef1 ki\u1ec7n khi th\u1ea3 chu\u1ed9t.<\/li>\n<li>B\u1ea3ng n\u00e0y t\u1ef1 n\u00f3 kh\u00f4ng th\u1ef1c thi b\u1ea5t k\u1ef3 l\u1ec7nh n\u00e0o. N\u00f3 ph\u00e1t sinh s\u1ef1 ki\u1ec7n cho l\u1edbp kh\u1edbp l\u1ec7nh c\u1ee7a b\u1ea1n, d\u00f9 \u0111\u00f3 l\u00e0 phi\u00ean FIX API, c\u1ea7u n\u1ed1i broker hay SharpTrader th\u00f4ng qua EasyFIX.<\/li>\n<li><code>OrderBookPanel<\/code>: b\u1ea3ng \u0111\u1ed9 s\u00e2u th\u1ecb tr\u01b0\u1eddng v\u1edbi kh\u1ed1i l\u01b0\u1ee3ng theo t\u1eebng m\u1ee9c gi\u00e1 v\u00e0 thanh \u0111\u1ed9 s\u00e2u t\u1ef7 l\u1ec7; nh\u1ea5p v\u00e0o m\u1ed9t m\u1ee9c gi\u00e1 \u0111\u1ec3 \u0111i\u1ec1n s\u1eb5n gi\u00e1 limit.<\/li>\n<li>C\u00e1c \u0111\u01b0\u1eddng gi\u00e1 t\u00f9y \u00fd theo ID cho l\u1ec7nh broker, v\u1edbi t\u00f9y ch\u1ecdn k\u00e9o th\u1ea3.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Ch\u1ec9 b\u00e1o v\u00e0 c\u00f4ng c\u1ee5 v\u1ebd<\/h3>\n<table class=\"dev-tbl\">\n<thead>\n<tr>\n<th>Nh\u00f3m<\/th>\n<th>Bao g\u1ed3m<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ch\u1ec9 b\u00e1o ch\u1ed3ng tr\u00ean bi\u1ec3u \u0111\u1ed3<\/td>\n<td>SMA, EMA, WMA, VWAP, Bollinger Bands, k\u00eanh Keltner, k\u00eanh Donchian, Envelope, Parabolic SAR.<\/td>\n<\/tr>\n<tr>\n<td>Ch\u1ec9 b\u00e1o \u1edf b\u1ea3ng ph\u1ee5<\/td>\n<td>RSI, MACD k\u00e8m histogram, Stochastic, ATR, CCI, ADX \/ DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Standard Deviation, On-Balance Volume, Money Flow Index.<\/td>\n<\/tr>\n<tr>\n<td>\u0110\u1ed9 ch\u00ednh x\u00e1c<\/td>\n<td>Ph\u00e9p t\u00ednh ch\u1ec9 b\u00e1o \u0111\u01b0\u1ee3c \u0111\u1ed1i chi\u1ebfu v\u1edbi c\u00e1c b\u1ea3n tri\u1ec3n khai tham chi\u1ebfu \u0111\u1ed9c l\u1eadp: SMA, EMA, Bollinger, RSI, ATR, Stochastic v\u00e0 CCI kh\u1edbp \u0111\u1ebfn 1e-9; MACD, ADX, DI, Williams %R, MFI v\u00e0 OBV \u0111\u01b0\u1ee3c ki\u1ec3m ch\u1ee9ng v\u1ec1 t\u00ednh \u0111\u00fang \u0111\u1eafn v\u00e0 ph\u1ea1m vi gi\u00e1 tr\u1ecb.<\/td>\n<\/tr>\n<tr>\n<td>C\u00f4ng c\u1ee5 v\u1ebd<\/td>\n<td>\u0110\u01b0\u1eddng xu h\u01b0\u1edbng, tia, \u0111\u01b0\u1eddng k\u00e9o d\u00e0i, \u0111\u01b0\u1eddng ngang v\u00e0 tia ngang, \u0111\u01b0\u1eddng d\u1ecdc, m\u0169i t\u00ean, k\u00eanh song song, h\u00ecnh ch\u1eef nh\u1eadt, h\u00ecnh elip, Fibonacci tho\u00e1i lui, Fibonacci m\u1edf r\u1ed9ng v\u00e0 c\u00f4ng c\u1ee5 \u0111o hi\u1ec3n th\u1ecb ch\u00eanh l\u1ec7ch gi\u00e1, ph\u1ea7n tr\u0103m thay \u0111\u1ed5i v\u00e0 s\u1ed1 thanh n\u1ebfn. T\u1ea5t c\u1ea3 \u0111\u1ec1u neo theo t\u1ecda \u0111\u1ed9 d\u1eef li\u1ec7u, n\u00ean ch\u00fang gi\u1eef nguy\u00ean v\u1ecb tr\u00ed khi ph\u00f3ng to v\u00e0 di chuy\u1ec3n.<\/td>\n<\/tr>\n<tr>\n<td>Kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng<\/td>\n<td>Tri\u1ec3n khai <code>IIndicator<\/code> (ho\u1eb7c k\u1ebf th\u1eeba <code>IndicatorBase<\/code>), tr\u1ea3 v\u1ec1 m\u1ed9t ho\u1eb7c nhi\u1ec1u chu\u1ed7i d\u1eef li\u1ec7u c\u0103n theo danh s\u00e1ch n\u1ebfn, ch\u1ecdn hi\u1ec3n th\u1ecb ch\u1ed3ng ho\u1eb7c b\u1ea3ng ph\u1ee5, d\u1ea1ng \u0111\u01b0\u1eddng, histogram ho\u1eb7c ch\u1ea5m, v\u00e0 \u0111\u0103ng k\u00fd \u0111\u1ec3 ch\u1ec9 b\u00e1o xu\u1ea5t hi\u1ec7n trong menu chu\u1ed9t ph\u1ea3i v\u00e0 trong c\u00e1c b\u1ed1 c\u1ee5c \u0111\u00e3 l\u01b0u.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>M\u01b0\u1eddi d\u00f2ng code cho m\u1ed9t bi\u1ec3u \u0111\u1ed3 ho\u1ea1t \u0111\u1ed9ng<\/h3>\n<pre class=\"dev-code\">using BjfChart;\nusing BjfChart.Indicators;\nusing BjfChart.Models;\n\nvar chart = new ChartControl { Dock = DockStyle.Fill };\nform.Controls.Add(chart);\n\nchart.SetData(myCandles);                          <span class=\"c\">\/\/ IEnumerable&lt;Candle&gt;<\/span>\nchart.AddIndicator(\"ema\");\nchart.AddIndicator(\"bb\");\nchart.AddIndicator(\"macd\");                        <span class=\"c\">\/\/ draws in its own sub-panel<\/span>\nchart.AddIndicator(new RsiIndicator(21));          <span class=\"c\">\/\/ or by type, with custom parameters<\/span>\n\nchart.CandleInterval = TimeSpan.FromMinutes(15);   <span class=\"c\">\/\/ enables auto-bucketing<\/span>\nchart.FeedTick(DateTime.UtcNow, price, volume);    <span class=\"c\">\/\/ rolls a new candle at each boundary<\/span>\n\nchart.StartDrawing(DrawingKind.FibRetracement);    <span class=\"c\">\/\/ next drag draws a fib retracement<\/span>\nchart.SaveLayout(@\"C:\\layouts\\eurusd.json\");\n\n<span class=\"g\">\/\/ Trading panel wired to your execution layer<\/span>\nvar panel = new TradingPanel { Dock = DockStyle.Right, Symbol = \"EURUSD\" };\npanel.AttachChart(chart);                          <span class=\"c\">\/\/ draws entry \/ SL \/ TP lines on the chart<\/span>\npanel.OrderSubmitted += (s, req) =&gt; myExecutionEngine.Send(req);\npanel.PositionModified += (s, pos) =&gt; broker.Modify(pos);   <span class=\"c\">\/\/ after a drag of SL or TP<\/span><\/pre>\n<p>M\u1ecdi th\u1ee9 trong code c\u0169ng c\u00f3 th\u1ec3 truy c\u1eadp t\u1eeb menu chu\u1ed9t ph\u1ea3i tr\u00ean bi\u1ec3u \u0111\u1ed3: th\u00eam ho\u1eb7c x\u00f3a ch\u1ec9 b\u00e1o, ch\u1ecdn c\u00f4ng c\u1ee5 v\u1ebd, qu\u1ea3n l\u00fd l\u1edbp ch\u1ed3ng, \u0111\u1ed5i giao di\u1ec7n, l\u01b0u ho\u1eb7c t\u1ea3i b\u1ed1 c\u1ee5c. \u0110\u1ec3 build, th\u01b0 vi\u1ec7n y\u00eau c\u1ea7u Windows v\u00e0 .NET SDK 8.0 tr\u1edf l\u00ean; NuGet t\u1ef1 \u0111\u1ed9ng kh\u00f4i ph\u1ee5c SkiaSharp. K\u00e8m theo l\u00e0 m\u1ed9t \u1ee9ng d\u1ee5ng demo c\u00f3 th\u1ec3 ch\u1ea1y ngay v\u1edbi tick tr\u1ef1c ti\u1ebfp m\u00f4 ph\u1ecfng.<\/p>\n<div class=\"dev-note\"><strong>S\u1eed d\u1ee5ng BjfChart trong s\u1ea3n ph\u1ea9m c\u1ee7a b\u1ea1n.<\/strong> Th\u01b0 vi\u1ec7n \u0111\u01b0\u1ee3c c\u1ea5p ph\u00e9p cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n SharpTrader, \u0111\u1ed1i t\u00e1c white-label v\u00e0 nh\u00e0 cung c\u1ea5p terminal b\u00ean th\u1ee9 ba. V\u1edbi c\u00e1c c\u00e2u h\u1ecfi v\u1ec1 c\u00e1ch s\u1eed d\u1ee5ng, \u0111i\u1ec1u kho\u1ea3n c\u1ea5p ph\u00e9p, b\u1ea3n build demo ho\u1eb7c h\u1ed7 tr\u1ee3 t\u00edch h\u1ee3p v\u1edbi ngu\u1ed3n d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n, h\u00e3y li\u00ean h\u1ec7 tr\u1ef1c ti\u1ebfp v\u1edbi ch\u00fang t\u00f4i qua th\u00f4ng tin b\u00ean d\u01b0\u1edbi. H\u00e3y cho ch\u00fang t\u00f4i bi\u1ebft b\u1ea1n d\u00f9ng target .NET n\u00e0o v\u00e0 ngu\u1ed3n d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n tr\u00f4ng nh\u01b0 th\u1ebf n\u00e0o, ch\u00fang t\u00f4i s\u1ebd tr\u1ea3 l\u1eddi trong v\u00f2ng m\u1ed9t ng\u00e0y l\u00e0m vi\u1ec7c.<\/div>\n<p><!-- ============================================================ --><br \/>\n<!-- CONTACT                                                      --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"contact\">Li\u00ean h\u1ec7 d\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n<\/h2>\n<p>M\u1ecdi c\u00e2u h\u1ecfi c\u1ee7a nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u1ec1u \u0111\u01b0\u1ee3c chuy\u1ec3n t\u1edbi ch\u00ednh \u0111\u1ed9i ng\u0169 x\u00e2y d\u1ef1ng n\u1ec1n t\u1ea3ng. V\u1edbi c\u00e2u h\u1ecfi v\u1ec1 bot API v\u00e0 EasyFIX, h\u00e3y ghi r\u00f5 phi\u00ean b\u1ea3n SharpTrader v\u00e0 lo\u1ea1i t\u00e0i kho\u1ea3n; v\u1edbi BjfChart, h\u00e3y ghi r\u00f5 target .NET v\u00e0 ngu\u1ed3n d\u1eef li\u1ec7u.<\/p>\n<table class=\"dev-contact\">\n<tbody>\n<tr>\n<td><span class=\"k\">Email<\/span><span class=\"v\"><a href=\"mailto:support@bjftradinggroup.com\">support@bjftradinggroup.com<\/a><\/span><span class=\"s\">Ph\u00f9 h\u1ee3p nh\u1ea5t cho code m\u1eabu, \u0111\u1eb7c t\u1ea3 v\u00e0 c\u1ea5p ph\u00e9p<\/span><\/td>\n<td><span class=\"k\">\u0110i\u1ec7n tho\u1ea1i<\/span><span class=\"v\"><a href=\"tel:+19055995507\">+1 (905) 599-5507<\/a><\/span><span class=\"s\">Th\u1ee9 Hai \u0111\u1ebfn th\u1ee9 S\u00e1u, 9:00 \u0111\u1ebfn 18:00 gi\u1edd mi\u1ec1n \u0110\u00f4ng (Toronto)<\/span><\/td>\n<td><span class=\"k\">Telegram<\/span><span class=\"v\"><a href=\"https:\/\/t.me\/bjftradinggroup\">t.me\/bjftradinggroup<\/a><\/span><span class=\"s\">C\u00e2u h\u1ecfi nhanh v\u00e0 trao \u0111\u1ed5i ti\u1ebfp theo<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. Li\u00ean h\u1ec7 chung: <a href=\"https:\/\/bjftradinggroup.com\/contacts\/\">trang li\u00ean h\u1ec7<\/a>.<\/p>\n<p><!-- ============================================================ --><br \/>\n<!-- FAQ                                                          --><br \/>\n<!-- ============================================================ --><\/p>\n<h2 id=\"faq\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p<\/h2>\n<div class=\"dev-faq\">\n<details>\n<summary>Bot SharpTrader s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef n\u00e0o?<\/summary>\n<div class=\"a\">C#. M\u1ed9t bot l\u00e0 m\u1ed9t l\u1edbp k\u1ebf th\u1eeba l\u1edbp c\u01a1 s\u1edf Bot c\u1ee7a n\u1ec1n t\u1ea3ng v\u00e0 tri\u1ec3n khai c\u00e1c tr\u00ecnh x\u1eed l\u00fd s\u1ef1 ki\u1ec7n cho kh\u1edfi t\u1ea1o, tick, thay \u0111\u1ed5i v\u1ecb th\u1ebf v\u00e0 c\u1eadp nh\u1eadt tr\u1ea1ng th\u00e1i l\u1ec7nh. N\u00f3 \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch trong SharpTrader v\u00e0 ch\u1ea1y song song v\u1edbi c\u00e1c chi\u1ebfn l\u01b0\u1ee3c t\u00edch h\u1ee3p s\u1eb5n.<\/div>\n<\/details>\n<details>\n<summary>M\u1ed9t bot c\u00f3 th\u1ec3 giao d\u1ecbch tr\u00ean nhi\u1ec1u broker ho\u1eb7c s\u00e0n c\u00f9ng l\u00fac kh\u00f4ng?<\/summary>\n<div class=\"a\">C\u00f3. M\u1ecdi l\u1eddi g\u1ecdi d\u1eef li\u1ec7u th\u1ecb tr\u01b0\u1eddng v\u00e0 l\u1ec7nh \u0111\u1ec1u nh\u1eadn m\u1ed9t ch\u1ec9 s\u1ed1 phi\u00ean, v\u00e0 m\u1ed9t phi\u00ean l\u00e0 m\u1ed9t t\u00e0i kho\u1ea3n broker ho\u1eb7c s\u00e0n \u0111\u00e3 k\u1ebft n\u1ed1i. Bot c\u00f3 th\u1ec3 \u0111\u1ecdc b\u00e1o gi\u00e1 t\u1eeb m\u1ed9t phi\u00ean v\u00e0 g\u1eedi l\u1ec7nh t\u1edbi phi\u00ean kh\u00e1c, \u0111\u00f3 l\u00e0 c\u00e1ch vi\u1ebft logic \u0111a broker v\u00e0 li\u00ean s\u00e0n.<\/div>\n<\/details>\n<details>\n<summary>EasyFIX API l\u00e0 g\u00ec v\u00e0 d\u00e0nh cho ai?<\/summary>\n<div class=\"a\">EasyFIX l\u00e0 m\u1ed9t giao th\u1ee9c FIX \u0111\u01a1n gi\u1ea3n h\u00f3a cho ph\u00e9p ph\u1ea7n m\u1ec1m b\u00ean ngo\u00e0i k\u1ebft n\u1ed1i v\u1edbi SharpTrader nh\u01b0 m\u1ed9t c\u1ed5ng kh\u1edbp l\u1ec7nh. N\u00f3 d\u00e0nh cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n gi\u1eef b\u1ed9 m\u00e1y ri\u00eang b\u00ean ngo\u00e0i n\u1ec1n t\u1ea3ng v\u00e0 mu\u1ed1n nh\u1eadn b\u00e1o gi\u00e1, g\u1eedi l\u1ec7nh qua c\u00e1c connector broker v\u00e0 s\u00e0n giao d\u1ecbch c\u1ee7a SharpTrader. \u0110\u1eb7c t\u1ea3 v\u00e0 k\u1ebft n\u1ed1i th\u1eed nghi\u1ec7m \u0111\u01b0\u1ee3c cung c\u1ea5p theo y\u00eau c\u1ea7u.<\/div>\n<\/details>\n<details>\n<summary>BjfChart c\u00f3 \u0111\u01b0\u1ee3c cung c\u1ea5p ri\u00eang, t\u00e1ch kh\u1ecfi SharpTrader kh\u00f4ng?<\/summary>\n<div class=\"a\">C\u00f3. BjfChart l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n .NET \u0111\u1ed9c l\u1eadp, m\u1ed9t DLL duy nh\u1ea5t nh\u1eafm t\u1edbi net48 v\u00e0 net8.0-windows, x\u00e2y d\u1ef1ng tr\u00ean SkiaSharp. N\u00f3 \u0111\u01b0\u1ee3c c\u1ea5p ph\u00e9p cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n SharpTrader, \u0111\u1ed1i t\u00e1c white-label v\u00e0 nh\u00e0 cung c\u1ea5p terminal. Li\u00ean h\u1ec7 support@bjftradinggroup.com \u0111\u1ec3 bi\u1ebft \u0111i\u1ec1u kho\u1ea3n v\u00e0 nh\u1eadn b\u1ea3n build demo.<\/div>\n<\/details>\n<details>\n<summary>B\u1ea3ng giao d\u1ecbch c\u1ee7a BjfChart c\u00f3 t\u1ef1 th\u1ef1c thi l\u1ec7nh kh\u00f4ng?<\/summary>\n<div class=\"a\">Kh\u00f4ng. B\u1ea3ng n\u00e0y ph\u00e1t sinh s\u1ef1 ki\u1ec7n (l\u1ec7nh \u0111\u01b0\u1ee3c g\u1eedi, y\u00eau c\u1ea7u \u0111\u00f3ng v\u1ecb th\u1ebf, v\u1ecb th\u1ebf \u0111\u01b0\u1ee3c s\u1eeda sau khi k\u00e9o stop-loss ho\u1eb7c take-profit) v\u00e0 \u1ee9ng d\u1ee5ng ch\u1ee7 \u0111\u1ecbnh tuy\u1ebfn ch\u00fang t\u1edbi l\u1edbp kh\u1edbp l\u1ec7nh c\u1ee7a ri\u00eang n\u00f3, ch\u1eb3ng h\u1ea1n phi\u00ean FIX API, c\u1ea7u n\u1ed1i broker ho\u1eb7c SharpTrader th\u00f4ng qua EasyFIX.<\/div>\n<\/details>\n<details>\n<summary>T\u00f4i c\u00f3 th\u1ec3 th\u00eam ch\u1ec9 b\u00e1o c\u1ee7a ri\u00eang m\u00ecnh v\u00e0o BjfChart kh\u00f4ng?<\/summary>\n<div class=\"a\">C\u00f3. Tri\u1ec3n khai interface IIndicator ho\u1eb7c k\u1ebf th\u1eeba IndicatorBase, tr\u1ea3 v\u1ec1 m\u1ed9t ho\u1eb7c nhi\u1ec1u chu\u1ed7i d\u1eef li\u1ec7u c\u0103n theo danh s\u00e1ch n\u1ebfn, ch\u1ecdn hi\u1ec3n th\u1ecb ch\u1ed3ng ho\u1eb7c b\u1ea3ng ph\u1ee5, v\u00e0 \u0111\u0103ng k\u00fd ch\u1ec9 b\u00e1o \u0111\u1ec3 n\u00f3 xu\u1ea5t hi\u1ec7n trong menu chu\u1ed9t ph\u1ea3i v\u00e0 \u0111\u01b0\u1ee3c l\u01b0u trong b\u1ed1 c\u1ee5c.<\/div>\n<\/details>\n<details>\n<summary>M\u00e3 ngu\u1ed3n c\u1ee7a SharpTrader ho\u1eb7c BjfChart c\u00f3 \u0111\u01b0\u1ee3c b\u00e1n kh\u00f4ng?<\/summary>\n<div class=\"a\">Kh\u00f4ng. BJF Trading Group c\u1ea5p ph\u00e9p c\u00e1c b\u1ea3n build \u0111\u00e3 bi\u00ean d\u1ecbch v\u00e0 cung c\u1ea5p quy\u1ec1n truy c\u1eadp API, t\u00e0i li\u1ec7u v\u00e0 h\u1ed7 tr\u1ee3. M\u00e3 ngu\u1ed3n kh\u00f4ng \u0111\u01b0\u1ee3c b\u00e1n ho\u1eb7c ti\u1ebft l\u1ed9 theo b\u1ea5t k\u1ef3 ch\u01b0\u01a1ng tr\u00ecnh n\u00e0o.<\/div>\n<\/details>\n<\/div>\n<p><!-- ============================================================ --><br \/>\n<!-- Newsletter signup                                            --><br \/>\n<!-- ============================================================ --><\/p>\n<div class=\"dev-signup\">\n<h3>\u0110\u0103ng k\u00fd nh\u1eadn nghi\u00ean c\u1ee9u giao d\u1ecbch t\u1eeb BJF<\/h3>\n<p>B\u00e0i vi\u1ebft m\u1edbi, t\u00e0i li\u1ec7u nghi\u00ean c\u1ee9u v\u00e0 ph\u00e1t h\u00e0nh s\u1ea3n ph\u1ea9m, \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn ngay khi ch\u00fang t\u00f4i xu\u1ea5t b\u1ea3n.<\/p>\n<div class='_form_31'><\/div><script type='text\/javascript' src='https:\/\/bjftradinggroup.activehosted.com\/f\/embed.php?static=0&id=31&6AC58C729EDC7&nostyles=0&preview=0'><\/script><\/div>\n<p><!-- ============================================================ --><br \/>\n<!-- FINAL CTA                                                    --><br \/>\n<!-- ============================================================ --><\/p>\n<div class=\"dev-cta\">\n<h2>H\u00e3y cho ch\u00fang t\u00f4i bi\u1ebft b\u1ea1n \u0111ang x\u00e2y d\u1ef1ng g\u00ec<\/h2>\n<p>M\u1ed9t bot cho m\u1ed9t \u0111\u1eb7c \u0111i\u1ec3m ri\u00eang c\u1ee7a broker, m\u1ed9t b\u1ed9 m\u00e1y b\u00ean ngo\u00e0i c\u1ea7n c\u1ed5ng kh\u1edbp l\u1ec7nh, hay m\u1ed9t terminal c\u1ea7n c\u00f3 bi\u1ec3u \u0111\u1ed3 tr\u01b0\u1edbc th\u1ee9 S\u00e1u. M\u1ed9t email k\u00e8m chi ti\u1ebft, m\u1ed9t ph\u1ea3n h\u1ed3i v\u1edbi b\u01b0\u1edbc ti\u1ebfp theo.<\/p>\n<p><a class=\"dev-btn\" href=\"mailto:support@bjftradinggroup.com\">G\u1eedi email cho \u0111\u1ed9i ng\u0169 ph\u00e1t tri\u1ec3n<\/a> <a class=\"dev-btn-ghost\" href=\"https:\/\/t.me\/bjftradinggroup\">Nh\u1eafn tin cho ch\u00fang t\u00f4i qua Telegram<\/a><\/p>\n<\/div>\n<p class=\"dev-disc\">BJF Trading Group Inc. ph\u00e1t tri\u1ec3n c\u00e1c c\u00f4ng c\u1ee5 ph\u1ea7n m\u1ec1m cho nh\u00e0 giao d\u1ecbch v\u00e0 nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 kinh nghi\u1ec7m. Ch\u00fang t\u00f4i kh\u00f4ng ph\u1ea3i l\u00e0 broker, t\u1ed5 ch\u1ee9c t\u00e0i ch\u00ednh hay c\u1ed1 v\u1ea5n \u0111\u1ea7u t\u01b0, v\u00e0 ch\u00fang t\u00f4i kh\u00f4ng th\u1ef1c hi\u1ec7n giao d\u1ecbch hay qu\u1ea3n l\u00fd ti\u1ec1n v\u1ed1n. Code m\u1eabu tr\u00ean trang n\u00e0y mang t\u00ednh minh h\u1ecda v\u00e0 c\u00f3 th\u1ec3 kh\u00e1c v\u1edbi t\u00e0i li\u1ec7u tham chi\u1ebfu hi\u1ec7n t\u1ea1i c\u1ee7a th\u01b0 vi\u1ec7n; h\u00e3y lu\u00f4n ki\u1ec3m tra t\u00e0i li\u1ec7u cho phi\u00ean b\u1ea3n n\u1ec1n t\u1ea3ng c\u1ee7a b\u1ea1n. Giao d\u1ecbch forex, CFD v\u00e0 ti\u1ec1n m\u00e3 h\u00f3a c\u00f3 r\u1ee7i ro thua l\u1ed7 cao v\u00e0 kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi t\u1ea5t c\u1ea3 nh\u00e0 \u0111\u1ea7u t\u01b0. Kh\u00f4ng n\u1ed9i dung n\u00e0o tr\u00ean trang n\u00e0y l\u00e0 l\u1eddi khuy\u00ean t\u00e0i ch\u00ednh hay l\u1eddi h\u1ee9a v\u1ec1 l\u1ee3i nhu\u1eadn.<\/p>\n<\/div>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\"@type\":\"Question\",\"name\":\"Which language do SharpTrader bots use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"C#. A bot is a class that inherits the platform's base Bot class and implements event handlers for initialization, ticks, position changes and order status updates. It is compiled inside SharpTrader and runs alongside the built-in strategies.\"}},\n    {\"@type\":\"Question\",\"name\":\"Can one SharpTrader bot trade several brokers or exchanges at the same time?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Every market data and order call takes a session index, and a session is one connected broker or exchange account. A bot can read quotes from one session and send orders to another.\"}},\n    {\"@type\":\"Question\",\"name\":\"What is the EasyFIX API and who is it for?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"EasyFIX is a simplified FIX protocol that lets external software connect to SharpTrader as an execution gateway, receiving quotes and sending orders through SharpTrader's broker and exchange connectors. The specification and a test connection are provided on request.\"}},\n    {\"@type\":\"Question\",\"name\":\"Is BjfChart available separately from SharpTrader?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. BjfChart is a standalone .NET charting library, a single DLL targeting net48 and net8.0-windows, built on SkiaSharp. It is licensed to SharpTrader developers, white-label partners and terminal vendors; contact support@bjftradinggroup.com for terms and a demo build.\"}},\n    {\"@type\":\"Question\",\"name\":\"Does the BjfChart trading panel execute orders?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The panel raises events for order submission, position close and position modification, and the host application routes them to its own execution layer such as a FIX API session, a broker bridge or SharpTrader through EasyFIX.\"}},\n    {\"@type\":\"Question\",\"name\":\"Can I add my own indicators to BjfChart?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Implement the IIndicator interface or subclass IndicatorBase, return series aligned to the candle list, choose overlay or sub-panel rendering, and register the indicator so it appears in the menu and in saved layouts.\"}},\n    {\"@type\":\"Question\",\"name\":\"Is the source code of SharpTrader or BjfChart for sale?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. BJF Trading Group licenses compiled builds and provides API access, documentation and support. Source code is not sold or disclosed under any program.\"}}\n  ],\n  \"speakable\": {\"@type\":\"SpeakableSpecification\",\"cssSelector\":[\".dev-hero h1\",\".dev-tbl\"]}\n}\n<\/script><br \/>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n &middot; N\u1ec1n t\u1ea3ng SharpTrader X\u00e2y d\u1ef1ng tr\u00ean SharpTrader: C# bot API, k\u1ebft n\u1ed1i EasyFIX v\u00e0 th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart SharpTrader l\u00e0 n\u1ec1n t\u1ea3ng giao d\u1ecbch \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng cho nh\u00e0 giao d\u1ecbch, kh\u00f4ng ph\u1ea3i cho broker, v\u00e0 m\u1edf c\u1eeda cho nh\u1eefng ng\u01b0\u1eddi vi\u1ebft code cho h\u1ecd. H\u00e3y vi\u1ebft chi\u1ebfn l\u01b0\u1ee3c ri\u00eang b\u1eb1ng C# ngay trong n\u1ec1n t\u1ea3ng, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m b\u00ean ngo\u00e0i c\u1ee7a b\u1ea1n v\u1edbi b\u1ed9 m\u00e1y kh\u1edbp&hellip;<\/p>\n","protected":false},"author":1,"featured_media":8077,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-ai-custom.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-8075","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n<\/title>\n<meta name=\"description\" content=\"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bjftradinggroup.com\/vi\/developers\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n\" \/>\n<meta property=\"og:description\" content=\"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/vi\/developers\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-25T15:46:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2024\/08\/developer.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/\",\"name\":\"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/developer.jpg\",\"datePublished\":\"2024-08-28T17:20:14+00:00\",\"dateModified\":\"2026-09-25T15:46:18+00:00\",\"description\":\"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/#breadcrumb\"},\"inLanguage\":\"vi-VN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi-VN\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/developer.jpg\",\"contentUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/developer.jpg\",\"width\":1024,\"height\":1024,\"caption\":\"for developers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/developers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bjftradinggroup.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"For Developers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"name\":\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\",\"description\":\"FX Software pioneer since 2000\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bjftradinggroup.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi-VN\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\",\"name\":\"BJF Trading Group Inc.\",\"legalName\":\"BJF Trading Group Inc.\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/logo.png\",\"width\":512,\"height\":512},\"foundingDate\":\"2000\",\"founder\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\\\/#person\"},\"address\":{\"@type\":\"PostalAddress\",\"addressRegion\":\"Ontario\",\"addressCountry\":\"CA\"},\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@bjftradinggroup.com\",\"availableLanguage\":[\"English\",\"German\",\"Japanese\",\"Korean\",\"Spanish\",\"Portuguese\",\"Arabic\",\"Indonesian\",\"Vietnamese\"]}],\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/twitter.com\\\/BjfGroup\",\"https:\\\/\\\/www.youtube.com\\\/@bjftradinggroup\",\"https:\\\/\\\/t.me\\\/bjftradinggroup\",\"https:\\\/\\\/instagram.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bjf-trading-group\\\/\"],\"knowsAbout\":[\"Forex arbitrage\",\"Cryptocurrency arbitrage\",\"Latency arbitrage\",\"News trading\",\"FIX API trading\",\"High-frequency trading\",\"Lock arbitrage\",\"Hedge arbitrage\",\"Pair trading\",\"Algorithmic trading software\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n","description":"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bjftradinggroup.com\/vi\/developers\/","og_locale":"vi_VN","og_type":"article","og_title":"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n","og_description":"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.","og_url":"https:\/\/bjftradinggroup.com\/vi\/developers\/","og_site_name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","article_modified_time":"2026-09-25T15:46:18+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2024\/08\/developer.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bjftradinggroup.com\/developers\/","url":"https:\/\/bjftradinggroup.com\/developers\/","name":"D\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bjftradinggroup.com\/developers\/#primaryimage"},"image":{"@id":"https:\/\/bjftradinggroup.com\/developers\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2024\/08\/developer.jpg","datePublished":"2024-08-28T17:20:14+00:00","dateModified":"2026-09-25T15:46:18+00:00","description":"Vi\u1ebft bot giao d\u1ecbch b\u1eb1ng C# trong SharpTrader, k\u1ebft n\u1ed1i ph\u1ea7n m\u1ec1m ri\u00eang qua EasyFIX API v\u00e0 nh\u00fang th\u01b0 vi\u1ec7n bi\u1ec3u \u0111\u1ed3 BjfChart v\u00e0o terminal .NET c\u1ee7a b\u1ea1n.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/developers\/#breadcrumb"},"inLanguage":"vi-VN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/developers\/"]}]},{"@type":"ImageObject","inLanguage":"vi-VN","@id":"https:\/\/bjftradinggroup.com\/developers\/#primaryimage","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2024\/08\/developer.jpg","contentUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2024\/08\/developer.jpg","width":1024,"height":1024,"caption":"for developers"},{"@type":"BreadcrumbList","@id":"https:\/\/bjftradinggroup.com\/developers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bjftradinggroup.com\/"},{"@type":"ListItem","position":2,"name":"For Developers"}]},{"@type":"WebSite","@id":"https:\/\/bjftradinggroup.com\/#website","url":"https:\/\/bjftradinggroup.com\/","name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","description":"FX Software pioneer since 2000","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bjftradinggroup.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi-VN"},{"@type":"Organization","@id":"https:\/\/bjftradinggroup.com\/#organization","name":"BJF Trading Group Inc.","legalName":"BJF Trading Group Inc.","url":"https:\/\/bjftradinggroup.com\/","logo":{"@type":"ImageObject","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/logo.png","width":512,"height":512},"foundingDate":"2000","founder":{"@id":"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person"},"address":{"@type":"PostalAddress","addressRegion":"Ontario","addressCountry":"CA"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@bjftradinggroup.com","availableLanguage":["English","German","Japanese","Korean","Spanish","Portuguese","Arabic","Indonesian","Vietnamese"]}],"sameAs":["https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/twitter.com\/BjfGroup","https:\/\/www.youtube.com\/@bjftradinggroup","https:\/\/t.me\/bjftradinggroup","https:\/\/instagram.com\/bjftradinggroup","https:\/\/www.linkedin.com\/company\/bjf-trading-group\/"],"knowsAbout":["Forex arbitrage","Cryptocurrency arbitrage","Latency arbitrage","News trading","FIX API trading","High-frequency trading","Lock arbitrage","Hedge arbitrage","Pair trading","Algorithmic trading software"]}]}},"_links":{"self":[{"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/pages\/8075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/comments?post=8075"}],"version-history":[{"count":8,"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/pages\/8075\/revisions"}],"predecessor-version":[{"id":13910,"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/pages\/8075\/revisions\/13910"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/media\/8077"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/vi\/wp-json\/wp\/v2\/media?parent=8075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}