QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE

Программирование

QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE.
Söwda robotlary , programma koduna meňzeş belli bir dilde ýazylyp bilner. QPILE şolaryň biridir, makala bu dili göz öňünde tutar, QPILE we
LUA dillerini deňeşdirer we bu dilde robotlaryň mysallaryny getirer.

QPILE hakda umumy maglumat

QPILE, QUIK Programmable Interfeýs we Logika Daşky gurşawy aňladýan gysgaltma.

Bu, QUIK iş stansiýasy tarapyndan düşündirilýän buýruklaryň tapgyry. Esasan gymmatly kagyz bukjalarynyň bahasyny hasaplamak üçin ulanylýar. Dil şeýle hem ulanylýar:

  • dellalyň iş stolunda we portfellerinde müşderileriň emläkleriniň bahasyny dinamiki hasaplamak. Ikinji ýagdaýda olaryň umumy bahasy hem gaýtadan hasaplanýar;
  • margin karzlary üçin öz algoritmlerini we maglumatlary ulanyp, ýiten görkezijileri tapmak;
  • dogry söwda strategiýasyny işläp düzmek.

Dil tablisanyň gurluşyny suratlandyrýar: sütünleriň we hatarlaryň, formulalaryň bellenilmegi. Ikinjide, hasaplamak üçin matematiki amallar, üýtgeýjiler, beýleki tablisalardan maglumatlar ulanylyp bilner. QUIK serwerinden ýa-da ulanyjynyň diskinden ýüklenen programma kody, formulalardaky bahalary hasaplaýan dil terjimeçisi tarapyndan işlenýär. Bir programmanyň tablisalarynda bir maglumat çeşmesi bar, ýöne hasaplamalar köpeldilmeýär we ulgamyň netijeliligine täsir etmeýär. QUIK tablisalary bilen işleýän wagtyňyz, QPILE-de tablisalar adaty funksiýalara eýe. Iş ýerinde QUIK, QPILE kod düzediji bilen enjamlaşdyrylan. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Dil belli bir gurluşly täze tablisalary suratlandyrmaga, belli bir bahaly öýjükleri tapawutlandyrmaga, matematiki we logiki aňlatmalar esasynda meýdanlary hasaplamaga mümkinçilik berýär. Ulanyjy ses signaly ýa-da tekst habary görnüşinde habarnamalary alar. QPILE-de tablisalary redaktirläp, çap edip, göçürip, ODBC we DDE serweri arkaly eksport edip bolýar. Başlangyç maglumatlar QUIK tablisalaryndan:

  • amallar, şol sanda ýerine ýetirmek we şahsy däl;
  • sargytlar, şol sanda bes ediş sargytlary, bir overadan daşary söwdalar we sargytlar – hasaplaşyk şertnamalaryndaky söwdalar üçin hasabatlar;
  • “müşderi portfeli”, “satyn al / sat”
  • pul, söwda hasaplary, gurallar boýunça gatnaşyjynyň pozisiýalaryndan maglumatlar.

QPILE esasly tablisalary kontekst menýusy arkaly tekst faýlyna göçürip we tehniki derňew ulgamlaryna eksport edip bolmaýar we olaryň esasynda diagrammalar döredilip bilinmez. QPILE esasly tablisalary süzüp ýa-da tertipläp bolmaz.

Stol bilen işlemek

Programma koduny ýüklemek üçin hyzmatlar menýusyny, soňra QPILE skriptlerini saýlamaly. Şeýle hem Ctrl + F11 kombinasiýasyny ulanyp bilersiňiz. “Goşmak” düwmesine basyp, gerekli faýly saýlamaly. .Qpl giňeltmesi bar we ady Elýeterli skriptler sanawynda görkeziler.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEProgrammada ýalňyşlyk bar bolsa, ulgam kemçilikli faýlyň adyny we ýalňyşlyk bilen setir belgisini öz içine alýan “Habar penjiresinde” habar berer. Faýlda näsazlyklar tapylmasa, meýdanlarda aşakdaky maglumatlar görkeziler:

  • tablisanyň ady;
  • sütünleriň we müşderileriň sany;
  • kesgitleýjileriň we müşderileriň sanawy;
  • parametrleriň sanawy we faýlyň deslapky kody.

QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE“Locallyerli göçürip al” düwmesi tablisany bir faýldan almaga mümkinçilik berer we “Serwere ýüklemek” programmany ähli ulanyjylar girip biler ýaly serwere iberer. Tablisa döretmek üçin Tablisa döretmek düwmesine basyň. “Elýeterli skriptlerde” ýerine ýetirmek üçin zerur programmany saýlaň, “Müşderileriň süzgüji” arkaly setirleriň sanyny kesgitläň, zerur sütünleri we yzygiderliligi kesgitläň.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEHasaplamany duruzmak we täzeden başlamak, hasaplamany täzeden başlamak we düzediş tertibinde, düşündirişi bir faýlda saklamak, formulany görkezmek we skript parametrleri kontekst menýusynda bar.

QPILE gurýar

Maglumatlaryň görnüşleri

  • Setir – setir.
  • Jübüt ýüzýän nokat sanydyr.
  • Collectionygyndy – ýygyndy.
  • Karta – assosiatiw massiw – açar bilen maglumat almaga mümkinçilik berýän jübütleriň yzygiderliligi.

Aňlatmalar

Goşmak, aýyrmak, köpeltmek, bölmek arifmetiki amallary ulanylýar. “We”, “ýa-da” logiki aňlatmalar deň, has az, deňsizlik, şertli gurluşyk “eger … soň …” hem ulanylýar.

Funksiýalar

Funksiýalar programmanyň islendik ýerinde ýerleşip, dürli atlary bolup biler. Jemi, tablisalaryň we parametrleriň, assosiatiw massiwleriň, tablisalaryň sanawynyň we beýleki meseleleriň bahalaryny almak üçin matematiki funksiýalaryň we funksiýalaryň 18 topary bar. Birinji synp:

  1. Sine, kosin, tangent, argumentiň birleşmesiniň bahasyny yzyna gaýtarmaga, argumentiň görkezijisini hasaplamaga, tötänleýin san döretmäge we ş.m. mümkinçilik berýän matematiki funksiýalar .
  2. Umumy buýruklar : Global üýtgeýjini başlamak üçin NEW_GLOBAL we habarlary açmak üçin MESSAGE.

Işlemek wezipeleri:

  • Obýektleriň ýygyndysy (Toplama) . Täze kolleksiýa döretmäge, zerur mukdarda elementleri yzyna gaýtarmaga, islenýän bahalary çalyşmaga ýa-da goýmaga mümkinçilik berýär.
  • Assosiatiw massiwler (MAP) . Toplumy döretmäge we dolandyrmaga kömek ediň.
  • Faýllar – tekst faýllary bilen işlemek, programmanyň gündeligini ýöretmek. Faýlyň ady oňa barýan ýoly öz içine alyp biler.
  • Setirler .
  • Grafalar . Şem maglumatlaryna girmek üçin GET_CANDLE we birleşýän massiwini yzyna gaýtarmak üçin GET_CANDLE EX funksiýalary.
  • Goýmalar . Sargytlary döretmek we söwda ulgamyna ibermek.
  • Bellikler . Diagrammada olaryň gurluşygy we gurnamasy. Bir ýa-da ähli bellikleri goşmak, pozmak, belli bir bellik üçin parametrleri almak we düzmek.

Şeýle hem aşakdakylar üçin funksiýalar bar:

  1. Esassyz QUIK tablisalaryna we elýeterli parametrleriň sanawlaryna girmek üçin . Iş ýerindäki tablisa maglumatlaryna giriş. Bularyň arasynda MAP-y yzyna gaýtarmak üçin GET_ITEM we ýazgylaryň sanyny yzyna gaýtarmak üçin GET_NUMBER_OF bar.
  2. Programmirläp bolýan tablisa bilen işlemek . Bu buýruklar OWN tablisasynda işleýär. Öňki abzasdaky adaty funksiýalar we bu funksiýalar bilen okalýar. Bu topara indeks bilen hatary goşmak, üýtgetmek we pozmak we OWN tablisasyny doly arassalamak buýruklary bar.

