Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK

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

Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK.
Robot dagang bisa ditulis dina basa husus, sarupa jeung kode program. QPILE mangrupikeun salah sahijina, tulisan bakal nganggap basa ieu, ngabandingkeun basa QPILE sareng
LUA , sareng ogé nyayogikeun conto robot dina basa ieu.

Inpo umum ngeunaan QPILE

QPILE mangrupikeun singketan tina QUIK Programmable Interface sareng Logic Environment.

Ieu runtuyan paréntah diinterpretasi ku workstation QUIK. Utamana dipaké pikeun ngitung harga portopolio sekuritas. Basa ogé dipaké pikeun:

  • recalculation dinamis tina harga aset klien ‘dina desktop calo na di portfolios maranéhna. Dina kasus dimungkinkeun, total harga maranéhanana ogé recalculated;
  • nyungsi indikator leungit ngagunakeun algoritma sorangan jeung data pikeun lending margin;
  • ngamekarkeun strategi dagang katuhu.

Basa ngajelaskeun struktur tabel: janjian kolom jeung baris, rumus. Dina dimungkinkeun, operasi matematik, variabel, data tina tabel séjén bisa dipaké pikeun itungan. Kode program anu dimuat tina server QUIK atanapi tina disk pangguna diolah ku juru basa, anu ngitung nilai dina rumus. Tabél tina hiji program gaduh hiji sumber data, tapi itungan henteu diduplikasi sareng henteu mangaruhan efisiensi sistem. Nalika damel sareng tabel QUIK, tabel dina QPILE ngagaduhan fungsi standar. QUIK di gaw dilengkepan QPILE kode debugger. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Basa ngidinan Anjeun pikeun ngajelaskeun tabel anyar kalawan struktur dibikeun, nyorot sél kalawan nilai nu tangtu, ngitung widang dumasar kana éksprési matematik jeung logis. Pangguna bakal nampi béwara dina bentuk sinyal sora atanapi pesen téks. Tables on QPILE bisa diédit, dicitak, disalin, diékspor via ODBC na DDE server. Data awal asalna tina tabel QUIK:

  • transaksi, kaasup pikeun palaksanaan na impersonal;
  • pesenan, kaasup eureun pesenan, pikeun over-the-counter trades na pesenan – laporan pikeun trades di poéna pakampungan;
  • “portopolio klien”, “meuli/ngajual”
  • data tina posisi pamilon ku duit, rekening dagang, instrumen.

Tabél dumasar kana QPILE teu bisa disalin kana file téks via menu konteks na diékspor ka sistem analisis téhnis, sarta grafik teu bisa dimekarkeun dumasar kana éta. tabél basis QPILE teu bisa disaring atawa diurutkeun.

Gawe sareng méja

Pikeun ngamuat kode program, anjeun kedah milih ménu jasa, teras skrip QPILE. Anjeun oge bisa make kombinasi Ctrl + F11. Saatos Anjeun kudu klik “Tambahkeun” tur pilih file nu dipikahoyong. Mibanda extension .qpl sarta ngaranna bakal muncul dina daptar Aksara sadia.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKUpami aya kasalahan dina program, sistem bakal ngadamel béwara dina “Jandela Pesen”, anu bakal ngandung nami file anu cacad sareng nomer garis kalayan kasalahan éta. Upami teu aya kagagalan dina file, data ieu bakal dituduhkeun dina widang:

  • ngaran méja;
  • Jumlah kolom sareng klien;
  • daptar identifiers sarta klien;
  • daptar parameter sareng kode sumber file.

Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKTombol “Unduh sacara lokal” bakal ngamungkinkeun anjeun kéngingkeun méja tina file, sareng “Unggah ka server” bakal ngirim program ka server supados sadaya pangguna tiasa ngaksés éta. Pikeun nyieun tabel, klik Jieun Table. Dina “Skrip Sadia” pilih program anu anjeun kedah laksanakeun, atur jumlah garis ngalangkungan “Filter of Clients”, nangtukeun kolom anu diperyogikeun sareng sekuenna.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKNgareureuhkeun sareng neraskeun itungan, ngamimitian deui itungan sareng dina modeu debug, nyimpen pedaran kana file, nunjukkeun rumus, sareng parameter naskah sayogi dina ménu kontéks.

QPILE ngawangun

Tipe data

  • Senar – senar.
  • Ganda mangrupakeun angka floating point.
  • Koléksi – kumpulan.
  • Peta – hiji Asép Sunandar Sunarya associative – runtuyan pasangan nu ngidinan Anjeun pikeun meunangkeun informasi ku konci.

Babasan

Operasi aritmatika tambahan, pangurangan, perkalian, pembagian diterapkeun. Babasan logis “jeung”, “atawa”, sarua, leuwih, kirang, inequalities, konstruksi kondisional “lamun … lajeng …” ogé dipaké.

