انتقل إلى المحتوى

كيفية إنشاء مؤشر مخصص في cTrader

في هذه المقالة والفيديو المصاحب لها، سنناقش كيف يمكنك إنشاء مؤشر مخصص جديد في cTrader. سنقوم بإنشاء مؤشر المتوسط المتحرك البسيط ونوضح لك كيفية تخصيص معلمات المؤشر بسرعة.

قبل اتباع تعليماتنا، تأكد من أنك قمت بتنزيل وتثبيت تطبيق cTrader Windows أو cTrader Mac من الموقع الرسمي. قم بتشغيله، وانتقل إلى قسم cTrader Algo. حدد موقع علامة التبويب Algo في اللوحة اليسرى وانقر عليها. يجب أن ترى الآن واجهة Algo الخاصة بـ cTrader.

إضافة مؤشر مخصص جديد

لإنشاء مؤشر مخصص جديد، نحتاج إلى النقر فوق الزر جديد وتحديد فارغ. سيظهر مؤشر جديد في أسفل قائمة المؤشرات مع نموذج رمز في اللوحة اليمنى.

بعد ذلك، قم بتغيير اسم المؤشر من اسمه الافتراضي. للقيام بذلك، انقر بزر الماوس الأيمن فوقه وانقر فوق إعادة تسمية، أو حدده واضغط على F2. سنكتب المتوسط المتحرك البسيط كاسم جديد لمؤشرنا. بمجرد الانتهاء، اضغط على Enter. في هذه المرحلة، نحن مستعدون لبدء ترميز المنطق والصيغ للمؤشر المخصص.

عرض هيكل المؤشر

قبل أن نبدأ، سنلقي نظرة سريعة على هيكل رمز المؤشر المعروض في نافذة محرر الرمز. يتضمن هذا الهيكل إعدادات المعلمات الافتراضية والأساليب لحساب المؤشر وعرضه على الرسم البياني.

للبدء، يحتوي كل مؤشر على قسم يحتوي على سمات الفئة الخاصة به. هنا يمكنك تكوين حقوق الوصول التي يتمتع بها المؤشر، وأين سيتم عرض المؤشر على الرسم البياني، والمنطقة الزمنية التي يستخدمها المؤشر، وتحجيم المؤشر والعديد من الإعدادات المتقدمة الأخرى.

ستلاحظ أيضًا أن كل نموذج رمز مؤشر جديد يحدد فئة تسمى NewIndicator تحتوي على جميع أحداث المؤشر وأي طرق مخصصة. يتبع إعلان اسم الفئة : Indicator. هذا يعني أن فئة NewIndicator ترث من الفئة الأساسية Indicator التي تحتوي بدورها على جميع الكائنات المحددة مسبقًا التي سنصل إليها عند بناء المؤشر المخصص الخاص بنا.

يتم توفير مراجعة أكثر تفصيلاً لهيكل رمز المؤشر ومبادئ الوراثة في البرمجة الموجهة للكائنات في وثائقنا الفنية.

في القسم أدناه، سترى كتلة الرمز التي تحتوي على جميع إعدادات المؤشر الافتراضية. في البداية، سيحتوي هذا القسم فقط على الرمز التالي.

1
2
3
4
5
[Parameter(DefaultValue = "Hello world!")]
public string Message { get; set; }

[Output("Main")]
public IndicatorDataSeries Result { get; set; }

مباشرة أسفل إعلان المعلمة، يجب أن ترى طرق المؤشر. فكر في الطرق كأحداث معينة يتم تنفيذها عند بدء المؤشر وأيضًا عند تغذية بيانات الأسعار الجديدة إلى المؤشر. يحدد الجدول التالي ثلاث طرق رئيسية للمؤشر.

اسم الطريقة التعريف
Initialize() يتم استدعاء طريقة الحدث هذه عند إرفاق المؤشر بالرسم البياني. يتم استخدامها لتهيئة أي متغيرات تخطط لاستخدامها في مؤشرك. يمكنك أيضًا تحديد مؤشرات إضافية والإشارة إليها لإنشاء مؤشر واحد باستخدام صيغ من مؤشرات أخرى.
OnCalculate() يتم استدعاء هذه الطريقة عند كل تيك وارد من البيانات. داخل هذه الطريقة، يمكنك ترميز المنطق الذي سيعالج البيانات الواردة لحساب الخطوط المرسومة التالية التي يجب أن يعرضها المؤشر.
OnExcepion() يتم استدعاء هذه الطريقة إذا واجه مؤشرك استثناءً. يمكنك استخدامها لتحديد ما يجب أن يفعله مؤشرك عند التقاط خطأ. لاحظ أن هذه الطريقة غائبة عن نموذج رمز المؤشر الافتراضي.

كتابة رمز المؤشر

سنتابع الآن إضافة رمز مخصص إلى مؤشر المتوسط المتحرك البسيط الخاص بنا. سيتم عرض مؤشرنا على الرسم البياني للتداول كتراكب فوق نوع الرسم البياني الحالي.

أولاً، يجب علينا إعلان سمات فئة المؤشر كما ناقشنا سابقًا. سنضيف إعدادات السمات التالية إلى المؤشر.

1
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = false, AccessRights = AccessRights.None)] 

