Σε αυτό το δεύτερο άρθρο, δημοσιεύουμε τον Python κώδικα που χρησιμοποιήσαμε για την έρευνά μας σχετικά με την ασφαλέστερη στρατηγική που αναλύσαμε στο πρώτο μέρος της σειράς άρθρων. Επίσης δημοσιεύουμε και τον indicator που κατασκευάσαμε για την χρήση στο TradingView για χρήση από όλους δωρεάν.
Στο πρώτο μέρος της σειράς Η Μέθοδος που Προστατεύει τις Επενδύσεις σε Ασταθείς Αγορές – Τι Λέει η Επιστήμη (Part 1) ο @cryptokratoras ανέλυσε και τεκμηρίωσε την θεωρητική και μαθηματική απόδειξη υπεροχής του απλού DCA έναντι της αποταμίευσης και της προσπάθειας χρονισμού των bottom/tops της αγοράς.
Η Dollar-Cost Averaging (DCA) πρόκειται για μια στρατηγική κατά την οποία επενδύεται ένα σταθερό ποσό σε τακτά χρονικά διαστήματα, ανεξαρτήτως της τιμής του περιουσιακού στοιχείου.
Σε αυτό το άρθρο, παρουσιάζουμε τον κώδικα που χρησιμοποιήσαμε για να εξετάσουμε την απόδοση της στρατηγικής DCA για πέντε δημοφιλή κρυπτονομίσματα (BTC, ETH, LTC, XRP, ADA) από τον Ιανουάριο του 2018 έως και τον Μάρτιο του 2025, επενδύοντας 100 ευρώ κάθε μήνα. Στην συνέχεια θα παρουσιάσουμε τον indicator που κατασκευάσαμε για χρήση στο TradingView.
Όλη η σειρά άρθρων είναι διαθέσιμη στο : https://cerebrux.net/tag/dcabtc
Περιεχόμενα:
Πως η Python χρησιμοποιείται για ανάλυση δεδομένων
Η Python, μια από τις πιο διαδεδομένες και εύκολες γλώσσες προγραμματισμού, είναι ιδανική για μελέτη και ανάλυση δεδομένων. Αν δεν γνωρίζετε για την Pyhton έχουμε αφιερώσεις στο cerebrux:
- Snake Wrangling: Δωρεάν βιβλίο προγραμματισμού σε Python για μικρα παιδιά
- Python στα Ελληνικά | Δωρεάν PDF βιβλίο προγραμματισμού για παιδιά και αρχάριους
Στην ενότητα Γιατί το BTC είναι πιο ασφαλής επένδυση έναντι των altcoin έπρεπε να δούμε τις τιμές των κρυπτονομισμάτων που συγκρίναμε για την περίοδο 2018 έως 2025. Στην περίπτωσή μας χρειαστήκαμε αρχεία CSV με τιμές κλεισίματος των κρυπτονομισμάτων τα οποία είναι διαθέσιμα από το CoinmarketCap:
- Bitcoin Historical Data – CoinMarketCap
- Ethereum Historical Data – CoinMarketCap
- Litecoin Historical Data – CoinMarketCap
- Cardano Historical Data – CoinMarketCap
- XRP Historical Data – CoinMarketCap
Για τον υπολογισμό, δημιουργήθηκε μια απλή Python εφαρμογή που:
- Διαβάζει ιστορικά δεδομένα τιμών από αρχεία CSV που κατεβάσαμε.
- Επιλέγει την τιμή κλεισίματος κάθε τελευταίας ημέρας του μήνα.
- Υπολογίζει την ποσότητα crypto που θα αγοράζαμε κάθε μήνα με 100 ευρώ.
- Συγκεντρώνει τη συνολική ποσότητα crypto και υπολογίζει την τελική αξία της επένδυσης με βάση την τιμή του Μαρτίου 2025.
- Υπολογίζει το συνολικό ποσό που επενδύθηκε και την απόδοση της επένδυσης (ROI).
Το χρονικό διάστημα που αναλύεται είναι από 01/01/2018 έως 31/03/2025.
Εισαγωγή βιβλιοθηκών της Python
H εφαρμογή χρησιμοποιεί τις εξής βιβλιοθήκες:
pandas: για ανάγνωση και επεξεργασία των δεδομένων.os: για έλεγχο ύπαρξης αρχείων.datetime: για διαχείριση ημερομηνιών.tabulate: για ωραία μορφοποίηση των αποτελεσμάτων στην κονσόλα.
Οπότε και ξεκινάμε με την εισαγωγή αυτών
import pandas as pd
import os
from datetime import datetime
from tabulate import tabulate
Έπειτα καθορίζονται τα κρυπτονομίσματα που θα αναλυθούν (π.χ. BTC, ETH), το αντίστοιχο path για κάθε αρχείο .csv με ιστορικά δεδομένα τιμών (θα ελεγχθούν ότι υπάρχουν τα αρχεία), το ποσό της μηνιαίας επένδυσης.
symbols = ['BTC', 'ETH', 'LTC', 'XRP', 'ADA']
csv_files = {sym: f'data/{sym}.csv' for sym in symbols}
monthly_investment = 100
Ανάγνωση και ανάλυση των δεδομένων
Ξεκινάμε με τον έλεγχο της ύπαρξης των αρχείων και έπειτα:
- Το κάθε αρχείο διαβάζεται, η στήλη
Dateγίνεται index και ταξινομείται χρονικά. - Φιλτράρεται και γίνεται ανάλυση μόνο για την περίοδο Ιανουάριος 2018 – Μάρτιος 2025.
- Αντί να λαμβάνονται όλες οι τιμές, επιλέγεται η τελευταία τιμή κάθε μήνα (τιμή κλεισίματος).
- Κάθε μήνα αγοράζονται crypto αξίας 100€, οπότε η ποσότητα εξαρτάται από την τότε τιμή. Η
cumsum()συγκεντρώνει τη συνολική ποσότητα. - Ορίζεται ο συνολικός αριθμός μηνών και το συνολικό επενδυμένο ποσό.
- Η τελική αξία υπολογίζεται με βάση την τελευταία τιμή και τη συνολική ποσότητα crypto.
- Η απόδοση (ROI) δίνεται ως ποσοστό κέρδους ή ζημίας.
- Τέλος, όλα τα δεδομένα αποθηκεύονται σε μια λίστα για εμφάνιση.
if not os.path.exists(path):
continue
df = pd.read_csv(path, parse_dates=['Date'])
df.set_index('Date', inplace=True)
df.sort_index(inplace=True)
start, end = '2018-01-01', '2025-03-31'
df = df.loc[start:end]
monthly_close = df['Close'].resample('ME').last()
coins_accumulated = (monthly_investment / monthly_close).cumsum()
total_months = len(monthly_close)
total_invested = total_months * monthly_investment
final_price = monthly_close.iloc[-1]
final_value = coins_accumulated.iloc[-1] * final_price
roi = (final_value - total_invested) / total_invested * 100
results.append({...})
Προβολή αποτελεσμάτων
Τα αποτελέσματα εμφανίζονται στην κονσόλα σε μορφή πίνακα, με στήλες όπως:
- Σύμβολο
- Μήνες επένδυσης
- Τελική Τιμή
- Συγκεντρωμένα crypto
- Τελική Αξία Επένδυσης
- ROI (%)
results_df = pd.DataFrame(results)
print(tabulate(
results_df,
headers='keys',
tablefmt='grid',
numalign='right',
stralign='center'
))

