Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK

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

Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK.
Handelsroboter kënnen an enger spezifescher Sprooch geschriwwe ginn, ähnlech wéi de Programmcode. QPILE ass ee vun hinnen, den Artikel wäert dës Sprooch berücksichtegen, d’QPILE an
LUA Sprooche vergläichen , an och Beispiller vu Roboteren an dëser Sprooch ubidden.

Allgemeng Informatiounen iwwert QPILE

QPILE ass eng Ofkierzung déi fir QUIK Programmable Interface and Logic Environment steet.

Dëst ass eng Serie vu Kommandoen interpretéiert vun der QUIK Workstation. Et gëtt haaptsächlech benotzt fir de Präis vu Portfolios vu Wäertpabeieren ze berechnen. D’Sprooch gëtt och benotzt fir:

  • dynamesch Neiberechnung vum Präiss vum Verméigen vun de Clienten um Desktop vum Broker an an hire Portefeuillen. Am leschte Fall gëtt hire Gesamtpräis och nei berechent;
  • fehlend Indikatoren ze fannen mat hiren eegene Algorithmen an Daten fir Marginkrediten;
  • déi richteg Handelsstrategie entwéckelen.

D’Sprooch beschreift d’Struktur vum Dësch: d’Ernennung vu Sailen a Reihen, Formelen. An der leschter kënne mathematesch Operatiounen, Variabelen, Daten aus aneren Dëscher fir d’Berechnung benotzt ginn. De Programmcode, dee vum QUIK-Server oder vum Disk vum Benotzer gelueden ass, gëtt vum Sproochentolk veraarbecht, deen d’Wäerter an de Formelen berechent. D’Tabellen vun engem Programm hunn eng Datenquell, awer d’Berechnungen sinn net duplizéiert an beaflossen net d’Effizienz vum System. Wann Dir mat QUIK Dëscher schafft, hunn Dëscher op QPILE Standardfunktiounen. QUIK op der Aarbechtsplaz ass mat engem QPILE Code Debugger ausgestatt. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm D’Sprooch erlaabt Iech nei Dëscher mat enger bestëmmter Struktur ze beschreiwen, Zellen mat bestëmmte Wäerter ze markéieren, Felder ze berechnen op Basis vu mathemateschen a logeschen Ausdréck. De Benotzer kritt Notifikatiounen a Form vun engem Soundsignal oder SMS. Dëscher op QPILE kann geännert ginn, gedréckt, kopéiert, exportéiert via ODBC an DDE Server. Déi initial Donnéeën sinn aus de QUIK Dëscher:

  • Transaktiounen, dorënner fir Ausféierung an onperséinlech;
  • Uerder, dorënner Stop Uerder, fir iwwer-de-Konter Handel an Uerder – Berichter fir Handel an Siidlung Deals;
  • “Client Portfolio”, “Kafen/verkafen”
  • Daten aus de Positiounen vum Participant duerch Suen, Handelskonten, Instrument.

Dëscher baséiert op QPILE kann net zu engem Text Fichier via de Kontext Menü kopéiert an zu technesch Analyse Systemer exportéiert ginn, an Charts kann net baséiert op hinnen entwéckelt ginn. QPILE-baséiert Dëscher kënnen net Filteren oder zortéiert ginn.

Schafft mat engem Dësch

Fir de Programm Code lued, Dir musst de Servicer Menü wielt, dann QPILE Scripten. Dir kënnt och d’Kombinatioun Ctrl + F11 benotzen. Nodeems Dir op “Add” klickt a wielt déi gewënscht Datei. Et huet eng .qpl Extensioun a säin Numm erschéngt an der Verfügbar Scripte Lëscht.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKWann et e Feeler am Programm ass, mécht de System eng Notifikatioun an der “Message-Fënster”, déi den Numm vun der defekter Datei an d’Linnnummer mat dem Feeler enthält. Wa keng Feeler an der Datei fonnt goufen, ginn déi folgend Donnéeën an de Felder uginn:

  • Dësch Numm;
  • Zuel vu Sailen a Clienten;
  • Lëscht vun Identifizéierer a Clienten;
  • d’Lëscht vun de Parameteren an de Quellcode vun der Datei.

Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKDe Knäppchen “Lokal eroflueden” erlaabt Iech den Dësch aus enger Datei ze kréien, an “Eroplueden op de Server” schéckt de Programm op de Server, fir datt all Benotzer et zougräifen. Fir en Dësch ze kreéieren, klickt op Table erstellen. Am “Verfügbar Skripte” wielt de Programm deen Dir ausféiere musst, setze d’Zuel vun den Zeilen duerch de “Filter vu Clienten”, bestëmmen déi erfuerderlech Kolonnen an hir Sequenz.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKPauséieren an d’Berechnung erëmfannen, d’Berechnung erëm ufänken an am Debugmodus, d’Beschreiwung op eng Datei späicheren, d’Formel demonstréieren, a Skriptparameter sinn am Kontextmenü verfügbar.

