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

تشغيل روبوت cBot على مدار الساعة

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

نصيحة

حدّد بيانات اعتمادك مرة واحدة في متغيرات القشرة (shell). تستخدم جميع الأوامر التفاعلية أدناه هذه المتغيرات، مما يُبقي الخطوات مختصرة ويسهّل نقل النص البرمجي بين البيئات.

export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd

1. الاطلاع على معلمات روبوت cBot

يعرض metadata أسماء المعلمات التي يدعمها روبوت cBot وأنواعها، لتعرف الخيارات التي يجب تمريرها إلى run أو المفاتيح التي يجب إضافتها إلى ملف .cbotset. metadata أمر يعمل في الوضع الدفعي، ويقبل --ctid و--pwd-file مباشرةً.

ctrader-cli metadata --ctid=$CTID --pwd-file=$PWD_FILE $ALGO

2. حفظ مجموعة من المعلمات

ملف .cbotset هو ملف نصي بسيط يحتوي في كل سطر على زوج واحد بصيغة key=value. يمكن تعديل هذا الملف وإعادة استخدامه بسهولة أكبر من كتابة سطر أوامر طويل.

cat > mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF

استخدم أسماء المعلمات التي يعرضها metadata في الخطوة 1.

3. بدء تشغيل روبوت cBot على خادم VPS

يمكن تشغيل الأمر run في الوضع الدفعي أو الوضع التفاعلي. في الوضع الدفعي (من دون -q)، يقبل الأمر --ctid و--pwd-file مباشرةً من دون -q، وتبقى CLI قيد التشغيل حتى يتوقف روبوت cBot. شغّل الأمر على خادم VPS تحت إشراف أداة لإدارة العمليات (systemd أو tmux أو screen أو صورة Docker الرسمية أو --exit-on-stop).

ctrader-cli run --ctid=$CTID --pwd-file=$PWD_FILE \
    --account=$ACC $ALGO mycbot.cbotset --symbol=EURUSD --period=h1 --exit-on-stop

يؤدي --exit-on-stop إلى إنهاء عملية CLI عند توقف روبوت cBot، مما يسهل مراقبتها باستخدام systemd أو Docker.

إذا أردت تشغيله لفترات طويلة على خادم، فنفّذ الأمر نفسه داخل صورة Docker الرسمية لـcTrader CLI. تقبل الصورة الخيارات نفسها وتنهي التشغيل عند تلقي إشارات الإيقاف نفسها. يمكنك الاطلاع على إرشادات Docker الكاملة في مقالة cBots.

4. التحقق من أن روبوت cBot يعمل

من طرفية ثانية، يعرض cbots جميع مثيلات روبوتات cBot التي تعمل حاليًا على الحساب. تتضمن المخرجات معرّف المثيل الذي ستحتاج إليه في الخطوة التالية.

ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

5. الاطلاع على الأسعار المباشرة أثناء عمل روبوت cBot

أثناء عمل روبوت cBot، يتيح لك price الاطلاع على أسعار السوق من طرفية أخرى دون التأثير في المثيل الذي يعمل بالفعل.

ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD

6. إيقاف روبوت cBot عند انتهاء الجلسة

يوقف stop المثيل باستخدام معرّفه. خذ المعرّف من مخرجات cbots في الخطوة 4.

ctrader-cli stop --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --instance=13579246

إذا شغّلت CLI داخل القشرة التفاعلية، فأضف all وyes لإيقاف جميع المثيلات قيد التشغيل دفعة واحدة: stop all yes.

7. جمع الخطوات في نص برمجي لتشغيل خاضع للإدارة

احفظ التسلسل كاملًا باسم start-cbot.sh، وشغّله بواسطة systemd أو مهمة cron أو مسار نشر آلي. يحفظ النص البرمجي مجموعة المعلمات، ويشغّل روبوت cBot في الخلفية، وينتظر تأكيد بدء التشغيل، ثم يعرض معرّف المثيل لاستخدامه لاحقًا.

#!/usr/bin/env bash
set -euo pipefail

CTID=letstrade
ACC=7654321
PWD_FILE=$HOME/.ctrader/pwd
ALGO=/opt/mycbot.algo
SYMBOL=EURUSD
PERIOD=h1

cat > /opt/mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF

nohup ctrader-cli run --ctid=$CTID --pwd-file=$PWD_FILE \
    --account=$ACC $ALGO /opt/mycbot.cbotset --symbol=$SYMBOL --period=$PERIOD --exit-on-stop \
    > /var/log/mycbot.log 2>&1 &

sleep 10
ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

لإيقاف المثيل لاحقًا، نفّذ استدعاء stop الموافق للخطوة 6. يظل معرّف المثيل ثابتًا عبر استعلامات cbots المتكررة، لذا احتفظ به مرة واحدة وأعد استخدامه.

تسرد مراجع أوامر cTrader CLI جميع الخيارات المتاحة للأوامر المستخدمة في هذا الإجراء.

تحذير

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