تنفيذ الأوامر
حد الطلبات (rate limit) في البورصة هو الحد الأقصى لعدد طلبات API، أو أقصى وزن للطلبات، الذي تقبله البورصة من عنوان IP واحد أو مفتاح API واحد خلال نافذة زمنية معينة؛ ويؤدي تجاوزه إلى إرجاع أخطاء، وإذا استمر، إلى حظر (ban) مؤقت لعنوان IP أو المفتاح.
تُجري الأتمتة عددًا من الطلبات أكبر بكثير مما يُجريه إنسان: ضبط الرافعة المالية، ووضع الدخول، وإنشاء الأوامر الوقائية، ومراقبة المراكز، والتحقق من التنفيذ لكل إشارة في كل حساب. تُشارَك الحدود بين كل ما يستخدم نفس عنوان IP أو المفتاح، بحيث يمكن لحلقة تكرار سيئة السلوك أن تحظر الأوامر لكل حساب آخر على نفس الخادم. الحظر أثناء سوق سريعة الحركة هو أسوأ حالة: لا يمكن فتح مراكز جديدة، ولا يمكن تحريك أوامر الوقف التي تعيش فقط داخل البرنامج. كما تختلف الحدود بين البورصات وبين نقاط النهاية (endpoints)، لذا يجب على المنصة أن تخصص ميزانية لها بدلًا من اكتشافها بتجاوزها.
تُبقي AlgoVesta عدد الاستدعاءات لكل أمر ثابتًا وصغيرًا، وتقرأ بيانات السوق من مصادر عامة مشتركة بدلًا من استعلام البورصة مرة لكل حساب. تُتابَع ميزانيات الطلبات لكل بورصة ولكل مفتاح، وعندما تُجيب منصة التنفيذ باستجابة تفيد بتجاوز حد الطلبات أو بحظر، يتراجع المفتاح أو الخادم المتأثر بدلًا من إعادة المحاولة فورًا؛ وتُسجَّل هذه الحالة وتُعرض في لوحة التحكم. تُبقى عمليات الحظر التي تُبلغ عنها شبكة اختبار (testnet) مشتركة منفصلة عن عمليات الحظر في السوق الحقيقية حتى لا تُخرج بيئة اختبار خوادم التنفيذ الحقيقية من دورة العمل. تُوضع أوامر الوقف والأهداف كأوامر معلّقة على منصة التنفيذ، بحيث لا يترك حد مؤقت مركزًا دون حماية. تعمل البيانات التاريخية وعمليات القراءة الثقيلة الأخرى من أجهزة منفصلة حتى لا تستهلك ميزانية خوادم التنفيذ. راجع منطق إعادة المحاولة وصفحة البورصات المدعومة.
أثناء ارتفاع مفاجئ في السوق، تُطلق قناة إشارات ثماني إشارات في دقيقة واحدة لحساب واحد. تُنفَّذ كل إشارة بمجموعة استدعاءاتها الثابتة، ضمن ميزانية البورصة لكل دقيقة بهامش واسع؛ وتُفتح المراكز مع وضع أوامر الوقف الخاصة بها معلّقة على البورصة. ولو أرجعت البورصة خطأ تجاوز حد الطلبات في منتصف الطريق، لكانت الإشارات المتبقية قد سُجِّلت كمحظورة بذلك السبب، وكان المفتاح سيتوقف مؤقتًا قبل المحاولة التالية بدلًا من التسبب في حظر أطول.