QPILE konstruéiert

Daten Zorte

  • String – String.
  • Duebel ass eng schwiewend Punktzuel.
  • Kollektioun – eng Kollektioun.
  • Kaart – en assoziativen Array – eng Sequenz vu Pairen déi Iech erlaabt Informatioun duerch Schlëssel ze kréien.

Ausdréck

Déi arithmetesch Operatioune vun Additioun, Subtraktioun, Multiplikatioun, Divisioun ginn ugewannt. Déi logesch Ausdréck “an”, “oder”, gläich, méi, manner, Ongläichheeten, bedingungsvoll Konstruktioun “wann … dann …” ginn och benotzt.

Fonctiounen

Funktiounen kënnen iwwerall am Programm lokaliséiert ginn an hunn verschidden Nimm. Am Ganzen sinn 18 Gruppe vu mathematesche Funktiounen a Funktiounen verfügbar fir d’Wäerter vun Dëscher a Parameteren, assoziativ Arrays, eng Lëscht vun Dëscher an aner Aufgaben ze kréien. Éischt Klass:

  1. Mathematesch Funktiounen , déi Iech erlaben de Wäert vum Sinus, Cosinus, Tangent, Cotangent vum Argument zréckzeginn, den Exponent vum Argument ze berechnen, eng zoufälleg Zuel ze generéieren, etc.
  2. Allgemeng Kommandoen : NEW_GLOBAL fir eng global Variabel ze initialiséieren an MESSAGE fir Messagen opzemaachen.

Funktiounen fir mat ze schaffen:

  • Sammlung vun Objeten (Kollektioun) . Si erlaben Iech eng nei Sammlung ze kreéieren, déi erfuerderlech Unzuel vun Elementer zréckzeginn, déi gewënschte Wäerter z’ersetzen oder anzeginn.
  • Associative Arrays (MAP) . Hëlleft d’Array ze kreéieren an ze managen.
  • Dateien – mat Textdateien schaffen, e Log-Log vum Programm erhalen. De Dateinumm kann de Wee dohinner enthalen.
  • Strings .
  • Grafiken . Fonctiounen GET_CANDLE fir Zougang zu Käerzendaten an GET_CANDLE EX fir en assoziativen Array zréckzekommen.
  • Uwendungen . Bestellungen erstellen an se an den Handelssystem schécken.
  • Tags . Hir Konstruktioun an Installatioun op der Grafik. Addéieren, läschen een oder all Etiketten, kréien a setzen Parameteren fir e spezifesche Label.

Et ginn och Funktiounen fir:

  1. Fir Zougang zu Reihen vun arbiträren QUIK Dëscher a Lëschte vu verfügbare Parameteren . Zougang zu Aarbechtsplaz Dësch Daten. Dës enthalen GET_ITEM fir d’MAP zréckzebréngen an GET_NUMBER_OF fir d’Zuel vun den Entréen zréckzeginn.
  2. Fir mat engem programméierbaren Dësch ze schaffen . Dës Kommandoen funktionnéieren op der EIGEN Dësch. Et ass liesbar duerch d’Standardfunktiounen aus dem viregte Paragraf a vun dëse Funktiounen. Dëse Grupp enthält Kommandoen fir eng Zeil mat engem Index derbäizefügen, z’änneren an ze läschen, an d’EIGEN Tabelle komplett ze läschen.

Fir Wäerter ze kréien benotzt:

  1. Tabelle vun aktuellen Handel . Kréien Austauschinformatiounsparameter mat GET_PARAM (_EX) Kommandoen.
  2. Zitat Fënsteren . Erhalen d’Wäerter vun Instrument Zitater.
  3. Dëscher vun Positiounen no Instrumenter a Suen . Erhalen Donnéeën op engem Client, Firma, Instrument, Depo Kont duerch Code.

