مجموعة بي جيه إف التجارية المحدودة - أونتاريو، كندا اتصال منطقة الأعضاء مدونة
EN DE JA AR KO ES PT ID VI CN



للمطوّرين · منصة SharpTrader

ابنِ على SharpTrader: واجهة C# للروبوتات، واتصال EasyFIX، ومكتبة الرسوم البيانية BjfChart

SharpTrader منصة تداول مبنية للمتداولين لا للوسطاء، وهي مفتوحة لمن يكتبون الشيفرة البرمجية لهم. اكتب استراتيجياتك الخاصة بلغة C# داخل المنصة، أو اربط برامجك الخارجية بمحرّك التنفيذ فيها عبر EasyFIX API، أو أضف مكتبتنا لرسوم الشموع البيانية المسرَّعة بمعالج الرسوميات (GPU) إلى منصتك الخاصة المبنية على .NET.

استراتيجيات C# مع أسعار لحظية وجلسات متعددة الوسطاء
EasyFIX API: أكثر من 50 موصِّل FIX ومنصات عملات مشفرة
BjfChart DLL: 22 مؤشرًا، أدوات رسم، نافذة أوامر
.NET Framework 4.8 و.NET 8

شاهد الجولة التعريفية للرسوم البيانية جهات اتصال المطوّرين



C#لغة الاستراتيجيات الأصلية، تُترجَم داخل SharpTrader 50+موصِّل FIX API للوسطاء، إضافةً إلى كبرى منصات العملات المشفرة 22مؤشرًا في BjfChart، مُتحقَّقًا منها مقابل حسابات مرجعية 2هدفا بناء في DLL واحد: net48 للتطبيقات القديمة، وnet8.0-windows للجديدة



ثلاث طرق للبناء مع BJF

كل خيار يحل مشكلة مختلفة. اختر ما يناسب المكان الذي تعمل فيه شيفرتك.

داخل المنصة

وحدة البرمجة: واجهة C# للروبوتات

اكتب استراتيجية على شكل صنف (class) بلغة C#، وترجمها داخل SharpTrader، وشغّلها على أي وسيط أو منصة متصلة. الأسعار اللحظية والمراكز والأوامر والمؤشرات كلها على بُعد استدعاء واحد.

اقرأ عن واجهة الروبوتات

خارج المنصة

EasyFIX API

احتفظ بمحرّكك الخاص، بأي لغة، ودع SharpTrader يكون البوابة: فهو يبث إليك الأسعار ويوجّه أوامرك عبر موصِّلاته بالوسطاء والمنصات.

اقرأ عن EasyFIX

في منصتك الخاصة

مكتبة الرسوم البيانية BjfChart

ملف DLL واحد يمنح تطبيقك المبني على .NET رسوم شموع بيانية احترافية ومؤشرات وأدوات رسم ولوحة تداول ودفتر أوامر، مع بث لحظي للأسعار.

اطّلع على مكتبة الرسوم البيانية



وحدة البرمجة: اكتب الاستراتيجيات بلغة C#

تحوّل وحدة البرمجة SharpTrader إلى بيئة تطوير للاستراتيجيات الآلية. الروبوت هو صنف C# يرث من الصنف الأساسي Bot في المنصة ويستجيب للأحداث: التهيئة، وكل سعر لحظي وارد، وفتح مركز، وإغلاق مركز، وتحديثات حالة الأوامر. تقوم المنصة بترجمته، وتعرض مدخلاتك في الواجهة، وتشغّله على الحسابات الحقيقية أو التجريبية جنبًا إلى جنب مع استراتيجيات المراجحة والأخبار والزخم المدمجة.

ما تمنحك إياه الواجهة

