Algoritma lingvo QPILE por programado de komercaj robotoj por QUIK.
Komercaj robotoj povas esti skribitaj en specifa lingvo, simile al programkodo. QPILE estas unu el ili, la artikolo konsideros ĉi tiun lingvon, komparos la QPILE kaj
LUA-lingvojn , kaj ankaŭ provizos ekzemplojn de robotoj en ĉi tiu lingvo.
- Ĝeneralaj informoj pri QPILE
- Laborante kun tablo
- QPILE-konstruaĵoj
- Tipoj de datumoj
- Esprimoj
- Funkcioj
- Sencimigaj programoj
- QPILE aŭ LUA?
- Kiel krei komercan roboton sur QPILE?
- Komercaj robotoj sur QPILE – pretaj solvoj
- Moviĝanta averaĝa roboto
- N. Moroshkin poziciokalkulilo
- Volumo-filtrilo
- Opcioj grekoj
- TRIX komerca roboto por QUIK
- M4-antaŭprocesoro
Ĝeneralaj informoj pri QPILE
QPILE estas mallongigo, kiu signifas QUIK Programebla Interfaco kaj Logika Medio.
Ĉi tio estas serio de komandoj interpretitaj de la laborstacio QUIK. Ĝi estas ĉefe uzata por kalkuli la prezon de biletujoj de valorpaperoj. La lingvo ankaŭ estas uzata por:
- dinamika rekalkulo de la prezo de aktivoj de klientoj sur la labortablo de la makleristo kaj en iliaj biletujoj. En ĉi-lasta kazo, ilia totala prezo ankaŭ estas rekalkulita;
- trovi mankantajn indikilojn uzante siajn proprajn algoritmojn kaj datumojn por marĝena pruntedonado;
- disvolvante la ĝustan komercan strategion.
La lingvo priskribas la strukturon de la tabelo: la nomumo de kolumnoj kaj vicoj, formuloj. En ĉi-lasta, matematikaj operacioj, variabloj, datumoj de aliaj tabeloj povas esti uzataj por kalkulo. La programkodo ŝarĝita de la QUIK-servilo aŭ de la disko de la uzanto estas prilaborata de la lingva interpretisto, kiu kalkulas la valorojn en la formuloj. La tabeloj de unu programo havas unu datumfonton, sed la kalkuloj ne estas duobligitaj kaj ne influas la efikecon de la sistemo. Laborante kun QUIK-tabeloj, tabeloj sur QPILE havas normajn funkciojn. QUIK en la laborejo estas ekipita per QPILE-kodo-sencimigilo. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm La lingvo permesas priskribi novajn tabelojn kun difinita strukturo, reliefigi ĉelojn kun certaj valoroj, kalkuli kampojn surbaze de matematikaj kaj logikaj esprimoj. La uzanto ricevos sciigojn en formo de sonsignalo aŭ tekstmesaĝo. Tabeloj pri QPILE povas esti redaktitaj, presitaj, kopiitaj, eksportitaj per ODBC kaj DDE-servilo. La komencaj datumoj estas de la QUIK-tabeloj:
- transakcioj, inkluzive por ekzekuto kaj nepersonaj;
- orders, including stop orders, for over-the-counter trades and orders – raportoj pri komercoj en setlinterkonsentoj;
- “klienta biletujo”, “aĉeti/vendi”
- datumoj de la pozicioj de la partoprenanto per mono, komercaj kontoj, instrumento.
Tabeloj bazitaj sur QPILE ne povas esti kopiitaj al tekstdosiero per la kunteksta menuo kaj eksportitaj al teknikaj analizsistemoj, kaj diagramoj ne povas esti evoluigitaj surbaze de ili. QPILE-bazitaj tabeloj ne povas esti filtritaj aŭ ordigitaj.
Laborante kun tablo
Por ŝargi la programkodon, vi devas elekti la servomenuon, poste QPILE-skriptojn. Vi ankaŭ povas uzi la kombinaĵon Ctrl+F11. Post kiam vi devas alklaki “Aldoni” kaj elekti la deziratan dosieron. Ĝi havas etendon .qpl kaj ĝia nomo aperos en la Listo de Disponeblaj Skriptoj.
- tabelnomo;
- nombro da kolumnoj kaj klientoj;
- listo de identigiloj kaj klientoj;
- la listo de parametroj kaj la fontkodo de la dosiero.
QPILE-konstruaĵoj
Tipoj de datumoj
- String – kordo.
- Duoblo estas glitkoma nombro.
- Kolekto – kolekto.
- Mapo – asocieca tabelo – sinsekvo de paroj, kiu ebligas al vi ricevi informojn per ŝlosilo.
Esprimoj
La aritmetikaj operacioj de adicio, subtraho, multipliko, divido estas aplikataj. Oni uzas ankaŭ la logikaj esprimoj “kaj”, “aŭ”, egalas, pli, malpli, neegalaĵojn, kondiĉan konstruon “se … tiam …”.
Funkcioj
Funkcioj povas troviĝi ie ajn en la programo kaj havas malsamajn nomojn. Entute, 18 grupoj de matematikaj funkcioj kaj funkcioj estas disponeblaj por akiri la valorojn de tabeloj kaj parametroj, asociaj tabeloj, listo de tabeloj kaj aliaj taskoj. Unua klaso:
- Matematikaj funkcioj , kiuj ebligas al vi redoni la valoron de la sinuso, kosinuso, tanĝanto, kotangente de la argumento, kalkuli la eksponenton de la argumento, generi hazardan nombron, ktp.
- Ĝeneralaj komandoj : NEW_GLOBAL por pravalorigi tutmondan variablon kaj MESSAGE por malfermi mesaĝojn.
Funkcioj por labori kun:
- Kolektoj de objektoj (Kolekto) . Ili permesas vin krei novan kolekton, redoni la bezonatan nombron da elementoj, anstataŭigi aŭ enmeti la deziratajn valorojn.
- Asociaj Tabeloj (MAP) . Helpu krei kaj administri la tabelon.
- Dosieroj – laborante kun tekstaj dosieroj, konservante protokolon de la programo. La dosiernomo povas enhavi la vojon al ĝi.
- Kordoj .
- Grafikaĵoj . Funkcioj GET_CANDLE por aliri kandelajn datumojn kaj GET_CANDLE EX por redoni asocian tabelon.
- Aplikoj . Kreante mendojn kaj sendante ilin al la komerca sistemo.
- Etikedoj . Ilia konstruo kaj instalado sur la diagramo. Aldonante, forigante unu aŭ ĉiujn etikedojn, akiri kaj fiksi parametrojn por specifa etikedo.
Ekzistas ankaŭ funkcioj por:
- Por aliri vicojn de arbitraj QUIK-tabeloj kaj listoj de disponeblaj parametroj . Aliro al laborejaj tablodatenoj. Ĉi tiuj inkluzivas GET_ITEM por redoni la MAP kaj GET_NUMBER_OF por redoni la nombron da enskriboj.
- Por labori kun programebla tabelo . Ĉi tiuj komandoj funkcias sur la PROPRA tablo. Ĝi estas legebla per la normaj funkcioj de la antaŭa alineo kaj per ĉi tiuj funkcioj. Ĉi tiu grupo inkluzivas komandojn por aldoni, modifi kaj forigi vicon kun indekso, kaj tute malplenigi la PROPRAN tablon.
Por akiri valorojn uzu:
- Tabeloj de aktualaj komercoj . Akiro de interŝanĝaj informaj parametroj per GET_PARAM (_EX) komandoj.
- Citfenestroj . Akirante la valorojn de instrumentaj citaĵoj.
- Tabloj de pozicioj por instrumentoj kaj mono . Akiro de datumoj pri kliento, firmao, instrumento, depo-konto per kodo.
Servaj funkcioj – redonante la daton de la nuna komerca sesio, asocia serio, aktuala dato kaj horo, determini la konektan staton, interrompante la kalkulreĝimon.
Sencimigaj programoj
Paŝo-post-paŝa kontrolo de la funkciado de la programo estas farita en la fenestro “Elimigo”. Ĝi estas malfermita el la kunteksta menuo “Komenci kalkulon en sencimiga reĝimo”. Ĝi ankaŭ povas esti malfermita per la komando breakpoint(), kaj la programlinio estos reliefigita ruĝe. La fenestro enhavas kampojn kun programkodo kaj variaj valoroj. Malsupre de la fenestro estas butonoj “Sekva paŝo”, “Daŭrigi ekzekuton”, “Ĉesigi kalkulon”. Premante F5 daŭrigos la ekzekuton de la programo, la kombinaĵo Shift + F5 ĉesos sencimigi, la F10-klavo direktos al la sekva linio.
QPILE aŭ LUA?
LUA estas nova programlingvo por krei komercajn robotojn. Kiel QPILE, ĝi estas efektivigita en la QUIK-terminalo. https://articles.opexflow.com/programming/lua.htm Retejo dediĉita al la disvolviĝo de komercaj robotoj por komercado montras la avantaĝojn de la lingvo LUA super QPILE. Do, ĝi povas funkcii kiel ne-kompilita skripto kaj bajtkodo, ekipita per programiloj kaj objekt-orientitaj programaj mekanismoj. Objektoj skribitaj en aliaj programlingvoj povas esti konektitaj al LUA-programoj. LUA disponigas 8 datumtipojn, inkluzive de metatabloj. La LUA-lingvo estas multfadena, rapida, kaj transakcioj kaj finaj eventoj estas nesinkronaj. LUA estas pli ofta ol QPILE, kaj multaj etendaĵoj estis skribitaj por ĝi.
La QPILE-lingvo nun estas malrekomendita. Fakuloj pri la forumoj rekomendas uzi LUA. Kvankam utilaj kaj efikaj programoj ankoraŭ estas uzataj.
Tamen, la lingvo QPILE estas simpla kompare kun LUA, do se vi ne havas sperton pri programado, estas pli bone elekti QPILE. En ĉi tiu lingvo, vi povas skribi simplan roboton se vi ne bezonas fari kompleksajn kalkulojn.
Kiel krei komercan roboton sur QPILE?
Por krei komercan konsiliston, vi bezonos la jenajn programojn:
- ĜIA Quik.
- Notepad++ kodredaktilo.
- Gvidilo al QPILE.
- XML-aldonaĵo por koda detekto en Notepad++.
Elŝutu kaj instalu ĉi tiujn programojn. Ebligu la lingvan sintakson metante userDefineLang.xml en la vojon C:\Users\User\AppData\Roaming\Notepad++\
La bloko “Uzanto-agordoj” estas kompletigita per la variabloj NOMBRO kaj INTERVALO, kiuj estos uzataj en la funkcio akiri la lastajn N stangojn. La funkcio DATETIME fiksas la daton kaj horon de la servilo, kaj la aktualaj datoj kaj horo funkcioj CURDATE kaj CURTIME estas vokataj de ĝi. La nuna tempo estas konvertita al nombro sur linio 24. Linio 26 fiksas la tempon por la algoritmo funkcii de 10:00:01 ĝis 18:40:00 UTC.
Komercaj robotoj sur QPILE – pretaj solvoj
Moviĝanta averaĝa roboto
Demoroboto ne taŭga por reala komerco.
N. Moroshkin poziciokalkulilo
Programo por kalkuli la nivelojn de la maksimuma permesebla malaltiĝo kaj la celo por longaj kaj mallongaj pozicioj ĉe nunaj postulaj kaj ofertprezoj. La niveloj estas kalkulitaj por 2 valoroj de la pozicio-enira volumo. La roboto trovas la permeseblan pozicion-volumon kiam asignas haltan ordon en unu paŝo de la malferma prezo kun la kalkulo malfermi pozicion en la direkto de la trinkejo-kresko. La trovitaj niveloj estas eniritaj en la fina fenestro, kiuj poste estas reflektitaj en la prezo-diagramo. Transakcioj estas fiksitaj por antaŭfiksita instrumento. Se pozicio estas malfermita, la roboto komencas kalkuli siajn parametrojn. Depende de la ŝanĝo en pozicio, la asignitaj ordoj estas alĝustigitaj.
Volumo-filtrilo
Portfolio-roboto por kalkuli la aritmetikan meznombre de la volumeno por kandeloj kaj kompari ĝin kun la averaĝa produkto per la koeficiento X. Funkcias ĝuste kun grafikaj grafikaĵoj en la elektita tempoperiodo.
Opcioj grekoj
Portfolio por kalkuli kaj montri “grekoj” de ebloj. Ĝi diferencas de la metodo Black-Showers.
TRIX komerca roboto por QUIK
La programo baziĝas sur la TRIX Indikilo. Kiam la indikilo fermiĝas super la nula linio, la specifita nivelo, la roboto prenas la Longan pozicion. La pozicio estas fermita per Take Profit, Stop Loss aŭ trailing stop.
M4-antaŭprocesoro
Programo por labori kun QPILE kaj Lua. Inkluzivas arkivojn kun ruleblaj dosieroj, dokumentado kaj DLL-dosieroj kun regula esprimo-analizo. Por uzi la programon, vi devas malpaki la ruleblajn dosierojn kaj meti regexp2 en la vojon C:\Windows. Lecionoj pri QPILE por QUIK: https://youtu.be/vMTXwDUujpI Instalado de skripto sur QPILE en la Quik-terminalo: https://youtu.be/0B7qL8Svh7I Sekcio pri github kiu priskribas la uzon de la QPILE algoritma lingvo enkonstruita en la QUIK-sistema laborstacio situanta ĉe la ligilo – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE estas malaktuala lingvo, sed sufiĉe simpla kaj alirebla eĉ por komencaj komercistoj. Komercaj robotoj kaj programoj, kiuj pruvis sin dum longa tempo, daŭre laboras pri ĝi. Tamen, por pli kompleksaj taskoj estas pli bone uzi LUA.
0к