Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK

Программирование

Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK.
Tirdzniecības robotus var rakstīt noteiktā valodā, līdzīgi kā programmas kods. QPILE ir viens no tiem, rakstā tiks aplūkota šī valoda, salīdzinātas QPILE un
LUA valodas , kā arī sniegti robotu piemēri šajā valodā.

Vispārīga informācija par QPILE

QPILE ir saīsinājums, kas apzīmē QUIK programmējamo interfeisu un loģisko vidi.

Šī ir komandu sērija, ko interpretē QUIK darbstacija. To galvenokārt izmanto, lai aprēķinātu vērtspapīru portfeļu cenu. Valoda tiek izmantota arī:

  • dinamiska klientu aktīvu cenas pārrēķins brokera darbvirsmā un viņu portfeļos. Pēdējā gadījumā tiek pārrēķināta arī to kopējā cena;
  • atrast trūkstošos rādītājus, izmantojot savus algoritmus un datus maržinālajai aizdevumam;
  • izstrādāt pareizo tirdzniecības stratēģiju.

Valoda apraksta tabulas struktūru: kolonnu un rindu iecelšanu, formulas. Pēdējā aprēķiniem var izmantot matemātiskās darbības, mainīgos, datus no citām tabulām. Programmas kodu, kas ielādēts no QUIK servera vai no lietotāja diska, apstrādā valodas tulks, kas aprēķina formulās esošās vērtības. Vienas programmas tabulām ir viens datu avots, taču aprēķini netiek dublēti un neietekmē sistēmas efektivitāti. Strādājot ar QUIK tabulām, QPILE tabulām ir standarta funkcijas. QUIK darba vietā ir aprīkots ar QPILE koda atkļūdotāju. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Valoda ļauj aprakstīt jaunas tabulas ar noteiktu struktūru, izcelt šūnas ar noteiktām vērtībām, aprēķināt laukus, pamatojoties uz matemātiskām un loģiskām izteiksmēm. Lietotājs saņems paziņojumus skaņas signāla vai īsziņas veidā. QPILE tabulas var rediģēt, drukāt, kopēt, eksportēt, izmantojot ODBC un DDE serveri. Sākotnējie dati ir no QUIK tabulām:

  • darījumiem, tostarp izpildei un bezpersoniskiem darījumiem;
  • orderi, tai skaitā stop orderi, ārpusbiržas darījumiem un orderi – norēķinu darījumu darījumu atskaites;
  • “klientu portfelis”, “pirkt/pārdot”
  • dati no dalībnieka pozīcijām pēc naudas, tirdzniecības kontiem, instrumentiem.

Tabulas, kuru pamatā ir QPILE, nevar kopēt teksta failā, izmantojot konteksta izvēlni, un eksportēt uz tehniskās analīzes sistēmām, un diagrammas nevar izveidot, pamatojoties uz tām. QPILE bāzes tabulas nevar filtrēt vai kārtot.

Darbs ar galdu

Lai ielādētu programmas kodu, jāizvēlas pakalpojumu izvēlne, pēc tam QPILE skripti. Varat arī izmantot kombināciju Ctrl+F11. Pēc tam, kad jums ir jānoklikšķina uz “Pievienot” un atlasiet vajadzīgo failu. Tam ir paplašinājums .qpl, un tā nosaukums tiks parādīts sarakstā Pieejamie skripti.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKJa programmā ir kļūda, sistēma “Ziņojuma logā” izveidos paziņojumu, kurā būs norādīts bojātā faila nosaukums un rindas numurs ar kļūdu. Ja failā netika atrasta neviena kļūme, laukos tiks norādīti šādi dati:

  • tabulas nosaukums;
  • kolonnu un klientu skaits;
  • identifikatoru un klientu saraksts;
  • parametru saraksts un faila pirmkods.

Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKPoga “Lejupielādēt lokāli” ļaus iegūt tabulu no faila, un “Augšupielādēt uz serveri” nosūtīs programmu uz serveri, lai visi lietotāji varētu tai piekļūt. Lai izveidotu tabulu, noklikšķiniet uz Izveidot tabulu. Sadaļā “Pieejamie skripti” atlasiet programmu, kas jāizpilda, iestatiet rindu skaitu, izmantojot “Klientu filtru”, nosakiet vajadzīgās kolonnas un to secību.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKAprēķinu apturēšana un atsākšana, aprēķina sākšana no jauna un atkļūdošanas režīmā, apraksta saglabāšana failā, formulas demonstrēšana un skripta parametri ir pieejami konteksta izvēlnē.