Service Funktiounen – den Datum vun der aktueller Handelssitzung zréckginn, assoziativ Serie, aktuellen Datum an Zäit, Bestëmmung vum Verbindungszoustand, Ënnerbriechung vum Berechnungsmodus.

Debugging Programmer

Schrëtt fir Schrëtt Kontroll iwwer d’Operatioun vum Programm gëtt an der “Debug” Fënster duerchgefouert. Et gëtt aus dem Kontextmenü “Start Berechnung am Debug Modus” opgemaach. Et kann och mat der breakpoint opgemaach ginn () Kommando, an der Programm Linn wäert am rout markéiert ginn. D’Fënster enthält Felder mat Programmcode a Variabel Wäerter. Um Enn vun der Fënster sinn et Knäppercher “Nächste Schrëtt”, “Ausféierung weider”, “Berechnung stoppen”. Dréckt F5 wäert d’Ausféierung vum Programm weiderféieren, d’Kombinatioun Shift + F5 stoppt Debugging, de F10-Schlëssel féiert op déi nächst Zeil.

QPILE oder LUA?

LUA ass eng nei Programméierungssprooch fir Handelsroboter ze kreéieren. Wéi QPILE ass et am QUIK Terminal implementéiert. https://articles.opexflow.com/programming/lua.htm E Site gewidmet fir d’Entwécklung vun Handelsroboter fir den Handel weist d’Virdeeler vun der LUA Sprooch iwwer QPILE. Also, et kann als net-kompiléiert Skript a Bytecode funktionnéieren, ausgestatt mat Entwéckler Tools an objektorientéierter Programméierungsmechanismen. Objekter, déi an anere Programméierungssprooche geschriwwe sinn, kënne mat LUA Programmer verbonne sinn. LUA bitt 8 Datentypen, dorënner Metatabelen. D’LUA Sprooch ass multi-threaded, séier, an Transaktiounen an Terminalevenementer sinn asynchron. LUA ass méi heefeg wéi QPILE, a vill Extensiounen sinn dofir geschriwwe ginn.

D’QPILE Sprooch ass elo ofgeschaaft. Experten op de Foren recommandéiere LUA ze benotzen. Och wann nëtzlech an effektiv Programmer nach ëmmer benotzt ginn.

Wéi och ëmmer, d’QPILE Sprooch ass einfach am Verglach zum LUA, also wann Dir keng Erfahrung am Programméiere hutt, ass et besser QPILE ze wielen. An dëser Sprooch kënnt Dir en einfache Roboter schreiwen wann Dir keng komplex Berechnunge maache musst.

Wéi erstellt en Handelsroboter op QPILE?

Fir en Handelsberoder ze kreéieren, braucht Dir déi folgend Programmer:

  1. ITS Quik.
  2. Notizblock++ Code Editor.
  3. Guide ze QPILE.
  4. XML Plugin fir Code Detektioun am Notepad ++.

