Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK

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

Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK.
Robot dagang bisa ditulis ing basa tartamtu, padha karo kode program. QPILE minangka salah sawijining, artikel kasebut bakal nimbang basa iki, mbandhingake basa QPILE lan
LUA , lan uga menehi conto robot ing basa iki.

Informasi umum babagan QPILE

QPILE minangka singkatan saka QUIK Programmable Interface and Logic Environment.

Iki minangka seri printah sing diinterpretasikake dening workstation QUIK. Utamane digunakake kanggo ngitung rega portofolio sekuritase. Basa kasebut uga digunakake kanggo:

  • recalculation dinamis rega aset klien ing desktop broker lan ing portofolio. Ing kasus terakhir, rega total uga diitung maneh;
  • nemokake indikator sing ilang nggunakake algoritma lan data dhewe kanggo utangan margin;
  • ngembangake strategi dagang sing bener.

Basa kasebut nggambarake struktur tabel: janjian kolom lan larik, rumus. Ing pungkasan, operasi matematika, variabel, data saka tabel liyane bisa digunakake kanggo pitungan. Kode program sing dimuat saka server QUIK utawa saka disk pangguna diproses dening juru basa, sing ngitung nilai ing rumus. Tabel siji program duwe siji sumber data, nanging petungan ora diduplikasi lan ora mengaruhi efisiensi sistem. Nalika nggarap tabel QUIK, tabel ing QPILE nduweni fungsi standar. QUIK ing papan kerja dilengkapi debugger kode QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Basa ngidini sampeyan njlèntrèhaké tabel anyar kanthi struktur tartamtu, nyorot sel kanthi nilai tartamtu, ngetung lapangan adhedhasar ekspresi matematika lan logis. Pangguna bakal nampa kabar kanthi bentuk sinyal swara utawa pesen teks. Tabel ing QPILE bisa diowahi, dicithak, disalin, diekspor liwat server ODBC lan DDE. Data awal saka tabel QUIK:

  • transaksi, kalebu kanggo eksekusi lan impersonal;
  • pesenan, kalebu mandeg pesenan, kanggo over-the-counter perdagangan lan pesenan – laporan kanggo perdagangan ing kesepakatan pemukiman;
  • “portofolio klien”, “tuku/adol”
  • data saka posisi peserta dening dhuwit, akun dagang, instrument.

Tabel adhedhasar QPILE ora bisa disalin menyang file teks liwat menu konteks lan diekspor menyang sistem analisis technical, lan denah ora bisa dikembangaké adhedhasar mau. Tabel basis QPILE ora bisa disaring utawa diurutake.

Nggarap meja

Kanggo mbukak kode program, sampeyan kudu milih menu layanan, banjur skrip QPILE. Sampeyan uga bisa nggunakake kombinasi Ctrl + F11. Sawise sampeyan kudu klik “Tambah” lan pilih file sing dipengini. Wis extension .qpl lan jeneng bakal katon ing dhaftar Scripts kasedhiya.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKYen ana kesalahan ing program kasebut, sistem bakal menehi kabar ing “Jendela Pesen”, sing bakal ngemot jeneng file sing rusak lan nomer baris kanthi kesalahan kasebut. Yen ora ana kegagalan ing file kasebut, data ing ngisor iki bakal dituduhake ing lapangan:

  • jeneng tabel;
  • nomer kolom lan klien;
  • dhaptar pengenal lan klien;
  • dhaptar paramèter lan kode sumber file.

Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKTombol “Download lokal” bakal ngidini sampeyan njupuk tabel saka file, lan “Unggah menyang server” bakal ngirim program menyang server supaya kabeh pangguna bisa ngakses. Kanggo nggawe tabel, klik Nggawe Tabel. Ing “Skrip sing kasedhiya” pilih program sing kudu ditindakake, atur nomer baris liwat “Filter klien”, nemtokake kolom sing dibutuhake lan urutane.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKNgaso lan nerusake pitungan, miwiti pitungan maneh lan ing mode debug, nyimpen katrangan menyang file, nuduhake rumus, lan paramèter skrip kasedhiya ing menu konteks.

QPILE mbangun

Jinis data

  • String – string.
  • Dobel minangka nomer floating point.
  • Koleksi – koleksi.
  • Peta – array asosiatif – urutan pasangan sing ngidini sampeyan entuk informasi kanthi kunci.

Ekspresi

Operasi aritmetika tambahan, pengurangan, perkalian, pembagian ditrapake. Ekspresi logis “lan”, “utawa”, padha, luwih, kurang, ketimpangan, konstruksi kondisional “yen … banjur …” uga digunakake.

