Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK

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

Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK.
I robots di cummerciale ponu esse scritti in una lingua specifica, simili à u codice di u prugramma. QPILE hè unu di elli, l’articulu cunsiderà sta lingua, paragunà e lingue QPILE è
LUA , è ancu furnisce esempi di robots in questa lingua.

L’infurmazione generale nantu à QPILE

QPILE hè un’abbreviazione chì significa QUIK Programmable Interface and Logic Environment.

Questa hè una seria di cumandamenti interpretati da a stazione di travagliu QUIK. Hè principarmenti utilizatu per calculà u prezzu di cartera di tituli. A lingua hè ancu usata per:

  • recalculazione dinamica di u prezzu di l’assi di i clienti nantu à u desktop di u broker è in i so portafogli. In l’ultimu casu, u so prezzu tutale hè ancu recalculatu;
  • truvà indicatori mancanti utilizendu i so propri algoritmi è dati per u prestitu di margini;
  • sviluppà a strategia di cummerciale ghjusta.

A lingua descrive a struttura di a tavula: l’appuntamentu di culonni è fila, formule. In l’ultimi, l’operazioni matematiche, variàbili, dati da altre tavule pò esse usatu per u calculu. U codice di u prugramma caricatu da u servitore QUIK o da u discu di l’utilizatori hè trattatu da l’interprete di lingua, chì calcula i valori in e formule. I tavule di un prugramma anu una fonte di dati, ma i calculi ùn sò micca duplicati è ùn anu micca affettatu l’efficienza di u sistema. Quandu u travagliu cù e tavule QUIK, i tavule nantu à QPILE anu funzioni standard. QUIK in u locu di travagliu hè dotatu di un debugger di codice QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm A lingua permette di discrìviri novi tavule cù una struttura data, mette in risaltu e cellule cù certi valori, calculà campi basati nantu à espressioni matematiche è logiche. L’utilizatore riceverà notificazioni in forma di un signalu sonu o un missaghju di testu. E tabelle nantu à QPILE ponu esse editate, stampate, copiate, esportate via u servitore ODBC è DDE. I dati iniziali sò da e tavule QUIK:

  • transazzione, ancu per l’esekzione è impersonale;
  • Ordini, cumpresi ordini di stop, per i cumerci è ordini over-the-counter – rapporti per i cummerci in accordi di liquidazione;
  • “portfolio clienti”, “cumprà / vende”
  • dati da i pusizioni di i participanti da soldi, cunti di cummerciu, strumentu.

I tavule basati nantu à QPILE ùn ponu micca esse copiati in un schedariu di testu via u menù di u cuntestu è esportati à sistemi di analisi tecniche, è i grafici ùn ponu micca esse sviluppati nantu à elli. E tavule basate in QPILE ùn ponu esse filtrate o ordinate.

U travagliu cù una tavola

Per carricà u codice di u prugramma, avete bisognu di selezziunà u menù di servizii, dopu QPILE scripts. Pudete ancu aduprà a cumminazzioni Ctrl + F11. Dopu avè bisognu di cliccà “Add” è selezziunate u schedariu desideratu. Hà una estensione .qpl è u so nome appariscerà in a lista di Scripts Disponibile.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKSe ci hè un errore in u prugramma, u sistema farà una notificazione in a “Finestra di messagiu”, chì cuntene u nome di u schedariu difettu è u numeru di linea cù l’errore. Se ùn ci hè statu trovu fallimenti in u schedariu, i seguenti dati seranu indicati in i campi:

  • nome di a tavola;
  • numeru di culonni è clienti;
  • lista di identificatori è clienti;
  • a lista di i paràmetri è u codice fonte di u schedariu.

Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKU buttone “Download locally” vi permetterà di ottene a tavola da un schedariu, è “Upload to server” mandarà u prugramma à u servitore per chì tutti l’utilizatori ponu accede à questu. Per creà una tavula, cliccate Crea una tabella. In u “Scripts dispunibili” selezziunate u prugramma chì avete bisognu à eseguisce, stabilisce u numeru di linii attraversu u “Filtru di i clienti”, determinà e culonni necessarii è a so sequenza.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKPausa è ripiglià u calculu, cuminciendu u calculu di novu è in modu di debug, salvendu a descrizzione in un schedariu, dimustrà a formula è i paràmetri di script sò dispunibuli in u menù di cuntestu.

QPILE custruzzioni

Tipi di dati

  • String – string.
  • Doppiu hè un numeru in virgule flottante.
  • Cullizzioni – una cullizzioni.
  • Mappa – un array assuciativu – una sequenza di coppie chì vi permette di ottene infurmazioni per chjave.

Espressioni

