

Βασικά
57
Υπάρχουν περιπτώσεις που ο
trader «στήνει» εντολές αγοράς και
πώλησης σε προκαθορισμένα επίπεδα.
»
Αρχιτεκτονική ενός προγράμματος
αυτοματοποίησης
Κάθε λογισμικό που τρέχει σε μια ηλεκτρονική πλατφόρμα
συναλλαγών ή κάθε αυτόνομη (standalone) εφαρμογή που
επικοινωνεί και συνδέεται μέσω διεπαφής προγραμματισμού
εφαρμογών (Application Programming Interface – API) με
κάποιο χρηματιστήριο ή κάποια χρηματιστηριακή εταιρεία,
πρέπει να υλοποιεί τέσσερις βασικές λειτουργίες:
• Ορισμός παραμέτρων εισόδου
• Αρχικοποίηση
• Εκτέλεση στρατηγικής
• Τερματισμός
Ο ορισμός παραμέτρων εισόδου μας επιτρέπει να ορίσουμε
το πλήθος των παραμέτρων της στρατηγικής μας, να τις
ονομάσουμε και να τους δώσουμε αρχική τιμή. Οι παράμετροι
αυτές θα χρησιμοποιηθούν σε όλη τη διάρκεια της ζωής του
συστήματός μας.
Η αρχικοποίηση είναι το πρώτο κομμάτι κώδικα που θα
εκτελεστεί όταν το λογισμικό μας τεθεί σε λειτουργία. Είναι το
κατάλληλο σημείο για να γίνουν κάποιοι αρχικοί έλεγχοι και να
γίνουν κάποιοι υπολογισμοί που θα χρησιμοποιηθούν στην
στρατηγική μας. Αυτό το κομμάτι κώδικα εκτελείται μόνον μία
φορά, την στιγμή που το σύστημα μας θα τεθεί σε λειτουργία.
Η εκτέλεση στρατηγικής είναι το βασικότερο τμήμα ενός
λογισμικού αυτοματοποίησης. Εκτελείται κάθε φορά που
η αγορά θα έχει μια κανούργια τιμή. Κάνει υπολογισμούς,
ελέγχει τους κανόνες και τις συνθήκες με τις οποίες έχουμε
προγραμματίσει την στρατηγική μας και θα ανοίξει θέσεις όταν
οι συνθήκες αυτές ικανοποιηθούν. Επίσης στο σημείο αυτό, το
λογισμικό μπορεί να διενεργεί ελέγχους κλεισίματος θέσεων,
να εφαρμόζει διάφορα φίλτρα και οτιδήποτε άλλο θέλουμε να
εφαρμόσουμε.
Ο τερματισμός του συστήματός μας καλείται μόνον μία
φορά, όταν αφαιρούμε ή απενεργοποιούμε το λογισμικό
αυτοματοποίησης από μια αγορά. Χρησιμοποιείται συνήθως
για την αφαίρεση γραφικών από τα διαγράμματα και την
απελευθέρωση των πόρων του συστήματος.
Για την καλύτερη και βαθύτερη κατανόηση της
αρχιτεκτονικής των αυτοματοποιημένων συστημάτων
συναλλαγών ακολουθεί ένα απλό και σύνηθες παράδειγμα,
κατανοητό στην μεγαλύτερη πλειονότητα των traders.
Έστω ότι θέλουμε να αυτοματοποιήσουμε μια
στρατηγική που θα χρησιμοποιεί δύο κινητούς μέσους
όρους, έναν γρήγορο και έναν αργό. Θέλουμε οι κινητοί
μας μέσοι όροι να παραμετροποιούνται πλήρως και να
ανοίγουμε αγοραστική θέση όταν ο γρήγορος κινητός μέσος
όρος διασπά ανοδικά τον αργό, και θέση πώλησης όταν ο
γρήγορος κινητός μέσος όρος διασπά καθοδικά τον αργό.
Επίσης θέλουμε να εμφανίζουμε ανοδικό βελάκι πάνω στο
διάγραμμα όταν ανοίγει θέση αγοράς και καθοδικό βελάκι
στην θέση πώλησης.
Το σύστημά μας θα υλοποιηθεί με βάση την αρχιτεκτονική
που αναλύσαμε παραπάνω, ως εξής:
Ορισμός παραμέτρων εισόδου – Θα ορίσουμε ως
παραμέτρους τις περιόδους των κινητών μέσων όρων,
τον τύπο του καθενός (Απλός, Εκθετικός κλπ) και την τιμή
εφαρμογής τους (Κλείσμο κεριού, Άνοιγμα κεριού κλπ). Αυτές
οι παράμετροι θα αλλάζουν από τον χρήστη κάθε φορά που
θα τρέχει την στρατηγική του, παίρνοντας τις τιμές που εκείνος
βάζει.
Αρχικοποίηση – Σε αυτό το κομμάτι λογισμικού, θα
πραγματοποιήσουμε τον έλεγχο των παραμέτρων που έβαλε ο
χρήστης. Αν για παράδειγμα, η περίοδος του γρήγορου κινητού
είναι μεγαλύτερη από αυτήν του αργού, θα εμφανίσουμε στον
χρήστη το κατάλληλο μήνυμα λάθους και δεν θα επιτρέψουμε
στη στρατηγική να εκτελεστεί.