IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Comment définir une base de données de cotations boursières?


Sujet :

Java

  1. #1
    Membre averti
    Avatar de Pierre8r
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 518
    Points : 341
    Points
    341
    Par défaut Comment définir une base de données de cotations boursières?
    Bonjour,

    Je souhaiterai des conseilles pour m'aider à définir une base de données de cotations boursières.

    Je pense utiliser ce moteur de base de données.
    http://www.h2database.com

    Comment organiser ma BD ?
    Faut-il que je crée une table par symbole boursier ?
    Faut-il que je crée une seule table pour tous les symboles boursier, mais en ajoutant un indicateur pour identifier les symboles ?
    En fait il peut y avoir plusieurs time-frame pour un même symbole.
    Time-frame horaire, journalier, mensuel etc.

    Voici comment sont stockées les données en mémoire.

    La class PriceBar stocke un enregistrement.
    La class Quotes stocke une liste d'enregistrements.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    package jopencomponents.symbol;
     
    import org.joda.time.DateTime;
     
     
    /**
     * Encapsulates the price bar information.
     */
    public class PriceBar {
     
        private long date;
        private double open, high, low, close;
        private long volume;
     
        /**
         * This constructor is used to create a new historical bar
         */
        public PriceBar(long date, double open, double high, double low, double close, long volume) {
            this.date = date;
            this.open = open;
            this.high = high;
            this.low = low;
            this.close = close;
            this.volume = volume;
        }
     
        @Override
        public String toString() {
            StringBuilder sb = new StringBuilder();
            sb.append(" date: ").append(getShortDate());
            sb.append(" open: ").append(open);
            sb.append(" high: ").append(high);
            sb.append(" low: ").append(low);
            sb.append(" close: ").append(close);
            sb.append(" volume: ").append(volume);
     
            return sb.toString();
        }
     
        public String getShortDate() {
        	DateTime dateTime = new DateTime(date);
    		return dateTime.toString("dd MMMMM yyyy");
    	}
     
    	public double getOpen() {
            return open;
        }
     
        public double getHigh() {
            return high;
        }
     
        public double getLow() {
            return low;
        }
     
        public double getClose() {
            return close;
        }
     
        public double getMidpoint() {
            return (low + high) / 2;
        }
     
        public void setOpen(double open) {
            this.open = open;
        }
     
        public void setHigh(double high) {
            this.high = high;
        }
     
        public void setLow(double low) {
            this.low = low;
        }
     
        public void setClose(double close) {
            this.close = close;
        }
     
        public void setDate(long date) {
            this.date = date;
        }
     
        public void setVolume(long volume) {
            this.volume = volume;
        }
     
        public long getVolume() {
            return volume;
        }
     
        public DateTime getDateTime() {
        	DateTime dateTime = new DateTime(date);
            return dateTime;
        }
     
    	public long getDate() {
    		return date;
    	}
     
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import jopencomponents.startup.Params;
    
    import org.apache.log4j.Logger;
    import org.joda.time.DateTime;
    
    /**
     * Holds and validates quotes.
     */
    public abstract class Quotes {
    	final static Logger log = Logger.getLogger(Quotes.class);
    	private static final String lineSep = System.getProperty("line.separator");
    
    	private final List<PriceBar> priceBars = new ArrayList<PriceBar>();
    	private final BarSize barSize;
    	private PriceBar nextBar;
    
    	private PrintWriter writer;
    
    	public Quotes(BarSize barSize) {
    		this.barSize = barSize;
    	}
    
    etc.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Ca depend de:

    - quel type d'instruments tu veux stocker dans ta base: par exemple les FX (currencies) n'ont pas les meme info que les stocks or les taux ..... (voir sur le site boursorama)

    - que veux-tu stocker dans la base, intraday or extraday (historique), .....

Discussions similaires

  1. Comment attacher une base de données sans son fichier log
    Par callo dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 05/06/2014, 11h03
  2. [VB.NET] Comment compacter une base de données Access ?
    Par xVINCEx dans le forum Contribuez
    Réponses: 6
    Dernier message: 05/06/2008, 18h35
  3. Comment créer une base de donnée Access ?
    Par Soulama dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/10/2005, 14h56
  4. comment vider une base de donnée
    Par caps_corp dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/04/2004, 16h54
  5. Comment acceder à une base de donnée F1.db_ ?
    Par diado dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/12/2003, 08h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo