Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK

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

Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK.
Prekybos robotai gali būti parašyti tam tikra kalba, panašiai kaip programos kodas. QPILE yra vienas iš jų, straipsnyje bus nagrinėjama ši kalba, palyginamos QPILE ir
LUA kalbos , taip pat pateikiami robotų pavyzdžiai šia kalba.

Bendra informacija apie QPILE

QPILE yra santrumpa, reiškianti QUIK programuojamą sąsają ir loginę aplinką.

Tai yra QUIK darbo vietos interpretuojamų komandų serija. Jis daugiausia naudojamas skaičiuojant vertybinių popierių portfelių kainą. Kalba taip pat naudojama:

  • dinamiškas klientų turto kainos perskaičiavimas brokerio darbalaukyje ir jų portfeliuose. Pastaruoju atveju perskaičiuojama ir jų bendra kaina;
  • trūkstamų rodiklių radimas naudojant savo algoritmus ir maržos skolinimo duomenis;
  • sukurti tinkamą prekybos strategiją.

Kalba aprašo lentelės struktūrą: stulpelių ir eilučių paskyrimą, formules. Pastarojoje skaičiavimui gali būti naudojami matematiniai veiksmai, kintamieji, kitų lentelių duomenys. Programos kodas, įkeltas iš QUIK serverio arba iš vartotojo disko, yra apdorojamas kalbos vertėjo, kuris apskaičiuoja reikšmes formulėse. Vienos programos lentelės turi vieną duomenų šaltinį, tačiau skaičiavimai nesidubliuoja ir neturi įtakos sistemos efektyvumui. Dirbant su QUIK lentelėmis, QPILE lentelės turi standartines funkcijas. QUIK darbo vietoje aprūpintas QPILE kodo derintuvu. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Kalba leidžia apibūdinti naujas lenteles su nurodyta struktūra, paryškinti langelius su tam tikromis reikšmėmis, apskaičiuoti laukus pagal matematines ir logines išraiškas. Vartotojas gaus pranešimus garso signalu arba tekstiniu pranešimu. QPILE lenteles galima redaguoti, spausdinti, kopijuoti, eksportuoti per ODBC ir DDE serverį. Pradiniai duomenys yra iš QUIK lentelių:

  • sandoriai, įskaitant vykdymo ir neasmeninius;
  • pavedimai, įskaitant sustabdymo pavedimus, nebiržiniams sandoriams ir pavedimams – atsiskaitymo sandorių sandorių ataskaitos;
  • „klientų portfelis“, „pirkti/parduoti“
  • duomenys iš dalyvio pozicijų pagal pinigus, prekybos sąskaitas, priemones.

Lentelių, pagrįstų QPILE, negalima nukopijuoti į tekstinį failą per kontekstinį meniu ir eksportuoti į techninės analizės sistemas, o pagal jas negalima kurti diagramų. QPILE pagrįstų lentelių negalima filtruoti ar rūšiuoti.

Darbas su stalu

Norėdami įkelti programos kodą, turite pasirinkti paslaugų meniu, tada QPILE scenarijus. Taip pat galite naudoti kombinaciją Ctrl + F11. Po to turėsite spustelėti „Pridėti“ ir pasirinkti norimą failą. Jis turi .qpl plėtinį ir jo pavadinimas bus rodomas sąraše Galimi scenarijai.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKJei programoje yra klaida, sistema „Pranešimų lange“ pateiks pranešimą, kuriame bus nurodytas sugedusio failo pavadinimas ir eilutės su klaida numeris. Jei faile gedimų nerasta, laukeliuose bus nurodyti šie duomenys:

  • lentelės pavadinimas;
  • stulpelių ir klientų skaičius;
  • identifikatorių ir klientų sąrašas;
  • parametrų sąrašas ir failo šaltinio kodas.

Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKMygtukas „Atsisiųsti lokaliai“ leis jums gauti lentelę iš failo, o „Įkelti į serverį“ atsiųs programą į serverį, kad visi vartotojai galėtų ją pasiekti. Norėdami sukurti lentelę, spustelėkite Kurti lentelę. Skiltyje „Galimi scenarijai“ pasirinkite programą, kurią norite vykdyti, per „Klientų filtrą“ nustatykite eilučių skaičių, nustatykite reikiamus stulpelius ir jų seką.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKSkaičiavimo pristabdymas ir atnaujinimas, skaičiavimo paleidimas iš naujo ir derinimo režimu, aprašymo įrašymas į failą, formulės demonstravimas ir scenarijaus parametrai pasiekiami kontekstiniame meniu.

