زبان الگوریتمی QPILE برای برنامه نویسی ربات های تجاری برای QUIK.
روبات های معامله گر را می توان به یک زبان خاص، مشابه کد برنامه، نوشت. QPILE یکی از آنهاست، این مقاله به بررسی این زبان، مقایسه زبان های QPILE و
LUA و همچنین مثال هایی از روبات ها در این زبان می پردازد.
- اطلاعات کلی در مورد QPILE
- کار با میز
- ساختارهای QPILE
- انواع داده ها
- اصطلاحات
- کارکرد
- برنامه های اشکال زدایی
- QPILE یا LUA؟
- چگونه یک ربات معامله گر در QPILE ایجاد کنیم؟
- ربات های تجاری در QPILE – راه حل های آماده
- ربات متوسط متحرک
- ماشین حساب موقعیت N. Moroshkin
- فیلتر حجم
- گزینه ها یونانی ها
- ربات معامله گر TRIX برای QUIK
- پیش پردازنده M4
اطلاعات کلی در مورد QPILE
QPILE مخفف QUIK Programmable Interface and Logic Environment است.
این یک سری دستورات است که توسط ایستگاه کاری 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
انواع داده ها
- رشته – رشته.
- Double یک عدد ممیز شناور است.
- مجموعه – مجموعه.
- نقشه – یک آرایه انجمنی – دنباله ای از جفت ها که به شما امکان می دهد اطلاعات را با کلید بدست آورید.
اصطلاحات
عملیات حسابی جمع، تفریق، ضرب، تقسیم اعمال می شود. عبارات منطقی “و”، “یا”، مساوی، بیشتر، کمتر، نابرابری ها، ساخت شرطی “اگر … سپس …” نیز استفاده می شود.
کارکرد
توابع می توانند در هر نقطه از برنامه قرار داشته باشند و نام های مختلفی داشته باشند. در مجموع، 18 گروه از توابع و توابع ریاضی برای به دست آوردن مقادیر جداول و پارامترها، آرایه های انجمنی، لیستی از جداول و سایر وظایف موجود است. کلاس اول:
- توابع ریاضی که به شما امکان می دهد مقدار سینوس، کسینوس، مماس، کتانژانت آرگومان را برگردانید، توان آرگومان را محاسبه کنید، یک عدد تصادفی ایجاد کنید و غیره.
- دستورات عمومی : NEW_GLOBAL برای مقداردهی اولیه یک متغیر سراسری و MESSAGE برای باز کردن پیام ها.
توابع برای کار با:
- مجموعه اشیاء (مجموعه) . آنها به شما امکان می دهند یک مجموعه جدید ایجاد کنید، تعداد مورد نیاز عناصر را برگردانید، مقادیر مورد نظر را جایگزین یا درج کنید.
- آرایه های انجمنی (MAP) . به ایجاد و مدیریت آرایه کمک کنید.
- فایلها – کار با فایلهای متنی، حفظ لاگ برنامه. نام فایل ممکن است حاوی مسیر آن باشد.
- رشته ها
- نمودارها _ عملکردهای GET_CANDLE برای دسترسی به دادههای شمع و GET_CANDLE EX برای برگرداندن یک آرایه انجمنی.
- برنامه های کاربردی ایجاد سفارش و ارسال آنها به سامانه معاملات.
- برچسب ها ساخت و نصب آنها بر روی نمودار. افزودن، حذف یک یا همه برچسب ها، گرفتن و تنظیم پارامترها برای یک برچسب خاص.
همچنین توابعی برای:
- برای دسترسی به ردیفهایی از جداول QUIK دلخواه و فهرستهای پارامترهای موجود . دسترسی به داده های جدول محل کار اینها شامل GET_ITEM برای برگرداندن MAP و GET_NUMBER_OF برای برگرداندن تعداد ورودیها میشود.
- برای کار با جدول قابل برنامه ریزی این دستورات در جدول OWN عمل می کنند. با توابع استاندارد پاراگراف قبلی و این توابع قابل خواندن است. این گروه شامل دستوراتی برای افزودن، اصلاح و حذف یک ردیف با شاخص و پاک کردن کامل جدول OWN می باشد.
برای بدست آوردن مقادیر از:
- جداول معاملات جاری دریافت پارامترهای اطلاعات تبادل با استفاده از دستورات GET_PARAM (_EX).
- نقل قول ویندوز به دست آوردن مقادیر مظنه ابزار.
- جداول موقعیت ها بر اساس ابزار و پول . به دست آوردن اطلاعات مربوط به مشتری، شرکت، ابزار، حساب دپو با کد.
توابع سرویس – برگرداندن تاریخ جلسه معاملاتی جاری، سری انجمنی، تاریخ و زمان جاری، تعیین وضعیت اتصال، قطع حالت محاسبه.
برنامه های اشکال زدایی
کنترل گام به گام بر عملکرد برنامه در پنجره “اشکال زدایی” انجام می شود. از منوی زمینه “شروع محاسبه در حالت اشکال زدایی” باز می شود. همچنین می توان با دستور 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 ایجاد کنیم؟
برای ایجاد یک مشاور معاملاتی، به برنامه های زیر نیاز دارید:
- ITS Quik.
- ویرایشگر کد Notepad++.
- راهنمای QPILE.
- پلاگین XML برای تشخیص کد در Notepad ++.
این برنامه ها را دانلود و نصب کنید. سینتکس زبان را با قرار دادن userDefineLang.xml در مسیر C:\Users\User\ AppData\Roaming\Notepad++\ فعال کنید.
بلوک “تنظیمات کاربر” با متغیرهای NUMBER و INTERVAL تکمیل می شود که در عملکرد به دست آوردن آخرین N نوار استفاده می شود. تابع DATETIME تاریخ و زمان سرور را تنظیم می کند و توابع تاریخ و زمان فعلی CURDATE و CURTIME از آن فراخوانی می شوند. زمان فعلی در خط 24 به عدد تبدیل می شود. خط 26 زمان اجرای الگوریتم را از 10:00:01 تا 18:40:00 UTC تنظیم می کند.
ربات های تجاری در QPILE – راه حل های آماده
ربات متوسط متحرک
ربات نمایشی برای تجارت واقعی مناسب نیست.
ماشین حساب موقعیت N. Moroshkin
برنامه ای برای محاسبه سطوح حداکثر برداشت مجاز و هدف برای موقعیت های خرید و فروش در قیمت های درخواستی و پیشنهادی فعلی. سطوح برای 2 مقدار از حجم ورودی موقعیت محاسبه می شود. ربات حجم موقعیت مجاز را هنگام تخصیص دستور توقف در یک مرحله از قیمت افتتاحیه با محاسبه باز کردن موقعیت در جهت رو به بالا میله پیدا می کند. سطوح یافت شده در پنجره ترمینال وارد می شوند که متعاقباً در نمودار قیمت منعکس می شوند. معاملات برای یک ابزار معین ثابت هستند. اگر یک موقعیت باز شود، ربات شروع به محاسبه پارامترهای آن می کند. بسته به تغییر موقعیت، سفارشات تعیین شده تنظیم می شوند.
فیلتر حجم
یک ربات نمونه کار برای محاسبه میانگین حسابی حجم شمع ها و مقایسه آن با محصول متوسط با ضریب X. با نمودارهای رسم شده در یک بازه زمانی انتخاب شده به درستی کار می کند.
گزینه ها یونانی ها
نمونه کارها برای محاسبه و نمایش “یونانی” گزینه ها. با روش Black-Showers متفاوت است.
ربات معامله گر TRIX برای QUIK
این برنامه بر اساس شاخص TRIX است. هنگامی که نشانگر بالای خط صفر، سطح مشخص شده بسته می شود، ربات موقعیت Long را می گیرد. موقعیت با برداشت سود، توقف ضرر یا توقف پایانی بسته می شود.
پیش پردازنده 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 استفاده کنید.
0к