QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэл

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

QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэл.
Худалдааны роботуудыг програмын кодтой адил тодорхой хэлээр бичиж болно. QPILE бол тэдний нэг бөгөөд нийтлэлд энэ хэлийг авч үзэх, QPILE болон
LUA хэлүүдийг харьцуулах , мөн энэ хэл дээрх роботуудын жишээг өгөх болно.

QPILE-ийн талаархи ерөнхий мэдээлэл

QPILE нь QUIK Programmable Interface and Logic Environment гэсэн үгийн товчлол юм.

Энэ бол 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 өргөтгөлтэй бөгөөд нэр нь Available Scripts жагсаалтад харагдах болно.
QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэлХэрэв програмд ​​алдаа гарсан бол систем нь “Мессежийн цонх” дээр мэдэгдэл хийх бөгөөд энэ нь гэмтэлтэй файлын нэр, алдаатай мөрийн дугаарыг агуулсан болно. Хэрэв файлд алдаа олдоогүй бол талбарт дараах өгөгдлийг зааж өгнө.

  • хүснэгтийн нэр;
  • багана ба үйлчлүүлэгчдийн тоо;
  • танигч болон үйлчлүүлэгчдийн жагсаалт;
  • параметрийн жагсаалт болон файлын эх код.

QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэл“Дотоодоор татаж авах” товчлуур нь хүснэгтийг файлаас авах боломжийг олгох бөгөөд “Серверт байршуулах” нь програмыг сервер рүү илгээснээр бүх хэрэглэгчид хандах боломжтой болно. Хүснэгт үүсгэхийн тулд Хүснэгт үүсгэх дээр дарна уу. “Боломжтой скриптүүд” дотроос гүйцэтгэх шаардлагатай програмаа сонгоод, “Үйлчлүүлэгчдийн шүүлтүүр” -ээр дамжуулан мөрийн тоог тохируулж, шаардлагатай багана, тэдгээрийн дарааллыг тодорхойлно.
QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэлТооцооллыг түр зогсоох, үргэлжлүүлэх, тооцооллыг дахин болон дибаг хийх горимд эхлүүлэх, тайлбарыг файлд хадгалах, томъёог харуулах, скриптийн параметрүүдийг контекст цэсэнд авах боломжтой.

QPILE бүтээцүүд

Өгөгдлийн төрлүүд

  • Мөр – мөр.
  • Давхар гэдэг нь хөвөгч цэгтэй тоо юм.
  • Цуглуулга – цуглуулга.
  • Газрын зураг – ассоциатив массив – түлхүүрээр мэдээлэл авах боломжийг олгодог хосуудын дараалал.

Илэрхийлэл

Нэмэх, хасах, үржүүлэх, хуваах арифметик үйлдлүүдийг ашигладаг. “Ба”, “эсвэл”, тэнцүү, их, бага, тэгш бус байдал, нөхцөлт бүтэц “хэрэв … тэгвэл …” гэсэн логик хэллэгүүдийг мөн ашигладаг.

Функцүүд

Функцууд нь програмын аль ч хэсэгт байрлах ба өөр өөр нэртэй байж болно. Хүснэгт, параметр, ассоциатив массив, хүснэгтийн жагсаалт болон бусад даалгаврын утгыг авахын тулд нийт 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. Албан тушаалын хүснэгт, хэрэглүүр болон мөнгөөр ​​. Үйлчлүүлэгч, пүүс, хэрэгсэл, депо дансны мэдээллийг кодоор авах.

Үйлчилгээний функцууд – одоогийн арилжааны огноо, ассоциатив цуврал, одоогийн огноо, цагийг буцаах, холболтын төлөвийг тодорхойлох, тооцооллын горимыг тасалдуулах.

Дибаг хийх програмууд

Хөтөлбөрийн ажиллагааг алхам алхмаар хянах нь “Debug” цонхонд хийгддэг. Энэ нь “Дбаг хийх горимд тооцооллыг эхлүүлэх” контекст цэснээс нээгдэнэ. Үүнийг мөн breakpoint() командын тусламжтайгаар нээж болох бөгөөд програмын мөрийг улаанаар тодруулна. Цонх нь програмын код болон хувьсах утгууд бүхий талбаруудыг агуулна. Цонхны доод хэсэгт “Дараах алхам”, “Гүйцэтгэлийг үргэлжлүүлэх”, “Тооцооллыг зогсоох” товчлуурууд байна. F5 товчийг дарснаар программын гүйцэтгэлийг үргэлжлүүлэх болно, Shift + F5 хослол дибаг хийхээ зогсоож, F10 товчлуур дараагийн мөрөнд чиглэнэ.

