Algoritmický jazyk QPILE pre programovanie obchodných robotov pre QUIK.
Obchodné roboty môžu byť napísané v špecifickom jazyku, podobne ako programový kód. QPILE je jedným z nich, článok sa bude zaoberať týmto jazykom, porovná jazyky QPILE a
LUA a tiež poskytne príklady robotov v tomto jazyku.
- Všeobecné informácie o QPILE
- Práca so stolom
- konštrukcie QPILE
- Typy údajov
- Výrazy
- Funkcie
- Ladiace programy
- QPILE alebo LUA?
- Ako vytvoriť obchodného robota na QPILE?
- Obchodné roboty na QPILE – hotové riešenia
- Pohyblivý priemerný robot
- N. Moroshkin kalkulátor polohy
- Objemový filter
- Možnosti Gréci
- Obchodný robot TRIX pre QUIK
- Preprocesor M4
Všeobecné informácie o QPILE
QPILE je skratka, ktorá znamená QUIK Programmable Interface and Logic Environment.
Toto je séria príkazov interpretovaných pracovnou stanicou QUIK. Používa sa najmä na výpočet ceny portfólií cenných papierov. Jazyk sa používa aj na:
- dynamický prepočet ceny klientskych aktív na desktope brokera a v ich portfóliách. V druhom prípade sa prepočítava aj ich celková cena;
- nájdenie chýbajúcich ukazovateľov pomocou vlastných algoritmov a údajov pre pôžičky s doplatkom;
- vypracovanie správnej obchodnej stratégie.
Jazyk popisuje štruktúru tabuľky: vymenovanie stĺpcov a riadkov, vzorce. V tom druhom možno na výpočet použiť matematické operácie, premenné, údaje z iných tabuliek. Programový kód načítaný zo servera QUIK alebo z disku používateľa spracuje jazykový interpret, ktorý vypočíta hodnoty vo vzorcoch. Tabuľky jedného programu majú jeden zdroj údajov, ale výpočty nie sú duplicitné a neovplyvňujú efektivitu systému. Pri práci s tabuľkami QUIK majú tabuľky na QPILE štandardné funkcie. QUIK na pracovisku je vybavený debuggerom kódu QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Jazyk umožňuje popísať nové tabuľky s danou štruktúrou, zvýrazniť bunky s určitými hodnotami, vypočítať polia na základe matematických a logických výrazov. Používateľ dostane upozornenia vo forme zvukového signálu alebo textovej správy. Tabuľky na QPILE je možné upravovať, tlačiť, kopírovať, exportovať cez ODBC a DDE server. Počiatočné údaje sú z tabuliek QUIK:
- transakcie vrátane vykonávacích a neosobných;
- príkazy vrátane stop príkazov pre mimoburzové obchody a príkazy – prehľady obchodov v obchodoch s vyrovnaním;
- “klientske portfólio”, “kúpiť/predať”
- údaje z pozícií účastníka podľa peňazí, obchodných účtov, nástroja.
Tabuľky založené na QPILE nie je možné kopírovať do textového súboru cez kontextové menu a exportovať do systémov technickej analýzy a nie je možné na základe nich vytvárať grafy. Tabuľky založené na QPILE nemožno filtrovať ani triediť.
Práca so stolom
Ak chcete načítať kód programu, musíte vybrať ponuku služieb a potom skripty QPILE. Môžete použiť aj kombináciu Ctrl+F11. Potom musíte kliknúť na „Pridať“ a vybrať požadovaný súbor. Má príponu .qpl a jej názov sa zobrazí v zozname Dostupné skripty.
- názov tabuľky;
- počet stĺpcov a klientov;
- zoznam identifikátorov a klientov;
- zoznam parametrov a zdrojový kód súboru.
konštrukcie QPILE
Typy údajov
- String — struna.
- Double je číslo s pohyblivou rádovou čiarkou.
- Zbierka – zbierka.
- Mapa – asociatívne pole – postupnosť párov, ktorá umožňuje získať informácie podľa kľúča.
Výrazy
Aplikujú sa aritmetické operácie sčítania, odčítania, násobenia, delenia. Používajú sa aj logické výrazy „a“, „alebo“, rovná sa, viac, menej, nerovnosti, podmienená konštrukcia „ak … potom …“.
Funkcie
Funkcie môžu byť umiestnené kdekoľvek v programe a majú rôzne názvy. Celkovo je k dispozícii 18 skupín matematických funkcií a funkcií na získanie hodnôt tabuliek a parametrov, asociatívnych polí, zoznamu tabuliek a ďalších úloh. Prvá trieda:
- Matematické funkcie , ktoré umožňujú vrátiť hodnotu sínusu, kosínusu, tangensu, kotangensu argumentu, vypočítať exponent argumentu, vygenerovať náhodné číslo atď.
- Všeobecné príkazy : NEW_GLOBAL na inicializáciu globálnej premennej a MESSAGE na otváranie správ.
Funkcie, s ktorými sa dá pracovať:
- Zbierky predmetov (Collection) . Umožňujú vám vytvoriť novú kolekciu, vrátiť požadovaný počet prvkov, nahradiť alebo vložiť požadované hodnoty.
- Asociatívne polia (MAP) . Pomôžte vytvoriť a spravovať pole.
- Súbory – práca s textovými súbormi, udržiavanie log-logu programu. Názov súboru môže obsahovať cestu k nemu.
- Struny .
- Grafy . Funkcie GET_CANDLE na prístup k údajom o sviečkach a GET_CANDLE EX na vrátenie asociatívneho poľa.
- Aplikácie . Vytváranie objednávok a ich odosielanie do obchodného systému.
- Značky . Ich konštrukcia a inštalácia na grafe. Pridanie, odstránenie jedného alebo všetkých štítkov, získanie a nastavenie parametrov pre konkrétny štítok.
Existujú aj funkcie pre:
- Pre prístup k riadkom ľubovoľných tabuliek QUIK a zoznamom dostupných parametrov . Prístup k údajom tabuľky na pracovisku. Patrí medzi ne GET_ITEM na vrátenie MAP a GET_NUMBER_OF na vrátenie počtu záznamov.
- Na prácu s programovateľným stolom . Tieto príkazy fungujú na tabuľke OWN. Je čitateľný štandardnými funkciami z predchádzajúceho odseku a týmito funkciami. Táto skupina obsahuje príkazy na pridanie, úpravu a vymazanie riadku s indexom a úplné vymazanie tabuľky OWN.
Na získanie hodnôt použite:
- Tabuľky aktuálnych obchodov . Získanie parametrov výmeny informácií pomocou príkazov GET_PARAM (_EX).
- Citovať okná . Získanie hodnôt kotácií nástrojov.
- Tabuľky pozícií podľa nástrojov a peňazí . Získanie údajov o klientovi, firme, nástroji, depo účte kódom.
Servisné funkcie – vrátenie dátumu aktuálnej obchodnej seansy, asociatívnej série, aktuálneho dátumu a času, zistenie stavu pripojenia, prerušenie režimu výpočtu.
Ladiace programy
Postupná kontrola prevádzky programu sa vykonáva v okne “Ladenie”. Otvára sa z kontextového menu “Spustiť výpočet v režime ladenia”. Dá sa otvoriť aj príkazom breakpoint() a riadok programu bude zvýraznený červenou farbou. Okno obsahuje polia s kódom programu a hodnotami premenných. V spodnej časti okna sú tlačidlá “Ďalší krok”, “Pokračovať v vykonávaní”, “Zastaviť výpočet”. Stlačenie F5 bude pokračovať vo vykonávaní programu, kombinácia Shift + F5 zastaví ladenie, kláves F10 presmeruje na ďalší riadok.
QPILE alebo LUA?
LUA je nový programovací jazyk na vytváranie obchodných robotov. Podobne ako QPILE je implementovaný v termináli QUIK. https://articles.opexflow.com/programming/lua.htm Stránka venovaná vývoju obchodných robotov na obchodovanie ukazuje výhody jazyka LUA oproti QPILE. Môže teda fungovať ako nekompilovaný skript a bajtkód, vybavený vývojárskymi nástrojmi a objektovo orientovanými programovacími mechanizmami. Objekty napísané v iných programovacích jazykoch je možné pripojiť k programom LUA. LUA poskytuje 8 typov údajov vrátane metatabuľiek. Jazyk LUA je viacvláknový, rýchly a transakcie a terminálové udalosti sú asynchrónne. LUA je bežnejší ako QPILE a bolo preň napísaných mnoho rozšírení.
Jazyk QPILE je teraz zastaraný. Odborníci na fórach odporúčajú používať LUA. Aj keď sa stále používajú užitočné a efektívne programy.
Jazyk QPILE je však v porovnaní s LUA jednoduchý, takže ak nemáte skúsenosti s programovaním, je lepšie zvoliť QPILE. V tomto jazyku môžete napísať jednoduchého robota, ak nepotrebujete vykonávať zložité výpočty.
Ako vytvoriť obchodného robota na QPILE?
Na vytvorenie obchodného poradcu budete potrebovať nasledujúce programy:
- JEHO Quik.
- Editor kódu Notepad++.
- Sprievodca po QPILE.
- XML plugin na detekciu kódu v programe Notepad++.
Stiahnite si a nainštalujte tieto programy. Povoľte syntax jazyka umiestnením súboru userDefineLang.xml do cesty C:\Users\User\ AppData\Roaming\Notepad++\
Blok “Používateľské nastavenia” je doplnený o premenné NUMBER a INTERVAL, ktoré budú použité vo funkcii získania posledných N pruhov. Funkcia DATETIME nastavuje dátum a čas servera a z nej sa volajú aktuálne funkcie dátumu a času CURDATE a CURTIME. Aktuálny čas sa prevedie na číslo v riadku 24. Riadok 26 nastavuje čas, kedy má algoritmus bežať od 10:00:01 do 18:40:00 UTC.
Obchodné roboty na QPILE – hotové riešenia
Pohyblivý priemerný robot
Demo robot nie je vhodný na skutočné obchodovanie.
N. Moroshkin kalkulátor polohy
Program na výpočet úrovní maximálneho povoleného čerpania a cieľa pre dlhé a krátke pozície pri aktuálnych dopytových a nákupných cenách. Úrovne sú vypočítané pre 2 hodnoty objemu vstupu do pozície. Robot nájde povolený objem pozície pri zadávaní stop príkazu v jednom kroku od otváracej ceny s výpočtom otvorenia pozície v smere rastu tyče. Nájdené úrovne sa zadajú do okna terminálu, ktoré sa následne premietnu do cenového grafu. Transakcie sú pre daný nástroj fixné. Ak je pozícia otvorená, robot začne počítať jej parametre. V závislosti od zmeny polohy sa upravujú priradené zákazky.
Objemový filter
Portfóliový robot na výpočet aritmetického priemeru objemu pre sviečky a jeho porovnanie s priemerným produktom pomocou koeficientu X. Správne pracuje s vykreslenými grafmi vo zvolenom časovom období.
Možnosti Gréci
Portfólio na výpočet a zobrazenie “Grékov” opcií. Odlišuje sa od metódy Black-Showers.
Obchodný robot TRIX pre QUIK
Program je založený na indikátore TRIX. Keď sa indikátor zatvorí nad nulovou čiarou, určenou úrovňou, robot zaujme dlhú pozíciu. Pozíciu uzatvára Take Profit, Stop Loss alebo trailing stop.
Preprocesor M4
Program pre prácu s QPILE a Lua. Zahŕňa archívy so spustiteľnými súbormi, dokumentáciu a súbory DLL s analýzou regulárneho výrazu. Ak chcete program použiť, musíte rozbaliť spustiteľné súbory a umiestniť regexp2 do cesty C:\Windows. Lekcie o QPILE pre QUIK: https://youtu.be/vMTXwDUujpI Inštalácia skriptu na QPILE v termináli Quik: https://youtu.be/0B7qL8Svh7I Časť o githube, ktorá popisuje použitie algoritmického jazyka QPILE zabudovaného do Pracovná stanica systému QUIK umiestnená na odkaze – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE je zastaraný jazyk, ale celkom jednoduchý a dostupný aj pre začínajúcich obchodníkov. Obchodné roboty a programy, ktoré sa dlhodobo osvedčili, na ňom naďalej pracujú. Pre zložitejšie úlohy je však lepšie použiť LUA.
0к