Алгоритамски јазик QPILE за програмирање на роботи за тргување за QUIK.
Трговските роботи можат да бидат напишани на одреден јазик, слично на програмскиот код. QPILE е еден од нив, статијата ќе го разгледа овој јазик, ќе ги спореди јазиците QPILE и
LUA , а исто така ќе даде примери на роботи на овој јазик.
- Општи информации за QPILE
- Работа со маса
- QPILE конструира
- Типови на податоци
- Изрази
- Функции
- Програми за дебагирање
- QPILE или LUA?
- Како да креирате робот за тргување на QPILE?
- Тргување со роботи на QPILE – готови решенија
- Просечен робот кој се движи
- Н.Морошкин калкулатор за позиција
- Филтер за јачина на звук
- Опции Грци
- ТРИКС робот за тргување за QUIK
- M4 претпроцесор
Општи информации за 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 конструира
Типови на податоци
- Низа – низа.
- Двоен е број со подвижна запирка.
- Колекција – колекција.
- Карта – асоцијативна низа – низа од парови што ви овозможува да добивате информации со клуч.
Изрази
Се применуваат аритметичките операции собирање, одземање, множење, делење. Се користат и логичките изрази „и“, „или“, еднакви, повеќе, помалку, неравенки, условна конструкција „ако … тогаш …“.
Функции
Функциите може да се наоѓаат каде било во програмата и да имаат различни имиња. Севкупно, достапни се 18 групи математички функции и функции за да се добијат вредностите на табелите и параметрите, асоцијативните низи, списокот на табели и други задачи. Прво одделение:
- Математички функции кои ви дозволуваат да ја вратите вредноста на синусот, косинус, тангента, котангента на аргументот, да го пресметате експонентот на аргументот, да генерирате случаен број итн.
- Општи команди : NEW_GLOBAL за иницијализирање на глобална променлива и MESSAGE за отворање пораки.
Функции за работа со:
- Збирки на предмети (Колекција) . Тие ви дозволуваат да креирате нова колекција, да го вратите потребниот број елементи, да ги замените или вметнете саканите вредности.
- Асоцијативни низи (MAP) . Помогнете да се создаде и управува со низата.
- Датотеки – работа со текстуални датотеки, одржување на дневник на програмата. Името на датотеката може да ја содржи патеката до неа.
- Жици .
- Графикони . Функциите GET_CANDLE за пристап до податоците на свеќата и GET_CANDLE EX за враќање на асоцијативна низа.
- Апликации . Креирање нарачки и нивно испраќање до системот за тргување.
- Тагови . Нивната конструкција и инсталација на графиконот. Додавање, бришење на една или сите етикети, добивање и поставување параметри за одредена ознака.
Постојат и функции за:
- За пристап до редови на произволни QUIK табели и списоци на достапни параметри . Пристап до податоците од табелата на работното место. Тие вклучуваат GET_ITEM за враќање на MAP и GET_NUMBER_OF за враќање на бројот на записи.
- За работа со програмабилна табела . Овие команди работат на OWN табелата. Се чита со стандардните функции од претходниот став и од овие функции. Оваа група вклучува команди за додавање, менување и бришење ред со индекс и целосно чистење на OWN табелата.
За да добиете вредности, користете:
- Табели на тековни занаети . Добивање параметри на информации за размена со помош на команди GET_PARAM (_EX).
- Цитат прозорци . Добивање на вредностите на цитатите за инструменти.
- Табели на позиции по инструменти и пари . Добивање податоци за клиент, компанија, инструмент, депо сметка по код.
Сервисни функции – враќање на датумот на тековната трговска сесија, асоцијативна серија, тековен датум и време, одредување на состојбата на поврзување, прекинување на режимот на пресметка.
Програми за дебагирање
Чекор-по-чекор контрола врз работата на програмата се врши во прозорецот “Debug”. Се отвора од контекстното мени „Започнете со пресметка во режим за отстранување грешки“. Може да се отвори и со командата 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?
За да креирате советник за тргување, ќе ви требаат следниве програми:
- НЕГОВА КВИК.
- Уредувач на кодови 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 – готови решенија
Просечен робот кој се движи
Демо робот не е погоден за вистинско тргување.
Н.Морошкин калкулатор за позиција
Програма за пресметување на нивоата на максимално дозволеното повлекување и целта за долги и кратки позиции по тековни цени за барање и понуда. Нивоата се пресметуваат за 2 вредности на волуменот за влез во позиција. Роботот го наоѓа дозволениот волумен на позиција при доделување на налог за стоп во еден чекор од почетната цена со пресметка на отворање позиција во насока на раст на шипката. Пронајдените нивоа се внесуваат во терминалниот прозорец, кои последователно се рефлектираат во табелата со цени. Трансакциите се фиксирани за даден инструмент. Ако се отвори позиција, роботот започнува да ги пресметува неговите параметри. Во зависност од промената на положбата, доделените нарачки се прилагодуваат.
Филтер за јачина на звук
Портфолио робот за пресметување на аритметичката средина на јачината на звукот за свеќи и споредување со просечниот производ со коефициентот X. Правилно работи со исцртани графикони во избраниот временски период.
Опции Грци
Портфолио за пресметување и прикажување „Грци“ на опции. Се разликува од методот Black-Showers.
ТРИКС робот за тргување за QUIK
Програмата се базира на TRIX индикаторот. Кога индикаторот се затвора над нултата линија, наведеното ниво, роботот ја зазема позицијата Долга. Позицијата е затворена со Take Profit, Stop Loss или trailing stop.
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к