QPILE hizkuntza algoritmikoa QUIK-rako merkataritza-robotak programatzeko.
Negoziazio-robotak hizkuntza zehatz batean idatz daitezke, programa-kodearen antzera. QPILE da horietako bat, artikuluak hizkuntza hau kontuan hartuko du, QPILE eta
LUA hizkuntzak alderatuko ditu eta roboten adibideak ere emango ditu hizkuntza honetan.
- QPILEri buruzko informazio orokorra
- Mahai batekin lan egitea
- QPILE eraikuntzak
- Datu motak
- Adierazpenak
- Funtzioak
- Arazketa-programak
- QPILE ala LUA?
- Nola sortu merkataritza-robot bat QPILE-n?
- Negoziazio robotak QPILE-n – prest egindako irtenbideak
- Batez besteko robot mugikorra
- N. Moroshkin posizio kalkulagailua
- Bolumen-iragazkia
- Aukerak greziarrak
- TRIX merkataritza-robota QUIK-rako
- M4 aurreprozesadorea
QPILEri buruzko informazio orokorra
QPILE QUIK Interfaze Programagarria eta Ingurune Logikoa izendatzen duen laburdura da.
QUIK lan-estazioek interpretatutako komando sorta bat da. Batez ere balore-zorroen prezioa kalkulatzeko erabiltzen da. Hizkuntza hauetarako ere erabiltzen da:
- Broker-eko mahaigainean eta haien zorroetan bezeroen aktiboen prezioaren birkalkulu dinamikoa. Azken kasu horretan, haien prezio osoa ere kalkulatzen da;
- falta diren adierazleak aurkitzea beren algoritmo eta datuak erabiliz marjina-mailegurako;
- merkataritza-estrategia egokia garatzea.
Hizkuntzak taularen egitura deskribatzen du: zutabeen eta errenken izendapena, formulak. Azken honetan, eragiketa matematikoak, aldagaiak, beste tauletako datuak erabil daitezke kalkulurako. QUIK zerbitzaritik edo erabiltzailearen diskotik kargatutako programa-kodea hizkuntza interpreteak prozesatzen du, eta horrek balioak kalkulatzen ditu formuletan. Programa bateko taulek datu-iturburu bakarra dute, baina kalkuluak ez dira bikoizten eta ez dute sistemaren eraginkortasunean eragiten. QUIK taulekin lan egitean, QPILEko taulek funtzio estandarrak dituzte. QUIK lantokian QPILE kodea araztaile batekin hornituta dago. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Hizkuntzari esker, egitura jakin bateko taula berriak deskribatzeko, balio jakin batzuekin gelaxkak nabarmendu, adierazpen matematiko eta logikoetan oinarritutako eremuak kalkulatzeko aukera ematen du. Erabiltzaileak jakinarazpenak jasoko ditu soinu-seinale edo testu-mezu moduan. QPILEko taulak editatu, inprimatu, kopiatu, esportatu daitezke ODBC eta DDE zerbitzariaren bidez. Hasierako datuak QUIK tauletakoak dira:
- transakzioak, exekuziorako eta inpertsonaletarako barne;
- aginduak, stop-aginduak barne, kontratazioko salerosketetarako eta aginduetarako – likidazio-eskaintzen negozioetarako txostenak;
- “bezero zorroa”, “erosi/saldu”
- Parte-hartzaileen posizioen datuak diruaren, merkataritza-kontuen, tresnaren arabera.
QPILEn oinarritutako taulak ezin dira testu-fitxategi batera kopiatu testuinguru-menuaren bidez eta analisi teknikoko sistemetara esportatu, eta diagramak ezin dira haietan oinarrituta garatu. QPILEn oinarritutako taulak ezin dira iragazi edo ordenatu.
Mahai batekin lan egitea
Programaren kodea kargatzeko, zerbitzuen menua hautatu behar duzu, ondoren QPILE scriptak. Ctrl+F11 konbinazioa ere erabil dezakezu. “Gehitu” sakatu eta nahi duzun fitxategia hautatu behar duzu. .qpl luzapena du eta bere izena Script erabilgarrien zerrendan agertuko da.
Programan akatsen bat badago, sistemak jakinarazpen bat egingo du “Mezuen leihoan”, fitxategi akastunaren izena eta errorea duen lerro-zenbakia jasoko dituena. Fitxategian hutsegiterik aurkitu ezean, datu hauek adieraziko dira eremuetan:
- taularen izena;
- zutabe eta bezero kopurua;
- identifikatzaileen eta bezeroen zerrenda;
- parametroen zerrenda eta fitxategiaren iturburu kodea.
“Deskargatu lokalean” botoiak taula fitxategi batetik ateratzeko aukera emango du, eta “Kargatu zerbitzarira” programa zerbitzarira bidaliko du, erabiltzaile guztiek sar dezaten. Taula bat sortzeko, egin klik Sortu taula. “Eskuragarri dauden scripts” atalean, hautatu exekutatu behar duzun programa, ezarri lerro kopurua “Bezeroen iragazkia” bidez, zehaztu behar diren zutabeak eta haien sekuentzia.
Kalkulua pausatu eta berriro hastea, kalkulua berriro hastea eta arazketa moduan, deskribapena fitxategi batean gordetzea, formula erakustea eta script-parametroak eskuragarri daude testuinguru-menuan.
QPILE eraikuntzak
Datu motak
- Katea – katea.
- Bikoitza koma mugikorreko zenbaki bat da.
- Bilduma – bilduma bat.
- Mapa – array elkartua – gakoen bidez informazioa lortzeko aukera ematen duen bikoteen sekuentzia.
Adierazpenak
Batuketa, kenketa, biderketa, zatiketa eragiketa aritmetikoak aplikatzen dira. “eta”, “edo” esamolde logikoak ere erabiltzen dira, berdin, gehiago, gutxiago, desberdintasun, baldintzazko eraikuntza “baldin… orduan…”.
Funtzioak
Funtzioak programako edozein tokitan egon daitezke eta izen desberdinak izan ditzakete. Guztira, 18 funtzio eta funtzio matematiko-talde daude eskuragarri taulen eta parametroen balioak, matrize elkartuak, taulen zerrenda eta beste zeregin batzuk lortzeko. Lehen maila:
- Argumentuaren sinua, kosinua, tangentea, kotangentea itzultzeko, argumentuaren berretzailea kalkulatzeko, ausazko zenbaki bat sortzeko aukera ematen duten funtzio matematikoak , etab.
- Komando orokorrak : NEW_GLOBAL aldagai global bat hasieratzeko eta MESSAGE mezuak irekitzeko.
Lan egiteko funtzioak:
- Objektu bildumak (Colección) . Bilduma berri bat sortzeko, beharrezko elementu kopurua itzultzeko, nahi diren balioak ordezkatzeko edo txertatzeko aukera ematen dute.
- Array elkartuak (MAP) . Lagundu array-a sortzen eta kudeatzen.
- Fitxategiak – testu-fitxategiekin lan egitea, programaren erregistro-erregistroa mantentzea. Fitxategi-izenak bere bidea izan dezake.
- Kateak .
- Grafikoak . GET_CANDLE funtzioak kandelen datuak atzitzeko eta GET_CANDLE EX funtzioak matrize elkartu bat itzultzeko.
- Aplikazioak . Eskaerak sortzea eta merkataritza-sistemara bidaltzea.
- Etiketak . Haien eraikuntza eta instalazioa taulan. Etiketa bat edo guztiak gehitzea, ezabatzea, etiketa zehatz baterako parametroak lortzea eta ezartzea.
Funtzioak ere badaude:
- QUIK taula arbitrarioen errenkadak eta eskuragarri dauden parametroen zerrendetan sartzeko . Lantokiko taularen datuetarako sarbidea. Besteak beste, GET_ITEM MAPA itzultzeko eta GET_NUMBER_OF sarrera kopurua itzultzeko.
- Taula programagarri batekin lan egiteko . Komando hauek OWN taulan funtzionatzen dute. Aurreko paragrafoko funtzio estandarren bidez eta funtzio hauen bidez irakur daiteke. Talde honek indize batekin errenkada bat gehitzeko, aldatzeko eta ezabatzeko komandoak barne hartzen ditu, eta OWN taula guztiz garbitzeko.
Balioak lortzeko erabili:
- Egungo lanbideen taulak . Truke informazioaren parametroak lortzea GET_PARAM (_EX) komandoak erabiliz.
- Aipatu leihoak . Tresnen aurrekontuen balioak lortzea.
- Instrumentuen eta diruaren araberako posizioen taulak . Bezero, enpresa, tresna, depo kontu baten datuak kode bidez lortzea.
Zerbitzu-funtzioak – uneko merkataritza-saioaren data, serie elkartua, uneko data eta ordua itzultzea, konexio-egoera zehaztea, kalkulu modua etetea.
Arazketa-programak
Programaren funtzionamenduaren pausoz pauso kontrola “Araztu” leihoan egiten da. “Hasi kalkulua arazketa moduan” laster-menutik irekitzen da. Breakpoint() komandoarekin ere ireki daiteke, eta programaren lerroa gorriz nabarmenduko da. Leihoak programaren kodea eta balio aldagaiak dituzten eremuak ditu. Leihoaren behealdean “Hurrengo urratsa”, “Jarraitu exekuzioa”, “Stop kalkulua” botoiak daude. F5 sakatzean programaren exekuzioan jarraituko da, Shift + F5 konbinazioak arazketa geldituko du, F10 tekla hurrengo lerrora zuzenduko da.
QPILE ala LUA?
LUA merkataritza-robotak sortzeko programazio-lengoaia berria da. QPILE bezala, QUIK terminalean inplementatzen da. https://articles.opexflow.com/programming/lua.htm Negoziaziorako roboten garapenari eskainitako gune batek LUA hizkuntzaren abantailak erakusten ditu QPILEren aldean. Beraz, konpilatu gabeko script eta bytecode gisa funtziona dezake, garatzaile-tresnekin eta objektuetara zuzendutako programazio-mekanismoekin hornituta. Beste programazio-lengoaia batzuetan idatzitako objektuak LUA programetara konekta daitezke. LUAk 8 datu mota eskaintzen ditu, metataulak barne. LUA hizkuntza hari anitzekoa da, azkarra eta transakzioak eta terminal-gertaerak asinkronoak dira. LUA QPILE baino ohikoagoa da, eta luzapen asko idatzi dira horretarako.
QPILE hizkuntza zaharkituta dago. Foroetako adituek LUA erabiltzea gomendatzen dute. Oraindik programa erabilgarriak eta eraginkorrak erabiltzen ari diren arren.
Hala ere, QPILE lengoaia sinplea da LUArekin alderatuta, beraz, programazioan esperientziarik ez baduzu, hobe da QPILE aukeratzea. Hizkuntza honetan, robot sinple bat idatz dezakezu kalkulu konplexurik egin behar ez baduzu.
Nola sortu merkataritza-robot bat QPILE-n?
Merkataritza aholkulari bat sortzeko, programa hauek beharko dituzu:
- ITS Quik.
- Notepad++ kode editorea.
- QPILErako gida.
- XML plugina Notepad++-n kodea detektatzeko.
Deskargatu eta instalatu programa hauek. Gaitu hizkuntzaren sintaxia jarriz userDefineLang.xml C:\Users\User\AppData\Roaming\Notepad++\ bidean.
Lehenik eta behin, sor dezagun hurrengo merkataritza estrategia. Gidoiak Hi eta Low kalkulatu beharko lituzke azken kandeletarako minuturo, egiaztatu tresnaren egungo prezioa. Posizio bat behar den norabidean irekitzen da, baldin eta tresnaren prezioa aldirako balio maximoa edo minimora iristen bada. Laburreko seinalea jasotzen denean, posizio luzea automatikoki ixten da. Robotak GAZP tresna erabiltzen du, denbora-tartea 1 min-ean ezartzen da. Hi-baxua neurtzeko sakonera 5 kandelatan ezartzen da. Luzea sartzeko, arau bat ezartzen da eta aldiko balio maximoaren egungo prezioaren ebakidura. Robotak Labur sartuko du egungo prezioak 5 kandela hauen gutxieneko balioa gainditzen badu. Idatzi kode bloke bat Notepad++-en oinarrizko ezarpenekin eta zerbitzariaren data eta orduarekin. Kode hau beheko irudian agertzen da.
Lehen 4 kode-lerroek programaren goiburua osatzen dute. 6. eta 44. lerroen artean programaren gorputza dago, eta bertan robotaren edukia dago. 7 – 12 lerroek erabiltzailearen ezarpenak dituzte, tresnaren, taldearen eta bezeroaren kodeak eta MICEXeko kontu-zenbakia barne. Balio hauek ez dira aldatzen programaren exekuzioan. 13 – 16 lerroak aldagaien hasierako balioak dira. Iterazio-pasaldi bakoitzean zerora berrezarriko dira. 17 – 21 lerroek zerbitzariaren data eta ordua erabiltzeko adierazpena dute. Datu hauek DATETIME funtziora pasatzen dira eta testu formatura bihurtzen dira. 22 – 29 lerroek jasotako datuak taulara bidaltzen dituzte. Kodea gorde behar da eta qpl luzapena zehaztu behar da.
Ireki programa QUIK-en Ctrl+F10 sakatuz eta sortutako qpl fitxategia hautatuz. Erabili Ctrl+F11 konbinazioa “Portfolioekin lan egin” leihoa irekitzeko eta zorroa kalkulatzeko epea 5 minututan ezarri. Sakatu Ctrl+F12 taulan bistaratzeko zutabeak ezartzeko. Irudian robotaren lanaren emaitza erakusten da.
Gehi ditzagun funtzio eta baldintza gehiago gure programari.
“Erabiltzaileen ezarpenak” blokea ZENBAKIA eta TARTEA aldagaiekin osatzen da, azken N barrak lortzeko funtzioan erabiliko direnak. DATETIME funtzioak zerbitzariaren data eta ordua ezartzen ditu, eta uneko data eta ordua CURDATE eta CURTIME funtzioak bertatik deitzen dira. Uneko ordua 24. lerroko zenbaki batera bihurtzen da. 26. lerroak algoritmoa 10:00:01etik 18:40:00 UTCra exekutatzeko ordua ezartzen du.
Gehienetan, adierazleak, osziladoreak, kalkulu estatistikoak taulako azken N kandelek kalkulatzen dituzte. QPILEk ez du duela N aldiko kandela kopurua biltzeko funtziorik, baina bada GET_CANDLE funtzio bat taulako kandelak data eta orduaren arabera testu formatuan sartzen dituena. Gure kodeak azken N barrak OHLC() lortzeko funtzioa dauka. Bilduma bat sortzen du BILDUMA zerrendan habiaratuta dauden azken kandelen parametroekin. Programak TARTEA balioa egiaztatzen du, eta 0…60 barrutian sartzen ez bada, mezu bat bistaratuko da balioa ez datorrela baimendutako barrutiarekin. Kandelekin MAPA bilduma bat sortzen da 88. lerroan. A FOR begizta diagrama behar den sakonerara aztertzen du, INTERVAL urratsarekin kandela berritik zaharrera. 90. lerroan, zikloa deklaratu ondoren, robotak tarte bat atzera egiten du. GET_CANDLE-rekin kandela bat jasotzen duzunean, jarri BARLIST bilduman INSERT_COLLECTION_TEAM funtzioa erabiliz. OHLC() komandoaren eragiketaren ondorioz, BARLIST tresna-diagramako azken kandelekin betetzen da ZENBAKIAren zenbatekoan. Bildumako elementu kopurua GET_COLLECTION_COUNT() komandoak eskatzen du eta BARCOUNT aldagaiak ematen du. Zerbitzariaren data, ordua, INSTRUMENT eta BARCOUNT aldagaien balioak SET_VALUE() funtzioak OUTPUT-en ematen ditu. Array hau CREATE_MAP() komandoak sortzen du. Datuak taula pertsonalizatuan sartzen dira, beheko argazkian ikus daitekeena. INSTRUMENT eta BARCOUNT aldagaien balioak SET_VALUE() funtzioak OUTPUT-en ematen ditu. Array hau CREATE_MAP() komandoak sortzen du. Datuak taula pertsonalizatuan sartzen dira, beheko argazkian ikus daitekeena. INSTRUMENT eta BARCOUNT aldagaien balioak SET_VALUE() funtzioak OUTPUT-en ematen ditu. Array hau CREATE_MAP() komandoak sortzen du. Datuak taula pertsonalizatuan sartzen dira, beheko argazkian ikus daitekeena.
Negoziazio robotak QPILE-n – prest egindako irtenbideak
Batez besteko robot mugikorra
Demo robota ez da benetako merkataritzarako egokia.
Robotak 5 parametro ditu. DATE, ORDUA, PRICE identifikatzaileen balioak 30. mailan ezarrita daude. MUGAN eta TP identifikatzaileak zero zehaztasunarekin ezartzen dira. Robot-kodea QPILE azpian idatzitako batez besteko mugikorrean:
N. Moroshkin posizio kalkulagailua
Onartutako gehieneko erretratuaren mailak eta posizio luze eta laburretarako xedea kalkulatzeko programa bat, egungo eskaera eta eskaintza prezioetan. Mailak posizioaren sarrera-bolumenaren 2 balioetarako kalkulatzen dira. Robotak onartzen duen posizio-bolumena aurkitzen du geldialdi-eskaera bat esleitzean irekiera preziotik urrats batean posizio bat irekitzearen kalkuluarekin barra-hazkundearen norabidean. Aurkitutako mailak terminaleko leihoan sartzen dira, eta gero prezioen taulan islatzen dira. Transakzioak tresna jakin baterako finkatzen dira. Posizio bat irekitzen bada, robota bere parametroak kalkulatzen hasten da. Posizio aldaketaren arabera, esleitutako aginduak doitzen dira.
Bolumen-iragazkia
Kandelen bolumenaren batez besteko aritmetikoa kalkulatzeko eta X koefizientearen bidez batez besteko produktuarekin alderatzeko, ondo funtzionatzen du hautatutako denbora-tartean marraztutako diagramekin.
Aukerak greziarrak
Aukeren “greziarrak” kalkulatzeko eta bistaratzeko zorroa. Black-Showers metodotik desberdina da.
TRIX merkataritza-robota QUIK-rako
Programa TRIX adierazlean oinarritzen da. Adierazlea zero lerroaren gainetik ixten denean, zehaztutako mailatik, robotak Long posizioa hartzen du. Posizioa Take Profit, Stop Loss edo trailing stop bidez ixten da.
M4 aurreprozesadorea
QPILE eta Lua-rekin lan egiteko programa. Fitxategi exekutagarriak, dokumentazioa eta DLL fitxategiak barne hartzen ditu adierazpen erregularrak analizatzeko. Programa erabiltzeko, fitxategi exekutagarriak deskonprimitu eta regexp2 jarri behar dituzu C:\Windows bidea. QPILEri buruzko ikasgaiak QUIK-erako: https://youtu.be/vMTXwDUujpI QPILE-n script bat instalatzea Quik terminalean: https://youtu.be/0B7qL8Svh7I Github-en atala, QPILE hizkuntza algoritmoaren erabilera deskribatzen duena. QUIK sistemaren lan-estazioa estekan dago – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE hizkuntza zaharkitua da, baina nahiko erraza eta eskuragarria dendari hasiberrientzat ere. Denbora luzez frogatu duten merkataritza robotek eta programek lanean jarraitzen dute. Hala ere, zeregin konplexuagoetarako hobe da LUA erabiltzea.
0к