WonderTrader
هو إطار عمل لتطوير التداول الكمي عالي الكفاءة ومتوفر للغاية يعتمد على الوحدة الأساسية C++
المناسبة لجميع أنواع المعاملات في السوق بأكمله.
تعتمد WonderTrader
على إطار العمل الأساسي عالي السرعة C++
وإطار طبقة التطبيق الفعال وسهل الاستخدام (wtpy)، وهي ملتزمة بإنشاء سيناريو تداول كمي متكامل ومؤتمت بالكامل للبحث والتطوير من البحث والتطوير والتداول والعمليات والجدولة. .
أطلقت WonderTrader
محرك UFT جديدًا في 0.9
لتلبية احتياجات التداول بزمن وصول منخفض للغاية، وبعد سلسلة من التحسينات، أصبح زمن استجابة النظام في حدود 175 نانو ثانية .
بنية التداول الحقيقية لـ WonderTrader
WonderTrader
محرك التداول الغني
- يعد محرك CTA ، والذي يُطلق عليه أيضًا محرك إستراتيجية المزامنة ، مناسبًا بشكل عام للاستراتيجيات ذات الأهداف الأقل، ومنطق الحساب الأسرع، ويعتمد على الحدث + الوقت. تتضمن سيناريوهات التطبيق النموذجية توقيت العرض الفردي، والمراجحة تحت التردد المتوسط، وما إلى ذلك. بالنسبة لاستراتيجية DualThrust المتوفرة في العرض التوضيحي، يبلغ متوسط الوقت المستغرق لإعادة حساب واحدة حوالي 70 ميكروثانية لإصدار تنفيذ Python وحوالي 4.5 ميكروثانية لإصدار تنفيذ C++.
- يعد محرك SEL ، والذي يُطلق عليه أيضًا محرك الإستراتيجية غير المتزامن ، مناسبًا بشكل عام للاستراتيجيات الموجهة بالوقت والتي لها العديد من الأهداف وتستغرق وقتًا طويلاً لحساب المنطق. تتضمن سيناريوهات التطبيق النموذجية استراتيجيات اختيار الأسهم متعددة العوامل، والاستراتيجيات الطويلة والقصيرة المستعرضة، وما إلى ذلك.
- محرك HFT ، والذي يُطلق عليه أيضًا محرك الإستراتيجية عالي التردد ، يهدف بشكل أساسي إلى الاستراتيجيات عالية التردد أو الكمون المنخفض، وهو يعتمد على الأحداث ويتراوح تأخير النظام بين 1-2 ميكروثانية.
- محرك UFT ، والذي يُطلق عليه أيضًا المحرك الاستراتيجي فائق السرعة ، يهدف بشكل أساسي إلى استراتيجيات الترددات العالية جدًا أو الكمون المنخفض للغاية، والتي تعتمد على الأحداث، ويكون تأخير النظام في حدود 200 نانو ثانية.
واجهة التطوير كاملة
- واجهة بيانات فعالة وسهلة الاستخدام : سيكون لكل إستراتيجية وحدة سياق مستقلة سيقوم السياق تلقائيًا بتخزين البيانات التي تتطلبها الإستراتيجية، ويمكن استدعاء الإستراتيجية مباشرة.
- واجهة إشارة بسيطة : تحتاج الإستراتيجية فقط إلى تحديد الموضع المستهدف وسيتم تنفيذها تلقائيًا في الخلفية.
- منطق السياسة الخالي من السياق : لا تحتاج السياسة إلى تسجيل أي بيانات بنفسها، بل تحتاج فقط إلى الاستعلام عن الواجهة في كل مرة يتم فيها تخزين جميع البيانات مؤقتًا في الذاكرة، ويتم ضمان كفاءة الوصول.
الإدارة الإستراتيجية الاحترافية
- الإدارة الموحدة لمجموعات الإستراتيجية : يستخدم نهج مجموعة الإستراتيجية بشكل أساسي للتنسيق مع إدارة منتجات المنظمات المهنية. تتوافق لوحة المجموعة مع عدة أهداف للعديد من الاستراتيجيات، ثم تحدد مبلغ صندوق الوحدة الأساسي. هذه هي لوحة المجموعة الأساسية لإدارة المنتج، وهي مناسبة للتوسع.
- تنفيذ دمج المركز المستهدف : بعد دمج المركز المستهدف، يتم تجنب مخاطر المعاملة الذاتية، بينما يتم تقليل شغل الهامش ونفقات العمولة.
- التخزين المستقل للمواقف النظرية : يتم تخزين المواقف النظرية للاستراتيجية بشكل مستقل، ويتم أيضًا حساب الأداء العام للقرص المدمج بشكل مستقل، مما يجعل من السهل إدارته داخليًا.
- التنفيذ المتزامن لحسابات متعددة : بعد تحديد المركز المستهدف للمجموعة، يتم تنفيذها في وقت واحد من خلال قنوات تداول متعددة، مما يضمن بشكل فعال اتساق أداء الحسابات المختلفة.
النوع الكامل من دعم backtest
- دعم كامل للغة : سواء كانت استراتيجية تم تطويرها في
C++
، أو استراتيجيةpython
تم تطويرها تحتwtpy
، أو استراتيجية تم تطويرها ضمن أطر فرعية للغة أخرى، يتم اختبارها جميعها في محرك اختبار خلفي موحد .- كفاءة الاختبار الخلفي العالية : تم تطوير محرك الاختبار الخلفي في
C++
، وكفاءة الاختبار الخلفي عالية والسرعة سريعة. سواء كانت استراتيجيةC++
أو استراتيجيةPython
، يمكن التحقق منها بسرعة.- دعم استراتيجي كامل : بالإضافة إلى استراتيجيات CTA واستراتيجيات SEL ، يمكن أيضًا اختبار استراتيجيات HFT واستراتيجيات UFT ووحدات التنفيذ .
أجهزة بيانات فعالة
- خادم البيانات المحلي : يستخدم محرك التخزين المدمج في
WonderTrader
التخزين المحلي، وينشئ خادم البيانات محليًا، ويبث بيانات السوق في الوقت الفعلي من خلال منفذudp
لتحقيق بنية خدمة1+N
، والتي يمكن أن توفر خدمات بيانات غير متمايزة لمجموعة متعددة الأقراص في نفس الوقت. تدعم البنية المهنية على مستوى مزود البيانات إنشاء نظام توزيع متعدد المستويات للتعامل بسهولة مع سيناريوهات الطلب المختلفة.- تخزين البيانات التاريخية مؤقتًا : أثناء عملية المعاملة، يتم تخزين جميع البيانات التاريخية مؤقتًا في الذاكرة، وفي الوقت نفسه، يتم اعتماد آلية الرجوع المباشر إلى شرائح بيانات الذاكرة لتجنب نسخ البيانات بشكل أساسي وتحسين كفاءة الوصول.
- محرك تخزين فعال : تستخدم البيانات في الوقت الفعلي ملفات
mmap
، والتي يمكنها القراءة والكتابة بسرعات عالية دون فقدان البيانات. وفي الوقت نفسه، فهو يدعم قاعدة بيانات mysql لتخزين البيانات التاريخية، مما يجعل بناء قاعدة بيانات أبحاث الاستثمار الخاصة بك على هذا الأساس أكثر ملاءمة.
تحكم مرن بالمخاطر
- التحكم في مخاطر صندوق القرص المختلط : يحتوي القرص المركب على مقياس صندوق محدد مسبقًا، ويمكن تنفيذ التحكم في مخاطر صندوق القرص المركب بناءً على الأموال الافتراضية للقرص المركب. الميزة الأكبر هي أنه إذا كان الدمج في المرحلة الهبوطية، بعد تفعيل التحكم في المخاطر، حتى لو لم يصل حساب رأس المال إلى خط التحكم في المخاطر، فلن يستمر في الانخفاض.
- مراقبة مخاطر حركة مرور القناة : تهدف بشكل أساسي إلى مخاطر الامتثال ، والتحكم في المؤشرات مثل إجمالي عدد الطلبات الملغاة، وعدد الطلبات المقدمة في فترة زمنية قصيرة، وعدد الطلبات الملغاة.
- التحكم في مخاطر صندوق الحساب : يتوافق مع التحكم في مخاطر الصندوق بالمعنى العام، وبشكل أساسي التحكم في سحب أموال الحساب، وما إلى ذلك.
- التدخل اليدوي في حالات الطوارئ : توفير مدخل للتدخل اليدوي في حالات الطوارئ، وتحقيق أغراض التحكم عن طريق تحميل ملف التكوين. إنه مناسب بشكل أساسي للمخاطر في منتج واحد، إذا كان هناك خطر في السوق بأكمله، فيمكن إيقاف النظام يدويًا.
- آلية القابض : تعتمد آلية القابض على آلية فصل الإشارات والتنفيذ، وهي تستخدم بشكل أساسي لفصل تنفيذ الإشارة مباشرة من خلال آلية القابض إذا كان هناك خطر في الإستراتيجية أو الجمع. الميزة هي أنها لا تؤثر على منطق الإستراتيجية وتقطع فقط تنفيذ الإشارة. يمكنك الاستمرار في مراقبة أداء الإستراتيجية في مرحلة معينة من السوق وتأكيدها من خلال البحث النظري.
وحدة تحكم قوية (خدمة مراقبة wtpy)
- مراقبة تشغيل القرص المختلط : يمكنك عرض سجلات التشغيل في الوقت الفعلي، والبيانات النظرية الإستراتيجية، وبيانات قناة التداول، وما إلى ذلك، وتوفير مدخل للبدء والتوقف اليدوي.
- خدمة الجدولة التلقائية : تقوم بجدولة المهام المجدولة تلقائيًا بالكامل (البدء، والإيقاف، وإعادة التشغيل)، وتدعم تحديد تكرار المهام على أساس أسبوعي، وتدعم وصاية العملية.
- إشعار الحدث في الوقت الحقيقي : تتلقى خدمة المراقبة الأحداث التي يدفعها القرص المركب، ثم تعيد توجيهها إلى محطة المراقبة لمطالبة المستخدم.
- عارض Backtest : باستخدام وحدة WtBtSnooper، يمكنك عرض وتحليل بيانات الاختبار الخلفي.
- النشر التلقائي بالكامل عن بعد (قيد الإنشاء) : النشر التلقائي بالكامل عن بعد عبر الإنترنت، مما يوفر خدمات النشر الآلي لسيناريوهات التطبيقات المختلفة مثل بيئة الاختبار الخلفي وبيئة القرص الحقيقية.
الرقابة الداخلية للفريق توفر طريقة إدارة المحفظة الإستراتيجية حلاً مثاليًا لإدارة الفريق الداخلي.
C++
أقصى قدر من سرية السياسة، ولا داعي للقلق بشأن تسرب السياسات؛ التداول متعدد الحسابات ( تكوين المنتجات المتعددة ) بالنسبة لمجموعات الإستراتيجية في ظل دورات السوق المختلفة، سيكون لدى الفريق العادي مجموعة إستراتيجية أكثر ملاءمة في الوقت الحالي. ومع ذلك، خلال نفس الفترة، قد يقوم الفريق بإدارة العديد من الحسابات في نفس الوقت، ولكن في الواقع، مجموعات الاستراتيجيات التي تستخدمها هذه الحسابات هي نفسها. في الوقت الحالي، يمكن لبنية التنفيذ M+1+N التي توفرها منصة WonderTrader
أن تلبي هذا الطلب بشكل مثالي.
لنفترض أن حجم رأس المال الأساسي لمجموعة معينة P هو 5 ملايين، والعائد المتوقع هو 30٪، والحد الأقصى للسحب هو 10٪، ونسبة العائد إلى المخاطر هي 3: 1، يستخدم الحساب A هذه المجموعة P للتداول، ومبلغ الأموال في الحساب A هو 10 ملايين، والحد الأقصى للمبلغ المقبول هو الارتداد أيضًا 10٪؛ ويستخدم الحساب B أيضًا هذه المجموعة للتداول P، ومبلغ الأموال أيضًا 10 ملايين، لكن يمكن ذلك الحد الأقصى للارتداد المقبول هو 20% في هذا الوقت، نظرًا لأن معايير المخاطرة للحساب A تتوافق مع السوق الأساسية، فإن تكبير حجم اللوت للحساب A هو حجم رأس المال/حجم الصندوق للسوق الأساسي = 1000w/500w = 2؛ الحد الأقصى للسحب هو 20٪، لذلك يجب مضاعفة نسبة حجم اللوت، أي أنه يمكن تخصيص الحساب B 4 مرات؛
تتبع متعدد الأهداف بعض منصات التداول الكمي التي تستخدم اللغات المفسرة (مثل Python
) لتطوير الوحدات الأساسية قادرة على تنفيذ سيناريوهات تطبيقية مختلفة عندما لا يكون هناك سوى عدد قليل من الأهداف. ولكن عندما يصل عدد الأهداف التي يجب تتبعها إلى أكثر من 100، أو حتى أكثر من 50، فإنه لا يستطيع تلبية الطلب. من ناحية، فإنه يستهلك الكثير من الموارد باستخدام multiprocess
والآليات الأخرى، على الرغم من أن كل هدف يعمل بشكل مستقل، سيتم إنشاء مئات العمليات الجديدة لمئات الأهداف، الأمر الذي يستهلك الكثير من الذاكرة ووحدة المعالجة المركزية الإستراتيجية غير فعالة وهناك منافسة جدية على الموارد في ظل ظروف معينة، ستكون الاستجابة الإستراتيجية أيضًا أبطأ. تم تطوير جوهر WonderTrader
بلغة C++
، وتم تصميم أجهزة البيانات منذ البداية لتوفير الخدمات لمجموعات متعددة في نفس الوقت، ويتم فصل الإستراتيجية والتنفيذ، ويتم تشغيل تنفيذ الإشارة وحساب الإستراتيجية بشكل مستقل تمامًا اثنين من المواضيع المختلفة. وفي ظل هذه البنية، يمكن تلبية احتياجات التتبع متعدد المعايير بشكل جيد.
استراتيجية مكثفة حسابيا إن حجم الحسابات المطلوبة لبعض الاستراتيجيات مذهل، والاستراتيجية النموذجية هي استراتيجية اختيار الأسهم، سواء كانت تستخدم عوامل أو أساسيات متعددة، فإنها ستقوم بفحص آلاف الأسهم تدريجياً للحصول على مجموعة الأسهم المستهدفة النهائية. بالإضافة إلى ذلك، تحتوي بعض الأطر متعددة العوامل أيضًا على قدر كبير من العمليات الحسابية. تتطلب مثل هذه الإستراتيجية قدرًا كبيرًا من الحسابات وتستغرق وقتًا طويلاً. تم تخصيص محرك SEL
الخاص بـ WonderTrader
لتلبية هذه الحاجة. يعتمد محرك SEL
نموذجًا غير متزامن يعتمد على الوقت من خلال تسجيل الجدول الزمني لإعادة الحساب مع المحرك (دعم الدورات المتعددة مثل الدورات اللحظية واليومية والأسبوعية والشهرية)، فإنه يقوم بتشغيل إعادة الحساب بانتظام، ثم يقوم بضبط مواضع الأهداف لأهداف متعددة. ، وبالتالي إشارة الإخراج.
التداول السريع يستخدم WonderTrader
لغة C++
كلغة التطوير الأساسية. أحد أهم الأغراض هو متابعة الأداء النهائي ، لذا يمثل التداول عالي التردد أو التداول السريع نسبة كبيرة جدًا في سيناريوهات استخدام WonderTrader
. افتتحت WonderTrader
محرك UFTEngine الجديد في الإصدار v0.9
، والذي تم تصميمه خصيصًا لسيناريوهات التداول السريعة للغاية. يختلف HFTEngine
عن HFTEngine
الأصلي، فهو يستهدف الترددات العالية العامة ويركز على توفير مكونات أساسية عالية الأداء لطبقة التطبيق ، وسيأخذ في الاعتبار المزيد من مشكلات التوافق ومشكلات إرساء طبقة التطبيق في حدود 1-2 ميكروثانية. تم فصل UFTEngine
تمامًا عن مشروع WtCore
ولا يوفر واجهات لطبقة التطبيق، وقد تم تطويره وتنفيذه بالكامل في C++
، وتأخير النظام في حدود 200ns .
التداول الخوارزمي لدى WonderTrader
وحدة إدخال مستقلة للمنفذ WtExecMon
، حيث يمكن للمستخدمين تنفيذ التداول الخوارزمي. في بنية التنفيذ M+1+N الخاصة بـ WonderTrader
، تم تجريد جزء التنفيذ 1+N ويمكن استخدامه كمنفذ تداول حسابي مستقل . عندما يستخدمها المستخدمون، من خلال تحديد الموضع المستهدف للهدف المحدد، يمكن لوحدة تنفيذ الخوارزمية وضع أوامر التداول وفقًا للخوارزمية المحددة مسبقًا. يمكن للمستخدمين إضافة المزيد من وحدات تنفيذ الخوارزمية من خلال تنفيذ وحدة WtExecFact
الخاصة بهم. يمكن أن توفر الطبقة السفلية C++
الفعالة ضمانًا قويًا لتأثير التنفيذ لوحدة تنفيذ الخوارزمية.
wtpy
WonderTrader
، وهو إطار فرعي Python3
لـ WonderTrader
تم تطويره باستخدام Python3
Python
العديد من مكتبات الطرف الثالث المشهورة والقوية لمعالجة بيانات السلاسل الزمنية.Python
ملائمة جدًا لكتابة التعليمات البرمجية وتصحيح الأخطاء، ويمكن تشغيلها مباشرة دون تجميع.Python
أيضًا على تمكين تطبيق Python
على المزيد من السيناريوهاتwtpy
هي امتداد لبرنامج WonderTrader
بلغة Python
wtpy
أيضًا على مكون خدمة مراقبة قوي مدمج WtMonSvr
. يوفر هذا المكون واجهة مراقبة webui
عن بعد، والتي يمكنها مراقبة تشغيل مجموعة الإستراتيجية في الوقت الفعلي، كما يوفر خدمة جدولة تلقائية 24×7
لحماية معاملاتك. WonderTrader
WonderTrader
github
: https://github.com/wondertrader/wondertradergitee
: https://gitee.com/wondertrader/wondertraderwtpy
github
: https://github.com/wondertrader/wtpygitee
: https://gitee.com/wondertrader/wtpywtpy
: https://pypi.org/project/wtpy/ يمكن تثبيت wtpy
مباشرة في python3.8
أو أعلى. pip install wtpy --upgrade
WonderTrader
Wt4ElegantRL
باستخدام wtpy
كمحرك الاختبار الخلفي الأساسي https://github.com/drlgistics/Wt4ElegantRL wondertrader
لتلقي المعلومات في الوقت الفعلي من WonderTrader
610730738
(كاملة) المجموعة 2 367916500
(يرجى star
قبل الانضمام، ثم تقديم اسم مستخدم github
الخاص بك)WonderTrader
، يرجى الاطلاع على https://docs.wondertrader.com/WonderTrader
شبه الرسمية https://dumengru.github.io/docs_wondertrader/WonderTrader
الخاصة بـZzzzHeJ https://zzzzhej.github.io/WonderTrader-Learning-Notes/