Μπορεί η τεχνητή νοημοσύνη (AI) να προβλέψει τις τιμές των μετοχών;

Μπορεί η Artificial Intelligence να προβλέψει τις τιμές των μετοχών;

Αλίκη Βεγίρη

26 Ιουλίου 2020

 

Too good to be true! Είναι η άμεση και αυθόρμητη απάντηση στο εν λόγω ερώτημα.

Θα σας έτυχε να δείτε πολλές ​​ ελκυστικές ​​ διαφημίσεις στο διαδίκτυο σχετικά με «αλμυρά» πακέτα software, αρκετών χιλιάδων δολαρίων, που κομπάζουν για τη δυνατότητά τους να προβλέψουν με τη βοήθεια των νευρωνικών δικτύων, neural networks, ΝΝ, το μέλλον του χρηματιστηρίου με ακρίβεια 80%, 90% (βάλτε όποιο νούμερο θέλετε εδώ).

​​ Η πρώτη σκέψη που θα πρέπει να μας έρθει είναι ότι αν το προϊόν τους είναι τόσο καλό γιατί δεν το κρατούν για πάρτη τους, μυστικό και τριπλοκλειδωμένο σε θυρίδα, ώστε στο ανταγωνιστικό περιβάλλον των αγορών να έχουν πρώτοι και καλύτεροι το πολυπόθητο edge, όπως συνηθίζεται να λέγεται. Προφανώς, τα ποσοστά που ευαγγελίζονται δεν είναι τόσο μεγάλα, ώστε τα κέρδη από την πώληση του software να είναι μεγαλύτερα, αν συνυπολογίσει κανείς και ​​ τα έξοδα τoυ marketing, να είναι μεγαλύτερα από τα κέρδη που θα επέφερε αν δοκιμαζόταν στο πραγματικό περιβάλλον του χρηματιστηρίου.

Επιπλέον γνωρίζουμε ήδη από προηγούμενα άρθρα μας στον ιστότοπο αυτό ότι οι διακυμάνσεις των τιμών των μετοχών είναι ασυσχέτιστες μεταξύ τους, και ότι εξαρτώνται όχι από την προϊστορία τους, αλλά από τη γνώμη που έχουν οι traders και οι επενδυτές σχετικά με το μέλλον της συγκεκριμένης επιχείρησης και της ​​ οικονομίας γενικότερα. ​​ Είναι γενικευμένη η άποψη ότι οι μελλοντικές εκβάσεις ήδη περιλαμβάνονται στις σημερινές τιμές, δλδ είναι “priced in”, εξ’ ου και το ρητό «buy the rumor, sell the news”. ​​ Σε πραγματικές συνθήκες τα ιστορικά στοιχεία εξέλιξης των τιμών είναι χρήσιμα στο να δίνουν μια γενικευμένη εικόνα για την ποιότητα και το δυναμικό μιας μετοχής, τα οποία ελπίζουμε, κάτω από τις ίδιες συνθήκες να επαναληφθούν και στο μέλλον. ​​ 

Προβλέπω, όμως, σημαίνει κάτι εντελώς συγκεκριμένο: ​​ πρόβλεψη της ακριβούς τιμής της μετοχής σε μια συγκεκριμένη ημερομηνία στο κοντινό μέλλον. Τα νευρωνικά δίκτυα ευαγγελίζονται ακριβώς αυτό!

 

Ας δούμε λοιπόν από κοντά τι είδος πουλιά πιάνουν

Πρώτα πρώτα τα ΝΝ είναι ένα software, ένας αλγόριθμος ο οποίος προσπαθεί να μιμηθεί τον τρόπο που ο εγκέφαλος μαθαίνει καινούργια πράγματα, μέσα από τον ιλιγγιώδη αριθμό των συνάψεων των νευρικών κυττάρων, της τάξης των 10^10, όσα περίπου είναι και τα άστρα σε ένα γαλαξία.

 

Ένας νευρώνας σχηματικά μοιάζει ως εξής: Αποτελείται από τους δενδρίτες που παίζουν το ρόλο των καναλιών εισόδου της πληροφορίας, από το κυρίως σώμα όπου μαγειρεύονται οι πληροφορίες και από τον άξονα, ο οποίος αναπαριστά την έξοδο μιας καινούργιας πληροφορίας για να μεταφερθεί μέσω των δενδριτών σε ένα άλλο/α κύτταρο/α. Κι έτσι πάει σόι το βασίλειο…

 

 

Αναλόγως, ένα απλό Τεχνητό Νευρωνικό Δίκτυο με τρία συνολικά layers μοιάζει σχηματικά ως εξής:

 

