لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK

Программирование

لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK.
يمكن كتابة روبوتات التداول بلغة معينة ، على غرار كود البرنامج. QPILE هي واحدة منها ، ستأخذ هذه المقالة بعين الاعتبار هذه اللغة ، وتقارن بين اللغتين QPILE و
LUA ، وستقدم أيضًا أمثلة على الروبوتات بهذه اللغة.

معلومات عامة عن QPILE

QPILE هو اختصار يشير إلى واجهة QUIK القابلة للبرمجة والبيئة المنطقية.

هذه سلسلة من الأوامر يتم تفسيرها بواسطة محطة عمل QUIK. يتم استخدامه بشكل أساسي لحساب سعر محافظ الأوراق المالية. تُستخدم اللغة أيضًا في:

  • إعادة الحساب الديناميكي لسعر أصول العملاء على سطح مكتب الوسيط وفي محافظهم الاستثمارية. في الحالة الأخيرة ، يتم أيضًا إعادة حساب سعرها الإجمالي ؛
  • العثور على المؤشرات المفقودة باستخدام الخوارزميات والبيانات الخاصة بهم للإقراض بالهامش ؛
  • تطوير استراتيجية التداول الصحيحة.

تصف اللغة هيكل الجدول: تعيين الأعمدة والصفوف والصيغ. في الأخير ، يمكن استخدام العمليات الحسابية والمتغيرات والبيانات من جداول أخرى للحساب. تتم معالجة رمز البرنامج الذي تم تحميله من خادم QUIK أو من قرص المستخدم بواسطة مترجم اللغة ، والذي يحسب القيم في الصيغ. تحتوي جداول برنامج واحد على مصدر بيانات واحد ، لكن الحسابات لا تتكرر ولا تؤثر على كفاءة النظام. عند العمل باستخدام جداول QUIK ، فإن الجداول الموجودة على QPILE لها وظائف قياسية. تم تجهيز QUIK في مكان العمل بمصحح رمز QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm ستسمح لك اللغة بوصف جداول جديدة بهيكل معين وتمييز الخلايا بقيم معينة وحساب الحقول بناءً على التعبيرات الرياضية والمنطقية. سيتلقى المستخدم إشعارات على شكل إشارة صوتية أو رسالة نصية. يمكن تحرير الجداول الموجودة على QPILE وطباعتها ونسخها وتصديرها عبر خادم ODBC و DDE. البيانات الأولية مأخوذة من جداول QUIK:

  • المعاملات ، بما في ذلك الخاصة بالتنفيذ والمعاملات غير الشخصية ؛
  • الأوامر ، بما في ذلك أوامر الإيقاف ، للصفقات والأوامر خارج البورصة – تقارير عن التداولات في صفقات التسوية ؛
  • “محفظة العميل” ، “شراء / بيع”
  • بيانات من صفقات المشاركين عن طريق المال وحسابات التداول والأداة.

لا يمكن نسخ الجداول التي تستند إلى QPILE إلى ملف نصي عبر قائمة السياق وتصديرها إلى أنظمة التحليل الفني ، ولا يمكن تطوير المخططات بناءً عليها. لا يمكن تصفية أو فرز الجداول المستندة إلى QPILE.

العمل مع طاولة

لتحميل رمز البرنامج ، تحتاج إلى تحديد قائمة الخدمات ، ثم البرامج النصية QPILE. يمكنك أيضًا استخدام التركيبة Ctrl + F11. بعد أن تحتاج إلى النقر فوق “إضافة” وتحديد الملف المطلوب. يحتوي على ملحق .qpl وسيظهر اسمه في قائمة البرامج النصية المتاحة.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKإذا كان هناك خطأ في البرنامج ، فسيقوم النظام بإرسال إشعار في “نافذة الرسائل” ، والذي سيحتوي على اسم الملف المعيب ورقم السطر الذي يحتوي على الخطأ. إذا لم يتم العثور على إخفاقات في الملف ، فسيتم الإشارة إلى البيانات التالية في الحقول:

  • اسم الطاولة؛
  • عدد الأعمدة والعملاء ؛
  • قائمة المعرفات والعملاء ؛
  • قائمة المعلمات والتعليمات البرمجية المصدر للملف.

لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKسيسمح لك الزر “تنزيل محليًا” بالحصول على الجدول من ملف ، وسيقوم “تحميل إلى الخادم” بإرسال البرنامج إلى الخادم بحيث يمكن لجميع المستخدمين الوصول إليه. لإنشاء جدول ، انقر على “إنشاء جدول”. في “البرامج النصية المتوفرة” ، حدد البرنامج الذي تريد تنفيذه ، وحدد عدد الأسطر من خلال “عامل تصفية العميل” ، وحدد الأعمدة المطلوبة وتسلسلها.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKيتوفر إيقاف الحساب واستئنافه ، وبدء الحساب مرة أخرى وفي وضع التصحيح ، وحفظ الوصف في ملف ، وإظهار الصيغة ، ومعلمات البرنامج النصي في قائمة السياق.

يبني QPILE

أنواع البيانات

  • سلسلة – خيط.
  • المضاعفة هي رقم فاصلة عائمة.
  • المجموعة – مجموعة.
  • خريطة – مصفوفة ترابطية – سلسلة من الأزواج تسمح لك بالحصول على المعلومات عن طريق المفتاح.

التعبيرات

يتم تطبيق العمليات الحسابية للجمع والطرح والضرب والقسمة. يتم أيضًا استخدام التعبيرات المنطقية “و” ، “أو” ، تساوي ، أكثر ، أقل ، عدم المساواة ، البناء الشرطي “إذا … ثم …”.

المهام

يمكن أن توجد الوظائف في أي مكان في البرنامج ولها أسماء مختلفة. في المجموع ، تتوفر 18 مجموعة من الوظائف والوظائف الرياضية للحصول على قيم الجداول والمعلمات والمصفوفات الترابطية وقائمة الجداول والمهام الأخرى. الصف الاول:

  1. الدوال الرياضية التي تسمح لك بإرجاع قيمة الجيب وجيب التمام والظل والظل للوسيطة وحساب أس الوسيطة وإنشاء رقم عشوائي وما إلى ذلك.
  2. الأوامر العامة : NEW_GLOBAL لتهيئة متغير عام و MESSAGE لفتح الرسائل.

وظائف للعمل معها:

  • مجموعات الأشياء (المجموعة) . إنها تسمح لك بإنشاء مجموعة جديدة ، وإرجاع العدد المطلوب من العناصر ، واستبدال أو إدراج القيم المطلوبة.
  • المصفوفات النقابية (MAP) . تساعد في إنشاء وإدارة المصفوفة.
  • الملفات – العمل مع الملفات النصية ، والحفاظ على سجل البرنامج. قد يحتوي اسم الملف على المسار إليه.
  • سلاسل .
  • الرسوم البيانية . دالات GET_CANDLE للوصول إلى بيانات الشمعة و GET_CANDLE EX لإرجاع مصفوفة ترابطية.
  • التطبيقات . إنشاء الأوامر وإرسالها إلى نظام التداول.
  • العلامات . البناء والتركيب على الرسم البياني. إضافة وحذف واحد أو كل التصنيفات ، والحصول على معلمات لتسمية معينة وتعيينها.

هناك أيضًا وظائف لـ:

  1. للوصول إلى صفوف جداول QUIK التعسفية وقوائم المعلمات المتاحة . الوصول إلى بيانات جدول مكان العمل. وتشمل هذه GET_ITEM لإرجاع MAP و GET_NUMBER_OF لإرجاع عدد الإدخالات.
  2. للعمل مع جدول قابل للبرمجة . تعمل هذه الأوامر على جدول OWN. يمكن قراءته من خلال الوظائف القياسية من الفقرة السابقة وبواسطة هذه الوظائف. تتضمن هذه المجموعة أوامر لإضافة صف مع فهرس وتعديله وحذفه ، ومسح جدول OWN بالكامل.

للحصول على القيم ، استخدم:

  1. جداول التداولات الحالية . الحصول على معاملات تبادل المعلومات باستخدام أوامر GET_PARAM (_EX).
  2. نوافذ الاقتباس . الحصول على قيم أسعار الأدوات.
  3. جداول المراكز بالأدوات والمال . الحصول على بيانات عن حساب عميل أو شركة أو أداة أو إيداع عن طريق الكود.

