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

إنشاء cBot في cTrader

يوضح هذا المقال خطوات إنشاء روبوت تداول للتداول الخوارزمي بلغة Python أو C#، ونشر الروبوت وتشغيله في cTrader.

نصيحة

باستخدام cTrader Windows أو Mac، يمكنك إنشاء روبوتات تداول بسرعة، أو الحصول على مساعدة من الذكاء الاصطناعي.

في علامة التبويب cBots في تطبيق Algo، انقر فوق زر جديد لفتح معالج إنشاء الخوارزمية.

أدخل اسمًا لـ cBot الخاص بك، ثم حدد لغة برمجة بين C# وPython.

اختر طريقة إنشاء من:

  • من الصفر - سيحتوي روبوت التداول الجديد على قالب أساسي فقط.

  • باستخدام قالب - ستتمكن من اختيار خوارزمية جاهزة من قائمة قوالب Python# أو C#، والتي تغطي مجموعة واسعة من أنواع cBot وإجراءات التداول الآلي.

ملاحظة

تحتوي الخوارزميات الجاهزة بالفعل على منطق تداول ومعلمات قابلة للتخصيص. هذه الـ cBots جاهزة للتشغيل بمجرد حفظها وبنائها.

بعد النقر فوق إنشاء، يفتح محرر الكود ويمكنك البدء في تحرير كود روبوت التداول.

تحرير الكود

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SupercBot : Robot
{
    // === Fields ===
    // Declare indicators, variables or parameters, state flags, etc. here

    protected override void OnStart()
    {
        // Called once when the cBot starts
        // Initialize indicators, variables, parameters, or subscribe to events
    }

    protected override void OnTick()
    {
        // Called on every market tick
        // Useful for high-frequency strategies (but may be CPU-intensive)
    }

    protected override void OnBar()
    {
        // Called at the start of each new bar (candle)
        // Preferred for most strategies to reduce CPU load
    }

    protected override void OnStop()
    {
        // Called when the cBot is stopped
        // Useful for cleanup, logging, or resetting state
    }

    // === Custom Methods ===
    // Add your own helper methods below to modularize your logic

    private void ExampleMethod()
    {
        // A placeholder for your custom logic (e.g., strategy evaluation)
    }

    private void ClosePositions()
    {
        // Example of a method that could close open positions
    }

    private bool CheckCondition()
    {
        // Example of a method that could return a boolean condition
        return false;
    }
}

تسبق سمة cBot Robot مع خصائصها الاختيارية مثل TimeZone وAccessRights إعلان فئة cBot (SupercBot).

غالبًا ما يتم تضمين هذه الطرق افتراضيًا:

  • يتم استدعاء طريقة OnStart() في كل مرة يتم فيها إطلاق مثيل من cBot الخاص بك.
  • يتم استدعاء طريقة OnTick() في كل نقرة.
  • يتم استدعاء طريقة OnBar() في كل شريط.
  • يتم استدعاء طريقة OnStop() في كل مرة يتوقف فيها مثيل من cBot الجديد الخاص بك عن العمل. ((4)) تنفذ طريقة OnTick() إجراءً معينًا في كل نقرة، مما يجعلها مكثفة لوحدة المعالجة المركزية. في العديد من حالات التداول، هناك حاجة قليلة لإجراء عمليات التداول في كل نقرة. استخدام طريقة OnBar() أكثر عملية.

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

ملاحظة

يتضمن المراجع جميع الفئات والأحداث والطرق والمتغيرات وما إلى ذلك لبناء الخوارزميات في cTrader، بينما تتوفر أمثلة الخوارزميات الكاملة والقوالب في مستودع GitHub.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class SupercBot():
    # === Fields ===
    # Declare indicators, variables, state flags, etc. here
    # self.example_indicator = None
    # self.some_flag = True

    def on_start(self):
        # Called once when the cBot starts
        # Initialize indicators, variables, parameters, or subscribe to events
        pass

    def on_tick(self):
        # Called on every market tick
        # Useful for high-frequency strategies (but may be CPU-intensive)
        pass

    def on_bar_closed(self):
        # Called at the start of each new bar (candle)
        # Preferred for most strategies to reduce CPU load
        pass

    def on_stop(self):
        # Called when the cBot is stopped
        # Useful for cleanup, logging, or resetting state
        pass

    # === Custom Methods ===
    # Add your own helper methods below to modularize your logic

    def example_method(self):
        # A placeholder for your custom logic (e.g., strategy evaluation)
        pass

    def close_positions(self):
        # Example of a method that could close open positions
        pass

    def check_condition(self):
        # Example of a method that could return a boolean condition
        return False

غالبًا ما يتم تضمين هذه الطرق افتراضيًا:

  • يتم استدعاء طريقة on_start في كل مرة يتم فيها تشغيل نسخة من cBot الخاص بك.
  • يتم استدعاء طريقة on_tick في كل نقرة.
  • يتم استدعاء طريقة on_bar_closed في كل شريط.
  • يتم استدعاء طريقة on_stop في كل مرة تتوقف فيها نسخة من cBot الجديد الخاص بك عن العمل.

تنفذ طريقة on_tick إجراءً معينًا في كل نقرة، مما يجعلها مكثفة لوحدة المعالجة المركزية. في العديد من حالات التداول، هناك حاجة قليلة لإجراء عمليات التداول في كل نقرة. استخدام طريقة on_bar_closed أكثر عملية.

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

طبق معرفتك الجديدة لتحرير كود روبوت التداول وتكييفه وفقًا لاحتياجاتك.

حفظ وبناء

احفظ الكود الخاص بك بالنقر على زر حفظ في أعلى محرر الكود أو استخدم اختصار Ctrl+S.

قبل أن تتمكن من استخدام cBot الخاص بك، تحتاج إلى التحقق من صحة الكود عن طريق بناء مشروع cBot. انقر على زر بناء في أعلى محرر الكود أو اضغط على Ctrl+B.

احفظ الكود الخاص بك بالنقر على أيقونة حفظ في أعلى محرر الكود أو استخدم اختصار Cmd+S.

قبل أن تتمكن من استخدام cBot الخاص بك، تحتاج إلى التحقق من صحة الكود عن طريق بناء مشروع cBot. انقر على أيقونة بناء في أعلى محرر الكود أو اضغط على Cmd+B.

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

إذا كانت هناك تغييرات في الكود منذ آخر عملية بناء، تظهر علامة نجمة بجوار أيقونة بناء. في هذه الحالة، يجب عليك بناء cBot مرة أخرى قبل بدء نسخة منه.

بمجرد أن تنجح في بناء cBot، يصبح cBot جاهزًا للعمل، ولكنه يبدأ العمل فقط عندما تبدأ نسخة.

Image title