الوسطاء ومصادر البيانات
يفصل AQE بين بيانات السوق والتنفيذ. يوفّر مصدر البيانات البيانات التاريخية والأسعار، ويدير وسيط التنفيذ الأوامر وحالة الحساب. ويجمعهما UnifiedBroker لتستخدم الاستراتيجية البنية نفسها للاختبارات التاريخية والتشغيل المباشر.
اختيار تكامل
Section titled “اختيار تكامل”| الغرض | المكونات المتاحة |
|---|---|
| التنفيذ المحاكى | PaperBroker |
| التنفيذ عبر MetaTrader 5 | Mt5Broker |
| بيانات السوق | YahooFinanceDataFeed, Mt5DataFeed |
استخدم PaperBroker للتنفيذ المحاكى وافتراضات الرسوم. واستخدم دليل MT5 لإعداد المستشار الخبير والجسر.
let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1);let data = YahooFinanceDataFeed::new();let broker = UnifiedBroker::new_backtest(execution, data);واجهة API الحالية للتنفيذ
Section titled “واجهة API الحالية للتنفيذ”ترسل واجهة API للإصدار 0.2.0 كائن BrokerOrderRequest بدلًا من تمرير الإشارة التداولية كاملةً إلى الوسيط. وهو يحمل بيانات الدخول والحماية والهوية اللازمة للتنفيذ.
let request = aq_engine::core::broker::BrokerOrderRequest::from(&insight);let order = broker.submit_order(request).await?;يفترض هذا المقتطف وجود وسيط وإشارة تداولية واستيراد OrderManagementProvider. ينبغي لمراحل معالجة الاستراتيجية عادةً طلب التعديلات عبر سياق الاستراتيجية والاحتفاظ بنتائجها المعلّقة؛ راجع مسارات معالجة الإشارات التداولية.
يجب أن تعيد المهايئات المخصصة قيمًا مستقبلية تحقق قيد Send لتعديلات الوسيط. يُستخدم replace_order لاستبدال أمر دخول معلّق، وتُستخدم update_take_profit أو update_stop_loss لتغييرات الحماية. لا تُعِد استخدام واجهة update_order المحذوفة والملتبسة.
بالنسبة إلى إشارة تداولية في حالة Executed لا يزال أمر دخولها معلّقًا ولم يُنفَّذ، فإن update_limit(ctx, price) تعدّل السعر المحدد لأمر الدخول، وupdate_stop_limit(ctx, price) تعدّل سعر تفعيله. ولا تُعد الدالة الأخيرة تحديثًا لوقف الخسارة. يعالج مهايئ التنفيذ هذين التعديلين عبر amend_entry_prices(order_id, limit_price, stop_price)، ويعلن دعمه لـAmendLimitPrice أو AmendStopPrice بحسب العملية المدعومة. يحافظ تعديل السعر على كمية الأمر؛ أما replace_order فهي عملية منفصلة. راجع دورة حياة الإشارة التداولية لقواعد الحالة وتأكيد التعديل.
إنشاء مصدر بيانات خاص بك
Section titled “إنشاء مصدر بيانات خاص بك”اربط خدمة بيانات السوق الخاصة بك أو واجهة API لبورصة أو مجموعة بيانات تاريخية بتنفيذ DataFeed وDataProvider. تغطي هاتان السمتان إدارة الاتصال والبيانات الوصفية للأصول والشموع التاريخية والأسعار الحالية والاشتراكات. يمكنك إقران الناتج بـPaperBroker لاختبار البيانات بمعزل عن التنفيذ المباشر.
اتبع إنشاء مصدر بيانات مخصص للتعرّف على الدوال المطلوبة وتنسيقات الشموع وعروض الأسعار وعلامات القدرات وقائمة التحقق.
إنشاء وسيط خاص بك
Section titled “إنشاء وسيط خاص بك”للاتصال بجهة تنفيذ، طبّق Broker وOrderManagementProvider. يحوّل مهايئك طلبات أوامر AQE إلى الصيغة التي تتطلبها واجهة API الخاصة بالجهة، ويعيد حالة الحساب والمراكز، ويبلّغ عن أحداث دورة حياة الأوامر. يستطيع UnifiedBroker دمجه مع مصدر بيانات موجود أو مصدر تطوّره بنفسك.
اتبع إنشاء وسيط مخصص للتعرّف على عقد التنفيذ وقوائم انتظار الأحداث المحدودة وإدارة الحماية ومتطلبات الاسترداد.
هذه تكاملات Rust تُضمَّن عند بناء استراتيجيتك. لا يؤدي تنفيذ السمات تلقائيًا إلى إضافة مزوّد إلى أداة اختيار الاتصالات في AQS.
عروض الأسعار وبيانات الشموع
Section titled “عروض الأسعار وبيانات الشموع”| المصدر | سلوك عروض الأسعار |
|---|---|
| MT5 المباشر | عينات من أسعار الشراء والبيع الأصلية، مستقلة عن الإطار الزمني للشموع |
| Yahoo المباشر أو التجريبي | إغلاق شمعة الدقيقة المستطلَع دوريًا، ممثّل كعرض سعر اصطناعي bid=ask |
| إعادة تشغيل الاختبار التاريخي | عروض أسعار اصطناعية من شموع تاريخية جرى استهلاكها بالفعل |
لا توفّر عروض الأسعار الاصطناعية فرق سعر حقيقيًا أو سعرًا قابلًا للتنفيذ. لا تجلب الاختبارات التاريخية عروض السوق الحالية. ولا تضيف اشتراكات عروض الأسعار دالة استدعاء on_quote للاستراتيجية أو اختبارات تاريخية مدفوعة بكل تحديث سعري.
لمستهلك بيانات مخصص، تحقّق من DataFeedFeature::QuoteStream وعلامات القدرات الأصلية والاصطناعية. استخدم معرّف اشتراك فريدًا، وألغِ اشتراكك وحده. أبقِ دوال الاستدعاء قصيرة وغير حاجبة.
السعة وتحديد الحجم
Section titled “السعة وتحديد الحجم”يميّز المحرك الحالي بين ثلاثة حدود:
| الحقل | المعنى |
|---|---|
Account.max_total_orders | العدد الأقصى للأوامر المعلّقة |
Asset.max_order_size | الكمية القصوى لأمر دخول واحد |
Asset.max_total_size | الحد الإجمالي لكمية رمز معين |
يراعي تحديد الحجم الكميات النشطة والمحجوزة قبل تقسيم أمر. يبلّغ MT5 عن السعة عبر المستشار الخبير المحدّث. ولا يرث التنفيذ التجريبي جميع حدود الحساب المباشر من مصدر بياناته.
الحجوزات محلية للاستراتيجية. يمكن للاستراتيجيات الأخرى أو الأوامر اليدوية استهلاك سعة الحساب؛ وقد يرفض الوسيط أمرًا رغم نجاح التحقق المحلي. افحص سبب الرفض قبل إعادة المحاولة.
الإشراف على التنفيذ
Section titled “الإشراف على التنفيذ”يعرض AQS بيانات رصد الحساب وحقوق الملكية والأحداث والإشارات التداولية التي وصلت إليه. تأكيد استلام الأمر لا يعني تنفيذه، وغياب بيانات الرصد أو تقادمها لا يثبت إلغاءه. تحقّق من سجلات الوسيط وسجل الإشارة التداولية عندما تكون النتيجة غير مؤكدة.
راجع التشغيل المباشر للاسترداد، ومصادر البيانات في AQS لإعداد تطبيق سطح المكتب.
نستخدم ملفات تعريف الارتباط والتخزين الضروريين لتسجيل الدخول وحماية الحساب وحفظ تفضيلات المظهر وهذا الإشعار، ولجمع مقاييس PostHog الداخلية اللازمة لقياس الاستخدام وجودة الجلسات والموثوقية. لا نستخدم ملفات تعريف ارتباط إعلانية.
