Limbajul algoritmic QPILE pentru programarea roboților de tranzacționare pentru QUIK.
Roboții de tranzacționare pot fi scrisi într-un anumit limbaj, similar codului programului. QPILE este unul dintre ele, acest articol va lua în considerare această limbă, va compara limbajele QPILE și
LUA și va oferi, de asemenea, exemple de roboți în această limbă.
- Informații generale despre QPILE
- Lucrul cu o masă
- constructe QPILE
- Tipuri de date
- Expresii
- Funcții
- Programe de depanare
- QPILE sau LUA?
- Cum se creează un robot de tranzacționare pe QPILE?
- Roboți de tranzacționare pe QPILE – soluții gata făcute
- Robot mediu în mișcare
- Calculator de poziție N. Moroshkin
- Filtru de volum
- Opțiuni greci
- Robot de tranzacționare TRIX pentru QUIK
- Preprocesor M4
Informații generale despre QPILE
QPILE este o abreviere care înseamnă QUIK Programable Interface and Logic Environment.
Aceasta este o serie de comenzi interpretate de stația de lucru QUIK. Este utilizat în principal pentru a calcula prețul portofoliilor de titluri. Limbajul este folosit și pentru:
- recalcularea dinamică a prețului activelor clienților pe desktop-ul brokerului și în portofoliile acestora. În acest din urmă caz, se recalculează și prețul lor total;
- găsirea indicatorilor lipsă folosind algoritmi și date proprii pentru creditarea în marjă;
- dezvoltarea strategiei corecte de tranzacționare.
Limbajul descrie structura tabelului: numirea coloanelor și a rândurilor, formulele. În cel din urmă, operațiunile matematice, variabilele, datele din alte tabele pot fi folosite pentru calcul. Codul programului încărcat de pe serverul QUIK sau de pe discul utilizatorului este procesat de interpretul de limbă, care calculează valorile din formule. Tabelele unui program au o singură sursă de date, dar calculele nu sunt duplicate și nu afectează eficiența sistemului. Când lucrați cu tabele QUIK, tabelele de pe QPILE au funcții standard. QUIK la locul de muncă este echipat cu un depanator de cod QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Limbajul vă va permite să descrieți tabele noi cu o structură dată, să evidențiați celule cu anumite valori, să calculați câmpuri pe baza expresiilor matematice și logice. Utilizatorul va primi notificări sub forma unui semnal sonor sau a unui mesaj text. Tabelele de pe QPILE pot fi editate, tipărite, copiate, exportate prin serverul ODBC și DDE. Datele inițiale sunt din tabelele QUIK:
- tranzacții, inclusiv pentru execuție și impersonale;
- ordine, inclusiv ordine stop, pentru tranzacții extrabursiere și ordine – rapoarte pentru tranzacții în tranzacții de decontare;
- „portofoliu de clienți”, „cumpărare/vânzare”
- date din pozițiile participantului pe bani, conturi de tranzacționare, instrument.
Tabelele bazate pe QPILE nu pot fi copiate într-un fișier text prin meniul contextual și exportate în sistemele de analiză tehnică, iar diagramele nu pot fi dezvoltate pe baza acestora. Tabelele bazate pe QPILE nu pot fi filtrate sau sortate.
Lucrul cu o masă
Pentru a încărca codul programului, trebuie să selectați meniul de servicii, apoi scripturile QPILE. De asemenea, puteți utiliza combinația Ctrl+F11. După ce trebuie să faceți clic pe „Adăugați” și să selectați fișierul dorit. Are o extensie .qpl și numele său va apărea în lista de Scripturi disponibile.
- numele tabelului;
- numărul de coloane și clienți;
- lista de identificatori si clienti;
- lista de parametri și codul sursă al fișierului.
constructe QPILE
Tipuri de date
- String – șir.
- Double este un număr în virgulă mobilă.
- Colecție – o colecție.
- Hartă – o matrice asociativă – o secvență de perechi care vă permite să obțineți informații prin cheie.
Expresii
Se aplică operațiile aritmetice de adunare, scădere, înmulțire, împărțire. Sunt folosite și expresiile logice „și”, „sau”, egal, mai mult, mai puțin, inegalități, construcție condiționată „dacă … atunci …”.
Funcții
Funcțiile pot fi localizate oriunde în program și au nume diferite. În total, sunt disponibile 18 grupuri de funcții și funcții matematice pentru a obține valorile tabelelor și parametrilor, matricele asociative, o listă de tabele și alte sarcini. Clasa întâi:
- Funcții matematice care vă permit să returnați valoarea sinusului, cosinusului, tangentei, cotangentei argumentului, să calculați exponentul argumentului, să generați un număr aleator etc.
- Comenzi generale : NEW_GLOBAL pentru a inițializa o variabilă globală și MESSAGE pentru a deschide mesaje.
Funcții cu care se lucrează:
- Colecții de obiecte (Colecție) . Acestea vă permit să creați o nouă colecție, să returnați numărul necesar de elemente, să înlocuiți sau să introduceți valorile dorite.
- Matrice asociative (MAP) . Ajută la crearea și gestionarea matricei.
- Fișiere – lucrul cu fișiere text, menținerea unui jurnal al programului. Numele fișierului poate conține calea către acesta.
- Coarde .
- Grafice . Funcțiile GET_CANDLE pentru a accesa datele lumânării și GET_CANDLE EX pentru a returna o matrice asociativă.
- Aplicații . Crearea comenzilor și trimiterea lor către sistemul de tranzacționare.
- Etichete . Construcția și instalarea lor pe diagramă. Adăugarea, ștergerea uneia sau a tuturor etichetelor, obținerea și setarea parametrilor pentru o anumită etichetă.
Există și funcții pentru:
- Pentru accesarea rândurilor de tabele QUIK arbitrare și liste de parametri disponibili . Acces la datele din tabelul de la locul de muncă. Acestea includ GET_ITEM pentru a returna MAP și GET_NUMBER_OF pentru a returna numărul de intrări.
- Pentru a lucra cu un tabel programabil . Aceste comenzi operează pe tabelul PROPRIU. Este lizibil de funcțiile standard din paragraful anterior și de aceste funcții. Acest grup include comenzi pentru adăugarea, modificarea și ștergerea unui rând cu un index și ștergerea completă a tabelului PROPRIU.
Pentru a obține valori utilizați:
- Tabele de tranzacții curente . Obținerea parametrilor de schimb de informații folosind comenzile GET_PARAM (_EX).
- Ferestre de citate . Obținerea valorilor cotațiilor instrumentului.
- Tabele de poziții pe instrumente și bani . Obținerea datelor despre un client, firmă, instrument, cont depo prin cod.
Funcții de serviciu – returnarea datei sesiunii de tranzacționare curente, serie asociativă, data și ora curentă, determinarea stării conexiunii, întreruperea modului de calcul.
Programe de depanare
Controlul pas cu pas asupra funcționării programului se efectuează în fereastra „Depanare”. Se deschide din meniul contextual „Începe calculul în modul depanare”. Poate fi deschis și cu comanda breakpoint(), iar linia programului va fi evidențiată cu roșu. Fereastra conține câmpuri cu cod de program și valori variabile. În partea de jos a ferestrei sunt butoanele „Pasul următor”, „Continuare execuție”, „Oprire calcul”. Apăsarea F5 va continua execuția programului, combinația Shift + F5 va opri depanarea, tasta F10 va direcționa la următoarea linie.
QPILE sau LUA?
LUA este un nou limbaj de programare pentru crearea de roboți de tranzacționare. La fel ca QPILE, este implementat în terminalul QUIK. https://articles.opexflow.com/programming/lua.htm Un site dedicat dezvoltării roboților de tranzacționare pentru tranzacționare arată avantajele limbajului LUA față de QPILE. Deci, poate funcționa ca un script necompilat și bytecode, echipat cu instrumente de dezvoltare și mecanisme de programare orientate pe obiecte. Obiectele scrise în alte limbaje de programare pot fi conectate la programe LUA. LUA oferă 8 tipuri de date, inclusiv metatable. Limbajul LUA este multi-threaded, rapid, iar tranzacțiile și evenimentele terminale sunt asincrone. LUA este mai comun decât QPILE și multe extensii au fost scrise pentru el.
Limbajul QPILE este acum depreciat. Experții de pe forumuri recomandă utilizarea LUA. Deși încă se folosesc programe utile și eficiente.
Cu toate acestea, limbajul QPILE este simplu în comparație cu LUA, așa că dacă nu aveți experiență în programare, este mai bine să alegeți QPILE. În acest limbaj, puteți scrie un robot simplu dacă nu aveți nevoie să efectuați calcule complexe.
Cum se creează un robot de tranzacționare pe QPILE?
Pentru a crea un consilier comercial, veți avea nevoie de următoarele programe:
- ESTE Quik.
- Editor de cod Notepad++.
- Ghid pentru QPILE.
- Plugin XML pentru detectarea codului în Notepad++.
Descărcați și instalați aceste programe. Activați sintaxa limbii plasând userDefineLang.xml în calea C:\Users\User\AppData\Roaming\Notepad++\
Blocul „Setări utilizator” este completat cu variabilele NUMĂR și INTERVAL, care vor fi folosite în funcția de obținere a ultimelor N bare. Funcția DATETIME setează data și ora serverului, iar funcțiile curente de dată și oră CURDATE și CURTIME sunt apelate de la aceasta. Ora curentă este convertită într-un număr de pe linia 24. Linia 26 setează ora la care algoritmul va rula de la 10:00:01 la 18:40:00 UTC.
Roboți de tranzacționare pe QPILE – soluții gata făcute
Robot mediu în mișcare
Robotul demonstrativ nu este potrivit pentru tranzacționare reală.
Calculator de poziție N. Moroshkin
Un program pentru calcularea nivelurilor de drawdown maxim admisibil și ținta pentru pozițiile lungi și scurte la prețurile curente de cerere și ofertare. Nivelurile sunt calculate pentru 2 valori ale volumului de intrare a poziției. Robotul găsește volumul de poziție permis atunci când atribuie un ordin stop la un pas de la prețul de deschidere cu calculul deschiderii unei poziții în direcția ascendentă a barei. Nivelurile găsite sunt introduse în fereastra terminalului, care sunt ulterior reflectate în graficul de preț. Tranzacțiile sunt fixe pentru un instrument dat. Dacă o poziție este deschisă, robotul începe să-și calculeze parametrii. În funcție de schimbarea poziției, comenzile atribuite sunt ajustate.
Filtru de volum
Un portofoliu robot pentru calcularea mediei aritmetice a volumului lumânărilor și compararea acesteia cu produsul mediu prin coeficientul X. Funcționează corect cu diagrame reprezentate într-o perioadă de timp selectată.
Opțiuni greci
Portofoliu pentru calcularea și afișarea „grecilor” de opțiuni. Diferă de metoda Black-Showers.
Robot de tranzacționare TRIX pentru QUIK
Programul se bazează pe indicatorul TRIX. Când indicatorul se închide deasupra liniei zero, nivelul specificat, robotul ia poziția lungă. Poziția este închisă prin Take Profit, Stop Loss sau trailing stop.
Preprocesor M4
Program pentru lucrul cu QPILE și Lua. Include arhive cu fișiere executabile, documentație și fișiere DLL cu analizarea expresiilor regulate. Pentru a utiliza programul, trebuie să despachetați fișierele executabile și să plasați regexp2 în calea C:\Windows. Lecții despre QPILE pentru QUIK: https://youtu.be/vMTXwDUujpI Instalarea unui script pe QPILE în terminalul Quik: https://youtu.be/0B7qL8Svh7I O secțiune despre github care descrie utilizarea limbajului algoritmic QPILE încorporat în Stația de lucru de sistem QUIK situată la link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE este un limbaj învechit, dar destul de simplu și accesibil chiar și pentru comercianții începători. Roboții de tranzacționare și programele care s-au dovedit de mult timp continuă să lucreze la asta. Cu toate acestea, pentru sarcini mai complexe este mai bine să utilizați LUA.
0к