Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille

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

Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille.
Kaupankäyntirobotit voidaan kirjoittaa tietyllä kielellä, kuten ohjelmakoodi. QPILE on yksi niistä, tässä artikkelissa tarkastellaan tätä kieltä, verrataan QPILE- ja
LUA-kieliä ja annetaan myös esimerkkejä roboteista tällä kielellä.

Yleistä QPILE:stä

QPILE on lyhenne sanoista QUIK Programmable Interface and Logic Environment.

Tämä on sarja QUIK-työaseman tulkitsemia komentoja. Sitä käytetään pääasiassa arvopaperisalkkujen hintojen laskemiseen. Kieltä käytetään myös:

  • asiakkaiden omaisuuden hinnan dynaaminen uudelleenlaskenta välittäjän työpöydällä ja heidän salkuissaan. Jälkimmäisessä tapauksessa myös niiden kokonaishinta lasketaan uudelleen;
  • puuttuvien indikaattoreiden löytäminen käyttämällä omia algoritmejaan ja tietoja marginaalilainaa varten;
  • oikean kaupankäyntistrategian kehittäminen.

Kieli kuvaa taulukon rakennetta: sarakkeiden ja rivien merkintä, kaavat. Jälkimmäisessä laskennassa voidaan käyttää matemaattisia operaatioita, muuttujia, tietoja muista taulukoista. QUIK-palvelimelta tai käyttäjän levyltä ladatun ohjelmakoodin käsittelee kielitulkki, joka laskee kaavoissa olevat arvot. Yhden ohjelman taulukoissa on yksi tietolähde, mutta laskelmat eivät ole päällekkäisiä eivätkä vaikuta järjestelmän tehokkuuteen. QUIK-taulukoiden kanssa työskennellessä QPILE-taulukoissa on vakiotoimintoja. QUIK työpaikalla on varustettu QPILE-koodin debuggerilla. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Kielen avulla voit kuvata uusia taulukoita tietyllä rakenteella, korostaa soluja tietyillä arvoilla, laskea kenttiä matemaattisten ja loogisten lausekkeiden perusteella. Käyttäjä saa ilmoituksia äänimerkin tai tekstiviestin muodossa. QPILE-taulukoita voidaan muokata, tulostaa, kopioida, viedä ODBC- ja DDE-palvelimen kautta. Alkutiedot ovat QUIK-taulukoista:

  • liiketoimet, mukaan lukien toteutus ja persoonaton;
  • toimeksiannot, mukaan lukien stop-toimeksiannot, over-the-counter-kauppoja ja toimeksiantoja varten – selvityskauppojen kauppojen raportit;
  • ”asiakassalkku”, ”osta/myy”
  • tiedot osallistujan positioista rahan, kaupankäyntitilien, instrumenttien mukaan.

QPILE-pohjaisia ​​taulukoita ei voi kopioida tekstitiedostoon kontekstivalikon kautta ja viedä teknisiin analyysijärjestelmiin, eikä niiden pohjalta voida kehittää kaavioita. QPILE-pohjaisia ​​taulukoita ei voi suodattaa tai lajitella.

Työskentely pöydän kanssa

Ohjelmakoodin lataamiseksi sinun on valittava Palvelut-valikko ja sitten QPILE-skriptit. Voit myös käyttää yhdistelmää Ctrl+F11. Kun sinun on napsautettava ”Lisää” ja valittava haluamasi tiedosto. Sillä on .qpl-tunniste, ja sen nimi näkyy Available Scripts -luettelossa.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleJos ohjelmassa on virhe, järjestelmä tekee ilmoituksen ”Viestiikkunassa”, joka sisältää viallisen tiedoston nimen ja virheen sisältävän rivinumeron. Jos tiedostosta ei löytynyt vikoja, kenttiin ilmoitetaan seuraavat tiedot:

  • taulukon nimi;
  • sarakkeiden ja asiakkaiden määrä;
  • luettelo tunnisteista ja asiakkaista;
  • parametrien luettelo ja tiedoston lähdekoodi.

Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille”Lataa paikallisesti” -painikkeella voit noutaa taulukon tiedostosta ja ”Lataa palvelimelle” lähettää ohjelman palvelimelle, jotta kaikki käyttäjät voivat käyttää sitä. Luo taulukko napsauttamalla Luo taulukko. Valitse ”Saatavilla olevat komentosarjat” -kohdasta ohjelma, jonka haluat suorittaa, aseta rivien määrä ”Client Filter” -sovelluksen kautta, määritä tarvittavat sarakkeet ja niiden järjestys.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleLaskennan keskeyttäminen ja jatkaminen, laskennan aloittaminen uudelleen ja virheenkorjaustilassa, kuvauksen tallentaminen tiedostoon, kaavan esittely ja komentosarjaparametrit ovat käytettävissä kontekstivalikossa.

