Lugha ya algoriti ya QPILE ya kutengeneza programu za roboti za QUIK.
Roboti za biashara zinaweza kuandikwa kwa lugha maalum, sawa na msimbo wa programu. QPILE ni mmoja wao, makala itazingatia lugha hii, kulinganisha lugha za QPILE na
LUA , na pia kutoa mifano ya robots katika lugha hii.
- Maelezo ya jumla kuhusu QPILE
- Kufanya kazi na meza
- QPILE hutengeneza
- Aina za data
- Maneno
- Kazi
- Programu za utatuzi
- QPILE au LUA?
- Jinsi ya kuunda roboti ya biashara kwenye QPILE?
- Uuzaji wa roboti kwenye QPILE – suluhisho zilizotengenezwa tayari
- Roboti ya wastani inayosonga
- Calculator ya nafasi ya N. Moroshkin
- Kichujio cha sauti
- Chaguzi Wagiriki
- TRIX biashara ya robot kwa QUIK
- Kichakataji cha awali cha M4
Maelezo ya jumla kuhusu QPILE
QPILE ni kifupisho ambacho kinasimama kwa QUIK Programmable Interface na Mantiki Mazingira.
Huu ni mfululizo wa amri zinazofasiriwa na kituo cha kazi cha QUIK. Inatumiwa hasa kuhesabu bei ya portfolios ya dhamana. Lugha pia inatumika kwa:
- ukokotoaji upya wa bei ya mali za wateja kwenye eneo-kazi la wakala na katika jalada zao. Katika kesi ya mwisho, bei yao ya jumla pia inahesabiwa tena;
- kutafuta viashiria vinavyokosekana kwa kutumia algorithms na data zao za ukopeshaji wa kiasi;
- kuendeleza mkakati sahihi wa biashara.
Lugha inaelezea muundo wa meza: uteuzi wa safu na safu, fomula. Katika mwisho, shughuli za hisabati, vigezo, data kutoka kwa meza nyingine zinaweza kutumika kwa hesabu. Nambari ya programu iliyopakiwa kutoka kwa seva ya QUIK au kutoka kwa diski ya mtumiaji inashughulikiwa na mkalimani wa lugha, ambayo huhesabu maadili katika fomula. Jedwali za programu moja zina chanzo kimoja cha data, lakini hesabu hazijarudiwa na haziathiri ufanisi wa mfumo. Wakati wa kufanya kazi na meza za QUIK, meza kwenye QPILE zina kazi za kawaida. QUIK mahali pa kazi ina kitatuzi cha msimbo wa QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Lugha hukuruhusu kuelezea majedwali mapya yenye muundo fulani, kuangazia visanduku vilivyo na thamani fulani, kukokotoa sehemu kulingana na usemi wa hisabati na kimantiki. Mtumiaji atapokea arifa kwa njia ya ishara ya sauti au ujumbe wa maandishi. Majedwali kwenye QPILE yanaweza kuhaririwa, kuchapishwa, kunakiliwa, kusafirishwa nje kupitia seva ya ODBC na DDE. Data ya awali ni kutoka kwa majedwali ya QUIK:
- shughuli, ikiwa ni pamoja na kwa ajili ya utekelezaji na isiyo ya kibinafsi;
- amri, ikiwa ni pamoja na kuacha amri, kwa ajili ya biashara ya-ya-kaunta na maagizo – ripoti kwa ajili ya biashara katika mikataba ya makazi;
- “kwingineko la mteja”, “nunua/uza”
- data kutoka kwa nafasi za mshiriki kwa pesa, akaunti za biashara, chombo.
Majedwali kulingana na QPILE hayawezi kunakiliwa kwa faili ya maandishi kupitia menyu ya muktadha na kusafirishwa kwa mifumo ya uchambuzi wa kiufundi, na chati haziwezi kutengenezwa kulingana nazo. Jedwali zenye msingi wa QPILE haziwezi kuchujwa au kupangwa.
Kufanya kazi na meza
Ili kupakia msimbo wa programu, unahitaji kuchagua menyu ya huduma, kisha hati za QPILE. Unaweza pia kutumia mchanganyiko Ctrl + F11. Baada ya unahitaji kubofya “Ongeza” na uchague faili inayotakiwa. Ina kiendelezi cha .qpl na jina lake litaonekana katika orodha ya Hati Zinazopatikana.
Ikiwa kuna hitilafu katika programu, mfumo utafanya arifa katika “Dirisha la Ujumbe”, ambalo litakuwa na jina la faili yenye kasoro na nambari ya mstari yenye kosa. Ikiwa hakuna makosa yaliyopatikana kwenye faili, data ifuatayo itaonyeshwa kwenye sehemu:
- jina la meza;
- idadi ya safu na wateja;
- orodha ya vitambulisho na wateja;
- orodha ya vigezo na msimbo wa chanzo wa faili.
Kitufe cha “Pakua ndani” kitakuwezesha kupata meza kutoka kwa faili, na “Pakia kwenye seva” itatuma programu kwenye seva ili watumiaji wote waweze kuipata. Ili kuunda jedwali, bofya Unda Jedwali. Katika “Maandiko yanayopatikana” chagua programu unayohitaji kutekeleza, weka idadi ya mistari kupitia “Filter ya wateja”, amua safu zinazohitajika na mlolongo wao.
Kusitisha na kurejesha hesabu, kuanza hesabu tena na katika hali ya utatuzi, kuhifadhi maelezo kwenye faili, kuonyesha fomula, na vigezo vya hati vinapatikana kwenye menyu ya muktadha.
QPILE hutengeneza
Aina za data
- Kamba – kamba.
- Mara mbili ni nambari ya sehemu inayoelea.
- Mkusanyiko – mkusanyiko.
- Ramani – safu ya ushirika – mlolongo wa jozi ambayo hukuruhusu kupata habari kwa ufunguo.
Maneno
Shughuli za hesabu za kuongeza, kutoa, kuzidisha, mgawanyiko hutumiwa. Maneno ya kimantiki “na”, “au”, sawa, zaidi, chini, usawa, ujenzi wa masharti “ikiwa … basi …” pia hutumiwa.
Kazi
Kazi zinaweza kupatikana popote kwenye programu na kuwa na majina tofauti. Kwa jumla, vikundi 18 vya kazi na kazi za hisabati zinapatikana ili kupata maadili ya jedwali na vigezo, safu za ushirika, orodha ya jedwali na kazi zingine. Daraja la kwanza:
- Utendakazi wa hisabati unaokuruhusu kurudisha thamani ya sine, kosine, tanjiti, cotangent ya hoja, kukokotoa kipeo cha hoja, kutoa nambari nasibu, n.k.
- Amri za jumla : NEW_GLOBAL ili kuanzisha kigezo cha kimataifa na MESSAGE kufungua ujumbe.
Kazi za kufanya kazi nazo:
- Mkusanyiko wa vitu (Mkusanyiko) . Wanakuruhusu kuunda mkusanyiko mpya, kurudisha nambari inayohitajika ya vipengee, kubadilisha au kuingiza maadili unayotaka.
- Safu za Ushirika (MAP) . Saidia kuunda na kudhibiti safu.
- Faili – kufanya kazi na faili za maandishi, kudumisha logi ya programu. Jina la faili linaweza kuwa na njia yake.
- Kamba .
- Grafu . Hufanya kazi GET_CANDLE kufikia data ya mishumaa na GET_CANDLE EX kurudisha safu shirikishi.
- Maombi . Kuunda maagizo na kuyatuma kwa mfumo wa biashara.
- Lebo . Ujenzi na ufungaji wao kwenye chati. Kuongeza, kufuta lebo moja au zote, kupata na kuweka vigezo vya lebo maalum.
Pia kuna kazi za:
- Kwa kupata safu mlalo za jedwali kiholela za QUIK na orodha za vigezo vinavyopatikana . Upatikanaji wa data ya meza ya mahali pa kazi. Hizi ni pamoja na GET_ITEM ili kurejesha MAP na GET_NUMBER_OF ili kurejesha idadi ya maingizo.
- Kufanya kazi na meza inayoweza kupangwa . Amri hizi hufanya kazi kwenye jedwali la OWN. Inaweza kusomeka kwa kazi za kawaida kutoka kwa aya iliyotangulia na kwa kazi hizi. Kundi hili linajumuisha amri za kuongeza, kurekebisha na kufuta safu mlalo kwa faharasa, na kufuta kabisa jedwali la OWN.
Ili kupata maadili tumia:
- Majedwali ya biashara ya sasa . Kupata vigezo vya maelezo ya kubadilishana kwa kutumia amri za GET_PARAM (_EX).
- Nukuu madirisha . Kupata maadili ya nukuu za chombo.
- Meza ya nafasi kwa vyombo na fedha . Kupata data kwenye mteja, kampuni, chombo, akaunti ya depo kwa msimbo.
Kazi za huduma – kurudisha tarehe ya kikao cha sasa cha biashara, safu ya ushirika, tarehe na wakati wa sasa, kuamua hali ya unganisho, kukatiza hali ya hesabu.
Programu za utatuzi
Udhibiti wa hatua kwa hatua juu ya uendeshaji wa programu unafanywa kwenye dirisha la “Debug”. Inafunguliwa kutoka kwa menyu ya muktadha “Anza hesabu katika hali ya kurekebisha”. Inaweza pia kufunguliwa kwa amri ya breakpoint(), na mstari wa programu utaangaziwa kwa rangi nyekundu. Dirisha lina sehemu zilizo na nambari ya programu na maadili tofauti. Chini ya dirisha kuna vifungo “Hatua inayofuata”, “Endelea utekelezaji”, “Acha hesabu”. Kubonyeza F5 itaendelea utekelezaji wa programu, mchanganyiko Shift + F5 utaacha kurekebisha, ufunguo wa F10 utaelekeza kwenye mstari unaofuata.
QPILE au LUA?
LUA ni lugha mpya ya programu ya kuunda roboti za biashara. Kama QPILE, inatekelezwa katika terminal ya QUIK. https://articles.opexflow.com/programming/lua.htm Tovuti inayojitolea kwa uundaji wa roboti za biashara kwa ajili ya biashara inaonyesha faida za lugha ya LUA zaidi ya QPILE. Kwa hivyo, inaweza kufanya kazi kama hati isiyokusanywa na bytecode, iliyo na zana za msanidi programu na mifumo ya programu inayolenga kitu. Vitu vilivyoandikwa katika lugha zingine za programu vinaweza kushikamana na programu za LUA. LUA hutoa aina 8 za data, pamoja na metatable. Lugha ya LUA ina nyuzi nyingi, haraka, na miamala na matukio ya mwisho hayafanani. LUA ni ya kawaida zaidi kuliko QPILE, na viendelezi vingi vimeandikwa kwa ajili yake.
Lugha ya QPILE sasa imeacha kutumika. Wataalam kwenye vikao wanapendekeza kutumia LUA. Ingawa programu muhimu na nzuri bado zinatumika.
Hata hivyo, lugha ya QPILE ni rahisi ikilinganishwa na LUA, hivyo ikiwa huna uzoefu katika programu, ni bora kuchagua QPILE. Katika lugha hii, unaweza kuandika roboti rahisi ikiwa hauitaji kufanya hesabu ngumu.
Jinsi ya kuunda roboti ya biashara kwenye QPILE?
Ili kuunda mshauri wa biashara, utahitaji programu zifuatazo:
- Quik YAKE.
- Kihariri cha nambari ya Notepad++.
- Mwongozo wa QPILE.
- Programu-jalizi ya XML ya kugundua nambari kwenye Notepad++.
Pakua na usakinishe programu hizi. Washa sintaksia ya lugha kwa kuweka userDefineLang.xml kwenye njia C:\Users\User\ AppData\Roaming\Notepad++\
Kwanza, hebu tuunde mkakati ufuatao wa biashara. Hati inapaswa kuhesabu Hi na Chini kwa mishumaa machache ya mwisho kila dakika, angalia bei ya sasa ya chombo. Nafasi inafunguliwa katika mwelekeo unaohitajika ikiwa bei ya chombo inafikia thamani ya juu au ya chini zaidi kwa kipindi hicho. Wakati ishara ya muda mfupi inapokelewa, nafasi ndefu imefungwa moja kwa moja. Roboti hutumia zana ya GAZP, muda umewekwa kuwa dakika 1. Kina cha kipimo cha juu-chini kimewekwa kwa mishumaa 5. Ili kuingia Muda mrefu, sheria imewekwa na makutano ya bei ya sasa ya thamani ya juu kwa kipindi hicho. Roboti itaingia Fupi ikiwa bei ya sasa itavuka thamani ya chini ya mishumaa hii 5. Andika kizuizi cha msimbo katika Notepad++ na mipangilio ya msingi na tarehe na wakati wa seva. Kanuni hii imeonyeshwa kwenye picha hapa chini.
Mistari 4 ya kwanza ya msimbo huunda kichwa cha programu. Kati ya mstari wa 6 na 44 ni mwili wa programu, ambayo ina yaliyomo ya roboti. Mstari wa 7 – 12 una mipangilio ya mtumiaji, ambayo ni pamoja na misimbo ya chombo, kikundi na mteja, nambari ya akaunti kwenye MICEX. Maadili haya hayabadilika wakati wa utekelezaji wa programu. Mstari wa 13 – 16 ni maadili ya awali ya vigezo. Zitawekwa upya hadi sufuri kwa kila kibali cha marudio. Mstari wa 17 – 21 una dalili ya kutumia tarehe na saa ya seva. Data hii hupitishwa kwa chaguo za kukokotoa DATETIME na kubadilishwa kuwa umbizo la maandishi. Mstari wa 22 – 29 hutuma data iliyopokelewa kwenye meza. Msimbo lazima uhifadhiwe na kiendelezi cha qpl lazima kibainishwe.
Fungua programu katika QUIK kwa kubonyeza Ctrl+F10 na kuchagua faili ya qpl iliyozalishwa. Tumia mchanganyiko wa Ctrl+F11 ili kufungua dirisha la “Fanya kazi na Mikoba” na uweke muda wa kukokotoa kwingineko hadi dakika 5. Bonyeza Ctrl+F12 ili kuweka safu wima za kuonyesha kwenye jedwali. Picha inaonyesha matokeo ya kazi ya roboti.
Hebu tuongeze vipengele na masharti machache zaidi kwenye programu yetu.
Kizuizi cha “Mipangilio ya Mtumiaji” huongezewa na vigeu NUMBER na INTERVAL, ambavyo vitatumika katika kazi ya kupata N pau za mwisho. Chaguo la kukokotoa la DATETIME huweka tarehe na wakati wa seva, na tarehe na wakati wa sasa utendakazi CURDATE na CURTIME huitwa kutoka kwayo. Muda wa sasa unabadilishwa kuwa nambari kwenye mstari wa 24. Mstari wa 26 huweka muda wa algoriti kuanza saa 10:00:01 hadi 18:40:00 UTC.
Mara nyingi, viashiria, oscillators, mahesabu ya takwimu huhesabiwa na mishumaa ya mwisho ya N ya chati. QPILE haina kipengele cha kukokotoa cha kukusanya idadi ya mishumaa N nyakati zilizopita kama hivyo, lakini kuna chaguo la kukokotoa la GET_CANDLE ambalo hufikia mishumaa kwenye chati kwa tarehe na saa katika umbizo la maandishi. Nambari yetu ina kazi ya kupata pau N za mwisho OHLC(). Huunda mkusanyiko wenye vigezo vya mishumaa ya mwisho iliyowekwa kwenye orodha ya COLLECTION. Programu hukagua thamani ya INTERVAL, na ikiwa haingii ndani ya masafa 0…60, ujumbe unaonyeshwa kwamba thamani hailingani na masafa yanayoruhusiwa. Mkusanyiko wa RAMANI wenye mishumaa umeundwa katika mstari wa 88. A FOR kitanzi hupiga kura kwenye chati kwa kina kinachohitajika kwa hatua ya INTERVAL kutoka mpya hadi mshumaa wa zamani. Katika mstari wa 90, baada ya mzunguko kutangazwa, roboti hurudi nyuma kwa muda. Unapopata mshumaa na GET_CANDLE, kiweke katika mkusanyiko wa BARLIST ukitumia chaguo za kukokotoa za INSERT_COLLECTION_TEAM. Kama matokeo ya utendakazi wa amri ya OHLC(), BARLIST hujazwa tena na mishumaa ya mwisho kutoka kwa chati ya chombo kwa kiasi cha NUMBER. Idadi ya vipengele katika mkusanyiko huombwa na amri GET_COLLECTION_COUNT() na kuripotiwa na kigezo cha BARCOUNT. Tarehe ya seva, wakati, thamani za INSTRUMENT na vigeu vya BARCOUNT vinaripotiwa na chaguo za kukokotoa SET_VALUE() katika OUTPUT. Safu hii imeundwa kwa amri ya CREATE_MAP(). Data huanguka kwenye meza maalum, ambayo inaweza kuonekana kwenye picha hapa chini. thamani za INSTRUMENT na BARCOUNT anuwai zimeripotiwa na chaguo za kukokotoa SET_VALUE() katika OUTPUT. Safu hii imeundwa kwa amri ya CREATE_MAP(). Data huanguka kwenye meza maalum, ambayo inaweza kuonekana kwenye picha hapa chini. thamani za INSTRUMENT na BARCOUNT anuwai zimeripotiwa na chaguo za kukokotoa SET_VALUE() katika OUTPUT. Safu hii imeundwa kwa amri ya CREATE_MAP(). Data huanguka kwenye meza maalum, ambayo inaweza kuonekana kwenye picha hapa chini.
Uuzaji wa roboti kwenye QPILE – suluhisho zilizotengenezwa tayari
Roboti ya wastani inayosonga
Roboti ya onyesho haifai kwa biashara halisi.
Roboti inajumuisha vigezo 5. DATE, TIME, PRICE thamani za vitambulishi zimewekwa kwenye kiwango cha 30. Vitambulishi vya MOVING na TP vimewekwa kwa usahihi sifuri. Msimbo wa roboti kuhusu wastani wa kusonga umeandikwa chini ya QPILE: [safu wima za nyumba = “5” ids = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”
Calculator ya nafasi ya N. Moroshkin
Mpango wa kukokotoa viwango vya mteremko wa juu unaoruhusiwa na lengwa la nafasi ndefu na fupi kwa bei za sasa za kuuliza na zabuni. Viwango vinahesabiwa kwa thamani 2 za kiasi cha ingizo la nafasi. Roboti hupata kiasi cha nafasi inayokubalika wakati wa kuweka agizo la kusimama kwa hatua moja kutoka kwa bei ya ufunguzi kwa hesabu ya kufungua nafasi katika mwelekeo wa ukuaji wa upau. Viwango vilivyopatikana huingizwa kwenye dirisha la terminal, ambalo huonyeshwa katika chati ya bei. Malipo yamepangwa kwa chombo fulani. Ikiwa nafasi imefunguliwa, robot huanza kuhesabu vigezo vyake. Kulingana na mabadiliko katika nafasi, maagizo yaliyowekwa yanarekebishwa.
Kichujio cha sauti
Roboti ya kwingineko ya kukokotoa wastani wa hesabu ya sauti ya mishumaa na kuilinganisha na wastani wa bidhaa kwa mgawo wa X. Hufanya kazi ipasavyo na chati zilizopangwa katika muda uliochaguliwa.
Chaguzi Wagiriki
Kwingineko kwa ajili ya kuhesabu na kuonyesha “Wagiriki” ya chaguzi. Inatofautiana na njia ya Black-Showers.
TRIX biashara ya robot kwa QUIK
Mpango huo unategemea Kiashiria cha TRIX. Wakati kiashiria kinafunga juu ya mstari wa sifuri, kiwango maalum, robot inachukua nafasi ya Muda mrefu. Nafasi imefungwa na Pata Faida, Acha Kupoteza au kituo cha nyuma.
Kichakataji cha awali cha M4
Mpango wa kufanya kazi na QPILE na Lua. Inajumuisha kumbukumbu zilizo na faili zinazoweza kutekelezwa, nyaraka na faili za DLL zilizo na uchanganuzi wa kawaida wa kujieleza. Ili kutumia programu, unahitaji kufuta faili zinazoweza kutekelezwa na uweke regexp2 kwenye njia ya C:\Windows. Masomo kuhusu QPILE kwa QUIK: https://youtu.be/vMTXwDUujpI Kusakinisha hati kwenye QPILE katika terminal ya Quik: https://youtu.be/0B7qL8Svh7I Sehemu kwenye github inayoelezea matumizi ya lugha ya algoriti ya QPILE iliyojengwa ndani ya Kituo cha kazi cha mfumo cha QUIK kilicho kwenye kiungo – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE ni lugha ya kizamani, lakini ni rahisi sana na inayoweza kupatikana hata kwa wafanyabiashara wapya. Roboti za biashara na programu ambazo zimejidhihirisha kwa muda mrefu zinaendelea kufanya kazi juu yake. Walakini, kwa kazi ngumu zaidi ni bora kutumia LUA.
0к