نظرًا لأن C# هي لغة ذات أنواع قوية، فمن الضروري تحديد أنواع البيانات عند إعلان المتغيرات وخصائص الفئات في cBots والمؤشرات والإضافات. على النقيض من ذلك، تتميز Python بأنواع ديناميكية، لذا يتم استنتاج أنواع المتغيرات تلقائيًا. ومع ذلك، عند تطوير cBots باستخدام واجهة برمجة تطبيقات cTrader، يتم الحفاظ على نفس الأنواع المفاهيمية للاتساق بين اللغتين.
لا تسمح واجهة برمجة تطبيقات cTrader Algo باستخدام جميع أنواع البيانات كمعلمات قابلة للتخصيص، ولهذا السبب من الضروري لمطوري الخوارزميات فهم والتنقل بعناية عبر الأنواع المدعومة.
ملاحظة
تستخدم cBots والمؤشرات والإضافات في Python معلمات قابلة للتخصيص معلنة في ملفات .cs الخاصة بها.
حالات استخدام المعلمات وواجهة المستخدم
تدعم cTrader فقط أنواع المعلمات هذه مع حالات الاستخدام الرئيسية وعناصر واجهة المستخدم ذات الصلة المنعكسة في الجدول أدناه.
محاذاة رسومات الرسم البياني، مستويات المخاطر الفردية، إلخ.
قائمة منسدلة
Color
Color
رسومات الرسم البياني، لون وسائل التحليل الفني، العناصر المخصصة، إلخ.
منتقي الألوان
DateTime
DateTime
الحصول على تاريخ ووقت ذي نوع قوي في المنطقة الزمنية للخوارزمية
منتقي التاريخ والوقت
DateOnly
DateOnly
الحصول على تاريخ ذي نوع قوي
منتقي التاريخ
TimeSpan
TimeSpan
الحصول على فاصل زمني ذي نوع قوي أو وقت اليوم
منتقي الوقت
Symbol
Symbol
الحصول على رمز واحد ذي نوع قوي
منتقي الرمز
Symbol[]
Symbol[]
الحصول على رموز متعددة ذات نوع قوي في مصفوفة
منتقي الرموز المتعددة
Enum[]
Enum[]
الحصول على قيم متعددة ذات نوع قوي من نوع Enum في مصفوفة
منتقي قيم Enum المتعددة
TimeFrame[]
TimeFrame[]
الحصول على قيم TimeFrame متعددة ذات نوع قوي في مصفوفة
منتقي الفترات المتعددة
تحذير
قد لا تتمكن من استخدام بعض أنواع المعلمات المذكورة أعلاه إذا كنت تستخدم إصدارًا أقدم من cTrader أو Algo API.
على سبيل المثال، تعكس واجهة مستخدم cTrader أنواع bool، double، int في C# و bool، float، int في Python على النحو التالي.
تُظهر الأمثلة الثلاثة التالية أنواع البيانات DataSeries، enum المخصص، string في C# و api.DataSeries، Enum، str في Python (والتي نقدم أيضًا الكود الكامل لها في هذا الدليل).
كما هو موضح أدناه، يتم تمثيل نوع المعلمة Color في C# و Color في Python بمنتقي الألوان.
أخيرًا، تعكس واجهة مستخدم TimeFrame في C# و api.TimeFrame في Python خيارات الفترة المتاحة في الرسوم البيانية للتداول داخل تطبيق التداول.
أمثلة cBot
تسمية المركز هي معلمة string في C# و str في Python في cBot التالي.
في المثال أدناه، يعمل نوع البيانات double في C# و float في Python كمعلمة لإدخال حجم الأمر باللوت. ينفذ cBot أمر شراء بسعر السوق بعد ثلاث شموع حمراء متتالية.
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingcAlgo.API;usingcAlgo.API.Collections;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo{[Indicator(AccessRights = AccessRights.None)]publicclassNewIndicator4:Indicator{privateBars_hourlyTimeFrameBars;privateBars_targetTimeFrameBars;[Parameter("Chosen Time Frame")]publicTimeFrameTargetTimeFrame{get;set;}[Output("Main")]publicIndicatorDataSeriesResult{get;set;}protectedoverridevoidInitialize(){_hourlyTimeFrameBars=MarketData.GetBars(TimeFrame.Hour);_targetTimeFrameBars=MarketData.GetBars(TargetTimeFrame);}publicoverridevoidCalculate(intindex){Result[index]=_hourlyTimeFrameBars.HighPrices[index]-_targetTimeFrameBars.HighPrices[index];}}}
هناك مؤشر مرح (اختبار عمى الألوان) يقدم خيارات رؤية الألوان enum (على سبيل المثال، عادي، عمى الألوان، وتدرج الرمادي) للمستخدمين لتحديد لون خط أفقي مرسوم على الرسم البياني.
باختصار، من خلال اختيار نوع البيانات الصحيح للمتغيرات المعلنة وخصائص الفئة، ستتمكن من إنشاء خوارزميات cBot ومؤشرات يمكنها التعامل حتى مع المهام غير القياسية.