وظائف الخدمة – إعادة تاريخ جلسة التداول الحالية ، السلسلة الترابطية ، التاريخ والوقت الحاليين ، تحديد حالة الاتصال ، مقاطعة وضع الحساب.

برامج التصحيح

يتم التحكم في تشغيل البرنامج خطوة بخطوة في نافذة “التصحيح”. يتم فتحه من قائمة السياق “بدء الحساب في وضع التصحيح”. يمكن أيضًا فتحه باستخدام الأمر breakpoint () ، وسيتم تمييز سطر البرنامج باللون الأحمر. تحتوي النافذة على حقول مع رمز البرنامج والقيم المتغيرة. في الجزء السفلي من النافذة توجد أزرار “الخطوة التالية” ، “متابعة التنفيذ” ، “إيقاف الحساب”. سيؤدي الضغط على F5 إلى متابعة تنفيذ البرنامج ، وسيتوقف الجمع بين Shift + F5 عن تصحيح الأخطاء ، وسيقوم المفتاح F10 بالتوجيه إلى السطر التالي.

QPILE أم LUA؟

LUA هي لغة برمجة جديدة لإنشاء روبوتات تجارية. مثل QPILE ، يتم تنفيذه في محطة QUIK. https://articles.opexflow.com/programming/lua.htm يعرض الموقع المخصص لتطوير روبوتات التداول من أجل التداول مزايا لغة LUA على QPILE. لذلك ، يمكن أن يعمل كبرنامج نصي غير مجمع وكود ثانوي ، مزود بأدوات المطور وآليات البرمجة الموجهة للكائنات. يمكن توصيل الكائنات المكتوبة بلغات برمجة أخرى ببرامج LUA. يوفر LUA 8 أنواع بيانات ، بما في ذلك البيانات الوصفية. لغة LUA متعددة الخيوط وسريعة ، والمعاملات وأحداث المحطة غير متزامنة. تعد LUA أكثر شيوعًا من QPILE ، وقد تم كتابة العديد من الامتدادات لها.

تم الآن إهمال لغة QPILE. يوصي الخبراء في المنتديات باستخدام LUA. على الرغم من أن البرامج المفيدة والفعالة لا تزال قيد الاستخدام.

ومع ذلك ، فإن لغة QPILE بسيطة مقارنةً بـ LUA ، لذلك إذا لم تكن لديك خبرة في البرمجة ، فمن الأفضل اختيار QPILE. بهذه اللغة ، يمكنك كتابة روبوت بسيط إذا لم تكن بحاجة لإجراء حسابات معقدة.

كيف تصنع روبوت تداول على QPILE؟

لإنشاء مستشار تداول ، ستحتاج إلى البرامج التالية:

  1. ITS كويك.
  2. محرر كود Notepad ++.
  3. دليل QPILE.
  4. البرنامج المساعد XML لاكتشاف الكود في Notepad ++.

