Suivez un portefeuille de différents actifs et recevez des informations analytiques à leur sujet. Ce code dispose d'outils pour prendre automatiquement en compte les divisions des actions et trouvera même des paiements de dividendes en effectuant un peu de webscraping (cette fonctionnalité est très sujette aux erreurs car il n'y a pas d'API).
Ce projet utilise une base de données MySQL pour stocker les données. Cependant, grâce à l'utilisation d'un intermédiaire ORM (Flask-SQLALCHEMY), vous pouvez facilement échanger avec d'autres bases de données. L'application recherche automatiquement un fichier de configuration appelé mysql_config.yml . Il n'est pas inclus dans le référentiel, mais il contient simplement les informations nécessaires pour générer l'URI pour la base de données que vous souhaitez utiliser.
Pour courir, faites simplement:
python app.py À l'intérieur du sous-dossier Asset_portfolio. Assurez-vous de configurer votre base de données et votre fichier de configuration de base de données avant d'exécuter le code.
J'ai écrit cet article de blog sur un projet de jouets qui est de nature très similaire à celui-ci. Je vous recommande de le vérifier pour mieux comprendre une partie du code ici.
L'outil pour calculer les actions totales en fonction des divisions d'actions se trouve dans le fichier database_operations.py . La fonction est appelée events_table_updater . Il existe une autre fonction pour les dividendes, appelés à juste titre: dividends_table_updater .
Ces fonctions doivent être exécutées indépendamment du script principal et sur des intervalles réguliers. Je pensais mettre en place un cron-travail pour les exécuter, mais je ne l'ai pas encore fait.
Je ne suis pas un concepteur graphique ou GUI, alors coupez-moi un peu de mou si l'apparence du projet ressemble à un site Web mal fabriqué du début des années 90.
Le HTML pour les pages peut être trouvé sous le sous-dossier asset_portfolio/templates . Voici quelques captures d'écran de ce que vous verrez une fois que vous aurez exécuté le code et entrez certaines données.
Voici où l'utilisateur entre dans les informations transactionnelles. Il est actuellement mis en place pour l'entrée manuelle, ce qui n'est pas idéal, mais je l'ai construit avec Robinhood à l'esprit, et ils n'ont toujours pas une API officielle avec laquelle travailler.
L'interface montre un graphique de base alimenté par un serveur Bookeh fonctionnant à l'arrière. Vous pouvez survoler chaque stock pour obtenir plus d'informations. 


Voici un endroit où vous enregistrez les courtiers que vous êtes plus tard utilisés. Ce n'est pas incroyablement utile, mais c'est là. 
Dans cette page, j'affiche tous les titres d'actifs mais séparant les parties qui seraient considérées comme des avoirs à long terme des avoirs à court terme.
Par exemple, si j'avais 10 actions d'Apple d'il y a 5 ans et 5 actions d'Apple d'il y a 6 mois, le programme montrerait ces deux lots séparément.