Gymmatlyklary ulanmak üçin:

  1. Häzirki söwdanyň tablisalary . GET_PARAM (_EX) buýruklaryny ulanyp alyş-çalyş maglumat parametrlerini almak.
  2. Penjireleri sitata . Gural sitatalarynyň bahalaryny almak.
  3. Gurallar we pul boýunça wezipeleriň tablisalary . Kod boýunça müşderi, kompaniýa, gural, depo hasaby barada maglumat almak.

Hyzmat funksiýalary – häzirki söwda sessiýasynyň senesini, assosiatiw seriýany, häzirki senäni we wagty yzyna gaýtarmak, baglanyşyk ýagdaýyny kesgitlemek, hasaplama tertibini kesmek.

Düzediş programmalary

Programmanyň işleýşine ädimme-ädim gözegçilik “Düzediş” penjiresinde amala aşyrylýar. “Düzediş tertibinde hasaplamaga başla” kontekst menýusyndan açyldy. Şeýle hem breakpoint () buýrugy bilen açylyp bilner we programma setiri gyzyl reňkde görkeziler. Penjirede programma kody we üýtgeýän bahalary bolan meýdanlar bar. Penjiräniň aşagynda “Indiki ädim”, “ýerine ýetirmegi dowam etdir”, “Hasaplamagy bes et” düwmeleri bar. F5 basylsa, programmanyň ýerine ýetirilmegini dowam etdirer, Shift + F5 kombinasiýasy çözülmegi bes eder, F10 düwmesi indiki setire gönükdiriler.

QPILE ýa-da LUA?

LUA söwda robotlaryny döretmek üçin täze programmirleme dilidir. QPILE ýaly, QUIK terminalynda amala aşyrylýar. https://articles.opexflow.com/programming/lua.htm Söwda üçin söwda robotlaryny ösdürmäge bagyşlanan sahypa LUA diliniň QPILE-den artykmaçlyklaryny görkezýär. Şeýlelik bilen, dörediji gurallar we obýekte gönükdirilen programmirleme mehanizmleri bilen enjamlaşdyrylan, düzülmedik skript we baýt kody hökmünde işläp biler. Beýleki programmirleme dillerinde ýazylan obýektler LUA programmalaryna birikdirilip bilner. LUA metatable ýaly 8 maglumat görnüşini üpjün edýär. LUA dili köp sapakly, çalt we amallar we terminal wakalary asynkron däl. LUA QPILE-den has ýygydyr we munuň üçin köp giňeltmeler ýazyldy.

QPILE dili indi köneldi. Forumlaryň hünärmenleri LUA ulanmagy maslahat berýärler. Peýdaly we täsirli programmalar henizem ulanylýar.

Şeýle-de bolsa, QPILE dili LUA bilen deňeşdirilende ýönekeý, şonuň üçin programmirlemekde tejribäňiz ýok bolsa, QPILE-ni saýlamak has gowudyr. Bu dilde, çylşyrymly hasaplamalary ýerine ýetirmek zerurlygy ýok bolsa, ýönekeý robot ýazyp bilersiňiz.

QPILE-de söwda robotyny nädip döretmeli?

Söwda geňeşçisi döretmek üçin size aşakdaky programmalar gerek bolar:

  1. ITS Quik.
  2. Notepad ++ kod redaktory.
  3. QPILE üçin gollanma.
  4. Notepad ++ -da kod tapmak üçin XML plugin.

