Linguaggio algoritmico QPILE per la programmazione di robot commerciali per QUIK.
I robot di trading possono essere scritti in un linguaggio specifico, simile al codice del programma. QPILE è uno di questi, questo articolo considererà questo linguaggio, confronterà i linguaggi QPILE e
LUA e fornirà anche esempi di robot in questo linguaggio.
- Informazioni generali su QPILE
- Lavorare con un tavolo
- Costrutti QPILE
- Tipi di dati
- Espressioni
- Funzioni
- Programmi di debug
- QPILE o LUA?
- Come creare un robot di trading su QPILE?
- Robot commerciali su QPILE – soluzioni già pronte
- Robot medio mobile
- Calcolatore di posizione N. Moroshkin
- Filtro volume
- Opzioni Greci
- Robot commerciale TRIX per QUIK
- Preprocessore M4
Informazioni generali su QPILE
QPILE è un’abbreviazione che sta per QUIK Programmable Interface and Logic Environment.
Questa è una serie di comandi interpretati dalla workstation QUIK. Viene utilizzato principalmente per calcolare il prezzo di portafogli di titoli. La lingua viene utilizzata anche per:
- ricalcolo dinamico del prezzo degli asset dei clienti sul desktop del broker e nei loro portafogli. In quest’ultimo caso viene ricalcolato anche il loro prezzo totale;
- trovare gli indicatori mancanti utilizzando i propri algoritmi e dati per il prestito a margine;
- sviluppare la giusta strategia di trading.
Il linguaggio descrive la struttura della tabella: la nomina di colonne e righe, formule. In quest’ultimo, per il calcolo possono essere utilizzate operazioni matematiche, variabili, dati di altre tabelle. Il codice del programma caricato dal server QUIK o dal disco dell’utente viene elaborato dall’interprete di lingua, che calcola i valori nelle formule. Le tabelle di un programma hanno un’origine dati, ma i calcoli non sono duplicati e non influiscono sull’efficienza del sistema. Quando si lavora con le tabelle QUIK, le tabelle su QPILE hanno funzioni standard. QUIK sul posto di lavoro è dotato di un debugger di codice QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Il linguaggio ti permetterà di descrivere nuove tabelle con una determinata struttura, evidenziare celle con determinati valori, calcolare campi in base a espressioni matematiche e logiche. L’utente riceverà notifiche sotto forma di segnale acustico o messaggio di testo. Le tabelle su QPILE possono essere modificate, stampate, copiate, esportate tramite server ODBC e DDE. I dati iniziali provengono dalle tabelle QUIK:
- transazioni, anche di esecuzione e impersonali;
- ordini, compresi gli ordini stop, per operazioni e ordini over-the-counter – rapporti per operazioni in accordi con regolamento;
- “portafoglio clienti”, “compra/vendi”
- dati dalle posizioni del partecipante per denaro, conti di trading, strumento.
Le tabelle basate su QPILE non possono essere copiate in un file di testo tramite il menu contestuale ed esportate in sistemi di analisi tecnica e non è possibile sviluppare grafici sulla base di esse. Le tabelle basate su QPILE non possono essere filtrate o ordinate.
Lavorare con un tavolo
Per caricare il codice del programma, è necessario selezionare il menu dei servizi, quindi gli script QPILE. Puoi anche usare la combinazione Ctrl+F11. Dopo è necessario fare clic su “Aggiungi” e selezionare il file desiderato. Ha un’estensione .qpl e il suo nome apparirà nell’elenco degli script disponibili.
- nome della tabella;
- numero di colonne e client;
- elenco di identificatori e client;
- l’elenco dei parametri e il codice sorgente del file.
Costrutti QPILE
Tipi di dati
- Stringa – stringa.
- Double è un numero in virgola mobile.
- Collezione – una collezione.
- Mappa – un array associativo – una sequenza di coppie che consente di ottenere informazioni per chiave.
Espressioni
Vengono applicate le operazioni aritmetiche di addizione, sottrazione, moltiplicazione, divisione. Vengono utilizzate anche le espressioni logiche “e”, “o”, uguale, più, meno, disuguaglianze, costruzione condizionale “se … allora …”.
Funzioni
Le funzioni possono trovarsi in qualsiasi punto del programma e avere nomi diversi. In totale, sono disponibili 18 gruppi di funzioni e funzioni matematiche per ottenere i valori di tabelle e parametri, array associativi, un elenco di tabelle e altre attività. Primo grado:
- Funzioni matematiche che consentono di restituire il valore del seno, coseno, tangente, cotangente dell’argomento, calcolare l’esponente dell’argomento, generare un numero casuale, ecc.
- Comandi generali : NEW_GLOBAL per inizializzare una variabile globale e MESSAGE per aprire i messaggi.
Funzioni con cui lavorare:
- Collezioni di oggetti (Collezione) . Consentono di creare una nuova collezione, restituire il numero di elementi richiesto, sostituire o inserire i valori desiderati.
- Array associativi (MAP) . Aiuta a creare e gestire l’array.
- File : lavorare con file di testo, mantenere un registro del programma. Il nome del file può contenere il percorso ad esso.
- Stringhe .
- Grafici . Funzioni GET_CANDLE per accedere ai dati della candela e GET_CANDLE EX per restituire un array associativo.
- Applicazioni . Creazione di ordini e invio al sistema di trading.
- Tag . La loro costruzione e installazione sul grafico. Aggiunta, eliminazione di una o tutte le etichette, recupero e impostazione dei parametri per un’etichetta specifica.
Ci sono anche funzioni per:
- Per accedere a righe di tabelle QUIK arbitrarie ed elenchi di parametri disponibili . Accesso ai dati della tabella di lavoro. Questi includono GET_ITEM per restituire la MAPPA e GET_NUMBER_OF per restituire il numero di voci.
- Per lavorare con una tabella programmabile . Questi comandi operano sulla tabella OWN. È leggibile dalle funzioni standard del paragrafo precedente e da queste funzioni. Questo gruppo include comandi per aggiungere, modificare ed eliminare una riga con un indice e cancellare completamente la tabella PROPRIA.
Per ottenere valori usa:
- Tabelle dei mestieri correnti . Ottenere i parametri delle informazioni di scambio utilizzando i comandi GET_PARAM (_EX).
- Preventivo finestre . Ottenere i valori delle quotazioni degli strumenti.
- Tabelle delle posizioni per strumenti e denaro . Ottenere dati su un cliente, azienda, strumento, conto deposito per codice.
Funzioni di servizio – restituzione della data della sessione di negoziazione corrente, serie associativa, data e ora correnti, determinazione dello stato della connessione, interruzione della modalità di calcolo.
Programmi di debug
Il controllo passo passo sul funzionamento del programma viene eseguito nella finestra “Debug”. Si apre dal menu contestuale “Avvia calcolo in modalità debug”. Può anche essere aperto con il comando breakpoint() e la riga del programma verrà evidenziata in rosso. La finestra contiene campi con codice programma e valori variabili. Nella parte inferiore della finestra sono presenti i pulsanti “Passo successivo”, “Continua esecuzione”, “Interrompi calcolo”. Premendo F5 si proseguirà l’esecuzione del programma, la combinazione Maiusc + F5 interromperà il debug, il tasto F10 indirizzerà alla riga successiva.
QPILE o LUA?
LUA è un nuovo linguaggio di programmazione per la creazione di robot di trading. Come QPILE, è implementato nel terminale QUIK. https://articles.opexflow.com/programming/lua.htm Un sito dedicato allo sviluppo di robot di trading per il trading mostra i vantaggi del linguaggio LUA rispetto a QPILE. Quindi, può funzionare come uno script e un bytecode non compilato, dotato di strumenti di sviluppo e meccanismi di programmazione orientati agli oggetti. Oggetti scritti in altri linguaggi di programmazione possono essere collegati a programmi LUA. LUA fornisce 8 tipi di dati, inclusi i metatables. Il linguaggio LUA è multi-thread, veloce e le transazioni e gli eventi del terminale sono asincroni. LUA è più comune di QPILE e per esso sono state scritte molte estensioni.
Il linguaggio QPILE è ora deprecato. Gli esperti dei forum consigliano di utilizzare LUA. Sebbene vengano ancora utilizzati programmi utili ed efficaci.
Tuttavia, il linguaggio QPILE è semplice rispetto a LUA, quindi se non hai esperienza di programmazione, è meglio scegliere QPILE. In questa lingua puoi scrivere un semplice robot se non hai bisogno di eseguire calcoli complessi.
Come creare un robot di trading su QPILE?
Per creare un consulente commerciale, avrai bisogno dei seguenti programmi:
- È Quik.
- Editor di codice Notepad++.
- Guida a QPILE.
- Plugin XML per il rilevamento del codice in Notepad++.
Scarica e installa questi programmi. Abilita la sintassi della lingua inserendo userDefineLang.xml nel percorso C:\Utenti\Utente\AppData\Roaming\Notepad++\
Il blocco “Impostazioni utente” è integrato con le variabili NUMBER e INTERVAL, che verranno utilizzate nella funzione di ottenere le ultime N barre. La funzione DATETIME imposta la data e l’ora del server e da essa vengono richiamate le funzioni di data e ora correnti CURDATE e CURTIME. L’ora corrente viene convertita in un numero sulla riga 24. La riga 26 imposta l’ora per l’esecuzione dell’algoritmo dalle 10:00:01 alle 18:40:00 UTC.
Robot commerciali su QPILE – soluzioni già pronte
Robot medio mobile
Robot demo non adatto al trading reale.
Calcolatore di posizione N. Moroshkin
Un programma per calcolare i livelli del drawdown massimo consentito e l’obiettivo per le posizioni long e short ai prezzi ask e bid correnti. I livelli sono calcolati per 2 valori del volume di ingresso della posizione. Il robot trova il volume di posizione consentito quando assegna un ordine stop in un passaggio dal prezzo di apertura con il calcolo dell’apertura di una posizione nella direzione verso l’alto della barra. I livelli trovati vengono inseriti nella finestra del terminale, che si riflette successivamente nel grafico dei prezzi. Le transazioni sono fisse per un determinato strumento. Se viene aperta una posizione, il robot inizia a calcolarne i parametri. A seconda del cambio di posizione, gli ordini assegnati vengono adeguati.
Filtro volume
Un portafoglio robot per calcolare la media aritmetica del volume per candele e confrontarla con il prodotto medio per il coefficiente X. Funziona correttamente con grafici tracciati in un periodo di tempo selezionato.
Opzioni Greci
Portafoglio per il calcolo e la visualizzazione di “greci” di opzioni. Si differenzia dal metodo Black-Showers.
Robot commerciale TRIX per QUIK
Il programma si basa sull’indicatore TRIX. Quando l’indicatore si chiude al di sopra della linea dello zero, il livello specificato, il robot assume la posizione Long. La posizione viene chiusa da Take Profit, Stop Loss o trailing stop.
Preprocessore M4
Programma per lavorare con QPILE e Lua. Include archivi con file eseguibili, documentazione e file DLL con analisi di espressioni regolari. Per utilizzare il programma, è necessario decomprimere i file eseguibili e posizionare regexp2 nel percorso C:\Windows. Lezioni su QPILE per QUIK: https://youtu.be/vMTXwDUujpI Installazione di uno script su QPILE nel terminale di Quik: https://youtu.be/0B7qL8Svh7I Una sezione su github che descrive l’uso del linguaggio algoritmico QPILE integrato nel Workstation di sistema QUIK situata al link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE è un linguaggio obsoleto, ma abbastanza semplice e accessibile anche ai trader alle prime armi. Robot commerciali e programmi che si sono dimostrati validi da molto tempo continuano a lavorarci. Tuttavia, per compiti più complessi è meglio usare LUA.
0к