QPILE-rakenteet

Tietotyypit

  • String – merkkijono.
  • Double on liukuluku.
  • Kokoelma – kokoelma.
  • Kartta – assosiatiivinen matriisi – parien sarja, jonka avulla voit saada tietoa avaimella.

Ilmaisut

Sovelletaan aritmeettisia yhteen-, vähennys-, kerto- ja jakolaskuoperaatioita. Käytetään myös loogisia ilmaisuja ”ja”, ”tai”, yhtä kuin enemmän, vähemmän, epäyhtälöt, ehdollinen konstruktio ”jos … niin …”.

Toiminnot

Toiminnot voivat sijaita missä tahansa ohjelmassa ja niillä voi olla eri nimiä. Yhteensä 18 ryhmää matemaattisia funktioita ja funktioita on käytettävissä taulukoiden ja parametrien arvojen, assosiatiivisten taulukoiden, taulukkoluettelon ja muiden tehtävien saamiseksi. Ensiluokkainen:

  1. Matemaattiset funktiot , joiden avulla voit palauttaa argumentin sinin, kosinin, tangentin, kotangentin arvon, laskea argumentin eksponentin, luoda satunnaisluvun jne.
  2. Yleiset komennot : NEW_GLOBAL globaalin muuttujan alustamiseksi ja MESSAGE viestien avaamiseksi.

Toiminnot, joiden kanssa työskennellä:

  • Esinekokoelmat (kokoelma) . Niiden avulla voit luoda uuden kokoelman, palauttaa tarvittavan määrän elementtejä, korvata tai lisätä haluamasi arvot.
  • Assosiatiiviset taulukot (MAP) . Auta luomaan ja hallitsemaan taulukkoa.
  • Tiedostot – työskentely tekstitiedostojen kanssa, ylläpitää ohjelman lokia. Tiedostonimi voi sisältää polun siihen.
  • jouset .
  • Kaaviot . Funktio GET_CANDLE käyttää kynttilän tietoja ja GET_CANDLE EX palauttaa assosiatiivisen taulukon.
  • Sovellukset . Tilausten luominen ja lähettäminen kaupankäyntijärjestelmään.
  • Tunnisteet . Niiden rakentaminen ja asennus kartalla. Yhden tai kaikkien tarrojen lisääminen, poistaminen, parametrien hakeminen ja asettaminen tietylle tarralle.

Toimintoja on myös:

  1. Satunnaisten QUIK-taulukoiden riveihin ja käytettävissä olevien parametrien luetteloihin pääsyä varten . Pääsy työpaikan taulukkotietoihin. Näitä ovat GET_ITEM palauttaaksesi MAP ja GET_NUMBER_OF palauttaaksesi merkintöjen määrän.
  2. Työskentely ohjelmoitavan pöydän kanssa . Nämä komennot toimivat OWN-taulukossa. Se on luettavissa edellisen kappaleen vakiofunktioilla ja näillä funktioilla. Tämä ryhmä sisältää komennot indeksin sisältävän rivin lisäämiseen, muokkaamiseen ja poistamiseen sekä OMAN taulukon täydelliseen tyhjentämiseen.

Käytä arvoja saadaksesi:

  1. Nykyisten kauppojen taulukot . Vaihtotietojen parametrien hakeminen GET_PARAM (_EX) -komennoilla.
  2. Lainaus windows . Instrumenttitarjousten arvojen hankkiminen.
  3. Asemataulukot instrumenttien ja rahan mukaan . Asiakkaan, yrityksen, instrumentin, depo-tilin tietojen saaminen koodin mukaan.