QPILE эсвэл LUA?

LUA бол худалдааны робот бүтээх шинэ програмчлалын хэл юм. QPILE шиг энэ нь QUIK терминал дээр хэрэгждэг. https://articles.opexflow.com/programming/lua.htm Арилжааны роботуудыг хөгжүүлэхэд зориулагдсан сайт нь QPILE-ээс LUA хэлний давуу талыг харуулж байна. Тиймээс энэ нь хөгжүүлэгчийн хэрэгсэл, объект хандалтат програмчлалын механизмаар тоноглогдсон хөрвүүлээгүй скрипт, байт код хэлбэрээр ажиллах боломжтой. Бусад програмчлалын хэл дээр бичигдсэн объектуудыг 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 лаа болгон тохируулсан. Уртыг оруулахын тулд тухайн үеийн хамгийн их утгын одоогийн үнийн огтлолцлыг тогтоож, дүрмийг тогтооно. Одоогийн үнэ эдгээр 5 лааны хамгийн бага утгыг давсан тохиолдолд робот Short-д орно. Notepad++ програм дээр үндсэн тохиргоо болон серверийн огноо, цаг бүхий кодын блок бичнэ үү. Энэ кодыг доорх зурагт үзүүлэв.
QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэлЭхний 4 мөр кодын программын толгой хэсгийг бүрдүүлнэ. 6-аас 44-р мөрийн хооронд роботын агуулгыг агуулсан програмын үндсэн хэсэг байна. 7 – 12-р мөрөнд багаж, бүлэг, үйлчлүүлэгчийн код, MICEX дээрх дансны дугаар зэргийг багтаасан хэрэглэгчийн тохиргоог агуулна. Эдгээр утгууд нь програмыг ажиллуулах явцад өөрчлөгддөггүй. 13-16 мөрүүд нь хувьсагчдын анхны утгууд юм. Тэд давталт болгонд тэг болж дахин тохируулагдана. 17-21-р мөрөнд серверийн огноо, цагийг ашиглах заалтыг агуулна. Энэ өгөгдлийг DATETIME функц руу дамжуулж, текст формат руу хөрвүүлдэг. 22 – 29-р мөрөнд хүлээн авсан өгөгдлийг хүснэгтэд илгээнэ. Кодыг хадгалах ёстой бөгөөд qpl өргөтгөлийг зааж өгөх ёстой.
QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэлCtrl+F10 дарж үүсгэсэн qpl файлыг сонгоод QUIK программыг нээнэ үү. Ctrl+F11 хослолыг ашиглан “Портфолиотой ажиллах” цонхыг нээж, багцын тооцооны хугацааг 5 минут болгож тохируулна уу. Хүснэгтэнд харуулах баганыг тохируулахын тулд Ctrl+F12 дарна уу. Зураг нь роботын ажлын үр дүнг харуулж байна.
QUIK-д зориулсан арилжааны роботуудыг програмчлах QPILE алгоритмын хэлӨөр хэдэн функц, нөхцөлийг программдаа оруулъя.
“Хэрэглэгчийн тохиргоо” блок нь ДУГААР ба INTERVAL хувьсагчаар нэмэгддэг бөгөөд энэ нь сүүлийн N баар авах функцэд ашиглагдах болно. 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 функц байдаг бөгөөд график дээрх лаануудад огноо, цагаар текст хэлбэрээр хандах боломжтой. Манай код нь OHLC() сүүлийн N баар авах функцийг агуулдаг. Энэ нь ЦУГЛУУЛАХ жагсаалтад хамгийн сүүлд байрлуулсан лааны параметрүүдийг агуулсан цуглуулга үүсгэдэг. Хөтөлбөр нь INTERVAL утгыг шалгадаг бөгөөд хэрэв энэ нь 0…60 мужид багтахгүй бол утга зөвшөөрөгдсөн мужид тохирохгүй байна гэсэн мессеж гарч ирнэ. 88-р мөрөнд лаа бүхий MAP цуглуулгыг үүсгэсэн. FOR гогцоо нь шинэээс хуучин лаа хүртэл INTERVAL алхамаар диаграммыг шаардлагатай гүнд санал болгоно. 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