قم بتنزيل وتثبيت هذه البرامج. قم بتمكين بناء جملة اللغة بوضع userDefineLang.xml في المسار C: \ Users \ User \ AppData \ Roaming \ Notepad ++ \
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKأولاً ، لنقم بإنشاء إستراتيجية التداول التالية. يجب أن يحسب البرنامج النصي Hi و Low للشموع القليلة الأخيرة كل دقيقة ، تحقق من السعر الحالي للأداة. يتم فتح المركز في الاتجاه المطلوب إذا وصل سعر الأداة إلى الحد الأقصى أو الحد الأدنى لقيمة الفترة. عند تلقي إشارة بيع ، يتم إغلاق المركز الطويل تلقائيًا. يستخدم الروبوت أداة GAZP ، ويتم ضبط الإطار الزمني على دقيقة واحدة. تم ضبط عمق القياس المنخفض والمنخفض على 5 شموع. للدخول في صفقة شراء ، يتم تعيين قاعدة وتقاطع السعر الحالي للحد الأقصى لقيمة الفترة. سيدخل الروبوت في وضع بيع إذا تجاوز السعر الحالي الحد الأدنى لقيمة هذه الشموع الخمسة. اكتب كتلة من التعليمات البرمجية في Notepad ++ مع الإعدادات الأساسية وتاريخ ووقت الخادم. يظهر هذا الرمز في الصورة أدناه.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKتشكل الأسطر الأربعة الأولى من التعليمات البرمجية رأس البرنامج. بين السطور 6 و 44 جسم البرنامج الذي يحتوي على محتويات الروبوت. تحتوي الأسطر من 7 إلى 12 على إعدادات المستخدم ، والتي تتضمن أكواد الأداة والمجموعة والعميل ، ورقم الحساب في MICEX. لا تتغير هذه القيم أثناء تنفيذ البرنامج. الأسطر 13-16 هي القيم الأولية للمتغيرات. ستتم إعادة تعيينهم إلى الصفر في كل ممر تكرار. تحتوي الأسطر 17 – 21 على إشارة لاستخدام تاريخ ووقت الخادم. يتم تمرير هذه البيانات إلى وظيفة DATETIME وتحويلها إلى تنسيق نصي. ترسل الأسطر 22 – 29 البيانات المستلمة إلى الجدول. يجب حفظ الكود وتحديد امتداد qpl.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKافتح البرنامج في QUIK بالضغط على Ctrl + F10 واختيار ملف qpl الذي تم إنشاؤه. استخدم تركيبة Ctrl + F11 لفتح نافذة “Work with Portfolios” وتعيين فترة حساب المحفظة على 5 دقائق. اضغط على Ctrl + F12 لتعيين الأعمدة لعرضها في الجدول. توضح الصورة نتيجة عمل الروبوت.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKدعنا نضيف بعض الوظائف والشروط إلى برنامجنا.
يتم استكمال كتلة “إعدادات المستخدم” بمتغيرات NUMBER و INTERVAL ، والتي سيتم استخدامها في وظيفة الحصول على آخر أشرطة N. تحدد الدالة DATETIME تاريخ الخادم ووقته ، ويتم استدعاء وظيفتي التاريخ والوقت الحاليين CURDATE و CURTIME منها. يتم تحويل الوقت الحالي إلى رقم في السطر 24. يحدد السطر 26 وقت تشغيل الخوارزمية من الساعة 10:00:01 إلى 18:40:00 بالتوقيت العالمي المنسق.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKلغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKفي أغلب الأحيان ، يتم حساب المؤشرات والمذبذبات والحسابات الإحصائية بواسطة آخر شموع N على الرسم البياني. لا تحتوي QPILE على وظيفة لتجميع عدد الشموع N من الفترات السابقة على هذا النحو ، ولكن هناك وظيفة GET_CANDLE تصل إلى الشموع على الرسم البياني حسب التاريخ والوقت بتنسيق نصي. يحتوي الكود الخاص بنا على وظيفة الحصول على آخر N أشرطة OHLC (). يقوم بإنشاء مجموعة مع معلمات الشموع الأخيرة المتداخلة في قائمة التجميع. يتحقق البرنامج من قيمة INTERVAL ، وإذا لم تقع ضمن النطاق 0 … 60 ، يتم عرض رسالة تفيد بأن القيمة لا تتوافق مع النطاق المسموح به. يتم إنشاء مجموعة MAP مع الشموع في السطر 88. حلقة FOR تستقصي الرسم البياني إلى العمق المطلوب مع خطوة INTERVAL من الشمعة الجديدة إلى الشمعة القديمة. في السطر 90 ، بعد الإعلان عن الدورة ، يعود الروبوت بفاصل زمني. عندما تحصل على شمعة مع GET_CANDLE ، ضعه في مجموعة BARLIST باستخدام دالة INSERT_COLLECTION_TEAM. نتيجة لتشغيل أمر OHLC () ، يتم تجديد BARLIST بآخر شموع من مخطط الأداة بمبلغ NUMBER. يتم طلب عدد العناصر في المجموعة بواسطة الأمر GET_COLLECTION_COUNT () والإبلاغ عنها بواسطة متغير BARCOUNT. تم الإبلاغ عن تاريخ الخادم ووقته وقيم متغيرات INSTRUMENT و BARCOUNT بواسطة الدالة SET_VALUE () في الإخراج. يتم إنشاء هذا المصفوفة بواسطة الأمر CREATE_MAP (). تقع البيانات في الجدول المخصص ، والذي يمكن رؤيته في الصورة أدناه. تم الإبلاغ عن قيم المتغيرات INSTRUMENT و BARCOUNT بواسطة الدالة SET_VALUE () في الإخراج. يتم إنشاء هذا المصفوفة بواسطة الأمر CREATE_MAP (). تقع البيانات في الجدول المخصص ، والذي يمكن رؤيته في الصورة أدناه. تم الإبلاغ عن قيم المتغيرات INSTRUMENT و BARCOUNT بواسطة الدالة SET_VALUE () في الإخراج. يتم إنشاء هذا المصفوفة بواسطة الأمر CREATE_MAP (). تقع البيانات في الجدول المخصص ، والذي يمكن رؤيته في الصورة أدناه.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK

