Στο πρώτο μέρος αυτής της σειράς άρθρων παρουσιάστηκαν οι συνθήκες και η διαδικασία για τον αυτοματοποιημένο προσδιορισμό των κερδοφόρων σημάτων εκτέλεσης συναλλαγών. Τώρα θα αναφερθούμε στην ταξινόμηση των δεικτών και στην ανάπτυξη της κύριας λειτουργίας.
Ταξινόμηση δεικτών
Για την ανάπτυξη ενός κερδοφόρου συστήματος εκτέλεσης συναλλαγών χρειάζεστε και σήματα για την είσοδο και την έξοδο. Πρώτα ταξινομούνται οι δείκτες, εκείνοι που είναι σημαντικοί για την παραγωγή σημάτων αγοράς. Να διευκρινίσουμε ότι πρόκειται να χρησιμοποιηθούν μόνο οι κλασικοί δείκτες. Η εμπειρία έχει δείξει ότι συχνά παρέχουν εξίσου καλά αποτελέσματα με τους «σύγχρονους», πιο ανεπτυγμένους δείκτες. Πρώτα τους ταξινομούμε σύμφωνα με την αξία της απόδοσής τους.
α) Τιμής: αυτοί οι δείκτες δίνουν την τιμή του υποκείμενου οικονομικού εργαλείου ως επιστρεφόμενη αξία. Έτσι, ένας κινητός μέσος όρος (απλός κινητός μέσος όρος, εν συντομία: SMA) μπορεί να συγκριθεί άμεσα με την τιμή κλεισίματος. Ως παράδειγμα, στο διάγραμμα 1 παρουσιάζεται ο εκθετικός κινητός μέσος όρος (εν συντομία: EMA) ως κυανή γραμμή.
β) Μεταβολής τιμής: Σε αντίθεση με τους δείκτες τιμής, αυτοί οι δείκτες δίνουν τη μεταβολή της τιμής ως επιστρεφόμενη αξία. Ένα παράδειγμα είναι η ορμή (δείτε την κόκκινη γραμμή στο διάγραμμα 1). Ως μέρος αυτής της ανάλυσης, οι μεταβολές της τιμής βασίζονται στην τιμή κλεισίματος που μετατρέπεται σε ποσοστό επί τοις εκατό, οι οποίες υπολογίζονται από το δείκτη σε απόλυτους όρους.
γ) Δείκτη: Αυτοί οι δείκτες δίνουν έναν συγκεκριμένο δείκτη, μια αριθμητική αξία. Το CCI έχει τιμές από περίπου μείον 100 έως συν 100. Η παρουσίαση ακολουθεί όπως η ορμή στο διάγραμμα 1 με τη δική της κλίμακα.
δ) Αναγωγής: Αυτοί οι δείκτες παρέχουν επίσης μια αριθμητική αξία, αλλά η αξία ανάγεται στο εύρος 0 έως 100. Παραδείγματος χάριν, η επιστρεφόμενη αξία του στοχαστικού δείκτη είναι σε εύρος από 0 έως 100. Αυτοί οι δείκτες παρουσιάζονται με τη δική τους κλίμακα.
ε) Bool: Αυτοί οι δείκτες παρέχουν ένα αποτέλεσμα ως «σωστό» ή «λάθος». Εναλλακτικά, το αποτέλεσμα μπορεί να παρουσιαστεί με την αριθμητική τιμή «1» ή «0».
Εδώ είναι τα μοτίβα κεριών προς χαρακτηρισμό (παραδείγματος χάριν Doji, hammer…), τα οποία εμφανίζονται σε μια ημέρα ή όχι. Το διάγραμμα 1 δείχνει τα κυανά βέλη, το οποίο υποδεικνύει την παρουσία ενός Doji. Κατά τη χρησιμοποίηση της ήδη αναφερθείσας διαδικασίας βελτιστοποίησης, πρέπει να πραγματοποιηθούν αρκετές εφαρμογές βελτιστοποίησης για λόγους αποδοτικότητας. Αυτοί οι χρησιμοποιημένοι δείκτες πρέπει να ταξινομούνται εξετάζοντας την κατηγορία των δεικτών και τη δομή των παραμέτρων.
Παραμετροποίηση της κύριας λειτουργίας
Η κύρια λειτουργία περιγράφει, σε γενικές γραμμές, τους κανόνες που πρόκειται να λάβει αργότερα υπόψη του ο βελτιστοποιητής. Το διάγραμμα 2 παρουσιάζει την επισκόπηση της λογικής της κύριας λειτουργίας, η οποία εξηγείται παρακάτω. Τρεις ομάδες μεταβλητών μεταφέρονται αργότερα από το EA Optimizer (περισσότερα για αυτό στο τρίτο μέρος της σειράς) στην κύρια λειτουργία.
- Οι παράμετροι, τις οποίες απαιτεί ο δείκτης. Αυτές μπορεί να είναι σταθερές, σειρές τιμών, μέθοδοι μέσου όρου και χρονικές περίοδοι
- Η συγκριτική αξία, με την οποία πρόκειται να συγκριθεί ο δείκτης. Ανάλογα με την κατηγορία του δείκτη, αυτή μπορεί να είναι μια σταθερά (παραδείγματος χάριν, «RSI <30»: ο RSI είναι κάτω από 30), μια σειρά τιμών (παραδείγματος χάριν, «BbandsUpper <close»: η τιμή κλεισίματος είναι πάνω από την ανώτερη ζώνη Bollinger*) ή ο ίδιος ο δείκτης (παραδείγματος χάριν, ADX <REF (ADX, 10): ο ADX είναι μικρότερος από ό,τι πριν από δέκα ημέρες).
- Συνθήκες: Αυτές είναι σταθερές (παραδείγματος χάριν, «MA> 1:01 * close»: ο κινητός μέσος όρος είναι τουλάχιστον κατά ένα τοις εκατό πάνω από την τιμή κλεισίματος), χειριστές (παραδείγματος χάριν <, =,>), όφσετ (παραδείγματος χάριν, σύγκριση της τιμής κλεισίματος με έναν δείκτη της προηγούμενης περιόδου) ή ημέρες (η συνθήκη ισχύει για τουλάχιστον/το πολύ Χ ημέρες).
Παραμετροποίηση των δεικτών
Τα σύγχρονα προγράμματα αναδρομικού ελέγχου, όπως το www.QuantShare.com, επιτρέπουν μια δυναμική αντιπροσώπευση των παραμέτρων ενός δείκτη. Αντί του καθορισμού ενός κινητού μέσου όρου με σταθερές τιμές όπως „SMA (close, 14) “, αρχικά θα καθορίσουμε γενικά τις παραμέτρους SMA(series C, period1)“. Σε μια λειτουργία βελτιστοποίησης, οι συγκεκριμένες τιμές της αντίστοιχης παραμέτρου μπορούν να καθοριστούν ως ελάχιστες, μέγιστες και τιμές βήματος.
Optimize («v3», 0, 6, 1);
Optimize («v4», 10, 100, 10);
Εδώ, η μεταβλητή v3 πρέπει να χρησιμοποιεί τιμές από 0 έως 6, η μεταβλητή v4 σε δέκα τμήματα από 10 έως 100. Αυτή η διαδικασία θα επιτρέψει αργότερα στο πρόγραμμα βελτιστοποίησης να ορίσει τιμές για το δείκτη. Η μεταβλητή βελτιστοποίησης «v3» ορίζεται στη μεταβλητή «seriesC» στη λειτουργία του δείκτη, ομοίως, η μεταβλητή «v4» ορίζεται στο «period 1». Αυτό το παράδειγμα καταδεικνύει ότι, εκτός από την τυποποιημένη σειρά τιμών, μπορούν επίσης να καθοριστούν δικές σας πληροφορίες για τιμές και να περιληφθούν στη βελτιστοποίηση. Κατά συνέπεια, οι τιμές των μεταβλητών «v3» έχουν την ακόλουθη έννοια:
0 = Open
1 = High
2 = Low
3 = Close
4 = (Open + Close) / 2
5 = (High + Low) / 2
6 = (High + Low + Close) / 3
Στην τρέχουσα θέση εφαρμογής της κύριας λειτουργίας μπορούν να μεταφερθούν δύο μεταβλητές. Σε αυτήν την περίπτωση, μπορούν να χρησιμοποιηθούν οκτώ και έχουν τις ακόλουθες έννοιες:
v0: number1 v1: seriesH
v2: seriesL v3: seriesC
v4: period1 v5: period2
v6: period3 v7: average
Ο αριθμός 1 είναι ένας αριθμός και, μεταξύ άλλων, ο αριθμός των σταθερών αποκλίσεων στις ζώνες Bollinger χρησιμοποίησε «BbandsMiddle (seriesC, period1, average)». Οι σειρές τιμών H, L και C χρησιμοποιούνται για τον καθορισμό των πληροφοριών για τις τιμές που χρησιμοποιούνται στους δείκτες. Οι περίοδοι 1 έως 3 επιτρέπουν τη μεταφορά της διάρκειας των περιόδων στους δείκτες. Μέσω του μέσου όρου, μπορεί να υπάρχουν διαφορετικές μέθοδοι καθορισμού του μέσου όρου, οι επιλογές είναι:
0: _Masma (Simple Moving Average)
1: _MaEma (Exponential Moving Average)
2: _Mama (Weighted Moving Average)
3: _MaDema (Double Exponential Moving Average)
4: _MaTema (Triple Exponential Moving Average)
5: _MaT3 (Triple Exponential Moving Average T3)
6: _MaTrima (Triangular Moving Average)
7: _MaKama (Kaufman Adaptive Moving Average)
8: _MaMama (MESA Adaptive Moving Average)
Δομή της κύριας λειτουργίας
Τώρα που αναφέρθηκαν τα επιμέρους μέρη, μπορούμε να πάμε στη δομή της κύριας λειτουργίας. Έχει ως εξής:
Ref (BarsSince (Ref (indicator function, indicatorLag) <= c => comparator Factor * Ref (comparator function, comparatorLag)) <= d => distance, formulaLag)
Εδώ, τα μεμονωμένα στοιχεία έχουν διαφορετικές έννοιες και ορίζονται ως εξής:
α) REF (vector, period): Αυτή είναι μια εσωτερική λειτουργία του λογισμικού αναδρομικού ελέγχου, και μέσω αυτού ανακτάται πληροφορία για την τιμή από το παρελθόν. Το Ref (close, 5) παρέχει, παραδείγματος χάριν, την τιμή κλεισίματος πριν από πέντε ημέρες εκτέλεσης συναλλαγών.
β) BarsSince (condition): Επίσης μια εσωτερική λειτουργία που παρέχει τον αριθμό των ημερών εκτέλεσης συναλλαγών, από τότε που οι συνθήκες ικανοποιήθηκαν για τελευταία φορά. Το BarsSince(close<10) παρέχει, παραδείγματος χάριν, τον αριθμό των ημερών εκτέλεσης συναλλαγών που έχουν περάσει, από την τελευταία φορά που η τιμή κλεισίματος ήταν μικρότερη του δέκα.
γ) Indicator Function: Σε αυτό το σημείο, ο δείκτης με τη γενική μορφή του θα χρησιμοποιηθεί αργότερα, παραδείγματος χάριν, «Sma (seriesC, period1)».
δ) Indicator Lag: Διευκρινίζει το όφσετ της λειτουργίας του δείκτη. Μια καταγραφή ίση με 0 σημαίνει ότι ο δείκτης χρησιμοποιείται με την τρέχουσα αξία του, μια καταγραφή ίση με 1 δείχνει την αξία της προηγούμενης ημέρας και τα λοιπά.
ε) <= c =>: Αυτό είναι ένα placeholder για πιθανές συγκρίσεις μεταξύ του δείκτη και του συγκριτή. στ) Comparator Factor: Ο συγκριτής μπορεί να πολλαπλασιαστεί με έναν σταθερό παράγοντα.
ζ) Comparator Function: Ο συμπιεστής συγκρίνεται με το indicator function. Παραδείγματος χάριν, στη συνθήκη «Sma (series, period 1)> close», η τιμή κλεισίματος αντιπροσωπεύει το συγκριτή. Ο Comparator μπορεί επίσης να είναι ένας αριθμός ή ο ίδιος ο δείκτης.
η) ComparatorLag: παραδείγματος χάριν, μια αξία ίση με 5. Στο διάγραμμα 2 αυτό καλείται «όφσετ».
θ) <= δ =>: Placeholder για συγκρίσεις με τις μεταβλητές διαστήματος (απόστασης).
ι) Distance: Αριθμός σε ημέρες εκτέλεσης συναλλαγών, από τότε που οι συνθήκες ικανοποιήθηκαν για τελευταία φορά.
κ) FormulaLag: Παραδείγματος χάριν, μια αξία ίση με 5 σημαίνει ότι ολόκληρος ο τύπος χρησιμοποιείται πριν από 5 περιόδους («όφσετ»).
Για μια καλύτερη κατανόηση, έχουμε δύο παραδείγματα σε μορφή τύπου:
Ref (bars Since (Ref (SMA (close, 14), 0) <1 * Ref (close, 0))> 2.0)
Μπορεί να απλοποιηθεί ως:
Since bars (SMA (close, 14) <close)> 2
Το σήμα δίνεται, εάν η τιμή κλεισίματος είναι κάτω από τον SMA για περισσότερο από δύο συναπτές ημέρες. Για να κυριολεκτήσουμε, υπολογίζεται πόσος χρόνος πέρασε από τότε που η τελευταία τιμή κλεισίματος ήταν επάνω από τον SMA, κι έτσι εξηγείται η συνθήκη «<».
Ref (bars Since (Ref (SMA (close, 14), 0)>
1 * Ref (SMA (close, 20), 0)) == 1, 0)
Μπορεί να απλοποιηθεί ως:
Since bars (SMA (close, 14)> Sma (close, 20)) == 1
Το σήμα λαμβάνεται την ημερομηνία κατά την οποία ο κινητός μέσος όρος των 20 ημερών διαπερνά ανοδικά ερχόμενος κάτω από τον κινητό μέσο όρο των 14 ημερών. Υπολογίζεται ο αριθμός των ημερών εκτέλεσης συναλλαγών που έχουν περάσει από τον SMA (14)> SMA (20). Αυτός ο αριθμός ημερών πρέπει να είναι «== 1», η συνθήκη πρέπει να ικανοποιηθεί την προηγούμενη ημέρα, αλλά όχι πια την τρέχουσα ημέρα. Αυτό φαίνεται περίπλοκο, αλλά είναι πολύ δυναμικό και αποτελεσματικό στην πράξη, και ιδιαίτερα σε επαναλαμβανόμενη χρήση.
Συμπέρασμα
Στο τελευταίο μέρος αυτής της σειράς άρθρων, αυτό το μοντέλο θα εφαρμοστεί και θα βελτιστοποιηθεί, ώστε να έχουμε ένα αποτέλεσμα ενός συγκεκριμένου συστήματος εκτέλεσης συναλλαγών με καθορισμένα σήματα εισόδων και εξόδων.
Διαβάστε εντελώς δωρεάν το περιοδικό κάνοντας εγγραφή εδώ:
http://www.traders-mag.gr/index.php/component/comprofiler/registers