Olulimi lwa algorithmic QPILE olw’okukola pulogulaamu za roboti ezisuubula ku QUIK.
Roboti ezisuubula zisobola okuwandiikibwa mu lulimi olugere, okufaananako ne program code. QPILE y’emu ku zo, ekiwandiiko kijja kulowooza ku lulimi luno, geraageranya ennimi za QPILE ne
LUA , era n’okuwa ebyokulabirako bya robots mu lulimi luno.
- Ebikwata ku QPILE mu bulambalamba
- Okukola n’emmeeza
- QPILE ezimba
- Ebika bya data
- Ebigambo Ebigambo
- Emirimu
- Okulongoosa pulogulaamu
- QPILE oba LUA?
- Okola otya roboti y’okusuubula ku QPILE?
- Okusuubula roboti ku QPILE – eby’okugonjoola ebitegekeddwa
- Roboti eya bulijjo etambula
- N. Moroshkin ekibalirizi ky’ekifo
- Okusengejja eddoboozi
- Options Abayonaani
- TRIX esuubula roboti ya QUIK
- M4 ekintu ekisooka okukola
Ebikwata ku QPILE mu bulambalamba
QPILE kifupi ekitegeeza QUIK Programmable Interface ne Logic Environment.
Guno gwe muddirirwa gw’ebiragiro ebivvuunulwa ekifo ky’okukoleramu ekya QUIK. Okusinga kikozesebwa okubala ebbeeyi y’ebifo eby’emiwendo gy’ebintu. Olulimi luno era lukozesebwa ku:
- okuddamu okubala okw’amaanyi okw’ebbeeyi y’eby’obugagga bya bakasitoma ku mmeeza ya broker ne mu bifo byabwe. Mu mbeera esembayo, omuwendo gwazo gwonna nagwo guddamu okubalirirwa;
- okuzuula ebiraga ebibulamu nga bakozesa algorithms zaabwe ne data for margin lending;
- okukola enkola entuufu ey’okusuubula.
Olulimi lunnyonnyola ensengeka y’emmeeza: okulonda empagi n’ennyiriri, ensengekera. Mu kisembayo, emirimu gy’okubala, enkyukakyuka, data okuva mu bipande ebirala bisobola okukozesebwa okubala. Koodi ya pulogulaamu etikkibwa okuva ku seva ya QUIK oba okuva ku disiki y’omukozesa ekolebwa omuvvuunuzi w’olulimi, abalirira emiwendo mu nsengekera. Emmeeza za pulogulaamu emu zirina ensibuko ya data emu, naye okubalirira tekuddibwamu era tekukosa bulungibwansi bwa nkola. Nga okola n’emmeeza za QUIK, emmeeza ku QPILE zirina emirimu egy’omutindo. QUIK mu kifo w’okolera eriko ekintu ekiyitibwa QPILE code debugger. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Olulimi lukusobozesa okunnyonnyola emmeeza empya ezirina ensengeka eweereddwa, okulaga obutoffaali obulina emiwendo egimu, okubala ennimiro okusinziira ku bigambo eby’okubala n’eby’ensonga. Omukozesa ajja kufuna okumanyisibwa mu ngeri y’akabonero k’amaloboozi oba obubaka ku ssimu. Emmeeza ku QPILE zisobola okulongoosebwa, okukubibwa, okukoppebwa, okufulumizibwa nga ziyita mu ODBC ne DDE server. Data esooka eva mu bipande bya QUIK:
- okutunda ebintu, omuli okukola n’okutali kwa muntu;
- ebiragiro, omuli n’okuyimiriza, ku busuubuzi obutali ku kkawunta n’ebiragiro – lipoota ku busuubuzi mu ddiiru z’okusasula;
- “ekifo kya bakasitoma”, “okugula/okutunda”.
- data okuva mu bifo by’okwetabamu nga ssente, akawunti z’okusuubula, ekintu.
Emmeeza ezesigamiziddwa ku QPILE teziyinza kukoppololwa mu fayiro y’ebiwandiiko nga ziyita mu menu y’ensonga ne zifulumizibwa mu nkola z’okwekenneenya eby’ekikugu, era chati teziyinza kukolebwa nga zeesigamiziddwa ku zo. Emmeeza ezesigamiziddwa ku QPILE teziyinza kusengekebwa oba kusunsulwa.
Okukola n’emmeeza
Okutikka koodi ya pulogulaamu, olina okulonda menu y’empeereza, olwo scripts za QPILE. Osobola n’okukozesa omugatte Ctrl+F11. Oluvannyuma lw’olina okunyiga “Add” n’olonda fayiro gy’oyagala. Kirina ekigatta .qpl era erinnya lyayo lijja kulabika mu lukalala lwa Available Scripts.
Singa wabaawo ensobi mu pulogulaamu, enkola ejja kukola okumanyisibwa mu “Eddirisa ly’Obubaka”, ejja okubaamu erinnya lya fayiro eriko obuzibu n’ennamba ya layini eriko ensobi. Singa tewali kulemererwa kwazuuliddwa mu fayiro, data eno wammanga ejja kulagibwa mu nnimiro:
- erinnya ly’emmeeza;
- omuwendo gw’emiko ne bakasitoma;
- olukalala lw’abamanyisa abantu ne bakasitoma;
- olukalala lwa parameters ne source code ya fayiro.
Akabonero ka “Download locally” kajja kukusobozesa okufuna emmeeza okuva mu fayiro, era “Upload to server” ejja kusindika pulogulaamu ku seva abakozesa bonna basobole okugiyingira. Okukola emmeeza, nyweza ku Tonda Emmeeza. Mu “Available scripts” londa pulogulaamu gy’olina okukola, teeka omuwendo gwa layini okuyita mu “Filter of clients”, manya ennyiriri ezeetaagisa n’omutendera gwazo.
Okuyimiriza n’okuddamu okubala, okuddamu okutandika okubala era mu mbeera y’okulongoosa, okutereka ennyonyola mu fayiro, okulaga ensengekera, n’ebipimo by’ekiwandiiko biri mu menu y’ensonga.
QPILE ezimba
Ebika bya data
- Omuguwa – omuguwa.
- Double ye namba ya nsonga etengejja.
- Okukunganya – okukung’aanya.
- Maapu – ensengeka ekwatagana – omutendera gwa babiri babiri ekusobozesa okufuna amawulire nga okozesa ekisumuluzo.
Ebigambo Ebigambo
Emirimu gy’okubala egy’okugatta, okuggyako, okukubisaamu, okugabanya gikozesebwa. Ebigambo ebitegeerekeka “ne”, “oba”, byenkana, ebisingawo, bitono, obutafaanagana, okuzimba okw’obukwakkulizo “singa … olwo …” nabyo bikozesebwa.
Emirimu
Emirimu gisobola okusangibwa wonna mu pulogulaamu era nga girina amannya ag’enjawulo. Okutwalira awamu, ebibinja 18 eby’emirimu n’emirimu gy’okubala biriwo okufuna emiwendo gy’emmeeza ne paramita, ensengekera ezikwatagana, olukalala lw’emmeeza, n’emirimu emirala. Ekibiina ekisooka:
- Emirimu gy’okubala egikusobozesa okuzza omuwendo gwa sine, cosine, tangent, cotangent ya argument, okubala exponent ya argument, okukola namba eya random n’ebirala.
- Ebiragiro ebya bulijjo : NEW_GLOBAL okutandikawo enkyukakyuka ey’ensi yonna ne MESSAGE okuggulawo obubaka.
Emirimu gy’olina okukola nayo:
- Okukung’aanya ebintu (Okukung’aanya) . Zikusobozesa okukola okukung’aanya okupya, okuzzaayo omuwendo gw’ebintu ebyetaagisa, okukyusa oba okuyingiza emiwendo gy’oyagala.
- Ensengeka ezikwatagana (MAP) . Yamba okukola n’okuddukanya ensengekera.
- Fayiro – okukola ne fayiro z’ebiwandiiko, okukuuma log-log ya pulogulaamu. Erinnya lya fayiro liyinza okubaamu ekkubo erigenda mu yo.
- Ennyiriri .
- Ebifaananyi ebiraga ebifaananyi . Emirimu GET_CANDLE okuyingira mu data ya kandulo ne GET_CANDLE EX okuzzaayo ensengekera ekwatagana.
- Okusaba . Okukola orders n’okuziweereza mu nkola y’okusuubula.
- Tags . Okuzizimba n’okuziteeka ku kipande. Okwongera, okusazaamu akabonero kamu oba gonna, okufuna n’okuteekawo ebipimo by’akabonero akagere.
Waliwo n’emirimu egy’okukola:
- Ku lw’okuyingira mu nnyiriri z’emmeeza za QUIK ezitali za bulijjo n’enkalala za parameters eziriwo . Okufuna data y’emmeeza y’ekifo w’okolera. Mu bino mulimu GET_ITEM okuzzaayo MAP ne GET_NUMBER_OF okuzzaayo omuwendo gw’ebiyingiziddwa.
- Okukola n’emmeeza esobola okuteekebwa mu pulogulaamu . Ebiragiro bino bikola ku mmeeza OWN. Kisomebwa emirimu egy’omutindo okuva mu katundu akayise n’emirimu gino. Ekibinja kino kirimu ebiragiro eby’okugattako, okukyusa n’okusazaamu olunyiriri olulina index, n’okugogola ddala emmeeza OWN.
Okufuna emiwendo kozesa:
- Emmeeza z’obusuubuzi obuliwo kati . Okufuna ebipimo by’amawulire ag’okuwanyisiganya nga okozesa ebiragiro bya GET_PARAM (_EX).
- Amadirisa g’okujuliza . Okufuna emiwendo gy’ebijuliziddwa ebikozesebwa.
- Emmeeza z’ebifo okusinziira ku bivuga ne ssente . Okufuna data ku kasitoma, kkampuni, ekintu, akawunti ya depo nga okozesa code.
Emirimu gy’empeereza – okuzzaayo olunaku lw’olutuula lw’okusuubula oluliwo kati, omuddirirwa gw’okukwatagana, olunaku n’essaawa ebiriwo kati, okusalawo embeera y’okuyungibwa, okusalako engeri y’okubalirira.
Okulongoosa pulogulaamu
Okufuga mutendera ku mutendera ku nkola ya pulogulaamu kukolebwa mu ddirisa lya “Debug”. Kiggulwawo okuva mu menu y’ensonga “Tandika okubala mu mbeera y’okulongoosa”. Era esobola okuggulwawo n’ekiragiro breakpoint(), era layini ya pulogulaamu ejja kulagibwa mu langi emmyufu. Eddirisa lirimu ennimiro eziriko koodi ya pulogulaamu n’emiwendo egy’enkyukakyuka. Wansi w’eddirisa waliwo obutambi “Eddaala eriddako”, “Weeyongere okukola”, “Yimiriza okubala”. Okunyiga F5 kijja kugenda mu maaso n’okukola pulogulaamu, omugatte Shift + F5 gujja kulekera awo okulongoosa, ekisumuluzo kya F10 kijja kulungamya ku layini eddako.
QPILE oba LUA?
LUA lulimi lupya lwa pulogulaamu olw’okukola roboti ezisuubula. Okufaananako ne QPILE, eteekebwa mu nkola mu QUIK terminal. https://articles.opexflow.com/programming/lua.htm Omukutu oguweereddwayo okukola roboti ezisuubula okusuubula gulaga ebirungi ebiri mu lulimi lwa LUA okusinga QPILE. Kale, esobola okukola nga script ne bytecode ezitali zikuŋŋaanyiziddwa, nga eriko ebikozesebwa by’abakugu n’enkola za pulogulaamu ezigenderera ebintu. Ebintu ebiwandiikiddwa mu nnimi endala eza pulogulaamu bisobola okuyungibwa ku pulogulaamu za LUA. LUA egaba ebika bya data 8, omuli ne metatables. Olulimi lwa LUA lulina emiguwa mingi, lwangu, era okutunda n’ebintu ebibaawo mu nkomerero biba bya asynchronous. LUA esinga ku QPILE, era ebigaziyizibwa bingi biwandiikiddwa ku lwayo.
Olulimi lwa QPILE kati luweddewo. Abakugu ku forums bawa amagezi okukozesa LUA. Wadde nga pulogulaamu ez’omugaso era ezikola obulungi zikyakozesebwa.
Wabula olulimi lwa QPILE lwangu bw’ogeraageranya ne LUA, kale bw’oba tolina bumanyirivu mu kukola pulogulaamu, kirungi okulonda QPILE. Mu lulimi luno, osobola okuwandiika roboti ennyangu bw’oba teweetaaga kukola kubalirira kuzibu.
Okola otya roboti y’okusuubula ku QPILE?
Okukola omuwabuzi ku by’obusuubuzi, ojja kwetaaga pulogulaamu zino wammanga:
- EKYAYO Quik.
- Omulongoosa wa koodi ya Notepad++.
- Obulagirizi ku QPILE.
- XML plugin ey’okuzuula koodi mu Notepad++.
Wano wefunire pulogulaamu zino oziteekemu. Ssobozesa ensengeka y’olulimi ng’oteeka userDefineLang.xml mu kkubo C:\Users\User\ AppData\Roaming\Notepad++\ .
Okusooka, ka tukole enkola eno wammanga ey’okusuubula. Script erina okubala Hi ne Low ku candle ezisembayo buli ddakiika, kebera bbeeyi y’ekivuga eriwo kati. Ekifo kiggulwawo mu kkubo eryetaagisa singa bbeeyi y’ekintu etuuka ku muwendo ogusinga oba ogusinga obutono ogw’ekiseera ekyo. Siginini y’obumpi bw’efunibwa, ekifo ekiwanvu kiggalwawo mu ngeri ey’otoma. Roboti ekozesa ekintu kya GAZP, ekiseera kiteekebwa ku ddakiika 1. Obuziba bw’okupima hi-low buteekebwa ku kandulo 5. Okuyingira Long, etteeka liteekebwawo era nkulungo ya bbeeyi eriwo kati ey’omuwendo ogusinga obunene ogw’ekiseera. Roboti ejja kuyingira Short singa bbeeyi eriwo kati esala omuwendo ogusinga obutono ku kandulo zino 5. Wandiika block ya code mu Notepad++ nga olina ensengeka ezisookerwako n’olunaku n’essaawa ya server. Koodi eno eragiddwa mu kifaananyi wansi.
Ennyiriri 4 ezisooka eza koodi zikola omutwe gwa pulogulaamu. Wakati wa layini 6 ne 44 waliwo omubiri gwa pulogulaamu, ogulimu ebirimu mu roboti. Ennyiriri 7 – 12 zirimu ensengeka z’abakozesa, ezirimu koodi z’ekintu, ekibiina ne kasitoma, ennamba ya akawunti ku MICEX. Emiwendo gino tegikyuka nga pulogulaamu ekola. Ennyiriri 13 – 16 ze miwendo egy’olubereberye egy’enkyukakyuka. Zijja kuddamu okuteekebwa ku zero ku buli iteration pass. Ennyiriri 17 – 21 zirimu ekiraga okukozesa olunaku n’essaawa ya seva. Data eno eyisibwa mu mulimu gwa DATETIME era n’ekyusibwa mu nkola y’ebiwandiiko. Ennyiriri 22 – 29 ziweereza data efunibwa ku mmeeza. Koodi erina okuterekebwa era ekigatta qpl kirina okulagibwa.
Ggulawo pulogulaamu mu QUIK ng’onyiga Ctrl+F10 n’olonda fayiro ya qpl ekoleddwa. Kozesa omugatte gwa Ctrl+F11 okuggulawo eddirisa lya “Kola ne Portfolios” era oteeke ekiseera ky’okubalirira portfolio ku ddakiika 5. Nywa Ctrl+F12 okuteeka ennyiriri okulaga mu kipande. Ekifaananyi kiraga ebyavudde mu mulimu gwa roboti eno.
Ka twongereko emirimu n’obukwakkulizo obulala mitono ku pulogulaamu yaffe.
Bbulooka ya “User settings” eyongerwako enkyukakyuka za NUMBER ne INTERVAL, ezigenda okukozesebwa mu mulimu gw’okufuna ebbaala N ezisembayo. Omulimu gwa DATETIME guteeka olunaku n’essaawa za seva, era emirimu gy’olunaku n’essaawa ebiriwo kati CURDATE ne CURTIME giyitibwa okuva mu yo. Obudde obuliwo bukyusibwa ne bufuuka ennamba ku layini 24. Layini 26 eteeka obudde algorithm okutambula okuva ku ssaawa 10:00:01 okutuuka ku ssaawa 18:40:00 UTC.
Ebiseera ebisinga, ebiraga, ebiwujjo, okubalirira kw’ebibalo bibalirirwa emimuli N egisembayo egy’ekipande. QPILE terina mulimu gwa kukungaanya muwendo gwa kandulo N ebiseera emabega nga bwe kiri, naye waliwo omulimu gwa GET_CANDLE oguyingira ku kandulo ku kipande okusinziira ku lunaku n’essaawa mu nkola y’ekiwandiiko. Code yaffe erimu omulimu okufuna N bars ezisembayo OHLC(). Ekola okukung’aanya nga kuliko parameters za candles ezisembayo eziteekeddwa mu lukalala lwa COLLECTION. Programu ekebera omuwendo gwa INTERVAL, era singa tegwa mu bbanga 0…60, obubaka bulagibwa nti omuwendo tegukwatagana na bbanga erikkirizibwa. Okukung’aanya kwa MAP nga kuliko emimuli kutondebwawo mu layini 88. Olukoba lwa FOR olulonda ekipande okutuuka ku buziba obwetaagisa n’omutendera gwa INTERVAL okuva ku kandulo empya okutuuka ku mukadde. Mu layini 90, oluvannyuma lw’okulangirira enzirukanya, roboti edda emabega mu bbanga. Bw’ofuna omumuli ne GET_CANDLE, kiteeke mu kukungaanya kwa BARLIST ng’okozesa omulimu INSERT_COLLECTION_TEAM. Nga ekiva mu nkola y’ekiragiro kya OHLC(), BARLIST ejjuzaamu emimuli egisembayo okuva mu kipande ky’ebikozesebwa mu bungi bwa NUMBER. Omuwendo gw’ebintu mu kukungaanya gusabibwa ekiragiro GET_COLLECTION_COUNT() era ne guloopebwa enkyukakyuka ya BARCOUNT. Olunaku lwa seva, essaawa, emiwendo gy’enkyukakyuka za INSTRUMENT ne BARCOUNT giwandiikibwa omulimu gwa SET_VALUE() mu OUTPUT. Ensengeka eno ekolebwa ekiragiro CREATE_MAP(). Data egwa mu custom table, eyinza okulabibwa mu kifaananyi wansi. emiwendo gy’enkyukakyuka za INSTRUMENT ne BARCOUNT giwandiikibwa omulimu gwa SET_VALUE() mu OUTPUT. Ensengeka eno ekolebwa ekiragiro CREATE_MAP(). Data egwa mu custom table, eyinza okulabibwa mu kifaananyi wansi. emiwendo gy’enkyukakyuka za INSTRUMENT ne BARCOUNT giwandiikibwa omulimu gwa SET_VALUE() mu OUTPUT. Ensengeka eno ekolebwa ekiragiro CREATE_MAP(). Data egwa mu custom table, eyinza okulabibwa mu kifaananyi wansi.
Okusuubula roboti ku QPILE – eby’okugonjoola ebitegekeddwa
Roboti eya bulijjo etambula
Demo robot tesaana kusuubula ddala.
Roboti eno erimu ebipimo 5. DATE, TIME, PRICE identifier values ziteekebwa ku level 30. MOVING ne TP identifiers ziteekebwa ku zero precision. Koodi ya roboti ku average etambula ewandiikiddwa wansi wa QPILE:
N. Moroshkin ekibalirizi ky’ekifo
Enteekateeka y’okubalirira emitendera gy’okuggyibwako okusinga okukkirizibwa n’ekiruubirirwa ky’ebifo ebiwanvu n’ebimpi ku miwendo gy’okusaba n’okubigula ebiriwo kati. Emitendera gibalirirwa ku miwendo 2 egy’obunene bw’okuyingiza ekifo. Roboti ezuula obuzito bw’ekifo ekikkirizibwa nga egaba ekiragiro ky’okuyimirira mu mutendera gumu okuva ku bbeeyi y’okuggulawo n’okubalirira okuggulawo ekifo mu ludda lw’okukula kw’ebbaala. Emitendera egyazuuliddwa giyingizibwa mu ddirisa lya terminal, oluvannyuma ne gyeyolekera mu kipande ky’emiwendo. Enkolagana ziteekebwawo ku kiwandiiko ekiweereddwa. Singa ekifo kiggulwawo, roboti etandika okubala parameters zaayo. Okusinziira ku nkyukakyuka mu kifo, ebiragiro ebiweereddwa bitereezebwa.
Okusengejja eddoboozi
Portfolio robot for calculating the arithmetic mean of the volume for candles and comparing it with the average product by the X coefficient Ekola bulungi ne chati eziteekeddwa mu pulaani mu kiseera ekirondeddwa.
Options Abayonaani
Portfolio y’okubalirira n’okulaga “Abayonaani” eby’okulonda. Kyawukana ku nkola ya Black-Showers.
TRIX esuubula roboti ya QUIK
Enteekateeka eno yeesigamiziddwa ku TRIX Indicator. Ekiraga bwe kiggalawo waggulu wa layini ya ziro, eddaala eryalagirwa, roboti etwala ekifo kya Long. Ekifo kiggalwawo nga Take Profit, Stop Loss oba trailing stop.
M4 ekintu ekisooka okukola
Enteekateeka y’okukola ne QPILE ne Lua. Mulimu ebitereke ebirimu fayiro ezisobola okukolebwa, ebiwandiiko ne fayiro za DLL ezirina okusengejja kw’ebigambo okwa bulijjo. Okukozesa pulogulaamu, olina okusumulula fayiro ezisobola okukolebwa n’oteeka regexp2 mu kkubo lya C:\Windows. Emisomo ku QPILE for QUIK: https://youtu.be/vMTXwDUujpI Okuteeka script ku QPILE mu Quik terminal: https://youtu.be/0B7qL8Svh7I Ekitundu ku github ekinnyonnyola enkozesa y’olulimi lwa QPILE algorithmic oluzimbibwa mu… Ekifo eky’okukoleramu enkola ya QUIK ekisangibwa ku link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE lulimi oluvudde ku mulembe, naye nga lwangu nnyo era lutuukirirwa n’abasuubuzi abatandisi. Okusuubula roboti ne pulogulaamu ezimaze ebbanga nga zeekakasa zikyagenda mu maaso n’okukikola. Naye ku mirimu egy’amaanyi ennyo kirungi okukozesa LUA.
0к