روبوتات التداول على QPILE – حلول جاهزة

الروبوت المتوسط ​​المتحرك

الروبوت التجريبي غير مناسب للتداول الحقيقي.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIKيتضمن الروبوت 5 معلمات. يتم تعيين قيم معرفات التاريخ والوقت والسعر على المستوى 30. يتم تعيين معرفات MOVING و TP على الدقة الصفرية. كود الروبوت على المتوسط ​​المتحرك مكتوب تحت QPILE: [أعمدة المعرض = “5” ids = “14896،14897،14898،14899،14900،14901،14902،14903،14904،14905،14906،14907”]

N. Moroshkin موقف حاسبة

برنامج لحساب مستويات الحد الأقصى المسموح به من التراجع والهدف للمراكز الطويلة والقصيرة بأسعار الطلب والعطاء الحالية. يتم حساب المستويات لقيمتين لحجم دخول المركز. يجد الروبوت حجم المركز المسموح به عند تعيين أمر إيقاف في خطوة واحدة من سعر الافتتاح مع حساب فتح مركز في الاتجاه الصعودي للشريط. يتم إدخال المستويات التي تم العثور عليها في نافذة المحطة ، والتي تنعكس لاحقًا في مخطط الأسعار. يتم إصلاح المعاملات لأداة معينة. إذا تم فتح مركز ، يبدأ الروبوت في حساب معاملاته. اعتمادًا على التغيير في المركز ، يتم تعديل الأوامر المخصصة.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK

مرشح الحجم

محفظة روبوت لحساب المتوسط ​​الحسابي لحجم الشموع ومقارنتها بمتوسط ​​المنتج بواسطة معامل X. تعمل بشكل صحيح مع الرسوم البيانية في فترة زمنية محددة.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK

خيارات الإغريق

حافظة لحساب وعرض خيارات “اليونانيين”. وهي تختلف عن طريقة Black-Showers.
لغة خوارزمية QPILE لبرمجة روبوتات التداول لـ QUIK

روبوت التداول TRIX لـ QUIK

يعتمد البرنامج على مؤشر TRIX. عندما يغلق المؤشر فوق خط الصفر ، المستوى المحدد ، يأخذ الروبوت المركز الطويل. يتم إغلاق المركز عن طريق جني الأرباح أو إيقاف الخسارة أو وقف الخسارة المتحرك.

المعالج الأولي M4

برنامج للعمل مع QPILE و Lua. يتضمن أرشيفات مع ملفات قابلة للتنفيذ ووثائق وملفات DLL مع تحليل التعبير العادي. لاستخدام البرنامج ، تحتاج إلى فك ضغط الملفات القابلة للتنفيذ ووضع regexp2 في مسار C: \ Windows. دروس حول QPILE لـ QUIK: https://youtu.be/vMTXwDUujpI تثبيت برنامج نصي على QPILE في محطة Quik: https://youtu.be/0B7qL8Svh7I قسم على github يصف استخدام لغة خوارزمية QPILE المضمنة في محطة عمل نظام QUIK الموجودة على الرابط – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE هي لغة قديمة ، ولكنها بسيطة جدًا ويمكن الوصول إليها حتى للمتداولين المبتدئين. تستمر الروبوتات والبرامج التجارية التي أثبتت جدواها لفترة طويلة في العمل عليها. ومع ذلك ، من الأفضل استخدام LUA للمهام الأكثر تعقيدًا.

info
Rate author
Add a comment

  1. Владимир Геннадьевич Евсеев

    Reply