Ignorez pour effectuer la recherche.
JavaBourse · Logiciels boursiers écrits en Java

Informations du groupe

  • Membres : 86
  • Rubrique : Finance et bourse
  • Créé : 10 Nov 2006
  • Langue : Français
? Déjà membre ? Ouvrir session

Astuces Yahoo! Groupes

Le saviez-vous...
Et si je montais le groupe de mon association ? J'essaie !

Messages

  Messages Aide
Avancée
Messages 47 - 85 sur 85   Le plus ancien  |  < Plus ancien  |  Plus récent >  |  Le plus récent
Messages 47 - 85 sur 85   Le plus ancien  |  < Plus ancien  |  Plus récent >  |  Le plus récent
Messages: Afficher les résumés des messages Date ^  
#47 De: "pierre8rou" <pierre8r@...>
Date: Mercredi 18. Avril 2007  9:15
Sujet: Comment faire connaitre ce groupe ( JavaBourse ) ?
pierre8rou
Envoyer un message Envoyer un message
 
Bonjour,

Comment faire connaitre ce groupe  ( JavaBourse ) ?
Sans faire de spamming.

Cordialment,

Pierre

#48 De: "altair_606" <vitale.n@...>
Date: Mercredi 9. Mai 2007  20:46
Sujet: Remerciement d'un nouveau
altair_606
Envoyer un message Envoyer un message
 
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

#49 De: "altair_606" <vitale.n@...>
Date: Mercredi 9. Mai 2007  22:16
Sujet: Re : Combinaison DIYTrader002 et l’importation d’un fichier .txt avec URLConnect
altair_606
Envoyer un message Envoyer un message
 
Merci à toi. Ca marche en effet(après juste une ou deux modifs).

Voici le code corrigé et qui tourne chez moi sous Eclipse:

package src;

//*****Test
import java.io.*;
import java.net.*;

//**********DYITrader
import java.awt.Color;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import javax.swing.JFrame;
import net.sf.pzfilereader.DataError;
import net.sf.pzfilereader.DataSet;
import net.sf.pzfilereader.DefaultPZParserFactory;
import net.sf.pzfilereader.PZParser;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.CandlestickRenderer;
import org.jfree.data.xy.DefaultHighLowDataset;
import org.jfree.data.xy.OHLCDataset;
//*****************************************


public class Importer
{
private Test cours;
private DIYTrader002 graphe;

public Importer()
{
cours = new Test();
graphe = new DIYTrader002();
}
//**********************
public static void main (String [] args)
{
Importer imp = new Importer();

}
}


//*********************
class Test {


{
try {

URL url= new
URL("http://ichart.yahoo.com/table.csv?s=AGF.PA&d=4&e=13&f=2007&g=d&a=0&b=3&c=20\
00&ignore=.csv");URLConnection
con= url.openConnection();

InputStream in = con.getInputStream();
FileOutputStream out= new FileOutputStream("AGF.txt");
byte[] buffer= new byte[1024];
int size;

while( (size= in.read(buffer, 0, 1024)) > 0 )
out.write(buffer, 0, size);
}
catch(IOException e)
{
e.printStackTrace();
}
}

//*********************

class DIYTrader002 {

//**************************
{
}
}
{

final PZParser pzparser = DefaultPZParserFactory.getInstance()
.newDelimitedParser(new File
("yahoo.pzmap.xml"),
new File
("AGF.txt"), ',', '"', true);
final DataSet ds = pzparser.parse();

int iCtr = ds.getRowCount();

Date[] date = new Date[iCtr];
double[] high = new double[iCtr];
double[] low = new double[iCtr];
double[] open = new double[iCtr];
double[] close = new double[iCtr];
double[] volume = new double[iCtr];

while (ds.next()) {
Date d;
try {
d = new SimpleDateFormat("yyyy-MM-dd").parse(ds.getString("Date"));
date[ds.getRowNo()-2] = d;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
high[ds.getRowNo()-2] = ds.getDouble("High");
low[ds.getRowNo()-2] = ds.getDouble("Low");
open[ds.getRowNo()-2] = ds.getDouble("Open");
close[ds.getRowNo()-2] = ds.getDouble
("Close");
volume[ds.getRowNo()-2] = ds.getDouble
("Volume");
}

if (ds.getErrors() != null && ds.getErrors().size() >
0) {
System.out.println("<<<<FOUND ERRORS INFILE>>>>");
final Iterator pzerrors = ds.getErrors
().iterator();
while (pzerrors.hasNext()) {
final DataError error = (DataError)
pzerrors.next();
System.out.println("Error Msg: " +
error.getErrorDesc()
+ " line no: " +
error.getLineNo());
}
}


OHLCDataset ohlcdataset = new DefaultHighLowDataset
("AGF from Yahoo!", date,
high, low, open, close, volume);

JFreeChart chart = ChartFactory.createCandlestickChart
("Lesson 2 : Import quotes from CSVfile", "Date", "Price",
ohlcdataset, true);

XYPlot plot = (XYPlot) chart.getPlot();
NumberAxis axis = (NumberAxis) plot.getRangeAxis();
axis.setAutoRangeIncludesZero(false);
axis.setUpperMargin(0.03);
axis.setLowerMargin(0.03);

CandlestickRenderer renderer = (CandlestickRenderer)
plot.getRenderer();
renderer.setPaint(Color.black);
renderer.setDrawVolume(false);
renderer.setCandleWidth(2);
renderer.setUpPaint(Color.green.darker());
renderer.setDownPaint(Color.red);

ChartPanel chartPanel = new ChartPanel(chart);

JFrame frame = new JFrame("Do It Yourself TradingSoftware - Lesson 2");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel); // adds toCENTERframe.pack();
frame.setVisible(true);
}
}