المجال ما يمكنك فعله
بيانات السوق سعر الطلب والعرض والفارق وقيمة النقطة لكل رمز ولكل جلسة، عبر الكائن ticker. الجلسة هي حساب واحد متصل لدى وسيط أو منصة، لذا يمكن لروبوت واحد مراقبة عدة أطراف مقابلة والتداول معها في آن واحد عبر رقم الجلسة.
الأوامر والمراكز sendOrder للتنفيذ بسعر السوق، وmodifyPositionByID لوقف الخسارة وجني الأرباح، وclosePositionByID، والبحث حسب المعرّف أو التعليق، وقوائم حية بالأوامر المفتوحة والمغلقة والمعلّقة.
تفاصيل المركز يحمل كل مركز أسعار وأوقات الفتح والإغلاق، والحجم، والاتجاه، والجلسة، والربح، والتعليق، ووقف الخسارة، وجني الأرباح، والانزلاق السعري المقاس وزمن التنفيذ لكلا الجانبين. هذا الجزء الأخير هو ما يتيح للروبوت التكيّف مع طريقة التنفيذ الفعلية لدى الوسيط.
المؤشرات دوال مؤشرات مدمجة مثل EMA وMACD على أي إطار زمني، تتوسع باستمرار مع تحديثات المنصة.
المدخلات والسجلات الخصائص العامة المعلَّمة بـ [PropertyInfo] تظهر كمدخلات قابلة للتعديل في الواجهة؛ وwriteLog يكتب في سجل المنصة؛ وstopBot يوقف الاستراتيجية من داخل الشيفرة.
حالة الحساب الرصيد وحقوق الملكية لكل جلسة لقواعد إدارة المخاطر وتحديد حجم المراكز.

هيكل استراتيجية مبسّط

// 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");
    }
}
معلومات مفيدة قبل كتابة السطر الأول. تُترجَم البيئة المعزولة (sandbox) مقابل مجموعة ثابتة من المكتبات: System وSystem.Collections وSystem.Runtime وSystem.Console ومكتبة روبوتات SharpTrader. وLINQ ليست من بينها، لذا اكتب حلقات foreach عادية بدلًا من Where أو Select أو Any. الأسعار من الواجهة بنقاط الوسيط؛ اضربها في قيمة النقطة قبل مقارنتها بعتباتك الخاصة. واحرص على وجود أمر واحد قيد التنفيذ لكل سعر لحظي، محميًا بمعرّف أمر العميل المُعاد، إلا إذا كنت تستمتع بتصحيح أخطاء التنفيذ المكرر.

المرجع الكامل للأصناف والدوال والأحداث: توثيق مكتبة البرمجة في SharpTrader. وحدة البرمجة إضافة إلى SharpTrader Pro؛ راجع صفحة SharpTrader Pro للاطلاع على الحزمة الحالية.



EasyFIX API: اربط برامجك الخاصة بـ SharpTrader

ليس كل شيء مكانه داخل المنصة. إذا كنت تشغّل بالفعل محرّك إشارات أو مدير مخاطر أو واجهة أمامية مخصصة أو مسار بحث، فإن EasyFIX يتيح له التواصل مع SharpTrader عبر بروتوكول FIX مبسّط. يصبح SharpTrader بوابة التنفيذ الخاصة بك: فهو يحتفظ بالاتصالات مع الوسطاء والمنصات، وأنت ترسل الأوامر وتستقبل الأسعار وتقارير التنفيذ من شيفرتك الخاصة، بأي لغة تفضّلها.

ما ينقله EasyFIX

  • بيانات السوق: أسعار الرموز التي تشترك فيها، من أي جلسة مفتوحة في SharpTrader.
  • تدفق الأوامر: أوامر جديدة وتعديلات وإغلاقات موجَّهة إلى الجلسة المختارة.
  • تقارير التنفيذ: عمليات التنفيذ والرفض وحالة المراكز والأوامر تعود إلى تطبيقك.
  • الوصول إلى أكثر من 50 موصِّل FIX API للوسطاء والاتصالات بكبرى منصات العملات المشفرة نفسها التي يستخدمها SharpTrader في استراتيجياته.

تكاملات نموذجية

  • استراتيجية خارجية مكتوبة بلغة Python أو Java أو C++ أو أي لغة تدعم المقابس (sockets) وبناء رسائل FIX.
  • طبقة مخاطر على مستوى الشركة تشرف على عدة نسخ من SharpTrader.
  • واجهة تداول رسومية أو لوحة معلومات مخصصة فوق محرّك التنفيذ في SharpTrader.
  • تسجيل الأسعار وعمليات التنفيذ لأغراض البحث والاختبار الرجعي وتدقيق تنفيذ الوسطاء.

