Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK

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

Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK.
Robot dagangan boleh ditulis dalam bahasa tertentu, serupa dengan kod program. QPILE ialah salah satu daripadanya, artikel itu akan mempertimbangkan bahasa ini, membandingkan bahasa QPILE dan
LUA , dan juga menyediakan contoh robot dalam bahasa ini.

Maklumat am tentang QPILE

QPILE ialah singkatan yang bermaksud QUIK Antara Muka Boleh Aturcara dan Persekitaran Logik.

Ini ialah satu siri arahan yang ditafsirkan oleh stesen kerja QUIK. Ia digunakan terutamanya untuk mengira harga portfolio sekuriti. Bahasa ini juga digunakan untuk:

  • pengiraan semula dinamik harga aset pelanggan pada desktop broker dan dalam portfolio mereka. Dalam kes kedua, jumlah harga mereka juga dikira semula;
  • mencari petunjuk yang hilang menggunakan algoritma dan data mereka sendiri untuk pinjaman margin;
  • membangunkan strategi perdagangan yang betul.

Bahasa menerangkan struktur jadual: pelantikan lajur dan baris, formula. Dalam yang terakhir, operasi matematik, pembolehubah, data dari jadual lain boleh digunakan untuk pengiraan. Kod program yang dimuatkan dari pelayan QUIK atau dari cakera pengguna diproses oleh penterjemah bahasa, yang mengira nilai dalam formula. Jadual satu program mempunyai satu sumber data, tetapi pengiraan tidak diduplikasi dan tidak menjejaskan kecekapan sistem. Apabila bekerja dengan jadual QUIK, jadual pada QPILE mempunyai fungsi standard. QUIK di tempat kerja dilengkapi dengan penyahpepijat kod QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Bahasa ini membolehkan anda menerangkan jadual baharu dengan struktur tertentu, menyerlahkan sel dengan nilai tertentu, mengira medan berdasarkan ungkapan matematik dan logik. Pengguna akan menerima pemberitahuan dalam bentuk isyarat bunyi atau mesej teks. Jadual pada QPILE boleh diedit, dicetak, disalin, dieksport melalui pelayan ODBC dan DDE. Data awal adalah daripada jadual QUIK:

  • transaksi, termasuk untuk pelaksanaan dan tidak peribadi;
  • pesanan, termasuk pesanan henti, untuk dagangan dan pesanan di kaunter – laporan untuk perdagangan dalam tawaran penyelesaian;
  • “portfolio pelanggan”, “beli/jual”
  • data daripada kedudukan peserta melalui wang, akaun dagangan, instrumen.

Jadual berdasarkan QPILE tidak boleh disalin ke fail teks melalui menu konteks dan dieksport ke sistem analisis teknikal, dan carta tidak boleh dibangunkan berdasarkannya. Jadual berasaskan QPILE tidak boleh ditapis atau diisih.

Bekerja dengan meja

Untuk memuatkan kod program, anda perlu memilih menu perkhidmatan, kemudian skrip QPILE. Anda juga boleh menggunakan gabungan Ctrl+F11. Selepas anda perlu mengklik “Tambah” dan pilih fail yang dikehendaki. Ia mempunyai sambungan .qpl dan namanya akan muncul dalam senarai Skrip Tersedia.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKJika terdapat ralat dalam program, sistem akan membuat pemberitahuan dalam “Tetingkap Mesej”, yang akan mengandungi nama fail yang rosak dan nombor baris dengan ralat. Jika tiada kegagalan ditemui dalam fail, data berikut akan ditunjukkan dalam medan:

  • nama jadual;
  • bilangan lajur dan pelanggan;
  • senarai pengecam dan pelanggan;
  • senarai parameter dan kod sumber fail.

Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKButang “Muat turun secara setempat” akan membolehkan anda mendapatkan jadual daripada fail, dan “Muat naik ke pelayan” akan menghantar program ke pelayan supaya semua pengguna boleh mengaksesnya. Untuk membuat jadual, klik Cipta Jadual. Dalam “Skrip yang tersedia” pilih program yang perlu anda laksanakan, tetapkan bilangan baris melalui “Penapis pelanggan”, tentukan lajur yang diperlukan dan urutannya.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKMenjeda dan menyambung semula pengiraan, memulakan pengiraan sekali lagi dan dalam mod nyahpepijat, menyimpan penerangan pada fail, menunjukkan formula dan parameter skrip tersedia dalam menu konteks.

binaan QPILE

Jenis data

  • Rentetan – rentetan.
  • Double ialah nombor titik terapung.
  • Koleksi – koleksi.
  • Peta – tatasusunan bersekutu – jujukan pasangan yang membolehkan anda mendapatkan maklumat dengan kunci.

Ungkapan