--- Dans JavaBourse@..., "albert95120" <alai4285@...> a
écrit :
>
> bonjour à tous et à toutes,
>
> J'ai réussi à combiner les 3 codes dans une même application. C'est
> plus pratique pour modifier (manuellement) l'url, le nom de
> l'OutputStream ainsi que le nom du fichier .txt importé
> ******************
> ******************
>
> //*****Test
> import java.io.*;
> import java.net.*;
>
> //**********DYITrader
> import java.awt.Color;
> import java.io.File;
> import java.text.ParseException;
> import java.text.SimpleDateFormat;
> import java.util.Date;
> import java.util.Iterator;
> import javax.swing.JFrame;
> import net.sf.pzfilereader.DataError;
> import net.sf.pzfilereader.DataSet;
> import net.sf.pzfilereader.DefaultPZParserFactory;
> import net.sf.pzfilereader.PZParser;
>
> import org.jfree.chart.ChartFactory;
> import org.jfree.chart.ChartPanel;
> import org.jfree.chart.JFreeChart;
> import org.jfree.chart.axis.NumberAxis;
> import org.jfree.chart.plot.XYPlot;
> import org.jfree.chart.renderer.xy.CandlestickRenderer;
> import org.jfree.data.xy.DefaultHighLowDataset;
> import org.jfree.data.xy.OHLCDataset;
> //*****************************************
>
>
>  public class importer
> {
> public importer()
>  {
>
>  //*********************
>  class  Test {
>  }
>
>  {
>  try {
>
> URL url= new URL("http://ichart.yahoo.com/table.csv?
> s=AGF.PA&d=4&e=13&f=2007&g=d&a=0&b=3&c=2000&ignore=.csv");
> URLConnection con= url.openConnection();
>
> InputStream in = con.getInputStream();
> FileOutputStream out= new FileOutputStream("AGF.txt");
> byte[] buffer= new byte[1024];
> int size;
>
> while( (size= in.read(buffer, 0, 1024)) > 0 )
> out.write(buffer, 0, size);
> }
> catch(IOException e)
> {
> e.printStackTrace();
> }
> }
>
>  //*********************
>
> 	 class DIYTrader002 {
>
> 	 //**************************
> 	  {
> 	  }
> 	  }
>  {
>
> final PZParser pzparser = DefaultPZParserFactory.getInstance()
> 			 .newDelimitedParser(new File
> ("yahoo.pzmap.xml"),
> 					 new File
> ("AGF.txt"), ',', '"', true);
> 	 final DataSet ds = pzparser.parse();
>
> 	 int iCtr = ds.getRowCount();
>
> 	 Date[] date = new Date[iCtr];
> 	 double[] high = new double[iCtr];
> 	 double[] low = new double[iCtr];
> 	 double[] open = new double[iCtr];
> 	 double[] close = new double[iCtr];
> 	 double[] volume = new double[iCtr];
>
> 	 while (ds.next()) {
> 		 Date d;
> 		 try {
> 			 d = new SimpleDateFormat("yyyy-MM-
> dd").parse(ds.getString("Date"));
> 			 date[ds.getRowNo()-2] =  d;
> 		 } catch (ParseException e) {
> 			 // TODO Auto-generated catch block
> 			 e.printStackTrace();
> 		 }
> 		 high[ds.getRowNo()-2] = ds.getDouble("High");
> 		 low[ds.getRowNo()-2] = ds.getDouble("Low");
> 		 open[ds.getRowNo()-2] = ds.getDouble("Open");
> 		 close[ds.getRowNo()-2] = ds.getDouble
> ("Close");
> 		 volume[ds.getRowNo()-2] = ds.getDouble
> ("Volume");
> 	 }
>
> 	 if (ds.getErrors() != null && ds.getErrors().size() >
> 0) {
> 		 System.out.println("<<<<FOUND ERRORS IN
> FILE>>>>");
> 		 final Iterator pzerrors = ds.getErrors
> ().iterator();
> 		 while (pzerrors.hasNext()) {
> 			 final DataError error = (DataError)
> pzerrors.next();
> 			 System.out.println("Error Msg: " +
> error.getErrorDesc()
> 					 + " line no: " +
> error.getLineNo());
> 		 }
> 	 }
>
>
> 	 OHLCDataset ohlcdataset = new DefaultHighLowDataset
> ("AGF from Yahoo!", date,
> 			 high, low, open, close, volume);
>
> 	 JFreeChart chart = ChartFactory.createCandlestickChart
> (
> 			 "Lesson 2 : Import quotes from CSV
> file", "Date", "Price", ohlcdataset, true);
>
> 	 XYPlot plot = (XYPlot) chart.getPlot();
> 	 NumberAxis axis = (NumberAxis) plot.getRangeAxis();
> 	 axis.setAutoRangeIncludesZero(false);
> 	 axis.setUpperMargin(0.03);
> 	 axis.setLowerMargin(0.03);
>
> 	 CandlestickRenderer renderer = (CandlestickRenderer)
> plot.getRenderer();
> 	 renderer.setPaint(Color.black);
> 	 renderer.setDrawVolume(false);
> 	 renderer.setCandleWidth(2);
> 	 renderer.setUpPaint(Color.green.darker());
> 	 renderer.setDownPaint(Color.red);
>
> 	 ChartPanel chartPanel = new ChartPanel(chart);
>
> 	 JFrame frame = new JFrame("Do It Yourself Trading
> Software - Lesson 2");
> 	 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> 	 frame.getContentPane().add(chartPanel); // adds to
> CENTER
> 	 frame.pack();
> 	 frame.setVisible(true);
>
>  }
>
>
>  }
>
> //**********************
> public static void main (String [] args)
>  {
> importer imp = new importer();
>
>   }
> }
>
>
> ...il ne faut pas oublier de mettre yahoo.pzmap.xml dans le même
> dossier que "importer.java"
> ************
> ************
> :-))
>
> albert
>
>
>
> --- Dans JavaBourse@..., "albert95120" <alai4285@> a
> écrit :
> >
> > bonjour Pierre, forumiens,...
> >
> > Eurêka, j'ai trouvé !! j'en fais profiter ceux qui pourraient être
> > intéressés :
> >
> > Le code principal (« importer ») appelle les deux autre
> >  1 – « Test »  qui télécharge l'historique yahoo
> >  2 – « DIYTrader002 » qui construit le graphe
> >
> > dans ces deux  codes, il faut supprimer le « main » : public static
> > void main (String [] args), qui n'a plus lieu d'être si l'on veut
> que
> > l'appel par le code principal (« importer ») s'effectue
> correctement.
> > Ce qui donne :
> >
> > LE  CODE « importer »
> >
> >  public class importer
> > {
> >  private Test cours;
> >  private DIYTrader002 graphe;
> >
> > public importer()
> >  {
> >  cours = new Test();
> >  graphe = new DIYTrader002();
> >  }
> > //**********************
> > public static void main (String [] args)
> >  {
> > importer imp = new importer();
> >
> >   }
> > }
> >
> > LE CODE « Test »
> >
> > //http://www.developpez.net/forums/showthread.phpt=15351&highlight=U
> rl
> > Connection
> >
> > import java.io.*;
> > import java.net.*;
> >
> > public class Test {
> >  public Test() {
> >  }
> > // public static void main (String [] args) => supprimé
> >  {
> >  try {
> >
> > URL url= new URL
> >
> ("http://ichart.yahoo.com/table.csvs=AGF.PA&d=11&e=18&f=2006&g=d&a=0&b
> > =3&c=2000&ignore=.csv");
> > URLConnection con= url.openConnection();
> >  InputStream in = con.getInputStream();
> > FileOutputStream out= new FileOutputStream("AGF.txt");
> > 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();
> > }
> >  }//main
> >  }//class
> >
> >
> > LE CODE DIYTrader002 : il faut supprimer
> >  //public static void main(String[] args) à la ligne 38
> >
> > cordialement
> >
> > albert
> >
> >
> > --- Dans JavaBourse@..., "albert95120" <alai4285@> a
> > écrit :
> > >
> > >   Bonjour Pierre, forumiens et forumiennes,
> > >
> > > Je suis à la recherche d'une aide pour compléter le code
> > DIYTrader002
> > >
> > > A partir de cet exemple :
> > >
> >
> http://www.developpez.net/forums/showthread.phpt=15351&highlight=UrlCo
> > > nnection
> > >
> > > import java.io.*;
> > > import java.net.*;
> > >
> > > public class Test {
> > >  public Test() {   }
> > >
> > >  public static void main(String argv[]) {
> > >  try {
> > >
> > > URL url= new URL("http://ichart.yahoo.com/table.csv?s=%
> > > 5EFCHI&d=3&e=1&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv");
> > > URLConnection con= url.openConnection();
> > >  InputStream in = con.getInputStream();
> > > FileOutputStream out= new FileOutputStream("CAC40.txt");
> > > 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();
> > > }
> > >
> > > }//main
> > >
> > > }//class
> > >
> > >
> > > au code DIYTrader002, j'ai ajouté import java.io.*;
> > > et import java.net.*;
> > >
> > > Puis j'ai remplacé  public DIYTrader002 par « public class
> > Import »,
> > > ce qui permet d'ajouter le code de téléchargement de l'historique
> > sur
> > > yahoo (qui provient de class Test).
> > >
> > > Je supprime « public » à class DIYTrader002
> > > Et je compile... ça marche, les 2 classes sont créées dans src :
> > > « DIYTrader002.class » et « Import.class »
> > >
> > > Il y a donc deux fois public static void main(String argv[]) ce
> qui
> > > m'oblige à exécuter le code en 2 fois, mais ça fonctionne à
> > > merveille.
> > >
> > > Ma question :
> > >
> > > Pour obtenir le graphique en exécutant le code en 1 seule fois,
> je
> > > suppose qu'il faut que les classes soient indépendantes et que la
> > > méhode « main » appelle l'autre classe, ou bien encore, il faut
> > soit
> > > une méthode « main », soit une méthode « public static void main
> > > (String argv[]) » , qui appelle les deux autres classes.
> > >
> > > Mais dans les deux cas, j'ai fait des essais qui n'ont pas
> > > fonctionné. J'ai conscience que ces procédures sont essentielles
> > pour
> > > la programmation java, mais je ne sais pas m'en débrouiller tout
> > seul
> > > malgré la relecture des cours de programmation que j'ai pu
> trouver
> > > sur internet.
> > >
> > > Alors, comment puis-je procéder ???
> > >
> > > Merci d'avance
> > >
> > > albert
> > >
> >
>

#50 De: "albert95120" <alai4285@...>
Date: Jeudi 10. Mai 2007  21:39
Sujet: Re : Re : Combinaison DIYTrader002 et l’importation d’un fichier .txt avec URLConnect
albert95120
Envoyer un message Envoyer un message
 
Bonsoir Altair,

Bien content d'avoir rendu service. C'est surtout Pierre qu'il faut
remercier, il a eu la bonne idée de créer cette liste.

Pour Pierre, je crois qu'une participation active des membres sera la
meilleure manière de faire connaître le groupe

Bien entendu, si l'on veut conserver le package src, il faut modifier
le code.

Pour faire fonctionner mon code, il faut mettre tout dans le dossier
où se trouvent importer.java et yahoo.pzmap.xml (j'avais oublié de
préciser que j'ai supprimé le package src;)

Mais ta solution est plus propre que la mienne.


A présent je suis à la recherche d'un moyen de modifier l'adresse url
à partir d'une interface comprenant une zone d'affichage pour entrer
le symbole et  deux autres pour modifier la date (date début et date
fin)

En effet,
http://ichart.yahoo.com/table.csvs=AGF.PA&d=4&e=13&f=2007&g=d&a=0&b=3&
c=2000&ignore=.csv"

Se décompose en :
http://ichart.yahoo.com/table.csv?s= symbole

&d=MoisFin&e=JourFin&f=AnnéeFin

&g=d&a=MoisDébut&b=JourDébut&c=AnnéeDébut&ignore=.csv

c'est pas simple, il faut construire un formulaire (classique jusque
là), puis trouver le moyen de mettre un listener  qui envoie une
information dans l'adresse Url... ça me semble bien compliqué.

peut-être as-tu une idée pour résoudre cette énigme ?
...ou un membre aura peut-être une solution ?

albert







--- Dans JavaBourse@..., "altair_606" <vitale.n@...> a
écrit :
>
> Merci à toi. Ca marche en effet(après juste une ou deux modifs).
>
> Voici le code corrigé et qui tourne chez moi sous Eclipse:
>
> package src;
>
> //*****Test
> import java.io.*;
> import java.net.*;
>
> //**********DYITrader
> import java.awt.Color;
> import java.io.File;
> import java.text.ParseException;
> import java.text.SimpleDateFormat;
> import java.util.Date;
> import java.util.Iterator;
> import javax.swing.JFrame;
> import net.sf.pzfilereader.DataError;
> import net.sf.pzfilereader.DataSet;
> import net.sf.pzfilereader.DefaultPZParserFactory;
> import net.sf.pzfilereader.PZParser;
>
> import org.jfree.chart.ChartFactory;
> import org.jfree.chart.ChartPanel;
> import org.jfree.chart.JFreeChart;
> import org.jfree.chart.axis.NumberAxis;
> import org.jfree.chart.plot.XYPlot;
> import org.jfree.chart.renderer.xy.CandlestickRenderer;
> import org.jfree.data.xy.DefaultHighLowDataset;
> import org.jfree.data.xy.OHLCDataset;
> //*****************************************
>
>
> public class Importer
> {
> private Test cours;
> private DIYTrader002 graphe;
>
> public Importer()
> {
> cours = new Test();
> graphe = new DIYTrader002();
> }
> //**********************
> public static void main (String [] args)
> {
> Importer imp = new Importer();
>
> }
> }
>
>
> //*********************
> class Test {
>
>
> {
> try {
>
> URL url= new
> URL("http://ichart.yahoo.com/table.csv?
s=AGF.PA&d=4&e=13&f=2007&g=d&a=0&b=3&c=2000&ignore=.csv");URLConnectio
n
> con= url.openConnection();
>
> InputStream in = con.getInputStream();
> FileOutputStream out= new FileOutputStream("AGF.txt");
> byte[] buffer= new byte[1024];
> int size;
>
> while( (size= in.read(buffer, 0, 1024)) > 0 )
> out.write(buffer, 0, size);
> }
> catch(IOException e)
> {
> e.printStackTrace();
> }
> }
>
> //*********************
>
> class DIYTrader002 {
>
> //**************************
> {
> }
> }
> {
>
> final PZParser pzparser = DefaultPZParserFactory.getInstance()
> .newDelimitedParser(new File
> ("yahoo.pzmap.xml"),
> new File
> ("AGF.txt"), ',', '"', true);
> final DataSet ds = pzparser.parse();
>
> int iCtr = ds.getRowCount();
>
> Date[] date = new Date[iCtr];
> double[] high = new double[iCtr];
> double[] low = new double[iCtr];
> double[] open = new double[iCtr];
> double[] close = new double[iCtr];
> double[] volume = new double[iCtr];
>
> while (ds.next()) {
> Date d;
> try {
> d = new SimpleDateFormat("yyyy-MM-dd").parse(ds.getString("Date"));
> date[ds.getRowNo()-2] = d;
> } catch (ParseException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> high[ds.getRowNo()-2] = ds.getDouble("High");
> low[ds.getRowNo()-2] = ds.getDouble("Low");
> open[ds.getRowNo()-2] = ds.getDouble("Open");
> close[ds.getRowNo()-2] = ds.getDouble
> ("Close");
> volume[ds.getRowNo()-2] = ds.getDouble
> ("Volume");
> }
>
> if (ds.getErrors() != null && ds.getErrors().size() >
> 0) {
> System.out.println("<<<<FOUND ERRORS INFILE>>>>");
> final Iterator pzerrors = ds.getErrors
> ().iterator();
> while (pzerrors.hasNext()) {
> final DataError error = (DataError)
> pzerrors.next();
> System.out.println("Error Msg: " +
> error.getErrorDesc()
> + " line no: " +
> error.getLineNo());
> }
> }
>
>
> OHLCDataset ohlcdataset = new DefaultHighLowDataset
> ("AGF from Yahoo!", date,
> high, low, open, close, volume);
>
> JFreeChart chart = ChartFactory.createCandlestickChart
> ("Lesson 2 : Import quotes from CSVfile", "Date", "Price",
> ohlcdataset, true);
>
> XYPlot plot = (XYPlot) chart.getPlot();
> NumberAxis axis = (NumberAxis) plot.getRangeAxis();
> axis.setAutoRangeIncludesZero(false);
> axis.setUpperMargin(0.03);
> axis.setLowerMargin(0.03);
>
> CandlestickRenderer renderer = (CandlestickRenderer)
> plot.getRenderer();
> renderer.setPaint(Color.black);
> renderer.setDrawVolume(false);
> renderer.setCandleWidth(2);
> renderer.setUpPaint(Color.green.darker());
> renderer.setDownPaint(Color.red);
>
> ChartPanel chartPanel = new ChartPanel(chart);
>
> JFrame frame = new JFrame("Do It Yourself TradingSoftware - Lesson
2");
> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> frame.getContentPane().add(chartPanel); // adds toCENTERframe.pack
();
> frame.setVisible(true);
> }
> }
>
>
>
>
> --- Dans JavaBourse@..., "albert95120" <alai4285@> a
> écrit :
> >
> > bonjour à tous et à toutes,
> >
> > J'ai réussi à combiner les 3 codes dans une même application.
C'est
> > plus pratique pour modifier (manuellement) l'url, le nom de
> > l'OutputStream ainsi que le nom du fichier .txt importé
> > ******************
> > ******************
> >
> > //*****Test
> > import java.io.*;
> > import java.net.*;
> >
> > //**********DYITrader
> > import java.awt.Color;
> > import java.io.File;
> > import java.text.ParseException;
> > import java.text.SimpleDateFormat;
> > import java.util.Date;
> > import java.util.Iterator;
> > import javax.swing.JFrame;
> > import net.sf.pzfilereader.DataError;
> > import net.sf.pzfilereader.DataSet;
> > import net.sf.pzfilereader.DefaultPZParserFactory;
> > import net.sf.pzfilereader.PZParser;
> >
> > import org.jfree.chart.ChartFactory;
> > import org.jfree.chart.ChartPanel;
> > import org.jfree.chart.JFreeChart;
> > import org.jfree.chart.axis.NumberAxis;
> > import org.jfree.chart.plot.XYPlot;
> > import org.jfree.chart.renderer.xy.CandlestickRenderer;
> > import org.jfree.data.xy.DefaultHighLowDataset;
> > import org.jfree.data.xy.OHLCDataset;
> > //*****************************************
> >
> >
> >  public class importer
> > {
> > public importer()
> >  {
> >
> >  //*********************
> >  class  Test {
> >  }
> >
> >  {
> >  try {
> >
> > URL url= new URL("http://ichart.yahoo.com/table.csv?
> > s=AGF.PA&d=4&e=13&f=2007&g=d&a=0&b=3&c=2000&ignore=.csv");
> > URLConnection con= url.openConnection();
> >
> > InputStream in = con.getInputStream();
> > FileOutputStream out= new FileOutputStream("AGF.txt");
> > byte[] buffer= new byte[1024];
> > int size;
> >
> > while( (size= in.read(buffer, 0, 1024)) > 0 )
> > out.write(buffer, 0, size);
> > }
> > catch(IOException e)
> > {
> > e.printStackTrace();
> > }
> > }
> >
> >  //*********************
> >
> > 	 class DIYTrader002 {
> >
> > 	 //**************************
> > 	  {
> > 	  }
> > 	  }
> >  {
> >
> > final PZParser pzparser = DefaultPZParserFactory.getInstance()
> > 			 .newDelimitedParser(new File
> > ("yahoo.pzmap.xml"),
> > 					 new File
> > ("AGF.txt"), ',', '"', true);
> > 	 final DataSet ds = pzparser.parse();
> >
> > 	 int iCtr = ds.getRowCount();
> >
> > 	 Date[] date = new Date[iCtr];
> > 	 double[] high = new double[iCtr];
> > 	 double[] low = new double[iCtr];
> > 	 double[] open = new double[iCtr];
> > 	 double[] close = new double[iCtr];
> > 	 double[] volume = new double[iCtr];
> >
> > 	 while (ds.next()) {
> > 		 Date d;
> > 		 try {
> > 			 d = new SimpleDateFormat("yyyy-MM-
> > dd").parse(ds.getString("Date"));
> > 			 date[ds.getRowNo()-2] =  d;
> > 		 } catch (ParseException e) {
> > 			 // TODO Auto-generated catch block
> > 			 e.printStackTrace();
> > 		 }
> > 		 high[ds.getRowNo()-2] = ds.getDouble("High");
> > 		 low[ds.getRowNo()-2] = ds.getDouble("Low");
> > 		 open[ds.getRowNo()-2] = ds.getDouble("Open");
> > 		 close[ds.getRowNo()-2] = ds.getDouble
> > ("Close");
> > 		 volume[ds.getRowNo()-2] = ds.getDouble
> > ("Volume");
> > 	 }
> >
> > 	 if (ds.getErrors() != null && ds.getErrors().size() >
> > 0) {
> > 		 System.out.println("<<<<FOUND ERRORS IN
> > FILE>>>>");
> > 		 final Iterator pzerrors = ds.getErrors
> > ().iterator();
> > 		 while (pzerrors.hasNext()) {
> > 			 final DataError error = (DataError)
> > pzerrors.next();
> > 			 System.out.println("Error Msg: " +
> > error.getErrorDesc()
> > 					 + " line no: " +
> > error.getLineNo());
> > 		 }
> > 	 }
> >
> >
> > 	 OHLCDataset ohlcdataset = new DefaultHighLowDataset
> > ("AGF from Yahoo!", date,
> > 			 high, low, open, close, volume);
> >
> > 	 JFreeChart chart = ChartFactory.createCandlestickChart
> > (
> > 			 "Lesson 2 : Import quotes from CSV
> > file", "Date", "Price", ohlcdataset, true);
> >
> > 	 XYPlot plot = (XYPlot) chart.getPlot();
> > 	 NumberAxis axis = (NumberAxis) plot.getRangeAxis();
> > 	 axis.setAutoRangeIncludesZero(false);
> > 	 axis.setUpperMargin(0.03);
> > 	 axis.setLowerMargin(0.03);
> >
> > 	 CandlestickRenderer renderer = (CandlestickRenderer)
> > plot.getRenderer();
> > 	 renderer.setPaint(Color.black);
> > 	 renderer.setDrawVolume(false);
> > 	 renderer.setCandleWidth(2);
> > 	 renderer.setUpPaint(Color.green.darker());
> > 	 renderer.setDownPaint(Color.red);
> >
> > 	 ChartPanel chartPanel = new ChartPanel(chart);
> >
> > 	 JFrame frame = new JFrame("Do It Yourself Trading
> > Software - Lesson 2");
> > 	 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> > 	 frame.getContentPane().add(chartPanel); // adds to
> > CENTER
> > 	 frame.pack();
> > 	 frame.setVisible(true);
> >
> >  }
> >
> >
> >  }
> >
> > //**********************
> > public static void main (String [] args)
> >  {
> > importer imp = new importer();
> >
> >   }
> > }
> >
> >
> > ...il ne faut pas oublier de mettre yahoo.pzmap.xml dans le même
> > dossier que "importer.java"
> > ************
> > ************
> > :-))
> >
> > albert
> >
> >
> >
> > --- Dans JavaBourse@..., "albert95120" <alai4285@> a
> > écrit :
> > >
> > > bonjour Pierre, forumiens,...
> > >
> > > Eurêka, j'ai trouvé !! j'en fais profiter ceux qui pourraient
être
> > > intéressés :
> > >
> > > Le code principal (« importer ») appelle les deux autre
> > >  1 – « Test »  qui télécharge l'historique yahoo
> > >  2 – « DIYTrader002 » qui construit le graphe
> > >
> > > dans ces deux  codes, il faut supprimer le « main » : public
static
> > > void main (String [] args), qui n'a plus lieu d'être si l'on
veut
> > que
> > > l'appel par le code principal (« importer ») s'effectue
> > correctement.
> > > Ce qui donne :
> > >
> > > LE  CODE « importer »
> > >
> > >  public class importer
> > > {
> > >  private Test cours;
> > >  private DIYTrader002 graphe;
> > >
> > > public importer()
> > >  {
> > >  cours = new Test();
> > >  graphe = new DIYTrader002();
> > >  }
> > > //**********************
> > > public static void main (String [] args)
> > >  {
> > > importer imp = new importer();
> > >
> > >   }
> > > }
> > >
> > > LE CODE « Test »
> > >
> >
> //http://www.developpez.net/forums/showthread.phpt=15351&highlight=U
> > rl
> > > Connection
> > >
> > > import java.io.*;
> > > import java.net.*;
> > >
> > > public class Test {
> > >  public Test() {
> > >  }
> > > // public static void main (String [] args) => supprimé
> > >  {
> > >  try {
> > >
> > > URL url= new URL
> > >
> >
("http://ichart.yahoo.com/table.csvs=AGF.PA&d=11&e=18&f=2006&g=d&a=0&b
> > > =3&c=2000&ignore=.csv");
> > > URLConnection con= url.openConnection();
> > >  InputStream in = con.getInputStream();
> > > FileOutputStream out= new FileOutputStream("AGF.txt");
> > > 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();
> > > }
> > >  }//main
> > >  }//class
> > >
> > >
> > > LE CODE DIYTrader002 : il faut supprimer
> > >  //public static void main(String[] args) à la ligne 38
> > >
> > > cordialement
> > >
> > > albert
> > >
> > >
> > > --- Dans JavaBourse@..., "albert95120" <alai4285@>
a
> > > écrit :
> > > >
> > > >   Bonjour Pierre, forumiens et forumiennes,
> > > >
> > > > Je suis à la recherche d'une aide pour compléter le code
> > > DIYTrader002
> > > >
> > > > A partir de cet exemple :
> > > >
> > >
> >
http://www.developpez.net/forums/showthread.phpt=15351&highlight=UrlCo
> > > > nnection
> > > >
> > > > import java.io.*;
> > > > import java.net.*;
> > > >
> > > > public class Test {
> > > >  public Test() {   }
> > > >
> > > >  public static void main(String argv[]) {
> > > >  try {
> > > >
> > > > URL url= new URL("http://ichart.yahoo.com/table.csv?s=%
> > > > 5EFCHI&d=3&e=1&f=2007&g=d&a=2&b=1&c=1990&ignore=.csv");
> > > > URLConnection con= url.openConnection();
> > > >  InputStream in = con.getInputStream();
> > > > FileOutputStream out= new FileOutputStream("CAC40.txt");
> > > > 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();
> > > > }
> > > >
> > > > }//main
> > > >
> > > > }//class
> > > >
> > > >
> > > > au code DIYTrader002, j'ai ajouté import java.io.*;
> > > > et import java.net.*;
> > > >
> > > > Puis j'ai remplacé  public DIYTrader002 par « public class
> > > Import »,
> > > > ce qui permet d'ajouter le code de téléchargement de
l'historique
> > > sur
> > > > yahoo (qui provient de class Test).
> > > >
> > > > Je supprime « public » à class DIYTrader002
> > > > Et je compile... ça marche, les 2 classes sont créées dans
src :
> > > > « DIYTrader002.class » et « Import.class »
> > > >
> > > > Il y a donc deux fois public static void main(String argv[])
ce
> > qui
> > > > m'oblige à exécuter le code en 2 fois, mais ça fonctionne à
> > > > merveille.
> > > >
> > > > Ma question :
> > > >
> > > > Pour obtenir le graphique en exécutant le code en 1 seule
fois,
> > je
> > > > suppose qu'il faut que les classes soient indépendantes et
que la
> > > > méhode « main » appelle l'autre classe, ou bien encore, il
faut
> > > soit
> > > > une méthode « main », soit une méthode « public static void
main
> > > > (String argv[]) » , qui appelle les deux autres classes.
> > > >
> > > > Mais dans les deux cas, j'ai fait des essais qui n'ont pas
> > > > fonctionné. J'ai conscience que ces procédures sont
essentielles
> > > pour
> > > > la programmation java, mais je ne sais pas m'en débrouiller
tout
> > > seul
> > > > malgré la relecture des cours de programmation que j'ai pu
> > trouver
> > > > sur internet.
> > > >
> > > > Alors, comment puis-je procéder ???
> > > >
> > > > Merci d'avance
> > > >
> > > > albert
> > > >
> > >
> >
>

#51 De: "pierre8rou" <pierre8r@...>
Date: Jeudi 17. Mai 2007  9:14
Sujet: Seriez-vous intéressé par une offre de service de support payant ?
pierre8rou
Envoyer un message Envoyer un message
 
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.

#52 De: "pierre8rou" <pierre8r@...>
Date: Samedi 19. Mai 2007  17:23
Sujet: Création d'un groupe Google pour présenter mon activité de support.
pierre8rou
Envoyer un message Envoyer un message
 
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

#54 De: "pierre8rou" <pierre8r@...>
Date: Samedi 19. Mai 2007  18:22
Sujet: Réecriture des tutoriaux de JSystemTrader sous forme de vidéos
pierre8rou
Envoyer un message Envoyer un message
 
Bonjour,

J'ai réecrit les tutoriaux de JSystemTrader sous forme de vidéos.
Vous pouvez y accéder gratuitement en vous inscrivant au groupe Google :
http://groups.google.fr/group/agile-trader-fr

Tutoriaux sur JSystemTrader :

PDF
Présentation de JSystemTrader.
http://groups.google.fr/group/mongroupeamoi/web/GDUJST-001-Pr%C3%A9sentation.pdf

Vidéo
Installer JSystemTrader dans Eclipse.
http://groups.google.fr/group/mongroupeamoi/web/GDUJST-002-Installer.htm


Vidéos disponibles gratuitement en vous inscrivant au groupe Google :
http://groups.google.fr/group/agile-trader-fr

Vidéo
Télécharger des cours.

Vidéo
Backtester.

Cordialement,

Pierre

#55 De: "pierre8rou" <pierre8r@...>
Date: Vendredi 29. Juin 2007  21:43
Sujet: Nouveau programme d'import de quotations d'un fichier texte dans une BD HSQLDB.
pierre8rou
Envoyer un message Envoyer un message
 
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

#58 De: "pierre8rou" <pierre8r@...>
Date: Dimanche 19. Août 2007  19:59
Sujet: Programme Java en ligne de commande de connexion aux API d'IB.
pierre8rou
Envoyer un message Envoyer un message
 
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

#60 De: "myoume31" <myoume31@...>
Date: Samedi 25. Août 2007  0:21
Sujet: [java] optimidation du portefeuille
myoume31
Envoyer un message Envoyer un message
 
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

#61 De: "pierre8rou" <pierre8r@...>
Date: Lundi 3. Septembre 2007  9:58
Sujet: Programme Java en ligne de commande de connexion aux API d'IB.
pierre8rou
Envoyer un message Envoyer un message
 
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.

#64 De: "albert95120" <alai4285@...>
Date: Lundi 3. Septembre 2007  14:05
Sujet: Re : [java] optimidation du portefeuille
albert95120
Envoyer un message Envoyer un message
 
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
>

#65 De: Chris Camel <casse_bonbon31@...>
Date: Mardi 4. Septembre 2007  6:36
Sujet: RE: Re : Connaissez-vous un ou des projets boursiers open source en Java ?
casse_bonbon31
Envoyer un message Envoyer un message
 
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@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

#66 De: "albert95120" <alai4285@...>
Date: Mardi 4. Septembre 2007  13:54
Sujet: Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
albert95120
Envoyer un message Envoyer un message
 
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




--- 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
>

#67 De: Chris Camel <casse_bonbon31@...>
Date: Mercredi 5. Septembre 2007  10:30
Sujet: RE: Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
casse_bonbon31
Envoyer un message Envoyer un message
 
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


.



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

#68 De: "albert95120" <alai4285@...>
Date: Jeudi 6. Septembre 2007  15:11
Sujet: Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
albert95120
Envoyer un message Envoyer un message
 
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
>

#69 De: Chris Camel <casse_bonbon31@...>
Date: Lundi 10. Septembre 2007  8:32
Sujet: RE: Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
casse_bonbon31
Envoyer un message Envoyer un message
 
 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/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

#70 De: "pierre8rou" <pierre8r@...>
Date: Mardi 11. Septembre 2007  7:54
Sujet: Messages bloqués.
pierre8rou
Envoyer un message Envoyer un message
 
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

#71 De: "albert95120" <alai4285@...>
Date: Mardi 11. Septembre 2007  14:52
Sujet: Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java ?
albert95120
Envoyer un message Envoyer un message
 
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
>

#72 De: "pierre8rou" <pierre8r@...>
Date: Mardi 11. Septembre 2007  15:40
Sujet: Tutoriel de programmation en Java des API TWS. Nouvelle version, payante.
pierre8rou
Envoyer un message Envoyer un message
 
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

#73 De: Chris Camel <casse_bonbon31@...>
Date: Mardi 11. Septembre 2007  16:52
Sujet: RE: Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java
casse_bonbon31
Envoyer un message Envoyer un message
 
 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


.



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

#74 De: "albert95120" <alai4285@...>
Date: Jeudi 13. Septembre 2007  8:42
Sujet: Re : Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java
albert95120
Envoyer un message Envoyer un message
 
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
>

#75 De: "albert95120" <alai4285@...>
Date: Jeudi 13. Septembre 2007  14:46
Sujet: Re : Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en Java
albert95120
Envoyer un message Envoyer un message
 
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
> >
>

#76 De: Chris Camel <casse_bonbon31@...>
Date: Jeudi 13. Septembre 2007  15:11
Sujet: RE: Re : Re : Re : Re : Re : Connaissez-vous un ou des projets boursiers open source en
casse_bonbon31
Envoyer un message Envoyer un message
 
Super !

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

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




Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail et bénéficiez de 2 Go de stockage ! Windows Live Hotmail

#77 De: "pierre8rou" <pierre8r@...>
Date: Jeudi 20. Septembre 2007  12:14
Sujet: Rencontre lors du salon du trading
pierre8rou
Envoyer un message Envoyer un message
 
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

#78 De: "pierre8rou" <pierre8r@...>
Date: Jeudi 20. Septembre 2007  12:18
Sujet: Re : Rencontre lors du salon du trading
pierre8rou
Envoyer un message Envoyer un message
 
J'ai oublié l'adresse du site du salon.

http://www.salonat.com/

Pierre

#81 De: "arsneufe" <arsneufe@...>
Date: Jeudi 29. Novembre 2007  12:32
Sujet: Creation d'un JAR à partir de DIYtrader002
arsneufe
Envoyer un message Envoyer un message
 
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 :(

?

#83 De: "pierre8rou" <pierre8r-gy@...>
Date: Mardi 28. Octobre 2008  15:29
Sujet: Que pensez-vous du développement d'une classe façade autour de l'API d'IB ?
pierre8rou
Envoyer un message Envoyer un message
 
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

#84 De: "pierre8rou" <pierre8r-gy@...>
Date: Mardi 16. Décembre 2008  17:12
Sujet: Logiciel de trading ATS Multi Time Frames, utilisant les API d'IB
pierre8rou
Envoyer un message Envoyer un message
 
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.

#85 De: "pat06200" <pat06200@...>
Date: Vendredi 8. Octobre 2010  4:39
Sujet: Bonjour à tous
pat06200
Envoyer un message Envoyer un message
 
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

Messages 47 - 85 sur 85   Le plus ancien  |  < Plus ancien  |  Plus récent >  |  Le plus récent
Messages 47 - 85 sur 85   Le plus ancien  |  < Plus ancien  |  Plus récent >  |  Le plus récent
Avancée

Copyright © 2010 Yahoo! France SAS – Tous droits réservés.
Données Personnelles NOUVEAU - Conditions d'utilisation - Charte - Signaler un abus - Aide