cTrader Automate: ابنِ روبوتات التداول باستخدام C# (وداعًا لـ MQL5!)
هل تشعرون بالإحباط من قيود MQL5؟ اكتشفوا cTrader Automate، المنصة القوية لبناء روبوتات فوركس مخصصة بلغة C# الحديثة. يرشدكم هذا الدليل لإنشاء واختبار ونشر أول استراتيجية آلية لكم.
Isabella Torres
محلل المشتقات

هل أنتم متداولون متوسطو الخبرة في الفوركس سئمتم من التنفيذ اليدوي، أو ربما تشعرون بالإحباط من قيود ومجتمع MQL5 المتخصص في التداول الخوارزمي؟ تخيلوا عالمًا تُنفذ فيه استراتيجيات التداول المعقدة الخاصة بكم بشكل لا تشوبه شائبة على مدار الساعة طوال أيام الأسبوع، وتتم إدارتها بواسطة روبوتات قوية ومصممة خصيصًا. بالنسبة للكثيرين، كان العائق أمام الدخول هو التعقيد المتصور للبرمجة أو القيود الخاصة بالمنصة.
ستزيل هذه المقالة الغموض عن cTrader Automate (المعروفة سابقًا باسم cAlgo)، وتكشف كيف يمكنكم الاستفادة من قوة C# - وهي لغة برمجة حديثة ومتعددة الاستخدامات ومدعومة على نطاق واسع - لبناء روبوتات تداول متفوقة. انسوا منحنى التعلم الحاد والنظام البيئي المعزول لـ MQL5؛ واكتشفوا كيف تقدم cTrader Automate بديلاً أكثر سهولة وقوة وملاءمة للمستقبل لأتمتة استراتيجيات الفوركس الخاصة بكم.
إطلاق العنان للتداول الخوارزمي: ميزة cTrader Automate و C#
إذا كنتم مستعدين لتجاوز النقر على الأزرار والبدء في تنظيم تداولاتكم بشكل منهجي، فإن cTrader Automate هي صديقكم المفضل الجديد. إنها بيئة التطوير المتكاملة داخل منصة cTrader المصممة خصيصًا لبناء أنظمة تداول آلية ومؤشرات مخصصة. إنها المكان الذي تتحول فيه أفكاركم التجارية إلى كود يتم تنفيذه بسرعة البرق وبدون أي مشاعر.
فهم cTrader Automate: روبوتات cBots مقابل المؤشرات
ضمن cTrader Automate، يمكنكم إنشاء نوعين رئيسيين من الأدوات:
- cBots (روبوتات التداول): هذه هي الأدوات الأساسية للتداول الخوارزمي. الـ cBot هو استراتيجية تداول آلية بالكامل يمكنها تحليل بيانات السوق، واتخاذ قرارات التداول، وتنفيذ الأوامر نيابة عنكم. فكروا فيه كخطة تداولكم، مبرمجة في برنامج يعمل على مدار الساعة طوال أيام الأسبوع دون تدخل.
- المؤشرات المخصصة: بينما تأتي cTrader مع مجموعة من المؤشرات المدمجة، قد تكون لديكم صيغة فريدة أو طريقة خاصة لتصور بيانات السوق. تسمح لكم المؤشرات المخصصة ببرمجة أدواتكم التحليلية الخاصة التي يمكنكم بعد ذلك وضعها على الرسوم البيانية، تمامًا مثل مؤشر RSI أو المتوسط المتحرك القياسي.
C# مقابل MQL5: تفوق اللغة الحديثة
لسنوات، كانت لغة MQL الخاصة بمنصة MetaTrader هي اللغة الافتراضية لتداول الخوارزميات للأفراد. لكنها لغة متخصصة تشبه لغة C مع نظام بيئي محدود. تستخدم cTrader Automate لغة C# (سي شارب)، وهي لغة قوية وموجهة للكائنات طورتها Microsoft. إليكم لماذا يغير هذا قواعد اللعبة بالنسبة لكم:
- مجتمع مطورين ضخم: هل واجهتكم مشكلة؟ مع C#، لديكم إمكانية الوصول إلى مجتمع عالمي يضم الملايين من المطورين عبر منصات مثل Stack Overflow. أنتم لستم محصورين في منتدى صغير خاص بالتداول.

