QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі

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

QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі.
Сауда роботтары бағдарлама кодына ұқсас белгілі бір тілде жазылуы мүмкін. QPILE – солардың бірі, мақалада осы тіл қарастырылады, QPILE және
LUA тілдері салыстырылады , сонымен қатар осы тілдегі роботтардың мысалдары келтіріледі.

QPILE туралы жалпы ақпарат

QPILE — QUIK бағдарламаланатын интерфейс және логикалық ортаны білдіретін аббревиатура.

Бұл QUIK жұмыс станциясы арқылы түсіндірілетін пәрмендер қатары. Ол негізінен бағалы қағаздар портфелінің бағасын есептеу үшін қолданылады. Тіл сондай-ақ мыналар үшін қолданылады:

  • брокердің жұмыс үстелінде және олардың портфолиосында клиенттердің активтерінің бағасын динамикалық қайта есептеу. Соңғы жағдайда олардың жалпы бағасы да қайта есептеледі;
  • маржалық несиелеудің өз алгоритмдері мен деректерін пайдалана отырып, жетіспейтін көрсеткіштерді табу;
  • дұрыс сауда стратегиясын әзірлеу.

Тіл кестенің құрылымын сипаттайды: бағандар мен жолдарды, формулаларды тағайындау. Соңғысында есептеу үшін математикалық амалдар, айнымалылар, басқа кестелердің деректері пайдаланылуы мүмкін. QUIK серверінен немесе пайдаланушы дискісінен жүктелген бағдарлама кодын формулалардағы мәндерді есептейтін тілдік интерпретатор өңдейді. Бір бағдарламаның кестелерінде бір дерек көзі бар, бірақ есептеулер қайталанбайды және жүйенің тиімділігіне әсер етпейді. QUIK кестелерімен жұмыс істегенде QPILE кестелерінде стандартты функциялар болады. Жұмыс орнындағы QUIK QPILE кодын жөндеу құралымен жабдықталған. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Тіл берілген құрылымы бар жаңа кестелерді сипаттауға, белгілі мәндері бар ұяшықтарды ерекшелеуге, математикалық және логикалық өрнектер негізінде өрістерді есептеуге мүмкіндік береді. Пайдаланушы дыбыстық сигнал немесе мәтіндік хабарлама түрінде хабарламалар алады. QPILE жүйесіндегі кестелерді ODBC және DDE сервері арқылы өңдеуге, басып шығаруға, көшіруге, экспорттауға болады. Бастапқы деректер QUIK кестелерінен алынған:

  • мәмілелер, оның ішінде орындау үшін және жеке емес;
  • биржадан тыс сауда-саттықтар бойынша тапсырыстар, соның ішінде тоқтату өтінімдері және өтінімдер – есеп айырысу мәмілелері бойынша сауда-саттық бойынша есептер;
  • «клиент портфолиосы», «сатып алу/сату»
  • ақша, сауда шоттары, құрал бойынша қатысушының позицияларынан деректер.

QPILE негізіндегі кестелерді мәтінмәндік мәзір арқылы мәтіндік файлға көшіруге және техникалық талдау жүйелеріне экспорттауға және олардың негізінде диаграммаларды әзірлеуге болмайды. QPILE негізіндегі кестелерді сүзгілеу немесе сұрыптау мүмкін емес.

Кестемен жұмыс

Бағдарлама кодын жүктеу үшін қызметтер мәзірін, содан кейін QPILE сценарийлерін таңдау керек. Ctrl+F11 тіркесімін де пайдалануға болады. Содан кейін «Қосу» түймесін басып, қажетті файлды таңдау керек. Оның .qpl кеңейтімі бар және оның атауы қол жетімді сценарийлер тізімінде пайда болады.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Егер бағдарламада қате болса, жүйе ақаулы файлдың атауын және қатесі бар жол нөмірін қамтитын «Хабарлама терезесінде» хабарлама жасайды. Егер файлда қателер табылмаса, өрістерде келесі деректер көрсетіледі:

  • кесте атауы;
  • бағандар мен клиенттер саны;
  • идентификаторлар мен клиенттердің тізімі;
  • параметрлер тізімі және файлдың бастапқы коды.

QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі «Жергілікті түрде жүктеп алу» түймесі кестені файлдан алуға мүмкіндік береді, ал «Серверге жүктеп салу» бағдарламаны серверге жібереді, сонда барлық пайдаланушылар оған қол жеткізе алады. Кестені құру үшін Кестені құру түймешігін басыңыз. «Қолжетімді сценарийлерде» орындауға қажет бағдарламаны таңдаңыз, «Клиенттер сүзгісі» арқылы жолдар санын орнатыңыз, қажетті бағандарды және олардың ретін анықтаңыз.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Есептеуді кідірту және жалғастыру, есептеуді қайта және жөндеу режимінде бастау, сипаттаманы файлға сақтау, формуланы көрсету және сценарий параметрлері мәтінмәндік мәзірде қолжетімді.

QPILE конструкциялары

Деректер түрлері

  • Жол – жол.
  • Double – өзгермелі нүктелі сан.
  • Коллекция – жинақ.
  • Карта – ассоциативті массив – кілт арқылы ақпаратты алуға мүмкіндік беретін жұптар тізбегі.

Өрнектер

Қосу, алу, көбейту, бөлудің арифметикалық амалдары қолданылады. «және», «немесе», тең, көп, кем, теңсіздіктер, шартты құрастыру «егер … онда …» логикалық өрнектері де қолданылады.

Функциялар

Функциялар бағдарламаның кез келген жерінде орналасуы және әртүрлі атаулары болуы мүмкін. Кестелер мен параметрлердің, ассоциативті массивтердің, кестелер тізімін және басқа тапсырмалардың мәндерін алу үшін барлығы 18 математикалық функциялар мен функциялар тобы қол жетімді. Бірінші сынып:

  1. Аргументтің синусының, косинусының, тангенсінің, котангенсінің мәнін қайтаруға, аргументтің көрсеткішін есептеуге, кездейсоқ санды тудыруға және т.б. мүмкіндік беретін математикалық функциялар .
  2. Жалпы пәрмендер : Жаһандық айнымалы мәнді инициализациялау үшін NEW_GLOBAL және хабарларды ашу үшін MESSAGE.

Жұмыс істеуге болатын функциялар:

  • Объектілердің коллекциялары (Жинақ) . Олар жаңа коллекция жасауға, элементтердің қажетті санын қайтаруға, қажетті мәндерді ауыстыруға немесе енгізуге мүмкіндік береді.
  • Ассоциативті массивтер (MAP) . Массивті жасауға және басқаруға көмектесіңіз.
  • Файлдар – мәтіндік файлдармен жұмыс істеу, программаның журнал журналын жүргізу. Файл атауында оған апаратын жол болуы мүмкін.
  • Жолдар .
  • Графиктер . Шам деректеріне қол жеткізу үшін GET_CANDLE және ассоциативті массивді қайтару үшін GET_CANDLE EX функциялары.
  • Қолданбалар . Тапсырыстар жасау және оларды сауда жүйесіне жіберу.
  • Тегтер . Олардың құрылысы және диаграммада орнатылуы. Бір немесе барлық белгілерді қосу, жою, белгілі бір белгі үшін параметрлерді алу және орнату.

Сондай-ақ келесі функциялар бар:

  1. Ерікті QUIK кестелерінің жолдарына және қол жетімді параметрлер тізімдеріне қол жеткізу үшін . Жұмыс орнындағы кесте деректеріне қол жеткізу. Оларға MAP қайтару үшін GET_ITEM және жазбалар санын қайтару үшін GET_NUMBER_OF кіреді.
  2. Бағдарламаланатын кестемен жұмыс істеу үшін . Бұл командалар ӨЗ кестесінде жұмыс істейді. Оны алдыңғы абзацтағы стандартты функциялар және осы функциялар арқылы оқуға болады. Бұл топқа индексі бар жолды қосу, өзгерту және жою және OWN кестесін толығымен тазалау командалары кіреді.

