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

كيفية استخدام المؤشرات في cBots

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

إنشاء cBot جديد

لرؤية جميع المؤشرات المخصصة المثبتة حاليًا على جهازك، انتقل إلى تطبيق Algo وانتقل إلى علامة التبويب المؤشرات.

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

أولاً، سنقوم بإنشاء cBot جديد وإعادة تسميته إلى شيء إعلامي مثل "SMA Robot". سيدخل cBot الخاص بنا في صفقة شراء عندما يتحول SMA إلى صعودي وسيدخل في صفقة بيع عندما يتحول SMA إلى هبوطي. لن يقوم cBot الخاص بنا بالتحوط لمراكزه، مما يعني أنه سيتم إغلاق المراكز المعاكسة عند كل إشارة جديدة.

تهيئة مؤشر

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

  1. انقر على زر إدارة المراجع.
  2. ابحث عن المؤشر الذي نريد الإشارة إليه في النافذة المفتوحة حديثًا.
  3. ضع علامة في المربع بجوار المؤشر الذي نريد الإشارة إليه.
  4. انقر على تطبيق.

بعد الإشارة إلى المؤشر، يمكننا إنشاء متغير مثيل من نوعه.

1
SampleSMA _sma;

ملاحظة

يجب أن يكون نوع المؤشر هو نفسه اسم فئة المؤشر. قد يكون هذا مختلفًا عن اسم ملف المؤشر.

الخطوة التالية هي تهيئة المؤشر في طريقة OnStart() الخاصة بنا. ومع ذلك، قبل أن نفعل ذلك، سنضيف معلمة إلى cBot ستسمح لنا بتكوين الفترات المستخدمة بواسطة مؤشر SMA المخصص.

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

يمكننا استخدام طريقة Indicators.GetIndicator<>() لتهيئة أي مؤشرات مخصصة نشير إليها. نحتاج إلى تحديد نوع المؤشر وتمرير معلمات المؤشر مفصولة بفواصل.

ملاحظة

يجب تمرير المعلمات بالترتيب المعلن في فئة المؤشر.

في حالتنا، النوع هو SampleSMA وسنمرر قيم المصدر لهذا المؤشر، والتي في هذه الحالة هي أسعار إغلاق الشموع ومعلمة Period.

1
_sma = Indicators.GetIndicator<SampleSMA>(Bars.ClosePrices, Periods);

تنفيذ منطق التداول

مع تهيئة مؤشرنا، يمكننا تنفيذ منطق التداول الخاص بنا. يحفظ مؤشر SMA المخصص الخاص بنا قيم المتوسط المتحرك في مجموعة Results. تتميز مجموعة Results بطريقتين مفيدتين، IsRising() و IsFalling(). تسمح لنا هذه الطرق بمعرفة ما إذا كانت نتائج المؤشر ترتفع أو تنخفض.

سنستخدم هذه الطرق لتنفيذ شروط التداول الخاصة بنا.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
protected override void OnBarClosed()
{
    if(_sma.Result.IsRising())
    {        

    }
    else if(_sma.Result.IsFalling())
    {

    }
}

سنقوم الآن بملء عبارات if الخاصة بنا. عندما يكون المتوسط المتحرك في ارتفاع، سنغلق جميع مراكز البيع ونفتح مركز شراء. بدلاً من ذلك، عندما يكون المتوسط المتحرك في انخفاض، سنغلق جميع مراكز الشراء ونفتح مركز بيع.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
protected override void OnBarClosed()
{
    if(_sma.Result.IsRising())
    {
        Close(TradeType.Sell);
        Open(TradeType.Buy);
    }
    else if(_sma.Result.IsFalling())
    {
        Close(TradeType.Buy);
        Open(TradeType.Sell);            
    }
}

في الكود الخاص بنا، استخدمنا طريقتين جديدتين لا توفرهما واجهة برمجة التطبيقات بشكل افتراضي. طريقة Open() تفتح مراكز جديدة بناءً على الاتجاه والكمية المحددة. طريقة Close() تغلق جميع المراكز ذات الاتجاه المحدد.

إليك كيفية تعريف طريقة Open().

1
2
3
4
5
private void Open(TradeType tradeType)
{
    if(Positions.Count == 0)
        ExecuteMarketOrder(tradeType, SymbolName, Volume, InstanceId);
}

لتنفيذ أمر داخل طريقة Open()، نحتاج أيضًا إلى إضافة معلمة Volume.

1
2
[Parameter(DefaultValue = 10000)]
public int Volume { get; set; }

كل ما تبقى هو تعريف طريقة Close().

1
2
3
4
5
private void Close(TradeType tradeType)
{
    foreach (var position in Positions.Where(p => p.TradeType == tradeType))
        position.Close();
}

إجراء الاختبار العكسي

كالعادة، قبل أن نسمح لـ cBot بالتداول نيابة عنا، سنقوم باختباره بشكل شامل. للقيام بذلك، أضف مثيلاً ثم انتقل إلى علامة التبويب الاختبار العكسي.

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

لمعرفة المزيد عن استخدام وتطوير cBots، لا تتردد في تصفح الأقسام الأخرى من الوثائق والاشتراك في قناتنا على YouTube ليتم إخطارك عندما ننشر فيديو جديدًا.

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

إنشاء cBot جديد

لرؤية جميع المؤشرات المخصصة المثبتة حاليًا على جهازك، انتقل إلى تطبيق Algo وانتقل إلى 'المؤشرات'