Communauté des investisseurs heureux (depuis 2010)
Echanges courtois, réfléchis, sans jugement moral, sur l’investissement patrimonial pour devenir rentier, s'enrichir et l’optimisation de patrimoine
Vous n'êtes pas identifié : inscrivez-vous pour échanger et participer aux discussions de notre communauté !
Nouveau venu dans cette longue discussion ?
Consultez une sélection des messages les plus réputés en cliquant ici.
Prosper Conseil (partenariat) : optimisation patrimoniale et fiscale sans rétro-commission en cliquant ici.
4 #1 21/08/2017 02h05
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
Bonsoir,
En lançant mes scripts comme chaque soir, je me suis demandé si d’autres personnes se forgeaient leurs propres outils en Python, un peu comme les feuilles Excel de notre hôte ou les scripts R trouvés sur cette file ?
J’inaugure donc cette file avec un petit projet perso, à la base créé dans le seul but de me faire monter en compétences en Python et qui me sert désormais à faire mes analyses boursières tranquillement avec une interface plus pratique, à mon goût, que celles de mon courtier : Prolix. Le nom est évidemment une référence au faux devin d’Astérix, visant à bien se rappeler de ne jamais donner foi aux seules données boursières
Écran d’accueil
Quelques statistiques sur la base de données, avec les cours de nos amis PX1 et VCAC pour avoir une idée de la tendance générale du marché.
La base de données est maintenue en local par d’autres scripts : Pneumatix, Ordralfabetix et Ielosubmarine s’occupent de livrer, préparer et ajuster les cours (pas frais bien entendu, on ne fait pas (encore ?) de HFT ici).
Puisque on est dans les noms, j’ai également un script de backtesting de stratégies (classiques implémentés : turtles, moving averages crossover, momentum… et des trucs plus exotiques à base d’algos génétiques ou de réseaux de neurones sont en cours), gérant les frais de courtage (tarifs Binck) ainsi que la TTF (le cas échéant) : Pronostix. Un vrai village gaulois
Indices / Trackers / Shares
Sur la gauche, la liste des valeurs (indices, ETF ou actions donc), compartimentées le cas échéant (oui je me suis limité au marché français, pour le moment) et avec la progression sur quelques périodes sélectionnées.
Sur la droite, les graphes de la valeur choisie et quelques indicateurs d’analyse technique. Je confesse avoir tenté de spéculer sur ces seules bases, je n’ai évidemment rien gagné mais au moins je n’ai pas perdu beaucoup dans l’affaire : de nature sceptique je n’ai pas voué une confiance aveugle aux graphes, j’ai respecté une allocation intelligente du capital et prévu des seuils de sécurité (dont un, mal paramétré car j’avais mal compris le descriptif de l’ordre, s’est déclenché à perte…), bref j’ai fait mes premières armes et passages d’ordres grâce à ça, touchant par inadvertance mes premiers dividendes (ce sont eux qui m’ont permis de limiter la casse). Depuis, je ne fais plus de spéculation aveugle. Acheter bas et percevoir des dividendes m’a paru être une bien meilleure stratégie, j’ai vu la lumière en somme
Le vautour
Le vautour, charmant animal attendant patiemment son heure pour se repaître… cet onglet reprend un peu le même principe, en listant les valeurs selon leur performance sur une période donnée (ici, 6 mois) : on a donc les valeurs sur leurs plus bas / plus hauts, ce qui peut constituer un point d’entrée / renforcement / allégement (en cas de forte plus value, par exemple) intéressant. Évidemment, il faut coupler tout ceci à des analyses plus fondamentales et contextuelles avant d’agir, et en particulier vérifier s’il y a une bonne raison pour laquelle un titre baisse afin d’éviter des déconvenues.
Les dividendes
Sans doute l’écran le plus intéressant : les valeurs sont triées par rendements sur l’année précédente, toujours compartimentées. En bas on a le détail des dividendes avec le prix de l’action la veille du versement utilisé pour calculer le rendement, et sur la droite divers graphes.
Graphes du haut
Le premier affiche simplement le prix moyen mensuel sur quelques années, afin de voir l’évolution historique (ici on voit que 2017 est largement au dessus des années précédentes, suite à une forte hausse depuis juillet 2016).
Le second reprend les mêmes données mais affiche les moyennes mensuelles, ainsi que la volatilité sous forme de boites à moustaches classiques.
Graphes du bas
Le premier affiche le prix moyen annuel en € et les dividendes annualisés en % (rendement calculé par rapport au prix moyen annuel). Cela permet de voir rapidement l’évolution des prix/rendements.
Le second est une décomposition de l’évolution des prix sur les N dernières années : ici on constate que statistiquement, la période de fin juin à mi-juillet semble être le meilleur point d’entrée - ce qu’on peut corroborer en regardant le tout premier graphe avec les prix annuels.
Augure et Portefeuille
Ces deux onglets sont grisés car pas encore développés, et je connais quelques personnes qui aimeraient que j’ajoute un onglet Cryptomonnaies…
L’onglet Portefeuille me servira à entrer mon portefeuille (original, n’est il pas ?) et visualiser divers graphes comme son allocation sectorielle, sa performance par rapport au marché, ce genre de choses - on peut également envisager des propositions d’équilibrage (alléger ou renforcer), afin de pallier aux évolutions naturelles des valeurs.
L’onglet Augure sera de loin le plus complexe, et intégrera un réseau de neurones artificiels visant à m’apporter des conseils plus complets/fiables que les simples calculs statistiques, un conseiller virtuel privé en somme. J’ai implémenté quelques prototypes encourageants, mais je dois encore vérifier leurs prédictions et performances sur des périodes plus longues avant de les intégrer.
Il serait également envisageable d’ajouter un onglet "Value" pour investir dans la valeur, mais cela nécessiterait de collecter pas mal de données supplémentaires avant que le logiciel ne puisse proposer des entreprises intéressantes à bas prix… en fait, tout est possible
D’autres pratiquants parmi les investisseurs heureux ? Qu’avez vous réalisé de beau ?
Hors ligne
#2 21/08/2017 08h54
- doubletrouble
- Membre (2016)
Top 50 Année 2024
Top 20 Année 2023
Top 5 Année 2022
Top 10 Portefeuille
Top 5 Dvpt perso.
Top 10 Expatriation
Top 10 Vivre rentier
Top 10 Actions/Bourse
Top 5 Invest. Exotiques
Top 10 Crypto-actifs
Top 50 Entreprendre
Top 5 Finance/Économie
Top 50 Banque/Fiscalité
Top 50 Immobilier locatif - Réputation : 1168
Hall of Fame
“INTJ”
C’est un beau projet ! Et j’aime beaucoup les noms
Je suis développeur également, C et Python. Mon seul projet perso releaseable c’est une plateforme e-commerce. Son intérêt principal est d’être découpée en webservices spécialisés (donc le front est isolé des données sensibles) et de permettre un fonctionnement classique ou marketplace (multishop). Je la publierais sous licence CeCILL quand le backoffice sera plus joli…
✯ Mangia bene, caca forte, e non aver paura della morte.
Hors ligne
#3 21/08/2017 09h11
- blackfalcon
- Membre (2015)
- Réputation : 32
Tres beau projet !
Je me mets que depuis peu au Python (mais j’ai codé dans bien d’autres langages).
Vous comptez le partager (executable et/ou code)?
Pour les cryptos, attentions aux valeurs pour une (crypto)monnaie/token, il y en a autant qu’il y a de places d’échanges.
Parrainage Boursorama, Mes placements, Bourse Direct & Binck sur demande [MP]
Hors ligne
#4 21/08/2017 09h47
- M07
- Membre (2015)
Top 10 Dvpt perso.
Top 50 Expatriation
Top 20 Vivre rentier
Top 50 Actions/Bourse
Top 20 Obligs/Fonds EUR
Top 50 Crypto-actifs
Top 20 Finance/Économie
Top 10 Banque/Fiscalité
Top 50 SIIC/REIT - Réputation : 501
@FrankChalmers,
J’avais un peu utilisé Python, mais plus orienté "système".
En tout cas, merci pour les belles images/copies d’écran. Mais, si c’est bien joli, cela m’amène à poser quelques questions :
- il n’y a pas d’interface graphique native en Python, laquelle avez-vous utilisée ? (Tk, WX, QT, WinForm, HTML, …)
- les gestions de données incluses dans Python sont rarement utilisées seules. Avez-vous utilisé un SGBD et lequel ? (SQLite, MariaDB, MySQL, DB2, SQL-server, Oracle, PostgreSQL, etc.)
- Comme je suppose que vous ne saisissez pas toutes les données, vous devez allez les chercher quelque part. Perso, j’avais tenté de récupérer les données de Google-finance, avant de remarquer que Google ne fournit pas toutes les données sur tous les titres (par exemple les dividendes sur les actions européennes). Quelle(s) source(s) avez-vous utilisé ?
- Python a deux grandes branches : 2.x et 3.x ; quelle voie avez-vous choisie ?
Finalement, si j’ai bien déduit, Python ne vous sert que de colle pour assembler des modules disparates.
Ce qui m’amène à une dernière remarque. Perso, j’étais très sensible aux dépendances et aux risques liés à la pérennité des logiciels. Or toute dépendance accroît fortement le risque, et ce d’autant plus que les modules/bibliothèques externes ont leurs propres dépendances.
Un jour, j’avais vu un magnifique logiciel, qui utilisait une bibliothèque connue pour gérer une API Web. Or, cette bibliothèque utilisait un petit module pour gérer SOAP. Or, ce module n’était plus développé depuis plusieurs années. Le risque était qu’une simple évolution des normes aurait rendu le logiciel inutilisable. C’est le grain de sable qui bloque toute la machine.
C’est pour cela que je vous interroge sur les outils que vous avez utilisés pour développer votre outil.
M07
Hors ligne
#5 21/08/2017 10h06
- doubletrouble
- Membre (2016)
Top 50 Année 2024
Top 20 Année 2023
Top 5 Année 2022
Top 10 Portefeuille
Top 5 Dvpt perso.
Top 10 Expatriation
Top 10 Vivre rentier
Top 10 Actions/Bourse
Top 5 Invest. Exotiques
Top 10 Crypto-actifs
Top 50 Entreprendre
Top 5 Finance/Économie
Top 50 Banque/Fiscalité
Top 50 Immobilier locatif - Réputation : 1168
Hall of Fame
“INTJ”
@M07 : je me trompe peut-être mais ça ressemble à du Tkinter.
Je partage votre méfiance vis à vis des dépendances. On a vu ce que ça donnait quand une floppée de projets node.js ont crashé car le module left-pad avait été retiré de NPM…
Pour contrer ça, j’essaye de limiter intentionnellement le nombre de dépendences et j’inclus leur code source dans le tree. Au pire des cas, si le module est abandonné il est toujours possible de maintenir un fork personnel.
Pour éviter les galères de déploiement, docker est vraiment commode également.
✯ Mangia bene, caca forte, e non aver paura della morte.
Hors ligne
#6 21/08/2017 10h25
- Nappy
- Membre (2016)
- Réputation : 6
Impressionnant boulot FrankChalmers !
Je suis développeur Python depuis 10 ans. C’est le genre de projet sur leque j’adorerais bosser sur mon temps perso (déjà bien occupé malheureusement). J’ai quelques scripts maisons (e.g. pour remplir des spreadsheets Google Drive) mais c’est tout.
En projet de le partager sous licence libre et de le mettre sur e.g. GitHub ? ;-)
Hors ligne
#7 21/08/2017 10h37
- rocambole
- Membre (2012)
- Réputation : 228
C’est un excellent projet, j’adore les noms et de mon cote je sais developper en shell c++ et un peu dans differents langages de script. Le travail realise semble etre impressionnant et ingenieux.
Hors ligne
#8 21/08/2017 13h48
- Geronimo
- Membre (2012)
Top 20 Année 2024
Top 50 Année 2023
Top 50 Expatriation
Top 20 Actions/Bourse
Top 20 Monétaire
Top 20 Invest. Exotiques
Top 10 Entreprendre
Top 10 Banque/Fiscalité
Top 50 SIIC/REIT
Top 50 SCPI/OPCI - Réputation : 647
Hello,
Lestransactions.fr est essentiellement fait en Python 3 (Jinja2 et Flask -un framework python- pour le front, et du python côté back pour le crawling et les alertes mails).
Pour info le site dispose d’une API (API LesTransactions.fr) donc vous devriez pouvoir intégrer facilement les transactions de dirigeants à votre outil (une requête POST avec l’ISIN et l’appli vous renvoie un json avec toutes les transactions pour cet ISIN).
N’hésitez pas à me contacter si vous voulez discuter plus en détails de développements communs.
Dernière modification par Geronimo (21/08/2017 14h11)
Hors ligne
#9 21/08/2017 19h35
- bombadil
- Membre (2017)
- Réputation : 7
Pour ma part, j’en suis à la troisième version de mon stockscreener écrit sous python avec le framework Django. Je le lance en local.
Les principales fonctions sont les suivantes :
- récupération des cours de bourses et infos de comptabilité
- calcul de formules personnalisées
- paramétrage de tableaux permettant de comparer les indicateurs souhaités, avec une longueur d’historique variable (permet de faire une vue par type de stockpicking : value, GARP etc.)
- intégration de newsfeed sur les valeurs suivies.
La dernière version du stockscreener est calquée sur mon processus de stock picking : analyse d’une vue par comparaison d’une famille d’indicateurs, sélection d’une shortlist, constitution du portefeuille. La shortlist permet d’identifier les actions de qualité. Elles sont intégrées dans le portefeuille lorsqu’elles sont à un niveau de prix "intéressant".
En termes d’architecture, j’’ai choisi le mode client / serveur plutôt que standalone car, à l’époque de la première version, je travaillais en tant que MOA sur un projet informatique de développement d’une application web et je souhaitais comprendre les contraintes techniques des développeurs. Avec le recul, ce développement me permettrait un jour de mettre mon programme en ligne. Je n’ai encore jamais osé me lancer.
De manière générale, sur le web, je trouve qu’il manque des outils d’analyse fondamental sur les actions. On trouve plétore d’outils d’analyse graphique mais peu sur le fondamental. Ce forum est pour moi ce qui se fait de plus pointu en termes de partage sur les analyses fondamentales.
Dernière modification par bombadil (21/08/2017 20h38)
Hors ligne
1 #10 22/08/2017 00h40
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
Tout d’abord, merci à tous pour vos retours
@doubletrouble
Je fais moi aussi du C (et du shell, évidemment - tellement évident qu’on l’oublie toujours), mais surtout pour du développement système - peu adapté ici donc, surtout que les librairies que j’utilise sont déjà optimisées avec du code C/C++ pour la plupart.
Avez-vous utilisé un framework particulier (django, joomla… autre ?) pour votre projet ? N’hésitez pas à nous indiquer quand vous en ferez la publication en tout cas, je gage que ça peut intéresser du monde
@blackfalcon
Quels autres langages, par curiosité ? J’en ai essayé plusieurs avant de me fixer sur le python, tellement déroutant de simplicité qu’il rend le complexe trivial, c’est vraiment un langage qui vaut le coup d’y investir un peu de temps
Je n’ai pas vraiment réfléchi à la question de la publication, d’autant que sans base de données il n’a pas vraiment d’intérêt autre que didactique… disons que ça reste un sujet ouvert.
En effet pour les cryptos, c’est ce qu’on m’a expliqué. Il faudrait que je m’y plonge pour me forger un vrai avis sur le sujet, pour le moment je suis assez ambivalent sur ces monnaies et me contente de les suivre de loin, considérant que c’est une variante à la mode du forex, la liquidité en moins…
@M07
J’utilise également Python à peu près quotidiemment pour du développement système, là mon choix de faire une interface graphique "lourde" a été dicté par la curiosité (découvrir tkinter, en l’occurence) et la nécessité (j’utilise matplotlib pour générer mes graphes, et vus les temps de traitement sur des périodes un peu plus longues que quelques années le navigateur finirait par perdre patience… à moins de rendre les graphes côté client en JS, vu que c’est matplotlib qui accapare la majorité du temps de génération).
Côté db j’utilise PostgreSQL pour stocker et interroger mes données (directement en SQL, via psycopg2 et pandas donc). La base est nourrie par divers "scrapers" qui s’occupent de consulter les pages de cours sur divers sites boursiers, d’extraire les données de la bouillie généralement informe qu’est leur HTML (via Beautiful Soup) puis de générer des fichiers CSV avec les données désirées, qui sont ensuite versionnées (git) et importées.
Je suis moi aussi passé par les pages finances de Yahoo et Google, j’ai d’ailleurs aspiré la plupart de mon historique depuis Yahoo pour les cours, et depuis divers sites de courtiers pour les listes de dividendes. Je n’utilise plus les pages finances depuis : c’est pratique pour récupérer d’un seul coup les données historiques, mais pour la maintenance quotidienne il vaut mieux interroger des pages listant les valeurs et cours de la journée (moins de requêtes, ça arrange tout le monde et on peut aussi collecter les cours intraday si on en a envie).
Python 2 est agonisant, je suis donc parti directement sur Python 3. J’ai la même approche que vous concernant les modules, étant moi aussi plus d’une fois tombé sur de magnifiques projets complétement obsolètes, et parfois sur des livres dont les exemples étaient antédiluviens, ce qui est extrêmement pénible et frustrant… J’ai donc essayé dans la mesure du possible de me cantonner à des modules "éprouvés" - je pense que vous conviendrez que la liste suivante est raisonnable :
- ceux fournis avec python même : tkinter et un paquet de modules de la librairie standard (datetime, notamment)
- les modules tiers majeurs : matplotlib pandas numpy beautifulsoup4 tensorflow
- les modules tiers "mineurs" : psycopg2 pygments dateutil keras
Je considère ici comme mineur un module dont la disparition soudaine ne me chagrinerait pas outre mesure : certes je devrais adapter mon code, au pire forker ledit module, mais ils ne sont pas "vitaux" contrairement à un module majeur où je serais bien plus embêté (matplotlib et pandas doivent représenter à eux seuls la grande majorité du code, en l’occurence). Quant à ceux faisant partie de la librairie standard, je ne m’inquiète pas outre mesure pour leur pérennité.
Toutefois il n’y a pas que le code qui risque de disparaître, il y a aussi les sources de données… risque que j’ai "dilué" en multipliant les scrapers, et donc les sources de données potentielles - ainsi la "panne" de yahoo finance suite à une modification d’API ayant cassé pandas_datareader ne m’a que fort peu impacté, les autres scrapers étant là pour compenser (et ayant déjà récupéré les valeurs historiques).
@Nappy
Vous savez, ce projet a commencé un peu de la même manière
Je me demande quelle taille github autorise pour les repos non payants… avec tous les CSV on flirte avec le GB, sans compter les metadonnées de git lui même, et sans db l’intérêt est assez limité. Peut être avec un simple CSV d’exemple, une sorte de démo technologique… mais ça a peu d’intérêt, je pense.
Une chose que je pourrais faire, par contre, serait d’enfin réunir mes propres modules et d’en faire un paquet pip autonome… ça me simplifierait aussi la vie, cela fait un moment que je me le dis
Ha, la limite semble "poliment" fixée à 1GB…
@roudoudou
Merci, mais le meilleur est encore à venir
@Geronimo
Votre site est diablement intéressant, comment en avez vous eu l’idée ? Suite à votre certification AMF j’imagine ?
En tout cas il va clairement falloir que j’intègre vos données oui, la tâche la plus difficile sera de trouver un nom à l’onglet Je pense que ça sera mon prochain développement, entre deux entraînements de réseaux de neurones. Je vous tiens au courant, et pourquoi ne pas collaborer sur des développements en effet !
@bombadil
Ha, vous avez poussé plus loin que moi, bravo Ayant utilisé Django vous devriez pouvoir le mettre en ligne aisément je pense, attention toutefois à bien tenir Django à jour, les scanners automatiques veillent… le web est un environnement hostile Toutefois comme vous le dites il manque également cruellement d’applications d’analyse fondamentale, il y aurait donc ici un public tout trouvé pour votre projet… si cela vous intéresse d’essayer de sauter le pas et d’ouvrir votre application sur le web, n’hésitez pas à me contacter
Votre processus semble très intéressant en tout cas, j’espère pouvoir faire de même mais il va déjà falloir que j’enrichisse ma base de données avec les informations fondamentales (vous les collectez où, directement sur les sites des sociétés je suppose ? quid du parsing des documents ?), jusqu’à présent je ne l’ai fait qu’à la main et pour une poignée de sociétés dans lesquelles je songeais justement investir… et surtout, que je m’instruise convenablement sur les méthodes - j’ai déjà parcouru le site des daubasses et bien que je pense avoir saisi les principes généraux, il vaut mieux que je lise les classiques sur le sujet avant de me jeter dans le code
Hors ligne
#11 22/08/2017 03h08
- Silicon
- Membre (2015)
- Réputation : 61
Felicitations, mais ne serait t’il pas plus facile d’ecrire un module de récupération de données en format metastock et ensuite travailler avec un logiciel comme amibroker qui offre beaucoup de possibilité au niveau programmation…
J’utilise amibroker depuis plusieurs années (j’ai déja utilisé tradestation et metastock) , qui m’apparait comme le meilleur produit actuellement.
Par contre je trade uniquement technique, mais vous pouvez incorporer des données fondamentales dans amibroker (ce que je n’ai jamais fait)
Actuellement je récupère les cotes sur esignal avec qcollector (mechtrading.com) qui dans mon cas m’est apparu comme la solution la plus simple
Bonne chance dans vos projets
La fidélité est souhaitable en amour , mais elle est une tare sur les marchés.
Hors ligne
#12 22/08/2017 09h03
- Gog
- Membre (2015)
Top 50 Dvpt perso.
Top 50 Invest. Exotiques
Top 50 Crypto-actifs
Top 50 Entreprendre
Top 50 Finance/Économie - Réputation : 200
doubletrouble a écrit :
Je partage votre méfiance vis à vis des dépendances. On a vu ce que ça donnait quand une floppée de projets node.js ont crashé car le module left-pad avait été retiré de NPM…
Pour contrer ça, j’essaye de limiter intentionnellement le nombre de dépendences et j’inclus leur code source dans le tree. Au pire des cas, si le module est abandonné il est toujours possible de maintenir un fork personnel.
Depuis cet épisode, les mainteneurs du dépôt interdisent la dépublication 24h après la publication. Cela ne peut donc plus arriver. Vous devriez revoir votre approche parce que dupliquer les sources… bref (hurlement intérieur)…
bombadil a écrit :
De manière générale, sur le web, je trouve qu’il manque des outils d’analyse fondamental sur les actions. On trouve plétore d’outils d’analyse graphique mais peu sur le fondamental. Ce forum est pour moi ce qui se fait de plus pointu en termes de partage sur les analyses fondamentales.
FrankChalmers a écrit :
Votre processus semble très intéressant en tout cas, j’espère pouvoir faire de même mais il va déjà falloir que j’enrichisse ma base de données avec les informations fondamentales (vous les collectez où, directement sur les sites des sociétés je suppose ? quid du parsing des documents ?), jusqu’à présent je ne l’ai fait qu’à la main et pour une poignée de sociétés dans lesquelles je songeais justement investir… et surtout, que je m’instruise convenablement sur les méthodes - j’ai déjà parcouru le site des daubasses et bien que je pense avoir saisi les principes généraux, il vaut mieux que je lise les classiques sur le sujet avant de me jeter dans le code
Les cours sont faciles à récupérer : même Euronext les donnent à télécharger en CSV depuis son site. Pour les données fondamentales, c’est une toute autre histoire. C’est un très gros travail de collecte/vérification/correction de données qui est nécessaire et ceux qui le font vendent l’accès à leur base : stockopedia, bloomberg… Évidemment, une partie des données est accessible publiquement mais il est interdit d’écrire, et encore moins de diffuser, des scrapers pour ces sites.
Quant à la source de données à choisir, cela a déjà été discuté dans le fil « Extraire dans un fichier les données fondamentales des actions ? », ça devrait vous intéresser.
Cela ne vous empêche pas de publier toutes vos applis en libre/open-source mais je pense qu’il faut isoler dans un module à part le scraping (une classe à implémenter pour récupérer les données fondamentales étant donné un ISIN ou un ticket) et laisser l’implémentation vide par défaut, à charge à chacun de trouver une façon. (ce qui n’empêche pas de faire circuler les implémentations réelles des scrapers par ailleurs sur des canaux plus discrets ?…)
Dernière modification par Gog (22/08/2017 09h25)
Hors ligne
#13 22/08/2017 09h16
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
@Silicon
Ce serait sans doute plus simple en effet, mais les seules données en libre accès que j’ai trouvées dans ce format concernent le forex et les actions américaines, dont les données historiques semblent bien plus aisément accessibles que celles des actions européennes. Si vous connaissez une source de données convenable en plus ou moins libre accès (il faut des clients spécifiques pour celles que vous indiquez), cela faciliterait considérablement l’ouverture éventuelle du code et je m’empresserais donc de l’implémenter
J’entrevois quelques bémols avec les logiciels que vous citez : ils semblent tourner uniquement sous Windows (que je n’utilise pas), et je ne fais pas d’intraday. Je ne doute pas des capacités de programmation des logiciels de trading professionnels, je sais qu’ils sont scriptables selon des critères techniques plus ou moins alambiqués mais je ne suis pas sûr qu’ils puissent utiliser des algorithmes génétiques ou des réseaux de neurones ni de leurs capacités hors intraday, je serais ravi d’être détrompé cependant.
Notez que je n’exclus pas de faire de l’intraday un jour (via un algorithme qui sera sans doute bien plus efficace que moi), mais j’ai une activité à temps plein en journée ce qui me semble incompatible avec de l’intraday. Par curiosité, combien de temps consacrez vous à vos trades quotidiens ?
@Gog
Merci pour le fil, je vais aller lire ça
Il serait en effet envisageable de laisser des squelettes pour les scrapers, le code étant déjà entièrement modularisé sous forme de classes cela ne devrait pas poser trop de problèmes. Je vais y réfléchir.
Hors ligne
#14 22/08/2017 10h17
- pvbe
- Membre (2010)
Top 50 Actions/Bourse
Top 50 Finance/Économie - Réputation : 239
Pour les données fondamentales, je les scrappe avec Beautiful Soup depuis WSJ
5 dernières années et 5 derniers trimestres y compris les valeurs européennes.
A ma connaissance en gratuit, 5 ans est la plus longue période que l’on peut trouver
Hors ligne
#15 22/08/2017 11h30
- doubletrouble
- Membre (2016)
Top 50 Année 2024
Top 20 Année 2023
Top 5 Année 2022
Top 10 Portefeuille
Top 5 Dvpt perso.
Top 10 Expatriation
Top 10 Vivre rentier
Top 10 Actions/Bourse
Top 5 Invest. Exotiques
Top 10 Crypto-actifs
Top 50 Entreprendre
Top 5 Finance/Économie
Top 50 Banque/Fiscalité
Top 50 Immobilier locatif - Réputation : 1168
Hall of Fame
“INTJ”
@Gog : maintenir une copie des dépendences dans le tree n’est pas si crado ou ennuyeux que vous l’imaginez, il suffit d’utiliser les submodules avec git (ou subrepos avec mercurial, mon DVCS préféré).
@FrankChalmers : le backoffice est réalisé avec Django, les webservices avec Falcon (Falcon - The minimalist Python WSGI framework). Le front de démo est lui aussi réalisé avec Falcon + Tenjin (Tenjin - the fastest template engine in the world - kuwata-lab.com), mais on pourrait mettre n’importe quoi capable de s’interfacer avec une api REST.
✯ Mangia bene, caca forte, e non aver paura della morte.
Hors ligne
1 #16 22/08/2017 16h09
- Silicon
- Membre (2015)
- Réputation : 61
@ FrankChalmers
Je suis trés différents de la majeure partie des membres du forum , trade depuis 30 ans et en vit depuis 15 ans (passant du daytrading sur future au swingtrading) , la partie accumulation du capital est terminée, il me faut juste qu’il ait un certain rendement pour assurer une paye régulière.
Mon approche est uniquement technique… approche par secteurs.. money management…seulement les gros titres (une dizaine) ou ETF nord américains … des in/out…, donc le fondamental ne me sert pas a grand chose. Je ne cherche plus les petits titres sous evalués qui vont exploser.
Si le technique vous interesse tant soit peu , je ne peux que vous recommander la lecture de: Trading Systems and Methods (Wiley Trading): Perry J. Kaufman , sur le paquet de livres d’AT que j’ai (40-50 ?), c’est le meilleur et de trés loin.
J’ai consacré bien trop de temps à peaufiner la méthode (graphiques) , mais maintenant c’est ok , je regarde l’ouverture et un peu avant la fermeture , l’heure du midi si je veux entrer sur un titre , de plus la plupart du temps quand j’achète je place l’ordre de vente..je suis beaucoup support/resistances pour mes in/out.
La fidélité est souhaitable en amour , mais elle est une tare sur les marchés.
Hors ligne
#17 22/08/2017 20h38
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
@pvbe
Intéressant ! J’ai vu que vous en parliez dans la file indiquée par Gog d’ailleurs, très complète
@doubletrouble
Je ne connaissais pas Falcon ni Tenjin, je garde ça dans un coin de ma tête… Falcon surtout semble très agréable à utiliser
@Silicon
En effet, mais ça n’en rend pas moins votre approche moins intéressante pour autant
Vous confirmez ce que je soupçonnais en ayant analysé le comportement de quelques stratégies que j’avais implémentées et backtestées, il vaut mieux se concentrer sur quelques gros titres extrêmement volatils et liquides… j’ai bien noté la référence, ce sera probablement le second livre que j’achèterais sur kindle du coup.
Vos heures semblent correspondre à ce que j’ai pu observer en suivant les progressions intraday de grosses actions, c’est intéressant. Il faudra que je me procure des données plus "bas niveau" (sans forcément descendre jusqu’aux ticks, OHLCV par tranches de une minute devraient peut être suffire… sinon ça devient du HFT) pour entrainer mes réseaux de neurones, en temps utile…
Hors ligne
#18 22/08/2017 21h38
- Silicon
- Membre (2015)
- Réputation : 61
@ FrankChalmers
Avant de monter tout un système de trading, il serait bon de définir vers quoi vous vous dirigez…
L’investissement tel que pratiqué ici , les données fondamentales sont importantes pour analyser les titres et les cotes journalières suffisent.
Le scalping intraday avec disons 150 trades par jour , toujours sur le même titre , les cotes en ticks et les détails sur les positions des market makers..
Entre les deux il y a une foule de techniques et de méthodes allant du trés court terme au swingtrading de quelques jours.
Je dirais que plus c’est court, plus c’est risqué et demande des connaissances de trading, un peu comme la conduite en rallye demande plus que la récente obtention du permis de conduire….Si c’etait facile, on serait tous riches..
Une technique bien expliquée ici est celle de Miguel sur la vente de put….A lire et relire tant qu’a moi..
La fidélité est souhaitable en amour , mais elle est une tare sur les marchés.
Hors ligne
#19 22/08/2017 21h47
- blackfalcon
- Membre (2015)
- Réputation : 32
FrankChalmers a écrit :
Tout d’abord, merci à tous pour vos retours
@blackfalcon
Quels autres langages, par curiosité ? J’en ai essayé plusieurs avant de me fixer sur le python, tellement déroutant de simplicité qu’il rend le complexe trivial, c’est vraiment un langage qui vaut le coup d’y investir un peu de temps
Je n’ai pas vraiment réfléchi à la question de la publication, d’autant que sans base de données il n’a pas vraiment d’intérêt autre que didactique… disons que ça reste un sujet ouvert.
En effet pour les cryptos, c’est ce qu’on m’a expliqué. Il faudrait que je m’y plonge pour me forger un vrai avis sur le sujet, pour le moment je suis assez ambivalent sur ces monnaies et me contente de les suivre de loin, considérant que c’est une variante à la mode du forex, la liquidité en moins…
Comme beaucoup de gens dans le domaines: plein de langages differents en étant étudiant puis en travaillant: depuis des classiques (C/C++/Java/PHP/javascript/MySQL) jusqu’a des choses plus obscurs (langauge d’IA/systeme expert, base de donnée NoSQL/Document, langage Golang (excellent malheureusement assez peu présent en France).
Je commence péniblement le python (ayant un métier moins dev et moins de temps à y consacrer), d’ou un interet particulier pour votre projet!
Parrainage Boursorama, Mes placements, Bourse Direct & Binck sur demande [MP]
Hors ligne
#20 22/08/2017 23h42
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
Silicon a écrit :
Avant de monter tout un système de trading, il serait bon de définir vers quoi vous vous dirigez…
J’en suis bien conscient, désolé si mes messages prêtent à confusion… actuellement la (petite !) partie de mon capital que j’ai allouée à la bourse est investie à long terme et non "jouée", d’où mon intérêt à inclure les données fondamentales dans Prolix : actuellement quand je repère un titre qui semble prometteur je dois aller vérifier manuellement les chiffres et trouver les documents utiles, autant ne pas avoir à quitter le logiciel… et inversement, cela me permettrait de constituer une liste de titres "à surveiller", pourquoi pas avec des notifications automatiques… j’aime automatiser
D’un autre côté, étudiant actuellement divers algorithmes d’intelligence artificielle j’ai envie de les tester dans un environnement contrôlé et voir ce qu’ils parviennent à faire. Je n’ai pas l’intention de jouer "pour de vrai" sans savoir ce que je fais, ce serait suicidaire… néanmoins votre retour d’expérience est intéressant.
Deux choses différentes donc, pour le moment du moins.
blackfalcon a écrit :
langage Golang (excellent malheureusement assez peu présent en France)
J’ai quelques collègues férus de ce langage Moi même je serais relativement intéressé si je n’avais pas tout ce qu’il me faut en Python…
Langages d’IA, vous parlez de Prolog ou Lisp je suppose ? Sinon vous savez, je ne suis pas développeur non plus
Hors ligne
#21 01/02/2018 09h24
- makol76
- Membre (2018)
- Réputation : 1
@franckchalmers
ouaouh c’est beau !
j’en suis encore à comprendre comment marche le python. Et quand je regarde les docs de beautifulsoup par exemple, je ne comprends pas grand chose. Bon, je ne suis pas développeur, je n’en ai que peu fait pendant mes études, mais je pensais naïvement qu’avec mes bases VB6 j’arriverai à sortir un truc.
Le langage python en tant que tel semble effectivement simple. C’est l’environnement que j’appréhende moins (peu de compétences en linux, surtout du Windows). Et les scrapers sont vraiment très abscons pour moi. Par hasard, avez vous des sites à conseiller pour un apprentissage à peu près efficace du python pour des applications comme celles là ? j’ai essayé quelques MOOC, mais ça reste assez bas niveau pour le coup (définition de variables, de boucles, conditions…) et ce n’est pas là que c’est le plus difficile…
et je partage les posts de certains autres avant moi, à quand une diffusion ? ne serait ce que pour comprendre la programmation déjà !
merci à vous de partager un tel travail !
si je vends, achetez. Si j'achète, vendez !!
Hors ligne
#22 02/02/2018 02h18
- FrankChalmers
- Membre (2017)
- Réputation : 15
“INTP”
@makol76 Merci
Python (dans sa version 3) est un excellent langage, à la fois extrêmement simple à appréhender tout en permettant de faire des choses bien complexes, je ne peux que vous inviter à poursuivre vos investigations ! Je ne suis moi même pas développeur, bien que mon secteur m’amène fréquemment à développer je peux donc vous confirmer que Python s’apprend aisément, surtout si vous avez déjà tâté d’autres langages (VB6, hou ça remonte ça ! :p).
Je ne saurais trop m’exprimer sur la partie Windows, n’utilisant plus ce système que pour lancer des jeux de temps en temps. Toutefois je sais qu’il est possible de faire sous Windows à peu près tout ce qu’on fait depuis un Linux, que ce soit de l’intelligence artificielle ou des interfaces graphiques (ou un mix des deux, comme Prolix). Par exemple sentdex utilise fréquemment Windows dans ses (très bons) tutoriels, si vous aimez les vidéos vous devriez y trouver votre bonheur - il a notamment fait plusieurs tutoriels sur le trading algorithmique, et ne reprend pas systématiquement les bases (variables, boucles…) pour se concentrer sur le sujet de la vidéo. Ça se regarde facilement en accéléré, aussi… astuce pour gagner du temps, on peut toujours revenir en arrière et ralentir sur les passages difficiles éventuels
À voir donc, même si à mon avis un Linux offre un bien meilleur environnement de développement/travail je ne pense pas qu’il y aurait de trop gros freins à une utilisation "intensive" sous Windows. Il faudra surtout trouver un éditeur de code décent en fait, je n’ai aucune idée de l’offre de ce côté (mais les gens semblent bien aimer SublimeText, il me semble).
Après tout n’est pas trivial, bien entendu. Les graphes de Prolix sont générés par matplotlib, et j’ai passé un certain temps à me former sur cette librairie (la doc officielle dispose d’exemples détaillés avec lesquels jouer pour appréhender les concepts) et parfois même à lire et patcher son code source (merci au "monkey patching", qui m’aura épargné la maintenance d’un fork local !), mais le résultat en vaut clairement la peine. Nettement plus que mes premières tentatives qui utilisaient un canvas pour peindre directement les éléments, en tout cas
Le scraping est un autre domaine relativement ardu, comme vous le soulevez. J’utilise BeautifulSoup pour scraper les pages web bien entendu (pour les pdf… puissiez vous n’avoir jamais à scraper de pdf !), je n’ai plus les docs que j’avais utilisées en plus de la doc officielle mais ce tutorial semble plutôt bien pour permettre de se lancer. Personnellement je GET la page désirée avec requests, j’enregistre dans un fichier le résultat de soup.prettify() et je me base sur ça pour savoir comment coder mon scraper (chercher tel div avec telle classe, etc). C’est fastidieux, il vaut mieux blinder le code d’assert pour détecter immédiatement les conditions anormales (suite à un changement dans le HTML, généralement) mais ça se fait assez simplement avec un peu d’habitude.
Dernier point et non des moindres, l’interface graphique. J’ai choisi d’utiliser le module de base tkinter, parce qu’il était immédiatement disponible et que son objet Canvas est vraiment plein de possibilités. Mais tout comme matplotlib il faut un certain temps à investir pour se former, voir ce tutorial pour des bases rapides et ce lien pour une référence exhaustive et accessible (une fois qu’on sait de quoi ça parle), bien plus que les docs de tk officielles en tout cas. Les choses sont vraiment devenues amusantes lorsque j’ai fait cohabiter tkinter, matplotlib, psycopg2 (librairie d’accès à ma base de données) et asyncio (n’essayez pas ça chez vous !)…
On ne la voit pas car elle travaille en arrière plan, mais certaines parties auraient été bien compliquées sans la merveilleuse librairie pandas, si vous comptez faire de l’analyse et des calculs sur les cours, je vous conseille de vous y intéresser.
Pour la diffusion, il faut voir. J’ai choisi de placer tout mon code sous license BSD, mais sans la base de données il ne sera même pas possible de le lancer (nonobstant le fait que je ne l’ai jamais testé que sous mon Linux, il va donc falloir que je trie mes dépendances pour que vous puissiez au moins avoir l’environnement nécessaire, sans garantie pour Windows ou Mac par exemple), ce qui réduit pas mal son intérêt… peut être avec un mode spécial "démo" et quelques CSV exportés pour l’occasion (disons un indice, un tracker, une action + ses dividendes pour voir un peu tous les onglets), ou sinon via Google/Yahoo Finance pour avoir des données plus fraîches… si vous avez des idées de sources librement accessibles, que je puisse tester leurs CSV (idéalement au format date;open;high;low;close;volume je pense, avec le nom en ${ISIN}.csv par exemple), je suis preneur pour tenter une intégration. J’aimerais éviter que le code ouvert et mon code local ne divergent trop, sinon les contributions vont être difficiles à gérer
Un dernier "truc" : passez votre navigateur en anglais (au moins pour les entêtes) pour pouvoir utiliser Google US, qui vous renverra souvent (mais pas toujours !), sur StackOverflow. Pour tout ce qui est recherches orientées programmation les résultats sont bien plus faciles à trouver in english, de mon expérience. En désespoir de cause, n’hésitez pas
Hors ligne
#23 02/02/2018 04h29
- parentier
- Membre (2013)
Top 50 Expatriation - Réputation : 108
Holala, je découvre ce fil… je suis quasi-débutant en programmation, et depuis quelques temps je me suis mis en tête de faire mon propre screener avec Python. Les fonctions seraient assez simples:
- récupération des données comptables
- calcul de formules personnalisées
- exporter dans un fichier excel ou google sheet
Sachant que je fais ça sur mon maigre temps de loisir, combien de temps vais-je galérer avant d’y parvenir à votre avis?
A mon grand dam
Hors ligne
#24 02/02/2018 06h49
- makol76
- Membre (2018)
- Réputation : 1
@franckchalmers
merci beaucoup pour cette réponse très complète ! oui, VB6…j’ai pas non plus dit que j’étais jeune ! Je me suis formé à la programmation quasi tout seul il y a un peu plus de 20 ans, et VB6 étant franchement sympa et simple. En plus je l’ai appris dans le cadre d’un stage pour réaliser un transfert de Fortran vers VB6 pour des problèmes de maintenabilité de matériel… bref.
Depuis, je me suis intéressé à quelques langages, mais en dilettante, sans réel projet : PHP, VB.Net et maintenant python, mais cette fois ci avec un projet. J’ai aussi abandonné l’idée de Scrapy que je ne comprends absolument pas pour beautifulsoup il y a 2 jours, beaucoup plus à ma portée.
Je n’envisage même pas un soft du niveau de prolix. Et si je devais, je pense que je passerai l’interface graphique et les BD sur VB.Net, plus simple à appréhender graphiquement parlant. Maintenant, les SGBD, c’est une autre histoire, je reste coi devant la création de table, les relations 1-n etc etc…Et la lecture de sites, en anglais ou français ou autre ne m’aide pas, ça coince dans ma petite tête, un truc de concept que je n’avale pas. bref encore.
Je vais attentivement regarder vos sources, et oui, j’ai aussi fouillé les sites en anglais, très riches. Mais merci du tuyau ! et encore une fois bravo !
@parentier
hum difficile de dire sans connaitre vos bases, ni votre facilité à appréhender les concepts de la programmation. Pour ma part, VB6 à l’époque où j’étais jeune et vif d’esprit, je l’ai appris en quelques jours et en moins de 2 mois je réalisais un programme qui recevait des données analogiques du terrain, les calculait et les ressortait sous forme de graphique dynamique. Donc la base du python, j’ai mis moins de 4h pour l’apprendre et la comprendre, grâce notamment aux MOOC en français de openclassroom. Mais pour de choses comme scrapy ou beautifulsoup, j’en suis à 8h et ça ne rentre toujours pas…et comme je le disais à Franckchalmers, si on parle de SGBD, au bout de 10j de lecture, je reste hermétique !
Les MOOC pour la base sont donnés pour une durée de 40h, ça semble raisonnable de partir là dessus. Ensuite, ça dépend de vos capacités propres, et lire l’anglais sera un vrai plus.
bon courage en tout cas. Si j’arrive à pondre un truc, je le mettrai à disposition
si je vends, achetez. Si j'achète, vendez !!
Hors ligne
#25 03/02/2018 01h28
- parentier
- Membre (2013)
Top 50 Expatriation - Réputation : 108
Pas de problème pour l’anglais, et je suis de la branche des matheux, les concepts de programmation ne me posent pas trop de souci. Je vais continuer ce que j’étais en train de faire sur code academy, et je vais regarder les MOOC. (et après je reviendrai lire en détail ce fil)
A mon grand dam
Hors ligne
Nouveau venu dans cette longue discussion ?
Consultez une sélection des messages les plus réputés en cliquant ici.
Discussions peut-être similaires à “la programmation python et les ih”
Discussion | Réponses | Vues | Dernier message |
---|---|---|---|
6 | 2 969 | 11/04/2024 15h10 par dorm | |
85 | 25 992 | 27/03/2024 15h27 par Oblible | |
14 | 4 210 | 02/12/2021 16h51 par Pilchard | |
24 | 13 136 | 20/04/2019 12h50 par delta | |
3 | 2 951 | 11/03/2013 17h46 par crosby | |
897 | 286 914 | 19/10/2024 21h12 par franck1127 | |
419 | 181 099 | 01/10/2024 11h38 par Loustouille |