Мәндерді алу үшін пайдаланыңыз:

  1. Ағымдағы сауда-саттық кестелері . GET_PARAM (_EX) командалары арқылы алмасу ақпаратының параметрлерін алу.
  2. Дәйексөз терезелері . Құрал тырнақшаларының мәндерін алу.
  3. Құралдар мен ақшалар бойынша позициялардың кестелері . Код бойынша клиент, компания, құрал, депо шоты туралы мәліметтер алу.

Сервистік функциялар – ағымдағы сауда сессиясының күнін, ассоциативті сериясын, ағымдағы күні мен уақытын қайтару, қосылу күйін анықтау, есептеу режимін үзу.

Түзету бағдарламалары

Бағдарламаның жұмысын кезең-кезеңмен басқару «Оңдеу» терезесінде жүзеге асырылады. Ол «Есептеуді отладка режимінде бастау» контекстік мәзірінен ашылады. Оны breakpoint() пәрменімен де ашуға болады және бағдарлама жолы қызыл түспен бөлектеледі. Терезеде бағдарлама коды және айнымалы мәндері бар өрістер бар. Терезенің төменгі жағында «Келесі қадам», «Орындауды жалғастыру», «Есептеуді тоқтату» түймелері орналасқан. F5 пернесін басу бағдарламаның орындалуын жалғастырады, Shift + F5 комбинациясы жөндеуді тоқтатады, F10 пернесі келесі жолға бағытталады.

QPILE немесе LUA?

LUA – сауда роботтарын жасауға арналған жаңа бағдарламалау тілі. QPILE сияқты ол QUIK терминалында жүзеге асырылады. https://articles.opexflow.com/programming/lua.htm Сауда үшін сауда роботтарын дамытуға арналған сайт LUA тілінің QPILE-ге қарағанда артықшылықтарын көрсетеді. Осылайша, ол құрастырушы құралдарымен және объектіге бағытталған бағдарламалау механизмдерімен жабдықталған компиляцияланбаған сценарий және байт код ретінде жұмыс істей алады. Басқа бағдарламалау тілдерінде жазылған объектілерді LUA бағдарламаларына қосуға болады. LUA 8 деректер түрін, соның ішінде метакестелерді қамтамасыз етеді. LUA тілі көп ағынды, жылдам және транзакциялар мен терминал оқиғалары асинхронды болып табылады. LUA QPILE-ге қарағанда кең таралған және ол үшін көптеген кеңейтімдер жазылған.

QPILE тілі енді ескірген. Форумдардағы сарапшылар LUA пайдалануды ұсынады. Пайдалы және тиімді бағдарламалар әлі де қолданылуда.

Дегенмен, QPILE тілі LUA тілімен салыстырғанда қарапайым, сондықтан бағдарламалауда тәжірибеңіз болмаса, QPILE тілін таңдаған дұрыс. Бұл тілде күрделі есептеулерді орындау қажет болмаса, қарапайым роботты жазуға болады.

QPILE-де сауда роботын қалай жасауға болады?

Сауда кеңесшісін құру үшін сізге келесі бағдарламалар қажет:

  1. ITS Quik.
  2. Notepad++ код редакторы.
  3. QPILE нұсқаулығы.
  4. Notepad++ бағдарламасында кодты анықтауға арналған XML плагині.

