Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK

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

Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK.
Els robots comercials es poden escriure en un llenguatge específic, similar al codi del programa. QPILE és un d’ells, aquest article considerarà aquest llenguatge, compararà els llenguatges QPILE i
LUA i també donarà exemples de robots en aquest llenguatge.

Informació general sobre QPILE

QPILE és una abreviatura que significa QUIK Programmable Interface and Logic Environment.

Aquesta és una sèrie d’ordres interpretades per l’estació de treball QUIK. S’utilitza principalment per calcular el preu de les carteres de valors. El llenguatge també s’utilitza per a:

  • recàlcul dinàmic del preu dels actius dels clients a l’escriptori del corredor i a les seves carteres. En aquest darrer cas, també es recalcula el seu preu total;
  • trobar indicadors que falten utilitzant els seus propis algorismes i dades per als préstecs amb marge;
  • desenvolupar l’estratègia comercial adequada.

El llenguatge descriu l’estructura de la taula: la designació de columnes i files, fórmules. En aquest últim, es poden utilitzar per al càlcul operacions matemàtiques, variables, dades d’altres taules. El codi del programa carregat des del servidor QUIK o del disc de l’usuari és processat per l’intèrpret d’idiomes, que calcula els valors de les fórmules. Les taules d’un programa tenen una font de dades, però els càlculs no es dupliquen i no afecten l’eficiència del sistema. Quan es treballa amb taules QUIK, les taules de QPILE tenen funcions estàndard. QUIK al lloc de treball està equipat amb un depurador de codi QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm El llenguatge us permetrà descriure taules noves amb una estructura determinada, ressaltar cel·les amb determinats valors, calcular camps a partir d’expressions matemàtiques i lògiques. L’usuari rebrà notificacions en forma de senyal sonor o missatge de text. Les taules de QPILE es poden editar, imprimir, copiar, exportar mitjançant el servidor ODBC i DDE. Les dades inicials són de les taules QUIK:

  • transaccions, fins i tot per a l’execució i impersonals;
  • ordres, incloses les ordres de parada, per a operacions i ordres de venda lliure: informes per a operacions en acords de liquidació;
  • “cartera de clients”, “compra/venda”
  • dades de les posicions del participant per diners, comptes comercials, instrument.

Les taules basades en QPILE no es poden copiar en un fitxer de text mitjançant el menú contextual i exportar-les a sistemes d’anàlisi tècnica, i no es poden desenvolupar gràfics basats en ells. Les taules basades en QPILE no es poden filtrar ni ordenar.

Treballant amb una taula

Per carregar el codi del programa, heu de seleccionar el menú de serveis i, a continuació, els scripts QPILE. També podeu utilitzar la combinació Ctrl+F11. Després de fer clic a “Afegeix” i seleccionar el fitxer desitjat. Té una extensió .qpl i el seu nom apareixerà a la llista de Scripts disponibles.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKSi hi ha un error al programa, el sistema farà una notificació a la “Finestra de missatges”, que contindrà el nom del fitxer defectuós i el número de línia amb l’error. Si no s’han trobat errors al fitxer, s’indicaran les dades següents als camps:

  • nom de la taula;
  • nombre de columnes i clients;
  • llista d’identificadors i clients;
  • la llista de paràmetres i el codi font del fitxer.

Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKEl botó “Descarrega localment” us permetrà obtenir la taula d’un fitxer, i “Pujar al servidor” enviarà el programa al servidor perquè tots els usuaris hi puguin accedir. Per crear una taula, feu clic a Crea taula. Als “Scripts disponibles” seleccioneu el programa que necessiteu executar, establiu el nombre de línies a través del “Filtre de client”, definiu les columnes requerides i la seva seqüència.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKPosar en pausa i reprendre el càlcul, començar el càlcul de nou i en mode de depuració, desar la descripció en un fitxer, demostrar la fórmula i els paràmetres de l’script estan disponibles al menú contextual.

Construccions QPILE

Tipus de dades

  • String – cadena.
  • El doble és un nombre de coma flotant.
  • Col·lecció – una col·lecció.
  • Mapa – una matriu associativa – una seqüència de parells que permet obtenir informació per clau.

Expressions