L’operazioni aritmetiche di addizzioni, sottrazione, multiplicazione, divisioni sò applicate. L’espressioni lògichi “è”, “o”, uguali, più, menu, inuguaglianze, custruzzioni cundiziunali “se … allora …” sò ancu usati.

Funzioni

E funzioni ponu esse situate in ogni locu in u prugramma è anu diverse nomi. In totale, 18 gruppi di funzioni matematiche è funzioni sò dispunibuli per ottene i valori di tavule è paràmetri, arrays associativi, una lista di tavule è altre attività. Prima classa:

  1. Funzioni matematiche chì permettenu di rinvià u valore di u senu, cosenu, tangente, cotangente di l’argumentu, calculà l’esponente di l’argumentu, generà un numeru aleatoriu, etc.
  2. Cumandamenti generale : NEW_GLOBAL per inizializà una variabile globale è MESSAGE per apre i missaghji.

Funzioni per travaglià cù:

  • Raccolta d’ogetti (Collezione) . Permettenu di creà una nova cullizzioni, rinvià u numeru necessariu di elementi, rimpiazzà o inserisce i valori desiderati.
  • Arrays Associativi (MAP) . Aiutate à creà è gestisce l’array.
  • Files – travaglià cù schedari di testu, mantene un log-log di u prugrammu. U nome di u schedariu pò cuntene a strada per ellu.
  • Corde .
  • Grafici . Funzioni GET_CANDLE per accede à e dati di candele è GET_CANDLE EX per rinvià un array assuciativu.
  • Applicazioni . Crià ordini è mandà à u sistema di cummerciu.
  • Tags . A so custruzzione è a stallazione nantu à a carta. Aghjunghjite, sguassate una o tutte e etichette, uttene è stabilisce parametri per una etichetta specifica.

Ci sò ancu funzioni per:

  1. Per accede à e file di tabelle QUIK arbitrarie è liste di parametri dispunibili . Accessu à e dati di a tavola di u locu di travagliu. Questi includenu GET_ITEM per rinvià u MAP è GET_NUMBER_OF per rinvià u numeru di entrate.
  2. Per travaglià cù una tavola programable . Questi cumandamenti operanu nantu à a tavola PROPRIA. Hè leggibile da e funzioni standard da u paràgrafu precedente è da queste funzioni. Stu gruppu include cumandamenti per aghjunghje, mudificà è sguassate una fila cù un indice, è sguassate cumplettamente a tavola PROPRIA.

Per piglià i valori utilizate:

  1. Tavule di i cummerci attuali . Ottene paràmetri di infurmazione di scambiu utilizendu cumandamenti GET_PARAM (_EX).
  2. Quote windows . Ottene i valori di i citazioni di l’instrumentu.
  3. Tavule di pusizioni per strumenti è soldi . Uttenimentu di dati nantu à un cliente, impresa, strumentu, contu depo per codice.

Funzioni di serviziu – rinvià a data di a sessione di cummerciale attuale, a serie associativa, a data è l’ora attuale, determinendu u statu di cunnessione, interrompendu u modu di calculu.

Programmi di debugging

U cuntrollu Step-by-step nantu à u funziunamentu di u prugrammu hè realizatu in a finestra “Debug”. Hè apertu da u menù di cuntestu “Start calculu in modu debug”. Pò esse ancu apertu cù u cumandimu breakpoint (), è a linea di prugramma serà evidenziata in rossu. A finestra cuntene campi cù codice di prugramma è valori variàbili. À u fondu di a finestra ci sò i buttoni “Next step”, “Cuntinuà l’esecuzione”, “Stop calculu”. Pressing F5 cuntinueghja l’esekzione di u prugramma, a cumminazione Shift + F5 cesserà di debugging, a chjave F10 dirigerà à a prossima linea.

QPILE o LUA?

LUA hè una nova lingua di prugrammazione per a creazione di robot di cummerciale. Cum’è QPILE, hè implementatu in u terminal QUIK. https://articles.opexflow.com/programming/lua.htm Un situ dedicatu à u sviluppu di robot di cummerciale per u cummerciu mostra i vantaghji di a lingua LUA nantu à QPILE. Cusì, pò funziunà cum’è un script non compilatu è bytecode, dotatu di strumenti di sviluppatore è miccanismi di prugrammazione orientati à l’ughjettu. L’uggetti scritti in altre lingue di prugrammazione ponu esse cunnessi à i prugrammi LUA. LUA furnisce 8 tippi di dati, cumprese metatables. A lingua LUA hè multi-threaded, veloce, è e transazzione è l’avvenimenti terminali sò asincroni. LUA hè più cumuni di QPILE, è parechje estensioni sò state scritte per questu.

