«اشترِ عند كسر المقاومة» جملة مفهومة لإنسان وغير قابلة للتنفيذ آليًا. أي مقاومة؟ وما تعريف الكسر: تجاوز السعر أم إغلاق الشمعة؟ وعلى أي إطار زمني؟ تحويل الاستراتيجية إلى كود يكشف الغموض الذي كان مستورًا في الصياغة اللفظية، وهذه فائدته الأولى قبل الأتمتة نفسها. يمشي المقال بفكرة واحدة بسيطة من جملة عربية إلى شروط محددة قابلة للاختبار، ويبيّن أين تنكسر الأفكار عادةً في هذا الطريق.
التداول الخوارزمي (Algorithmic Trading) هو استخدام قواعد قابلة للحساب لتوليد قرارات التداول أو تنفيذها أو كليهما. قد تكون الخوارزمية شرطين بسيطين يعملان مرة يوميًا، وقد تكون منظومة سريعة تراقب عدة أسواق. التعقيد ليس دليل جودة. كثير من الأخطاء الخطرة تبدأ حين يغطي الكود المتطور على فرضية غير واضحة.
الهدف الأول للمبتدئ ليس بناء روبوت يعمل بلا رقابة. الهدف أن يستطيع شخص آخر قراءة مواصفات الاستراتيجية، وتطبيقها على البيانات نفسها، والحصول على القرارات نفسها. بعد ذلك تأتي البرمجة والاختبار والتنفيذ.
ما الذي يفعله نظام التداول الخوارزمي؟
يمكن تقسيم النظام إلى 5 وظائف. لا يلزم أن تكون كلها آلية منذ اليوم الأول:
- يستقبل بيانات السوق ويجهزها.
- يحسب الشروط ويولد إشارة.
- يحدد حجم الصفقة وحدود المخاطرة.
- يرسل الأمر ويتابع تنفيذه.
- يراقب الحالة ويسجل كل قرار وخطأ.
قد يكتب المتداول مؤشرًا يرسم الإشارة فقط، ثم ينفذ يدويًا. هذه أتمتة جزئية ومفيدة. ويمكنه لاحقًا تحويل الإشارة إلى أمر تجريبي، ثم إلى تنفيذ حي بحجم صغير. القفز مباشرة إلى نظام يرسل أوامر بأموال حقيقية يجمع أخطاء الفكرة والبيانات والكود والتنفيذ في لحظة واحدة.
| المستوى | ما يفعله النظام | ما يبقى على المتداول |
|---|---|---|
| تنبيه | يكتشف الشرط ويرسل إشعارًا | مراجعة وتنفيذ القرار |
| شبه آلي | يحسب الحجم ويجهز الأمر | الموافقة والمتابعة |
| آلي مراقب | يرسل ويدير الأوامر | مراقبة الأعطال والتدخل عند الحاجة |
| آلي كامل | يدير الدورة وفق قواعد محددة | صيانة ومخاطر وتشغيل مستمر |
لا يعني المستوى الأعلى أنه أفضل. إذا كانت الاستراتيجية تعتمد على حدث نادر يحتاج تفسيرًا نوعيًا، فقد يناسبها تنبيه منضبط أكثر من تنفيذ أعمى.
حاسبة حجم المركز
القاعدة الأولى في إدارة المخاطر: حدّد كم تقبل أن تخسر، ودَع الحجم يُحسب منها.
- حجم المركز (وحدات)
- 20,000
- قيمة المركز
- $22,000
- مبلغ المخاطرة
- $100
- بلوت الفوركس القياسي
- ≈ 0.2
الفكرة تحت التفكيك
ابدأ من الجملة الأصلية واسأل عن كل كلمة فيها:
| الكلمة | السؤال | قرار قابل للبرمجة |
|---|---|---|
| المقاومة | أي مستوى بالضبط؟ | أعلى قمة خلال 20 شمعة |
| كسر | تجاوز أم إغلاق؟ | إغلاق الشمعة فوق المستوى |
| اشترِ | بأي أمر ومتى؟ | أمر سوق عند فتح الشمعة التالية |
| الخروج | لم تُذكر أصلًا | وقف تحت أدنى قاع خلال 10 شموع |
الجملة صارت أربعة شروط لا لبس فيها. لاحظ أن الخروج لم يكن في الصياغة الأصلية إطلاقًا، وهو الجزء الذي يحدد النتيجة أكثر من الدخول. هذا هو الكشف الأول الذي يمنحه التفكيك.
ما زالت المواصفات تحتاج قرارات أخرى. هل تشمل «أعلى قمة خلال 20 شمعة» الشمعة الحالية؟ ماذا يحدث إذا فتح السعر بفجوة فوق المستوى؟ هل نشتري مرة أخرى بينما المركز مفتوح؟ ما الحد الأقصى لعدد المراكز؟ وماذا نفعل إن كان وقف 10 شموع بعيدًا جدًا؟
كل سؤال مؤجل يتحول إلى فرع غير معرف في الكود. قد يختار المبرمج إجابة من عنده، فتختبر نظامًا غير الذي قصدته. اكتب القرار قبل كتابة الدالة.
نسخة أولية كاملة من القاعدة
يمكن صياغة الفكرة هكذا:
هذه ليست توصية باستراتيجية. إنها مثال على مواصفات يمكن اختبارها. كل رقم فرضية تحتاج دليلًا، وقد يفشل النظام بعد التكاليف أو في فترة تحقق.
من المواصفات إلى منطق شبه برمجي
قبل اختيار لغة، اكتب تسلسلًا يوضح متى تقرأ البيانات ومتى ترسل القرار:
لاحظ أن المقاومة تحسب من الشموع السابقة، لا من نافذة تضم الشمعة التي تحاول اختراقها. إذا ضممت الحالية، قد يصبح الشرط مستحيلًا أو يختلف معناه، بحسب طريقة الحساب.
كذلك لا تعرف سعر افتتاح الشمعة التالية مسبقًا. في الاختبار، يجب أن ينتظر النظام وصوله ثم يحسب الحجم الفعلي. استخدام إغلاق اليوم كسعر دخول بينما القاعدة تنفذ في الافتتاح التالي يقلل الفجوات بصورة مصطنعة.
أين تنكسر الأفكار
الشرط الذي لا يمكن قياسه. «حين يكون السوق قويًا» ليس شرطًا. إما أن تحوّله إلى قياس (السعر فوق متوسط متحرك لمئتي شمعة مثلًا) أو تحذفه. الشروط التي تقاوم التحويل إلى رقم هي غالبًا تقديرات شخصية تختلف من يوم لآخر، وهي بالضبط ما يجعل النتائج غير قابلة للتكرار.
النظر إلى المستقبل. أشهر خطأ في الاختبار الآلي: استخدام معلومة لم تكن متاحة وقت القرار. استخدام إغلاق الشمعة الحالية لاتخاذ قرار عند فتحها يعطي نتائج ممتازة ومستحيلة. القاعدة: كل شرط يجب أن يعتمد على شموع مكتملة سابقة فقط.
تعدد الشروط. كل شرط إضافي يقلّل عدد الصفقات ويزيد ملاءمة النظام للبيانات التي بُني عليها. استراتيجية بثمانية شروط تعطي نتيجة رائعة على الماضي وتفشل على المستقبل، لأنها وصفت الماضي بدل أن تصف السوق.
هذه الأخطاء الثلاثة ليست أخطاء صياغة فقط. الأول يجعل التنفيذ غير متكرر، والثاني يخلق أرباحًا مستحيلة، والثالث يرفع خطر الإفراط في الملاءمة. قد يعمل الكود بلا أي رسالة خطأ ومع ذلك تكون النتيجة عديمة القيمة.
خطأ التوقيت داخل الشمعة
إذا لمست شمعة واحدة الوقف والهدف، لا تعرف البيانات اليومية أيهما حدث أولًا. اختيار الهدف دائمًا يرفع الأداء، واختيار الوقف دائمًا محافظ لكنه قد يقلله. الحل استخدام بيانات أدق أو قاعدة تنفيذ معلنة، ثم اختبار حساسية النتيجة.
تجاهل الأصول التي اختفت
اختبار أسهم اليوم على الماضي يستبعد شركات خرجت أو أفلست. يسمى ذلك تحيز البقاء. تحتاج قائمة المكونات كما كانت تاريخيًا إذا كانت الاستراتيجية تختار من كون أسهم متغير.
عدم تعديل البيانات بصورة مناسبة
تؤثر الانقسامات والتوزيعات والعقود المستمرة في الأسعار. قد يظهر انقسام سهم كهبوط 50% في بيانات غير معدلة، فيولد إشارة وهمية. نوع التعديل يعتمد على السؤال، لذلك لا تستخدم ملفًا لمجرد أنه طويل.
مثال رقمي على أثر التعريف
القاعدة نفسها بتعريفين مختلفين للكسر، على العينة نفسها:
التعريف الأول يلتقط كل اختراق وهمي داخل الشمعة. الفرق ليس في الفكرة بل في كلمة واحدة، وهو ما يوضح لماذا لا يمكن اختبار استراتيجية لفظية: كل قارئ يختبر شيئًا مختلفًا.
لا تخبرنا الأرقام إن كان التعريف الثاني سيعمل مستقبلًا. ربما اختير لأنه أعطى نتيجة أفضل على العينة نفسها. نحتاج فترة تحقق لم تدخل في الاختيار، مع رسوم وانزلاق وتنفيذ واقعي.
احسب كذلك مقدار الفرق بعد إزالة أفضل الصفقات. توقع 0.31R قد يعتمد على 3 فجوات صاعدة لا يستطيع أمر السوق التقاطها بالسعر المفترض. افتح تلك الصفقات يدويًا وتحقق من البيانات والتوقيت.
اختر بيانات تناسب القرار
إذا كان القرار عند إغلاق يومي، تحتاج أسعار افتتاح وأعلى وأدنى وإغلاق وحجم وفق السوق. وإذا كان التنفيذ داخل الدقيقة، لا تكفي بيانات يومية. كلما دق الإطار، زادت تحديات التوقيت وجودة الأسعار والفروق والصفقات المفقودة.
تأكد من المنطقة الزمنية. الشمعة اليومية لسوق يعمل 24 ساعة قد تبدأ عند وقت يختلف بين مزودي البيانات، فتتغير القمم والمؤشرات. وفي الأسهم، يجب أن تفرق بين الجلسة الرسمية والتداول الممتد إذا كانت القواعد تستخدم الافتتاح أو الحجم.
بيانات العرض والطلب أدق للتنفيذ من السعر الأخير، لكنها أغلى وأثقل. للمبتدئ، الأفضل اختيار استراتيجية لا تعتمد على تفاصيل لا يملك بياناتها، بدل اختراع افتراضات دقيقة ظاهريًا.
| نوع القرار | الحد الأدنى المعقول من البيانات | الخطر إذا كانت البيانات أضعف |
|---|---|---|
| إشارة يومية | شموع يومية سليمة وتقويم جلسات | فجوات وتعديلات خاطئة |
| دخول خلال الساعة | بيانات ساعية أو أدق | ترتيب الوقف والهدف غير معروف |
| تنفيذ سريع | عروض وطلبات وتوقيت دقيق | انزلاق وسيولة غير ممثلين |
| محفظة أسهم | مكونات تاريخية وإجراءات شركات | تحيز البقاء والاختيار |
ابنِ الاختبار قبل بناء الروبوت
الاختبار التاريخي محرك يمر على البيانات بترتيبها، ويولد الإشارات، ويطبق الحجم والتنفيذ، ثم يسجل النتائج. لا يكفي أن يرسم سهمًا فوق الشمعة الصحيحة. يجب أن يعرف حالة الحساب والمراكز والأوامر.
ابدأ بنظام بسيط يملك مركزًا واحدًا. بعد التحقق، أضف تعدد الأصول والتعرض المتزامن. التعقيد المبكر يخفي الأخطاء: قد يستخدم كل أصل رأس المال كاملًا، فيظهر الاختبار 10 مراكز لا يستطيع الحساب تمويلها.
أدخل على الأقل:
- عمولة التداول.
- فرق الشراء والبيع أو تقديرًا له.
- انزلاقًا يتناسب مع الأداة والحجم.
- تأخير الإشارة إلى وقت تنفيذ ممكن.
- قيود الحجم والحد الأدنى للعقد.
- الفجوات عبر الوقف.
- عدم تنفيذ أمر الحد إذا لم يتداول السعر عنده بكمية كافية.
فصل التدريب عن التحقق
تستخدم فترة التدريب لتطوير التعريفات والمعلمات. ثم تجمد القواعد وتطبقها على فترة تحقق لم تدخل في القرارات. إذا عدلت بعد رؤية التحقق، أصبحت تلك الفترة جزءًا من التدريب، وتحتاج إلى بيانات جديدة للاختبار المستقل.
لا تختَر نافذة 20 شمعة لأنها أعطت أعلى عائد بين 2 و200 ثم تعتبرها حقيقة. افحص منطقة من القيم. إذا عملت 18 و20 و22 بصورة متقاربة، تبدو الفكرة أقل حساسية من نظام يعمل عند 20 فقط وينهار عند 19.
يمكن استخدام اختبار متقدم زمنيًا: تبني القاعدة على نافذة سابقة، وتختبرها على نافذة تالية، ثم تحرك الزمن. لكنه لا يمنع الإفراط في الملاءمة إذا جربت عشرات القرارات وانتقيت أفضل تقرير.
سجل عدد المحاولات. نتيجة ممتازة بعد 300 تجربة مختلفة تحمل احتمال مصادفة أعلى من نتيجة مقبولة لفكرة اختبرت مرة أو مرتين بناء على منطق سابق.
لا تختصر التقييم في صافي الربح
قد ينتهي اختباران عند الربح نفسه ويختلفان جذريًا في المخاطرة وقابلية التنفيذ. التقرير المفيد يعرض كيف وصل النظام، لا أين انتهى فقط.
ابدأ بالتوقع الرياضي بوحدة R:
إذا ربح النظام 42% من الصفقات بمتوسط 1.8R، وخسر 58% بمتوسط 0.9R:
النتيجة موجبة في العينة، لكنها لا تخبرك بتسلسل الخسائر أو اعتماد الأرباح على صفقات قليلة. أضف المقاييس التالية:
| المقياس | السؤال الذي يجيب عنه |
|---|---|
| عدد الصفقات | هل العينة كافية لتقدير أولي؟ |
| معدل الربح | كم مرة تنجح الإشارة؟ |
| متوسط الربح والخسارة | هل أحجام النتائج تدعم المعدل؟ |
| التوقع | ما متوسط النتيجة لكل صفقة؟ |
| أكبر تراجع | ما الهبوط الذي ظهر في المسار؟ |
| مدة التعافي | كم بقي النظام تحت قمته؟ |
| أطول سلسلة خسائر | ما الضغط السلوكي والمالي؟ |
| حصة أفضل الصفقات | هل الربح مركز في حالات نادرة؟ |
| معدل الدوران | كم تستهلك التكاليف؟ |
| التعرض الأقصى | كم مركزًا وعاملًا اجتمعا؟ |
أكبر تراجع تاريخي ليس سقفًا للمستقبل. أعد ترتيب الصفقات أو استخدم محاكاة مناسبة لرؤية مسارات أخرى، واختبر تكاليف أعلى وخسارة فجوة. إذا اختفى التوقع بعد زيادة طفيفة في الانزلاق، فالنظام حساس للتنفيذ.
افحص التوزيع حسب الظروف
قسّم النتائج بحسب اتجاه السوق والتقلب والجلسة والأداة. قد يأتي الربح كله من سوق صاعد، بينما يستهلك النظام المال في النطاقات. التقسيم لا يهدف إلى حذف الفترات السيئة بعد رؤيتها، بل إلى فهم آلية الفكرة.
إذا قررت إضافة مرشح نظام سوق، عرّفه واختبره على بيانات أخرى. لا تكتب شرطًا يستبعد كل خسارة تاريخية واحدة تلو الأخرى.
قارن الخطة بالتنفيذ
أنشئ 3 أعمدة للنتيجة:
- اختبار تاريخي بعد تكاليف مفترضة.
- تداول تجريبي بأسعار حية.
- تنفيذ حي صافي عند تشغيله.
قارن متوسط الانزلاق ونسبة الأوامر المرفوضة ووقت الاستجابة وعدد الإشارات المفقودة. إذا حقق الاختبار 0.20R لكل صفقة والتجريبي 0.08R، فلا تفسر الفرق بالحظ مباشرة. قد تكون فرضية التنفيذ متفائلة.
حاسبة الربح والخسارة
ماذا لو خرجت عند هذا السعر؟ النتيجة بالدولار وبنسبة من قيمة المركز.
+80$
▲ 0.73٪ من قيمة المركز
بنية مشروع صغير يمكن صيانته
وضع كل شيء في ملف واحد يسهل أول تجربة ويصعب اكتشاف الخطأ لاحقًا. حتى المشروع الصغير يستفيد من فصل الوظائف منطقيًا:
| الوحدة | مسؤوليتها |
|---|---|
| البيانات | تحميل الأسعار والتحقق من حداثتها |
| المؤشرات | حساب المقاومة والقاع من مدخلات محددة |
| الإشارة | تحويل القيم إلى دخول أو خروج |
| المخاطر | حساب الحجم والتعرض والحدود |
| التنفيذ | إرسال الأوامر وقراءة الردود |
| المحفظة | حفظ المراكز والرصيد الحقيقيين |
| السجل | توثيق القرار والأمر والتنفيذ والخطأ |
| المراقبة | تنبيه الإنسان وإيقاف النظام عند الحاجة |
الفصل لا يتطلب إطارًا معقدًا. فائدته أن تستطيع اختبار حساب المقاومة من دون الاتصال بالسوق، واختبار الحجم من دون إرسال أمر. عندما يتغير مزود البيانات، لا تعيد كتابة منطق الاستراتيجية.
اجعل الإعدادات خارج المنطق
ضع نافذة 20 والوقف 10 والمخاطرة 0.4% في إعدادات واضحة، مع نسخة وتاريخ. لا تغيرها أثناء التشغيل من دون تسجيل. يجب أن يعرف التقرير أي نسخة صنعت كل صفقة.
لكن نقل الأرقام إلى ملف إعداد لا يمنع الإفراط في الملاءمة. يظل كل رقم قرارًا يحتاج اختبارًا. سهولة تغييره قد تشجع تجربة مئات التركيبات، لذلك قيد عملية البحث مسبقًا.
الوقت جزء من البيانات
خزن الطوابع الزمنية في معيار موحد، ثم حولها للعرض. احتفظ بتقويم السوق والعطلات والتوقيت الصيفي. خطأ ساعة واحدة يستطيع نقل الإشارة من شمعة إلى أخرى أو إرسال أمر والسوق مغلق.
لا تعتمد على ساعة الجهاز وحدها. تحقق من وقت مصدر البيانات ووقت جهة التنفيذ، وسجل الاثنين عند الحاجة. إذا تأخرت البيانات 10 دقائق، يجب أن يرفض النظام التعامل معها كأنها حية.
قابلية إعادة الاختبار
احتفظ بنسخة البيانات أو معرفها، ونسخة الكود، والإعدادات، والتكاليف، وتاريخ التشغيل. إذا لم تستطع إعادة التقرير نفسه، لا تستطيع معرفة أثر تعديل لاحق.
قد يصحح مزود البيانات تاريخًا قديمًا، فتتغير النتيجة. هذا مفيد للدقة، لكنه يحتاج توثيقًا حتى لا تنسب الفرق إلى الكود. سجل مصدر البيانات ووقت التنزيل.
اختبر ما يحدث عند تغير السوق
لا تعمل العلاقات إلى الأبد بالطريقة نفسها. قد يقل انتشار الاختراقات بسبب تغير المشاركين، أو ترتفع التكاليف، أو تتغير جلسات التداول. المراقبة لا تنتظر خسارة كبيرة فقط.
حدد نطاقات متوقعة لمعدل الإشارات والانزلاق ومعدل الربح والتراجع، مع هامش طبيعي. إذا كان النظام يولد 15 إشارة شهريًا ثم انخفض إلى 2 من دون تفسير، قد تكون البيانات أو القاعدة أو السوق تغيرت.
تجنب إيقاف النظام لمجرد 3 خسائر إذا كانت السلسلة طبيعية في الاختبار. وفي المقابل، لا تتمسك به لأن «الماضي يثبت نجاحه» عندما يتغير التنفيذ بوضوح. اجمع دليلًا: هل وصل السعر متأخرًا؟ هل اتسع الفارق؟ هل تغير توزيع العوائد؟
يمكن تشغيل نسخة مراقبة لا ترسل أوامر بعد الإيقاف، كي تجمع إشارات وتساعد على التشخيص. لا تعد التشغيل قبل تحديد السبب وتوثيق القرار.
حاسبة الهامش والرافعة
الرافعة لا تُكبّر الأرباح فحسب، تُكبّر الخسائر بالمقدار نفسه. اعرف هامشك وحدّه.
- الهامش المطلوب
- $100
- نسبة الهامش
- 1٪
عند رافعة 1:100، تحرّكُ السعر ضدك بنسبة 1٪ يستهلك هامشك بالكامل.
مثال عملي: من الإشارة إلى حجم الصفقة
لنفترض أن النظام يعمل على أسهم سائلة خلال الجلسة الرسمية. أغلق سهم عند 42.58 دولار فوق أعلى قمة في 20 جلسة، وفتح اليوم التالي عند 42.65. أدنى قاع خلال 10 جلسات 41.92، فيكون الوقف هناك. رصيد الحساب 25,000 دولار، ومخاطرة الصفقة 0.4%.
إذا كان الهدف 2R، تكون المسافة 1.46 دولار والسعر النظري 44.11 دولار:
لكن النظام يحتاج إلى طرح العمولة وتقدير الانزلاق. إذا نفذ الدخول عند 42.69 والوقف عند 41.88 بسبب فجوة أو حركة سريعة، تصبح الخسارة 0.81 دولار للسهم، أي 110.16 دولارات على 136 سهمًا. تجاوزت المخاطرة المخططة.
يستطيع الكود حساب الحجم بعد معرفة سعر التنفيذ الفعلي، أو استخدام أمر يحدد أسوأ سعر، أو ترك هامش. لكل خيار تكلفة: التأخير قد يفوت الصفقة، وأمر الحد قد لا ينفذ، والهامش يقلل الحجم.
ماذا يحدث إذا كانت مسافة الوقف واسعة؟
إذا فتح السهم عند 45.20 وبقي الوقف 41.92، تصبح المسافة 3.28 دولارات أو نحو 7.3% من الدخول. قاعدة المثال تلغي الصفقة عندما تتجاوز المسافة 6%. لا يطارد النظام الفجوة بحجم صغير فقط، لأن منطق الكسر والعائد المحتمل تغير.
هذه قاعدة تحتاج اختبارًا. قد يكون الأفضل في استراتيجية أخرى تعديل الوقف أو انتظار إعادة اختبار. المهم أن القرار مكتوب قبل رؤية النتيجة.
منطق الحالة أهم من شرط الدخول
النظام الحي لا يعمل على جدول نظيف. قد ينقطع الاتصال بعد إرسال الأمر وقبل وصول التأكيد. قد ينفذ نصف الحجم. وقد يعاد تشغيل البرنامج وهو يملك مركزًا قائمًا.
يحتاج النظام إلى حالات واضحة:
| الحالة | السؤال |
|---|---|
| لا مركز | هل توجد إشارة جديدة؟ |
| أمر دخول معلق | هل ألغي أم ما زال صالحًا؟ |
| تنفيذ جزئي | ما الحجم المتبقي وكيف يوضع الوقف؟ |
| مركز مفتوح | هل الوقف والهدف موجودان؟ |
| خروج معلق | ماذا لو لم ينفذ كاملًا؟ |
| اتصال مفقود | هل توقف إرسال أوامر جديدة؟ |
المبتدئ يكتب شرط «إذا اخترق فاشترِ» وينسى أن الحلقة تعمل كل ثانية، فترسل عشرات الأوامر ما دام الشرط صحيحًا. يجب أن يمنع النظام تكرار الإشارة، ويتحقق من الأوامر والمراكز الفعلية لدى جهة التنفيذ، لا من ذاكرته فقط.
إدارة الأوامر والتنفيذ
أمر السوق يعطي أولوية للتنفيذ لا للسعر. أمر الحد يعطي حدًا للسعر لا ضمانًا للتنفيذ. وأمر الوقف يتحول حسب مواصفات السوق إلى نوع أمر عند بلوغ مستوى، وقد ينفذ بانزلاق.
حدد في المواصفات:
- نوع الأمر.
- مدة صلاحيته.
- التعامل مع التنفيذ الجزئي.
- حد الانزلاق المقبول.
- ما يحدث عند الرفض.
- ترتيب وضع الوقف والهدف.
- سلوك النظام عند إغلاق السوق.
في أسواق تعمل بجلسات، قد تُرفض أوامر خارج الوقت أو تنتقل إلى اليوم التالي. وفي أسواق 24 ساعة، توجد صيانة وسيولة متغيرة. تحقق من ساعات الأداة لا ساعات واجهة البرمجة وحدها.
لا تسجل أن الأمر «نُفذ» عند إرساله. انتظر تأكيد التنفيذ واحفظ السعر والكمية والمعرف. السجل الصحيح يفرق بين قرار النظام وطلب الأمر ونتيجة السوق.
المخاطر التي يجب أن توقف النظام
أضف قاطعًا يمنع أوامر جديدة عندما تتجاوز حالة محددة، مثل:
- خسارة يومية شخصية.
- عدد أخطاء متتالية في البيانات أو الاتصال.
- فرق سعري أعلى من حد منطقي.
- انحراف كبير بين السعر المتوقع والمنفذ.
- مركز لدى الوسيط لا يطابق سجل النظام.
- بيانات قديمة أو مفقودة.
- حجم محسوب يساوي صفرًا أو يتجاوز السقف.
قاطع الدائرة لا يصلح الاستراتيجية، لكنه يمنع خطأ تشغيل من التكرار. يجب أن تكون إعادة التشغيل يدوية أو مشروطة بفحص، لا تلقائية بلا نهاية.
ضع أيضًا حدًا للتعرض الإجمالي. إذا أعطت الخوارزمية 8 إشارات على أسهم مترابطة، لا تعامل كل واحدة كأنها مستقلة. يمكن تحديد سقف للقطاع أو العامل أو مجموع المخاطرة المفتوحة.
التداول التجريبي خطوة لا يمكن حذفها
بعد نجاح الاختبار، شغّل النظام على بيانات حية من دون أموال. الهدف ليس إثبات الربحية، بل اختبار السباكة: هل تصل الشمعة في وقتها؟ هل يتكرر التنبيه؟ هل تحسب قيمة النقطة والحجم صحيحًا؟ هل تختلف الرموز أو المناطق الزمنية؟
قارن كل أمر تجريبي بما كان الاختبار سيفعله. إذا اختلفا، حدد السبب. قد تكون البيانات الحية تعدل الشمعة، أو يستخدم الاختبار توقيتًا آخر، أو توجد فجوة في حدث السوق.
المحاكاة لا تعيد ضغط القرار الحقيقي ولا تضمن جودة التنفيذ. بعد التحقق، قد يختار المتداول تشغيلًا حيًا بحجم صغير يستطيع خسارته، مع رقابة لصيقة. هذا قرار مخاطرة، لا خطوة تلقائية.
حاسبة قيمة النقطة
كم يساوي تحرّك نقطة واحدة في حسابك؟ الأساس الذي تُبنى عليه كل حسابات المخاطرة.
قيمة النقطة لمركزك
$10
النقطة: 0.0001 لمعظم الأزواج، و0.01 لأزواج الين. القيم بالدولار الأمريكي.
اختبارات الكود قبل السوق
لا تحتاج إلى بنية شركات كبيرة، لكنك تحتاج اختبارات للحالات الحساسة.
اختبار الوحدة
اختبر كل دالة على مدخلات معروفة. إذا كانت أعلى قمة 20 شمعة تساوي 50.25، يجب أن تعيد الدالة هذا الرقم. اختبر القيم المفقودة وعدد شموع أقل من المطلوب.
اختبار التكامل
تأكد من أن البيانات تمر إلى الإشارة ثم الحجم ثم الأمر بالتنسيق الصحيح. خطأ منزلة عشرية في حجم عقد قد يضاعف المخاطرة 10 أو 100 مرة.
إعادة تشغيل أحداث تاريخية
مرر يومًا معروفًا خطوة بخطوة، وراجع سجل القرارات. لا تكتف بالنتيجة النهائية. يجب أن تعرف لماذا دخل ومتى خرج.
حالات الفشل
اقطع الاتصال، وأرسل بيانات قديمة، واجعل الأمر يرفض، وحاكي تنفيذًا جزئيًا. النظام الذي يعمل فقط في الحالة المثالية غير جاهز.
سجل يمكن تدقيقه
لكل قرار، احفظ الوقت ومصدر البيانات والقيم المحسوبة والشرط والنتيجة. سجل الأوامر المرسلة والردود والتنفيذ الفعلي والأخطاء. تجنب حفظ المفاتيح والبيانات السرية داخل سجل مكشوف.
مثال سجل مفهوم:
في اليوم التالي، يضيف النظام سعر الافتتاح والوقف والحجم ومعرف الأمر. هذا السجل يجعل الفرق بين خطأ الفكرة وخطأ الكود وخطأ التنفيذ قابلًا للتشخيص.
أين يستخدم التعلم الآلي؟
لا يحتاج المبتدئ إلى التعلم الآلي لبناء نظام خوارزمي. قاعدة واضحة قابلة للاختبار تعلمه البيانات والتنفيذ والمخاطر. النموذج المعقد يضيف خطر تسرب البيانات والإفراط في الملاءمة وصعوبة تفسير القرار.
إذا استخدمت نموذجًا لاحقًا، يجب أن يبقى خط الزمن صحيحًا. درب على الماضي واختبر على مستقبل لم يره، وثبت طريقة تجهيز الميزات. لا تستخدم معلومات من مجموعة الاختبار في اختيار النموذج أو المعلمات.
قد يتنبأ النموذج باحتمال أو عائد، لكن طبقة المخاطر والتنفيذ تظل ضرورية. إشارة ذات دقة 60% تستطيع خسارة المال إذا كانت الخسائر أكبر من الأرباح أو التكاليف مرتفعة.
الخطوة العملية الأولى
لا تبدأ بالكود. اكتب استراتيجيتك على ورقة بصيغة «إذا تحقق كذا وكذا، افعل كذا»، حتى لا يبقى فيها كلمة تحتاج تفسيرًا. إن عجزت عن كتابتها بهذا الشكل، فالمشكلة في الاستراتيجية لا في البرمجة. وحين تكتمل الورقة، تصير الترجمة إلى أي لغة برمجة مسألة تنفيذ.
استخدم هذا القالب:
| البند | قرارك القابل للقياس |
|---|---|
| السوق والأداة | ما الذي يدخل الكون؟ |
| الإطار والجلسة | متى تحسب الإشارة؟ |
| شرط الدخول | بيانات مكتملة وصيغة دقيقة |
| سعر التنفيذ | أي أمر وفي أي لحظة؟ |
| وقف الخسارة | مستوى الإبطال وكيف يتغير؟ |
| الهدف أو الخروج | سعر، وقت، أو شرط معاكس |
| حجم الصفقة | نسبة مخاطرة وقواعد تقريب |
| التعرض الإجمالي | حد المراكز والترابط |
| التكاليف | عمولة وفارق وانزلاق وتمويل |
| الاستثناءات | فجوة وبيانات ناقصة وأمر مرفوض |
بعد ملء القالب، طبق القواعد يدويًا على 20 إلى 30 حالة. إذا اختلف قرارك بين حالتين متشابهتين، ما زال تعريف ما غامضًا. هذه المراجعة أرخص من اكتشاف الغموض داخل مئات الأسطر.
أخطاء شائعة لدى المبتدئ
تحسين النتيجة قبل التحقق من الصحة
يغير المتداول النوافذ والمرشحات بحثًا عن عائد أعلى قبل التأكد من توقيت الإشارة والتنفيذ. افحص صحة كل صفقة عينة أولًا.
استخدام بيانات اليوم كاملة لاتخاذ قرار في بدايته
يظهر الخطأ في الحجم اليومي والإغلاق والأعلى والأدنى. استخدم فقط ما كان معروفًا لحظة الأمر.
تجاهل الصفقات التي لم تنفذ
يلمس السعر أمر الحد في البيانات ولا يعني أن الكمية كلها نُفذت. ضع افتراضًا محافظًا واختبر الحساسية.
فتح مراكز بلا سقف إجمالي
تحسب كل إشارة 0.5% من الحساب، ثم تفتح 10 إشارات في يوم واحد. أصبح التعرض 5% قبل الترابط. أضف مدير محفظة لا مدير صفقة فقط.
تشغيل الكود من جهاز غير مستقر
النوم وإعادة التشغيل وانقطاع الشبكة قد يوقف إدارة الصفقة. استخدم بيئة تشغيل مناسبة ومراقبة، أو أبق التنفيذ يدويًا.
وضع المفاتيح داخل الكود
تسرب الملف أو رفعه إلى مستودع يعرّض الحساب. استخدم إدارة أسرار وصلاحيات محدودة، ولا تمنح مفتاحًا قدرة سحب إذا لم يحتجها النظام.
الاعتقاد أن الأتمتة تلغي المراقبة
السوق والواجهات والرموز ومواصفات العقود تتغير. راقب البيانات والأوامر والانحراف عن الاختبار، وحدد متى توقف النظام.
قائمة جاهزية قبل التنفيذ الحي
- هل كل مصطلح في الاستراتيجية قابل للقياس؟
- هل تستخدم الإشارة بيانات كانت متاحة لحظة القرار؟
- هل سعر التنفيذ في الاختبار ممكن؟
- هل أدخلت الرسوم والفارق والانزلاق؟
- هل اختبرت فترة لم تدخل في التطوير؟
- هل النتيجة متينة حول المعلمات وليست قمة واحدة؟
- هل راجعت عينة الصفقات على الرسم يدويًا؟
- هل يحسب الحجم من الوقف والرصيد ومواصفات العقد؟
- هل يوجد سقف للتعرض والمراكز المترابطة؟
- هل يتعامل النظام مع الرفض والتنفيذ الجزئي والانقطاع؟
- هل يوجد قاطع دائرة وتنبيه؟
- هل سجل الأوامر قابل للمراجعة؟
- هل تطابق التداول التجريبي مع الاختبار؟
- هل مفاتيح الحساب محدودة ومحفوظة بأمان؟
إذا كانت إجابة واحدة غير واضحة، فهذا عمل متبق قبل المال الحقيقي، لا تفصيل يمكن تأجيله.
الكود هو آخر ترجمة للفكرة
يبدأ التداول الخوارزمي الجيد من جملة يمكن تفكيكها، لا من مكتبة برمجية. عندما تحدد المقاومة والكسر والتوقيت والخروج والحجم، تحصل على استراتيجية يمكن نقدها واختبارها. وقد تكتشف عندها أن الفكرة لا تملك أفضلية، وهذا نجاح للعملية لا فشل لها.
بعد المواصفات تأتي البيانات، ثم اختبار يحترم خط الزمن والتكاليف، ثم تحقق مستقل، ثم تداول تجريبي يختبر التنفيذ. الأتمتة الكاملة خطوة متأخرة، ويجب أن ترافقها مراقبة وسجل وقاطع أخطاء.
الآلة لا تعرف أن السوق «يبدو غريبًا» إلا إذا عرفت الغرابة رقمًا. ولا تعرف أن الحساب معرض للخطر إلا إذا كتبت حدود الخطر. كل ما لم تحدده سيتركه النظام للمصادفة أو لقرار خفي في الكود. لهذا تكون أفضل خطوة أولى ورقة واضحة، قبل أول سطر.