تخطَّ إلى المحتوى

الوسطاء ومصادر البيانات

يفصل AQE بين بيانات السوق والتنفيذ. يوفّر مصدر البيانات البيانات التاريخية والأسعار، ويدير وسيط التنفيذ الأوامر وحالة الحساب. ويجمعهما UnifiedBroker لتستخدم الاستراتيجية البنية نفسها للاختبارات التاريخية والتشغيل المباشر.

الغرضالمكونات المتاحة
التنفيذ المحاكىPaperBroker
التنفيذ عبر MetaTrader 5Mt5Broker
بيانات السوق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 لاختبار البيانات بمعزل عن التنفيذ المباشر.

اتبع إنشاء مصدر بيانات مخصص للتعرّف على الدوال المطلوبة وتنسيقات الشموع وعروض الأسعار وعلامات القدرات وقائمة التحقق.

للاتصال بجهة تنفيذ، طبّق Broker وOrderManagementProvider. يحوّل مهايئك طلبات أوامر AQE إلى الصيغة التي تتطلبها واجهة API الخاصة بالجهة، ويعيد حالة الحساب والمراكز، ويبلّغ عن أحداث دورة حياة الأوامر. يستطيع UnifiedBroker دمجه مع مصدر بيانات موجود أو مصدر تطوّره بنفسك.

اتبع إنشاء وسيط مخصص للتعرّف على عقد التنفيذ وقوائم انتظار الأحداث المحدودة وإدارة الحماية ومتطلبات الاسترداد.

هذه تكاملات Rust تُضمَّن عند بناء استراتيجيتك. لا يؤدي تنفيذ السمات تلقائيًا إلى إضافة مزوّد إلى أداة اختيار الاتصالات في AQS.

عروض الأسعار وبيانات الشموع

Section titled “عروض الأسعار وبيانات الشموع”
المصدرسلوك عروض الأسعار
MT5 المباشرعينات من أسعار الشراء والبيع الأصلية، مستقلة عن الإطار الزمني للشموع
Yahoo المباشر أو التجريبيإغلاق شمعة الدقيقة المستطلَع دوريًا، ممثّل كعرض سعر اصطناعي bid=ask
إعادة تشغيل الاختبار التاريخيعروض أسعار اصطناعية من شموع تاريخية جرى استهلاكها بالفعل

لا توفّر عروض الأسعار الاصطناعية فرق سعر حقيقيًا أو سعرًا قابلًا للتنفيذ. لا تجلب الاختبارات التاريخية عروض السوق الحالية. ولا تضيف اشتراكات عروض الأسعار دالة استدعاء on_quote للاستراتيجية أو اختبارات تاريخية مدفوعة بكل تحديث سعري.

لمستهلك بيانات مخصص، تحقّق من DataFeedFeature::QuoteStream وعلامات القدرات الأصلية والاصطناعية. استخدم معرّف اشتراك فريدًا، وألغِ اشتراكك وحده. أبقِ دوال الاستدعاء قصيرة وغير حاجبة.

يميّز المحرك الحالي بين ثلاثة حدود:

الحقلالمعنى
Account.max_total_ordersالعدد الأقصى للأوامر المعلّقة
Asset.max_order_sizeالكمية القصوى لأمر دخول واحد
Asset.max_total_sizeالحد الإجمالي لكمية رمز معين

يراعي تحديد الحجم الكميات النشطة والمحجوزة قبل تقسيم أمر. يبلّغ MT5 عن السعة عبر المستشار الخبير المحدّث. ولا يرث التنفيذ التجريبي جميع حدود الحساب المباشر من مصدر بياناته.

الحجوزات محلية للاستراتيجية. يمكن للاستراتيجيات الأخرى أو الأوامر اليدوية استهلاك سعة الحساب؛ وقد يرفض الوسيط أمرًا رغم نجاح التحقق المحلي. افحص سبب الرفض قبل إعادة المحاولة.

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

راجع التشغيل المباشر للاسترداد، ومصادر البيانات في AQS لإعداد تطبيق سطح المكتب.