EasyFIX لهجة FIX معدّلة: تحتفظ بنموذج الرسائل الذي يعرفه المطوّرون، مع الاستغناء عن التعقيدات التي لا يحتاجها الربط بين المستخدم والبوابة. المواصفات وأمثلة الجلسات واتصال تجريبي متاحة لمستخدمي SharpTrader Pro وLite عند الطلب. راسلنا على support@bjftradinggroup.com مع وصف موجز لما تخطط لربطه.



BjfChart: مكتبة الرسوم البيانية وراء الرسوم الجديدة في SharpTrader

في عام 2026 أعدنا بناء الرسوم البيانية في SharpTrader من الصفر، والمحرّك الذي يقف خلفها متاح للمطوّرين كمكتبة مستقلة. BjfChart عنصر تحكم لرسوم الشموع البيانية مسرَّع بمعالج الرسوميات (GPU) لـ WinForms ومبني على SkiaSharp. يعرض عشرات الآلاف من الأعمدة بمعدل 60 إطارًا في الثانية، ويأتي كملف واحد BjfChart.dll يستهدف كلًا من net48 وnet8.0-windows، فيندمج في منصات .NET Framework القديمة وتطبيقات .NET 8 الجديدة على حد سواء.

فيديو: SharpTrader Charting، مكتبة الرسوم البيانية الجديدة وجولة في التداول اليدوي

ثمانية أطر زمنية، ومؤشرات، وأدوات فيبوناتشي والاتجاه، ونافذة أوامر مع خطوط قابلة للسحب لوقف الخسارة وجني الأرباح، ورسوم بيانية متعددة الوسطاء، معروضة مباشرةً داخل SharpTrader. افتح على YouTube

ما تتضمنه المكتبة

محرّك الرسوم

  • عرض الشموع مع لوحة فرعية للحجم، ومؤشر تقاطع، وملصق للسعر الحي، ومفتاح OHLC عائم.
  • تكبير بعجلة الفأرة يُبقي العمود الموجود تحت المؤشر ثابتًا، وتحريك بالنقر والسحب.
  • بث لحظي: PushTick يدمج السعر اللحظي في العمود الأخير، وFeedTick يجمّع الأسعار اللحظية تلقائيًا في شموع بأي فاصل زمني.
  • تراكبات متعددة الرموز للمقارنة، بمقياس مستقل أو مشترك.
  • حفظ التخطيط بصيغة JSON: تُحفظ المؤشرات والرسومات والتراكبات ونطاق العرض وتُستعاد.
  • سمة داكنة (الأزرق الداكن والذهبي من BJF) وسمة فاتحة، قابلتان للتبديل أثناء التشغيل، وكل لون قابل للتعديل.
  • علامة مائية من ملف شعار أو رابط أو نص خلف الشموع.

طبقة التداول

  • TradingPanel: نافذة أوامر (شراء وبيع بسعر السوق أو محدد أو إيقاف، والكمية، والسعر، ووقف الخسارة، وجني الأرباح) مع عرض حي للمركز والربح/الخسارة.
  • خطوط الدخول ووقف الخسارة وجني الأرباح والأوامر العاملة تُرسم على الرسم البياني تلقائيًا؛ وخطا وقف الخسارة وجني الأرباح قابلان للسحب ويطلقان أحداثًا عند الإفلات.
  • اللوحة لا تنفّذ شيئًا بنفسها. بل تطلق أحداثًا لطبقة التنفيذ لديك، سواء كانت جلسة FIX API أو جسرًا مع الوسيط أو SharpTrader عبر EasyFIX.
  • OrderBookPanel: سلّم لعمق السوق مع الحجم لكل مستوى وأشرطة عمق تناسبية؛ انقر على مستوى لملء سعر الأمر المحدد مسبقًا.
  • خطوط أسعار اختيارية حسب المعرّف لأوامر الوسيط، مع إمكانية السحب اختياريًا.