Fungsi

Fungsi bisa dumunung ing ngendi wae ing program lan duwe jeneng beda. Secara total, 18 klompok fungsi lan fungsi matematika kasedhiya kanggo entuk nilai tabel lan parameter, susunan asosiatif, dhaptar tabel, lan tugas liyane. Kelas siji:

  1. Fungsi matematika sing ngidini sampeyan ngasilake nilai sinus, kosinus, tangent, cotangent saka argumen, ngitung eksponen argumen, ngasilake nomer acak, lsp.
  2. Prentah umum : NEW_GLOBAL kanggo miwiti variabel global lan MESSAGE kanggo mbukak pesen.

Fungsi kanggo nggarap:

  • Koleksi obyek (Koleksi) . Dheweke ngidini sampeyan nggawe koleksi anyar, ngasilake jumlah unsur sing dibutuhake, ngganti utawa nglebokake nilai sing dikarepake.
  • Associative Arrays (MAP) . Bantuan kanggo nggawe lan ngatur larik.
  • File – nggarap file teks, njaga log-log program. Jeneng berkas bisa ngemot path menyang.
  • Senar .
  • Grafik . Fungsi GET_CANDLE kanggo ngakses data lilin lan GET_CANDLE EX kanggo ngasilake array asosiatif.
  • Aplikasi . Nggawe pesenan lan ngirim menyang sistem dagang.
  • Tag . Konstruksi lan instalasi ing grafik. Nambah, mbusak siji utawa kabeh label, njupuk lan nyetel paramèter kanggo label tartamtu.

Ana uga fungsi kanggo:

  1. Kanggo ngakses larik tabel QUIK sing sewenang-wenang lan dhaptar paramèter sing kasedhiya . Akses menyang data tabel papan kerja. Iki kalebu GET_ITEM kanggo ngasilake MAP lan GET_NUMBER_OF kanggo ngasilake jumlah entri.
  2. Kanggo nggarap tabel sing bisa diprogram . Printah iki makaryakke ing tabel OWN. Bisa diwaca dening fungsi standar saka paragraf sadurunge lan dening fungsi kasebut. Klompok iki kalebu prentah kanggo nambah, ngowahi lan mbusak baris kanthi indeks, lan mbusak tabel OWN.

Kanggo entuk nilai gunakake:

  1. Tabel saka perdagangan saiki . Entuk paramèter informasi ijol-ijolan nggunakake perintah GET_PARAM (_EX).
  2. Kutipan windows . Entuk nilai kuotasi instrumen.
  3. Tabel posisi miturut instrumen lan dhuwit . Entuk data ing klien, perusahaan, instrumen, akun depo kanthi kode.

Fungsi layanan – bali tanggal sesi dagang saiki, seri asosiatif, tanggal lan wektu saiki, nemtokake negara sambungan, interrupting mode pitungan.

Program debugging

Kontrol langkah-langkah kanggo operasi program ditindakake ing jendela “Debug”. Iki dibukak saka menu konteks “Mulai pitungan ing mode debug”. Uga bisa dibukak karo breakpoint () printah, lan baris program bakal disorot abang. Jendhela ngemot kolom kanthi kode program lan nilai variabel. Ing sisih ngisor jendela ana tombol “Langkah sabanjure”, “Terusake eksekusi”, “Stop pitungan”. Pencet F5 bakal nerusake eksekusi program, kombinasi Shift + F5 bakal mandheg debugging, tombol F10 bakal langsung menyang baris sabanjure.

QPILE utawa LUA?

LUA minangka basa pamrograman anyar kanggo nggawe robot dagang. Kaya QPILE, dileksanakake ing terminal QUIK. https://articles.opexflow.com/programming/lua.htm Situs sing darmabakti kanggo pangembangan robot dagang kanggo dagang nuduhake kaluwihan basa LUA tinimbang QPILE. Dadi, bisa digunakake minangka skrip lan bytecode sing ora dikompilasi, dilengkapi alat pangembang lan mekanisme pemrograman berorientasi obyek. Obyek sing ditulis ing basa pamrograman liyane bisa disambungake menyang program LUA. LUA nyedhiyakake 8 jinis data, kalebu metatables. Basa LUA multi-threaded, cepet, lan transaksi lan acara terminal ora sinkron. LUA luwih umum tinimbang QPILE, lan akeh ekstensi wis ditulis kanggo iku.