Palvelutoiminnot – nykyisen kauppaistunnon päivämäärän, assosiatiivisen sarjan, nykyisen päivämäärän ja kellonajan palauttaminen, yhteyden tilan määrittäminen, laskentatilan keskeyttäminen.

Virheenkorjausohjelmat

Ohjelman toiminnan vaiheittainen ohjaus suoritetaan ”Debug” -ikkunassa. Se avataan pikavalikosta ”Aloita laskenta virheenkorjaustilassa”. Se voidaan avata myös breakpoint()-komennolla, jolloin ohjelmarivi korostuu punaisella. Ikkuna sisältää kenttiä ohjelmakoodilla ja muuttujaarvoilla. Ikkunan alareunassa on painikkeet ”Seuraava vaihe”, ”Jatka suoritusta”, ”Lopeta laskenta”. F5-näppäimen painaminen jatkaa ohjelman suorittamista, yhdistelmä Shift + F5 lopettaa virheenkorjauksen, F10-näppäin ohjaa seuraavalle riville.

QPILE vai LUA?

LUA on uusi ohjelmointikieli kaupparobottien luomiseen. Kuten QPILE, se on toteutettu QUIK-päätteessä. https://articles.opexflow.com/programming/lua.htm Kaupankäyntirobottien kehittämiselle omistettu sivusto näyttää LUA-kielen edut QPILEen verrattuna. Joten se voi toimia kääntämättömänä komentosarjana ja tavukoodina, joka on varustettu kehittäjätyökaluilla ja olio-ohjelmointimekanismilla. Muilla ohjelmointikielillä kirjoitetut objektit voidaan liittää LUA-ohjelmiin. LUA tarjoaa 8 tietotyyppiä, mukaan lukien metataulukot. LUA-kieli on monisäikeinen, nopea, ja tapahtumat ja päätetapahtumat ovat asynkronisia. LUA on yleisempi kuin QPILE, ja sille on kirjoitettu monia laajennuksia.

QPILE-kieli on nyt vanhentunut. Foorumien asiantuntijat suosittelevat LUA:n käyttöä. Vaikka hyödyllisiä ja tehokkaita ohjelmia käytetään edelleen.

QPILE-kieli on kuitenkin yksinkertainen verrattuna LUA:han, joten jos sinulla ei ole kokemusta ohjelmoinnista, on parempi valita QPILE. Tällä kielellä voit kirjoittaa yksinkertaisen robotin, jos sinun ei tarvitse suorittaa monimutkaisia ​​laskelmia.

Kuinka luoda kaupparobotti QPILEssä?

Kaupankäyntineuvojan luomiseksi tarvitset seuraavat ohjelmat:

  1. Sen Quik.
  2. Notepad++ koodieditori.
  3. QPILE-opas.
  4. XML-laajennus koodin havaitsemiseen Notepad++:ssa.