Fungsi

Fungsi tiasa ayana di mana waé dina program sareng gaduh nami anu béda. Jumlahna aya 18 kelompok fungsi sareng fungsi matematika pikeun kéngingkeun nilai tabel sareng parameter, susunan asosiatif, daptar tabel, sareng tugas-tugas sanés. Kelas kahiji:

  1. Fungsi matematik nu ngidinan Anjeun pikeun mulangkeun nilai sinus, kosinus, tangent, cotangent sahiji argumen, ngitung éksponén argumen, ngahasilkeun angka acak, jsb.
  2. Paréntah umum : NEW_GLOBAL pikeun ngamimitian variabel global sareng MESSAGE pikeun muka pesen.

Fungsi pikeun dianggo sareng:

  • Koléksi objék (Koléksi) . Aranjeunna ngidinan Anjeun pikeun nyieun koleksi anyar, balik jumlah diperlukeun elemen, ngaganti atawa selapkeun nilai nu dipikahoyong.
  • Array Asosiatif (MAP) . Pitulung pikeun nyieun jeung ngatur Asép Sunandar Sunarya.
  • File – damel sareng file téks, ngajaga log-log program. Ngaran koropak bisa ngandung jalur ka dinya.
  • Senar .
  • Grafik . Fungsi GET_CANDLE pikeun ngaksés data lilin sareng GET_CANDLE EX pikeun mulangkeun susunan asosiatif.
  • Aplikasi . Nyiptakeun pesenan sareng ngirim kana sistem perdagangan.
  • Tag . Konstruksi sareng instalasina dina bagan. Nambahkeun, mupus hiji atawa sakabéh labél, meunangkeun tur nyetel parameter pikeun labél husus.

Aya ogé fungsi pikeun:

  1. Pikeun ngakses barisan tabel QUIK wenang jeung daptar parameter sadia . Aksés ka data tabel gaw. Ieu kalebet GET_ITEM pikeun mulangkeun MAP sareng GET_NUMBER_OF pikeun mulangkeun jumlah éntri.
  2. Pikeun dianggo sareng tabel anu tiasa diprogram . Paréntah ieu beroperasi dina tabel OWN. Éta tiasa dibaca ku fungsi standar tina paragraf sateuacana sareng ku fungsi ieu. Grup ieu kalebet paréntah pikeun nambihan, ngarobih sareng mupus baris kalayan indéks, sareng ngabersihkeun tabel SENDIRI.

Pikeun meunangkeun nilai ngagunakeun:

  1. Tabél dagang ayeuna . Meunangkeun parameter inpormasi bursa nganggo paréntah GET_PARAM (_EX).
  2. Quote windows . Kéngingkeun nilai kutipan alat.
  3. Tabel posisi ku instrumen sareng artos . Kéngingkeun data dina klien, perusahaan, instrumen, akun depo ku kode.

fungsi Service – balik tanggal sési dagang ayeuna, runtuyan associative, tanggal ayeuna jeung waktu, nangtukeun kaayaan sambungan, interrupting mode itungan.

Program debugging

Kontrol léngkah-léngkah pikeun operasi program dilaksanakeun dina jandela “Debug”. Ieu dibuka tina menu konteks “Mimitian itungan dina mode debug”. Ogé bisa dibuka ku breakpoint () paréntah, jeung garis program bakal disorot beureum. Jandéla ngandung widang kalayan kode program sareng nilai variabel. Di handapeun jandela aya tombol “Lengkah salajengna”, “Teruskeun palaksanaan”, “Stop itungan”. Mencét F5 bakal neruskeun palaksanaan program, kombinasi Shift + F5 bakal ngeureunkeun debugging, konci F10 bakal langsung ka garis salajengna.

QPILE atanapi LUA?

LUA mangrupikeun basa pamrograman énggal pikeun nyiptakeun robot dagang. Kawas QPILE, éta dilaksanakeun di terminal QUIK. https://articles.opexflow.com/programming/lua.htm A situs dedicated ka ngembangkeun robot dagang keur dagang nembongkeun kaunggulan tina basa LUA leuwih QPILE. Janten, éta tiasa fungsina salaku skrip sareng bytecode anu henteu disusun, dilengkepan alat pamekar sareng mékanisme program berorientasi obyék. Objék anu ditulis dina basa pamrograman sanés tiasa disambungkeun kana program LUA. LUA nyadiakeun 8 tipe data, kaasup metatables. Basa LUA nyaéta multi-threaded, gancang, sareng transaksi sareng acara terminal henteu sinkron. LUA langkung umum tibatan QPILE, sareng seueur ekstensi anu ditulis pikeun éta.