المؤشرات وأدوات الرسم

المجموعة المشمول
مؤشرات التراكب SMA وEMA وWMA وVWAP وBollinger Bands وKeltner Channels وDonchian Channels وEnvelope وParabolic SAR.
مؤشرات اللوحة الفرعية RSI وMACD مع المدرّج التكراري وStochastic وATR وCCI وADX / DMI وMomentum وRate of Change وWilliams %R وAwesome Oscillator وStandard Deviation وOn-Balance Volume وMoney Flow Index.
الدقة يُتحقَّق من حسابات المؤشرات مقابل تطبيقات مرجعية مستقلة: تتطابق SMA وEMA وBollinger وRSI وATR وStochastic وCCI حتى 1e-9؛ ويُتحقَّق من صحة MACD وADX وDI وWilliams %R وMFI وOBV ونطاقها.
أدوات الرسم خط الاتجاه، والشعاع، والخط الممتد، والخط والشعاع الأفقيان، والخط العمودي، والسهم، والقناة المتوازية، والمستطيل، والقطع الناقص، وتصحيح فيبوناتشي، وامتداد فيبوناتشي، وأداة قياس تعرض فرق السعر ونسبة التغير وعدد الأعمدة. جميعها مثبّتة في فضاء البيانات، فتبقى في مكانها عند التكبير والتحريك.
قابلية التوسعة نفّذ الواجهة IIndicator (أو اشتق من IndicatorBase)، وأعد سلسلة أو أكثر متوافقة مع قائمة الشموع، واختر التراكب أو اللوحة الفرعية، والخط أو المدرّج أو النقاط، وسجّله ليظهر في قائمة النقر بزر الفأرة الأيمن وفي التخطيطات المحفوظة.

عشرة أسطر للحصول على رسم بياني يعمل

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

كل ما في الشيفرة متاح أيضًا من قائمة النقر بزر الفأرة الأيمن على الرسم البياني: إضافة المؤشرات أو إزالتها، واختيار أداة رسم، وإدارة التراكبات، وتبديل السمة، وحفظ التخطيط أو تحميله. تتطلب المكتبة نظام Windows و.NET SDK 8.0 أو أحدث للبناء؛ ويستعيد NuGet مكتبة SkiaSharp تلقائيًا. ويُرفق تطبيق تجريبي قابل للتشغيل مع أسعار لحظية محاكاة.

استخدام BjfChart في منتجك. المكتبة مرخّصة لمطوّري SharpTrader وشركاء العلامة البيضاء (white-label) ومورّدي منصات التداول من الأطراف الثالثة. لأسئلة الاستخدام أو شروط الترخيص أو نسخة تجريبية أو المساعدة في دمجها مع مصدر بياناتك، تواصل معنا مباشرةً عبر البيانات أدناه. أخبرنا بهدف .NET الذي تستخدمه وبشكل مصدر بياناتك، وسنرد خلال يوم عمل واحد.



جهات اتصال المطوّرين

تذهب جميع أسئلة المطوّرين إلى الفريق نفسه الذي يبني المنصة. لأسئلة واجهة الروبوتات وEasyFIX، اذكر إصدار SharpTrader ونوع حسابك؛ ولـ BjfChart، اذكر هدف .NET ومصدر البيانات.

البريد الإلكترونيsupport@bjftradinggroup.comالأنسب لأمثلة الشيفرة والمواصفات والترخيص الهاتف+1 (905) 599-5507من الإثنين إلى الجمعة، 9:00 إلى 18:00 بتوقيت الشرق الأمريكي (تورونتو) Telegramt.me/bjftradinggroupللأسئلة السريعة والمتابعات

BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. للاستفسارات العامة: صفحة الاتصال.



الأسئلة الشائعة