Lataa ja asenna nämä ohjelmat. Ota kielen syntaksi käyttöön asettamalla userDefineLang.xml polkuun C:\Users\User\ AppData\Roaming\Notepad++\
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleLuodaan ensin seuraava kaupankäyntistrategia. Skriptin tulee laskea Hi- ja Low-arvot viimeisille kynttilöiden minuutti välein, tarkista instrumentin nykyinen hinta. Positio avataan haluttuun suuntaan, jos instrumentin hinta saavuttaa jakson maksimi- tai minimiarvon. Kun lyhyt signaali vastaanotetaan, pitkä asento sulkeutuu automaattisesti. Robotti käyttää GAZP-työkalua, aikakehykseksi on asetettu 1 min. Hi-low-mittaussyvyydeksi on asetettu 5 kynttilää. Pitkän syöttämiseksi asetetaan sääntö ja jakson enimmäisarvon nykyisen hinnan leikkauspiste. Robotti siirtyy Shortiin, jos nykyinen hinta ylittää näiden 5 kynttilän vähimmäisarvon. Kirjoita Notepad++:ssa koodilohko perusasetuksineen sekä palvelimen päivämäärä ja kellonaika. Tämä koodi näkyy alla olevassa kuvassa.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleEnsimmäiset 4 koodiriviä muodostavat ohjelman otsikon. Rivien 6 ja 44 välissä on ohjelman runko, joka sisältää robotin sisällön. Rivit 7 – 12 sisältävät käyttäjäasetukset, jotka sisältävät instrumentin, ryhmän ja asiakkaan koodit sekä MICEXin tilinumeron. Nämä arvot eivät muutu ohjelman suorituksen aikana. Rivit 13 – 16 ovat muuttujien alkuarvoja. Ne nollataan jokaisella iteraatiokerralla. Rivit 17 – 21 sisältävät viitteen käyttää palvelimen päivämäärää ja kellonaikaa. Nämä tiedot välitetään DATETIME-funktiolle ja muunnetaan tekstimuotoon. Rivit 22 – 29 lähettävät vastaanotetut tiedot taulukkoon. Koodi on tallennettava ja qpl-laajennus on määritettävä.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleAvaa ohjelma QUIKissa painamalla Ctrl+F10 ja valitsemalla luotu qpl-tiedosto. Käytä Ctrl+F11-yhdistelmää avataksesi ”Work with Portfolios” -ikkunan ja aseta portfolion laskentajaksoksi 5 minuuttia. Aseta taulukossa näytettävät sarakkeet painamalla Ctrl+F12. Kuvassa on robotin työn tulos.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleLisätään vielä muutama toiminto ja ehto ohjelmaamme.
”Käyttäjäasetukset”-lohkoa täydennetään NUMBER- ja INTERVAL-muuttujilla, joita käytetään viimeisen N-palkin hankinnassa. DATETIME-funktio asettaa palvelimen päivämäärän ja kellonajan, ja nykyiset päivämäärä- ja aikafunktiot CURDATE ja CURTIME kutsutaan siitä. Nykyinen aika muunnetaan numeroksi rivillä 24. Rivi 26 asettaa algoritmin suoritusajan 10:00:01 – 18:40:00 UTC.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleAlgoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleUseimmiten indikaattorit, oskillaattorit ja tilastolliset laskelmat lasketaan kaavion viimeisen N kynttilän mukaan. QPILE:ssä ei ole toimintoa kynttilöiden lukumäärän keräämiseen N jaksoa sitten sellaisenaan, mutta olemassa on GET_CANDLE-toiminto, joka hakee kaavion kynttilöitä päivämäärän ja ajan mukaan tekstimuodossa. Koodimme sisältää funktion, jolla saadaan viimeiset N palkkia OHLC(). Se luo kokoelman, jossa on COLLECTION-luetteloon sisäkkäisten viimeisten kynttilöiden parametrit. Ohjelma tarkistaa INTERVAL-arvon ja jos se ei ole alueella 0…60, näyttöön tulee viesti, että arvo ei vastaa sallittua aluetta. KARTTA-kokoelma, jossa on kynttilöitä, luodaan riville 88. FOR-silmukka polttaa kaavion haluttuun syvyyteen INTERVAL-askelilla uudesta kynttilästä vanhaan. Rivillä 90, kun sykli on ilmoitettu, robotti palaa intervallin taaksepäin. Kun saat kynttilän GET_CANDLE:lla, aseta se BARLIST-kokoelmaan käyttämällä INSERT_COLLECTION_TEAM-toimintoa. OHLC()-komennon toiminnan seurauksena BARLIST täydentyy instrumenttitaulukon viimeisillä kynttilöillä NUMERON verran. Komento GET_COLLECTION_COUNT() pyytää kokoelman elementtien määrää ja ilmoittaa BARCOUNT-muuttuja. Palvelimen päivämäärä, aika, INSTRUMENT- ja BARCOUNT-muuttujien arvot raportoidaan SET_VALUE()-funktiolla OUTPUT:ssa. Tämä taulukko luodaan CREATE_MAP()-komennolla. Tiedot kuuluvat mukautettuun taulukkoon, joka näkyy alla olevassa kuvassa. INSTRUMENT- ja BARCOUNT-muuttujien arvot raportoidaan SET_VALUE()-funktiolla OUTPUT:ssa. Tämä taulukko luodaan CREATE_MAP()-komennolla. Tiedot kuuluvat mukautettuun taulukkoon, joka näkyy alla olevassa kuvassa. INSTRUMENT- ja BARCOUNT-muuttujien arvot raportoidaan SET_VALUE()-funktiolla OUTPUT:ssa. Tämä taulukko luodaan CREATE_MAP()-komennolla. Tiedot kuuluvat mukautettuun taulukkoon, joka näkyy alla olevassa kuvassa.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille

QPILE-kaupankäyntirobotit – valmiit ratkaisut

Liikkuva keskiverto robotti

Demorobotti ei sovellu oikeaan kauppaan.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKilleRobotti sisältää 5 parametria. DATE, TIME, PRICE tunnisteiden arvot on asetettu tasolle 30. MOVING- ja TP-tunnisteet on asetettu nollatarkkuuteen. Robottikoodi liukuvalla keskiarvolla kirjoitettuna QPILE:ssä:

N. Moroshkinin sijaintilaskin

Ohjelma, jolla lasketaan suurimman sallitun noston tasot sekä pitkien ja lyhyiden positioiden tavoite nykyisillä myynti- ja ostohinnoilla. Tasot lasketaan kahdelle paikan syöttötilavuuden arvolle. Robotti löytää sallitun asemavolyymin annettaessa stop-tilausta yhdessä vaiheessa avaushinnasta laskemalla positio avauspalkin ylöspäin. Löydetyt tasot syötetään pääteikkunaan, joka näkyy myöhemmin hintakaaviossa. Liiketoimet ovat kiinteät tietylle instrumentille. Jos paikka avataan, robotti alkaa laskea parametrejaan. Aseman muutoksesta riippuen määrättyjä tilauksia säädetään.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille

Äänenvoimakkuuden suodatin

Robotti-portfolio kynttilöiden tilavuuden aritmeettisen keskiarvon laskemiseen ja sen vertaamiseen X-kertoimen keskimääräiseen tuloon Toimii oikein piirretyillä kaavioilla valitulla ajanjaksolla.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille

Vaihtoehdot kreikkalaiset

Portfolio ”kreikkalaisten” vaihtoehtojen laskemiseen ja näyttämiseen. Se eroaa Black-Showers-menetelmästä.
Algoritminen kieli QPILE kaupparobottien ohjelmointiin QUIKille

TRIX-kaupparobotti QUIKille

Ohjelma perustuu TRIX-indikaattoriin. Kun ilmaisin sulkeutuu nollaviivan yläpuolelle määritellyn tason yläpuolelle, robotti ottaa pitkän asennon. Positio suljetaan Take Profitilla, Stop Lossilla tai perässä.

M4 esiprosessori

Ohjelma QPILEn ja Luan kanssa työskentelemiseen. Sisältää arkistot, joissa on suoritettavat tiedostot, asiakirjat ja DLL-tiedostot säännöllisen lausekkeen jäsentämisellä. Jotta voit käyttää ohjelmaa, sinun on purettava suoritettavat tiedostot ja asetettava regexp2 C:\Windows-polkuun. Oppitunnit QPILE:stä QUIK:lle: https://youtu.be/vMTXwDUujpI Skriptin asentaminen QPILE:hen Quik-päätteeseen: https://youtu.be/0B7qL8Svh7I Githubin osio, joka kuvaa QPILE-algoritmikielen käyttöä, joka on sisäänrakennettu QUIK-järjestelmätyöasema löytyy linkistä – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE on vanhentunut kieli, mutta melko yksinkertainen ja jopa aloittelevien kauppiaiden saatavilla. Kaupankäyntirobotit ja -ohjelmat, jotka ovat osoittautuneet jo pitkään, työskentelevät edelleen sen parissa. Monimutkaisempiin tehtäviin on kuitenkin parempi käyttää LUA:ta.

info
Rate author
Add a comment

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

    Vastaa