- مكتبات واسعة (.NET Framework): تمنحكم C# إمكانية الوصول إلى مكتبة .NET بأكملها، وهي مجموعة واسعة من الأكواد المكتوبة مسبقًا لكل شيء بدءًا من الحسابات الرياضية المعقدة إلى التعلم الآلي وتحليل البيانات. هذا يعني أنه يمكنكم بناء روبوتات أكثر تطورًا بكثير دون إعادة اختراع العجلة.
- ميزات حديثة وسهولة القراءة: لغة C# ببساطة أسهل في القراءة والكتابة والصيانة من MQL. تساعد طبيعتها الموجهة للكائنات على تنظيم الكود الخاص بكم بشكل منطقي، وهو أمر حاسم كلما أصبحت استراتيجياتكم أكثر تعقيدًا.
- تعدد الاستخدامات خارج التداول: المهارات التي تتعلمونها في C# قابلة للتحويل مباشرة إلى تطوير الويب وتطوير الألعاب وبرامج المؤسسات. أنتم لا تتعلمون لغة تداول فقط؛ بل تتعلمون مهارة برمجية قيمة ومطلوبة في السوق.
نصيحة احترافية: لا تدعوا مصطلح "البرمجة" يخيفكم. تشتهر C# ببنيتها الواضحة، وتوفر cTrader Automate قوالب ووثائق ممتازة لمساعدتكم على البدء. لمزيد من المعلومات حول اللغة نفسها، يعد توثيق Microsoft C# الرسمي مصدرًا لا يقدر بثمن.
أول cBot لكم: الهيكل والمنطق وتنفيذ الأوامر
هل أنتم مستعدون للبدء بالعمل؟ دعونا نحلل المكونات الأساسية لـ cBot. يكمن جمال cTrader Automate في أنها توفر قالبًا نظيفًا ومنظمًا، لذلك لن تبدأوا أبدًا من صفحة فارغة.
إعداد مشروع cBot الخاص بكم ومعالجات الأحداث الأساسية
عند إنشاء cBot جديد في cTrader Automate، سيتم تقديم ملف كود يحتوي على بعض الدوال الرئيسية تسمى "معالجات الأحداث". هذه هي قلب الروبوت الخاص بكم، حيث تقوم بتشغيل الإجراءات بناءً على أحداث سوق محددة.
OnStart(): تعمل هذه الدالة مرة واحدة فقط عند بدء تشغيل cBot. إنها المكان المثالي لمهام التهيئة، مثل تعيين المتغيرات الأولية، أو طباعة رسالة ترحيب في السجل، أو حساب قيمة لمرة واحدة.OnTick(): تعمل هذه الدالة مع كل حركة سعرية (tick) للرمز المحدد. إنها مثالية للاستراتيجيات التي تتطلب اتخاذ قرارات عالية التردد، ولكن احذروا: يمكن أن تستهلك الكثير من الموارد.OnBar(): هذا هو المعالج الأكثر شيوعًا للعديد من الاستراتيجيات. يعمل مرة واحدة عند إغلاق كل شمعة جديدة (على سبيل المثال، كل ٥ دقائق على مخطط M5). هذا هو المكان الذي ستضعون فيه عادةً منطقكم لتحليل المؤشرات والبحث عن إعدادات التداول، مثل تلك القائمة على استراتيجية تداول شمعة الدبوس (Pin Bar).
تنفيذ أوامر التنفيذ الأساسية
بمجرد أن يحدد منطقكم صفقة ما، تحتاجون إلى إخبار الروبوت بكيفية التصرف. إليكم الأوامر الأساسية التي ستستخدمونها:
ExecuteMarketOrder(): هذا هو الأمر الأساسي للدخول في صفقة بسعر السوق الحالي.PlaceLimitOrder()/PlaceStopOrder(): لوضع الأوامر المعلقة التي تنتظر وصول السعر إلى مستوى معين.ModifyPosition(): يستخدم لتعديل وقف الخسارة أو جني الأرباح لصفقة قائمة.ClosePosition(): للخروج من صفقة بناءً على قواعد استراتيجيتكم.