Operasi aritmetik tambah, tolak, darab, bahagi digunakan. Ungkapan logik “dan”, “atau”, sama, lebih banyak, kurang, ketaksamaan, pembinaan bersyarat “jika … maka …” juga digunakan.

Fungsi

Fungsi boleh didapati di mana-mana dalam program dan mempunyai nama yang berbeza. Secara keseluruhan, 18 kumpulan fungsi dan fungsi matematik tersedia untuk mendapatkan nilai jadual dan parameter, tatasusunan bersekutu, senarai jadual dan tugas lain. Gred pertama:

  1. Fungsi matematik yang membolehkan anda mengembalikan nilai sinus, kosinus, tangen, kotangen hujah, mengira eksponen hujah, menjana nombor rawak, dsb.
  2. Perintah umum : NEW_GLOBAL untuk memulakan pembolehubah global dan MESSAGE untuk membuka mesej.

Fungsi untuk bekerja dengan:

  • Koleksi objek (Koleksi) . Mereka membenarkan anda membuat koleksi baharu, mengembalikan bilangan elemen yang diperlukan, menggantikan atau memasukkan nilai yang dikehendaki.
  • Tatasusunan Bersekutu (MAP) . Bantu untuk mencipta dan mengurus tatasusunan.
  • Fail – bekerja dengan fail teks, mengekalkan log-log program. Nama fail mungkin mengandungi laluan kepadanya.
  • Rentetan .
  • graf . Berfungsi GET_CANDLE untuk mengakses data lilin dan GET_CANDLE EX untuk mengembalikan tatasusunan bersekutu.
  • Aplikasi . Mencipta pesanan dan menghantarnya ke sistem perdagangan.
  • Tag . Pembinaan dan pemasangan mereka pada carta. Menambah, memadam satu atau semua label, mendapatkan dan menetapkan parameter untuk label tertentu.

Terdapat juga fungsi untuk:

  1. Untuk mengakses baris jadual QUIK arbitrari dan senarai parameter yang tersedia . Akses kepada data jadual tempat kerja. Ini termasuk GET_ITEM untuk mengembalikan MAP dan GET_NUMBER_OF untuk mengembalikan bilangan entri.
  2. Untuk bekerja dengan jadual boleh atur cara . Arahan ini beroperasi pada jadual OWN. Ia boleh dibaca oleh fungsi standard dari perenggan sebelumnya dan oleh fungsi ini. Kumpulan ini termasuk arahan untuk menambah, mengubah suai dan memadam baris dengan indeks dan mengosongkan jadual OWN sepenuhnya.

Untuk mendapatkan nilai gunakan:

  1. Jadual dagangan semasa . Mendapatkan parameter maklumat pertukaran menggunakan arahan GET_PARAM (_EX).
  2. Petikan tingkap . Mendapatkan nilai petikan instrumen.
  3. Jadual kedudukan mengikut instrumen dan wang . Mendapatkan data pada pelanggan, syarikat, instrumen, akaun depo mengikut kod.

Fungsi perkhidmatan – mengembalikan tarikh sesi dagangan semasa, siri bersekutu, tarikh dan masa semasa, menentukan keadaan sambungan, mengganggu mod pengiraan.

Program nyahpepijat

Kawalan langkah demi langkah ke atas pengendalian program dijalankan dalam tetingkap “Nyahpepijat”. Ia dibuka dari menu konteks “Mulakan pengiraan dalam mod nyahpepijat”. Ia juga boleh dibuka dengan perintah breakpoint() dan baris program akan diserlahkan dengan warna merah. Tetingkap mengandungi medan dengan kod program dan nilai pembolehubah. Di bahagian bawah tetingkap terdapat butang “Langkah seterusnya”, “Teruskan pelaksanaan”, “Hentikan pengiraan”. Menekan F5 akan meneruskan pelaksanaan program, gabungan Shift + F5 akan menghentikan penyahpepijatan, kekunci F10 akan mengarahkan ke baris seterusnya.

QPILE atau LUA?

LUA ialah bahasa pengaturcaraan baharu untuk mencipta robot dagangan. Seperti QPILE, ia dilaksanakan dalam terminal QUIK. https://articles.opexflow.com/programming/lua.htm Tapak khusus untuk pembangunan robot dagangan untuk perdagangan menunjukkan kelebihan bahasa LUA berbanding QPILE. Jadi, ia boleh berfungsi sebagai skrip dan kod bait yang tidak tersusun, dilengkapi dengan alat pembangun dan mekanisme pengaturcaraan berorientasikan objek. Objek yang ditulis dalam bahasa pengaturcaraan lain boleh disambungkan ke program LUA. LUA menyediakan 8 jenis data, termasuk metatable. Bahasa LUA adalah berbilang benang, pantas dan transaksi serta peristiwa terminal tidak segerak. LUA adalah lebih biasa daripada QPILE, dan banyak sambungan telah ditulis untuknya.