DCA Performance : TradingView indicator
Το DCA Performance είναι ένα εργαλείο που έγραψα σε Pine Script (v6) και επιτρέπει την αξιολόγηση της στρατηγικής Dollar Cost Averaging (DCA). Το εργαλείο παρέχει χρήσιμες πληροφορίες για την απόδοση της στρατηγικής, όπως:
- CAGR (Σύνθετος Ετήσιος Ρυθμός Ανάπτυξης): Υπολογίζει τον μέσο ετήσιο ρυθμό ανάπτυξης της επένδυσης. Βοηθά στη σύγκριση στρατηγικών σε διαφορετικές χρονικές περιόδους.
- Calmar Ratio: Αξιολογεί την απόδοση προσαρμοσμένη στον κίνδυνο, συγκρίνοντας το CAGR με τη μέγιστη πτώση (Max Drawdown). Ένας υψηλότερος δείκτης υποδεικνύει καλύτερη απόδοση σε σχέση με τον κίνδυνο.
- Max Drawdown: Μετρά τη μεγαλύτερη πτώση της επένδυσης από την κορυφή στην κατώτατη τιμή.
- Sharpe και Sortino Ratios: Παρέχουν μέτρα απόδοσης προσαρμοσμένα στον κίνδυνο, λαμβάνοντας υπόψη τη συνολική ή μόνο την αρνητική μεταβλητότητα.
- Μέσο Κόστος Κτήσης (Avg Cost Basis): Υπολογίζει τη μέση τιμή αγοράς του περιουσιακού στοιχείου.
- ROI (Απόδοση Επένδυσης): Δείχνει το ποσοστό κέρδους ή ζημίας σε σχέση με το συνολικό επενδυμένο ποσό.

Προσαρμοσμένες Ρυθμίσεις:
Ο χρήστης μπορεί να ορίσει το ποσό επένδυσης, τη συχνότητα (Ημερήσια, Εβδομαδιαία, Μηνιαία), και την περίοδο ανάλυσης. Επίσης μπορεί να αποφασίσει αν θέλει να εμφανίζει τα αποτελέσματα σε πίνακα και προσθέτει ετικέτες στο γράφημα για σημαντικά σημεία, όπως το μέγιστο drawdown.

Το εργαλείο είναι ιδανικό για όσους θέλουν να αξιολογήσουν την αποτελεσματικότητα της στρατηγικής DCA σε διαφορετικές αγορές και χρονικές περιόδους. Παρέχει πολύτιμες πληροφορίες για τη λήψη επενδυτικών αποφάσεων με βάση την απόδοση και τον κίνδυνο.
Λήψη και οδηγίες χρήσης
Τον κώδικα και τις οδηγίες χρήσης θα τις βρείτε στο github repository :
Αν βρήκατε κάτι χρήσιμο στο Cerebrux το οποίο σας έχει γλιτώσει χρόνο και θεωρείτε ότι αξίζει ένα κέρασμα, μπορείτε να κάνετε μια δωρεά κάνοντας κλικ στο πανό που κρατάει η μασκότ του Linux, ο Tux:
Τι περιμένεις ; Δες τώρα, μετά από τόση θεωρία πως μπορείς στην πράξη να εφαρμόσεις αυτά που έμαθες με το επόμενο άρθρο μας:
