Algoritmiline keel QPILE kauplemisrobotite programmeerimiseks QUIK-i jaoks. Kauplemisroboteid saab sarnaselt programmikoodile kirjutada kindlas keeles. QPILE on üks neist, artiklis käsitletakse seda keelt, võrreldakse QPILE ja LUA keeli ning tuuakse ka näiteid selles keeles olevate robotite kohta.
- Üldine teave QPILE kohta
- Töötamine lauaga
- QPILE konstruktsioonid
- Andmetüübid
- Väljendid
- Funktsioonid
- Silumisprogrammid
- QPILE või LUA?
- Kuidas luua QPILE’is kauplemisrobotit?
- QPILE kauplemisrobotid – valmislahendused
- Liikuv keskmine robot
- N. Moroškini positsioonikalkulaator
- Helitugevuse filter
- Valikud kreeklased
- TRIX kauplemisrobot QUIK jaoks
- M4 eelprotsessor
Üldine teave QPILE kohta
QPILE on lühend, mis tähistab QUIK programmeeritavat liidest ja loogilist keskkonda.
See on QUIK-i tööjaama tõlgendatud käskude jada. Seda kasutatakse peamiselt väärtpaberiportfellide hinna arvutamiseks. Keelt kasutatakse ka:
- klientide varade hinna dünaamiline ümberarvutamine maakleri töölaual ja nende portfellides. Viimasel juhul arvutatakse ümber ka nende koguhind;
- puuduvate näitajate leidmine, kasutades oma algoritme ja tagatislaenamise andmeid;
- õige kauplemisstrateegia väljatöötamine.
Keel kirjeldab tabeli ülesehitust: veergude ja ridade määramist, valemeid. Viimases saab arvutamiseks kasutada matemaatilisi tehteid, muutujaid, andmeid teistest tabelitest. QUIK-serverist või kasutaja kettalt laaditud programmikoodi töötleb keeletõlk, mis arvutab valemites olevad väärtused. Ühe programmi tabelitel on üks andmeallikas, kuid arvutused ei dubleerita ega mõjuta süsteemi efektiivsust. QUIK-tabelitega töötamisel on QPILE-i tabelitel standardfunktsioonid. QUIK töökohal on varustatud QPILE koodi siluriga. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Keel võimaldab kirjeldada uusi etteantud struktuuriga tabeleid, esile tõsta teatud väärtustega lahtreid, arvutada välja matemaatiliste ja loogiliste avaldiste põhjal. Kasutaja saab märguandeid helisignaali või tekstisõnumi kujul. QPILE-i tabeleid saab redigeerida, printida, kopeerida, eksportida ODBC ja DDE serveri kaudu. Algandmed pärinevad QUIK-i tabelitest:
- tehingud, sealhulgas täitmiseks ja isikustamata;
- orderid, sh stop orderid, börsiväliste tehingute ja orderite jaoks – arveldustehingutega seotud tehingute aruanded;
- “kliendiportfell”, “osta/müüa”
- andmed osaleja positsioonidest raha, kauplemiskontode, instrumentide kaupa.
QPILE-l põhinevaid tabeleid ei saa kontekstimenüü kaudu tekstifaili kopeerida ja tehnilise analüüsi süsteemidesse eksportida ning nende põhjal diagramme arendada. QPILE-põhiseid tabeleid ei saa filtreerida ega sortida.
Töötamine lauaga
Programmikoodi laadimiseks tuleb valida teenuste menüü ja seejärel QPILE skriptid. Võite kasutada ka kombinatsiooni Ctrl+F11. Pärast seda, kui peate klõpsama “Lisa” ja valima soovitud faili. Sellel on .qpl laiend ja selle nimi kuvatakse loendis Saadaolevad skriptid.
- tabeli nimi;
- veergude ja klientide arv;
- identifikaatorite ja klientide nimekiri;
- parameetrite loend ja faili lähtekood.
QPILE konstruktsioonid
Andmetüübid
- String – string.
- Double on ujukomaarv.
- Kollektsioon – kollektsioon.
- Kaart – assotsiatiivne massiiv – paaride jada, mis võimaldab teil saada teavet võtme järgi.
Väljendid
Rakendatakse liitmise, lahutamise, korrutamise, jagamise aritmeetilisi tehteid. Kasutatakse ka loogilisi väljendeid “ja”, “või”, võrdub, rohkem, vähem, ebavõrdsused, tingimuslik konstruktsioon “kui … siis …”.
Funktsioonid
Funktsioonid võivad asuda programmis kõikjal ja neil võivad olla erinevad nimed. Kokku on tabelite ja parameetrite väärtuste, assotsiatiivsete massiivide, tabelite loendi ja muude ülesannete saamiseks saadaval 18 matemaatiliste funktsioonide ja funktsioonide rühma. Esimene klass:
- Matemaatilised funktsioonid , mis võimaldavad tagastada argumendi siinuse, koosinuse, puutuja, kotangensi väärtuse, arvutada argumendi eksponendi, genereerida juhuslikku arvu jne.
- Üldkäsud : NEW_GLOBAL globaalse muutuja lähtestamiseks ja MESSAGE sõnumite avamiseks.
Funktsioonid, millega töötada:
- Esemete kogud (Kogu) . Need võimaldavad teil luua uue kollektsiooni, tagastada vajaliku arvu elemente, asendada või sisestada soovitud väärtused.
- Assotsiatiivsed massiivid (MAP) . Aidake massiivi luua ja hallata.
- Failid – tekstifailidega töötamine, programmi logi-logi pidamine. Faili nimi võib sisaldada selle asukohta.
- Stringid .
- Graafikud . Funktsioonid GET_CANDLE küünlaandmetele juurdepääsuks ja GET_CANDLE EX assotsiatiivse massiivi tagastamiseks.
- Rakendused . Tellimuste koostamine ja kauplemissüsteemi saatmine.
- Sildid . Nende ehitus ja paigaldamine graafikule. Ühe või kõigi siltide lisamine, kustutamine, konkreetse sildi parameetrite hankimine ja seadistamine.
Samuti on olemas järgmised funktsioonid:
- Juurdepääs suvaliste QUIK-tabelite ridadele ja saadaolevate parameetrite loenditele . Juurdepääs töökoha tabeliandmetele. Nende hulka kuuluvad GET_ITEM MAP-i tagastamiseks ja GET_NUMBER_OF kirjete arvu tagastamiseks.
- Programmeeritava tabeliga töötamiseks . Need käsud töötavad OMA tabelis. See on loetav eelmise lõigu standardfunktsioonide ja nende funktsioonide abil. See rühm sisaldab käske indeksiga rea lisamiseks, muutmiseks ja kustutamiseks ning OMA tabeli täielikuks tühjendamiseks.
Väärtuste saamiseks kasutage:
- Jooksvate tehingute tabelid . Vahetusteabe parameetrite hankimine GET_PARAM (_EX) käskude abil.
- Tsiteeri aknaid . Instrumentide noteeringute väärtuste saamine.
- Positsioonide tabelid instrumentide ja raha järgi . Kliendi, ettevõtte, instrumendi, depokonto andmete saamine koodi järgi.
Teenindusfunktsioonid – jooksva kauplemisseansi kuupäeva, assotsiatiivsete seeriate, jooksva kuupäeva ja kellaaja tagastamine, ühenduse oleku määramine, arvutusrežiimi katkestamine.
Silumisprogrammid
Programmi toimimise samm-sammuline juhtimine toimub aknas “Silumine”. See avatakse kontekstimenüüst “Alusta arvutust silumisrežiimis”. Seda saab avada ka käsuga breakpoint() ja programmirida tõstetakse punaselt esile. Aknas on väljad programmi koodi ja muutuja väärtustega. Akna allosas on nupud “Järgmine samm”, “Jätka täitmist”, “Lõpeta arvutamine”. F5 vajutamine jätkab programmi täitmist, kombinatsioon Shift + F5 lõpetab silumise, klahv F10 suunab järgmisele reale.
QPILE või LUA?
LUA on uus programmeerimiskeel kauplemisrobotite loomiseks. Nagu QPILE, rakendatakse seda QUIK terminalis. https://articles.opexflow.com/programming/lua.htm Kauplemisrobotite arendamisele pühendatud sait näitab LUA keele eeliseid QPILE ees. Seega võib see toimida kompileerimata skripti ja baitkoodina, mis on varustatud arendaja tööriistade ja objektorienteeritud programmeerimismehhanismidega. LUA programmidega saab ühendada ka teistes programmeerimiskeeltes kirjutatud objekte. LUA pakub 8 andmetüüpi, sealhulgas metatabeleid. LUA keel on mitme lõimega, kiire ning tehingud ja terminali sündmused on asünkroonsed. LUA on levinum kui QPILE ja sellele on kirjutatud palju laiendusi.
QPILE keel on nüüd aegunud. Foorumite eksperdid soovitavad kasutada LUA-d. Kuigi kasulikke ja tõhusaid programme kasutatakse endiselt.
QPILE keel on aga võrreldes LUA-ga lihtne, nii et kui sul pole programmeerimise kogemust, on parem valida QPILE. Selles keeles saate kirjutada lihtsa roboti, kui teil pole vaja keerulisi arvutusi teha.
Kuidas luua QPILE’is kauplemisrobotit?
Kauplemisnõustaja loomiseks vajate järgmisi programme:
- SEE Quik.
- Notepad++ koodiredaktor.
- QPILE juhend.
- XML-plugin koodi tuvastamiseks rakenduses Notepad++.
Laadige alla ja installige need programmid. Keele süntaksi lubamiseks asetage userDefineLang.xml teele C:\Users\User\ AppData\Roaming\Notepad++\
QPILE kauplemisrobotid – valmislahendused
Liikuv keskmine robot
Demorobot ei sobi päris kauplemiseks.
N. Moroškini positsioonikalkulaator
Programm maksimaalse lubatud väljavõtmise taseme ning pikkade ja lühikeste positsioonide eesmärgi arvutamiseks jooksvate müügi- ja pakkumishindade juures. Tasemed arvutatakse positsiooni sisestamise mahu kahe väärtuse jaoks. Robot leiab stopp-orderi määramisel lubatud positsiooni mahu ühes sammus avamishinnast koos positsiooni avamise arvestusega lati kasvu suunas. Leitud tasemed sisestatakse terminali aknasse, mis hiljem kajastuvad hinnagraafikus. Tehingud on fikseeritud antud instrumendi jaoks. Kui positsioon avatakse, hakkab robot oma parameetreid arvutama. Sõltuvalt positsiooni muutusest kohandatakse määratud tellimusi.
Helitugevuse filter
Portfooliorobot küünalde mahu aritmeetilise keskmise arvutamiseks ja selle võrdlemiseks X koefitsiendiga keskmise korrutisega Töötab õigesti valitud ajaperioodi graafikutega.
Valikud kreeklased
Portfell valikute “kreeklaste” arvutamiseks ja kuvamiseks. See erineb Black-Showersi meetodist.
TRIX kauplemisrobot QUIK jaoks
Programm põhineb TRIX indikaatoril. Kui indikaator sulgub nulljoonest, määratud tasemest kõrgemale, võtab robot pika positsiooni. Positsiooni sulgeb Take Profit, Stop Loss või trailing stop.
M4 eelprotsessor
Programm QPILE ja Lua töötamiseks. Sisaldab arhiive koos käivitatavate failidega, dokumentatsiooni ja regulaaravaldise parsimisega DLL-faile. Programmi kasutamiseks peate käivitatavad failid lahti pakkima ja asetama regexp2 teele C:\Windows. QUIK-i QPILE-i õppetunnid: https://youtu.be/vMTXwDUujpI Skripti installimine QPILE-i Quiki terminalis: https://youtu.be/0B7qL8Svh7I Githubi jaotis, mis kirjeldab QPILE-i algoritmilise keele kasutamist. QUIK süsteemi tööjaam, mis asub lingil – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE on aegunud keel, kuid üsna lihtne ja kättesaadav isegi algajatele kauplejatele. Kaubandusrobotid ja -programmid, mis on end pikka aega tõestanud, töötavad selle kallal edasi. Keerulisemate ülesannete jaoks on aga parem kasutada LUA-d.
0к