A lingua QPILE hè avà obsoleta. I sperti nantu à i fori ricumandenu di utilizà LUA. Ancu se i prugrammi utili è efficaci sò sempre usati.

In ogni casu, a lingua QPILE hè simplice paragunata à LUA, perchè s’ellu ùn avete micca sperienza in a prugrammazione, hè megliu di sceglie QPILE. In questa lingua, pudete scrive un robot simplice sè ùn avete micca bisognu di fà calculi cumplessi.

Cumu creà un robot di cummerciale nantu à QPILE?

Per creà un cunsigliu cummerciale, avete bisognu di i seguenti prugrammi:

  1. U so Quik.
  2. Editore di codice Notepad++.
  3. Guida à QPILE.
  4. Plugin XML per a rilevazione di codice in Notepad ++.

Scaricate è stallà sti prugrammi. Abilita a sintassi di a lingua pusendu userDefineLang.xml in a strada C:\Users\User\AppData\Roaming\Notepad++\
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKPrima, creemu a seguente strategia di cummerciale. U script deve calculà Hi è Low per l’ultimi candele ogni minutu, verificate u prezzu attuale di u strumentu. Una pusizione hè aperta in a direzzione necessaria se u prezzu di l’instrumentu righjunghji u valore massimu o minimu per u periodu. Quandu un signalu per cortu hè ricevutu, a pusizione longa hè automaticamente chjusa. U robot usa l’utillita GAZP, u quadru di tempu hè stabilitu à 1 min. A prufundità di misurazione alta-bassa hè stabilita à 5 candele. Per entre Long, una regula hè stabilita è l’intersezzione di u prezzu attuale di u valore massimu per u periodu. U robot entre in Short se u prezzu attuale attraversa u valore minimu per queste 5 candele. Scrivite un bloccu di codice in Notepad ++ cù paràmetri di basa è data è ora di u servitore. Stu codice hè mostratu in a stampa sottu.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKI primi 4 linee di codice formanu l’intestazione di u prugramma. Trà i linii 6 è 44 hè u corpu di u prugramma, chì cuntene u cuntenutu di u robot. Linee 7 – 12 cuntenenu i paràmetri di l’utilizatori, chì includenu i codici di l’instrumentu, u gruppu è u cliente, u numeru di contu nantu à u MICEX. Questi valori ùn cambianu micca durante l’esecuzione di u prugramma. Linee 13 – 16 sò i valori iniziali di e variàbili. Seranu resettati à zero in ogni passu di iterazione. Linee 17 – 21 cuntenenu una indicazione per utilizà a data è l’ora di u servitore. Queste dati sò passati à a funzione DATETIME è cunvertiti in furmatu di testu. Lines 22 – 29 mandanu i dati ricevuti à a tavula. U codice deve esse salvatu è l’estensione qpl deve esse specificata.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKAprite u prugramma in QUIK pressu Ctrl + F10 è selezziunate u schedariu qpl generatu. Aduprate a combinazione Ctrl + F11 per apre a finestra “Travagliu cù Portfolios” è stabilisce u periodu di calculu di cartera à 5 minuti. Press Ctrl + F12 per stabilisce e colonne per vede in a tavula. A stampa mostra u risultatu di u travagliu di u robot.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKAghjunghjemu uni pochi di più funzioni è cundizioni à u nostru prugramma.
U bloccu “Configurazione di l’Usuariu” hè cumplementatu cù e variabili NUMERO è INTERVALU, chì seranu utilizati in a funzione di ottene l’ultimi N bars. A funzione DATETIME stabilisce a data è l’ora di u servitore, è e funzioni di data è ora attuale CURDATE è CURTIME sò chjamati da questu. L’ora attuale hè cunvertita in un numeru nantu à a linea 24. A linea 26 stabilisce l’ora per l’algoritmu per esse da 10:00:01 à 18:40:00 UTC.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKLingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKA maiò spessu, indicatori, oscillatori, calculi statistichi sò calculati da l’ultimi N candele di u graficu. QPILE ùn hà micca una funzione per cullà u numeru di candele N pirìudi fa comu tali, ma ci hè una funzione GET_CANDLE chì accede à i candele nantu à u graficu per data è ora in forma di testu. U nostru codice cuntene a funzione per uttene l’ultimi N bars OHLC (). Crea una cullizzioni cù i paràmetri di l’ultime candele nidificate in a lista COLLECTION. U prugramma cuntrolla u valore INTERVAL, è s’ellu ùn hè micca in u range 0…60, un missaghju hè visualizatu chì u valore ùn currisponde micca à a gamma permessa. Una cullizzioni MAP cù candele hè creatu in a linea 88. A FOR loop polling the chart to the required deep with the INTERVAL step from the new to the old candela. In a linea 90, dopu chì u ciculu hè dichjaratu, u robot torna un intervallu. Quandu avete una candela cù GET_CANDLE, mette in a cullizzioni BARLIST usendu a funzione INSERT_COLLECTION_TEAM. In u risultatu di u funziunamentu di u cumandamentu OHLC (), BARLIST hè rimbursatu cù l’ultimi candele da u cartulare di l’instrumentu in quantità di NUMERO. U numeru di elementi in a cullizzioni hè dumandatu da u cumandimu GET_COLLECTION_COUNT () è rappurtatu da a variàbile BARCOUNT. A data di u servitore, l’ora, i valori di e variabili INSTRUMENT è BARCOUNT sò riportati da a funzione SET_VALUE() in OUTPUT. Stu array hè creatu da u cumandimu CREATE_MAP (). I dati cadenu in a tavula persunalizata, chì pò esse vistu in a foto sottu. i valori di e variabili INSTRUMENT è BARCOUNT sò riportati da a funzione SET_VALUE() in OUTPUT. Stu array hè creatu da u cumandimu CREATE_MAP (). I dati cadenu in a tavula persunalizata, chì pò esse vistu in a foto sottu. i valori di e variabili INSTRUMENT è BARCOUNT sò riportati da a funzione SET_VALUE() in OUTPUT. Stu array hè creatu da u cumandimu CREATE_MAP (). I dati cadenu in a tavula persunalizata, chì pò esse vistu in a foto sottu.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK

