أنواع المعلمات في خوارزمية cTrader
في هذا المقال والفيديو المصاحب له، سنوضح كيف يمكنك إعلان واستخدام المعلمات القابلة للتخصيص في cBots والمؤشرات الخاصة بك. سنقوم بتطوير مؤشر بسيط ونوضح لك كيفية تكوين المعلمات من واجهة مستخدم cTrader. سنشرح أيضًا أنواع المعلمات التي يمكنك استخدامها في cBot أو مؤشر cTrader ونوضح كيفية إعلانها واستخدامها في الكود الخاص بك.
المعلمات القابلة للتخصيص
المعلمات القابلة للتخصيص هي قيم قابلة للتكوين يمكن تعيينها عند إضافة أو بدء أو استخدام خوارزمية. تسمح لك وللمستخدمين الآخرين بتخصيص سلوك cBots والمؤشرات والإضافات دون تعديل الكود المصدري.
استخدام المعلمات في cBots والمؤشرات والإضافات
- بالنسبة لـ cBots، يمكنك تكوين المتغيرات أو الإعدادات التي تؤثر على التنفيذ، مثل مستويات إيقاف الخسارة وجني الأرباح.
- بالنسبة للمؤشرات، يمكنك تكوين المتغيرات التي تؤثر على مخرجات المؤشر، مثل الفترات المعتبرة أو مصدر البيانات المراد استخدامه.
- بالنسبة للإضافات، يمكنك استخدام تكوين المتغيرات، مثل خيارات واجهة المستخدم أو مفاتيح API، التي تحدد كيفية تفاعل الإضافة مع الواجهة أو الخدمات الخارجية.
كما تم شرحه سابقًا، يدعم cTrader أنواع المعلمات التالية:
intdoublestringboolDataSeriesTimeFrameenumColorDateTimeDateOnlyTimeSpanSymbolSymbol[](multi-symbol)Enum[](multi-enum)TimeFrame[](multi-period)
ملاحظة
تستخدم خوارزميات Python المعلمات القابلة للتخصيص المعلنة في ملفات .cs الخاصة بها.
إنشاء مؤشر بسيط بمعلمات
لتوضيح كيفية استخدام المعلمات في المؤشرات المخصصة، سنقوم بإنشاء مؤشر جديد ونسميه Standard Deviation.
لحساب الانحراف المعياري، نحتاج أولاً إلى حساب المتوسط المتحرك للسعر. بعد ذلك، سنعلن عن المعلمات اللازمة لمؤشر المتوسط المتحرك بدءًا بفترة المتوسط المتحرك.
1 | |
يمكن لأي خاصية عامة لها أحد الأنواع المدعومة أن تصبح معلمة مؤشر. لتحويل خاصية MaPeriod إلى معلمة، كل ما علينا فعله هو إضافة الإعلان المطلوب.
1 2 | |
تُرشد سمة Parameter cTrader لعرض هذه الخاصية كمعلمة في لوحة معلمات المؤشر باستخدام الاسم المحدد ("MA Period").
كما هو موضح أدناه، تسمح سمة Parameter أيضًا بتحديد بعض خصائص المعلمة مثل الاسم المعروض والقيمة الافتراضية والمجموعة التي سيتم وضع هذه المعلمة فيها والقيم القصوى والدنيا، بالإضافة إلى الخطوة التي ستتغير بها المعلمة عند الضغط على أسهم الأعلى والأسفل (للقيم الرقمية فقط).
1 2 | |
سنضيف الآن بقية المعلمات اللازمة لمؤشر المتوسط المتحرك. ستساعدنا معلمة MaType في تحديد نوع المتوسط المتحرك. إنها enum ستظهر كقائمة منسدلة في واجهة مستخدم cTrader.
1 2 | |
ستمنح معلمة Source المستخدمين خيار تحديد مصدر البيانات لمؤشر المتوسط المتحرك لدينا. هذه المعلمة هي من نوع DataSeries.
1 2 | |
الآن بعد أن تم الإعلان عن المعلمات المطلوبة، سنقوم بتعريف وتهيئة المتوسط المتحرك لدينا.
1 2 3 4 5 6 | |
في هذه المرحلة، نحن جاهزون لتنفيذ الحساب لمؤشر الانحراف المعياري لدينا. يحتوي قالب الكود الافتراضي بالفعل على خاصية Output التي يمكننا استخدامها لعرض نتائج الحساب.
1 2 | |
أخيرًا وليس آخرًا، سننفذ حساب الانحراف المعياري في طريقة Calculate().
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
إذا أضفنا مؤشرنا إلى رسم بياني، يجب أن نرى جميع معلماتنا في نافذة Add instance.
إضافة معلمات إضافية
بعد اكتمال الانحراف المعياري لدينا، يمكننا أيضًا إضافة خط أفقي سيعمل كعتبة مرئية للمؤشر. لهذا الغرض سنحتاج إلى إضافة بعض المعلمات الإضافية.
الأولى ستكون معلمة منطقية تحدد ما إذا كان سيتم عرض خطنا أم لا.
1 2 | |
ستسمح لنا معلمة LineLevel بتحديد مستوى السعر الذي يجب رسم الخط عنده.
1 2 | |
سنضيف أيضًا معلمة تسمح باختيار لون الخط.
1 2 | |
مع وجود جميع المعلمات الضرورية في مكانها، يمكننا كتابة كود لرسم الخط على الرسم البياني الذي تم إرفاق مؤشرنا به.
1 2 3 4 | |
إذا قمنا ببناء المؤشر مرة أخرى وإضافة مثيل جديد، سنتمكن من إخفاء/إظهار الخط ونقله لأعلى أو لأسفل واختيار اللون الذي نريده كلون للخط.
كما هو موضح في المثال أدناه، يمكن أيضًا استخدام المعلمات للتأكد من أن مؤشرنا يظهر فقط عند إضافته إلى الرسوم البيانية لإطار زمني محدد.
1 2 | |
في طريقة Initialize()، سنتحقق من الإطار الزمني للرسم البياني الذي تم إرفاق مؤشرنا به. إذا لم يكن مساويًا لقيمة معلمة TF، فسنمنع عرض المؤشر.
1 2 3 4 5 6 7 8 9 10 11 12 | |
نأمل أن يكون هذا الدليل مفيدًا في فهم المعلمات وكيفية عملها في التداول الخوارزمي لـ cTrader.