Bahasa QPILE kini tidak digunakan lagi. Pakar di forum mengesyorkan menggunakan LUA. Walaupun program yang berguna dan berkesan masih digunakan.

Walau bagaimanapun, bahasa QPILE adalah mudah berbanding dengan LUA, jadi jika anda tidak mempunyai pengalaman dalam pengaturcaraan, lebih baik memilih QPILE. Dalam bahasa ini, anda boleh menulis robot mudah jika anda tidak perlu melakukan pengiraan yang rumit.

Bagaimana untuk mencipta robot dagangan di QPILE?

Untuk mencipta penasihat dagangan, anda memerlukan program berikut:

  1. ITS Quik.
  2. Editor kod Notepad++.
  3. Panduan untuk QPILE.
  4. Pemalam XML untuk pengesanan kod dalam Notepad++.

Muat turun dan pasang program ini. Dayakan sintaks bahasa dengan meletakkan userDefineLang.xml dalam laluan C:\Users\User\ AppData\Roaming\Notepad++\
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKMula-mula, mari buat strategi perdagangan berikut. Skrip harus mengira Hi dan Low untuk beberapa lilin terakhir setiap minit, semak harga semasa instrumen. Kedudukan dibuka dalam arah yang diperlukan jika harga instrumen mencapai nilai maksimum atau minimum untuk tempoh tersebut. Apabila isyarat pendek diterima, kedudukan panjang ditutup secara automatik. Robot menggunakan alat GAZP, jangka masa ditetapkan kepada 1 min. Kedalaman ukuran hi-rendah ditetapkan kepada 5 lilin. Untuk memasukkan Long, peraturan ditetapkan dan persimpangan harga semasa nilai maksimum untuk tempoh tersebut. Robot akan masuk Short jika harga semasa melepasi nilai minimum untuk 5 candle ini. Tulis blok kod dalam Notepad++ dengan tetapan asas dan tarikh dan masa pelayan. Kod ini ditunjukkan dalam gambar di bawah.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK4 baris pertama kod membentuk pengepala program. Antara baris 6 dan 44 ialah badan program, yang mengandungi kandungan robot. Baris 7 – 12 mengandungi tetapan pengguna, yang termasuk kod instrumen, kumpulan dan pelanggan, nombor akaun pada MICEX. Nilai ini tidak berubah semasa pelaksanaan program. Baris 13 – 16 ialah nilai awal pembolehubah. Mereka akan ditetapkan semula kepada sifar pada setiap pas lelaran. Baris 17 – 21 mengandungi petunjuk untuk menggunakan tarikh dan masa pelayan. Data ini dihantar ke fungsi DATETIME dan ditukar kepada format teks. Baris 22 – 29 menghantar data yang diterima ke jadual. Kod mesti disimpan dan sambungan qpl mesti ditentukan.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKBuka program dalam QUIK dengan menekan Ctrl+F10 dan memilih fail qpl yang dihasilkan. Gunakan gabungan Ctrl+F11 untuk membuka tetingkap “Kerja dengan Portfolio” dan tetapkan tempoh pengiraan portfolio kepada 5 minit. Tekan Ctrl+F12 untuk menetapkan lajur untuk dipaparkan dalam jadual. Gambar menunjukkan hasil kerja robot tersebut.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKMari tambah beberapa lagi fungsi dan syarat pada program kami.
Blok “Tetapan pengguna” ditambah dengan pembolehubah NUMBER dan INTERVAL, yang akan digunakan dalam fungsi mendapatkan bar N terakhir. Fungsi DATETIME menetapkan tarikh dan masa pelayan, dan fungsi tarikh dan masa semasa CURDATE dan CURTIME dipanggil daripadanya. Masa semasa ditukar kepada nombor pada baris 24. Baris 26 menetapkan masa untuk algoritma berjalan dari 10:00:01 hingga 18:40:00 UTC.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKBahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKSelalunya, penunjuk, pengayun, pengiraan statistik dikira oleh lilin N terakhir carta. QPILE tidak mempunyai fungsi untuk mengumpul bilangan lilin N tempoh yang lalu seperti itu, tetapi terdapat fungsi GET_CANDLE yang mengakses lilin pada carta mengikut tarikh dan masa dalam format teks. Kod kami mengandungi fungsi untuk mendapatkan bar N terakhir OHLC(). Ia mencipta koleksi dengan parameter lilin terakhir yang bersarang dalam senarai KOLEKSI. Program menyemak nilai INTERVAL, dan jika ia tidak berada dalam julat 0…60, mesej dipaparkan bahawa nilai itu tidak sepadan dengan julat yang dibenarkan. Koleksi MAP dengan lilin dicipta dalam baris 88. A FOR gelung mengundi carta ke kedalaman yang diperlukan dengan langkah INTERVAL dari lilin baru ke lama. Dalam baris 90, selepas kitaran diisytiharkan, robot kembali selang waktu. Apabila anda mendapat lilin dengan GET_CANDLE, letakkannya dalam koleksi BARLIST menggunakan fungsi INSERT_COLLECTION_TEAM. Hasil daripada pengendalian arahan OHLC(), BARLIST diisi semula dengan lilin terakhir daripada carta instrumen dalam jumlah NUMBER. Bilangan elemen dalam koleksi diminta oleh arahan GET_COLLECTION_COUNT() dan dilaporkan oleh pembolehubah BARCOUNT. Tarikh pelayan, masa, nilai pembolehubah INSTRUMENT dan BARCOUNT dilaporkan oleh fungsi SET_VALUE() dalam OUTPUT. Tatasusunan ini dicipta oleh arahan CREATE_MAP(). Data jatuh ke dalam jadual tersuai, yang boleh dilihat dalam foto di bawah. nilai-nilai pembolehubah INSTRUMENT dan BARCOUNT dilaporkan oleh fungsi SET_VALUE() dalam OUTPUT. Tatasusunan ini dicipta oleh arahan CREATE_MAP(). Data jatuh ke dalam jadual tersuai, yang boleh dilihat dalam foto di bawah. nilai-nilai pembolehubah INSTRUMENT dan BARCOUNT dilaporkan oleh fungsi SET_VALUE() dalam OUTPUT. Tatasusunan ini dicipta oleh arahan CREATE_MAP(). Data jatuh ke dalam jadual tersuai, yang boleh dilihat dalam foto di bawah.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK

