Algoritmisk sprog QPILE til programmering af handelsrobotter til QUIK.
Handelsrobotter kan skrives på et bestemt sprog, der ligner programkode. QPILE er en af dem, denne artikel vil overveje dette sprog, sammenligne QPILE- og
LUA-sprogene og også give eksempler på robotter på dette sprog.
- Generel information om QPILE
- Arbejde med et bord
- QPILE konstruerer
- Datatyper
- Udtryk
- Funktioner
- Debugging programmer
- QPILE eller LUA?
- Hvordan opretter man en handelsrobot på QPILE?
- Handelsrobotter på QPILE – færdige løsninger
- Bevægende gennemsnitlig robot
- N. Moroshkin positionsberegner
- Volumen filter
- Indstillinger grækere
- TRIX handelsrobot til QUIK
- M4 forprocessor
Generel information om QPILE
QPILE er en forkortelse, der står for QUIK Programmable Interface and Logic Environment.
Dette er en række kommandoer, der fortolkes af QUIK-arbejdsstationen. Det bruges hovedsageligt til at beregne prisen på porteføljer af værdipapirer. Sproget bruges også til:
- dynamisk genberegning af prisen på kunders aktiver på mæglerens skrivebord og i deres porteføljer. I sidstnævnte tilfælde genberegnes deres samlede pris også;
- finde manglende indikatorer ved hjælp af deres egne algoritmer og data til marginudlån;
- udvikle den rigtige handelsstrategi.
Sproget beskriver strukturen af tabellen: udnævnelsen af kolonner og rækker, formler. I sidstnævnte kan matematiske operationer, variabler, data fra andre tabeller bruges til beregning. Programkoden indlæst fra QUIK-serveren eller fra brugerens disk behandles af sprogfortolkeren, som beregner værdierne i formlerne. Tabellerne i et program har én datakilde, men beregningerne er ikke duplikeret og påvirker ikke systemets effektivitet. Når du arbejder med QUIK-tabeller, har tabeller på QPILE standardfunktioner. QUIK på arbejdspladsen er udstyret med en QPILE kode debugger. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Sproget giver dig mulighed for at beskrive nye tabeller med en given struktur, fremhæve celler med bestemte værdier, beregne felter baseret på matematiske og logiske udtryk. Brugeren vil modtage notifikationer i form af et lydsignal eller en sms. Tabeller på QPILE kan redigeres, udskrives, kopieres, eksporteres via ODBC og DDE server. De indledende data er fra QUIK-tabellerne:
- transaktioner, herunder til udførelse og upersonlige;
- ordrer, herunder stopordrer, for håndkøbshandler og ordrer – rapporter for handler i afviklingsaftaler;
- “kundeportefølje”, “køb/sælg”
- data fra deltagerens positioner efter penge, handelskonti, instrument.
Tabeller baseret på QPILE kan ikke kopieres til en tekstfil via kontekstmenuen og eksporteres til tekniske analysesystemer, og diagrammer kan ikke udvikles baseret på dem. QPILE-baserede tabeller kan ikke filtreres eller sorteres.
Arbejde med et bord
For at indlæse programkoden skal du vælge servicemenuen og derefter QPILE-scripts. Du kan også bruge kombinationen Ctrl+F11. Når du skal klikke på “Tilføj” og vælge den ønskede fil. Den har en .qpl-udvidelse, og dens navn vises på listen over tilgængelige scripts.
- tabel navn;
- antal kolonner og klienter;
- liste over identifikatorer og klienter;
- listen over parametre og filens kildekode.
QPILE konstruerer
Datatyper
- String – snor.
- Dobbelt er et flydende kommatal.
- Samling – en samling.
- Kort – et associativt array – en sekvens af par, der giver dig mulighed for at få information via nøgle.
Udtryk
De aritmetiske operationer med addition, subtraktion, multiplikation, division anvendes. De logiske udtryk “og”, “eller”, er lig med, flere, mindre, uligheder, betinget konstruktion “hvis … så …” bruges også.
Funktioner
Funktioner kan være placeret hvor som helst i programmet og have forskellige navne. I alt er 18 grupper af matematiske funktioner og funktioner tilgængelige for at opnå værdierne af tabeller og parametre, associative arrays, en liste over tabeller og andre opgaver. Første klasse:
- Matematiske funktioner , der giver dig mulighed for at returnere værdien af argumentets sinus, cosinus, tangent, cotangens, beregne eksponenten for argumentet, generere et tilfældigt tal osv.
- Generelle kommandoer : NEW_GLOBAL for at initialisere en global variabel og MESSAGE for at åbne beskeder.
Funktioner at arbejde med:
- Samlinger af genstande (Samling) . De giver dig mulighed for at oprette en ny samling, returnere det nødvendige antal elementer, erstatte eller indsætte de ønskede værdier.
- Associative Arrays (MAP) . Hjælp til at oprette og administrere arrayet.
- Filer – arbejde med tekstfiler, vedligeholde en log-log over programmet. Filnavnet kan indeholde stien til den.
- Strenge .
- Grafer . Funktioner GET_CANDLE for at få adgang til candle-data og GET_CANDLE EX for at returnere et associativt array.
- Ansøgninger . Oprettelse af ordrer og afsendelse til handelssystemet.
- Tags . Deres konstruktion og installation på diagrammet. Tilføjelse, sletning af en eller alle etiketter, hentning og indstilling af parametre for en specifik etiket.
Der er også funktioner til:
- Til adgang til rækker af vilkårlige QUIK-tabeller og lister over tilgængelige parametre . Adgang til tabeldata på arbejdspladsen. Disse inkluderer GET_ITEM for at returnere MAP og GET_NUMBER_OF for at returnere antallet af poster.
- At arbejde med en programmerbar tabel . Disse kommandoer fungerer på OWN table. Den kan læses af standardfunktionerne fra det foregående afsnit og af disse funktioner. Denne gruppe inkluderer kommandoer til at tilføje, ændre og slette en række med et indeks og fuldstændig rydde den EGEN tabel.
For at få værdier brug:
- Tabeller over aktuelle handler . Få udvekslingsinformationsparametre ved hjælp af GET_PARAM (_EX) kommandoer.
- Citat windows . Indhentning af værdierne af instrumentkurser.
- Tabeller over positioner efter instrumenter og penge . Indhentning af data om en kunde, firma, instrument, depokonto efter kode.
Servicefunktioner – returnering af datoen for den aktuelle handelssession, associative serier, aktuel dato og klokkeslæt, bestemmelse af forbindelsestilstanden, afbrydelse af beregningstilstanden.
Debugging programmer
Trin-for-trin kontrol over programmets drift udføres i vinduet “Debug”. Den åbnes fra kontekstmenuen “Start beregning i fejlretningstilstand”. Den kan også åbnes med kommandoen breakpoint(), og programlinjen vil blive fremhævet med rødt. Vinduet indeholder felter med programkode og variabelværdier. I bunden af vinduet er der knapper “Næste trin”, “Fortsæt udførelse”, “Stop beregning”. Hvis du trykker på F5, fortsætter udførelsen af programmet, kombinationen Shift + F5 stopper fejlretningen, F10-tasten vil lede til næste linje.
QPILE eller LUA?
LUA er et nyt programmeringssprog til at skabe handelsrobotter. Ligesom QPILE er den implementeret i QUIK-terminalen. https://articles.opexflow.com/programming/lua.htm Et websted dedikeret til udvikling af handelsrobotter til handel viser fordelene ved LUA-sproget frem for QPILE. Så det kan fungere som et ukompileret script og bytekode, udstyret med udviklerværktøjer og objektorienterede programmeringsmekanismer. Objekter skrevet på andre programmeringssprog kan tilsluttes LUA-programmer. LUA leverer 8 datatyper, inklusive metatables. LUA-sproget er multi-threaded, hurtigt, og transaktioner og terminalhændelser er asynkrone. LUA er mere almindelig end QPILE, og der er skrevet mange udvidelser til det.
QPILE-sproget er nu forældet. Eksperter på foraene anbefaler at bruge LUA. Selvom nyttige og effektive programmer stadig bliver brugt.
QPILE-sproget er dog simpelt i forhold til LUA, så hvis du ikke har nogen erfaring med programmering, er det bedre at vælge QPILE. På dette sprog kan du skrive en simpel robot, hvis du ikke skal udføre komplekse beregninger.
Hvordan opretter man en handelsrobot på QPILE?
For at oprette en handelsrådgiver skal du bruge følgende programmer:
- ITS Quik.
- Notesblok++ kode editor.
- Guide til QPILE.
- XML-plugin til kodegenkendelse i Notepad++.
Download og installer disse programmer. Aktiver sprogsyntaksen ved at placere userDefineLang.xml i stien C:\Users\User\AppData\Roaming\Notepad++\
Blokken “Brugerindstillinger” er suppleret med ANTAL- og INTERVAL-variablerne, som vil blive brugt i funktionen til at få de sidste N streger. DATETIME-funktionen indstiller serverens dato og klokkeslæt, og de aktuelle dato- og tidsfunktioner CURDATE og CURTIME kaldes fra den. Det aktuelle klokkeslæt konverteres til et tal på linje 24. Linje 26 indstiller tiden for algoritmen til at køre fra 10:00:01 til 18:40:00 UTC.
Handelsrobotter på QPILE – færdige løsninger
Bevægende gennemsnitlig robot
Demo-robot er ikke egnet til ægte handel.
N. Moroshkin positionsberegner
Et program til beregning af niveauerne for den maksimalt tilladte udtrækning og målet for lange og korte positioner til aktuelle udbuds- og budpriser. Niveauerne beregnes for 2 værdier af positionsindtastningsvolumenet. Robotten finder det tilladte positionsvolumen, når der tildeles en stopordre i ét trin fra åbningsprisen med beregningen af at åbne en position i stangens opadgående retning. De fundne niveauer indtastes i terminalvinduet, som efterfølgende afspejles i prisdiagrammet. Transaktioner er faste for et givet instrument. Hvis en position åbnes, begynder robotten at beregne sine parametre. Afhængig af ændringen i position justeres de tildelte ordrer.
Volumen filter
En robot-portefølje til at beregne det aritmetiske middelværdi af volumen for stearinlys og sammenligne det med gennemsnitsproduktet med X-koefficienten. Fungerer korrekt med plottede diagrammer i en valgt tidsperiode.
Indstillinger grækere
Portefølje til beregning og visning af “grækere” af muligheder. Det adskiller sig fra Black-Showers-metoden.
TRIX handelsrobot til QUIK
Programmet er baseret på TRIX-indikatoren. Når indikatoren lukker over nullinjen, det angivne niveau, indtager robotten den lange position. Positionen lukkes af Take Profit, Stop Loss eller efterstop.
M4 forprocessor
Program til at arbejde med QPILE og Lua. Indeholder arkiver med eksekverbare filer, dokumentation og DLL-filer med parsing af regulære udtryk. For at bruge programmet skal du pakke de eksekverbare filer ud og placere regexp2 i C:\Windows-stien. Lektioner om QPILE til QUIK: https://youtu.be/vMTXwDUujpI Installation af et script på QPILE i Quik-terminalen: https://youtu.be/0B7qL8Svh7I Et afsnit på github, der beskriver brugen af QPILE algoritmiske sprog indbygget i QUIK-systemarbejdsstation placeret på linket – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE er et forældet sprog, men ganske enkelt og tilgængeligt selv for nybegyndere. Handel med robotter og programmer, der har bevist sig selv i lang tid, fortsætter med at arbejde på det. Til mere komplekse opgaver er det dog bedre at bruge LUA.
0к