دعونا نلقي نظرة على مثال بسيط للغاية. تخيلوا استراتيجية تقاطع متوسط متحرك أساسية. قد يبدو المنطق داخل دالة OnBar() الخاصة بكم شيئًا كهذا:
// This is a simplified example for illustrative purposes.
// Define your moving averages
var fastMA = Indicators.SimpleMovingAverage(MarketSeries.Close, 10);
var slowMA = Indicators.SimpleMovingAverage(MarketSeries.Close, 50);
// Get the most recent values
var currentFastMA = fastMA.Result.Last(1);
var previousFastMA = fastMA.Result.Last(2);
var currentSlowMA = slowMA.Result.Last(1);
var previousSlowMA = slowMA.Result.Last(2);
// Check for a bullish crossover
if (previousFastMA <= previousSlowMA && currentFastMA > currentSlowMA)
{
// Check if we don't already have an open position
if (Positions.Count == 0)
{
ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000, "MyFirstBot_Buy");
}
}يتحقق هذا المقتطف مما إذا كان المتوسط المتحرك البسيط لـ ١٠ فترات قد تقاطع للتو فوق المتوسط المتحرك البسيط لـ ٥٠ فترة. إذا حدث ذلك، ولم تكن هناك صفقات مفتوحة، فإنه ينفذ أمر شراء لـ ١٠,٠٠٠ وحدة.
التحقق من تفوقكم: الاختبار الرجعي الفعال والتحسين
امتلاك فكرة وبرمجتها هو مجرد البداية. الخطوة الأكثر أهمية هي التحقق. هل تتمتع استراتيجيتكم بالفعل بميزة إحصائية؟ يعد محرك الاختبار الرجعي المدمج في cTrader أداة قوية للإجابة على هذا السؤال.
الاستفادة من محرك الاختبار الرجعي المدمج في cTrader
يسمح لكم الاختبار الرجعي بتشغيل cBot الخاص بكم على بيانات الأسعار التاريخية لمعرفة كيف كان أداؤه. توفر cTrader بيانات تيك عالية الجودة، مما يسمح بمحاكاة أكثر دقة بكثير من العديد من المنصات الأخرى للأفراد. بعد إجراء اختبار رجعي، سيتم تقديم تقرير أداء مفصل لكم. المقاييس الرئيسية التي يجب التركيز عليها هي:
- منحنى رأس المال (Equity Curve): تمثيل مرئي لرصيد حسابكم بمرور الوقت. تريدون أن تروا منحنى صاعدًا وثابتًا، وليس أفعوانية متقلبة.
- أقصى تراجع (Max Drawdown): أكبر انخفاض في رأس مالكم من القمة إلى القاع. هذا هو أهم مقياس للمخاطر لديكم. يشير التراجع الكبير إلى استراتيجية محفوفة بالمخاطر.
- عامل الربح (Profit Factor): إجمالي الربح مقسومًا على إجمالي الخسارة. تعتبر القيمة التي تزيد عن ١.٥ جيدة بشكل عام، مما يدل على أن صفقاتكم الرابحة أكبر بكثير من صفقاتكم الخاسرة.
- معدل النجاح (Win Rate): النسبة المئوية للصفقات التي كانت مربحة. معدل النجاح المرتفع ليس كل شيء؛ يمكنكم أن تكونوا مربحين بمعدل نجاح ٤٠٪ إذا كانت أرباحكم أكبر بكثير من خسائركم.
تقنيات التحسين الذكية: تجنب المزالق الشائعة
التحسين هو عملية اختبار مجموعة من معلمات الإدخال (على سبيل المثال، فترات المتوسط المتحرك المختلفة) للعثور على التركيبة الأكثر ربحية. على الرغم من قوتها، إلا أن هذا هو المكان الذي يفشل فيه العديد من متداولي الخوارزميات الطموحين.
تحذير: الخطر الأكبر هو التحسين المفرط أو التوفيق المنحنى (curve-fitting). يحدث هذا عندما تقومون بتعديل معلماتكم بشكل مثالي لتناسب البيانات التاريخية لدرجة أن الاستراتيجية تفقد قوتها التنبؤية على البيانات الحية وغير المرئية. تبدو مذهلة في الاختبارات الرجعية ولكنها تفشل فشلاً ذريعًا في العالم الحقيقي.
لتجنب هذا:
- اجعلوها بسيطة: الاستراتيجيات ذات المعلمات الأقل تكون بشكل عام أكثر قوة.
- استخدموا بيانات خارج العينة: قوموا بإجراء التحسين على فترة واحدة (على سبيل المثال، ٢٠٢٠-٢٠٢٢) ثم اختبروا أفضل المعلمات على فترة مختلفة وغير مرئية (على سبيل المثال، ٢٠٢٣-٢٠٢٤). إذا كان أداؤها لا يزال جيدًا، فمن المرجح أن تكون قوية.