Осы бағдарламаларды жүктеп алыңыз және орнатыңыз. userDefineLang.xml файлын C:\Users\User\ AppData\Roaming\Notepad++\ жолына қою арқылы тіл синтаксисін қосыңыз.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Алдымен, келесі сауда стратегиясын жасайық. Сценарий әр минут сайын соңғы бірнеше шам үшін Hi және Low мәндерін есептеуі керек, құралдың ағымдағы бағасын тексеріңіз. Позиция қажетті бағытта ашылады, егер құралдың бағасы кезеңдегі максималды немесе ең төменгі мәнге жетсе. Қысқа сигнал қабылданған кезде ұзын позиция автоматты түрде жабылады. Робот GAZP құралын пайдаланады, уақыт аралығы 1 мин. Жоғары төмен өлшеу тереңдігі 5 шамға орнатылған. Long енгізу үшін ереже орнатылады және кезеңдегі максималды мәннің ағымдағы бағасының қиылысуы. Ағымдағы баға осы 5 шам үшін ең төменгі мәннен асып кетсе, робот Short-ке кіреді. Негізгі параметрлермен және сервер күні мен уақытымен Notepad++ бағдарламасында код блогын жазыңыз. Бұл код төмендегі суретте көрсетілген.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Кодтың алғашқы 4 жолы бағдарлама тақырыбын құрайды. 6 және 44 жолдар арасында роботтың мазмұнын қамтитын бағдарламаның негізгі бөлігі орналасқан. 7 – 12-жолдарда құралдың, топтың және клиенттің кодтары, МКМС бойынша шот нөмірі қамтылатын пайдаланушы параметрлері көрсетіледі. Бұл мәндер бағдарламаны орындау кезінде өзгермейді. 13 – 16 жолдар айнымалылардың бастапқы мәндері болып табылады. Әрбір итерация өтуінде олар нөлге қайта орнатылады. 17 – 21 жолдарда сервер күні мен уақытын пайдалану көрсеткіші бар. Бұл деректер DATETIME функциясына беріледі және мәтін пішіміне түрлендіріледі. 22 – 29-жолдар алынған деректерді кестеге жібереді. Код сақталуы керек және qpl кеңейтімі көрсетілуі керек.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Ctrl+F10 пернелерін басып, жасалған qpl файлын таңдау арқылы бағдарламаны QUIK ішінде ашыңыз. Ctrl+F11 тіркесімін пайдаланып, «Портфолиолармен жұмыс» терезесін ашыңыз және портфолионы есептеу кезеңін 5 минутқа орнатыңыз. Кестеде көрсетілетін бағандарды орнату үшін Ctrl+F12 пернелер тіркесімін басыңыз. Суретте робот жұмысының нәтижесі көрсетілген.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Бағдарламамызға тағы бірнеше функциялар мен шарттарды қосамыз.
«Пайдаланушы параметрлері» блогы соңғы N жолақты алу функциясында қолданылатын САН және INTERVAL айнымалыларымен толықтырылған. DATETIME функциясы сервер күні мен уақытын орнатады, ал ағымдағы күн мен уақыт функциялары CURDATE және CURTIME одан шақырылады. Ағымдағы уақыт 24-жолдағы санға түрлендіріледі. 26-жолда алгоритмнің 10:00:01-ден 18:40:00 UTC-ке дейін жұмыс істеу уақыты белгіленеді.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Көбінесе индикаторлар, осцилляторлар, статистикалық есептеулер диаграмманың соңғы N шамдарымен есептеледі. QPILE-де N кезең бұрынғы шамдар санын жинау функциясы жоқ, бірақ мәтін пішіміндегі күн мен уақыт бойынша диаграммадағы шамдарға қол жеткізетін GET_CANDLE функциясы бар. Біздің кодта соңғы N жолақты OHLC() алу функциясы бар. Ол ЖИНАУ тізімінде кірістірілген соңғы шамдардың параметрлерімен жинақ жасайды. Бағдарлама INTERVAL мәнін тексереді және ол 0…60 ауқымына түспесе, мән рұқсат етілген диапазонға сәйкес келмейтіні туралы хабарлама көрсетіледі. 88-жолда шамдары бар MAP топтамасы жасалады. Жаңадан ескі шамға дейін INTERVAL қадамымен диаграмманы қажетті тереңдікке сұрау FOR циклі. 90-жолда цикл жарияланғаннан кейін робот бір аралық артқа кетеді. GET_CANDLE шамын алған кезде, оны INSERT_COLLECTION_TEAM функциясы арқылы BARLIST жинағына орналастырыңыз. OHLC() командасының жұмысының нәтижесінде BARLIST САН мөлшерінде аспаптар кестесіндегі соңғы шамдармен толықтырылады. Жинақтағы элементтер саны GET_COLLECTION_COUNT() пәрмені арқылы сұралады және BARCOUNT айнымалысы арқылы хабарланады. Сервер күні, уақыты, INSTRUMENT және BARCOUNT айнымалы мәндері OUTPUT ішіндегі SET_VALUE() функциясы арқылы хабарланады. Бұл массив CREATE_MAP() командасы арқылы жасалады. Деректер пайдаланушы кестесіне түседі, оны төмендегі фотода көруге болады. INSTRUMENT және BARCOUNT айнымалы мәндері OUTPUT ішіндегі SET_VALUE() функциясы арқылы хабарланады. Бұл массив CREATE_MAP() командасы арқылы жасалады. Деректер пайдаланушы кестесіне түседі, оны төмендегі фотода көруге болады. INSTRUMENT және BARCOUNT айнымалы мәндері OUTPUT ішіндегі SET_VALUE() функциясы арқылы хабарланады. Бұл массив CREATE_MAP() командасы арқылы жасалады. Деректер пайдаланушы кестесіне түседі, оны төмендегі фотода көруге болады.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі

QPILE-де сауда роботтары – дайын шешімдер

Орташа қозғалатын робот

Демо робот нақты саудаға жарамайды.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі Робот 5 параметрді қамтиды. КҮН, УАҚЫТ, БАҒА идентификаторының мәндері 30-деңгейге орнатылған. MOVING және TP идентификаторлары нөлдік дәлдікке орнатылған. QPILE астында жазылған жылжымалы ортадағы робот коды: [галерея бағандары=”5″ ids=”14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907″]

Н.Морошкин позициясының калькуляторы

Ағымдағы сұраныс және ұсыныс бағалары бойынша ұзақ және қысқа позициялар үшін ең жоғары рұқсат етілген тарту деңгейлерін және мақсатты есептеуге арналған бағдарлама. Деңгейлер позицияны енгізу көлемінің 2 мәні үшін есептеледі. Робот жолақ өсу бағытында позицияны ашуды есептеу арқылы ашылу бағасынан бір қадамда тоқтату тәртібін тағайындау кезінде рұқсат етілген позиция көлемін табады. Табылған деңгейлер терминал терезесіне енгізіледі, олар кейіннен баға диаграммасында көрсетіледі. Мәмілелер берілген құрал үшін бекітілген. Позиция ашылса, робот оның параметрлерін есептей бастайды. Лауазымның өзгеруіне байланысты тағайындалған бұйрықтар реттеледі.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі

Дыбыс сүзгісі

Шамдарға арналған көлемнің орташа арифметикалық мәнін есептеуге және оны X коэффициенті бойынша орташа өніммен салыстыруға арналған портфолио роботы Таңдалған уақыт кезеңінде сызылған диаграммалармен дұрыс жұмыс істейді.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі

Опциялар гректер

Опциялардың «гректерін» есептеуге және көрсетуге арналған портфолио. Ол Black-Showers әдісінен ерекшеленеді.
QUIK үшін сауда роботтарын бағдарламалауға арналған QPILE алгоритмдік тілі

QUIK үшін TRIX сауда роботы

Бағдарлама TRIX индикаторына негізделген. Көрсеткіш нөлдік сызықтан, көрсетілген деңгейден жоғары жабылғанда, робот Ұзын позицияны алады. Позиция Take Profit, Stop Loss немесе Trailing Stop арқылы жабылады.

M4 препроцессоры

QPILE және Lua-мен жұмыс істеу бағдарламасы. Орындалатын файлдары бар мұрағаттарды, құжаттаманы және тұрақты өрнекті талдауы бар DLL файлдарын қамтиды. Бағдарламаны пайдалану үшін орындалатын файлдарды қаптамадан шығарып, regexp2 файлын C:\Windows жолына орналастыру керек. QUIK үшін QPILE сабақтары: https://youtu.be/vMTXwDUujpI Quik терминалында QPILE жүйесінде сценарийді орнату: https://youtu.be/0B7qL8Svh7I github жүйесінде QPILE алгоритмдік тілін пайдалануды сипаттайтын бөлім. QUIK жүйесінің жұмыс станциясы сілтемеде орналасқан – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE – ескірген тіл, бірақ өте қарапайым және тіпті жаңа бастаған трейдерлерге де қол жетімді. Сауда роботтары мен өзін ұзақ уақыт бойы дәлелдеген бағдарламалар онымен жұмыс істеуді жалғастыруда. Дегенмен, күрделірек тапсырмалар үшін LUA пайдалану жақсы.

info
Rate author
Add a comment

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

    Reply