يمكنك تفسير الرمز أعلاه على النحو التالي:

  • IsOverlay = true - سيتم رسم المؤشر على الرسم البياني فوق الشموع أو أشرطة النطاق أو كتل Renko أو أي عناصر أخرى اعتمادًا على نوع الرسم البياني المختار.
  • TimeZone = TimeZones.UTC - سيستخدم المؤشر التوقيت العالمي المنسق وهو القيمة الافتراضية لجميع المؤشرات. يوصى بتغيير قيمة هذه السمة فقط إذا كان مؤشرك يستخدم أي نوع من ميزات التاريخ والوقت في حساباته.
  • AutoRescale = false - تحدد هذه السمة ما إذا كان يجب على المؤشر إعادة تحجيم الرسم البياني الذي تم إرفاقه به تلقائيًا. نظرًا لأن قيمة هذه السمة تساوي false، فلن يقوم مؤشرنا بإعادة تحجيم الرسم البياني.
  • AccessRights = AccessRights.None - لن يُسمح للمؤشر بالوصول إلى الإنترنت أو التلاعب بالملفات على الأجهزة المحلية.

يمكننا الآن تحديد معلمات مؤشرنا. هذه هي الإعدادات التي يمكن ضبطها في لوحة الإعدادات بعد إضافة المؤشر إلى الرسم البياني. سنقوم بترميز المعلمات التالية:

  • مصدر البيانات لصيغة المؤشر.
  • الفترات المستخدمة في الصيغة.
  • نتيجة إخراج المؤشر المرسومة.

أضف المقتطف التالي إلى المؤشر.

1
2
3
4
5
6
7
8
[Parameter("Source")]
public DataSeries Source { get; set; }

[Parameter("Periods", DefaultValue = 14)]
public int Periods { get; set; }

[Output("Main", LineColor = "Turquoise")]
public IndicatorDataSeries Result { get; set; }

سنقوم بتعيين 14 كقيمة افتراضية للمعلمة Periods و turquoise كلون خط افتراضي. ومع ذلك، يمكنك تعيين هذه المعلمات إلى أي قيمة افتراضية تقريبًا مدعومة من قبل cTrader.

يمكننا الآن إضافة الرمز الذي سيرسم إخراج المؤشر على الرسم البياني باستخدام طريقة الحدث Calculate().

1
2
3
4
5
6
7
8
9
public override void Calculate(int index)
{
    var sum = 0.0;

    for (var i = index - Periods + 1; i <= index; i++)
    sum += Source[i];

    Result[index] = sum / Periods;
}

يقوم هذا الرمز بتعيين نتيجة حسابات المؤشر إلى المعلمة Result التي حددناها سابقًا.

بناء المؤشر واختباره

بمجرد الانتهاء من كتابة كود المؤشر الخاص بنا، يمكننا النقر على زر البناء الموجود في الشريط العلوي لواجهة مستخدم cTrader. بدلاً من ذلك، انقر بزر الماوس الأيمن على المؤشر الخاص بك واختر بناء في القائمة التي تم فتحها حديثًا أو اضغط على Ctrl + B.

إذا كان البناء ناجحًا، سترى رسالة خضراء في منطقة نتيجة البناء في أسفل محرر الكود.

Image title

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

Image title

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

Image title

سيؤدي هذا إلى إنشاء نسخة مؤشر جديدة لمخطط h1 لـ EURUSD. ومع ذلك، يمكنك تغيير نوع المخطط والإطار الزمني والرمز عن طريق النقر على النسخة وفتح القائمة ذات الصلة.

يجب أن تعرض علامة التبويب المعلمة التي ظهرت حديثًا المعلمات الثلاث القابلة للتخصيص التي قمنا ببرمجتها مسبقًا. يمكنك تركها كما هي أو تغيير قيمها مباشرة في واجهة مستخدم cTrader.

يجب أن يعرض مخطط التداول الآن مخرجات المؤشر. في حالتنا، سيكون هذا خطًا فيروزيًا يعرض المتوسط المتحرك البسيط.

إذا نقرت بزر الماوس الأيمن على الخط، فسترى نافذة جديدة تسمح بتخصيص معلمات المؤشر. على سبيل المثال، يمكننا تغيير لون خط الإخراج من الفيروزي إلى الأزرق. يمكننا أيضًا ضبط سمك الخط. لحفظ التغييرات، انقر على موافق.

ملاحظة

يسمح cTrader بالتبديل السريع بين مخرجات النسخة ونافذة محرر الكود للمؤشر المخصص الخاص بك. هذا يجعله الأداة المثالية لاختبار معلمات مؤشر معينة أو أي منطق حساب مخصص بسرعة.

إضافة المؤشر إلى مخطط مباشر

سننتقل الآن إلى علامة التبويب تداول في cTrader لإرفاق المؤشر المخصص الخاص بنا بمخطط مباشر. افتح المخطط للرمز الذي ترغب في تحليله.

في القائمة الموجودة في الأعلى، انقر على أيقونة المؤشرات لفتح قسم جديد.

بعد ذلك، حدد مخصص وفي القائمة التي ظهرت حديثًا، اختر المؤشر المخصص الذي أنشأناه (المتوسط المتحرك البسيط).

سترى نافذة جديدة تسمح لك بتخصيص معلمات المؤشر. بعد اختيار القيم التي تفضلها، انقر على موافق لإضافة المؤشر إلى المخطط للرمز المختار.

للعودة إلى نافذة إعدادات المؤشر، انقر بزر الماوس الأيمن على مخرجات المؤشر. في حالتنا، يمكننا النقر بزر الماوس الأيمن على الخط الفيروزي. بدلاً من ذلك، انقر على أيقونة الخصائص التي تظهر عند تمرير المؤشر فوق اسم المؤشر على المخطط.

ستظهر نافذة إعدادات المؤشر، وستتمكن من تغيير لون الخط المرسوم بالإضافة إلى سمكه.

Image title