Ένα layer με τις εισόδους Ιn, τις οποίες τροφοδοτούμε με την πληροφορία κωδικοποιημένη. Ένα ενδιάμεσο layer με μία ή περισσότερες nodes όπου οι αριθμοί Ιn αθροίζονται με τα κατάλληλα βάρη (wij). Και το τελικό layer εξόδου. Το ενδιάμεσο layer μπορεί να είναι ένα ή περισσότερα. Αν έχουμε περισσότερα του ενός ενδιάμεσα layers ​​ τότε μιλάμε για Deep Learning.

Το ΝΝ για να μπορέσει να είναι χρήσιμο πρέπει να το διαπαιδαγωγήσουμε, (training), όπως κάνουμε και στο σχολείο. To training συνίσταται στον καθορισμό των βαρών (wij) και των άλλων εσωτερικών παραμέτρων του δικτύου, ώστε η τιμή που παίρνουμε στην έξοδο να πλησιάζει πολύ κοντά στην αναμενόμενη.

Όταν το ζητούμενο είναι η μελλοντική τιμή μιας μετοχής, τροφοδοτούμε το ΝΝ με ένα πλήθος στοιχείων, όσα επιτρέπει δλδ η μνήμη του hardware, όπως τις τιμές του SPY για μεγάλη χρονική περίοδο, του QQQ, του DJ, άλλων επιμέρους δεικτών, δεικτών τεχνικής ανάλυσης, τιμές μετάλλων, και με ότι άλλο προαιρούμαστε. Δεν θα μπούμε σε λεπτομέρειες για το πώς γίνεται το optimization του ΝΝ, απλά θεωρούμε ότι αυτό μπορεί με κάποια μεγάλη προσπάθεια να γίνει. Υπάρχουν άλλωστε δεκάδες αλγόριθμοι γι’ αυτό.

Το τελευταίο στάδιο είναι το testing. Από την αρχική πληθώρα δεδομένων κρατάμε ας πούμε το 10% τα οποία δεν περιλαμβάνονται στο αρχικό training, αλλά τα κρατάμε για το testing. Τα testing data τα εισάγουμε στο κουρδισμένο ΝΝ και συγκρίνουμε την τιμή που δίνουν στην έξοδο με την τιμή της μετοχής που έχουμε δώσει στην είσοδο.

Θα πρέπει να διευκρινίσουμε ότι ένα μοντέλο Νευρωνικού Δικτύου το οποίο έχει γίνει optimized μπορεί να δώσει μεγάλη ακρίβεια στην αναπαραγωγή των data που έχουν χρησιμοποιηθεί για το training. Δηλαδή, αν το έχουμε τροφοδοτήσει με όλων των λογιών τα δεδομένα που έχουμε αναφέρει προηγουμένως και ζητήσουμε να μας δώσει τις τιμές του δείκτη SPY για παράδειγμα, εντός της χρονικής περιόδου της χρονοσειράς (in-sample data) που έχει χρησιμοποιηθεί στο training, το fit είναι πάρα πολύ καλό! Αλλά άχρηστο!

Όταν έρθει η σειρά να τεστάρουμε δεδομένα εκτός της αρχικής χρονοσειράς, (out-sample data), τότε τα πράγματα σκουραίνουν αρκετά. Το καλύτερο forecasting που μπορεί να γίνει και εδώ συμφωνούν όλοι οι forecasters είναι μόνο για την επόμενη μέρα, αλλά η ακρίβεια της πρόβλεψης είναι χειρότερη απ’ ότι στα in-sample data. Όσο όμως προχωράμε στο χρόνο τα λάθη συσσωρεύονται, μέχρις ότου να χάσουμε τελείως τη μπάλα. Αν η training χρονοσειρά δεν είναι ημερήσια, αλλά εβδομαδιαία, τότε μιλάμε για forecasting της επόμενης βδομάδας, κ.ο.κ.

 

Για του λόγου το αληθές ας δώσουμε ένα παράδειγμα.

Στην παρακάτω εικόνα βλέπουμε τον SPY ​​ (κόκκινη καμπύλη) και το fit με κάποιον ΝΝ αλγόριθμο (μπλε καμπύλη).

Όσο είμαστε μέσα στις τιμές που χρησιμοποιήθηκα για το training, οι κόκκινες και μπλε γραμμές έχουν καλή επικάλυψη. Όταν όμως βγούμε εκτός και σε αχαρτογράφητα νερά, τότε το ΝΝ κάνει …τα δικά του.

Το ίδιο συμβαίνει όσον αφορά την προβλεψιμότητα μελλοντικών τιμών και μεμονωμένων μετοχών. Παρά ταύτα το διακύβευση είναι μεγάλη και η προσπάθεια συνεχίζεται… Αν ποτέ ευοδωθεί!

 

ΥΓ. Αν κανείς γνωρίζει πιο επιτυχημένες προσπάθειες ας μας στείλει τα σχετικά Links.

 

​​