- المعلمات المنطقية: تأكدوا من أن المعلمات التي اخترتموها منطقية من منظور التداول. لا تختاروا أرقامًا عشوائية تنتج منحنى رأس مال جميلًا.
يعد الاختبار الرجعي القوي خطوة غير قابلة للتفاوض على طريق تحقيق دخل واقعي من تداول الفوركس.
البرمجة من أجل السلامة: تنفيذ إدارة مخاطر قوية في cBots
يمكن أن تمحو خسارة كارثية واحدة استراتيجية مربحة. يجب أن يحتوي cBot الخاص بكم على إدارة مخاطر صارمة مبرمجة مباشرة في حمضه النووي. هذا هو المكان الذي تتألق فيه الأتمتة حقًا، حيث تفرض الانضباط الذي غالبًا ما يفتقر إليه المتداولون البشر.
وقف الخسارة الديناميكي، وجني الأرباح، ووقف الخسارة المتحرك
بدلاً من استخدام قيم نقاط ثابتة، يمكنكم جعل معلمات المخاطر الخاصة بكم ديناميكية ومستجيبة للسوق.
- وقف الخسارة المعتمد على ATR: حددوا وقف الخسارة بناءً على مضاعف لمتوسط المدى الحقيقي (ATR). هذا يكيف مخاطركم مع تقلبات السوق - وقف خسارة أوسع في الأسواق المتقلبة، ووقف خسارة أضيق في الأسواق الهادئة.
- الخروج المعتمد على الهيكل: برمجوا الروبوت الخاص بكم لوضع وقف الخسارة أسفل أحدث قاع تأرجحي (لصفقة شراء) أو جني الأرباح عند مستوى مقاومة رئيسي.
- وقف الخسارة المتحرك: نفذوا وقف خسارة متحركًا يتحرك تلقائيًا للأعلى لتأمين الأرباح مع تحرك الصفقة لصالحكم. واجهة برمجة تطبيقات cTrader تجعل برمجة هذا الأمر سهلة.
تحديد حجم الصفقة وحماية على مستوى الحساب
هذا هو أهم عنصر في إدارة المخاطر. لا تقوموا أبدًا بترميز حجم عقد ثابت. يجب أن يكون حجم صفقتكم دائمًا دالة على رأس مال حسابكم والمخاطر المحددة مسبقًا.
إليكم مقتطف C# مفاهيمي لحساب حجم الصفقة بناءً على المخاطرة بنسبة ١٪ من حسابكم:
// Example of dynamic position sizing
double riskPercentage = 0.01; // 1% risk
double stopLossInPips = 30;
double stopLossInMoney = Account.Equity * riskPercentage;
double pipValue = Symbol.PipValue;
double volumeInUnits = (stopLossInMoney / (stopLossInPips * pipValue));
// Normalize the volume to the symbol's requirements
var finalVolume = Symbol.NormalizeVolumeInUnits(volumeInUnits, RoundingMode.Down);
ExecuteMarketOrder(TradeType.Buy, SymbolName, finalVolume);بالإضافة إلى مخاطر الصفقة الواحدة، ضعوا في اعتباركم الحماية على مستوى الحساب. يمكنكم برمجة cBot الخاص بكم للتوقف عن التداول لليوم أو الأسبوع إذا وصل إلى حد أقصى للتراجع (على سبيل المثال، خسارة ٥٪ من الحساب). يعمل هذا كقاطع دائرة لمنع اتخاذ القرارات العاطفية أو الخسائر الجامحة من روبوت معيب. هذا أمر أساسي لإتقان أي استراتيجية، بما في ذلك تلك القائمة على أنماط مثل نموذج الكوب والعروة حيث تكون إدارة المخاطر أساسية.
التداول المباشر: النشر والمراقبة والاستضافة السحابية
بعد الاختبار الرجعي الدقيق والاختبار المستقبلي على حساب تجريبي، أنتم مستعدون للانطلاق. إن نشر cBot الخاص بكم بسيط مثل تحديده من علامة التبويب Automate، واختيار الرمز والإطار الزمني، والنقر على زر "تشغيل".
تشغيل cBots مباشرة والمراقبة المستمرة للأداء