QPILE konstrukcijos

Duomenų tipai

  • Styga – styga.
  • Dvigubas yra slankaus kablelio skaičius.
  • Kolekcija – kolekcija.
  • Žemėlapis – asociatyvinis masyvas – porų seka, leidžianti gauti informaciją pagal raktą.

Išraiškos

Taikomos sudėjimo, atimties, daugybos, dalybos aritmetinės operacijos. Taip pat vartojami loginiai posakiai „ir“, „arba“, lygu, daugiau, mažiau, nelygybės, sąlyginė konstrukcija „jei … tada …“.

Funkcijos

Funkcijos gali būti bet kurioje programos vietoje ir turėti skirtingus pavadinimus. Iš viso yra 18 matematinių funkcijų ir funkcijų grupių, leidžiančių gauti lentelių ir parametrų reikšmes, asociatyvinius masyvus, lentelių sąrašą ir kitas užduotis. Pirma klasė:

  1. Matematinės funkcijos , leidžiančios grąžinti argumento sinuso, kosinuso, liestinės, kotangento reikšmę, apskaičiuoti argumento eksponentą, generuoti atsitiktinį skaičių ir pan.
  2. Bendrosios komandos : NEW_GLOBAL, kad inicijuotų visuotinį kintamąjį, ir MESSAGE, kad atidarytumėte pranešimus.

Funkcijos, su kuriomis reikia dirbti:

  • Daiktų kolekcijos (Kolekcija) . Jie leidžia sukurti naują kolekciją, grąžinti reikiamą elementų skaičių, pakeisti arba įterpti norimas reikšmes.
  • Asociatyviniai masyvai (MAP) . Padėkite kurti ir tvarkyti masyvą.
  • Failai – darbas su tekstiniais failais, programos žurnalo tvarkymas. Failo pavadinime gali būti nurodytas kelias į jį.
  • Stygos .
  • Grafikai . Funkcijos GET_CANDLE, kad pasiektų žvakių duomenis, ir GET_CANDLE EX, kad grąžintų asociatyvų masyvą.
  • Programos . Pavedimų sudarymas ir siuntimas į prekybos sistemą.
  • Žymos . Jų konstrukcija ir montavimas diagramoje. Vienos ar visų etikečių pridėjimas, trynimas, konkrečios etiketės parametrų gavimas ir nustatymas.

Taip pat yra funkcijų, skirtų:

  1. Norėdami pasiekti savavališkų QUIK lentelių eilutes ir galimų parametrų sąrašus . Prieiga prie darbo vietos lentelės duomenų. Tai apima GET_ITEM, kad grąžintumėte MAP, ir GET_NUMBER_OF, kad būtų grąžintas įrašų skaičius.
  2. Darbas su programuojamu stalu . Šios komandos veikia SAVO lentelėje. Jį perskaito standartinės ankstesnės pastraipos funkcijos ir šios funkcijos. Ši grupė apima komandas, skirtas pridėti, keisti ir ištrinti eilutę su indeksu bei visiškai išvalyti SAVĘ lentelę.

Norėdami gauti vertes, naudokite:

  1. Dabartinių sandorių lentelės . Keitimosi informacijos parametrų gavimas naudojant GET_PARAM (_EX) komandas.
  2. Cituoti langus . Instrumentų kabučių verčių gavimas.
  3. Pozicijos pagal priemones ir pinigus lentelės . Duomenų apie klientą, firmą, priemonę, depo sąskaitą gavimas pagal kodą.