QPILE konstrukcijas

Datu veidi

  • Stīga – stīga.
  • Double ir peldošā komata skaitlis.
  • Kolekcija – kolekcija.
  • Karte – asociatīvais masīvs – pāru secība, kas ļauj iegūt informāciju pēc atslēgas.

Izteicieni

Tiek piemērotas saskaitīšanas, atņemšanas, reizināšanas, dalīšanas aritmētiskās darbības. Tiek lietoti arī loģiskie izteicieni “un”, “vai”, vienāds, vairāk, mazāk, nevienādības, nosacītā konstrukcija “ja … tad …”.

Funkcijas

Funkcijas var atrasties jebkurā programmas vietā, un tām ir dažādi nosaukumi. Kopumā ir pieejamas 18 matemātisko funkciju un funkciju grupas, lai iegūtu tabulu un parametru vērtības, asociatīvos masīvus, tabulu sarakstu un citus uzdevumus. Pirmā klase:

  1. Matemātiskās funkcijas , kas ļauj atgriezt argumenta sinusa, kosinusa, tangensa, kotangenta vērtību, aprēķināt argumenta eksponentu, ģenerēt nejaušu skaitli utt.
  2. Vispārīgās komandas : NEW_GLOBAL, lai inicializētu globālo mainīgo, un MESSAGE, lai atvērtu ziņojumus.

Funkcijas, ar kurām strādāt:

  • Objektu kolekcijas (Kolekcija) . Tie ļauj izveidot jaunu kolekciju, atgriezt nepieciešamo elementu skaitu, aizstāt vai ievietot vēlamās vērtības.
  • Asociatīvie masīvi (MAP) . Palīdziet izveidot un pārvaldīt masīvu.
  • Faili – darbs ar teksta failiem, programmas log-log uzturēšana. Faila nosaukumā var būt norādīts ceļš uz to.
  • Stīgas .
  • Grafiki . Funkcijas GET_CANDLE, lai piekļūtu sveces datiem, un GET_CANDLE EX, lai atgrieztu asociatīvo masīvu.
  • Pieteikumi . Rīkojumu veidošana un nosūtīšana uz tirdzniecības sistēmu.
  • Tagi . To uzbūve un uzstādīšana uz diagrammas. Vienas vai visu etiķešu pievienošana, dzēšana, konkrētas etiķetes parametru iegūšana un iestatīšana.

Ir arī šādas funkcijas:

  1. Lai piekļūtu patvaļīgu QUIK tabulu rindām un pieejamo parametru sarakstiem . Piekļuve darba vietas tabulas datiem. Tie ietver GET_ITEM, lai atgrieztu MAP, un GET_NUMBER_OF, lai atgrieztu ierakstu skaitu.
  2. Lai strādātu ar programmējamu tabulu . Šīs komandas darbojas OWN tabulā. To var nolasīt, izmantojot iepriekšējās rindkopas standarta funkcijas un šīs funkcijas. Šajā grupā ietilpst komandas rindas ar indeksu pievienošanai, modificēšanai un dzēšanai, kā arī PAVĀS tabulas pilnīgai notīrīšanai.

Lai iegūtu vērtības, izmantojiet:

  1. Aktuālo darījumu tabulas . Apmaiņas informācijas parametru iegūšana, izmantojot GET_PARAM (_EX) komandas.
  2. Citēt logi . Instrumentu citātu vērtību iegūšana.
  3. Pozīciju tabulas pēc instrumentiem un naudas . Datu iegūšana par klientu, firmu, instrumentu, depo kontu pēc koda.