Basa QPILE ayeuna tos teu dianggo. Para ahli dina forum nyarankeun ngagunakeun LUA. Sanajan program mangpaat tur éféktif masih dipaké.

Nanging, basa QPILE saderhana dibandingkeun sareng LUA, janten upami anjeun teu gaduh pangalaman dina program, langkung saé milih QPILE. Dina basa ieu, anjeun tiasa nyerat robot basajan upami anjeun henteu kedah ngalakukeun itungan anu rumit.

Kumaha cara nyiptakeun robot dagang dina QPILE?

Pikeun nyieun panaséhat dagang, anjeun peryogi program ieu:

  1. ITS Quik.
  2. Editor kode Notepad++.
  3. Pituduh ka QPILE.
  4. XML plugin pikeun deteksi kode dina Notepad ++.

Unduh sareng pasang program ieu. Aktipkeun sintaksis basa ku cara nempatkeun userDefineLang.xml dina jalur C:\Users\User\ AppData\Roaming\Notepad++\
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKKahiji, hayu urang nyieun strategi dagang handap. Skrip kedah ngitung Hai sareng Low pikeun sababaraha lilin terakhir unggal menit, pariksa harga alat ayeuna. Posisi dibuka dina arah anu diperyogikeun upami harga alat ngahontal nilai maksimal atanapi minimum pikeun période éta. Nalika sinyal pondok ditampi, posisi panjang otomatis ditutup. Robot ngagunakeun alat GAZP, pigura waktos disetel ka 1 mnt. Jero pangukuran hi-low disetel ka 5 lilin. Pikeun ngasupkeun Long, aturan diatur sarta simpang tina harga ayeuna tina nilai maksimum pikeun periode. Robot bakal asup Short lamun harga ayeuna crosses nilai minimum pikeun 5 lilin ieu. Tulis blok kode dina Notepad ++ sareng setélan dasar sareng tanggal sareng waktos server. Kode ieu dipidangkeun dina gambar di handap ieu.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK4 baris kode kahiji ngabentuk lulugu program. Antara garis 6 jeung 44 nyaéta awak program, nu ngandung eusi robot. Garis 7 – 12 ngandung setélan pangguna, anu kalebet kodeu alat, grup sareng klien, nomer akun dina MICEX. Nilai-nilai ieu henteu robih salami palaksanaan program. Garis 13 – 16 mangrupikeun nilai awal variabel. Aranjeunna bakal reset ka enol dina unggal iteration pass. Garis 17 – 21 ngandung indikasi pikeun nganggo tanggal sareng waktos server. Data ieu dialihkeun kana fungsi DATETIME sareng dirobih kana format téks. Garis 22 – 29 ngirimkeun data anu ditampi kana tabél. Kode kudu disimpen jeung extension qpl kudu dieusian.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKBuka program dina QUIK ku mencét Ctrl + F10 tur pilih file qpl dihasilkeun. Anggo kombinasi Ctrl + F11 pikeun muka jandela “Gawe sareng portopolio” sareng nyetél periode itungan portopolio ka 5 menit. Pencét Ctrl + F12 pikeun nyetél kolom pikeun dipidangkeun dina tabél. Gambar nembongkeun hasil karya robot.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKHayu urang tambahkeun sababaraha deui fungsi sareng kaayaan kana program urang.
Blok “Setélan pangguna” ditambah ku variabel NUMBER sareng INTERVAL, anu bakal dianggo dina fungsi pikeun kéngingkeun bar N terakhir. Fungsi DATETIME netepkeun tanggal sareng waktos server, sareng fungsi tanggal sareng waktos ayeuna CURDATE sareng CURTIME disebat tina éta. Waktu ayeuna dirobah jadi angka dina garis 24. Jalur 26 Nyetél waktu pikeun algoritma ngajalankeun ti 10:00:01 ka 18:40:00 UTC.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKAlgoritma basa QPILE pikeun programming robot dagang pikeun QUIKPaling sering, indikator, osilator, itungan statistik diitung ku lilin N panungtungan tina bagan. QPILE teu boga fungsi pikeun ngumpulkeun jumlah lilin N perioda katukang kawas kitu, tapi aya hiji fungsi GET_CANDLE nu aksés ka lilin dina bagan dumasar titimangsa jeung waktu dina format téks. Kode kami ngandung fungsi pikeun meunangkeun panungtungan N bar OHLC (). Éta nyiptakeun koleksi kalayan parameter lilin terakhir anu aya dina daptar KOLEKSI. Program mariksa nilai INTERVAL, sareng upami henteu aya dina kisaran 0…60, pesen dipintonkeun yén nilaina henteu cocog sareng rentang anu diidinan. A kempelan PETA jeung lilin dijieun dina garis 88. A Pikeun loop polling bagan ka jero diperlukeun jeung lengkah INTERVAL ti anyar kana lilin heubeul. Dina garis 90, sanggeus siklus dinyatakeun, robot balik deui hiji interval. Nalika anjeun kéngingkeun lilin nganggo GET_CANDLE, nempatkeun eta dina kumpulan BARLIST ngagunakeun fungsi INSERT_COLLECTION_TEAM. Salaku hasil tina operasi paréntah OHLC (), BARLIST replenished jeung lilin panungtungan ti bagan instrumen dina jumlah NUMBER. Jumlah elemen dina kumpulan dipénta ku GET_COLLECTION_COUNT () paréntah sarta dilaporkeun ku variabel BARCOUNT. Tanggal server, waktos, nilai variabel INSTRUMENT sareng BARCOUNT dilaporkeun ku fungsi SET_VALUE () dina OUTPUT. Asép Sunandar Sunarya ieu dijieun ku CREATE_MAP () paréntah. Data digolongkeun kana tabel adat, anu tiasa ditingali dina poto di handap ieu. nilai-nilai variabel INSTRUMEN sareng BARCOUNT dilaporkeun ku fungsi SET_VALUE() dina OUTPUT. Asép Sunandar Sunarya ieu dijieun ku CREATE_MAP () paréntah. Data digolongkeun kana tabel adat, anu tiasa ditingali dina poto di handap ieu. nilai-nilai variabel INSTRUMEN sareng BARCOUNT dilaporkeun ku fungsi SET_VALUE() dina OUTPUT. Asép Sunandar Sunarya ieu dijieun ku CREATE_MAP () paréntah. Data digolongkeun kana tabel adat, anu tiasa ditingali dina poto di handap ieu.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK

Robot dagang on QPILE – solusi siap-dijieun

Pindah rata robot

Robot demo henteu cocog pikeun dagang nyata.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIKrobot ngawengku 5 parameter. DATE, WAKTU, HARGA nilai identifier disetel ka tingkat 30. MOVING jeung TP identifier disetel ka nol precision. Kode robot dina rata-rata gerak ditulis dina QPILE: [kolom galeri = “5” id = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]

N. Moroshkin posisi kalkulator

Program pikeun ngitung tingkat drawdown maksimum anu diidinan sareng udagan pikeun posisi panjang sareng pondok dina harga naros sareng tawaran ayeuna. Tingkat diitung pikeun 2 nilai tina volume éntri posisi. Robot manggih volume posisi allowable nalika assigning urutan eureun dina hiji hambalan tina harga muka kalayan itungan muka posisi dina arah tumuwuhna bar. Tingkat kapanggih diasupkeun kana jandela terminal, nu salajengna reflected dina bagan harga. Transaksi dibereskeun pikeun instrumen anu dipasihkeun. Lamun posisi dibuka, robot mimiti ngitung parameter na. Gumantung kana parobahan dina posisi, pesenan ditugaskeun disaluyukeun.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK

Saringan volume

Robot portopolio pikeun ngitung rata-rata aritmetika volume pikeun lilin sareng ngabandingkeunana sareng produk rata-rata ku koefisien X. Gawéna leres sareng grafik plotted dina periode waktos anu dipilih.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK

Pilihan Yunani

Portopolio pikeun ngitung sareng ningalikeun pilihan “Yunani”. Ieu béda jeung métode Hideung-Pancuran.
Algoritma basa QPILE pikeun programming robot dagang pikeun QUIK

TRIX robot dagang pikeun QUIK

Program ieu dumasar kana Indikator TRIX. Nalika indikator nutup luhureun garis enol, tingkat dieusian, robot nyokot posisi Long. Posisi ditutup ku Take Profit, Stop Loss atanapi trailing stop.

M4 preprocessor

Program pikeun gawé bareng QPILE sareng Lua. Ngawengku arsip sareng file anu tiasa dieksekusi, dokuméntasi sareng file DLL kalayan parsing ekspresi biasa. Pikeun ngagunakeun program, anjeun kedah ngabongkar file anu tiasa dieksekusi sareng nempatkeun regexp2 dina jalur C:\Windows. Palajaran ngeunaan QPILE pikeun QUIK: https://youtu.be/vMTXwDUujpI Masang skrip dina QPILE di terminal Quik: https://youtu.be/0B7qL8Svh7I Bagian dina github anu ngajelaskeun pamakéan basa algoritma QPILE diwangun kana workstation sistem QUIK lokasina di link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE mangrupa basa luntur, tapi cukup basajan tur diaksés malah keur padagang novice. Robot dagang sareng program anu parantos kabuktian pikeun waktos anu lami teras damel di dinya. Nanging, pikeun tugas anu langkung kompleks langkung saé ngagunakeun LUA.

info
Rate author
Add a comment

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

    Reply