S’apliquen les operacions aritmètiques de suma, resta, multiplicació, divisió. També s’utilitzen les expressions lògiques “i”, “o”, és igual, més, menys, desigualtats, construcció condicional “si … aleshores …”.

Funcions

Les funcions es poden localitzar a qualsevol lloc del programa i tenen noms diferents. En total, 18 grups de funcions i funcions matemàtiques estan disponibles per obtenir els valors de taules i paràmetres, matrius associatives, una llista de taules i altres tasques. Primer grau:

  1. Funcions matemàtiques que permeten retornar el valor del sinus, cosinus, tangent, cotangent de l’argument, calcular l’exponent de l’argument, generar un nombre aleatori, etc.
  2. Ordres generals : NEW_GLOBAL per inicialitzar una variable global i MESSAGE per obrir missatges.

Funcions per treballar:

  • Col·leccions d’objectes (Col·lecció) . Permeten crear una nova col·lecció, retornar el nombre necessari d’elements, substituir o inserir els valors desitjats.
  • Arrays associatius (MAP) . Ajuda a crear i gestionar la matriu.
  • Fitxers : treballant amb fitxers de text, mantenint un registre de registre del programa. El nom del fitxer pot contenir el camí d’accés.
  • Cordes .
  • Gràfics . Funcions GET_CANDLE per accedir a les dades de les espelmes i GET_CANDLE EX per retornar una matriu associativa.
  • Aplicacions . Creació de comandes i enviament al sistema comercial.
  • Etiquetes . La seva construcció i instal·lació a la carta. Afegir, suprimir una o totes les etiquetes, obtenir i establir paràmetres per a una etiqueta específica.

També hi ha funcions per:

  1. Per accedir a files de taules QUIK arbitràries i llistes de paràmetres disponibles . Accés a les dades de la taula del lloc de treball. Aquests inclouen GET_ITEM per retornar el MAPA i GET_NUMBER_OF per retornar el nombre d’entrades.
  2. Per treballar amb una taula programable . Aquestes ordres funcionen a la taula PROPIA. És llegible per les funcions estàndard del paràgraf anterior i per aquestes funcions. Aquest grup inclou ordres per afegir, modificar i suprimir una fila amb un índex i esborrar completament la taula PROPIA.

Per obtenir valors utilitzeu:

  1. Taules d’oficis actuals . Obtenció de paràmetres d’informació d’intercanvi mitjançant ordres GET_PARAM (_EX).
  2. Cotitzar finestres . Obtenció dels valors de les cotitzacions d’instruments.
  3. Taules de posicions per instruments i diners . Obtenció de dades d’un client, empresa, instrument, compte de depo per codi.

Funcions de servei: retorn de la data de la sessió de negociació actual, sèries associatives, data i hora actuals, determinació de l’estat de connexió, interrupció del mode de càlcul.

Programes de depuració

El control pas a pas sobre el funcionament del programa es realitza a la finestra “Depuració”. S’obre des del menú contextual “Iniciar càlcul en mode depuració”. També es pot obrir amb l’ordre breakpoint() i la línia del programa es ressaltarà en vermell. La finestra conté camps amb codi de programa i valors variables. A la part inferior de la finestra hi ha els botons “Pas següent”, “Continua l’execució”, “Atura el càlcul”. Prement F5 continuarà l’execució del programa, la combinació Maj + F5 deixarà de depurar, la tecla F10 dirigirà a la línia següent.

QPILE o LUA?

LUA és un nou llenguatge de programació per crear robots comercials. Igual que QPILE, s’implementa al terminal QUIK. https://articles.opexflow.com/programming/lua.htm Un lloc dedicat al desenvolupament de robots comercials per al comerç mostra els avantatges del llenguatge LUA respecte a QPILE. Per tant, pot funcionar com un script i bytecode no compilats, equipat amb eines de desenvolupament i mecanismes de programació orientats a objectes. Els objectes escrits en altres llenguatges de programació es poden connectar a programes LUA. LUA ofereix 8 tipus de dades, incloses metataules. L’idioma LUA és de múltiples fils, ràpid i les transaccions i els esdeveniments del terminal són asíncrons. LUA és més comú que QPILE, i s’han escrit moltes extensions per a això.