Aptarnavimo funkcijos – einamosios prekybos sesijos datos grąžinimas, asociacinės serijos, einamoji data ir laikas, ryšio būsenos nustatymas, skaičiavimo režimo nutraukimas.

Derinimo programos

Žingsnis po žingsnio programos veikimo valdymas atliekamas lange „Debug“. Jis atidaromas iš kontekstinio meniu „Pradėti skaičiavimą derinimo režimu“. Ją taip pat galima atidaryti naudojant breakpoint() komandą, o programos eilutė bus paryškinta raudonai. Lange yra laukai su programos kodu ir kintamųjų reikšmėmis. Lango apačioje yra mygtukai „Kitas žingsnis“, „Tęsti vykdymą“, „Sustabdyti skaičiavimą“. Paspaudus F5 bus tęsiamas programos vykdymas, derinys Shift + F5 nustos derinti, klavišas F10 nukreips į kitą eilutę.

QPILE ar LUA?

LUA yra nauja programavimo kalba, skirta kurti prekybos robotus. Kaip ir QPILE, ji įdiegta QUIK terminale. https://articles.opexflow.com/programming/lua.htm Svetainė, skirta prekybai skirtų prekybos robotų kūrimui, parodo LUA kalbos pranašumus prieš QPILE. Taigi, jis gali veikti kaip nesudarytas scenarijus ir baitinis kodas, aprūpintas kūrėjo įrankiais ir į objektą orientuotais programavimo mechanizmais. Objektai, parašyti kitomis programavimo kalbomis, gali būti prijungti prie LŽŪA programų. LUA pateikia 8 duomenų tipus, įskaitant meta lenteles. LUA kalba yra kelių gijų, greita, o operacijos ir terminalo įvykiai yra asinchroniniai. LUA yra labiau paplitęs nei QPILE, ir jai buvo parašyta daug plėtinių.

QPILE kalba dabar nebenaudojama. Forumų ekspertai rekomenduoja naudoti LUA. Nors naudingos ir veiksmingos programos vis dar naudojamos.

Tačiau QPILE kalba, palyginti su LUA, yra paprasta, todėl jei neturite programavimo patirties, geriau rinktis QPILE. Šia kalba galite parašyti paprastą robotą, jei jums nereikia atlikti sudėtingų skaičiavimų.

Kaip sukurti prekybos robotą QPILE?

Norėdami sukurti prekybos patarėją, jums reikės šių programų:

  1. ITS Quik.
  2. Notepad++ kodo redaktorius.
  3. QPILE vadovas.
  4. XML įskiepis, skirtas kodo aptikimui programoje Notepad++.

