QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili

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

QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili.
Ticarət robotları proqram koduna bənzər xüsusi bir dildə yazıla bilər. QPILE onlardan biridir, məqalədə bu dili nəzərdən keçirəcək, QPILE və
LUA dillərini müqayisə edəcək , həmçinin bu dildə robot nümunələri təqdim edəcək.

QPILE haqqında ümumi məlumat

QPILE qısaldılmış QUIK Proqramlaşdırıla bilən İnterfeys və Məntiq Mühitinin qısaldılmasıdır.

Bu, QUIK iş stansiyası tərəfindən şərh edilən bir sıra əmrlərdir. Əsasən qiymətli kağızlar portfelinin qiymətini hesablamaq üçün istifadə olunur. Dil həmçinin aşağıdakılar üçün istifadə olunur:

  • brokerin iş masasında və onların portfellərində müştərilərin aktivlərinin qiymətinin dinamik yenidən hesablanması. Sonuncu halda, onların ümumi qiyməti də yenidən hesablanır;
  • marja kreditləşməsi üçün öz alqoritmləri və məlumatlarından istifadə edərək çatışmayan göstəricilərin tapılması;
  • düzgün ticarət strategiyasının hazırlanması.

Dil cədvəlin strukturunu təsvir edir: sütun və sətirlərin təyin edilməsi, düsturlar. Sonuncuda hesablama üçün riyazi əməliyyatlar, dəyişənlər, digər cədvəllərdən verilənlər istifadə edilə bilər. QUIK serverindən və ya istifadəçinin diskindən yüklənmiş proqram kodu düsturlardakı dəyərləri hesablayan dil tərcüməçisi tərəfindən işlənir. Bir proqramın cədvəlləri bir məlumat mənbəyinə malikdir, lakin hesablamalar təkrarlanmır və sistemin səmərəliliyinə təsir göstərmir. QUIK cədvəlləri ilə işləyərkən QPILE-dəki cədvəllər standart funksiyalara malikdir. İş yerindəki QUIK QPILE kod sazlayıcısı ilə təchiz edilmişdir. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Bu dil verilmiş struktura malik yeni cədvəlləri təsvir etməyə, müəyyən qiymətli xanaları vurğulamağa, riyazi və məntiqi ifadələr əsasında sahələri hesablamağa imkan verir. İstifadəçi bildirişləri səs siqnalı və ya mətn mesajı şəklində alacaq. QPILE-dəki cədvəllər ODBC və DDE server vasitəsilə redaktə edilə, çap oluna, kopyalana, ixrac edilə bilər. İlkin məlumatlar QUIK cədvəllərindəndir:

  • əməliyyatlar, o cümlədən icra və şəxsi olmayan;
  • birjadankənar hərraclar üçün sifarişlər, o cümlədən stop əmrləri və sifarişlər – hesablaşma əqdləri üzrə hərraclar üçün hesabatlar;
  • “müştəri portfeli”, “almaq/satmaq”
  • pul, ticarət hesabları, alət üzrə iştirakçının mövqelərindən məlumatlar.

QPILE-ə əsaslanan cədvəllər kontekst menyusu vasitəsilə mətn faylına kopyalana və texniki analiz sistemlərinə ixrac edilə bilməz və onların əsasında qrafiklər hazırlana bilməz. QPILE əsaslı cədvəlləri filtrləmək və ya çeşidləmək mümkün deyil.

Masa ilə işləmək

Proqram kodunu yükləmək üçün xidmətlər menyusunu, sonra QPILE skriptlərini seçmək lazımdır. Ctrl+F11 birləşməsindən də istifadə edə bilərsiniz. Sonra “Əlavə et” düyməsini basmalı və istədiyiniz faylı seçməlisiniz. Onun .qpl uzantısı var və adı Mövcud Skriptlər siyahısında görünəcək.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliProqramda xəta olarsa, sistem “Mesaj pəncərəsi”ndə bildiriş verəcək, bu bildirişdə qüsurlu faylın adı və xətanın olduğu sətir nömrəsi göstərilir. Faylda heç bir nasazlıq aşkar edilmədikdə, aşağıdakı məlumatlar sahələrdə göstəriləcəkdir:

  • masa adı;
  • sütunların və müştərilərin sayı;
  • identifikatorların və müştərilərin siyahısı;
  • parametrlərin siyahısı və faylın mənbə kodu.

QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili“Yerli olaraq yüklə” düyməsi cədvəli fayldan əldə etməyə imkan verəcək və “Serverə yüklə” proqramı serverə göndərəcək ki, bütün istifadəçilər ona daxil ola bilsin. Cədvəl yaratmaq üçün Cədvəl Yarat klikləyin. “Mövcud skriptlər” bölməsində yerinə yetirmək üçün lazım olan proqramı seçin, “Müştərilərin filtri” vasitəsilə sətirlərin sayını təyin edin, tələb olunan sütunları və onların ardıcıllığını təyin edin.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliHesablamanın dayandırılması və davam etdirilməsi, hesablamanın yenidən və sazlama rejimində başlaması, təsvirin faylda saxlanması, düsturun nümayişi və skript parametrləri kontekst menyusunda mövcuddur.

QPILE konstruksiyaları

Məlumat növləri

  • Simli – simli.
  • İkiqat üzən nöqtəli rəqəmdir.
  • Kolleksiya – kolleksiya.
  • Xəritə – assosiativ massiv – açarla məlumat əldə etməyə imkan verən cütlər ardıcıllığı.

İfadələri

Toplama, çıxma, vurma, bölmə hesab əməliyyatları tətbiq edilir. “və”, “və ya”, bərabər, çox, az, bərabərsizliklər, şərti konstruksiya “əgər… onda…” məntiqi ifadələri də işlənir.

Funksiyalar

Funksiyalar proqramın istənilən yerində yerləşdirilə və müxtəlif adlara malik ola bilər. Cədvəllərin və parametrlərin, assosiativ massivlərin, cədvəllərin siyahısının və digər tapşırıqların qiymətlərini əldə etmək üçün ümumilikdə 18 riyazi funksiya və funksiya qrupu mövcuddur. Birinci sinif:

  1. Arqumentin sinus, kosinus, tangens, kotangens qiymətini qaytarmağa, arqumentin eksponentini hesablamağa, təsadüfi ədəd yaratmağa və s. imkan verən riyazi funksiyalar .
  2. Ümumi əmrlər : qlobal dəyişəni işə salmaq üçün NEW_GLOBAL və mesajları açmaq üçün MESSAGE.

İşləmək üçün funksiyalar:

  • Obyektlərin kolleksiyaları (Kolleksiya) . Onlar yeni kolleksiya yaratmağa, lazımi sayda elementləri qaytarmağa, istədiyiniz dəyərləri dəyişdirməyə və ya daxil etməyə imkan verir.
  • Assosiativ Massivlər (MAP) . Massivi yaratmağa və idarə etməyə kömək edin.
  • Fayllar – mətn faylları ilə işləmək, proqramın log-logunu saxlamaq. Faylın adı ona gedən yolu ehtiva edə bilər.
  • Simlər .
  • Qrafiklər . Şam məlumatlarına daxil olmaq üçün GET_CANDLE və assosiativ massivi qaytarmaq üçün GET_CANDLE EX funksiyaları.
  • Proqramlar . Sifarişlərin yaradılması və ticarət sisteminə göndərilməsi.
  • Teqlər . Qrafikdə onların tikintisi və quraşdırılması. Bir və ya bütün etiketlərin əlavə edilməsi, silinməsi, müəyyən bir etiket üçün parametrlərin alınması və qurulması.

Bunun üçün də funksiyalar var:

  1. İxtiyari QUIK cədvəllərinin sıralarına və mövcud parametrlərin siyahısına daxil olmaq üçün . İş yeri cədvəli məlumatlarına giriş. Bunlara MAP-ı qaytarmaq üçün GET_ITEM və girişlərin sayını qaytarmaq üçün GET_NUMBER_OF daxildir.
  2. Proqramlaşdırıla bilən cədvəllə işləmək . Bu əmrlər ÖZ cədvəlində işləyir. Əvvəlki paraqrafdakı standart funksiyalar və bu funksiyalar tərəfindən oxunur. Bu qrupa indeksli sıra əlavə etmək, dəyişdirmək və silmək və ÖZ cədvəlini tamamilə təmizləmək üçün əmrlər daxildir.