Bu programmalary göçürip alyň. UlanyjyDefineLang.xml-i C: \ Ulanyjylar \ Ulanyjy \ AppData \ Rouming \ Notepad ++ \ ýoluna ýerleşdirip, dil sintaksisini açyň.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEIlki bilen aşakdaky söwda strategiýasyny döredeliň. Scriptazgy, her minutda soňky birnäçe şem üçin Salam we Pes hasaplamaly, guralyň häzirki bahasyny barlamaly. Guralyň bahasy döwür üçin iň ýokary ýa-da iň pes baha ýetýän bolsa, zerur ugurda açylýar. Gysga bir signal alnanda, uzyn pozisiýa awtomatiki usulda ýapylýar. Robot GAZP guralyny ulanýar, wagt möhleti 1 min. Pes ölçeg çuňlugy 5 şemde goýuldy. Uzyn girmek üçin düzgün kesgitlenýär we döwür üçin iň ýokary bahanyň häzirki bahasynyň kesişmesi. Häzirki bahasy şu 5 şemiň iň pes bahasyndan geçse, gysga girer. Esasy sazlamalar we serwer senesi we wagty bilen Notepad ++ kod koduny ýazyň. Bu kod aşakdaky suratda görkezilýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEKodyň ilkinji 4 setiri programma sözbaşysyny düzýär. 6-njy we 44-nji setirleriň arasynda robotyň mazmuny bolan programmanyň esasy bölegi bar. 7 – 12 setirlerde guralyň, toparyň we müşderiniň kodlaryny, MICEX-de hasap belgisini öz içine alýan ulanyjy sazlamalary bar. Programma ýerine ýetirilende bu bahalar üýtgemeýär. 13 – 16 setirler üýtgeýänleriň başlangyç bahalarydyr. Her gaýtalama geçişinde nola öwrüler. 17 – 21 setirlerde serweriň senesini we wagtyny ulanmak üçin görkezme bar. Bu maglumatlar DATETIME funksiýasyna geçirilýär we tekst formatyna öwrülýär. 22 – 29 setirler alnan maglumatlary tablisa iberýär. Kod ýatda saklanmalydyr we qpl giňeltmesi görkezilmelidir.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILECtrl + F10 basyp we döredilen qpl faýly saýlap, programmany QUIK-de açyň. “Portfolios bilen işlemek” penjiresini açmak we portfeliň hasaplama möhletini 5 minuta bellemek üçin Ctrl + F11 kombinasiýasyny ulanyň. Sütünleri tablisada görkezmek üçin Ctrl + F12 basyň. Suratda robotyň işiniň netijesi görkezilýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEProgrammamyza ýene birnäçe funksiýa we şert goşalyň.
“Ulanyjy sazlamalary” bloky, soňky N barlaryny almak funksiýasynda ulanyljak NUMBER we INTERVAL üýtgeýjiler bilen doldurylýar. DATETIME funksiýasy serweriň senesini we wagtyny kesgitleýär we häzirki sene we wagt funksiýalary ondan CURDATE we CURTIME çagyrylýar. Häzirki wagt 24-nji setirdäki sana öwrülýär. 26-njy setir algoritmiň 10: 00-dan 18: 40-a çenli UTC işlemeginiň wagtyny kesgitleýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEQUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILEKöplenç görkezijiler, yrgyldamalar, statistik hasaplamalar diagrammanyň soňky N şemleri bilen hasaplanýar. QPILE-de N döwürleri ýaly şemleriň sanyny ýygnamak funksiýasy ýok, ýöne diagrammadaky şemlere tekst görnüşinde sene we wagt boýunça girýän GET_CANDLE funksiýasy bar. Kodumyzda iň soňky N barlary OHLC () almak funksiýasy bar. COLLECTION sanawynda ýerleşdirilen iň soňky şemleriň parametrleri bilen ýygyndy döredýär. Programma INTERVAL bahasyny barlaýar we 0… 60 aralygynda bolmasa, bahanyň rugsat berlen aralyga laýyk gelmeýändigi barada habar görkezilýär. Şemli MAP kolleksiýasy 88-nji setirde döredilýär. Täze-den köne şeme çenli INTERVAL ädim bilen diagrammany gerekli çuňluga çenli saýlamak üçin. 90-njy setirde, aýlaw yglan edilenden soň, robot bir aralyk yza gaýdýar. GET_CANDLE bilen şem alanyňyzda, INSERT_COLLECTION_TEAM funksiýasyny ulanyp, BARLIST ýygyndysyna ýerleşdiriň. OHLC () buýrugynyň işlemegi netijesinde BARLIST NUMBER mukdaryndaky gural diagrammasyndaky iň soňky şemler bilen doldurylýar. Theygyndydaky elementleriň sany GET_COLLECTION_COUNT () buýrugy bilen soralýar we BARCOUNT üýtgeýjisi tarapyndan habar berilýär. Serweriň senesi, wagty, INSTRUMENT we BARCOUNT üýtgeýjileriniň bahalary SET_VALUE () funksiýasy OUTPUT-da habar berilýär. Bu massiw CREATE_MAP () buýrugy bilen döredildi. Aşakdaky suratda görüp boljak maglumatlar adaty tablisa düşýär. INSTRUMENT we BARCOUNT üýtgeýjileriniň bahalary OUTPUT-daky SET_VALUE () funksiýasy bilen habar berilýär. Bu massiw CREATE_MAP () buýrugy bilen döredildi. Aşakdaky suratda görüp boljak maglumatlar adaty tablisa düşýär. INSTRUMENT we BARCOUNT üýtgeýjileriniň bahalary OUTPUT-daky SET_VALUE () funksiýasy bilen habar berilýär. Bu massiw CREATE_MAP () buýrugy bilen döredildi. Aşakdaky suratda görüp boljak maglumatlar adaty tablisa düşýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE

QPILE-de söwda robotlary – taýýar çözgütler

Orta robot

Demo robot hakyky söwda üçin amatly däl.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILERobot 5 parametrden ybarat. Sene, WAGT, PRICE kesgitleýji bahalar 30-njy derejä düzüldi. HEREKET we TP kesgitleýjiler nol takyklyga düzüldi. QPILE-de ýazylan ortaça hereket boýunça robot kody: [galereýa sütünleri = “5” id = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]

N. Moroşkin ýagdaýy hasaplaýjy

Iň ýokary rugsat berilýän çekiş derejelerini we häzirki talap we teklip bahalarynda uzyn we gysga pozisiýalar üçin maksat hasaplamak üçin programma. Derejeler, giriş giriş göwrüminiň 2 bahasy üçin hasaplanýar. Robot, açylyş bahasyndan bir ädimde duralganyň ösüşi ugrundaky pozisiýany açmagy hasaplamak bilen, rugsat beriş pozisiýasyny tapýar. Tapylan derejeler terminal penjiresine girizilýär, soňra bahalar diagrammasynda görkezilýär. Geleşikler berlen gural üçin kesgitlenýär. Aer açylsa, robot parametrlerini hasaplap başlaýar. Positionerleşişiniň üýtgemegine baglylykda bellenen sargytlar düzülýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE

Ses süzgüji

Şemleriň göwrüminiň arifmetiki ortaça mukdaryny hasaplamak we X koeffisiýenti bilen ortaça önüm bilen deňeşdirmek üçin portfel roboty, saýlanan döwürde meýilleşdirilen diagrammalar bilen dogry işleýär.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE

Grekler

Saýlawlaryň “grekleri” hasaplamak we görkezmek üçin bukja. “Gara duşlar” usulyndan tapawutlanýar.
QUIK üçin söwda robotlaryny programmirlemek üçin algoritmik dil QPILE

QUIK üçin TRIX söwda roboty

Programma TRIX görkezijisine esaslanýar. Görkeziji nol çyzygyň, görkezilen derejäniň üstünde ýapylanda, robot Uzyn orny eýeleýär. Positionerleşmek, girdeji almak, ýitirmek ýa-da yzky duralga bilen ýapylýar.

M4 deslapky prosessor

QPILE we Lua bilen işlemek üçin maksatnama. Executionerine ýetirip bolýan faýllar, resminamalar we yzygiderli aňlatma derňewi bilen DLL faýllary bolan arhiwleri öz içine alýar. Programmany ulanmak üçin ýerine ýetirip boljak faýllary açmaly we regexp2-ni C: \ Windows ýoluna ýerleşdirmeli. QUIK üçin QPILE-de sapaklar: https://youtu.be/vMTXwDUujpI Quik terminalynda QPILE-de skript gurmak: https://youtu.be/0B7qL8Svh7I Github-da QPILE algoritmik diliniň ulanylyşyny beýan edýän bölüm. Baglanyşykda ýerleşýän QUIK ulgam iş stansiýasy – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE köne dil, ýöne gaty ýönekeý we hatda täze söwdagärlere-de elýeterli. Uzak wagt bäri özüni subut eden söwda robotlary we programmalary üstünde işlemegini dowam etdirýärler. Şeýle-de bolsa, has çylşyrymly meseleler üçin LUA-ny ulanmak has gowudyr.

info
Rate author
Add a comment

  1. Владимир Геннадьевич Евсеев

    Reply