Eroflueden an installéieren dës Programmer. Aktivéiert d’Sproochsyntax andeems de userDefineLang.xml am Wee C:\Users\User\AppData\Roaming\Notepad++\
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKAls éischt, loosst eis déi folgend Handelsstrategie erstellen. De Skript soll Salut a Low fir déi lescht Käerzen all Minutt berechnen, kuckt den aktuelle Präis vum Instrument. Eng Positioun gëtt an déi erfuerderlech Richtung opgemaach wann de Präis vum Instrument de Maximum oder de Minimum Wäert fir d’Period erreecht. Wann e Signal fir kuerz kritt ass, gëtt déi laang Positioun automatesch zougemaach. De Roboter benotzt de GAZP Tool, den Zäitframe ass op 1 min gesat. Déi héich niddereg Miessdéift ass op 5 Käerzen gesat. Fir Long anzeginn, gëtt eng Regel gesat an d’Kräizung vum aktuelle Präis vum maximale Wäert fir d’Period. De Roboter wäert kuerz aginn wann den aktuelle Präis de Mindestwäert fir dës 5 Käerzen iwwerschreift. Schreift e Block vu Code am Notepad ++ mat Basisastellungen a Serverdatum an Zäit. Dëse Code gëtt am Bild hei ënnen gewisen.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKDéi éischt 4 Zeilen vum Code bilden de Programmheader. Tëscht de Linnen 6 an 44 ass de Kierper vum Programm, deen den Inhalt vum Roboter enthält. Linnen 7 – 12 enthalen Benotzer Astellungen, déi d’Coden vum Instrument, Grupp a Client, d’Kontosnummer op der MICEX enthalen. Dës Wäerter änneren net wärend der Ausféierung vum Programm. Linnen 13 – 16 sinn d’Ufankswäerter vun de Variabelen. Si ginn op Null op all Iteratiounspass zréckgesat. Linnen 17 – 21 enthalen eng Indikatioun fir de Server Datum an Zäit ze benotzen. Dës Donnéeë ginn un d’DATETIME Funktioun weiderginn an an Textformat ëmgewandelt. Linnen 22 – 29 schécken déi kritt Donnéeën op den Dësch. De Code muss gespäichert ginn an d’qpl Extensioun muss spezifizéiert ginn.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKÖffnen de Programm am QUIK andeems Dir Ctrl + F10 dréckt a wielt déi generéiert qpl Datei. Benotzt d’Ctrl + F11 Kombinatioun fir d’Fënster “Aarbecht mat Portfolioen” opzemaachen an d’Portfolio-Berechnungsperiod op 5 Minutten ze setzen. Dréckt Ctrl + F12 fir d’Kolonn ze setzen fir an der Tabell ze weisen. D’Bild weist d’Resultat vun der Aarbecht vum Roboter.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKLoosst eis e puer méi Funktiounen a Konditioune fir eise Programm addéieren.
De Block “Benotzer Astellungen” gëtt ergänzt mat den NUMMER an INTERVAL Variablen, déi an der Funktioun benotzt gi fir déi lescht N Baren ze kréien. D’DATETIME Funktioun setzt de Server Datum an Zäit, an déi aktuell Datum an Zäit Funktiounen CURDATE an CURTIME ginn aus et genannt. Déi aktuell Zäit gëtt an eng Zuel op der Linn ëmgerechent 24. Linn 26 setzt d’Zäit fir den Algorithmus vun 10:00:01 bis 18:40:00 UTC ze lafen.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKAlgorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKMeeschtens sinn Indikatoren, Oszilléierer, statistesch Berechnungen duerch déi lescht N Käerzen vun der Grafik berechent. QPILE huet keng Funktioun fir eng Sammelt der Zuel vun Käerzen N Perioden ago als esou, mä et gëtt eng GET_CANDLE Funktioun datt d’Käerzen op der Grafik vun Datum an Zäit am Text Format Zougang. Eise Code enthält d’Funktioun fir déi lescht N Baren OHLC () ze kréien. Et erstellt eng Sammlung mat de Parameteren vun de leschte Käerzen, déi an der COLLECTION Lëscht nestéiert sinn. De Programm kontrolléiert den INTERVAL-Wäert, a wann et net am Beräich 0…60 fällt, gëtt e Message ugewisen datt de Wäert net dem erlaabten Beräich entsprécht. Eng MAP Sammlung mat Käerzen gëtt an der Linn erstallt 88. A FOR Loop, déi d’Diagramm op déi erfuerderlech Déift mam INTERVAL Schrëtt vun der neier op déi al Käerz pollingt. An der Linn 90, nodeems den Zyklus deklaréiert ass, geet de Roboter en Intervall zréck. Wann Dir eng Käerz mat GET_CANDLE kritt, Plaz et an der BARLIST Sammlung mat der INSERT_COLLECTION_TEAM Funktioun. Als Resultat vun der Operatioun vun der OHLC () Kommando, BARLIST mat de leschte Käerzen aus dem Instrument Diagramm an der Zomm vun ZUEL replenished. D’Zuel vun den Elementer an der Sammlung gëtt vum Kommando GET_COLLECTION_COUNT() gefrot a vun der BARCOUNT Variabel gemellt. Server Datum, Zäit, Wäerter vun INSTRUMENT a BARCOUNT Variablen ginn duerch SET_VALUE () Funktioun am OUTPUT gemellt. Dës Array gëtt vum CREATE_MAP () Kommando erstallt. D’Daten falen an de personaliséierten Dësch, deen op der Foto hei drënner gesi ka ginn. d’Wäerter vun den INSTRUMENT a BARCOUNT Variablen ginn vun der SET_VALUE () Funktioun am OUTPUT gemellt. Dës Array gëtt vum CREATE_MAP () Kommando erstallt. D’Daten falen an de personaliséierten Dësch, deen op der Foto hei drënner gesi ka ginn. d’Wäerter vun den INSTRUMENT a BARCOUNT Variablen ginn vun der SET_VALUE () Funktioun am OUTPUT gemellt. Dës Array gëtt vum CREATE_MAP () Kommando erstallt. D’Daten falen an de personaliséierten Dësch, deen op der Foto hei drënner gesi ka ginn.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK

