Αλγοριθμική γλώσσα QPILE για προγραμματισμό ρομπότ συναλλαγών για QUIK.
Τα ρομπότ συναλλαγών μπορούν να γραφτούν σε μια συγκεκριμένη γλώσσα, παρόμοια με τον κώδικα προγράμματος. Το QPILE είναι ένα από αυτά, το άρθρο θα εξετάσει αυτήν τη γλώσσα, θα συγκρίνει τις γλώσσες QPILE και
LUA και θα παρέχει επίσης παραδείγματα ρομπότ σε αυτήν τη γλώσσα.
- Γενικές πληροφορίες για το QPILE
- Εργασία με τραπέζι
- Κατασκευές QPILE
- Τύποι δεδομένων
- Εκφράσεις
- Λειτουργίες
- Προγράμματα εντοπισμού σφαλμάτων
- QPILE ή LUA;
- Πώς να δημιουργήσετε ένα ρομπότ συναλλαγών στο QPILE;
- Εμπορία ρομπότ στο QPILE – έτοιμες λύσεις
- Κινούμενο μέσο ρομπότ
- Αριθμομηχανή θέσης N. Moroshkin
- Φίλτρο έντασης
- Επιλογές Έλληνες
- Ρομπότ συναλλαγών TRIX για QUIK
- Προεπεξεργαστής M4
Γενικές πληροφορίες για το QPILE
Το QPILE είναι μια συντομογραφία που σημαίνει QUIK Programmable Interface and Logic Environment.
Αυτή είναι μια σειρά εντολών που ερμηνεύονται από τον σταθμό εργασίας QUIK. Χρησιμοποιείται κυρίως για τον υπολογισμό της τιμής των χαρτοφυλακίων τίτλων. Η γλώσσα χρησιμοποιείται επίσης για:
- δυναμικός επανυπολογισμός της τιμής των περιουσιακών στοιχείων των πελατών στην επιφάνεια εργασίας του μεσίτη και στα χαρτοφυλάκια τους. Στην τελευταία περίπτωση, επανυπολογίζεται και η συνολική τους τιμή.
- εύρεση δεικτών που λείπουν χρησιμοποιώντας δικούς τους αλγόριθμους και δεδομένα για δανεισμό περιθωρίου κέρδους·
- ανάπτυξη της σωστής στρατηγικής συναλλαγών.
Η γλώσσα περιγράφει τη δομή του πίνακα: τον ορισμό στηλών και γραμμών, τύπους. Στο τελευταίο, μαθηματικές πράξεις, μεταβλητές, δεδομένα από άλλους πίνακες μπορούν να χρησιμοποιηθούν για υπολογισμό. Ο κώδικας προγράμματος που φορτώνεται από τον διακομιστή QUIK ή από το δίσκο του χρήστη επεξεργάζεται από τον διερμηνέα γλώσσας, ο οποίος υπολογίζει τις τιμές στους τύπους. Οι πίνακες ενός προγράμματος έχουν μία πηγή δεδομένων, αλλά οι υπολογισμοί δεν είναι διπλοί και δεν επηρεάζουν την απόδοση του συστήματος. Όταν εργάζεστε με πίνακες QUIK, οι πίνακες στο QPILE έχουν τυπικές λειτουργίες. Το QUIK στο χώρο εργασίας είναι εξοπλισμένο με πρόγραμμα εντοπισμού σφαλμάτων κώδικα QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Η γλώσσα σάς επιτρέπει να περιγράφετε νέους πίνακες με δεδομένη δομή, να επισημαίνετε κελιά με συγκεκριμένες τιμές, να υπολογίζετε πεδία με βάση μαθηματικές και λογικές παραστάσεις. Ο χρήστης θα λάβει ειδοποιήσεις με τη μορφή ηχητικού σήματος ή μηνύματος κειμένου. Οι πίνακες στο QPILE μπορούν να επεξεργαστούν, να εκτυπωθούν, να αντιγραφούν, να εξαχθούν μέσω διακομιστή ODBC και DDE. Τα αρχικά δεδομένα προέρχονται από τους πίνακες QUIK:
- συναλλαγές, συμπεριλαμβανομένων των συναλλαγών για εκτέλεση και απρόσωπες·
- εντολές, συμπεριλαμβανομένων εντολών διακοπής, για συναλλαγές εκτός χρηματιστηρίου και εντολές – αναφορές για συναλλαγές σε συμφωνίες διακανονισμού·
- “χαρτοφυλάκιο πελατών”, “αγορά/πώληση”
- δεδομένα από τις θέσεις του συμμετέχοντος ανά χρήματα, λογαριασμούς συναλλαγών, μέσο.
Οι πίνακες που βασίζονται στο QPILE δεν μπορούν να αντιγραφούν σε ένα αρχείο κειμένου μέσω του μενού περιβάλλοντος και να εξαχθούν σε συστήματα τεχνικής ανάλυσης και δεν μπορούν να αναπτυχθούν γραφήματα βάσει αυτών. Οι πίνακες που βασίζονται σε QPILE δεν μπορούν να φιλτραριστούν ή να ταξινομηθούν.
Εργασία με τραπέζι
Για να φορτώσετε τον κώδικα του προγράμματος, πρέπει να επιλέξετε το μενού υπηρεσιών και μετά τα σενάρια QPILE. Μπορείτε επίσης να χρησιμοποιήσετε το συνδυασμό Ctrl+F11. Αφού χρειαστεί να κάνετε κλικ στο “Προσθήκη” και να επιλέξετε το αρχείο που θέλετε. Έχει επέκταση .qpl και το όνομά του θα εμφανιστεί στη λίστα Διαθέσιμα σενάρια.
- όνομα πίνακα?
- αριθμός στηλών και πελατών·
- λίστα αναγνωριστικών και πελατών·
- τη λίστα των παραμέτρων και τον πηγαίο κώδικα του αρχείου.
Κατασκευές QPILE
Τύποι δεδομένων
- Χορδή – κορδόνι.
- Το διπλό είναι ένας αριθμός κινητής υποδιαστολής.
- Συλλογή – μια συλλογή.
- Χάρτης – ένας συσχετιστικός πίνακας – μια ακολουθία ζευγών που σας επιτρέπει να λαμβάνετε πληροφορίες με κλειδί.
Εκφράσεις
Εφαρμόζονται οι αριθμητικές πράξεις πρόσθεσης, αφαίρεσης, πολλαπλασιασμού, διαίρεσης. Χρησιμοποιούνται επίσης οι λογικές εκφράσεις «και», «ή», ίσα, περισσότερα, λιγότερα, ανισότητες, υπό όρους κατασκευή «αν … τότε …».
Λειτουργίες
Οι λειτουργίες μπορούν να βρίσκονται οπουδήποτε στο πρόγραμμα και να έχουν διαφορετικά ονόματα. Συνολικά, είναι διαθέσιμες 18 ομάδες μαθηματικών συναρτήσεων και συναρτήσεων για τη λήψη των τιμών των πινάκων και των παραμέτρων, των συσχετιστικών πινάκων, μιας λίστας πινάκων και άλλων εργασιών. Πρώτη τάξη:
- Μαθηματικές συναρτήσεις που σας επιτρέπουν να επιστρέψετε την τιμή του ημιτόνου, συνημίτονο, εφαπτομένης, συνεφαπτομένης του ορίσματος, να υπολογίσετε τον εκθέτη του ορίσματος, να δημιουργήσετε έναν τυχαίο αριθμό κ.λπ.
- Γενικές εντολές : NEW_GLOBAL για προετοιμασία μιας καθολικής μεταβλητής και MESSAGE για άνοιγμα μηνυμάτων.
Λειτουργίες για εργασία:
- Συλλογές αντικειμένων (Συλλογή) . Σας επιτρέπουν να δημιουργήσετε μια νέα συλλογή, να επιστρέψετε τον απαιτούμενο αριθμό στοιχείων, να αντικαταστήσετε ή να εισαγάγετε τις επιθυμητές τιμές.
- Συνειρμικοί Πίνακες (MAP) . Βοηθήστε στη δημιουργία και διαχείριση του πίνακα.
- Αρχεία – εργασία με αρχεία κειμένου, διατήρηση αρχείου καταγραφής του προγράμματος. Το όνομα του αρχείου μπορεί να περιέχει τη διαδρομή προς αυτό.
- Χορδές .
- Γραφήματα . Λειτουργεί GET_CANDLE για πρόσβαση σε δεδομένα κεριού και GET_CANDLE EX για επιστροφή συσχετιστικού πίνακα.
- Εφαρμογές . Δημιουργία παραγγελιών και αποστολή τους στο σύστημα συναλλαγών.
- Ετικέτες . Η κατασκευή και η τοποθέτησή τους στο διάγραμμα. Προσθήκη, διαγραφή μιας ή όλων των ετικετών, λήψη και ρύθμιση παραμέτρων για μια συγκεκριμένη ετικέτα.
Υπάρχουν επίσης λειτουργίες για:
- Για πρόσβαση σε σειρές αυθαίρετων πινάκων QUIK και λίστες διαθέσιμων παραμέτρων . Πρόσβαση σε δεδομένα πίνακα στο χώρο εργασίας. Αυτά περιλαμβάνουν το GET_ITEM για να επιστρέψετε το MAP και το GET_NUMBER_OF για να επιστρέψετε τον αριθμό των καταχωρίσεων.
- Για εργασία με προγραμματιζόμενο πίνακα . Αυτές οι εντολές λειτουργούν στον πίνακα OWN. Είναι ευανάγνωστο από τις τυπικές συναρτήσεις της προηγούμενης παραγράφου και από αυτές τις συναρτήσεις. Αυτή η ομάδα περιλαμβάνει εντολές για την προσθήκη, την τροποποίηση και τη διαγραφή μιας σειράς με ευρετήριο και την πλήρη εκκαθάριση του πίνακα OWN.
Για να λάβετε τιμές χρησιμοποιήστε:
- Πίνακες τρεχουσών συναλλαγών . Λήψη παραμέτρων πληροφοριών ανταλλαγής χρησιμοποιώντας εντολές GET_PARAM (_EX).
- Παράθυρα προσφοράς . Λήψη των τιμών των εισαγωγικών οργάνων.
- Πίνακες θέσεων ανά όργανα και χρήματα . Λήψη δεδομένων για λογαριασμό πελάτη, εταιρείας, μέσου, αποθετηρίου κατά κωδικό.
Λειτουργίες υπηρεσίας – επιστροφή της ημερομηνίας της τρέχουσας περιόδου συναλλαγών, της συσχετιστικής σειράς, της τρέχουσας ημερομηνίας και ώρας, προσδιορισμός της κατάστασης σύνδεσης, διακοπή της λειτουργίας υπολογισμού.
Προγράμματα εντοπισμού σφαλμάτων
Ο βήμα προς βήμα έλεγχος της λειτουργίας του προγράμματος πραγματοποιείται στο παράθυρο “Εντοπισμός σφαλμάτων”. Ανοίγει από το μενού περιβάλλοντος “Έναρξη υπολογισμού σε λειτουργία εντοπισμού σφαλμάτων”. Μπορεί επίσης να ανοίξει με την εντολή breakpoint() και η γραμμή προγράμματος θα τονιστεί με κόκκινο. Το παράθυρο περιέχει πεδία με κωδικό προγράμματος και τιμές μεταβλητών. Στο κάτω μέρος του παραθύρου υπάρχουν τα κουμπιά “Επόμενο βήμα”, “Συνέχεια εκτέλεσης”, “Διακοπή υπολογισμού”. Πατώντας F5 θα συνεχιστεί η εκτέλεση του προγράμματος, ο συνδυασμός Shift + F5 θα σταματήσει τον εντοπισμό σφαλμάτων, το πλήκτρο F10 θα κατευθύνει στην επόμενη γραμμή.
QPILE ή LUA;
Η LUA είναι μια νέα γλώσσα προγραμματισμού για τη δημιουργία ρομπότ συναλλαγών. Όπως το QPILE, υλοποιείται στο τερματικό QUIK. https://articles.opexflow.com/programming/lua.htm Ένας ιστότοπος αφιερωμένος στην ανάπτυξη ρομπότ συναλλαγών για συναλλαγές δείχνει τα πλεονεκτήματα της γλώσσας LUA έναντι του QPILE. Έτσι, μπορεί να λειτουργήσει ως μη μεταγλωττισμένο σενάριο και bytecode, εξοπλισμένο με εργαλεία προγραμματιστή και αντικειμενοστραφή μηχανισμούς προγραμματισμού. Αντικείμενα γραμμένα σε άλλες γλώσσες προγραμματισμού μπορούν να συνδεθούν με προγράμματα LUA. Το LUA παρέχει 8 τύπους δεδομένων, συμπεριλαμβανομένων των μεταπίνακων. Η γλώσσα LUA είναι πολλαπλών νημάτων, γρήγορη και οι συναλλαγές και τα συμβάντα τερματικού είναι ασύγχρονα. Το LUA είναι πιο κοινό από το QPILE και έχουν γραφτεί πολλές επεκτάσεις για αυτό.
Η γλώσσα QPILE έχει πλέον καταργηθεί. Οι ειδικοί στα φόρουμ συνιστούν τη χρήση του LUA. Αν και εξακολουθούν να χρησιμοποιούνται χρήσιμα και αποτελεσματικά προγράμματα.
Ωστόσο, η γλώσσα QPILE είναι απλή σε σύγκριση με τη LUA, οπότε αν δεν έχετε εμπειρία στον προγραμματισμό, είναι προτιμότερο να επιλέξετε QPILE. Σε αυτή τη γλώσσα, μπορείτε να γράψετε ένα απλό ρομπότ εάν δεν χρειάζεται να κάνετε σύνθετους υπολογισμούς.
Πώς να δημιουργήσετε ένα ρομπότ συναλλαγών στο QPILE;
Για να δημιουργήσετε έναν σύμβουλο συναλλαγών, θα χρειαστείτε τα ακόλουθα προγράμματα:
- ITS Quik.
- Επεξεργαστής κώδικα Notepad++.
- Οδηγός για το QPILE.
- Πρόσθετο XML για ανίχνευση κώδικα στο Notepad++.
Κατεβάστε και εγκαταστήστε αυτά τα προγράμματα. Ενεργοποιήστε τη σύνταξη της γλώσσας τοποθετώντας το userDefineLang.xml στη διαδρομή C:\Users\User\ AppData\Roaming\Notepad++\
Το μπλοκ “Ρυθμίσεις χρήστη” συμπληρώνεται με τις μεταβλητές NUMBER και INTERVAL, οι οποίες θα χρησιμοποιηθούν για την απόκτηση των τελευταίων Ν ράβδων. Η συνάρτηση DATETIME ορίζει την ημερομηνία και την ώρα του διακομιστή και οι τρέχουσες συναρτήσεις ημερομηνίας και ώρας CURDATE και CURTIME καλούνται από αυτήν. Η τρέχουσα ώρα μετατρέπεται σε αριθμό στη γραμμή 24. Η γραμμή 26 ορίζει την ώρα εκτέλεσης του αλγόριθμου από τις 10:00:01 έως τις 18:40:00 UTC.
Εμπορία ρομπότ στο QPILE – έτοιμες λύσεις
Κινούμενο μέσο ρομπότ
Το ρομπότ επίδειξης δεν είναι κατάλληλο για πραγματικές συναλλαγές.
Αριθμομηχανή θέσης N. Moroshkin
Ένα πρόγραμμα για τον υπολογισμό των επιπέδων της μέγιστης επιτρεπόμενης ανάληψης και του στόχου για θέσεις long και short σε τρέχουσες τιμές ζήτησης και προσφοράς. Τα επίπεδα υπολογίζονται για 2 τιμές του όγκου εισαγωγής θέσης. Το ρομπότ βρίσκει τον επιτρεπόμενο όγκο θέσης όταν εκχωρεί μια εντολή διακοπής σε ένα βήμα από την τιμή ανοίγματος με τον υπολογισμό του ανοίγματος μιας θέσης προς την κατεύθυνση της ανάπτυξης της ράβδου. Τα επίπεδα που βρέθηκαν εισάγονται στο παράθυρο του τερματικού, τα οποία στη συνέχεια αντικατοπτρίζονται στο διάγραμμα τιμών. Οι συναλλαγές είναι σταθερές για ένα δεδομένο μέσο. Αν ανοίξει μια θέση, το ρομπότ αρχίζει να υπολογίζει τις παραμέτρους της. Ανάλογα με την αλλαγή θέσης, προσαρμόζονται οι εκχωρημένες παραγγελίες.
Φίλτρο έντασης
Ρομπότ χαρτοφυλακίου για τον υπολογισμό του αριθμητικού μέσου όρου της έντασης των κεριών και τη σύγκρισή του με το μέσο γινόμενο με τον συντελεστή Χ. Λειτουργεί σωστά με γραφήματα στην επιλεγμένη χρονική περίοδο.
Επιλογές Έλληνες
Χαρτοφυλάκιο για τον υπολογισμό και την εμφάνιση «Ελλήνων» επιλογών. Διαφέρει από τη μέθοδο Black-Showers.
Ρομπότ συναλλαγών TRIX για QUIK
Το πρόγραμμα βασίζεται στον δείκτη TRIX. Όταν η ένδειξη κλείνει πάνω από τη γραμμή μηδέν, το καθορισμένο επίπεδο, το ρομπότ παίρνει τη θέση Long. Η θέση κλείνει με Take Profit, Stop Loss ή trailing stop.
Προεπεξεργαστής M4
Πρόγραμμα για εργασία με QPILE και Lua. Περιλαμβάνει αρχεία με εκτελέσιμα αρχεία, τεκμηρίωση και αρχεία DLL με ανάλυση κανονικών εκφράσεων. Για να χρησιμοποιήσετε το πρόγραμμα, πρέπει να αποσυσκευάσετε τα εκτελέσιμα αρχεία και να τοποθετήσετε το regexp2 στη διαδρομή C:\Windows. Μαθήματα για το QPILE για QUIK: https://youtu.be/vMTXwDUujpI Εγκατάσταση σεναρίου στο QPILE στο τερματικό Quik: https://youtu.be/0B7qL8Svh7I Μια ενότητα στο github που περιγράφει τη χρήση της αλγοριθμικής γλώσσας QPILE που είναι ενσωματωμένη στο Σταθμός εργασίας συστήματος QUIK που βρίσκεται στον σύνδεσμο – https://euvgub.github.io/quik_user_manual/ch8.html. Η QPILE είναι μια ξεπερασμένη γλώσσα, αλλά αρκετά απλή και προσβάσιμη ακόμη και σε αρχάριους εμπόρους. Εμπορικά ρομπότ και προγράμματα που έχουν αποδείξει τον εαυτό τους για μεγάλο χρονικό διάστημα συνεχίζουν να εργάζονται σε αυτό. Ωστόσο, για πιο σύνθετες εργασίες είναι καλύτερο να χρησιμοποιήσετε το LUA.
0к