Atsisiųskite ir įdiekite šias programas. Įgalinkite kalbos sintaksę įkeldami userDefineLang.xml į kelią C:\Users\User\AppData\Roaming\Notepad++\
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKPirmiausia sukurkime tokią prekybos strategiją. Scenarijus turėtų skaičiuoti Hi ir Low paskutinėms žvakėms kiekvieną minutę, patikrinti esamą instrumento kainą. Pozicija atidaroma reikiama kryptimi, jei priemonės kaina pasiekia maksimalią arba mažiausią laikotarpio vertę. Kai gaunamas trumpasis signalas, ilgoji padėtis automatiškai uždaroma. Robotas naudoja GAZP įrankį, nustatytas laiko intervalas 1 min. Hi-low matavimo gylis nustatytas iki 5 žvakių. Norint įvesti Ilgą, nustatoma taisyklė ir didžiausios laikotarpio vertės esamos kainos sankirta. Robotas įves „Short“, jei dabartinė kaina viršys minimalią šių 5 žvakių vertę. Parašykite kodo bloką „Notepad++“ naudodami pagrindinius nustatymus ir serverio datą bei laiką. Šis kodas parodytas paveikslėlyje žemiau.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKPirmosios 4 kodo eilutės sudaro programos antraštę. Tarp 6 ir 44 eilučių yra programos turinys, kuriame yra roboto turinys. 7–12 eilutėse pateikiami vartotojo nustatymai, įskaitant prietaiso, grupės ir kliento kodus, MICEX sąskaitos numerį. Šios reikšmės programos vykdymo metu nesikeičia. 13–16 eilutės yra pradinės kintamųjų reikšmės. Jie bus atstatyti į nulį kiekvieno kartojimo metu. 17–21 eilutėse nurodoma naudoti serverio datą ir laiką. Šie duomenys perduodami funkcijai DATETIME ir konvertuojami į teksto formatą. 22–29 eilutės siunčia gautus duomenis į lentelę. Kodas turi būti išsaugotas ir nurodytas qpl plėtinys.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKAtidarykite programą QUIK paspausdami Ctrl+F10 ir pasirinkdami sugeneruotą qpl failą. Naudodami Ctrl+F11 kombinaciją atidarykite langą „Darbas su portfeliais“ ir nustatykite portfelio skaičiavimo laikotarpį į 5 minutes. Paspauskite Ctrl + F12, kad nustatytumėte stulpelius, kurie bus rodomi lentelėje. Nuotraukoje parodytas roboto darbo rezultatas.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKPridėkime prie savo programos dar keletą funkcijų ir sąlygų.
Blokas „Vartotojo nustatymai“ papildytas SKAIČIŲ ir INTERVALŲ kintamaisiais, kurie bus naudojami paskutinių N juostų gavimo funkcijai. Funkcija DATETIME nustato serverio datą ir laiką, o iš jos iškviečiamos esamos datos ir laiko funkcijos CURDATE ir CURTIME. Dabartinis laikas konvertuojamas į skaičių 24 eilutėje. 26 eilutėje nustatomas algoritmo veikimo laikas nuo 10:00:01 iki 18:40:00 UTC.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKAlgoritminė kalba QPILE skirta programuoti prekybos robotus QUIKDažniausiai rodikliai, osciliatoriai, statistiniai skaičiavimai skaičiuojami pagal paskutines N diagramos žvakes. QPILE neturi funkcijos, leidžiančios rinkti žvakių skaičių prieš N periodus, tačiau yra funkcija GET_CANDLE, kuri pasiekia diagramos žvakes pagal datą ir laiką teksto formatu. Mūsų kode yra funkcija, skirta gauti paskutines N juostas OHLC (). Jis sukuria kolekciją su paskutinių žvakių, esančių sąraše KOLEKTAVIMAS, parametrais. Programa patikrina INTERVAL reikšmę ir, jei ji nepatenka į intervalą 0…60, rodomas pranešimas, kad reikšmė neatitinka leistino diapazono. 88 eilutėje sukuriama ŽEMĖLAPIŲ kolekcija su žvakėmis. FOR kilpa, apklausianti diagramą iki reikiamo gylio su INTERVAL žingsniu nuo naujos iki senos žvakės. 90 eilutėje, paskelbus ciklą, robotas grįžta atgal. Kai gausite žvakę su GET_CANDLE, įdėkite jį į BARLIST kolekciją naudodami funkciją INSERT_COLLECTION_TEAM. Dėl komandos OHLC() veikimo, BARLIST papildomas paskutinėmis žvakėmis iš instrumentų diagramos SKAIČIŲ. Elementų skaičiaus rinkinyje prašo komanda GET_COLLECTION_COUNT() ir praneša kintamasis BARCOUNT. Serverio data, laikas, INSTRUMENT ir BARCOUNT kintamųjų reikšmės pateikiamos naudojant SET_VALUE() funkciją OUTPUT. Šis masyvas sukuriamas komanda CREATE_MAP(). Duomenys patenka į pasirinktinę lentelę, kurią galite pamatyti toliau esančioje nuotraukoje. INSTRUMENT ir BARCOUNT kintamųjų reikšmes praneša funkcija SET_VALUE() OUTPUT. Šis masyvas sukuriamas komanda CREATE_MAP(). Duomenys patenka į pasirinktinę lentelę, kurią galite pamatyti toliau esančioje nuotraukoje. INSTRUMENT ir BARCOUNT kintamųjų reikšmes praneša funkcija SET_VALUE() OUTPUT. Šis masyvas sukuriamas komanda CREATE_MAP(). Duomenys patenka į pasirinktinę lentelę, kurią galite pamatyti toliau esančioje nuotraukoje.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK

Prekybos robotai QPILE – paruošti sprendimai

Judantis vidutinis robotas

Demonstracinis robotas netinka realiai prekybai.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIKRobotas turi 5 parametrus. DATA, LAIKAS, KAINA identifikatorių reikšmės yra nustatytos į 30 lygį. MOVING ir TP identifikatoriai yra nulinio tikslumo. Roboto kodas slenkamuoju vidurkiu, parašytas QPILE:

N. Moroškino padėties skaičiuoklė

Programa, skirta apskaičiuoti maksimalaus leistino skolinimosi lygius ir ilgųjų bei trumpųjų pozicijų tikslą esamomis paklausimo ir siūlomomis kainomis. Lygiai apskaičiuojami 2 pozicijos įvedimo tūrio reikšmėms. Robotas suranda leistiną pozicijos apimtį priskirdamas stop orderį vienu žingsniu nuo atidarymo kainos, skaičiuodamas pozicijos atidarymą juostos augimo kryptimi. Rasti lygiai įvedami į terminalo langą, kurie vėliau atsispindi kainų diagramoje. Sandoriai yra fiksuoti tam tikrai priemonei. Jei pozicija atidaroma, robotas pradeda skaičiuoti savo parametrus. Priklausomai nuo pozicijos pasikeitimo koreguojami priskirti užsakymai.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK

Tūrio filtras

Portfelio robotas, skirtas žvakių tūrio aritmetiniam vidurkiui apskaičiuoti ir palyginti jį su vidutine sandauga pagal X koeficientą.Teisingai veikia su braižytomis diagramomis pasirinktu laikotarpiu.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK

Pasirinkimai graikai

Portfelis, skirtas „graikų“ opcionų skaičiavimui ir atvaizdavimui. Tai skiriasi nuo Black-Showers metodo.
Algoritminė kalba QPILE skirta programuoti prekybos robotus QUIK

TRIX prekybos robotas QUIK

Programa yra pagrįsta TRIX indikatoriumi. Kai indikatorius užsidaro virš nulinės linijos, nurodyto lygio, robotas užima Long poziciją. Pozicija uždaroma Take Profit, Stop Loss arba Trailing stop.

M4 pirminis procesorius

Programa, skirta darbui su QPILE ir Lua. Apima archyvus su vykdomaisiais failais, dokumentaciją ir DLL failus su reguliariųjų išraiškų analize. Norėdami naudoti programą, turite išpakuoti vykdomuosius failus ir į C:\Windows kelią įdėti regexp2. Pamokos apie QPILE, skirtą QUIK: https://youtu.be/vMTXwDUujpI Scenarijaus įdiegimas QPILE į Quik terminalą: https://youtu.be/0B7qL8Svh7I Github skyrius, kuriame aprašomas QPILE algoritminės kalbos, integruotos QUIK sistemos darbo vieta, esanti nuorodoje – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE yra pasenusi kalba, tačiau gana paprasta ir prieinama net pradedantiesiems prekybininkams. Prekybos robotai ir ilgą laiką pasiteisinusios programos ir toliau dirba su tuo. Tačiau sudėtingesnėms užduotims geriau naudoti LŽŪA.

info
Rate author
Add a comment

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

    Reply