Trading Roboteren op QPILE – fäerdeg Léisungen

Plënneren Moyenne Roboter

Demo Roboter net gëeegent fir real Handel.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIKDe Roboter enthält 5 Parameteren. DATE, TIME, PRICE Identifier Wäerter sinn op Niveau 30 gesat. MOVING an TP Identifizéierer sinn op Null Präzisioun gesat. Roboter Code op Plënneren Moyenne ënner QPILE geschriwwe: [Galerie Kolonnen = “5” ids = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]

N. Moroshkin Positioun Rechner

E Programm fir d’Niveaue vun der maximal zulässlecher Oflehnung an d’Zil fir laang a kuerz Positiounen bei aktuellen Ufro- a Offerpräisser ze berechnen. D’Niveaue gi fir 2 Wäerter vum Positiounentréevolumen berechent. De Roboter fënnt de zulässlechen Positiounsvolumen wann Dir eng Stopbestellung an engem Schrëtt vum Ouverturespräis mat der Berechnung vun der Ouverture vun enger Positioun an der Richtung vum Barwachstum zougewisen. Déi fonnt Niveauen ginn an d’Terminalfenster agefouert, déi duerno an der Präisdiagramm reflektéiert ginn. Transaktioune si fir e bestëmmten Instrument fixéiert. Wann eng Positioun opgemaach ass, fänkt de Roboter seng Parameteren aus. Ofhängeg vun der Ännerung vun der Positioun, ginn déi zougewisen Bestellungen ugepasst.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK

Volume Filter

Portfolio Roboter fir de arithmetesche Moyenne vum Volume fir Käerzen ze berechnen an et mam Duerchschnëttsprodukt mam X-Koeffizient ze vergläichen. Schafft korrekt mat geplotte Charts an der gewielter Zäitperiod.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK

Optiounen Griichen

Portfolio fir “Griichen” vun Optiounen ze berechnen an ze weisen. Et ënnerscheet sech vun der Black-Showers Method.
Algorithmesch Sprooch QPILE fir programméiere Handelsroboter fir QUIK

TRIX Handelsroboter fir QUIK

De Programm baséiert op der TRIX Indikator. Wann den Indikator iwwer der Nulllinn zoumaacht, de spezifizéierte Niveau, hëlt de Roboter déi laang Positioun. D’Positioun ass zougemaach duerch Take Profit, Stop Loss oder Trailing Stop.

M4 preprocessor

Programm fir mat QPILE a Lua ze schaffen. Ëmfaasst Archiver mat ausführbare Dateien, Dokumentatioun an DLL Dateien mat regulärem Ausdrock Parsing. Fir de Programm ze benotzen, musst Dir déi ausführbar Dateien auspacken a regexp2 am C:\Windows Wee setzen. Lektiounen iwwer QPILE fir QUIK: https://youtu.be/vMTXwDUujpI E Skript op QPILE am Quik Terminal installéieren: https://youtu.be/0B7qL8Svh7I Eng Sektioun op Github déi d’Benotzung vun der QPILE algorithmescher Sprooch beschreift, déi an der gebauter QUIK System Workstation um Link läit – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE ass eng al Sprooch, awer zimlech einfach an zougänglech och fir Ufänger Händler. Trading Roboteren a Programmer, déi sech fir eng laang Zäit bewisen hunn, schaffen weider drun. Wéi och ëmmer, fir méi komplex Aufgaben ass et besser LUA ze benotzen.

info
Rate author
Add a comment

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

    Reply