مهمتكم لا تنتهي بمجرد تشغيل الروبوت. يجب عليكم مراقبة أدائه عن كثب، خاصة في المراحل المبكرة.
- تحققوا من السجل: سجل cBot هو نافذتكم إلى دماغه. سيُظهر لكم كل إجراء تم اتخاذه، وأي أخطاء تمت مواجهتها، وأي رسائل مخصصة قمتم ببرمجتها.
- قارنوا مع الاختبارات الرجعية: هل يتوافق الأداء المباشر مع توقعاتكم من الاختبار الرجعي؟ إذا لم يكن كذلك، فلماذا؟ هل يرجع ذلك إلى الانزلاق السعري، أو السبريد، أو تغير في ظروف السوق؟
- استخدموا التنبيهات: يمكنكم برمجة cBot الخاص بكم لإرسال إشعارات عبر البريد الإلكتروني أو الإشعارات الفورية للأحداث الهامة، مثل عند فتح صفقة أو إغلاقها أو حدوث خطأ. يعد فهم الآثار الضريبية لهذه الأرباح الآلية أمرًا بالغ الأهمية أيضًا، كما هو مفصل في دليلنا لضرائب تداول الفوركس.
مزايا الاستضافة السحابية من cTrader
تقليديًا، كان تشغيل الروبوت على مدار الساعة طوال أيام الأسبوع يتطلب إما ترك جهاز الكمبيوتر المنزلي قيد التشغيل (غير موثوق) أو استئجار خادم افتراضي خاص (VPS)، مما يضيف تكلفة وتعقيدًا. لدى cTrader حل أنيق ومتكامل.
تسمح لكم الاستضافة السحابية من cTrader بتحميل cBot الخاص بكم إلى خوادمهم. هذا يعني أن الروبوت الخاص بكم يمكن أن يعمل على مدار الساعة طوال أيام الأسبوع بزمن انتقال منخفض للغاية إلى خوادم التداول، حتى عندما يكون جهاز الكمبيوتر الخاص بكم مغلقًا. إنه حل أكثر استقرارًا وأمانًا وفعالية من حيث التكلفة من VPS التقليدي، مما يجعله مثاليًا لمتداولي الخوارزميات الجادين.
المستقبل مؤتمت
تقدم cTrader Automate، المدعومة بلغة C# القوية، بديلاً مقنعًا ومتفوقًا للمتداولين المتوسطين المستعدين لتنظيم تفوقهم بشكل منهجي. لقد استعرضنا قدراتها الأساسية، من بناء واختبار أول روبوت لكم إلى دمج إدارة المخاطر الحاسمة ونشره على السحابة.
توفر مرونة C# جنبًا إلى جنب مع منصة cTrader البديهية مجموعة أدوات قوية لأتمتة استراتيجياتكم، مما يضمن الدقة والانضباط والمشاركة المستمرة في السوق. إن الرحلة إلى التداول الخوارزمي هي تطور، وتزودكم cTrader Automate بالأدوات الاحترافية للتنقل فيها بفعالية.
هل أنتم مستعدون للارتقاء بتداولكم؟ قوموا بتنزيل cTrader، واستكشفوا cTrader Automate، وابدأوا في بناء أول روبوت C# لكم اليوم. للاستراتيجيات المتقدمة، وأمثلة الأكواد، ودعم المجتمع، تفضلوا بزيارة مدونة ومنتدى FXNX.
الأسئلة الشائعة
هل من الصعب تعلم C# لروبوتات التداول؟
بالنسبة لشخص ليس لديه خبرة في البرمجة، هناك منحنى تعليمي. ومع ذلك، تشتهر C# ببنيتها الواضحة، وتوفر cTrader Automate قوالب ممتازة. يجد العديد من المتداولين أنها أكثر سهولة ومنطقية للتعلم من اللغات القديمة مثل MQL5.
هل يمكنني تحويل مستشاري الخبير (Expert Advisor) من MQL5 إلى cBot في cTrader؟
لا توجد أداة تحويل مباشرة بنقرة واحدة. يختلف المنطق والهيكل، لذلك ستحتاجون إلى إعادة كتابة كود MQL5 بلغة C#. على الرغم من أن هذا يتطلب جهدًا، إلا أنها فرصة رائعة لتحسين وتحسين كود الاستراتيجية الأصلية.
ما هي الميزة الرئيسية لـ cBot على التداول اليدوي؟
يزيل cBot العاطفة والتعب والخطأ البشري من تنفيذ الصفقات. يمكنه مراقبة أسواق متعددة وتنفيذ استراتيجية بانضباط تام، على مدار الساعة طوال أيام الأسبوع، وهو أمر يستحيل على المتداول البشري تحقيقه باستمرار.
كيف يتعامل cTrader Automate مع الاختبار الرجعي مع السبريد المتغير؟
محرك الاختبار الرجعي في cTrader متقدم للغاية ويمكنه استخدام بيانات التيك التاريخية التي تتضمن السبريد الحقيقي والمتغير في ذلك الوقت. يوفر هذا محاكاة أكثر واقعية لظروف التداول مقارنة بالمنصات التي تختبر فقط بسبريد ثابت ومصطنع.
عن الكاتب

Isabella Torres
محلل المشتقاتIsabella Torres is an Options and Derivatives Analyst at FXNX and a CFA charterholder. Born in Bogota and raised in Miami, she spent 7 years at JP Morgan's Latin American desk before transitioning to financial writing. Isabella specializes in forex options, volatility trading, and hedging strategies. Her bilingual background gives her a natural ability to connect with both English and Spanish-speaking traders, and she is passionate about making sophisticated derivatives strategies understandable for retail traders.
ترجمة بواسطة
نور حداد مترجمة مالية مبتدئة في FXNX. تحمل تخصصاً مزدوجاً في المالية والترجمة من الجامعة الأمريكية في بيروت، وتكمل حالياً فترة تدريبها في FXNX. تركّز نور على ضمان دقة المصطلحات المالية في الترجمات العربية، وهي ملتزمة بجعل تعليم الفوركس عالي الجودة متاحاً في جميع أنحاء منطقة الشرق الأوسط وشمال أفريقيا.