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
- Darbas su stalu
- QPILE konstrukcijos
- Duomenų tipai
- Išraiškos
- Funkcijos
- Derinimo programos
- QPILE ar LUA?
- Kaip sukurti prekybos robotą QPILE?
- Prekybos robotai QPILE – paruošti sprendimai
- Judantis vidutinis robotas
- N. Moroškino padėties skaičiuoklė
- Tūrio filtras
- Pasirinkimai graikai
- TRIX prekybos robotas QUIK
- M4 pirminis procesorius
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.
- lentelės pavadinimas;
- stulpelių ir klientų skaičius;
- identifikatorių ir klientų sąrašas;
- parametrų sąrašas ir failo šaltinio kodas.
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ė:
- 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.
- 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ų:
- 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.
- 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:
- Dabartinių sandorių lentelės . Keitimosi informacijos parametrų gavimas naudojant GET_PARAM (_EX) komandas.
- Cituoti langus . Instrumentų kabučių verčių gavimas.
- 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ų:
- ITS Quik.
- Notepad++ kodo redaktorius.
- QPILE vadovas.
- 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++\
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.
Prekybos robotai QPILE – paruošti sprendimai
Judantis vidutinis robotas
Demonstracinis robotas netinka realiai prekybai.
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.
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.
Pasirinkimai graikai
Portfelis, skirtas „graikų“ opcionų skaičiavimui ir atvaizdavimui. Tai skiriasi nuo Black-Showers metodo.
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.
0к