Konvertieren von Excel und Ascii Daten in verschiedene Formate

      Datenkonvertierung

      Hallo Rene,

      eine kleine Zwischenfrage: sind die Originaldaten mit Semikolon getrennt und Texte in ", also so:

      "PRODUCT_ID";"CALL_PUT_FLAG";"EXP_MONTH";"EXP_YEAR";"EXERCISE_PRICE";"VERSION";"YEAR";"MONTH";"DAY";"HOUR";"MINUTE";"SECOND";"CENTISECOND";"MATCH_PRICE";"TRADE_SIZE";"ISO_ALPHA_CODE";"TRADE_TYPE";"REGIONAL_TIMESTAMP";"MILLISECONDS"
      "F1BQ";"F";01;2004;0;0;2003;12;01;11;27;24;17;36.5;15;"EUR";"X";12/01/2003 11:27:24;170

      oder durch Leerzeichen, wie du bislang gepostet hast?
      Ich habe gerade einen Access-Import vorbereitet, den ich dir dann schicken kann.

      Gruss, Jens
      Erst einmal vielen Dank für Eure Bemühungen. Ich werde also etwas weiter ausholen. Denn auch ich habe mit dem einen oder anderen programm meine Problemchen.

      Excel: Wollte ich eigentlich verwenden um die Daten zu konvertieren, die Spaltenanordnung zu ändern und ascii für Tradestation oder metastock zu erzeugen. Leider hat Excel ja das genannte problem der Beschränkung auf 65000 Zeilen. Letztendlich habe ich es gestern geschafft, eine Monatsdatei des FGBL auf 9 Tabellenblätter abzulegen. Mit einem kleinen Makro habe ich dann auf jedem Ballt die Spalten ordentlich fprmatiert, also aus 2005 wurde 05, aus 1 01 etc. Damit war Ordnung in der Darstellung.
      Mit einem Filter ist sogar möglich, die einzelnen Kontraktmonate zu isolieren. Das Hauptproblem bleibt aber, das diese viele Arbeit schon bei einer Monatsdatei extrem nervt. Jetzt stellt Euch vor, so müssten die Daten seit 2000 in ascii gewandelt werden. Ich vermute also Excel fällt aus.

      Access: Hier bin ich noch total unbeholfen. Wenn ich die .csv Datei mit Access öffnen möchte, startet ein Manager, der die Formatierung der Tabelle übernimmt. Hier werden die Trennzeichen festgelegt, und welche Spalten evtl. nicht benötigt werden. Danch wird mir "Verknüpfung der Tabelle " abgeschlossen gemeldet. Mit einem Klick aufs Icon wird dann meine Tabelle geladen. Über einen kleinen Umweg ist es mir gelungen, alle 6 Monate FGBL 01-06 in eine Tabelle zu bekommen. Ich habe die .csv Datein in einem Texteditor hintereinader gehängt und wieder abgespeichert.
      Soweit sieht das schon gut aus. Ich kann mit der Filterfunktion die einzelnen Kontraktmonate filtern, auch gut. Aber mein Versuch die Zahlenwerte selbst zu editiren, zum beispiel um die Jahresangaben zweistellig zu schreiben oder Ziffern zweistellig, scheiterte. Access weigert sich Änderungen an der Tabelle vorzunehmen. Wahrscheinlich handelt es sich hier um einen Bedienungsfehler von mir??
      Problem war auch ,dass Access die ursprünglichen Kursangaben für den Bund mit Dezimalpunkt nicht als Zahl einlesen konnte, es wurde immer eine unbrauchbare Stringausgabe daraus. Erst nachdem ich in einem Texteditor in allen Datein die Dezimalpunkte gegen Kommatas getauscht hatte, ging es mit Access einzulese.

      Mal eine zwischenfrage: ist es Metastock, Tradestation und wie sioe alle heißen eigentlich egal ob das Datum und die Zeit so:

      01/01/2005 09:05:10

      oder

      1/1/05 9:5:10

      geschrieben wird??

      Ich vermute mal nein, was natürlich ein problem aufwirft. In den Daten der DB, sind Zahlenangaben oft einstellig, ohne führende Null.

      Tickscruncher:

      Der liest die alten T&S Listen und extrahiert die einzelnen Kontrktmonate und komprimiert auf Wunsch zu 5min oder Dayli. Das ganze wird im normale Ascci Format ausgegeben und kann sofort in die TS zum Beispiel eingelesen werden.

      Nun zu den Datenformaten:

      Früher war das:

      pro- t ex ex v date match
      duct y mt yr strke s year mt dy hr mn sc cs price size
      ---- - -- -- ----- - ---- -- -- -- -- -- -- -------- -------
      BUND 12 90 0 0 1990 11 23 07 59 33 00 83.23 11
      BUND 12 90 0 0 1990 11 23 08 00 06 00 83.23 9
      BUND 12 90 0 0 1990 11 23 08 00 43 00 83.23 5
      BUND 12 90 0 0 1990 11 23 08 01 57 00 83.20 25

      das liest auch der TC ein, allerdings wirklich extrem pingelich. So waren die Daten bis etwa 2003 strukturiert.

      Jetziges Format der Eurex:

      PRODUCT_ID CALL_PUT_FLAG EXP_MONTH EXP_YEAR EXERCISE_PRICE VERSION YEAR MONTH DAY HOUR MINUTE SECOND CENTISECOND MATCH_PRICE TRADE_SIZE ISO_ALPHA_CODE TRADE_TYPE REGIONAL_TIMESTAMP MILLISECONDS
      FGBL F 3 2005 0 0 2005 1 3 8 2 14 63 118,42 2385 EUR X 01.03.2005 08:02 630
      FGBL F 3 2005 0 0 2005 1 3 8 2 15 20 118,42 26 EUR X 01.03.2005 08:02 200
      FGBL F 3 2005 0 0 2005 1 3 8 2 15 99 118,41 151 EUR X 01.03.2005 08:02 990
      FGBL F 3 2005 0 0 2005 1 3 8 2 15 99 118,42 164 EUR X 01.03.2005 08:02 990
      FGBL F 3 2005 0 0 2005 1 3 8 2 15 99 118,4 185 EUR X 01.03.2005 08:02 990


      Das Endprodukt dürfte Euch allen soweit gelaüfig sein, eines der gängigen Ascii Formate mit Semikolon als Trennzeichen und den Angaben zu Datum Zeit Kurs Volumen und OI für Tickdaten oder eben
      Datum Zeit OHCL und Volumen und evtl OI für intraday komprimierte Daten oder EOD. Also, ich vermute, Excell scheided aus, wegen der Datenmenge, die nicht in einem Durchgang geladen werden kann.

      Ich bin gerne bereit mich in VB einzuarbeiten, wenn ich damit weiter komme.
      8) --- sonnige Grüße -> von Rene --- 8)

      Rene Rose online
      Hallo Rene,

      vorab: Excel ist ein Tabellenkalkulationsprogramm und sollte NIE für die Speicherung von Daten eingesetzt werden. Ich hab schon oft mit Konvertierung von Daten gearbeitet und ich fluche immer wenn mir Kunden Produktdaten im Excel-Format zusenden, gut dass es da noch Access gibt, welches das Excelformat versteht...

      So wie ich das verstanden habe liegen die Daten nicht mit einem bestimmten Trennzeichen vor sondern mit einer fixen Spaltenbreite. Dadurch wird es sehr unflexibel wenn noch eine Spalte dazu kommt, oder eine andere entfernt wird. Empfehlenswert ist es zukünftig z.B. Tab oder Pipe als Trennzeichen zu verwenden.

      Wenn du die Daten umkonvertieren möchtest (also z.B. einige Spalten entfernen etc) dann empfiehlt sich Access dazu. Dort kannst du die Daten in einer Tabelle importieren (fixe Spaltenbreite einstellen), bearbeiten (Spalten löschen) und in deinem gewünschten Format wieder exportieren.

      Für weitere, manchmal notwendige, Bearbeitungsvorgänge benutze ich immer PHP.

      EDIT: Beim Importieren muss man darauf achten dass die Spalteneigenschaften richtig definiert sind (am besten immer [Text] oder [Memo] wenn es Importfehler mit den vordefinierten Werten geben sollte).

      RE: Kovertieren von Excel und Ascii Daten in verschiedene Formate

      Ich denke das Hauptproblem ist das Format für das alte Hilfsprogramm. Da es völlig unflexibel ist, würde ich es kicken. Ich denke in Access mit SQL und evtl. VBA könnte man auch beliebige Aggregate herstellen, d.h. 5, 30, 60, Tick oder sonst was und diese dann ausgeben. Scheint mir praktikabel und vor allem hast Du dann alle Daten in Access. Habe mal eben rumprobiert, klappt ganz gut. Allerdings ist das mit ein Arbeit verbunden.

      Gruß

      american

      RE: Kovertieren von Excel und Ascii Daten in verschiedene Formate

      Hallo Rene,

      ich denke, da lässt sich was machen.

      So wie du das Problem schilderst, scheint mir Access erste Wahl zu sein, weil es prädestiniert ist für grosse Datenmengen und auch mittels (SQL-)Abfragen nahezu beliebige Auswertungen ermöglicht. Und wenn alles nix hilft, kann man mit VBA nachhelfen.
      Ich hab mal auf die Schnelle bei der DB geforscht und eine Beschreibung des neuen Formats gefunden, bin allerdings nicht sicher, ob das genau die von dir verwendeten Daten sind.
      Wie american schreibt, wären Beispiel-Textdateien hilfreich.
      Ferner wäre es wichtig zu wissen: welche Felder des neuen Formats gehören zu welchen des alten und wie genau ist das alte Format definiert.
      Ob Konvertierung in dein altes Format sinnvoll ist oder z.B. eine komplett neue Access-Lösung, hängt sicherlich davon ab, welche Funktionen das jetzige Hilfsprogramm beinhaltet. Da müsste man sehen, ob der Aufwand einer Portierung auf Access lohnt.

      Gruss, Jens

      RE: Kovertieren von Excel und Ascii Daten in verschiedene Formate

      @rene
      kannst Du mir bitte eine Textdatei mit ein paar Beispieldaten zukommen lassen? Vielleicht hier posten.
      Was meinst Du mit "Außerdem ist Access nicht in der Lage, Daten wie 118.25 in dieser Form wieder auszugeben." Was heißt ausgeben (wohin, welches Format) und warum sollte Access keine Festkommazahlen beherrschen?
      Warum sind Strings nicht lesbar?
      Vielleicht könntest Du in einigen knappen Sätzen genau beschreiben, was Access tun soll

      Möcht gerne helfen.

      Gruß

      american

      Konvertieren von Excel und Ascii Daten in verschiedene Formate

      Hallo Kollegen!

      Ich habe alle Threads auf Aktienboard durchgearbeitet, die sich mit Ascii-Daten beschäftigen. Leider habe ich zu meiner problemstellung nichts brauchbares gefunden. Deshalb stelle ich die Fargen nunöffentlich.

      Folgende Problemstellung:

      Konvertierung von Kursdaten die in zwei verschiedenen Formaten vorliegen. Erzeugung von Einzelnen Times und Sales Listen aus dem Datenbanken der deutschen Börse. Zur Info, die DB liefert die Kursdaten historischer Kurse wie FDax und FGBL in der Regel in einem Mischformat aller gehandelten Kontrakte eines Quartals. Das heißt, die Datei vom Januar 2005 enthält die Daten aller drei oder vier Kontrakte vom FDax (falls diese gehandelt wurden)

      Für die weitere Verarbeitung in Analysesoftware oder für die Erzeugung von Endloskontrakten ist es zunächst nötig, diese Daten zu trennen und entsprechende Listen für jeden einzelnen Kontrakt herzustellen.

      Das ältere Format meiner Datenbanken sieht wie folgt aus:

      pro- t ex ex v date match
      duct y mt yr strke s year mt dy hr mn sc cs price size
      ---- - -- -- ----- - ---- -- -- -- -- -- -- -------- -------
      FDAX 03 94 0 0 1994 01 03 09 32 46 92 2269.00 76


      Dieses Format kann ich problemlos mit einem kleinen Hilfsprogramm verarbeiten und die benötigten Listen herstellen. Die ausgegebenen Datein haben das übliche Format Ascii, welches in die meisten Analyseprogramme importiert werden kann. Außerdem erzeugt mir mein Hilfsprogramm Endloskontrakte und zwar von Tickdaten angefangen bis Dayly Daten.

      Problematisch wird es nun, weil die DB das Format Ihrer Daten geändert hat und mein kleines Hilfsprogramm leider extrem unflexibel ist.

      Das aktuelle Dateiformat der DB sieht so aus:

      PRODUCT_ID CALL_PUT_FLAG EXP_MONTH EXP_YEAR EXERCISE_PRICE VERSION YEAR MONTH DAY HOUR MINUTE SECOND CENTISECOND MATCH_PRICE TRADE_SIZE ISO_ALPHA_CODE TRADE_TYPE REGIONAL_TIMESTAMP MILLISECONDS
      FGBL F 3 2005 0 0 2005 1 3 8 2 14 63 118.42 2385 EUR X 01.03.2005 08:02 630


      Nun suche ich nach einem Weg, dieses Format ins alte Format der Times and Sales Listen, welches weiter oben abgebildet ist zu konvertieren. Dabei muss ich exakt vorgehen. Sowohl die Anzahl der Leerezeichen zwischen den einzelnen Spalten, als auch die Schreibweise der Ziffern 03 oder 05 sind wichtig. Wird diese Konvention nicht eingehalten, liest mein Hilfsprogramm die Daten nicht ein.

      Vielleicht gibt es auch einen Weg, ohne mein Hilfsprogramm zu benutzen?? Die von der DB gelieferten Daten können wegen der Größe der Dateien nicht in Excel eingelesen werden. Excel meldet immer, dass ein teil der Daten nicht gelesen werden konnte. Die DAtein der DB überschreiten das Zeilenlimit von Excel um das mehrfache. Ich habe mein Glück mit Access versucht. Der Import klappt, auch die Anlage einer neuen Spaltenstruktur funktioniert. Nur leider unterschlägt das programm bei Ziffern wie 03 oder 05 die Null, was fatal für mein Hilfsprogramm ist. Außerdem ist Access nicht in der Lage, Daten wie 118.25 in dieser Form wieder auszugeben. Entweder werden die Zahlen gerundet oder aber in nicht lesbare Strings gewandelt. Also scheint mir das nicht der richtige Weg zu sein.
      Wenn es nun gelänge, die Daten zunächst mal komplett in Excell zu laden, wäre es sicher irgendwie möglich, eine Formatierung vorzunehmen. Die langen Datein der DB lassen sich auf Grund der größe und der großen Anzahl nicht per Hand teilen, aber wie bekomme ich die langen Dinger in eine Excel Tabelle??

      Fragen über Fragen!!!

      Ich bin für jede Anregung dankbar.....
      8) --- sonnige Grüße -> von Rene --- 8)

      Rene Rose online