Robot dagangan di QPILE – penyelesaian siap sedia

Robot purata bergerak

Robot demo tidak sesuai untuk perdagangan sebenar.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIKRobot termasuk 5 parameter. Nilai pengecam DATE, TIME, PRICE ditetapkan ke tahap 30. MOVING dan TP pengecam ditetapkan kepada ketepatan sifar. Kod robot pada purata bergerak yang ditulis di bawah QPILE: [lajur galeri=”5″ id=”14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907″]

N. Kalkulator kedudukan Moroshkin

Satu program untuk mengira tahap pengeluaran maksimum yang dibenarkan dan sasaran untuk kedudukan panjang dan pendek pada harga permintaan dan tawaran semasa. Tahap dikira untuk 2 nilai volum kemasukan kedudukan. Robot mencari volum kedudukan yang dibenarkan apabila menetapkan perintah henti dalam satu langkah dari harga pembukaan dengan pengiraan membuka kedudukan ke arah pertumbuhan bar. Tahap yang ditemui dimasukkan ke dalam tetingkap terminal, yang kemudiannya ditunjukkan dalam carta harga. Urus niaga ditetapkan untuk instrumen tertentu. Jika kedudukan dibuka, robot mula mengira parameternya. Bergantung pada perubahan dalam kedudukan, pesanan yang ditetapkan diselaraskan.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK

Penapis volum

Robot portfolio untuk mengira min aritmetik isipadu untuk lilin dan membandingkannya dengan hasil purata dengan pekali X. Berfungsi dengan betul dengan carta yang diplot dalam tempoh masa yang dipilih.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK

Pilihan Yunani

Portfolio untuk mengira dan memaparkan pilihan “Yunani”. Ia berbeza daripada kaedah Black-Showers.
Bahasa algoritma QPILE untuk robot dagangan pengaturcaraan untuk QUIK

Robot dagangan TRIX untuk QUIK

Program ini berdasarkan Penunjuk TRIX. Apabila penunjuk ditutup di atas garisan sifar, tahap yang ditentukan, robot mengambil kedudukan Panjang. Kedudukan ditutup oleh Take Profit, Stop Loss atau trailing stop.

M4 prapemproses

Program untuk bekerja dengan QPILE dan Lua. Termasuk arkib dengan fail boleh laku, dokumentasi dan fail DLL dengan penghuraian ungkapan biasa. Untuk menggunakan program ini, anda perlu membongkar fail boleh laku dan letakkan regexp2 dalam laluan C:\Windows. Pelajaran tentang QPILE untuk QUIK: https://youtu.be/vMTXwDUujpI Memasang skrip pada QPILE dalam terminal Quik: https://youtu.be/0B7qL8Svh7I Bahagian pada github yang menerangkan penggunaan bahasa algoritma QPILE yang dibina ke dalam Stesen kerja sistem QUIK terletak di pautan – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE ialah bahasa lapuk, tetapi agak mudah dan boleh diakses walaupun kepada pedagang baru. Robot dan program dagangan yang telah membuktikan diri mereka untuk masa yang lama terus mengusahakannya. Walau bagaimanapun, untuk tugas yang lebih kompleks adalah lebih baik menggunakan LUA.

info
Rate author
Add a comment

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

    Reply