Τι είναι το GreekStock? Είναι ένα χρηματιστηριακό πρόγραμμα που απευθύνεται σε χρηματιστηριακές εταιρίες και σε άτομα που παίζουν στο χρηματιστήριο. Τι κάνει το GreekStock? Παίρνει σε καθημερινή βάση τα δεδομένα που διαθέτει η επίσημη ιστοσελίδα του ελληνικού χρηματιστηρίου που αφορούν τις συναλλαγές,τις τιμές, και ότι άλλο αφορά τις μετοχές και τις κινήσεις τους. Εισάγει αυτά τα δεδομένα σε μια βάση δεδομένων για να είναι έτοιμα για τα επόμενα βήματα.. 2
Στο προηγούμενο βήμα το πρόγραμμα πρέπει να ε είναι σε μηχάνημα που έχει σύνδεση στο ιντερνέτ αλλιώς δεν γίνεται η ενημέρωση της βάσης. Εφόσον ενημερώνεται η βάση μπορούμε να προχωρήσουμε στα επόμενα βήματα. Που είναι η ανάλυση και η εμφάνιση των δεικτών. Στην φάση της ανάλυσης τρέχουν κάποιες συναρτήσεις που χρησιμοποιούν (τα αποθηκευμένα δεδομένα στην βάση και κάποιες εξισώσεις) με σκοπό να έχουμε ως αποτέλεσμα τις τιμές των δικών που θα εμφανίσουμε στο επόμενο βήμα Ο υπολογισμός των δεικτών χρειάζεται ένα αρχείο από δεδομένα για κάποιες μέρες αυτό το αποφασίζει ο χρήστης,για παράδειγμα μπορεί να διαλέξει να βγάλει αποτελέσματα με βάση 14 μερών, αυτό το διαλέγει πριν κάνει την ανάλυση, Και κάθε φορά που θα κάνει ανάλυση πρέπει να διαλέξει την χρονική περίοδο που θέλει να λάβει υπόψη του το πρόγραμμα υπολογίζοντας τις τιμές των δεικτών Οι δείκτες για τους οποίους μιλάμε είναι κάποια γραφήματα που βοηθούν τον χρήστη (που υποτίθεται ότι ξέρει τι σημαίνουν οι δείκτες ) να ξέρει σε ποια φάση βρίσκεται μια μετοχή ( καλή για αγορά τώρα η σε λίγες μέρες καλή για πώληση.τώρα η σε λίγες μέρες ) Το τελευταίο βήμα είναι η εμφάνιση των δεικτών όπου θα ζωγραφιστούν τα γραφήματα χρησιμοποιώντας τα αποτελέσματα της ανάλυσης που θα έχουν αποθηκευτεί σε αρχεία ( ξεχωριστό αρχείο για κάθε εταιρία ) Το ποιοι είναι οι δείκτες και πως γίνονται όλες οι φάσεις και πως φαίνεται το τελικό αποτέλεσμα θα το δούμε στην συνέχεια. 3
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ www.ase.gr Data Base Greek Stock Text Files Charts Εισαγωγή στην τεχνική (δείκτες και ταλαντωτές) : εδώ θα μιλήσουμε για την έννοια των τεχνικών δεικτών και θα εξηγήσουμε τον τρόπο χρήσης τους στην ανάλυσή. 4
Τι είναι ο τεχνικός δείκτης; είναι μια σειρά από στοιχείο δεδομένων (data points) που προκύπτουν από την εφαρμογή ενός τύπου πάνω σε τιμές δεδομένων που αφορούν μια μετοχή. Τιμή δεδομένων περιλαμβάνει οποιοδήποτε συνδυασμό των (Open, high, low or close) για κάποιο χρονικό διάστημα. Ορισμένοι δείκτες μπορούν να χρησιμοποιούν μόνο την τιμή κλεισίματος (close), ενώ άλλοι χρησιμοποιούν το όγκος (volume) και (close) για παράδειγμα ο μέσος όρος της τιμής κλεισίματος για τρεις μέρες είναι στοιχείο δεδομένων (data point) ένα στοιχείο δεδομένων δεν προσφέρει πολλές πληροφορίες και δεν φτιάχνει έναν δείκτη. απαιτείται μια σειρά από στοιχεία δεδομένων σε μια χρονική περίοδο για να τη δημιουργία ενός δείκτη. Με τη δημιουργία μια χρονική σειρά των στοιχείων δεδομένων,η σύγκριση μπορεί να γίνει μεταξύ παρόντος και παρελθόντος επιπέδων. Τι προσφέρει ένας τεχνικός δείκτης? Ένας τεχνικός δείκτης προσφέρει μια διαφορετική οπτική γωνία από την οποία μπορούμε να αναλύουμε την δράση της τιμής. κάποιοι, όπως η μετακίνηση μέσους όρους, προέρχονται από απλούς τύπους,και τη μηχανική είναι σχετικά εύκολο να κατανοηθεί. Άλλοι δείκτες, όπως Stochastics, έχουν σύνθετες φόρμουλες και απαιτούν περισσότερη μελέτη για να αντιληφθούν πλήρως. Ανεξάρτητα όμως από την πολυπλοκότητα του τύπο, ο τεχνικός δείκτης μπορεί να προσφέρει μοναδικές προοπτικές για την ισχύ και την κατεύθυνση για την δράση της τιμής. 5
Παρουσίαση των δεικτών που χρησιμοποιεί το GreekStock Bollinger Band Width μέτρο μεταβλητότητας των συναλλαγών με την τοποθέτηση ζωνών γύρω από ένα κινητός μέσος όρος, συνήθως αυτές Οι ζώνες χαρτογραφούνται ως δύο τυπικές αποκλίσεις από το μέσο όρο, έτσι ώστε αν αλλάξει ο μέσος όρος αλλάζουν και οι δυο τυπικές αποκλίσεις. Η τιμή αυτή είναι η Bollinger εύρος ζώνης, η οποία εκπροσωπεί την επέκταση και της ανάθεσης των ζωνών με βάση πρόσφατη μεταβλητότητα. Κατά τη διάρκεια μιας περιόδου της ανόδου της τιμής μεταβλητότητα, η απόσταση μεταξύ των δύο ζωνών θα διευρυνθεί (BB Πλάτος θα αυξηθεί). Αντίθετα, κατά τη διάρκεια περιόδου χαμηλής μεταβλητότητα της αγοράς, η απόσταση μεταξύ των δύο ζωνών θα σύμβασης (BB Πλάτος θα μειωθεί). Relative Strength Index (RSI) 6
είναι μια εξαιρετικά χρήσιμη και δυναμική δημοφιλή ταλαντωτή. Η RSI συγκρίνει το μέγεθος του πρόσφατου κέρδους με το μέγεθος της πρόσφατης ζημιάς. Και το μετατρέπει σε νούμερο μεταξύ 0 και 100. Αυτός ο δείκτης χρειάζεται μια μόνο παράμετρο που είναι η χρονική περίοδος που χρησιμοποιείται στον υπολογισμό Money Flow Index (MFI) είναι παρόμοιο δείκτης στην ερμηνεία και στον υπολογισμό με το Relative Strength Index (RSI). Συγκρίνει "θετική ροή χρήματος-positive money flow" σε «αρνητική ροή χρημάτωνnegative money flow" για τη δημιουργία ενός δείκτη που θα μπορεί να συγκριθεί με την τιμή, προκειμένου να προσδιοριστεί η δύναμη ή η αδυναμία της τάση(strength or weakness of a trend). Όπως και το RSI, το MFI μετριέται σε διαστάσεις 0-100 διαστάσεων και συνήθως υπολογίζεται χρησιμοποιώντας μια περίοδο 14 ημερών. Όπως και με το RSI, το MFI μπορεί να χρησιμοποιηθεί για να καθοριστεί εάν υπάρχει πάρα πολύ ή πολύ λίγο όγκος που συνδέονται με την ασφάλεια. Μια μετοχή θεωρείται "overbought", αν το MFI δείκτης φθάσει το 80 και πάνω. Από την άλλη αν το MFI δείχνει στα 20 και κάτω τότε η μετοχή θεωρείται "oversold". 7
Stochastic Oscillator Περιγραφή Ένας δυναμικός δείκτης που δείχνει την θέση της σημερινής τιμής κλεισίματος σε σχέση με την υψηλή / χαμηλή κλίμακα πάνω από ένα συγκεκριμένο αριθμό περιόδων. Επίπεδα Κλεισιμάτων που είναι συνεχώς κοντά στην κορυφή του φάσματος υποδεικνύουν συσσώρευση (buying pressure) και εκείνων που βρίσκεται στο κάτω μέρος του φάσματος υποδεικνύουν διανομή (selling pressure). Όταν δείχνει 20 και κάτω θεωρείται oversold και Όταν δείχνει 80 ΠΩΣ ΔΟΥΛΕΥΕΙ ΤΟ GreekStock Θα μιλήσουμε πρώτα για την βάση δεδομένων στην οποία αποθηκεύονται τα δεδομένα που παίρνει το πρόγραμμα από την ιστοσελίδα του χρηματιστηρίου, και από την οποία παίρνει το πρόγραμμα μετά δεδομένα για να υπολογίσει τους δείκτες. Μετά θα εξηγήσουμε τις φάσεις που εκτελούνται μέχρι να έχουμε ολοκληρωμένο αποτέλεσμα. Αυτές οι φάσεις είναι Download-update Analyze Companies profiles Query Show charts 8
Η Βάση Δεδομένων: Η βάση δεδομένων αποτελείται από τα εξής αρχεία: Companies_INF Το οποίο περιέχει όλα τα πεδία που διαβάζονται από το txt αρχείο της χρηματιστηριακής σύμβολο της εταιρίας ( primary key ) ημερομηνία ( primary key ) Τιμή κλεισίματος Όγκος Μέγιστη τιμή Ελάχιστη τιμή Αξία Τιμή ανοίγματος Διεθνής κώδικας τα δεδομένα σε αυτό το αρχείο χρησιμοποιούνται για να υπολογίζονται μετά οι δείκτες. Companies_NAMES Το οποίο περιέχει τα εξής πεδία : σύμβολο της εταιρίας. ( primary key ) 9
το ολόκληρο όνομα της εταιρίας. Πληροφορίες Την κατηγορία της εταιρίας Το κλάδας που ανήκει η εταιρίας τα δεδομένα σε αυτό το αρχείο χρησιμοποιούνται για να έχουμε πληροφορίες για κάθε εταιρία και σε περίπτωση που ο χρήστης θέλει να δει εταιρίες που ανήκουν σε ένα κλάδος. fileshistory Το οποίο περιέχει τα εξής πεδία : Το όνομα του αρχείου ( primary key ) flag τα δεδομένα σε αυτό το αρχείο χρησιμοποιούνται για ξέρουμε ποια είναι τα αρχεία που έχουν ήδη καταχωρηθεί στην βάση και ποια από αυτά είχαν δεδομένα το όνομα του αρχείου είναι και η ημερομηνία οπότε ένα αρχείο που δεν έχει δεδομένα είναι μια μέρα αργίας και θα έχει το flag μηδέν αλλιώς θα το έχει ένα. Download-update: Εμφανίζεται το εξής παράθυρο στο οποίο ο χρήστης διαλέγει δύο ημερομηνίες που έχουν default τιμές την σημερινή ημερομηνία. Και όταν πατάει το οκ τρέχει Η συνάρτηση download που ψάχνει στο χρονικό διάστημα που επέλεξε ο χρήστης για καινούρια ανεβασμένα TXT αρχεία στο www.ase.gr 10
αν υπάρχουν αρχεία τα διαβάζει και παίρνει τις απαραίτητες πληροφορίες και τις αποθηκεύει στην βάση δεδομένων, όταν τελειώνει η διαδικασία αυτή τρέχει μια συνάρτηση clearoldinformation η οποία φροντίζει να μη έχει η βάση αρχείο δεδομένων για πάνω από 75 μέρες με σκοπό να μη μαζευτούν πληροφορίες στην βάση για πολύ μεγάλο χρονικό διάστημα κάτι που θα φορτώσει το πρόγραμμα χωρίς λόγο διότι για το συγκεκριμένο πρόγραμμα 75 μέρες αρχείο είναι πολύ καλό χρονικό διάστημα. Η συνάρτηση download 11
Η διαδικασία αυτή γίνεται με τον εξής τρόπο: Γίνεται η σύνδεση με το browser και αρχίζει η αναζήτηση για Καινούρια αρχεία στην ιστοσελίδα, όταν βρεθεί ένα αρχείο προσθέτεται το όνομα του στην βάση στο αρχείο fileshistory για να μη το ξαναδιαβάσουμε άλλη φορά μετά καλείται η συνάρτηση readfile() στην οποία τρέχει ένα querydataset το οποίο φέρνει τα περιεχόμενα του αρχείου companies_inf από την βάση δεδομένων όπου υπάρχουν όλες οι πληροφορίες που έχουν περαστεί στο σύστημα μέχρι τώρα. Μετά αρχίζει να προσθέσει τις καινούριες πληροφορίες στην βάση. Το readfile() τρέχει για κάθε αρχείο που βρίσκει η download Και όταν τελειώνει η διαδικασία εμφανίζεται ένα μήνυμα που λέει πόσα αρχεία έχουν καταχωρηθεί στην βάση. Η συνάρτηση clearoldinformation 12
Η συνάρτηση readefile 13
Αμέσως μετά τρέχει η clearoldinformation που μετράει για πόσες μέρες έχουν μαζευτεί πληροφορίες για κάθε εταιρία και αν έχουν ξεπεράσει τις 75 μέρες τότε σβήνει από την βάση companies_inf τις πιο παλιές μέρες, Ως αποτέλεσμα θα έχουμε στην βάση καινούρια δεδομένα πιο συγκεκριμένα στα αρχεία companies_inf και fileshistory Έτσι θα είναι το αρχείο companies_inf Και έτσι θα είναι το αρχείο fileshistory 14
Analyze: Εδώ εμφανίζεται ένα παράθυρο στο οποίο πρέπει ο χρήστης να διαλέξει το χρονικό διάστημα που θα χρησιμοποιηθεί για να βγάλουμε αποτελέσματα της ανάλυσης. ως ελάχιστο θα έχει την επιλογή 14 και ως μεγαλύτερο την επιλογή 60, προφανώς μπορεί να διαλέξει οποιαδήποτε τιμή που θέλει εντός αυτού του διαστήματος (14-60) Το 60 μπορεί να είναι υπερβολικό αλλά το έβαλα για ακραίες περιπτώσεις και επειδή στην βάση έχουμε 75 μέρες αρχείο. Διαλέγει ο χρήστης όπως αναφέραμε το χρονικό διάστημα και πατάει το κουμπί Start Analysis Εκεί ξεκινάει η σοβαρή δουλεία όπου το πρόγραμμα πρέπει να ελέγξει την βάση για κάθε εταιρία εάν έχει αρκετά δεδομένα για να γίνει η ανάλυση η όχι. αν δεν έχει τότε ενημερώνει τον χρήστη με ένα μήνυμα και συνεχίζει με τις άλλες εταιρίες. αν έχει αρκετά δεδομένα τότε εκτελεί τους αλγόριθμους για κάθε δείκτη και αποθηκεύει τα αποτελέσματα στο αρχείο της εταιρίας που αν δεν υπάρχει το δημιουργεί. Για παράδειγμα κάνει την ανάλυση της εταιρίας με το σύμβολο ΑΑΑΚ Υπολογίζει το Bollinger band της και το αποθηκεύει στο αρχείο companies\aaak.gs Αν είναι πρώτη φορά που γίνεται ανάλυση αυτής της εταιρίας και αυτό το αρχείο δεν υπάρχει τότε το δημιουργεί. Το πώς γίνεται αναλυτικά η ανάλυση και ο υπολογισμός για κάθε δείκτη θα το δούμε στην συνέχεια 15
SQL Server ΓΙΑ ΚΑΘΕ ΕΤΑΙΡΙΑ Χ ΣΤΗΝ ΒΑΣΗ ΝΑΙ ΥΠΑΡΧΟΥΝ ΑΡΚΕΤΑ ΔΕΔΩΜΕΝΑ ΓΙΑ ΤΗΝ Χ; ΟΧΙ ΑΝΑΛΥΣΗ ΠΡΟΣΘΗΚΗ ΣΕ ΜΙΑ ΛΙΣΤΑ ΑΠΟΘΥΚΕΥΣΗ ΣΤΟ ΑΡΧΕΙΟ ΤΗΣ (Χ) ΕΝΗΜΕΡΟΤΙΚΟ ΜΗΝΥΜΑ ΤΕΛΟΣ 16
17
Companies profiles: Σε αυτό το φρεμ ο χρήστης έχει την δυνατότητα να δει να εισάγει και να αλλάξει το προφίλ κάθε εταιρίας επιλέγοντας το σύμβολό της από την λίστα αριστερά και ύστερα να επεξεργαστεί τις τιμές των πεδίων: - Full name - Category - Sector - Other information Και για να αποθηκευθούν οι αλλαγές στο προφίλ κάθε εταιρίας πρέπει να πατηθεί το (Save changes for :company name) πριν πάει σε άλλο προφίλ. μπορεί επίσης να διαγράψει μια εταιρία από την λίστα πατώντας το (Delete). Με το που εμφανίζεται αυτό το φρεμ τρέχει η setsymbollist Που παίρνει όλα τα σύμβολα των εταιριών και τα βάζει στην λίστα αριστερά 18
Η setsymbollist παίρνει μια παράμετρο : Το ερώτημα QueryDataSet που φέρνει όλα τα records από την βάση Στην setsymbollist εκτελείται το ερώτημα και βρίσκει αποτελέσματα μόνο εάν δεν έχουμε καμία εταιρία στην βάση αλλιώς παίρνει το σύμβολο από κάθε record και το εισάγει στην λίστα που θα εμφανιστεί στον χρήστη Τα πεδία του προφίλ παραμένουν άδεια μέχρι να επιλέξει Ο χρήστης μια εταιρία από την λίστα, τότε τρέχει η setprofilevalues που συμπληρώνει τα πεδία εκείνα με τα αντίστοιχα δεδομένα που φέρνει από την βάση δεδομένων και ενεργοποιούνται αυτά τα πεδία για να μπορέσει ο χρήστης να προσθέσει η να αλλάξει κάτι στο προφίλ. 19
όταν πατάει ο χρήστης το save για μια εταιρία τρέχει η setvaluesfromprofile η οποία παίρνει τιμές από τα πεδία του φρεμ και τα καταχωρεί στην βάση, απενεργοποιείται το κουμπί save και εμφανίζεται ένα μήνυμα που λέει ότι το save έγινε. Query : Το πρόγραμμα δίνει στον χρηστή την δυνατότητα να διαλέξει ποιες εταιρίες θέλει να εμφανιστούν. Αυτό γίνεται με τη βοήθεια της φόρμας «query», όπου διαλέγει ο χρήστης διαλέγει με ποιο τρόπο θέλει να φιλτράρει τις εταιρίες : 20
όλες. Οι εταιρίες που ανήκουν σε ένα συγκεκριμένο κλάδος ΚΑΤΗΓΟΡΙΑ ΜΕΓΑΛΗΣ ΚΕΦΑΛΑΙΟΠΟΙΗΣΗΣ ΚΑΤΗΓΟΡΙΑ ΜΕΣΑΙΑΣ ΚΑΙ ΜΙΚΡΗΣ ΚΕΦΑΛΑΙΟΠΟΙΗΣΗΣ ΚΑΤΗΓΟΡΙΑ ΧΑΜΗΛΗΣ ΔΙΑΣΠΟΡΑΣ & ΕΙΔ. ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΚΑΤΗΓΟΡΙΑ ΕΠΙΤΗΡΗΣΗΣ ΣΕ ΑΝΑΣΤΟΛΗ Οι εταιρίες που ανήκουν σε μια συγκεκριμένη κατηγορία. Πετρέλαιο & Αέριο Χημικά Πρώτες Ύλες Κατασκευές & Υλικά Κατασκευών Βιομηχανικά Προϊόντα & Υπηρεσίες Τρόφιμα & Ποτά Προσωπικά & Οικιακά Αγαθά Υγεία Εμπόριο Μέσα Ενημέρωσης Ταξίδια & Αναψυχή Τηλεπικοινωνίες Υπηρεσίες Κοινής Ωφέλειας Τράπεζες Ασφάλειες Ακίνητη Περιουσία Χρηματοοικονομικές Υπηρεσίες Τεχνολογία 21
Ανάλογα με την τιμή τους. Μεγαλύτερη από Χ τιμή Μικρότερη από Χ τιμή Μεγαλύτερη από Χ τιμή και μικρότερη από Υ τιμή Μπορεί επίσης να γράψει ένα δικό του «SQL» ερώτημα Αρκεί να το γράψει σωστά με την βοήθεια των πληροφοριών που αφορούν την βάση δεδομένων Που είναι δια8εσιμες στην ίδια φόρμα με ένα παράδειγμα. select symbolcom from stock.dbo.companies_names where sectorcom='πετρέλαιο & Αέριο' Πίσω από αυτή την φόρμα -και αφού ο χρήστης έχει διαλέξει το ερώτημα του- τρέχουν κατάλληλα SQL ερωτήματα που ζητούν από την βάση να επιστρέψει τις εταιρίες ανάλογα με το ερώτημα. 22
Ανάλογα με την επιλογή του χρήστη,εκτελείται το κατάλληλο ερώτημα και το αποτέλεσμα επιστρέφεται στο κεντρικό παράθυρο. Το αποτέλεσμα εμφανίζεται στο κεντρικό φρεμ όπου στην λίστα των εταιριών εμφανίζονται οι εταιρίας που επέστρεψε το ερώτημα. 23
Show charts : Ως αποτέλεσμα όλων των προηγουμένων βημάτων ο χρήστης θα έχει τα γραφήματα που του δίνουν σημαντικές πληροφορίες για την τάση κάθε εταιρίας και τον βοηθούν να προβλέψει με μεγάλη ακρίβεια τις σωστές κινήσεις και εντολές που πρέπει να κάνει. Στο κεντρικό παράθυρο μπορεί ο χρήστης να δει ταυτόχρονα δυο γραφήματα. Από την λίστα των εταιριών στο δεξή μέρος του παραθύρου διαλέγει το σύμβολο της εταιρίας που θέλει να μελετήσει και αυτόματα εμφανίζονται τα γραφήματα της. Αυτό γίνεται καλώντας την συνάρτηση refreshchart Κάθε φορά που ο χρήστης διαλέγει μια εταιρία με ένα κλικ η από το πληκτρολόγιο Η συνάρτηση refreshchart απλά αδειάζει το περιεχόμενο του παραθύρου και καλεί την startchart και ξανά ζωγραφίζει τα γραφήματα Για την καινούρια επιλογή του χρήστη 24
Από το αριστερό μέρος του παραθύρου διαλέγει πoια γραφήματα θέλει να εμφανιστούν. Ένα από τα εξής γραφήματα στο πάνω μέρος: - Price volume 25
- High Low - Candle stick Και ένα από τα εξής γραφήματα στο κάτω μέρος: - Bollinger - Stochastic 26
- MFI - RSI 27