Basa QPILE saiki wis ora digunakake. Para ahli ing forum nyaranake nggunakake LUA. Senajan program migunani lan efektif isih digunakake.

Nanging, basa QPILE prasaja dibandhingake karo LUA, dadi yen sampeyan ora duwe pengalaman babagan program, luwih becik milih QPILE. Ing basa iki, sampeyan bisa nulis robot sing prasaja yen sampeyan ora perlu ngetung rumit.

Kepiye carane nggawe robot dagang ing QPILE?

Kanggo nggawe penasihat dagang, sampeyan butuh program ing ngisor iki:

  1. ITS Quik.
  2. Editor kode Notepad++.
  3. Pandhuan kanggo QPILE.
  4. Plugin XML kanggo deteksi kode ing Notepad ++.

Ngundhuh lan nginstal program kasebut. Aktifake sintaks basa kanthi nyelehake userDefineLang.xml ing jalur C:\Users\User\ AppData\Roaming\Notepad++\
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKPisanan, ayo nggawe strategi dagang ing ngisor iki. Skrip kudu ngetung Hi lan Kurang kanggo sawetara lilin pungkasan saben menit, mriksa rega saiki instrument. Posisi dibukak ing arah sing dibutuhake yen rega instrumen tekan nilai maksimal utawa minimal kanggo periode kasebut. Nalika sinyal cendhak ditampa, posisi dawa ditutup kanthi otomatis. Robot nggunakake alat GAZP, pigura wektu disetel kanggo 1 min. Ambane pangukuran hi-low disetel dadi 5 lilin. Kanggo ngetik Long, aturan disetel lan persimpangan rega saiki saka nilai maksimum kanggo periode. Robot bakal mlebu Short yen rega saiki ngliwati nilai minimal kanggo 5 lilin iki. Tulis blok kode ing Notepad ++ kanthi setelan dhasar lan tanggal lan wektu server. Kode iki ditampilake ing gambar ing ngisor iki.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK4 baris pisanan kode mbentuk header program. Ing antarane baris 6 lan 44 yaiku awak program, sing ngemot isi robot. Baris 7 – 12 ngemot setelan pangguna, sing kalebu kode instrumen, grup lan klien, nomer akun ing MICEX. Nilai kasebut ora owah sajrone eksekusi program. Baris 13 – 16 minangka nilai awal variabel. Dheweke bakal direset menyang nol ing saben pass pengulangan. Baris 17 – 21 ngemot indikasi kanggo nggunakake tanggal lan wektu server. Data iki diterusake menyang fungsi DATETIME lan diowahi dadi format teks. Baris 22 – 29 ngirim data sing ditampa menyang meja. Kode kudu disimpen lan ekstensi qpl kudu ditemtokake.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKBukak program ing QUIK kanthi mencet Ctrl + F10 lan milih file qpl sing digawe. Gunakake kombinasi Ctrl + F11 kanggo mbukak jendhela “Work with Portfolios” lan nyetel periode pitungan portofolio dadi 5 menit. Pencet Ctrl + F12 kanggo nyetel kolom kanggo ditampilake ing tabel. Gambar kasebut nuduhake asil karya robot kasebut.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKAyo nambah sawetara fungsi lan kahanan kanggo program kita.
Blok “Setelan pangguna” ditambah karo variabel NUMBER lan INTERVAL, sing bakal digunakake ing fungsi entuk bar N pungkasan. Fungsi DATETIME nyetel tanggal lan wektu server, lan fungsi tanggal lan wektu saiki CURDATE lan CURTIME diarani saka iku. Wektu saiki diowahi dadi nomer ing baris 24. Baris 26 nyetel wektu kanggo algoritma kanggo mbukak saka 10:00:01 kanggo 18:40:00 UTC.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKBasa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKPaling asring, indikator, osilator, petungan statistik diwilang dening lilin N pungkasan ing grafik. QPILE ora duwe fungsi kanggo ngumpulake jumlah lilin N periode kepungkur, nanging ana fungsi GET_CANDLE sing ngakses lilin ing grafik miturut tanggal lan wektu ing format teks. Kode kita ngandhut fungsi kanggo njaluk pungkasan N bar OHLC (). Iku nggawe koleksi karo paramèter saka lilin pungkasan nested ing dhaftar KOLEKSI. Program mriksa nilai INTERVAL, lan yen ora ana ing kisaran 0…60, pesen ditampilake yen nilai kasebut ora cocog karo kisaran sing diidini. Koleksi MAP karo lilin digawe ing baris 88. A FOR daur ulang polling grafik menyang ambane dibutuhake karo langkah INTERVAL saka anyar kanggo lilin lawas. Ing baris 90, sawise siklus diumumake, robot bali interval. Yen sampeyan entuk lilin nganggo GET_CANDLE, selehake ing koleksi BARLIST nggunakake fungsi INSERT_COLLECTION_TEAM. Minangka asil saka operasi saka OHLC () printah, BARLIST replenished karo lilin pungkasan saka grafik instrument ing jumlah NUMBER. Jumlah unsur ing koleksi dijaluk dening GET_COLLECTION_COUNT () printah lan dilapurake dening variabel BARCOUNT. Tanggal server, wektu, nilai variabel INSTRUMENT lan BARCOUNT dilapurake dening fungsi SET_VALUE() ing OUTPUT. Array iki digawe dening CREATE_MAP () printah. Data kasebut ana ing tabel khusus, sing bisa dideleng ing foto ing ngisor iki. nilai variabel INSTRUMENT lan BARCOUNT dilapurake dening fungsi SET_VALUE() ing OUTPUT. Array iki digawe dening CREATE_MAP () printah. Data kasebut ana ing tabel khusus, sing bisa dideleng ing foto ing ngisor iki. nilai variabel INSTRUMENT lan BARCOUNT dilapurake dening fungsi SET_VALUE() ing OUTPUT. Array iki digawe dening CREATE_MAP () printah. Data kasebut ana ing tabel khusus, sing bisa dideleng ing foto ing ngisor iki.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK

Robot dagang ing QPILE – solusi sing wis siap

Robot obah rata-rata

Robot demo ora cocok kanggo dagang nyata.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIKRobot kalebu 5 parameter. Nilai pengenal DATE, TIME, PRICE disetel menyang level 30. MOVING lan TP identifier disetel menyang presisi nol. Kode robot ing rata-rata obah ditulis ing QPILE: [kolom galeri = “5” id = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]

N. Moroshkin posisi kalkulator

Program kanggo ngitung tingkat saka drawdown maksimum allowable lan target kanggo posisi dawa lan cendhak ing takon saiki lan prices bid. Tingkat diwilang kanggo 2 nilai volume entri posisi. Robot nemokake volume posisi sing diidini nalika nemtokake urutan mandeg ing siji langkah saka rega pambuka kanthi pitungan mbukak posisi ing arah pertumbuhan bar. Tingkat sing ditemokake dilebokake ing jendela terminal, sing banjur dibayangke ing grafik rega. Transaksi tetep kanggo instrumen tartamtu. Yen posisi dibukak, robot wiwit ngitung paramèter. Gumantung ing owah-owahan ing posisi, pesenan diutus diatur.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK

Filter volume

Robot portofolio kanggo ngitung rata-rata aritmetika volume kanggo lilin lan mbandhingake karo produk rata-rata kanthi koefisien X. Dianggo kanthi bener karo grafik sing diplot ing periode wektu sing dipilih.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK

Pilihan Yunani

Portofolio kanggo ngitung lan nampilake opsi “Yunani”. Beda karo metode Black-Showers.
Basa algoritma QPILE kanggo pemrograman robot dagang kanggo QUIK

Robot dagang TRIX kanggo QUIK

Program kasebut adhedhasar Indikator TRIX. Nalika indikator nutup ing ndhuwur garis nol, tingkat sing ditemtokake, robot njupuk posisi Long. Posisi ditutup dening Take Profit, Stop Loss utawa trailing stop.

M4 preprocessor

Program kanggo nggarap QPILE lan Lua. Kalebu arsip kanthi file eksekusi, dokumentasi lan file DLL kanthi parsing ekspresi reguler. Kanggo nggunakake program kasebut, sampeyan kudu mbongkar file sing bisa dieksekusi lan nyelehake regexp2 ing jalur C:\Windows. Pelajaran babagan QPILE kanggo QUIK: https://youtu.be/vMTXwDUujpI Nginstal skrip ing QPILE ing terminal Quik: https://youtu.be/0B7qL8Svh7I Bagean ing github sing nggambarake panggunaan basa algoritma QPILE sing dibangun ing Workstation sistem QUIK dumunung ing link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE minangka basa sing wis lawas, nanging cukup prasaja lan bisa diakses sanajan para pedagang anyar. Robot dagang lan program sing wis mbuktekake dhewe kanggo wektu sing suwe terus digarap. Nanging, kanggo tugas sing luwih rumit, luwih becik nggunakake LUA.

info
Rate author
Add a comment

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

    Reply