Robots di cummerciale nantu à QPILE – soluzioni pronte

Robot mediu in muvimentu

Demo robot ùn hè micca adattatu per u cummerciu reale.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIKU robot include 5 paràmetri. I valori d’identificatore DATE, TIME, PRICE sò messi à u nivellu 30. L’identificatori MOVING è TP sò stabiliti à precisione zero. U codice di u robot nantu à a media mobile scrittu sottu QPILE: [colonne di galleria = “5” ids = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]

Calculatrice di pusizioni N. Moroshkin

Un prugramma per calculà i livelli di u massimu permessu di drawdown è u target per i pusizioni longu è curtu à i prezzi attuali di dumanda è offerta. I livelli sò calculati per 2 valori di u voluminu di entrata di pusizioni. U robot trova u voluminu di pusizioni permessi quandu assigna un ordine di stop in un passu da u prezzu di apertura cù u calculu di apertura di una pusizione in a direzzione di a crescita di a barra. I niveli truvati sò inseriti in a finestra di u terminal, chì dopu sò riflessi in u cartulare di prezzu. E transacciones sò fissate per un strumentu determinatu. Se una pusizioni hè aperta, u robot cumencia à calculà i so parametri. Sicondu u cambiamentu di pusizioni, l’ordine assignati sò adattati.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK

Filtru di u voluminu

Portfolio robot per u calculà a media aritmetica di u voluminu di candele è paragunà cù u pruduttu mediu da u coefficient X. Funziona currettamente cù grafici tracciati in u periodu di tempu sceltu.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK

Opzioni Grechi

Portfolio per calculà è visualizà “Greci” di opzioni. Differisce da u metudu Black-Showers.
Lingua algoritmica QPILE per a prugrammazione di robot di cummerciale per QUIK

Robot di cummerciale TRIX per QUIK

U prugramma hè basatu annantu à l’indicatore TRIX. Quandu l’indicatore chjude sopra à a linea cero, u livellu specificu, u robot piglia a pusizione Long. A pusizione hè chjusa da Take Profit, Stop Loss o trailing stop.

Preprocessore M4

Prugramma per travaglià cù QPILE è Lua. Include archivi cù i fugliali eseguibili, a documentazione è i fugliali DLL cù l’analisi di l’espressione regulare. Per utilizà u prugramma, avete bisognu di scumpressà i fugliali eseguibili è mette regexp2 in a strada C: \ Windows. Lezioni nantu à QPILE per QUIK: https://youtu.be/vMTXwDUujpI Installazione di un script in QPILE in u terminal Quik: https://youtu.be/0B7qL8Svh7I Una sezione nantu à github chì descrive l’usu di a lingua algoritmica QPILE integrata in u A stazione di travagliu di u sistema QUIK situatu à u ligame – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE hè una lingua obsoleta, ma abbastanza simplice è accessibile ancu per i cummircianti principianti. I robots di cummerciale è i prugrammi chì anu pruvatu per un bellu pezzu cuntinueghjanu à travaglià nantu à questu. Tuttavia, per i travaglii più cumplessi hè megliu aduprà LUA.

info
Rate author
Add a comment

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

    Reply