El llenguatge QPILE ara està obsolet. Els experts dels fòrums recomanen utilitzar LUA. Encara que encara s’estan utilitzant programes útils i eficaços.

Tanmateix, el llenguatge QPILE és senzill en comparació amb LUA, així que si no tens experiència en programació, és millor triar QPILE. En aquest llenguatge, podeu escriure un robot senzill si no necessiteu fer càlculs complexos.

Com crear un robot comercial a QPILE?

Per crear un assessor comercial, necessitareu els programes següents:

  1. EL SEU Quik.
  2. Editor de codi Notepad++.
  3. Guia de QPILE.
  4. Connector XML per a la detecció de codi al Notepad++.

Baixeu i instal·leu aquests programes. Habiliteu la sintaxi de l’idioma col·locant userDefineLang.xml al camí C:\Users\User\AppData\Roaming\Notepad++\
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKPrimer, creem la següent estratègia comercial. El guió hauria de calcular Hi i Baix per a les últimes espelmes cada minut, comproveu el preu actual de l’instrument. S’obre una posició en la direcció requerida si el preu de l’instrument arriba al valor màxim o mínim del període. Quan es rep un senyal de curt, la posició llarga es tanca automàticament. El robot utilitza l’eina GAZP, el període de temps s’estableix en 1 min. La profunditat de mesura alta-baixa s’estableix en 5 espelmes. Per introduir Long, s’estableix una regla i la intersecció del preu actual del valor màxim per al període. El robot entrarà a curt si el preu actual creua el valor mínim d’aquestes 5 espelmes. Escriu un bloc de codi al Bloc de notes ++ amb la configuració bàsica i la data i l’hora del servidor. Aquest codi es mostra a la imatge següent.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKLes 4 primeres línies de codi formen la capçalera del programa. Entre les línies 6 i 44 hi ha el cos del programa, que conté el contingut del robot. Les línies 7 a 12 contenen la configuració d’usuari, que inclou els codis de l’instrument, grup i client, el número de compte al MICEX. Aquests valors no canvien durant l’execució del programa. Les línies 13 – 16 són els valors inicials de les variables. Es restabliran a zero en cada passada d’iteració. Les línies 17 a 21 contenen una indicació per utilitzar la data i l’hora del servidor. Aquestes dades es passen a la funció DATETIME i es converteixen en format de text. Les línies 22 – 29 envien les dades rebudes a la taula. Cal desar el codi i especificar l’extensió qpl.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKObriu el programa a QUIK prement Ctrl+F10 i seleccionant el fitxer qpl generat. Utilitzeu la combinació Ctrl+F11 per obrir la finestra “Treballa amb carteres” i establiu el període de càlcul de la cartera en 5 minuts. Premeu Ctrl+F12 per definir les columnes que es mostraran a la taula. La imatge mostra el resultat del treball del robot.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKAfegim algunes funcions i condicions més al nostre programa.
El bloc “Configuració d’usuari” es complementa amb les variables NÚMERO i INTERVAL, que s’utilitzaran en la funció d’obtenir les últimes N barres. La funció DATETIME estableix la data i l’hora del servidor, i les funcions de data i hora actuals CURDATE i CURTIME s’hi criden. L’hora actual es converteix en un número a la línia 24. La línia 26 estableix l’hora en què l’algorisme s’executa des de les 10:00:01 fins a les 18:40:00 UTC.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKLlenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKMolt sovint, els indicadors, oscil·ladors i càlculs estadístics es calculen mitjançant les últimes N espelmes del gràfic. QPILE no té una funció per recollir el nombre d’espelmes fa N períodes com a tal, però hi ha una funció GET_CANDLE que accedeix a les espelmes del gràfic per data i hora en format de text. El nostre codi conté la funció per obtenir les últimes N barres OHLC(). Crea una col·lecció amb els paràmetres de les darreres espelmes imbricades a la llista COL·LECCIÓ. El programa comprova el valor d’INTERVAL, i si no entra dins del rang 0…60, es mostra un missatge que el valor no es correspon amb el rang permès. Es crea una col·lecció MAP amb espelmes a la línia 88. Un bucle FOR que enquesta el gràfic a la profunditat requerida amb el pas INTERVAL de la nova espelma a l’antiga. A la línia 90, després de declarar el cicle, el robot retrocedeix un interval. Quan rebeu una espelma amb GET_CANDLE, col·loqueu-lo a la col·lecció BARLIST mitjançant la funció INSERT_COLLECTION_TEAM. Com a resultat de l’operació de l’ordre OHLC(), BARLIST es reomple amb les últimes espelmes del gràfic d’instruments en una quantitat de NUMBER. El nombre d’elements de la col·lecció és sol·licitat per l’ordre GET_COLLECTION_COUNT() i informat per la variable BARCOUNT. La data del servidor, l’hora, els valors de les variables INSTRUMENT i BARCOUNT són informats per la funció SET_VALUE() a OUTPUT. Aquesta matriu la crea l’ordre CREATE_MAP(). Les dades cauen a la taula personalitzada, que es pot veure a la foto següent. els valors de les variables INSTRUMENT i BARCOUNT són informats per la funció SET_VALUE() a OUTPUT. Aquesta matriu la crea l’ordre CREATE_MAP(). Les dades cauen a la taula personalitzada, que es pot veure a la foto següent. els valors de les variables INSTRUMENT i BARCOUNT són informats per la funció SET_VALUE() a OUTPUT. Aquesta matriu la crea l’ordre CREATE_MAP(). Les dades cauen a la taula personalitzada, que es pot veure a la foto següent.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK

Robots comercials a QPILE: solucions ja fetes

Robot mitjà mòbil

El robot de demostració no és adequat per al comerç real.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIKEl robot inclou 5 paràmetres. Els valors dels identificadors DATE, TIME, PRICE s’estableixen al nivell 30. Els identificadors MOVING i TP s’estableixen amb una precisió zero. Codi de robot en mitjana mòbil escrit a QPILE:

Calculadora de posició N. Moroshkin

Un programa per calcular els nivells de la retirada màxima admissible i l’objectiu per a posicions llargues i curtes als preus de compra i oferta actuals. Els nivells es calculen per a 2 valors del volum d’entrada de la posició. El robot troba el volum de posició admissible quan assigna una ordre de parada en un pas del preu d’obertura amb el càlcul d’obrir una posició en la direcció ascendent de la barra. Els nivells trobats s’introdueixen a la finestra del terminal, que es reflecteixen posteriorment al gràfic de preus. Les transaccions es fixen per a un instrument determinat. Si s’obre una posició, el robot comença a calcular els seus paràmetres. En funció del canvi de posició, les ordres assignades s’ajusten.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK

Filtre de volum

Un robot-cartera per calcular la mitjana aritmètica del volum de les espelmes i comparar-la amb el producte mitjà pel coeficient X. Funciona correctament amb gràfics representats en un període de temps seleccionat.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK

Opcions grecs

Cartera per calcular i mostrar “grecs” d’opcions. Es diferencia del mètode Black-Showers.
Llenguatge algorítmic QPILE per a la programació de robots comercials per a QUIK

Robot comercial TRIX per a QUIK

El programa es basa en l’indicador TRIX. Quan l’indicador es tanca per sobre de la línia zero, el nivell especificat, el robot pren la posició llarga. La posició es tanca per Take Profit, Stop Loss o trailing stop.

Preprocessador M4

Programa per treballar amb QPILE i Lua. Inclou arxius amb fitxers executables, documentació i fitxers DLL amb anàlisi d’expressions regulars. Per utilitzar el programa, heu de desempaquetar els fitxers executables i col·locar regexp2 a la ruta C:\Windows. Lliçons sobre QPILE per a QUIK: https://youtu.be/vMTXwDUujpI Instal·lació d’un script a QPILE al terminal Quik: https://youtu.be/0B7qL8Svh7I Una secció sobre github que descriu l’ús del llenguatge algorítmic QPILE integrat al Estació de treball del sistema QUIK ubicada a l’enllaç: https://euvgub.github.io/quik_user_manual/ch8.html. QPILE és un llenguatge obsolet, però bastant senzill i accessible fins i tot per als comerciants novells. Els robots comercials i els programes que s’han demostrat durant molt de temps continuen treballant-hi. Tanmateix, per a tasques més complexes és millor utilitzar LUA.

info
Rate author
Add a comment

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

    Reply