Servisa funkcijas – kārtējās tirdzniecības sesijas datuma, asociatīvās sērijas, aktuālā datuma un laika atgriešana, savienojuma stāvokļa noteikšana, aprēķina režīma pārtraukšana.

Atkļūdošanas programmas

Programmas darbības pakāpeniska kontrole tiek veikta logā “Atkļūdošana”. Tas tiek atvērts no konteksta izvēlnes “Sākt aprēķinu atkļūdošanas režīmā”. To var atvērt arī ar komandu breakpoint(), un programmas rinda tiks iezīmēta sarkanā krāsā. Logā ir lauki ar programmas kodu un mainīgo vērtībām. Loga apakšā ir pogas “Nākamais solis”, “Turpināt izpildi”, “Pārtraukt aprēķinu”. Nospiežot F5, tiks turpināta programmas izpilde, kombinācija Shift + F5 pārtrauks atkļūdošanu, taustiņš F10 novirzīs uz nākamo rindiņu.

QPILE vai LUA?

LUA ir jauna programmēšanas valoda tirdzniecības robotu izveidei. Tāpat kā QPILE, tas ir ieviests QUIK terminālī. https://articles.opexflow.com/programming/lua.htm Vietne, kas veltīta tirdzniecības robotu izstrādei tirdzniecībai, parāda LUA valodas priekšrocības salīdzinājumā ar QPILE. Tātad tas var darboties kā nekompilēts skripts un baitkods, kas aprīkots ar izstrādātāja rīkiem un objektorientētiem programmēšanas mehānismiem. Citās programmēšanas valodās rakstītos objektus var savienot ar LLU programmām. LLU nodrošina 8 datu tipus, ieskaitot metatabulas. LUA valoda ir daudzpavedienu, ātra, un darījumi un termināļa notikumi ir asinhroni. LUA ir biežāk nekā QPILE, un tam ir rakstīti daudzi paplašinājumi.

QPILE valoda tagad ir novecojusi. Speciālisti forumos iesaka izmantot LLU. Lai gan joprojām tiek izmantotas noderīgas un efektīvas programmas.

Tomēr QPILE valoda salīdzinājumā ar LUA ir vienkārša, tāpēc, ja jums nav pieredzes programmēšanas jomā, labāk izvēlēties QPILE. Šajā valodā varat uzrakstīt vienkāršu robotu, ja jums nav jāveic sarežģīti aprēķini.

Kā izveidot tirdzniecības robotu vietnē QPILE?

Lai izveidotu tirdzniecības konsultantu, jums būs nepieciešamas šādas programmas:

  1. ITS Quik.
  2. Notepad++ koda redaktors.
  3. QPILE ceļvedis.
  4. XML spraudnis koda noteikšanai programmā Notepad++.

