Algorithmic language QPILE para sa programming trading robots para sa QUIK.
Ang mga Trading robot ay maaaring isulat sa isang partikular na wika, katulad ng program code. Ang QPILE ay isa sa mga ito, isasaalang-alang ng artikulo ang wikang ito, ihambing ang mga wikang QPILE at
LUA , at magbibigay din ng mga halimbawa ng mga robot sa wikang ito.
- Pangkalahatang impormasyon tungkol sa QPILE
- Paggawa gamit ang isang mesa
- Mga konstruksyon ng QPILE
- Uri ng data
- Mga expression
- Mga pag-andar
- Mga programa sa pag-debug
- QPILE o LUA?
- Paano lumikha ng isang trading robot sa QPILE?
- Mga robot sa pangangalakal sa QPILE – mga handa na solusyon
- Gumagalaw na average na robot
- N. Moroshkin posisyon calculator
- Filter ng volume
- Mga pagpipilian sa Greek
- TRIX trading robot para sa QUIK
- M4 Preprocessor
Pangkalahatang impormasyon tungkol sa QPILE
Ang QPILE ay isang abbreviation na nangangahulugang QUIK Programmable Interface at Logic Environment.
Ito ay isang serye ng mga utos na binibigyang kahulugan ng QUIK workstation. Ito ay pangunahing ginagamit upang kalkulahin ang presyo ng mga portfolio ng mga mahalagang papel. Ginagamit din ang wika para sa:
- dynamic na muling pagkalkula ng presyo ng mga asset ng mga kliyente sa desktop ng broker at sa kanilang mga portfolio. Sa huling kaso, ang kanilang kabuuang presyo ay muling kinalkula;
- paghahanap ng mga nawawalang indicator gamit ang kanilang sariling mga algorithm at data para sa margin lending;
- pagbuo ng tamang diskarte sa pangangalakal.
Inilalarawan ng wika ang istraktura ng talahanayan: ang appointment ng mga haligi at hilera, mga formula. Sa huli, ang mga pagpapatakbo ng matematika, mga variable, data mula sa iba pang mga talahanayan ay maaaring gamitin para sa pagkalkula. Ang code ng programa na na-load mula sa QUIK server o mula sa disk ng gumagamit ay pinoproseso ng interpreter ng wika, na kinakalkula ang mga halaga sa mga formula. Ang mga talahanayan ng isang programa ay may isang mapagkukunan ng data, ngunit ang mga kalkulasyon ay hindi nadoble at hindi nakakaapekto sa kahusayan ng system. Kapag nagtatrabaho sa mga QUIK na talahanayan, ang mga talahanayan sa QPILE ay may mga karaniwang function. Ang QUIK sa lugar ng trabaho ay nilagyan ng QPILE code debugger. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Binibigyang-daan ka ng wika na ilarawan ang mga bagong talahanayan na may partikular na istraktura, i-highlight ang mga cell na may ilang partikular na halaga, kalkulahin ang mga field batay sa matematikal at lohikal na mga expression. Makakatanggap ang user ng mga notification sa anyo ng sound signal o text message. Ang mga talahanayan sa QPILE ay maaaring i-edit, i-print, kopyahin, i-export sa pamamagitan ng ODBC at DDE server. Ang paunang data ay mula sa mga talahanayan ng QUIK:
- mga transaksyon, kabilang ang para sa pagpapatupad at impersonal;
- mga order, kabilang ang mga stop order, para sa mga over-the-counter na trade at order – mga ulat para sa mga trade sa mga deal sa pag-aayos;
- “portfolio ng kliyente”, “bumili/magbenta”
- data mula sa mga posisyon ng kalahok sa pamamagitan ng pera, mga trading account, instrumento.
Ang mga talahanayan batay sa QPILE ay hindi maaaring kopyahin sa isang text file sa pamamagitan ng menu ng konteksto at i-export sa mga sistema ng teknikal na pagsusuri, at ang mga chart ay hindi maaaring bumuo batay sa mga ito. Ang mga talahanayan na nakabatay sa QPILE ay hindi maaaring i-filter o ayusin.
Paggawa gamit ang isang mesa
Upang mai-load ang code ng programa, kailangan mong piliin ang menu ng mga serbisyo, pagkatapos ay ang mga script ng QPILE. Maaari mo ring gamitin ang kumbinasyong Ctrl+F11. Pagkatapos mong i-click ang “Idagdag” at piliin ang nais na file. Mayroon itong extension na .qpl at lalabas ang pangalan nito sa listahan ng Mga Available na Script.
- pangalan ng talahanayan;
- bilang ng mga haligi at kliyente;
- listahan ng mga identifier at kliyente;
- ang listahan ng mga parameter at ang source code ng file.
Mga konstruksyon ng QPILE
Uri ng data
- String – string.
- Ang double ay isang floating point number.
- Koleksyon – isang koleksyon.
- Mapa – isang associative array – isang sequence ng mga pares na nagbibigay-daan sa iyong makakuha ng impormasyon sa pamamagitan ng key.
Mga expression
Ang mga pagpapatakbo ng aritmetika ng karagdagan, pagbabawas, pagpaparami, paghahati ay inilalapat. Ginagamit din ang mga lohikal na expression na “at”, “o”, katumbas ng, higit pa, mas kaunti, hindi pagkakapantay-pantay, kondisyong konstruksyon “kung … pagkatapos …”.
Mga pag-andar
Ang mga function ay matatagpuan saanman sa programa at may iba’t ibang pangalan. Sa kabuuan, 18 mga pangkat ng mga pag-andar at pag-andar ng matematika ang magagamit upang makuha ang mga halaga ng mga talahanayan at parameter, magkakaugnay na mga array, isang listahan ng mga talahanayan, at iba pang mga gawain. Unang baitang:
- Mga pag-andar ng matematika na nagbibigay-daan sa iyo upang ibalik ang halaga ng sine, cosine, tangent, cotangent ng argumento, kalkulahin ang exponent ng argumento, bumuo ng random na numero, atbp.
- Mga pangkalahatang utos : NEW_GLOBAL upang simulan ang isang pandaigdigang variable at MESSAGE upang magbukas ng mga mensahe.
Mga function upang gumana sa:
- Mga koleksyon ng mga bagay (Collection) . Pinapayagan ka nitong lumikha ng isang bagong koleksyon, ibalik ang kinakailangang bilang ng mga elemento, palitan o ipasok ang mga nais na halaga.
- Mga Associative Array (MAP) . Tumulong sa paglikha at pamamahala ng array.
- Mga file – nagtatrabaho sa mga text file, pinapanatili ang isang log-log ng programa. Ang pangalan ng file ay maaaring naglalaman ng landas patungo dito.
- Mga string .
- Mga graph . Gumagana ang GET_CANDLE upang ma-access ang data ng kandila at GET_CANDLE EX upang magbalik ng isang nag-uugnay na array.
- Mga aplikasyon . Paglikha ng mga order at pagpapadala sa kanila sa sistema ng pangangalakal.
- Mga tag . Ang kanilang pagtatayo at pag-install sa tsart. Pagdaragdag, pagtanggal ng isa o lahat ng mga label, pagkuha at pagtatakda ng mga parameter para sa isang partikular na label.
Mayroon ding mga function para sa:
- Para sa pag-access ng mga hilera ng mga arbitrary na QUIK na talahanayan at mga listahan ng magagamit na mga parameter . Access sa data ng talahanayan sa lugar ng trabaho. Kabilang dito ang GET_ITEM upang ibalik ang MAP at GET_NUMBER_OF upang ibalik ang bilang ng mga entry.
- Upang gumana sa isang programmable table . Gumagana ang mga utos na ito sa SARILING talahanayan. Nababasa ito ng mga karaniwang function mula sa nakaraang talata at ng mga function na ito. Kasama sa pangkat na ito ang mga utos para sa pagdaragdag, pagbabago at pagtanggal ng row na may index, at ganap na pag-clear sa OWN table.
Upang makakuha ng mga halaga gamitin:
- Mga talahanayan ng kasalukuyang kalakalan . Pagkuha ng mga parameter ng impormasyon ng palitan gamit ang mga command na GET_PARAM (_EX).
- Quote windows . Pagkuha ng mga halaga ng mga quote ng instrumento.
- Mga talahanayan ng mga posisyon sa pamamagitan ng mga instrumento at pera . Pagkuha ng data sa isang kliyente, kompanya, instrumento, depo account sa pamamagitan ng code.
Mga function ng serbisyo – ibinabalik ang petsa ng kasalukuyang sesyon ng kalakalan, magkakaugnay na serye, kasalukuyang petsa at oras, pagtukoy sa estado ng koneksyon, pag-abala sa mode ng pagkalkula.
Mga programa sa pag-debug
Ang hakbang-hakbang na kontrol sa pagpapatakbo ng programa ay isinasagawa sa window ng “Debug”. Ito ay binuksan mula sa menu ng konteksto na “Simulan ang pagkalkula sa mode ng pag-debug”. Maaari din itong buksan gamit ang breakpoint() na utos, at ang linya ng programa ay iha-highlight sa pula. Ang window ay naglalaman ng mga patlang na may program code at mga variable na halaga. Sa ibaba ng window mayroong mga pindutan “Susunod na hakbang”, “Magpatuloy sa pagpapatupad”, “Ihinto ang pagkalkula”. Ang pagpindot sa F5 ay magpapatuloy sa pagpapatupad ng programa, ang kumbinasyon ng Shift + F5 ay titigil sa pag-debug, ang F10 key ay magdidirekta sa susunod na linya.
QPILE o LUA?
Ang LUA ay isang bagong programming language para sa paglikha ng mga trading robot. Tulad ng QPILE, ito ay ipinatupad sa QUIK terminal. https://articles.opexflow.com/programming/lua.htm Ang isang site na nakatuon sa pagbuo ng mga robot sa pangangalakal para sa pangangalakal ay nagpapakita ng mga pakinabang ng wikang LUA kaysa sa QPILE. Kaya, maaari itong gumana bilang isang hindi pinagsama-samang script at bytecode, na nilagyan ng mga tool ng developer at object-oriented na mga mekanismo ng programming. Ang mga bagay na nakasulat sa iba pang mga programming language ay maaaring konektado sa mga programa ng LUA. Nagbibigay ang LUA ng 8 uri ng data, kabilang ang mga metatable. Ang wika ng LUA ay multi-threaded, mabilis, at ang mga transaksyon at mga kaganapan sa terminal ay asynchronous. Ang LUA ay mas karaniwan kaysa sa QPILE, at maraming extension ang isinulat para dito.
Ang wikang QPILE ay hindi na ginagamit. Inirerekomenda ng mga eksperto sa mga forum ang paggamit ng LUA. Bagama’t ginagamit pa rin ang mga kapaki-pakinabang at epektibong programa.
Gayunpaman, ang wika ng QPILE ay simple kumpara sa LUA, kaya kung wala kang karanasan sa programming, mas mahusay na pumili ng QPILE. Sa wikang ito, maaari kang magsulat ng isang simpleng robot kung hindi mo kailangang magsagawa ng mga kumplikadong kalkulasyon.
Paano lumikha ng isang trading robot sa QPILE?
Upang lumikha ng isang trading advisor, kakailanganin mo ang mga sumusunod na programa:
- ITS Quik.
- Notepad++ code editor.
- Gabay sa QPILE.
- XML plugin para sa pagtukoy ng code sa Notepad++.
I-download at i-install ang mga program na ito. Paganahin ang syntax ng wika sa pamamagitan ng paglalagay ng userDefineLang.xml sa path na C:\Users\User\ AppData\Roaming\Notepad++\
Ang bloke ng “Mga setting ng user” ay dinagdagan ng mga variable na NUMBER at INTERVAL, na gagamitin sa paggana ng pagkuha ng mga huling N bar. Ang function na DATETIME ay nagtatakda ng petsa at oras ng server, at ang kasalukuyang mga function ng petsa at oras ay CURDATE at CURTIME ay tinatawag mula dito. Ang kasalukuyang oras ay na-convert sa isang numero sa linya 24. Ang Linya 26 ay nagtatakda ng oras para tumakbo ang algorithm mula 10:00:01 hanggang 18:40:00 UTC.
Mga robot sa pangangalakal sa QPILE – mga handa na solusyon
Gumagalaw na average na robot
Demo robot ay hindi angkop para sa tunay na kalakalan.
N. Moroshkin posisyon calculator
Isang programa para sa pagkalkula ng mga antas ng maximum na pinapayagang drawdown at ang target para sa mahaba at maikling mga posisyon sa kasalukuyang mga presyo ng ask at bid. Ang mga antas ay kinakalkula para sa 2 mga halaga ng dami ng pagpasok ng posisyon. Hinahanap ng robot ang pinahihintulutang dami ng posisyon kapag nagtatalaga ng stop order sa isang hakbang mula sa pagbubukas ng presyo kasama ang pagkalkula ng pagbubukas ng isang posisyon sa direksyon ng paglago ng bar. Ang mga nahanap na antas ay ipinasok sa terminal window, na kasunod na makikita sa tsart ng presyo. Ang mga transaksyon ay naayos para sa isang ibinigay na instrumento. Kung bubuksan ang isang posisyon, magsisimulang kalkulahin ng robot ang mga parameter nito. Depende sa pagbabago sa posisyon, ang mga nakatalagang order ay inaayos.
Filter ng volume
Portfolio robot para sa pagkalkula ng arithmetic mean ng volume para sa mga kandila at paghahambing nito sa average na produkto sa pamamagitan ng X coefficient. Gumagana nang tama sa mga naka-plot na chart sa napiling yugto ng panahon.
Mga pagpipilian sa Greek
Portfolio para sa pagkalkula at pagpapakita ng “Mga Griyego” ng mga opsyon. Ito ay naiiba sa paraang Black-Showers.
TRIX trading robot para sa QUIK
Ang programa ay batay sa TRIX Indicator. Kapag ang tagapagpahiwatig ay nagsasara sa itaas ng zero na linya, ang tinukoy na antas, ang robot ay tumatagal ng Mahabang posisyon. Ang posisyon ay isinara ng Take Profit, Stop Loss o trailing stop.
M4 Preprocessor
Programa para sa pagtatrabaho sa QPILE at Lua. May kasamang mga archive na may mga executable na file, dokumentasyon at DLL file na may regular na pagpa-parse ng expression. Upang magamit ang program, kailangan mong i-unpack ang mga executable na file at ilagay ang regexp2 sa C:\Windows path. Mga aralin sa QPILE para sa QUIK: https://youtu.be/vMTXwDUujpI Pag-install ng script sa QPILE sa Quik terminal: https://youtu.be/0B7qL8Svh7I Isang seksyon sa github na naglalarawan sa paggamit ng QPILE algorithmic na wika na binuo sa QUIK system workstation na matatagpuan sa link – https://euvgub.github.io/quik_user_manual/ch8.html. Ang QPILE ay isang hindi napapanahong wika, ngunit medyo simple at naa-access kahit sa mga baguhan na mangangalakal. Ang mga robot at programa sa pangangalakal na napatunayan ang kanilang mga sarili sa mahabang panahon ay patuloy na nagtatrabaho dito. Gayunpaman, para sa mas kumplikadong mga gawain, mas mahusay na gumamit ng LUA.
0к