Dəyərləri əldə etmək üçün istifadə edin:

  1. Cari ticarət cədvəlləri . GET_PARAM (_EX) əmrlərindən istifadə edərək məlumat mübadiləsi parametrlərinin əldə edilməsi.
  2. Sitat pəncərələri . Alət kotirovkalarının dəyərlərini əldə etmək.
  3. Alətlər və pullar üzrə mövqelərin cədvəlləri . Kodla müştəri, şirkət, alət, depo hesabı haqqında məlumatların əldə edilməsi.

Xidmət funksiyaları – cari ticarət sessiyasının tarixinin, assosiativ seriyanın, cari tarix və vaxtın qaytarılması, əlaqə vəziyyətinin müəyyən edilməsi, hesablama rejiminin kəsilməsi.

Sazlama proqramları

Proqramın işinə addım-addım nəzarət “Debug” pəncərəsində həyata keçirilir. “Debuq rejimində hesablamağa başla” kontekst menyusundan açılır. O, həmçinin breakpoint() əmri ilə açıla bilər və proqram xətti qırmızı rənglə vurğulanacaq. Pəncərədə proqram kodu və dəyişən dəyərləri olan sahələr var. Pəncərənin aşağı hissəsində “Növbəti addım”, “İcraya davam et”, “Hesablamanı dayandır” düymələri var. F5 düyməsini basmaq proqramın icrasını davam etdirəcək, Shift + F5 kombinasiyası sazlamağı dayandıracaq, F10 düyməsini növbəti sətirə yönəldəcək.

QPILE yoxsa LUA?

LUA ticarət robotları yaratmaq üçün yeni proqramlaşdırma dilidir. QPILE kimi, QUIK terminalında həyata keçirilir. https://articles.opexflow.com/programming/lua.htm Ticarət üçün ticarət robotlarının inkişafına həsr olunmuş sayt LUA dilinin QPILE ilə müqayisədə üstünlüklərini göstərir. Beləliklə, o, tərtib edilməmiş skript və bayt kodu kimi fəaliyyət göstərə bilər, tərtibatçı alətləri və obyekt yönümlü proqramlaşdırma mexanizmləri ilə təchiz edilmişdir. Digər proqramlaşdırma dillərində yazılmış obyektlər LUA proqramlarına qoşula bilər. LUA metatables daxil olmaqla 8 məlumat növünü təmin edir. LUA dili çox yivlidir, sürətlidir və əməliyyatlar və terminal hadisələri asinxrondur. LUA QPILE-dən daha çox yayılmışdır və onun üçün bir çox uzantılar yazılmışdır.

QPILE dili indi köhnəlmişdir. Forumlardakı mütəxəssislər LUA-dan istifadə etməyi məsləhət görürlər. Baxmayaraq ki, faydalı və effektiv proqramlar hələ də istifadə olunur.

Bununla belə, QPILE dili LUA ilə müqayisədə sadədir, ona görə də proqramlaşdırma sahəsində təcrübəniz yoxdursa, QPILE dilini seçmək daha yaxşıdır. Bu dildə mürəkkəb hesablamalar aparmağa ehtiyac yoxdursa, sadə robot yaza bilərsiniz.

QPILE-də ticarət robotunu necə yaratmaq olar?

Ticarət məsləhətçisi yaratmaq üçün sizə aşağıdakı proqramlar lazımdır:

  1. ITS Quik.
  2. Notepad++ kod redaktoru.
  3. QPILE üçün bələdçi.
  4. Notepad++ proqramında kodun aşkarlanması üçün XML plagini.

