Bonjour à tous,
intéressé par le trading automatique, je suis fraichement inscrit sur
la liste. Je voudrais tout d'abord vous remercier pour le travail que
vous avez effectué. Ca m'est vraiment utile.
Je suis actuellement étudiant donc je ne suis pas près d'avoir de
l'argent à perdre en bourse... ou à investir dans des logiciels
payants. Etant donné que j'ai par conséquent du temps devant moi avant
d'investir, je vais essayer de le mettre à profit en alliant l'utile à
l'agréable. Au moins si je ne mets jamais le moindre centime en
bourse, j'aurai appris à programmer...
Je viens de faire marcher DIYTrader et je vais analyser tout ça.
J'espère en tout cas qu'il y aura une suite...
Encore merci à vous,
Nicolas
Bonjour,
Ayant le projet de proposer un support à domicile autour des logiciels
Open Source écrits en Java, je poste ce questionnaire.
Merci de bien vouloir prendre le temps de me répondre.
1- Seriez-vous intéressé par une offre de service payante autour des
logiciels boursiers Open Source Java, à travers internet ( échange
d'e-mails )?
2- Seriez-vous intéressé par une offre de service payante autour des
logiciels boursiers Open Source Java, à votre domicile sur votre
ordinateur ?
ATTENTION l'ensemble des services enumérés dans la suite de ce
questionnaire se déroulent chez vous avec votre ordinateur.
Si vous avez répondu oui à la seconde question :
Seriez-vous intéressé par :
A-Une présentation des différents logiciels boursiers Open Source Java ?
B- Uu support à l'utilisation d'un logiciel Open Source Java ?
Si oui lequel ?
Pour réaliser quelles taches ?
C- Un support à la compilation d'un logiciel Open Source Java ?
Si oui lequel ?
D- Un support au développement d'un indicateur technique en Java ?
Si oui cet indicateur devra être utilisé avec quel logiciel ?
D- Un support au développement d'un système de trading en Java ?
Si oui ce système de trading devra être intégré à quel logiciel ?
E- L'ajout ou la modification d'une fonction ?
Si oui pour quel logiciel ?
Merci de prendre le temps de me répondre.
Bonjour,
J'ai créé un nouveau groupe Google pour présenter mon activité de
support, formation et développement, autour des logiciels boursiers
Open Source Java.
http://groups.google.fr/group/agile-trader-fr
L'inscription à ce nouveau groupe est gratuite.
Je pense y stocker des documents et tutoriaux, exclusivement
disponibles dans ce groupe.
L'accès à ces documents étant gratuit pour les inscrits au groupe.
Cordialement,
Pierre Rougier
Bonsoir,
Je vous informe de la disponibilité d'un nouveau programme.
JTST001-import.zip
C'est un programme minimaliste d'import de quotations d'un fichier
texte dans une base de données HSQLDB.
Ce programme n'a qu'un but pédagogique.
C'est un premier jet.
Il manque la documentation.
Pour pouvoir télécharger ce nouveau programme il suffit de s'incrire à
ce groupe :
http://groups.google.fr/group/agile-trader-fr
L'inscription est gratuite.
Le fichier JTST001-import.zip se trouve dans la partie Fichiers du groupe.
Cordialement,
Pierre Rougier
Bonjour,
Je viens d'uploader dans la section Fichiers de mon groupe :
http://groups.google.fr/group/agile-trader-fr?hl=fr
un fichier zip.
IBAPIStep001.zip
L'accès au groupe Agile Trader Fr est gratuite, mais demande une
inscription
IBAPIStep001 est un programme très très court, de connexion à
Interactive Brokers par un programme Java.
Ce programme est un programme en ligne de commande, et ne fait que se
connexter à IB.
Son objectif est d'être plus facilement compréhensible par un
programmeur Java débutant, que l'exemple Java fourni par IB
Présentation :
Interactive Brokers est un courtier boursier par internet qui permet à
ces clients de développer leur propres add-on en utilisant ses API.
http://www.interactivebrokers.com/en/main.php
Sans être client d'IB je pense qu'il vous est possible de télécharger
l'ensemble des fichiers nécessaires pour executer le programme.
Si ce n'est pas le cas merci de me le signaler.
Télécharger la version Standalone de TWS :
http://www.interactivebrokers.com/en/control/twscontrol.php?ib_entity=fr
Télécharger également les API :
http://www.interactivebrokers.com/en/control/apicontrol.php?ib_entity=fr
Mot de passe pour le compte demo :
User name : edemo
Passeword : demouser
L'installation de InstallAX.exe qui fourni un accès aux API d'IB,
installe également une application exemple TestJavaClient.
Cette application exemple TestJavaClient , a entre autre une fonction
de connexcion.
Mon programme réalise la même chose que ce que fait la fonction
"Connect" du programme TestJavaClient.
Mais sans toutes les autres fonctions, et sans l'interface graphique
de TestJavaClient.
Pierre
salut, quelqu'un aurait-il un programme java pour l'optimisation du
portefeuille, g lu quelque part qu'on pouvait le faire par l'algorithme
du simplexe. merci de me repondre
Bonjour,
Je viens d'uploader dans la section Fichiers de mon groupe :
http://groups.google.fr/group/agile-trader-fr?hl=fr
un fichier zip.
IB-API-FB.zip
L'accès au groupe Agile Trader Fr est gratuite, mais demande une
inscription
IB-API-FB.zip est une nouvelle version de IBAPIStep001.zip.
Voir historique des modifications en fin de mail.
IB-API-FB.zip est composé de deux programmes très très courts, de
connexion à
Interactive Brokers par un programme Java.
Historique des modifications :
step001 :
Ajout de socket.eDisconnect();
Si le programme n'avait pas été correctement terminé dans Eclipse, les
tentavive de sa relance provoquait une exception.
step002 :
Ajout d'une class EWrapperAdapter, pour ne pas faire apparaitre dans
IBAPIStep002 les fonctions inutilisées.
Bonjour myoume31
Pour optimiser un portefeuille, il faut construire une matrice
variance-covariance.
Je sais faire en vba sur excel, mais je ne maîtrise pas suffisamment
java pour programmer un système de Markowitz.
Ceci étant dit, il y a une application qui pourrait être utilisée en
exemple : http://homepage.mac.com/j.norstad/finance/PortOpt.jar
Il y a un bug dans les exemples, il faut remplacer les « , » par
des « . »
Le site de John Norstad'
http://homepage.mac.com/j.norstad/finance/#portopt
en fait, je me suis mis à java dans l'intention de créer un programme
d'optimisation de portefeuille, en téléchargeant les données sur
yahoo et en les utilisant pour tracer la droite d'efficience et au
passage pour calculer le ratio de sharpe…
autodidacte, je ne suis pas suffisamment à l'aise en java pour me
débrouiller seul
si tu arrives à utiliser cet exemple et que tu acceptes de partager
ton travail, je suis preneur.
:-))
albert
--- Dans JavaBourse@..., "myoume31" <myoume31@...> a
écrit :
>
> salut, quelqu'un aurait-il un programme java pour l'optimisation du
> portefeuille, g lu quelque part qu'on pouvait le faire par
l'algorithme
> du simplexe. merci de me repondre
>
la programmation java est, entres autres, rattaché à mon domaine professionnel, ce qui fait que, selon mes maigres disponibilités, je peux aider à élaborer un programme d'optimisation. En quoi consiste une telle optimisation ?
Dans le lien que tu indiques, il ne s'agit que des binaires, difficilement exloitables sous cette forme. Aurais-tu des liens qui traitent de la partie algorithmique du principe ?
Chris.
To: JavaBourse@... From: alai4285@... Date: Mon, 3 Sep 2007 14:01:31 +0000 Subject: [JavaBourse] Re : Connaissez-vous un ou des projets boursiers open source en Java ?
Bonjour myoume31
Pour optimiser un portefeuille, il faut construire une matrice
variance-covariance.
Je sais faire en vba sur excel, mais je ne maîtrise pas suffisamment
java pour programmer un système de Markowitz.
en fait, je me suis mis à java dans l'intention de créer un programme
d'optimisation de portefeuille, en téléchargeant les données sur
yahoo et en les utilisant pour tracer la droite d'efficience et au
passage pour calculer le ratio de sharpe…
autodidacte, je ne suis pas suffisamment à l'aise en java pour me
débrouiller seul
si tu arrives à utiliser cet exemple et que tu acceptes de partager
ton travail, je suis preneur.
:-))
albert
--- Dans JavaBourse@yahoogroupes.fr, "tintin922002"
<tintin922002@...> a écrit :
>
> Bonjour,
>
> Connaissez-vous un ou des projets boursiers open source en Java ?
> Si oui, quels sont ces projets ?
> Que pensez-vous de ces projets ?
> Utilisez-vous un de ces logiciels règulierement ?
>
> Tintin92
>
Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail et bénéficiez d'un filtre antivirus gratuit ! Windows Live Hotmail
Bonjour Chris,
Merci pour cette proposition.
Je pensais qu'il pouvait être possible d'exploiter les classes
contenues dans le .jar. Mais il est vrai qu'il faut connaître les
principes de l'optimisation de portefeuille avant d'envisager une
programmation. (je crois que l'essentiel se trouve dans le package
cern.colt.bitvector;)
Je vais essayer de donner des explications simples et complètes.
L'optimisation d'un portefeuille consiste en la recherche de la
combinaison optimum de titres du marché pour obtenir un rendement
maximum en fonction du risque.(on peut aussi chercher le portefeuille
présentant le risque le plus faible, dans ce cas le rendement sera
certainement très faible)
Le rendement est la différence entre la valeurs acquise aujourd'hui
et celle d'hier, celle-ci étant cumulée pour chaque jours sur la
période choisie.
Le risque est calculé avec la variance
http://viking.som.yale.edu/will/finman540/classnotes/class1.html
il faut tenir compte de la corrélation entre les titres et de leur
variance pour déterminer la variance du portefeuille (et donc son
risque) et la frontière d'efficience permet de trouver le rendement
du portefeuille en fonction de son risque.
il faut également déterminer le poids des titres dans le
portefeuille, pour asuurer une diversification correcte, sachant
qu'il faut éviter de mettre plusieurs titres fortement corrélés.
http://viking.som.yale.edu/will/finman540/classnotes/class2.html
pour une application en vba :
http://www.geocities.com/mikesvba/Portfolio.htm
exemples excel
http://www.spreadsheetmodeling.com/Portfolio%20Optimization%20-%
20Dynamic%20Chart.xls
http://www.spreadsheetmodeling.com/Portfolio%20Optimization%20-%
20Many%20Assets.htm
http://www.gummy-stuff.org/Efficient-Frontier.htmhttp://marshallinside.usc.edu/simrohoroglu/teaching/543/spring2002/mar
kowitzexample.xls
un exemple avec une matrice de corrélation, une matrice covariance,
une matrice avec le poids des titres et un graphique courbe
d'efficience – historiques de cours dans « Dow Stocks for Problem »
nous donne la moyenne et l'écart-type. Synthèse dans la feuille «
Portfolio »
je crois que cet exemple est le plus adapté pour comprendre comment
construire un programme en java (pour un spécialiste en informatique)
http://highered.mcgraw-
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
xls
j'espère qu'avec ces informations il sera possible de construire un
programme java
:-))
ps : je maîtrise mal la manipulation de ce site, ce qui fait que j'ai
envoyé une réponse dans cette file au lieu d'envoyer dans [java]
optimidation du portefeuille
si on poursuit cette étude, il serait peut-être judicieux de
continuer dan la file initiée par myoume31
cordialement
albert
--- Dans JavaBourse@..., Chris Camel <casse_bonbon31@...>
a écrit :
>
>
> Bonjour,
>
> la programmation java est, entres autres, rattaché à mon domaine
professionnel, ce qui fait que, selon mes maigres disponibilités, je
peux aider à élaborer un programme d'optimisation. En quoi consiste
une telle optimisation ?
>
> Dans le lien que tu indiques, il ne s'agit que des binaires,
difficilement exloitables sous cette forme. Aurais-tu des liens qui
traitent de la partie algorithmique du principe ?
>
> Chris.
>
> To: JavaBourse@...
> From: alai4285@...
> Date: Mon, 3 Sep 2007 14:01:31 +0000
> Subject: [JavaBourse] Re : Connaissez-vous un ou des projets
boursiers open source en Java ?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Bonjour myoume31
>
>
>
> Pour optimiser un portefeuille, il faut construire une matrice
>
> variance-covariance.
>
> Je sais faire en vba sur excel, mais je ne maîtrise pas suffisamment
>
> java pour programmer un système de Markowitz.
>
>
>
> Ceci étant dit, il y a une application qui pourrait être utilisée en
>
> exemple : http://homepage.mac.com/j.norstad/finance/PortOpt.jar
>
>
>
> Il y a un bug dans les exemples, il faut remplacer les « , » par
>
> des « . »
>
>
>
> Le site de John Norstad'
>
> http://homepage.mac.com/j.norstad/finance/#portopt
>
>
>
> en fait, je me suis mis à java dans l'intention de créer un
programme
>
> d'optimisation de portefeuille, en téléchargeant les données sur
>
> yahoo et en les utilisant pour tracer la droite d'efficience et au
>
> passage pour calculer le ratio de sharpe…
>
>
>
> autodidacte, je ne suis pas suffisamment à l'aise en java pour me
>
> débrouiller seul
>
>
>
> si tu arrives à utiliser cet exemple et que tu acceptes de partager
>
> ton travail, je suis preneur.
>
>
>
> :-))
>
>
>
> albert
>
>
>
> --- Dans JavaBourse@..., "tintin922002"
>
> <tintin922002@> a écrit :
>
> >
>
> > Bonjour,
>
> >
>
> > Connaissez-vous un ou des projets boursiers open source en Java ?
>
> > Si oui, quels sont ces projets ?
>
> > Que pensez-vous de ces projets ?
>
> > Utilisez-vous un de ces logiciels règulierement ?
>
> >
>
> > Tintin92
>
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _________________________________________________________________
> Téléchargez gratuitement l'économiseur d'écran Les Simson Le film !
>
http://specials.divertissements.fr.msn.com/lessimpsonlefilm/economiseu
r.aspx
>
Très bien, merci pour les liens de documentation. J'avoue ne pas être rentré dans le détail, mon bagage étant un peu lointain pour assimiler rapidement la totalité.
Cependant de ce que j'en ai lu, je ne vois pas de difficultés particulières. Ainsi, d'après http://marshallinside.usc.edu/simrohoroglu/teaching/543/spring2002/mar
kowitzexample, j'ai élaboré un programme qui réalise les différents calculs. En l'état actuel, je produis en sortie les déviations standards et moyennes de rendement, ainsi que les matrices de variance et de covariance à l'image du fichier excel. Cela n'a posé aucun problème particulier car s'appuyant sur un socle mathématique classique et avec le recours d'une lib approprié ca n'en a eté que plus aisé. L'étape suivante portera sur le portefeuille proprement dit, avec la prise en compte des poids...
Chris.
To: JavaBourse@... From: alai4285@... Date: Tue, 4 Sep 2007 13:54:12 +0000 Subject: [JavaBourse] Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
Bonjour Chris,
Merci pour cette proposition.
Je pensais qu'il pouvait être possible d'exploiter les classes
contenues dans le .jar. Mais il est vrai qu'il faut connaître les
principes de l'optimisation de portefeuille avant d'envisager une
programmation. (je crois que l'essentiel se trouve dans le package
cern.colt.bitvector;)
Je vais essayer de donner des explications simples et complètes.
L'optimisation d'un portefeuille consiste en la recherche de la
combinaison optimum de titres du marché pour obtenir un rendement
maximum en fonction du risque.(on peut aussi chercher le portefeuille
présentant le risque le plus faible, dans ce cas le rendement sera
certainement très faible)
Le rendement est la différence entre la valeurs acquise aujourd'hui
et celle d'hier, celle-ci étant cumulée pour chaque jours sur la
période choisie.
il faut tenir compte de la corrélation entre les titres et de leur
variance pour déterminer la variance du portefeuille (et donc son
risque) et la frontière d'efficience permet de trouver le rendement
du portefeuille en fonction de son risque.
il faut également déterminer le poids des titres dans le
portefeuille, pour asuurer une diversification correcte, sachant
qu'il faut éviter de mettre plusieurs titres fortement corrélés.
un exemple avec une matrice de corrélation, une matrice covariance,
une matrice avec le poids des titres et un graphique courbe
d'efficience – historiques de cours dans « Dow Stocks for Problem »
nous donne la moyenne et l'écart-type. Synthèse dans la feuille «
Portfolio »
je crois que cet exemple est le plus adapté pour comprendre comment
construire un programme en java (pour un spécialiste en informatique) http://highered.mcgraw-
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
xls
j'espère qu'avec ces informations il sera possible de construire un
programme java
:-))
ps : je maîtrise mal la manipulation de ce site, ce qui fait que j'ai
envoyé une réponse dans cette file au lieu d'envoyer dans [java]
optimidation du portefeuille
si on poursuit cette étude, il serait peut-être judicieux de
continuer dan la file initiée par myoume31
cordialement
albert
.
Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail et gagnez du temps avec l'interface à la Outlook ! Windows Live Hotmail
Bonjour Chris,
Très content que tu aies pu utiliser mes exemples.
J'ai fait quelques recherches sur internet, je ne trouve pas de « lib
approprié » au calcul des variances. C'est bien la preuve qu'il faut
une longue pratique de java pour être à l'aise.
L'intérêt de l'optimisation de portefeuille est de trouver
automatiquement le poids de chaque titres en fonction de son
rendement et de sa variance.
Sur excel, je fais une première sélection des titres qui ont les
rendements les plus élevés par rapport à un benchmark, le Cac 40 par
exemple (ceux donc qui surperforment l'indice –on peu affiner en
recherchant le bêta des titres, le skewness et le kurtosis, mais
c'est une autre histoire), puis j'applique la matrice variance-
covariance, ce qui me donne la meilleure sélection des titres du
marché à un instant donné.
Pour la sélection des titres, il faut préalablement télécharger les
historiques de cours, sur yahoo en fichier texte, par exemple (je
peux expliquer l'adresse url pour une exploitation pour chaque titre
http://ichart.yahoo.com/table.csv?s=%
5EFCHI&d=8&e=6&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv
) , pour ensuite calculer le rendements et l'écart-type (exemple mc
graw hill)
http://highered.mcgraw-
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
xls
Il ne faut pas trop de titres dans le portefeuille, sinon on
s'approche de la valeur de l'indice puisque la diversification a
tendance à lisser les performances et les insuffisances)
La macro Mike's Excel VBA présente l'avantage de déterminer le poids
optimum de chacun des titres dans le portefeuille en fonction de la
variance minimum (risque minimum) et le poids des titres en fonction
du ratio de sharpe rendement et risque optimums)
http://www.geocities.com/mikesvba/Portfolio.htm
peut-être que le code vba te permettra de traduire ces contraintes en
java.
cordialement
albert
--- Dans JavaBourse@..., Chris Camel <casse_bonbon31@...>
a écrit :
>
>
> Très bien, merci pour les liens de documentation. J'avoue ne pas
être rentré dans le détail, mon bagage étant un peu lointain pour
assimiler rapidement la totalité.
>
> Cependant de ce que j'en ai lu, je ne vois pas de difficultés
particulières. Ainsi, d'après
http://marshallinside.usc.edu/simrohoroglu/teaching/543/spring2002/mar
>
> kowitzexample, j'ai élaboré un programme qui réalise les différents
calculs. En l'état actuel, je produis en sortie les déviations
standards et moyennes de rendement, ainsi que les matrices de
variance et de covariance à l'image du fichier excel. Cela n'a posé
aucun problème particulier car s'appuyant sur un socle mathématique
classique et avec le recours d'une lib approprié ca n'en a eté que
plus aisé.
> L'étape suivante portera sur le portefeuille proprement dit, avec
la prise en compte des poids...
>
> Chris.
>
> To: JavaBourse@...
> From: alai4285@...
> Date: Tue, 4 Sep 2007 13:54:12 +0000
> Subject: [JavaBourse] Re : Re : Connaissez-vous un ou des projets
boursiers open source en Java ?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Bonjour Chris,
>
> Merci pour cette proposition.
>
>
>
> Je pensais qu'il pouvait être possible d'exploiter les classes
>
> contenues dans le .jar. Mais il est vrai qu'il faut connaître les
>
> principes de l'optimisation de portefeuille avant d'envisager une
>
> programmation. (je crois que l'essentiel se trouve dans le package
>
> cern.colt.bitvector;)
>
>
>
> Je vais essayer de donner des explications simples et complètes.
>
>
>
> L'optimisation d'un portefeuille consiste en la recherche de la
>
> combinaison optimum de titres du marché pour obtenir un rendement
>
> maximum en fonction du risque.(on peut aussi chercher le
portefeuille
>
> présentant le risque le plus faible, dans ce cas le rendement sera
>
> certainement très faible)
>
>
>
> Le rendement est la différence entre la valeurs acquise aujourd'hui
>
> et celle d'hier, celle-ci étant cumulée pour chaque jours sur la
>
> période choisie.
>
>
>
> Le risque est calculé avec la variance
>
> http://viking.som.yale.edu/will/finman540/classnotes/class1.html
>
>
>
> il faut tenir compte de la corrélation entre les titres et de leur
>
> variance pour déterminer la variance du portefeuille (et donc son
>
> risque) et la frontière d'efficience permet de trouver le rendement
>
> du portefeuille en fonction de son risque.
>
> il faut également déterminer le poids des titres dans le
>
> portefeuille, pour asuurer une diversification correcte, sachant
>
> qu'il faut éviter de mettre plusieurs titres fortement corrélés.
>
>
>
> http://viking.som.yale.edu/will/finman540/classnotes/class2.html
>
>
>
> pour une application en vba :
>
>
>
> http://www.geocities.com/mikesvba/Portfolio.htm
>
>
>
> exemples excel
>
> http://www.spreadsheetmodeling.com/Portfolio%20Optimization%20-%
>
> 20Dynamic%20Chart.xls
>
> http://www.spreadsheetmodeling.com/Portfolio%20Optimization%20-%
>
> 20Many%20Assets.htm
>
>
>
> http://www.gummy-stuff.org/Efficient-Frontier.htm
>
>
>
>
http://marshallinside.usc.edu/simrohoroglu/teaching/543/spring2002/mar
>
> kowitzexample.xls
>
>
>
> un exemple avec une matrice de corrélation, une matrice covariance,
>
> une matrice avec le poids des titres et un graphique courbe
>
> d'efficience – historiques de cours dans « Dow Stocks for Problem »
>
> nous donne la moyenne et l'écart-type. Synthèse dans la feuille «
>
> Portfolio »
>
>
>
> je crois que cet exemple est le plus adapté pour comprendre comment
>
> construire un programme en java (pour un spécialiste en
informatique)
>
> http://highered.mcgraw-
>
>
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
>
> xls
>
>
>
> j'espère qu'avec ces informations il sera possible de construire un
>
> programme java
>
>
>
> :-))
>
>
>
> ps : je maîtrise mal la manipulation de ce site, ce qui fait que
j'ai
>
> envoyé une réponse dans cette file au lieu d'envoyer dans [java]
>
> optimidation du portefeuille
>
>
>
> si on poursuit cette étude, il serait peut-être judicieux de
>
> continuer dan la file initiée par myoume31
>
>
>
> cordialement
>
>
>
> albert
>
>
> .
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _________________________________________________________________
> Téléchargez Windows Live Messenger 8.5 Beta gratuitement !
> http://get.live.com/betas/messenger_betas
>
La bilbiothèque que j'utilise est celle-ci: http://commons.apache.org/math/ La documentation (http://commons.apache.org/math/apidocs/index.html) montre les classes chargées des calculs statistiques, comme http://commons.apache.org/math/apidocs/org/apache/commons/math/stat/descriptive/moment/Mean.html pour le calcul d'une moyenne, ou http://commons.apache.org/math/apidocs/org/apache/commons/math/stat/descriptive/moment/Variance.html pour le calcul d'une variance.
C'est très simple à utiliser, comme tu peux le voir dans l'exemple ci-dessous:
// Données sur lesquelles faire le calcul double[] data = {1.50,12.41,53.11,84.26};
// Opérateur statistique (ici moyenne) UnivariateStatistic op = new Mean();
// Application double result = op.evaluate(data);
// Affichage System.out.println( result );
Tu peux remplacer "new Mean()" par "new Variance()" pour un calcul de la variance.
J'ai travaillé sur la partie chargement des valeurs boursières. Avec ton url yahoo, et pour peu qu'on ait le code de chaque valeur, on peut en récupérer l'historique très simplement afin d'alimenter le moteur d'optimisation.
J'ai une petite question: comment calcule-t-on le rendement d'une action ?
Chris.
To: JavaBourse@... From: alai4285@... Date: Thu, 6 Sep 2007 15:11:01 +0000 Subject: [JavaBourse] Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
Bonjour Chris,
Très content que tu aies pu utiliser mes exemples.
J'ai fait quelques recherches sur internet, je ne trouve pas de « lib
approprié » au calcul des variances. C'est bien la preuve qu'il faut
une longue pratique de java pour être à l'aise.
L'intérêt de l'optimisation de portefeuille est de trouver
automatiquement le poids de chaque titres en fonction de son
rendement et de sa variance.
Sur excel, je fais une première sélection des titres qui ont les
rendements les plus élevés par rapport à un benchmark, le Cac 40 par
exemple (ceux donc qui surperforment l'indice –on peu affiner en
recherchant le bêta des titres, le skewness et le kurtosis, mais
c'est une autre histoire), puis j'applique la matrice variance-
covariance, ce qui me donne la meilleure sélection des titres du
marché à un instant donné.
Pour la sélection des titres, il faut préalablement télécharger les
historiques de cours, sur yahoo en fichier texte, par exemple (je
peux expliquer l'adresse url pour une exploitation pour chaque titre http://ichart.yahoo.com/table.csv?s=%
5EFCHI&d=8&e=6&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv
) , pour ensuite calculer le rendements et l'écart-type (exemple mc
graw hill) http://highered.mcgraw-
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
xls
Il ne faut pas trop de titres dans le portefeuille, sinon on
s'approche de la valeur de l'indice puisque la diversification a
tendance à lisser les performances et les insuffisances)
La macro Mike's Excel VBA présente l'avantage de déterminer le poids
optimum de chacun des titres dans le portefeuille en fonction de la
variance minimum (risque minimum) et le poids des titres en fonction
du ratio de sharpe rendement et risque optimums) http://www.geocities.com/mikesvba/Portfolio.htm
peut-être que le code vba te permettra de traduire ces contraintes en
java.
cordialement
albert
Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail et gagnez du temps avec l'interface à la Outlook ! Windows Live Hotmail
Bonjour,
Mes excuses car certains messages sont restés bloqués car considérés
comme des spams, qu'ils n'étaient pas.
J'ai désactivé le filtre à spams, donc il ne devrait plus y avoir de
problème.
Pierre
Bonjour Chris,
Merci pour les libraries, je vais pouvoir travailler le sujet
************
************
« J'ai une petite question: comment calcule-t-on le rendement d'une
action ? »
Pour obtenir des moyennes comparables, il faut au préalable calculer
les rendements =>
(n-n-1/n-1) pour chaque titre. Le calcul en logarithmes est souvent
préféré
Ensuite, la moyenne qui est utilisée pour le calcul est une moyenne
arithmétique des rendements
Il est bien évident avoir le même nombre de titres dans chaque
historique de cours, soit des périodes équivalentes.
Il est donc nécessaire de pouvoir intervenir
1/ sur la date de l'url
http://ichart.yahoo.com/table.csv?s=%
5EFCHI&d=8&e=6&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv
jour début
mois début
année début
jour fin
mois fin
année fin
2/ sur le code titre : ^FCHI, AC.PA…
http://fr.finance.yahoo.com/q/cp?s=%5EFCHI
ce qui permet de télécharger une liste de titres, qui seront ensuite
sélectionnés.
Cette sélection s'effectue de 2 manières :
1/ calcul des rendements cumulés des titres pour les comparer au
benchmark (indice cac 40, par exemple) dans un graphique, ce qui
permet de ne retenir que les titres qui sur-performent l'indice
(cumulative wealth)
http://viking.som.yale.edu/will/finman540/classnotes/class1.html
2/ matrice de corrélations pour éviter de choisir 2 titres fortement
corrélés
il faut donc construire une matrice de corrélations qui complète la
matrice variance-covariance
pour les importations de cours, j'ai bien un code, mais il télécharge
à l'unité et je ne sais pas intervenir sur la date et le code titre
avec un combobox (ou un listbox…je ne sais lequel est le plus adapté)
http://fr.groups.yahoo.com/group/JavaBourse/message/43
j'espère avoir donné des explications exploitables
:-))
cordialement
albert
--- Dans JavaBourse@..., Chris Camel <casse_bonbon31@...>
a écrit :
>
>
> Salut,
>
> La bilbiothèque que j'utilise est celle-ci:
http://commons.apache.org/math/
> La documentation
(http://commons.apache.org/math/apidocs/index.html) montre les
classes chargées des calculs statistiques, comme
http://commons.apache.org/math/apidocs/org/apache/commons/math/stat/de
scriptive/moment/Mean.html pour le calcul d'une moyenne, ou
http://commons.apache.org/math/apidocs/org/apache/commons/math/stat/de
scriptive/moment/Variance.html pour le calcul d'une variance.
>
> C'est très simple à utiliser, comme tu peux le voir dans l'exemple
ci-dessous:
>
> // Données sur lesquelles faire le calculdouble[] data =
{1.50,12.41,53.11,84.26};// Opérateur statistique (ici moyenne)
UnivariateStatistic op = new Mean();// Applicationdouble result =
op.evaluate(data);// AffichageSystem.out.println( result );
>
>
> Tu peux remplacer "new Mean()" par "new Variance()" pour un calcul
de la variance.
>
> J'ai travaillé sur la partie chargement des valeurs boursières.
Avec ton url yahoo, et pour peu qu'on ait le code de chaque valeur,
on peut en récupérer l'historique très simplement afin d'alimenter le
moteur d'optimisation.
>
> J'ai une petite question: comment calcule-t-on le rendement d'une
action ?
>
> Chris.
>
> To: JavaBourse@...
> From: alai4285@...
> Date: Thu, 6 Sep 2007 15:11:01 +0000
> Subject: [JavaBourse] Re : Re : Re : Connaissez-vous un ou des
projets boursiers open source en Java ?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Bonjour Chris,
>
>
>
> Très content que tu aies pu utiliser mes exemples.
>
>
>
> J'ai fait quelques recherches sur internet, je ne trouve pas de «
lib
>
> approprié » au calcul des variances. C'est bien la preuve qu'il
faut
>
> une longue pratique de java pour être à l'aise.
>
>
>
> L'intérêt de l'optimisation de portefeuille est de trouver
>
> automatiquement le poids de chaque titres en fonction de son
>
> rendement et de sa variance.
>
>
>
> Sur excel, je fais une première sélection des titres qui ont les
>
> rendements les plus élevés par rapport à un benchmark, le Cac 40
par
>
> exemple (ceux donc qui surperforment l'indice –on peu affiner en
>
> recherchant le bêta des titres, le skewness et le kurtosis, mais
>
> c'est une autre histoire), puis j'applique la matrice variance-
>
> covariance, ce qui me donne la meilleure sélection des titres du
>
> marché à un instant donné.
>
>
>
> Pour la sélection des titres, il faut préalablement télécharger les
>
> historiques de cours, sur yahoo en fichier texte, par exemple (je
>
> peux expliquer l'adresse url pour une exploitation pour chaque titre
>
> http://ichart.yahoo.com/table.csv?s=%
>
> 5EFCHI&d=8&e=6&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv
>
> ) , pour ensuite calculer le rendements et l'écart-type (exemple mc
>
> graw hill)
>
> http://highered.mcgraw-
>
>
hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.
>
> xls
>
>
>
> Il ne faut pas trop de titres dans le portefeuille, sinon on
>
> s'approche de la valeur de l'indice puisque la diversification a
>
> tendance à lisser les performances et les insuffisances)
>
>
>
> La macro Mike's Excel VBA présente l'avantage de déterminer le
poids
>
> optimum de chacun des titres dans le portefeuille en fonction de la
>
> variance minimum (risque minimum) et le poids des titres en
fonction
>
> du ratio de sharpe rendement et risque optimums)
>
> http://www.geocities.com/mikesvba/Portfolio.htm
>
>
>
> peut-être que le code vba te permettra de traduire ces contraintes
en
>
> java.
>
>
>
> cordialement
>
>
>
> albert
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _________________________________________________________________
> Téléchargez Windows Live Messenger 8.5 Beta gratuitement !
> http://get.live.com/betas/messenger_betas
>
Bonjour,
Tutoriel de programmation en Java des API TWS
Version gratuite :
Deux programmes très courts qui réalisent une simple connextion au serveur
d'IB.
http://groups.google.fr/group/agile-trader-fr?hl=fr
L'accès au groupe Agile Trader Fr est gratuite, mais demande une
inscription
un fichier zip.
IB-API-FB.zip
Nouvelle version, payante.
Ajout d'un programme très court d'accès aux historiques de quotations.
http://tutorielapiib.blogspot.com/
Avant d'acheter ce tutoriel, il est vivement conseillé de télécharger et
d'utiliser la partie gratuite qui correspond aux deux premières
leçons, afin
d'estimer si ce tutoriel correspond bien à vos attentes.
La version payante du tutoriel n'ajoute qu'une leçon.
Un programme très court d'accès aux données historiques par la méthode
reqHistoricalData.
N'acheter pas ce tutoriel en pensant acheter un produit très différent
de sa
version gratuite.
Entre la version gratuite et la version payante il n'y a qu'une leçon de
plus.
Présentation :
Interactive Brokers est un courtier de bourse par internet qui permet à
ces clients de développer leur propres add-on en utilisant ses API.
http://www.interactivebrokers.com/en/main.php
Sans être client d'IB je pense qu'il vous est possible de télécharger
l'ensemble des fichiers nécessaires pour executer les programmes de mes
tutoriaux.
Si ce n'est pas le cas merci de me le signaler.
Télécharger la version Standalone de TWS :
http://www.interactivebrokers.com/en/control/twscontrol.php?ib_entity=fr
Télécharger également les API :
http://www.interactivebrokers.com/en/control/apicontrol.php?ib_entity=fr
Mot de passe pour le compte demo :
User name : edemo
Passeword : demouser
L'installation de InstallAX.exe qui fourni un accès aux API d'IB,
installe également une application exemple TestJavaClient.
Cette application exemple TestJavaClient , a entre autre une fonction
de connexcion.
Pierre
// Appele la fenêtre de sélection HMI hmi = new HMI(); hmi.show();
// En récupère les données saisies String symbol; Calendar startDate = Calendar.getInstance(); Calendar endDate = Calendar.getInstance();
symbol = hmi.getSelectedStock(); startDate.setTime(hmi.getSelectedStartDate()); endDate.setTime(hmi.getSelectedEndDate());
// Produit l'url correspondante URL url = new URL(MessageFormat.format(urlPattern, URLEncoder.encode(symbol), startDate.get(Calendar.DAY_OF_MONTH), startDate .get(Calendar.MONTH), startDate.get(Calendar.YEAR), endDate.get(Calendar.DAY_OF_MONTH), endDate.get(Calendar.MONTH), endDate .get(Calendar.YEAR)));
System.out.println(url); } } Il nécessite la bibliothèque JCalendar (http://www.toedter.com/en/jcalendar/). Qu'est-ce que fait le programme, c'est très simple. Il affiche une boîte de dialogue avec 3 champs de saisie : le symbole du titre, la date de départ et la date de fin. Sur la confirmation après click sur le bouton ok, la main est rendue au programme et on peut accéder aux champs saisis pour construire l'url de récupération.
C'est juste un exemple très simpliste pour illustrer la mécanique...
Chris.
To: JavaBourse@... From: alai4285@... Date: Tue, 11 Sep 2007 14:52:54 +0000 Subject: [JavaBourse] Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
pour les importations de cours, j'ai bien un code, mais il télécharge
à l'unité et je ne sais pas intervenir sur la date et le code titre
avec un combobox (ou un listbox…je ne sais lequel est le plus adapté)
Bonjour Chris, merci pour HMI.java, je l'ai fait fonctionner, c'est
parfait. J'ai fait quelques tentatives pour combiner HMI avec le
code de l'exemple « Test », mais sans succès. C'est moins simple
qu'en vba
--- Dans JavaBourse@..., Chris Camel <casse_bonbon31@...>
a écrit :
>
>
> Hello,
>
> je répond juste sur le dernier point par le code suivant:
>
> package optim;import java.awt.FlowLayout;import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;import
java.net.MalformedURLException;import java.net.URL;import
java.net.URLEncoder;import java.text.MessageFormat;import
java.util.Calendar;import java.util.Date;import
javax.swing.JButton;import javax.swing.JDialog;import
javax.swing.JFrame;import javax.swing.JLabel;import
javax.swing.JPanel;import javax.swing.JTextField;import
com.toedter.calendar.JCalendar;public class HMI { private final
JDialog frame; private String selectedStock; private Date
selectedStartDate; private Date selectedEndDate; public HMI()
{ frame = new JDialog(); frame.setModal(true);
JPanel panel = new JPanel(); panel.setLayout(new FlowLayout
(FlowLayout.LEFT)); frame.setTitle("Sélection d'un
titre"); frame.setDefaultCloseOperation
(JFrame.DISPOSE_ON_CLOSE); frame.setContentPane(panel);
final JTextField stockCtrl = new JTextField(20); final
JCalendar startDateCtrl = new JCalendar(); final JCalendar
endDateCtrl = new JCalendar(); final JButton okButton = new
JButton("OK !"); panel.add(new JLabel("titre"));
panel.add(stockCtrl); panel.add(new JLabel("date
départ")); panel.add(startDateCtrl); panel.add(new
JLabel("date fin")); panel.add(endDateCtrl); panel.add
(okButton); okButton.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ // récupérer les champs selectedStock
= stockCtrl.getText(); selectedStartDate =
startDateCtrl.getDate(); selectedEndDate =
endDateCtrl.getDate(); frame.setVisible
(false); frame.dispose
(); } }); frame.pack(); } public void
show() { frame.setVisible(true); } public final Date
getSelectedEndDate() { return selectedEndDate; } public
final void setSelectedEndDate(Date selectedEndDate) {
this.selectedEndDate = selectedEndDate; } public final Date
getSelectedStartDate() { return selectedStartDate; }
public final void setSelectedStartDate(Date selectedStartDate)
{ this.selectedStartDate = selectedStartDate; } public
final String getSelectedStock() { return
selectedStock; } public final void setSelectedStock(String
selectedStock) { this.selectedStock = selectedStock; }
public static void main(String[] args) throws MalformedURLException
{ String urlPattern = "http://ichart.yahoo.com/table.csv?s={0}
&d={4}&e={5}&f={6}&g=d&a={1}&b={2}&c={3}&ignore=.xml"; //
Appele la fenêtre de sélection HMI hmi = new HMI();
hmi.show(); // En récupère les données saisies String
symbol; Calendar startDate = Calendar.getInstance();
Calendar endDate = Calendar.getInstance(); symbol =
hmi.getSelectedStock(); startDate.setTime
(hmi.getSelectedStartDate()); endDate.setTime
(hmi.getSelectedEndDate()); // Produit l'url
correspondante URL url = new URL(MessageFormat.format
(urlPattern, URLEncoder.encode(symbol), startDate.get
(Calendar.DAY_OF_MONTH), startDate .get
(Calendar.MONTH), startDate.get(Calendar.YEAR), endDate.get
(Calendar.DAY_OF_MONTH), endDate.get(Calendar.MONTH),
endDate .get(Calendar.YEAR)));
System.out.println(url); }}
> Il nécessite la bibliothèque JCalendar
(http://www.toedter.com/en/jcalendar/). Qu'est-ce que fait le
programme, c'est très simple. Il affiche une boîte de dialogue avec 3
champs de saisie : le symbole du titre, la date de départ et la date
de fin. Sur la confirmation après click sur le bouton ok, la main est
rendue au programme et on peut accéder aux champs saisis pour
construire l'url de récupération.
>
> C'est juste un exemple très simpliste pour illustrer la mécanique...
>
> Chris.
>
> To: JavaBourse@...
> From: alai4285@...
> Date: Tue, 11 Sep 2007 14:52:54 +0000
> Subject: [JavaBourse] Re : Re : Re : Re : Connaissez-vous un ou des
projets boursiers open source en Java ?
>
>
>
>
>
>
>
>
>
> pour les importations de cours, j'ai bien un code, mais il
télécharge
>
> à l'unité et je ne sais pas intervenir sur la date et le code titre
>
> avec un combobox (ou un listbox…je ne sais lequel est le plus
adapté)
>
>
>
> http://fr.groups.yahoo.com/group/JavaBourse/message/43
>
>
>
> j'espère avoir donné des explications exploitables
>
>
>
> :-))
>
>
>
> cordialement
>
>
>
> albert
>
>
> .
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _________________________________________________________________
> Téléchargez gratuitement l'économiseur d'écran Les Simson Le film !
>
http://specials.divertissements.fr.msn.com/lessimpsonlefilm/economiseu
r.aspx
>
Bonjour Chris,
Eurêka, j'ai réussi :-))
Il ne fallait pas oublier le « catch » après « try »…
Il me reste à trouver le moyen de donner automatiquement le nom du
fichier .txt téléchargé :
FileOutputStream out= new FileOutputStream("AC.PA.txt");//donne le
nom au fichier téléchargé
Mais, les historiques de cours sont constants, quelles que soient les
dates début et fin indiquées. Il faut certainement ajouter des
arguments pour le fonctionnement de calendar… nouveau champ d'étude
package optim;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.toedter.calendar.JCalendar;
//*******************test***********
import java.io.*;
import java.net.*;
//**********************************
public class HMI {
private final JDialog frame;
private String selectedStock;
private Date selectedStartDate;
private Date selectedEndDate;
public HMI() {
frame = new JDialog();
frame.setModal(true);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
frame.setTitle("Sélection d'un titre");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setContentPane(panel);
final JTextField stockCtrl = new JTextField(20);
final JCalendar startDateCtrl = new JCalendar();
final JCalendar endDateCtrl = new JCalendar();
final JButton okButton = new JButton("OK !");
panel.add(new JLabel("titre"));
panel.add(stockCtrl);
panel.add(new JLabel("date départ"));
panel.add(startDateCtrl);
panel.add(new JLabel("date fin"));
panel.add(endDateCtrl);
panel.add(okButton);
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// récupérer les champs
selectedStock = stockCtrl.getText();
selectedStartDate = startDateCtrl.getDate();
selectedEndDate = endDateCtrl.getDate();
frame.setVisible(false);
frame.dispose();
}
});
frame.pack();
}
public void show() {
frame.setVisible(true);
}
public final Date getSelectedEndDate() {
return selectedEndDate;
}
public final void setSelectedEndDate(Date selectedEndDate) {
this.selectedEndDate = selectedEndDate;
}
public final Date getSelectedStartDate() {
return selectedStartDate;
}
public final void setSelectedStartDate(Date selectedStartDate) {
this.selectedStartDate = selectedStartDate;
}
public final String getSelectedStock() {
return selectedStock;
}
public final void setSelectedStock(String selectedStock) {
this.selectedStock = selectedStock;
}
//***************************************
public static void main(String argv[]) {
try {
//****************************************
String urlPattern = "http://ichart.yahoo.com/table.csv?s={0}
&d={1}&e={2}&f={3}&g=d&a={4}&b={5}&c={6}&ignore=.csv";
// Appele la fenêtre de sélection
HMI hmi = new HMI();
hmi.show();
// En récupère les données saisies
String symbol;
Calendar startDate = Calendar.getInstance();
Calendar endDate = Calendar.getInstance();
symbol = hmi.getSelectedStock();
startDate.setTime(hmi.getSelectedStartDate());
endDate.setTime(hmi.getSelectedEndDate());
// Produit l'url correspondante
URL url = new URL(MessageFormat.format(urlPattern,
URLEncoder.encode(symbol), startDate.get(Calendar.DAY_OF_MONTH),
startDate
.get(Calendar.MONTH), startDate.get(Calendar.YEAR),
endDate.get(Calendar.DAY_OF_MONTH), endDate.get(Calendar.MONTH),
endDate
.get(Calendar.YEAR)));
//************************************************
//télécharge les données historiques
URLConnection con= url.openConnection();
InputStream in = con.getInputStream();
FileOutputStream out= new FileOutputStream("AC.PA.txt");//donne le
nom au fichier téléchargé
byte[] buffer= new byte[1024];
int size;
while( (size= in.read(buffer, 0, 1024)) > 0 )
out.write(buffer, 0, size);
System.out.println("le fichier a ete chargé : ");
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
cordialement,
albert
--- Dans JavaBourse@..., "albert95120" <alai4285@...> a
écrit :
>
> Bonjour Chris, merci pour HMI.java, je l'ai fait fonctionner, c'est
> parfait. J'ai fait quelques tentatives pour combiner HMI avec le
> code de l'exemple « Test », mais sans succès. C'est moins simple
> qu'en vba
>
> --- Dans JavaBourse@..., Chris Camel <casse_bonbon31@>
> a écrit :
> >
> >
> > Hello,
> >
> > je répond juste sur le dernier point par le code suivant:
> >
> > package optim;import java.awt.FlowLayout;import
> java.awt.event.ActionEvent;import
> java.awt.event.ActionListener;import
> java.net.MalformedURLException;import java.net.URL;import
> java.net.URLEncoder;import java.text.MessageFormat;import
> java.util.Calendar;import java.util.Date;import
> javax.swing.JButton;import javax.swing.JDialog;import
> javax.swing.JFrame;import javax.swing.JLabel;import
> javax.swing.JPanel;import javax.swing.JTextField;import
> com.toedter.calendar.JCalendar;public class HMI { private final
> JDialog frame; private String selectedStock; private Date
> selectedStartDate; private Date selectedEndDate; public HMI()
> { frame = new JDialog(); frame.setModal(true);
> JPanel panel = new JPanel(); panel.setLayout(new FlowLayout
> (FlowLayout.LEFT)); frame.setTitle("Sélection d'un
> titre"); frame.setDefaultCloseOperation
> (JFrame.DISPOSE_ON_CLOSE); frame.setContentPane
(panel);
> final JTextField stockCtrl = new JTextField(20); final
> JCalendar startDateCtrl = new JCalendar(); final JCalendar
> endDateCtrl = new JCalendar(); final JButton okButton = new
> JButton("OK !"); panel.add(new JLabel("titre"));
> panel.add(stockCtrl); panel.add(new JLabel("date
> départ")); panel.add(startDateCtrl); panel.add(new
> JLabel("date fin")); panel.add(endDateCtrl); panel.add
> (okButton); okButton.addActionListener(new ActionListener()
> { public void actionPerformed(ActionEvent e)
> { // récupérer les champs
selectedStock
> = stockCtrl.getText(); selectedStartDate =
> startDateCtrl.getDate(); selectedEndDate =
> endDateCtrl.getDate(); frame.setVisible
> (false); frame.dispose
> (); } }); frame.pack(); } public
void
> show() { frame.setVisible(true); } public final Date
> getSelectedEndDate() { return selectedEndDate; }
public
> final void setSelectedEndDate(Date selectedEndDate) {
> this.selectedEndDate = selectedEndDate; } public final Date
> getSelectedStartDate() { return selectedStartDate; }
> public final void setSelectedStartDate(Date selectedStartDate)
> { this.selectedStartDate = selectedStartDate; } public
> final String getSelectedStock() { return
> selectedStock; } public final void setSelectedStock(String
> selectedStock) { this.selectedStock = selectedStock; }
> public static void main(String[] args) throws MalformedURLException
> { String urlPattern = "http://ichart.yahoo.com/table.csv?s=
{0}
> &d={4}&e={5}&f={6}&g=d&a={1}&b={2}&c={3}&ignore=.xml"; //
> Appele la fenêtre de sélection HMI hmi = new HMI();
> hmi.show(); // En récupère les données saisies String
> symbol; Calendar startDate = Calendar.getInstance();
> Calendar endDate = Calendar.getInstance(); symbol =
> hmi.getSelectedStock(); startDate.setTime
> (hmi.getSelectedStartDate()); endDate.setTime
> (hmi.getSelectedEndDate()); // Produit l'url
> correspondante URL url = new URL(MessageFormat.format
> (urlPattern, URLEncoder.encode(symbol), startDate.get
> (Calendar.DAY_OF_MONTH), startDate .get
> (Calendar.MONTH), startDate.get(Calendar.YEAR), endDate.get
> (Calendar.DAY_OF_MONTH), endDate.get(Calendar.MONTH),
> endDate .get(Calendar.YEAR)));
> System.out.println(url); }}
> > Il nécessite la bibliothèque JCalendar
> (http://www.toedter.com/en/jcalendar/). Qu'est-ce que fait le
> programme, c'est très simple. Il affiche une boîte de dialogue avec
3
> champs de saisie : le symbole du titre, la date de départ et la
date
> de fin. Sur la confirmation après click sur le bouton ok, la main
est
> rendue au programme et on peut accéder aux champs saisis pour
> construire l'url de récupération.
> >
> > C'est juste un exemple très simpliste pour illustrer la
mécanique...
> >
> > Chris.
> >
> > To: JavaBourse@...
> > From: alai4285@
> > Date: Tue, 11 Sep 2007 14:52:54 +0000
> > Subject: [JavaBourse] Re : Re : Re : Re : Connaissez-vous un ou
des
> projets boursiers open source en Java ?
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > pour les importations de cours, j'ai bien un code, mais il
> télécharge
> >
> > à l'unité et je ne sais pas intervenir sur la date et le code
titre
> >
> > avec un combobox (ou un listbox…je ne sais lequel est le plus
> adapté)
> >
> >
> >
> > http://fr.groups.yahoo.com/group/JavaBourse/message/43
> >
> >
> >
> > j'espère avoir donné des explications exploitables
> >
> >
> >
> > :-))
> >
> >
> >
> > cordialement
> >
> >
> >
> > albert
> >
> >
> > .
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > _________________________________________________________________
> > Téléchargez gratuitement l'économiseur d'écran Les Simson Le
film !
> >
>
http://specials.divertissements.fr.msn.com/lessimpsonlefilm/economiseu
> r.aspx
> >
>
Voila une bonne nouvelle, preuve qu'en unissant les efforts, on y arrive ! En ce qui concerne le nommage du fichier, tu peux récupérer très facilement le nom du titre saisi, celui-là même qui est transmis dans l'url :
String stockName = hmi.getSelectedStock();
FileOutputStream out= new FileOutputStream(stockName+".txt");
En ce qui concerne le bug sur la plage des historiques, il faudrait vérifier que l'url synthétisée est correcte. Si tel n'est pas le cas, voir les arguments trasmis, y'a peut-être une coquille sur les champs dates.
Chris.
To: JavaBourse@... From: alai4285@... Date: Thu, 13 Sep 2007 14:46:15 +0000 Subject: [JavaBourse] Re : Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java
Bonjour Chris,
Eurêka, j'ai réussi :-))
Il ne fallait pas oublier le « catch » après « try »…
Il me reste à trouver le moyen de donner automatiquement le nom du
fichier .txt téléchargé :
FileOutputStream out= new FileOutputStream("AC.PA.txt");//donne le
nom au fichier téléchargé
Mais, les historiques de cours sont constants, quelles que soient les
dates début et fin indiquées. Il faut certainement ajouter des
arguments pour le fonctionnement de calendar… nouveau champ d'étude
// Appele la fenêtre de sélection
HMI hmi = new HMI();
hmi.show();
// En récupère les données saisies
String symbol;
Calendar startDate = Calendar.getInstance();
Calendar endDate = Calendar.getInstance();
symbol = hmi.getSelectedStock();
startDate.setTime(hmi.getSelectedStartDate());
endDate.setTime(hmi.getSelectedEndDate());
// Produit l'url correspondante
URL url = new URL(MessageFormat.format(urlPattern,
URLEncoder.encode(symbol), startDate.get(Calendar.DAY_OF_MONTH),
startDate
.get(Calendar.MONTH), startDate.get(Calendar.YEAR),
endDate.get(Calendar.DAY_OF_MONTH), endDate.get(Calendar.MONTH),
endDate
.get(Calendar.YEAR)));
//************************************************
//télécharge les données historiques
URLConnection con= url.openConnection();
InputStream in = con.getInputStream();
FileOutputStream out= new FileOutputStream("AC.PA.txt");//donne le
nom au fichier téléchargé
byte[] buffer= new byte[1024];
int size;
Bonjour,
Si quelqu'un souhaite me rencontrer lors du salon du trading à Paris,
merci de bien vouloir prendre contact par message personnel.
Le salon se déroule demain 21 septembre et après-demain 22 septembre.
Cordialement,
Pierre Rougier
Agile Trader Fr
Support, formation et développement, autour des logiciels boursiers
Open Source Java.
http://groups.google.com/group/agile-trader-fr
Bonjour,
quelqu'un a t'il reussi à créer un jar executable à partir
de cette exemple ?
J'ai créé un build and pour packager le jar avec les autres jar
Je lutte mais rien n'y fait :(
?
Bonjour,
Que pensez-vous du développement d'une classe façade autour des
classes de l'API d'Interactive Broker.
Interactive Broker fourni des API sous forme de class Java permettant
de développer sa propre interface client de trading.
Ces classes Java ne sont pas très conviviales pour le développement.
En particulier elles ont des fonctions de callback, que je ne trouve
pas très facile d'usage.
Que pensez-vous du développement d'une classe façade autour des
classes de l'API d'Interactive Broker en vue de faciliter leur mise en
œuvre ?
Je parle de classe façade dans le sens du design pattern Façade.
http://fr.wikipedia.org/wiki/Fa%C3%A7ade_(patron_de_conception)
Pierre8r
https://sourceforge.net/projects/jopencomponents/
JOpenATS
Version Pre-Alpha 0.0.3
Fichier : JOpenATS-0.0.3.zip
Langage: Java
CLI: interface ligne de commande
Logiciel de trading ATS (Automatic Trading System) Multi Time
Frames , utilisant les API d'Interactive Broker.
Vous devez avoir un compte chez IB pour utiliser ce programme.
Attention: version Pre-Alpha.
Utilisez exclusivement votre paper trading acount.
Commandes disponibles:
Q + Entrée
Mets fin au programme et édite sur la console le contenu des
différents time frames enregistrés.
Newbe en bourse et en java, je remercie tout le monde pour toutes ces
informations exceptionnelles.
J'espère pouvoir participer moi même un jour.
Cdlt,
Patrick