Algorithmische Sprache QPILE zur Programmierung von Handelsrobotern für QUIK.
Handelsroboter können in einer bestimmten Sprache geschrieben werden, ähnlich wie Programmcode. QPILE ist einer von ihnen, dieser Artikel wird diese Sprache betrachten, die Sprachen QPILE und
LUA vergleichen und auch Beispiele für Roboter in dieser Sprache geben.
- Allgemeine Informationen zu QPILE
- Arbeiten mit einer Tabelle
- QPILE-Konstrukte
- Datentypen
- Ausdrücke
- Funktionen
- Programme debuggen
- QPILE oder LUA?
- Wie erstelle ich einen Handelsroboter auf QPILE?
- Handelsroboter auf QPILE – fertige Lösungen
- Beweglicher durchschnittlicher Roboter
- N. Moroshkin-Positionsrechner
- Volumenfilter
- Optionen Griechen
- TRIX Handelsroboter für QUIK
- M4-Präprozessor
Allgemeine Informationen zu QPILE
QPILE ist eine Abkürzung, die für QUIK Programmable Interface and Logic Environment steht.
Dies ist eine Reihe von Befehlen, die von der QUIK-Workstation interpretiert werden. Es wird hauptsächlich verwendet, um den Preis von Wertpapierportfolios zu berechnen. Die Sprache wird auch verwendet für:
- dynamische Neuberechnung des Preises der Vermögenswerte der Kunden auf dem Desktop des Maklers und in ihren Portfolios. Im letzteren Fall wird auch ihr Gesamtpreis neu berechnet;
- Finden fehlender Indikatoren unter Verwendung ihrer eigenen Algorithmen und Daten für Margenkredite;
- Entwicklung der richtigen Handelsstrategie.
Die Sprache beschreibt den Aufbau der Tabelle: die Benennung von Spalten und Zeilen, Formeln. In letzterem können mathematische Operationen, Variablen, Daten aus anderen Tabellen zur Berechnung verwendet werden. Der vom QUIK-Server oder von der Festplatte des Benutzers geladene Programmcode wird vom Sprachinterpreter verarbeitet, der die Werte in den Formeln berechnet. Die Tabellen eines Programms haben eine Datenquelle, aber die Berechnungen werden nicht dupliziert und beeinträchtigen die Effizienz des Systems nicht. Beim Arbeiten mit QUIK-Tabellen haben Tabellen auf QPILE Standardfunktionen. QUIK am Arbeitsplatz ist mit einem QPILE-Code-Debugger ausgestattet. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Die Sprache ermöglicht es Ihnen, neue Tabellen mit einer bestimmten Struktur zu beschreiben, Zellen mit bestimmten Werten hervorzuheben und Felder basierend auf mathematischen und logischen Ausdrücken zu berechnen. Der Benutzer erhält Benachrichtigungen in Form eines Tonsignals oder einer Textnachricht. Tabellen auf QPILE können bearbeitet, gedruckt, kopiert und über ODBC- und DDE-Server exportiert werden. Die Anfangsdaten stammen aus den QUIK-Tabellen:
- Transaktionen, einschließlich zur Ausführung und unpersönlich;
- Orders, einschließlich Stop-Orders, für außerbörsliche Geschäfte und Orders – Berichte für Geschäfte in Abwicklungsgeschäften;
- „Kundenportfolio“, „Kauf/Verkauf“
- Daten aus den Positionen des Teilnehmers nach Geld, Handelskonten, Instrumenten.
Auf QPILE basierende Tabellen können nicht über das Kontextmenü in eine Textdatei kopiert und in technische Analysesysteme exportiert werden, und es können keine Diagramme darauf basierend entwickelt werden. QPILE-basierte Tabellen können nicht gefiltert oder sortiert werden.
Arbeiten mit einer Tabelle
Um den Programmcode zu laden, müssen Sie das Dienstemenü und dann QPILE-Skripte auswählen. Sie können auch die Kombination Strg+F11 verwenden. Danach müssen Sie auf „Hinzufügen“ klicken und die gewünschte Datei auswählen. Es hat die Erweiterung .qpl und sein Name erscheint in der Liste Verfügbare Skripte.
- Tabellenname;
- Anzahl Spalten und Clients;
- Liste der Identifikatoren und Kunden;
- die Liste der Parameter und den Quellcode der Datei.
QPILE-Konstrukte
Datentypen
- Schnur – Schnur.
- Double ist eine Fließkommazahl.
- Sammlung – eine Sammlung.
- Map – ein assoziatives Array – eine Folge von Paaren, mit der Sie Informationen nach Schlüssel abrufen können.
Ausdrücke
Es werden die Rechenoperationen Addition, Subtraktion, Multiplikation, Division angewendet. Die logischen Ausdrücke „und“, „oder“, gleich, mehr, weniger, Ungleichungen, bedingte Konstruktionen „wenn … dann …“ werden ebenfalls verwendet.
Funktionen
Funktionen können sich überall im Programm befinden und unterschiedliche Namen haben. Insgesamt stehen 18 Gruppen von mathematischen Funktionen und Funktionen zur Verfügung, um die Werte von Tabellen und Parametern, assoziativen Arrays, einer Liste von Tabellen und anderen Aufgaben zu erhalten. Erste Klasse:
- Mathematische Funktionen , mit denen Sie den Wert von Sinus, Kosinus, Tangens, Kotangens des Arguments zurückgeben, den Exponenten des Arguments berechnen, eine Zufallszahl generieren usw.
- Allgemeine Befehle : NEW_GLOBAL zum Initialisieren einer globalen Variablen und MESSAGE zum Öffnen von Nachrichten.
Funktionen zum Arbeiten mit:
- Sammlungen von Objekten (Sammlung) . Sie ermöglichen es Ihnen, eine neue Sammlung zu erstellen, die erforderliche Anzahl von Elementen zurückzugeben, die gewünschten Werte zu ersetzen oder einzufügen.
- Assoziative Arrays (MAP) . Helfen Sie mit, das Array zu erstellen und zu verwalten.
- Dateien – Arbeiten mit Textdateien, Führen eines Log-Logs des Programms. Der Dateiname kann den Pfad dazu enthalten.
- Saiten .
- Grafiken . Funktionen GET_CANDLE für den Zugriff auf Kerzendaten und GET_CANDLE EX für die Rückgabe eines assoziativen Arrays.
- Anwendungen . Aufträge erstellen und an das Handelssystem senden.
- Tags . Ihre Konstruktion und Installation auf der Karte. Hinzufügen, Löschen eines oder aller Etiketten, Abrufen und Einstellen von Parametern für ein bestimmtes Etikett.
Es gibt auch Funktionen für:
- Für den Zugriff auf Zeilen beliebiger QUIK-Tabellen und Listen verfügbarer Parameter . Zugriff auf Arbeitsplatztabellendaten. Dazu gehören GET_ITEM, um die MAP zurückzugeben, und GET_NUMBER_OF, um die Anzahl der Einträge zurückzugeben.
- Arbeiten mit einer programmierbaren Tabelle . Diese Befehle wirken auf die OWN-Tabelle. Es ist von den Standardfunktionen aus dem vorherigen Absatz und von diesen Funktionen lesbar. Diese Gruppe enthält Befehle zum Hinzufügen, Ändern und Löschen einer Zeile mit einem Index und zum vollständigen Löschen der OWN-Tabelle.
Um Werte zu erhalten, verwenden Sie:
- Tabellen der aktuellen Trades . Abrufen von Austauschinformationsparametern mit GET_PARAM (_EX)-Befehlen.
- Fenster zitieren . Abrufen der Werte von Instrumentennotierungen.
- Positionstabellen nach Instrumenten und Geld . Abrufen von Daten über einen Kunden, eine Firma, ein Instrument oder ein Depotkonto nach Code.
Servicefunktionen – Rückgabe des Datums der aktuellen Handelssitzung, assoziative Reihen, aktuelles Datum und aktuelle Uhrzeit, Bestimmung des Verbindungsstatus, Unterbrechung des Berechnungsmodus.
Programme debuggen
Die schrittweise Steuerung des Programmablaufs erfolgt im Fenster „Debug“. Es wird über das Kontextmenü „Berechnung im Debug-Modus starten“ geöffnet. Es kann auch mit dem Befehl breakpoint() geöffnet werden, und die Programmzeile wird rot hervorgehoben. Das Fenster enthält Felder mit Programmcode und Variablenwerten. Am unteren Rand des Fensters befinden sich die Schaltflächen „Nächster Schritt“, „Ausführung fortsetzen“, „Berechnung stoppen“. Durch Drücken von F5 wird die Ausführung des Programms fortgesetzt, die Kombination Umschalt + F5 stoppt das Debuggen, die Taste F10 führt zur nächsten Zeile.
QPILE oder LUA?
LUA ist eine neue Programmiersprache zum Erstellen von Handelsrobotern. Wie QPILE ist es im QUIK-Terminal implementiert. https://articles.opexflow.com/programming/lua.htm Eine Website, die sich der Entwicklung von Handelsrobotern für den Handel widmet, zeigt die Vorteile der LUA-Sprache gegenüber QPILE. So kann es als unkompiliertes Skript und Bytecode fungieren, ausgestattet mit Entwicklertools und objektorientierten Programmiermechanismen. In anderen Programmiersprachen geschriebene Objekte können mit LUA-Programmen verbunden werden. LUA bietet 8 Datentypen, einschließlich Metatabellen. Die LUA-Sprache ist multithreaded, schnell und Transaktionen und Terminalereignisse sind asynchron. LUA ist häufiger als QPILE und viele Erweiterungen wurden dafür geschrieben.
Die Sprache QPILE ist nun veraltet. Experten in den Foren empfehlen die Verwendung von LUA. Obwohl nützliche und effektive Programme immer noch verwendet werden.
Die QPILE-Sprache ist jedoch im Vergleich zu LUA einfach. Wenn Sie also keine Programmiererfahrung haben, ist es besser, QPILE zu wählen. In dieser Sprache können Sie einen einfachen Roboter schreiben, wenn Sie keine komplexen Berechnungen durchführen müssen.
Wie erstelle ich einen Handelsroboter auf QPILE?
Um einen Handelsberater zu erstellen, benötigen Sie die folgenden Programme:
- ITS Quik.
- Notepad++ Code-Editor.
- Anleitung zu QPILE.
- XML-Plugin zur Codeerkennung in Notepad++.
Laden Sie diese Programme herunter und installieren Sie sie. Aktivieren Sie die Sprachsyntax, indem Sie userDefineLang.xml im Pfad C:\Users\User\ AppData\Roaming\Notepad++\ platzieren.
Der Block „Benutzereinstellungen“ wird um die Variablen NUMBER und INTERVAL ergänzt, die in der Funktion zum Erhalten der letzten N Balken verwendet werden. Die DATETIME-Funktion setzt das Datum und die Uhrzeit des Servers, und die aktuellen Datums- und Uhrzeitfunktionen CURDATE und CURTIME werden von ihr aufgerufen. Die aktuelle Zeit wird in Zeile 24 in eine Zahl umgewandelt. Zeile 26 legt die Zeit fest, zu der der Algorithmus von 10:00:01 bis 18:40:00 UTC ausgeführt werden soll.
Handelsroboter auf QPILE – fertige Lösungen
Beweglicher durchschnittlicher Roboter
Demo-Roboter nicht für echten Handel geeignet.
N. Moroshkin-Positionsrechner
Ein Programm zur Berechnung der Höhe des maximal zulässigen Drawdowns und des Ziels für Long- und Short-Positionen zu aktuellen Brief- und Geldkursen. Die Levels werden für 2 Werte des Positionseinstiegsvolumens berechnet. Der Roboter findet das zulässige Positionsvolumen bei der Zuweisung einer Stop-Order in einem Schritt aus dem Eröffnungspreis mit der Berechnung der Eröffnung einer Position in Aufwärtsrichtung des Balkens. Die gefundenen Niveaus werden in das Terminalfenster eingegeben, die sich anschließend im Preisdiagramm widerspiegeln. Transaktionen sind für ein bestimmtes Instrument festgelegt. Wenn eine Position eröffnet wird, beginnt der Roboter mit der Berechnung seiner Parameter. Je nach Positionsänderung werden die zugeteilten Aufträge angepasst.
Volumenfilter
Ein Roboter-Portfolio zur Berechnung des arithmetischen Mittels des Volumens von Kerzen und zum Vergleich mit dem Durchschnittsprodukt durch den Koeffizienten X. Funktioniert korrekt mit geplotteten Diagrammen in einem ausgewählten Zeitraum.
Optionen Griechen
Portfolio zum Berechnen und Anzeigen von „Griechen“ von Optionen. Es unterscheidet sich von der Black-Showers-Methode.
TRIX Handelsroboter für QUIK
Das Programm basiert auf dem TRIX-Indikator. Wenn der Indikator über der Nulllinie schließt, dem angegebenen Level, nimmt der Roboter die Long-Position ein. Die Position wird durch Take Profit, Stop Loss oder Trailing Stop geschlossen.
M4-Präprozessor
Programm zum Arbeiten mit QPILE und Lua. Beinhaltet Archive mit ausführbaren Dateien, Dokumentation und DLL-Dateien mit regulärer Ausdrucksanalyse. Um das Programm zu verwenden, müssen Sie die ausführbaren Dateien entpacken und regexp2 im Pfad C:\Windows ablegen. Lektionen zu QPILE für QUIK: https://youtu.be/vMTXwDUujpI Installieren eines Skripts auf QPILE im Quik-Terminal: https://youtu.be/0B7qL8Svh7I Ein Abschnitt auf github, der die Verwendung der in QPILE integrierten algorithmischen Sprache beschreibt QUIK-System-Workstation unter dem Link – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE ist eine veraltete Sprache, aber ziemlich einfach und sogar für unerfahrene Händler zugänglich. Daran arbeiten seit langem bewährte Handelsroboter und Programme weiter. Für komplexere Aufgaben ist es jedoch besser, LUA zu verwenden.
0к