ما اللغة التي تستخدمها روبوتات SharpTrader؟
C#. الروبوت صنف يرث الصنف الأساسي Bot في المنصة وينفّذ معالجات أحداث للتهيئة والأسعار اللحظية وتغيّرات المراكز وتحديثات حالة الأوامر. يُترجَم داخل SharpTrader ويعمل جنبًا إلى جنب مع الاستراتيجيات المدمجة.
هل يمكن لروبوت واحد التداول مع عدة وسطاء أو منصات في الوقت نفسه؟
نعم. كل استدعاء لبيانات السوق أو للأوامر يأخذ رقم جلسة، والجلسة هي حساب واحد متصل لدى وسيط أو منصة. يمكن للروبوت قراءة الأسعار من جلسة وإرسال الأوامر إلى أخرى، وهكذا يُكتب منطق التداول متعدد الوسطاء وعبر المنصات.
ما هو EasyFIX API ولمن هو موجّه؟
EasyFIX بروتوكول FIX مبسّط يتيح للبرامج الخارجية الاتصال بـ SharpTrader كبوابة تنفيذ. وهو موجّه للمطوّرين الذين يحتفظون بمحرّكهم الخاص خارج المنصة ويريدون استقبال الأسعار وإرسال الأوامر عبر موصِّلات SharpTrader بالوسطاء والمنصات. تُقدَّم المواصفات واتصال تجريبي عند الطلب.
هل BjfChart متاحة بشكل منفصل عن SharpTrader؟
نعم. BjfChart مكتبة .NET مستقلة، ملف DLL واحد يستهدف net48 وnet8.0-windows، ومبنية على SkiaSharp. وهي مرخّصة لمطوّري SharpTrader وشركاء العلامة البيضاء ومورّدي منصات التداول. تواصل مع support@bjftradinggroup.com للاطلاع على الشروط والحصول على نسخة تجريبية.
هل تنفّذ لوحة التداول في BjfChart الأوامر؟
لا. تطلق اللوحة أحداثًا (إرسال أمر، طلب إغلاق مركز، تعديل مركز بعد سحب خط وقف الخسارة أو جني الأرباح) ويوجّهها التطبيق المضيف إلى طبقة التنفيذ الخاصة به، مثل جلسة FIX API أو جسر مع الوسيط أو SharpTrader عبر EasyFIX.
هل يمكنني إضافة مؤشراتي الخاصة إلى BjfChart؟
نعم. نفّذ الواجهة IIndicator أو اشتق من IndicatorBase، وأعد سلسلة أو أكثر متوافقة مع قائمة الشموع، واختر العرض كتراكب أو في لوحة فرعية، وسجّل المؤشر ليظهر في قائمة النقر بزر الفأرة الأيمن ويُحفظ في التخطيطات.
هل الشيفرة المصدرية لـ SharpTrader أو BjfChart معروضة للبيع؟
لا. ترخّص BJF Trading Group النسخ المترجَمة وتوفّر الوصول إلى الواجهات البرمجية والتوثيق والدعم. لا تُباع الشيفرة المصدرية ولا يُفصح عنها ضمن أي برنامج.





أخبرنا بما تبنيه

روبوت لخصوصية معيّنة لدى وسيط، أو محرّك خارجي يحتاج إلى بوابة تنفيذ، أو منصة تحتاج إلى رسوم بيانية بحلول يوم الجمعة. رسالة بريد إلكتروني واحدة بالتفاصيل، ورد واحد بالخطوة التالية.

راسل فريق المطوّرين راسلنا على Telegram

تطوّر BJF Trading Group Inc. أدوات برمجية للمتداولين والمطوّرين ذوي الخبرة. لسنا وسيطًا ولا مؤسسة مالية ولا مستشارًا استثماريًا، ولا ننفّذ صفقات ولا ندير أموالًا. أمثلة الشيفرة في هذه الصفحة توضيحية وقد تختلف عن المرجع الحالي للمكتبة؛ راجع دائمًا التوثيق الخاص بإصدار منصتك. ينطوي تداول الفوركس وعقود الفروقات والعملات المشفرة على مخاطر عالية للخسارة ولا يناسب جميع المستثمرين. لا شيء في هذه الصفحة يُعدّ نصيحة مالية أو وعدًا بالربح.