Bu proqramları yükləyin və quraşdırın. userDefineLang.xml faylını C:\Users\User\ AppData\Roaming\Notepad++\ yolunda yerləşdirməklə dil sintaksisini aktivləşdirin.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliƏvvəlcə aşağıdakı ticarət strategiyasını yaradaq. Skript hər dəqiqə son bir neçə şam üçün Hi və Aşağı hesablamalı, alətin cari qiymətini yoxlamalıdır. Alətin qiyməti dövr üçün maksimum və ya minimum dəyərə çatarsa, tələb olunan istiqamətdə mövqe açılır. Qısa üçün siqnal qəbul edildikdə, uzun mövqe avtomatik olaraq bağlanır. Robot GAZP alətindən istifadə edir, vaxt çərçivəsi 1 dəqiqəyə təyin edilib. Yüksək aşağı ölçmə dərinliyi 5 şam olaraq təyin edilmişdir. Long daxil etmək üçün bir qayda müəyyən edilir və dövr üçün maksimum dəyərin cari qiymətinin kəsişməsi. Cari qiymət bu 5 şam üçün minimum dəyəri keçərsə, robot Short daxil olacaq. Əsas parametrlər və server tarixi və vaxtı ilə Notepad++ proqramında kod blokunu yazın. Bu kod aşağıdakı şəkildə göstərilmişdir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliİlk 4 kod sətir proqramın başlığını təşkil edir. 6 və 44-cü sətirlər arasında robotun məzmununu ehtiva edən proqramın gövdəsi yerləşir. 7 – 12-ci sətirlərdə alətin, qrupun və müştərinin kodları, MICEX-də hesab nömrəsi olan istifadəçi parametrləri var. Proqramın icrası zamanı bu dəyərlər dəyişmir. 13-16-cı sətirlər dəyişənlərin ilkin qiymətləridir. Hər iterasiya keçidində onlar sıfıra sıfırlanacaq. 17-21-ci sətirlərdə server tarixi və vaxtından istifadə üçün göstəriş var. Bu məlumatlar DATETIME funksiyasına ötürülür və mətn formatına çevrilir. 22 – 29-cu sətirlər alınan məlumatları cədvələ göndərir. Kod saxlanmalı və qpl uzantısı göstərilməlidir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliCtrl+F10 düymələrini sıxaraq və yaradılmış qpl faylını seçməklə proqramı QUIK-də açın. Ctrl+F11 kombinasiyasından istifadə edərək “Portfoliolarla işləmək” pəncərəsini açın və portfelin hesablanması müddətini 5 dəqiqəyə təyin edin. Cədvəldə göstəriləcək sütunları təyin etmək üçün Ctrl+F12 düymələrini basın. Şəkil robotun işinin nəticəsini göstərir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliProqramımıza daha bir neçə funksiya və şərtlər əlavə edək.
“İstifadəçi parametrləri” bloku son N çubuqların alınması funksiyasında istifadə ediləcək NUMAR və INTERVAL dəyişənləri ilə tamamlanır. DATETIME funksiyası server tarixi və vaxtını təyin edir və cari tarix və vaxt funksiyaları CURDATE və CURTIME ondan çağırılır. Cari vaxt 24-cü sətirdəki rəqəmə çevrilir. 26-cı sətir alqoritmin 10:00:01-dən 18:40:00 UTC-yə qədər işləməsi üçün vaxt təyin edir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliQUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliÇox vaxt göstəricilər, osilatorlar, statistik hesablamalar qrafikin son N şamları ilə hesablanır. QPILE-də N dövrlər əvvəl şamların sayını toplamaq funksiyası yoxdur, lakin qrafikdəki şamlara mətn formatında tarix və vaxta daxil olan GET_CANDLE funksiyası var. Kodumuzda sonuncu N zolağı əldə etmək funksiyası var OHLC(). O, KOLLEKSİYA siyahısında yerləşdirilmiş sonuncu şamların parametrləri ilə kolleksiya yaradır. Proqram INTERVAL dəyərini yoxlayır və o, 0…60 diapazonuna düşmürsə, dəyərin icazə verilən diapazona uyğun olmadığı barədə mesaj göstərilir. 88-ci sətirdə şamlarla XƏRİTƏ kolleksiyası yaradılmışdır. Yenidən köhnə şama qədər INTERVAL addımı ilə diaqramı tələb olunan dərinliyə sorğulayan FOR döngəsi. 90-cı sətirdə, dövr elan edildikdən sonra robot bir interval geri qayıdır. GET_CANDLE ilə şam aldığınızda, INSERT_COLLECTION_TEAM funksiyasından istifadə edərək onu BARLIST kolleksiyasına yerləşdirin. OHLC() əmrinin işləməsi nəticəsində BARLIST alətlər cədvəlindəki son şamlarla SAYI miqdarında doldurulur. Kolleksiyadakı elementlərin sayı GET_COLLECTION_COUNT() əmri ilə tələb olunur və BARCOUNT dəyişəni tərəfindən bildirilir. Server tarixi, vaxtı, INSTRUMENT və BARCOUNT dəyişənlərinin dəyərləri OUTPUT-da SET_VALUE() funksiyası ilə bildirilir. Bu massiv CREATE_MAP() əmri ilə yaradılmışdır. Məlumatlar aşağıdakı fotoşəkildə görünə bilən xüsusi cədvələ düşür. INSTRUMENT və BARCOUNT dəyişənlərinin dəyərləri OUTPUT-da SET_VALUE() funksiyası ilə bildirilir. Bu massiv CREATE_MAP() əmri ilə yaradılmışdır. Məlumatlar aşağıdakı fotoşəkildə görünə bilən xüsusi cədvələ düşür. INSTRUMENT və BARCOUNT dəyişənlərinin dəyərləri OUTPUT-da SET_VALUE() funksiyası ilə bildirilir. Bu massiv CREATE_MAP() əmri ilə yaradılmışdır. Məlumatlar aşağıdakı fotoşəkildə görünə bilən xüsusi cədvələ düşür.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili

QPILE-də ticarət robotları – hazır həllər

Hərəkət edən orta robot

Demo robot real ticarət üçün uyğun deyil.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik diliRobot 5 parametrdən ibarətdir. TARİX, VAXT, QİYMƏT identifikatoru dəyərləri 30-cu səviyyəyə təyin olunub. HƏRƏKİNLİK və TP identifikatorları sıfır dəqiqliyə ayarlanıb. QPILE altında yazılmış hərəkətli orta hesabla robot kodu: [qalereya sütunları=”5″ ids=”14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907″]

N. Moroshkin mövqe kalkulyatoru

Mövcud tələb və təklif qiymətlərində uzun və qısa mövqelər üçün icazə verilən maksimum azalma səviyyələrinin və hədəfin hesablanması proqramı. Səviyyələr mövqe giriş həcminin 2 dəyəri üçün hesablanır. Robot barın böyüməsi istiqamətində mövqenin açılmasının hesablanması ilə açılış qiymətindən bir addımda stop əmri təyin edərkən icazə verilən mövqe həcmini tapır. Tapılan səviyyələr terminal pəncərəsinə daxil edilir və sonradan qiymət cədvəlində əks olunur. Əməliyyatlar müəyyən bir alət üçün müəyyən edilir. Əgər mövqe açılırsa, robot onun parametrlərini hesablamağa başlayır. Vəzifə dəyişikliyindən asılı olaraq, təyin edilmiş sifarişlər tənzimlənir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili

Həcm filtri

Şamların həcminin arifmetik ortasını hesablamaq və X əmsalı ilə orta məhsulla müqayisə etmək üçün portfel robotu.Seçilmiş müddət ərzində tərtib edilmiş qrafiklərlə düzgün işləyir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili

Seçimlər Yunanlar

Seçimlərin “Yunanları” hesablamaq və göstərmək üçün portfel. Qara Duşlar metodundan fərqlənir.
QUIK üçün ticarət robotlarının proqramlaşdırılması üçün QPILE alqoritmik dili

QUIK üçün TRIX ticarət robotu

Proqram TRIX Göstəricisinə əsaslanır. Göstərici sıfır xəttinin, göstərilən səviyyənin üstündə bağlandıqda, robot Uzun mövqe tutur. Mövqe Take Profit, Stop Loss və ya arxadakı stop ilə bağlanır.

M4 ön prosessoru

QPILE və Lua ilə işləmək üçün proqram. İcra olunan faylları, sənədləri və müntəzəm ifadə təhlili ilə DLL faylları olan arxivləri ehtiva edir. Proqramdan istifadə etmək üçün icra olunan faylları paketdən çıxarmalı və regexp2-ni C:\Windows yoluna yerləşdirməlisiniz. QUIK üçün QPILE üzrə dərslər: https://youtu.be/vMTXwDUujpI Quik terminalında QPILE-də skriptin quraşdırılması: https://youtu.be/0B7qL8Svh7I Github-da QPILE alqoritmik dilinin istifadəsini təsvir edən bölmə. QUIK sisteminin iş stansiyası linkdə yerləşir – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE köhnəlmiş bir dildir, lakin olduqca sadə və hətta təcrübəsiz treyderlər üçün əlçatandır. Ticarət robotları və uzun müddət özünü sübut etmiş proqramlar bunun üzərində işləməyə davam edir. Bununla belə, daha mürəkkəb tapşırıqlar üçün LUA-dan istifadə etmək daha yaxşıdır.

info
Rate author
Add a comment

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

    Reply