Lejupielādējiet un instalējiet šīs programmas. Iespējojiet valodas sintaksi, ievietojot userDefineLang.xml ceļā C:\Users\User\ AppData\Roaming\Notepad++\
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKVispirms izveidosim šādu tirdzniecības stratēģiju. Skriptam katru minūti jāaprēķina Hi un Low par pēdējām svecēm, pārbaudiet instrumenta pašreizējo cenu. Pozīcija tiek atvērta vajadzīgajā virzienā, ja instrumenta cena sasniedz perioda maksimālo vai minimālo vērtību. Kad tiek saņemts īss signāls, garā pozīcija tiek automātiski aizvērta. Robots izmanto GAZP rīku, laika posms ir iestatīts uz 1 min. Hi-low mērījumu dziļums ir iestatīts uz 5 svecēm. Lai ievadītu Long, tiek iestatīts noteikums un pašreizējās cenas maksimālās vērtības krustpunkts periodam. Robots ieies Short, ja pašreizējā cena pārsniegs minimālo vērtību šīm 5 svecēm. Uzrakstiet koda bloku programmā Notepad++ ar pamata iestatījumiem un servera datumu un laiku. Šis kods ir parādīts zemāk esošajā attēlā.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKPirmās 4 koda rindas veido programmas galveni. Starp 6. un 44. rindiņām ir programmas pamatteksts, kurā ir robota saturs. 7.–12. rindā ir lietotāja iestatījumi, kas ietver instrumenta, grupas un klienta kodus, konta numuru MICEX. Šīs vērtības programmas izpildes laikā nemainās. 13.–16. rindas ir mainīgo sākotnējās vērtības. Tie tiks atiestatīti uz nulli katrā iterācijas gājienā. 17.–21. rindā ir norāde izmantot servera datumu un laiku. Šie dati tiek nodoti funkcijai DATETIME un pārveidoti teksta formātā. 22. – 29. rinda nosūta saņemtos datus uz tabulu. Kods ir jāsaglabā un jānorāda qpl paplašinājums.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKAtveriet programmu QUIK, nospiežot Ctrl+F10 un atlasot ģenerēto qpl failu. Izmantojiet kombināciju Ctrl+F11, lai atvērtu logu “Darbs ar portfeļiem” un iestatītu portfeļa aprēķina periodu uz 5 minūtēm. Nospiediet Ctrl+F12, lai iestatītu tabulā parādāmās kolonnas. Attēlā redzams robota darba rezultāts.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKPievienosim programmai vēl dažas funkcijas un nosacījumus.
Bloks “Lietotāja iestatījumi” tiek papildināts ar mainīgajiem NUMBER un INTERVAL, kas tiks izmantoti pēdējo N joslu iegūšanas funkcijā. Funkcija DATETIME iestata servera datumu un laiku, un no tās tiek izsauktas pašreizējās datuma un laika funkcijas CURDATE un CURTIME. Pašreizējais laiks tiek pārveidots par skaitli 24. rindiņā. 26. rindiņa iestata algoritma darbības laiku no 10:00:01 līdz 18:40:00 UTC.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKAlgoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKVisbiežāk indikatorus, oscilatorus, statistiskos aprēķinus aprēķina pēc diagrammas pēdējām N svecēm. QPILE nav funkcijas, lai apkopotu sveču skaitu pirms N periodiem, taču ir funkcija GET_CANDLE, kas teksta formātā piekļūst diagrammā esošajām svecēm pēc datuma un laika. Mūsu kods satur funkciju, lai iegūtu pēdējo N joslu OHLC (). Tas izveido kolekciju ar pēdējo sveču parametriem, kas ligzdotas sarakstā KOLEKCIJA. Programma pārbauda INTERVAL vērtību, un, ja tā neietilpst diapazonā no 0…60, tiek parādīts ziņojums, ka vērtība neatbilst atļautajam diapazonam. 88. rindā tiek izveidota MAP kolekcija ar svecēm. FOR cilpa aptauj diagrammu vajadzīgajā dziļumā ar INTERVAL soli no jaunās uz veco sveci. 90. rindā pēc cikla deklarēšanas robots atgriežas par intervālu atpakaļ. Kad saņemat sveci ar GET_CANDLE, ievietojiet to kolekcijā BARLIST, izmantojot funkciju INSERT_COLLECTION_TEAM. Komandas OHLC() darbības rezultātā BARLIST tiek papildināts ar pēdējām svecēm no instrumentu diagrammas NUMURA ​​apmērā. Elementu skaitu kolekcijā pieprasa komanda GET_COLLECTION_COUNT() un uzrāda mainīgais BARCOUNT. Servera datums, laiks, INSTRUMENT un BARCOUNT mainīgo vērtības tiek ziņots, izmantojot funkciju SET_VALUE() laukā OUTPUT. Šis masīvs tiek izveidots ar komandu CREATE_MAP(). Dati ietilpst pielāgotajā tabulā, ko var redzēt zemāk esošajā fotoattēlā. INSTRUMENT un BARCOUNT mainīgo vērtības tiek ziņots, izmantojot funkciju SET_VALUE() laukā OUTPUT. Šis masīvs tiek izveidots ar komandu CREATE_MAP(). Dati ietilpst pielāgotajā tabulā, ko var redzēt zemāk esošajā fotoattēlā. INSTRUMENT un BARCOUNT mainīgo vērtības tiek ziņots, izmantojot funkciju SET_VALUE() laukā OUTPUT. Šis masīvs tiek izveidots ar komandu CREATE_MAP(). Dati ietilpst pielāgotajā tabulā, ko var redzēt zemāk esošajā fotoattēlā.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK

Tirdzniecības roboti uz QPILE – gatavi risinājumi

Kustīgs vidējais robots

Demo robots nav piemērots reālai tirdzniecībai.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIKRobots ietver 5 parametrus. DATE, TIME, PRICE identifikatoru vērtības ir iestatītas uz 30. līmeni. MOVING un TP identifikatori ir iestatīti uz nulles precizitāti. Robota kods uz mainīgā vidējā, kas rakstīts zem QPILE:

N. Moroškina pozīcijas kalkulators

Programma maksimālās pieļaujamās izņemšanas līmeņu un garo un īso pozīciju mērķa aprēķināšanai pie pašreizējām pieprasījuma un piedāvājuma cenām. Līmeņi tiek aprēķināti 2 pozīcijas ievades apjoma vērtībām. Pieļaujamo pozīcijas apjomu robots, piešķirot stop orderi, atrod vienā solī no atvēršanas cenas ar pozīcijas atvēršanas aprēķinu stieņa pieauguma virzienā. Atrastie līmeņi tiek ievadīti termināļa logā, kas pēc tam tiek atspoguļoti cenu diagrammā. Darījumi ir fiksēti konkrētam instrumentam. Ja pozīcija tiek atvērta, robots sāk aprēķināt savus parametrus. Atkarībā no pozīcijas maiņas tiek koriģēti piešķirtie pasūtījumi.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK

Skaļuma filtrs

Portfeļa robots tilpuma vidējā aritmētiskā aprēķināšanai svecēm un salīdzināšanai ar vidējo reizinājumu pēc koeficienta X.Pareizi darbojas ar uzzīmētām diagrammām izvēlētajā laika periodā.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK

Iespējas grieķi

Portfelis opciju “grieķu” aprēķināšanai un attēlošanai. Tas atšķiras no Black-Showers metodes.
Algoritmiskā valoda QPILE tirdzniecības robotu programmēšanai QUIK

TRIX tirdzniecības robots QUIK

Programma ir balstīta uz TRIX indikatoru. Kad indikators aizveras virs nulles līnijas, norādītā līmeņa, robots ieņem garo pozīciju. Pozīciju noslēdz Take Profit, Stop Loss vai trailing stop.

M4 priekšprocesors

Programma darbam ar QPILE un Lua. Ietver arhīvus ar izpildāmiem failiem, dokumentāciju un DLL failus ar regulāro izteiksmju parsēšanu. Lai izmantotu programmu, jums ir jāizpako izpildāmie faili un jāievieto regexp2 ceļā C:\Windows. Nodarbības par QPILE for QUIK: https://youtu.be/vMTXwDUujpI Skripta instalēšana uz QPILE Quik terminālī: https://youtu.be/0B7qL8Svh7I Github sadaļa, kurā aprakstīta QPILE algoritmiskās valodas lietošana, kas iebūvēta QUIK sistēmas darbstacija atrodas saitē – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE ir novecojusi valoda, taču diezgan vienkārša un pieejama pat iesācējiem tirgotājiem. Tirdzniecības roboti un programmas, kas sevi pierādījušas jau ilgu laiku, turpina strādāt pie tā. Tomēr sarežģītākiem uzdevumiem labāk izmantot LLU.

info
Rate author
Add a comment

  1. Владимир Геннадьевич Евсеев

    Reply