You are not logged in.

Hintman

Team Candletrading

Posts: 8,775

Location: Österreich

Occupation: Trader

Thanks: 1242

  • Send private message

50

Saturday, November 12th 2005, 10:54am

Hi Rene,

also bei mir klappt es unter allen Testadressen, wir hatten das schon mal, liegt zum Glück nicht mehr an uns :)
Parameter für Trading "Frei Schnauze": Stopp-Loss 0,6-fache ATR, Profit Target 1,8-fache ATR. Zeitstopp greift am 5. Tag des Trades.
Meine Postings stellen keine Aufforderung zum Wertpapierkauf dar, dafür ist jeder selbst verantwortlich.

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

49

Friday, November 11th 2005, 9:57am

Hi Jens!

Die MAilbenachrichtigung zu diesem Thread scheint nicht zu klappen!

Inzwischen habe ich die ersten vier kompletten Kontrakte isoliert und kann diese von Tick an aufwärts komprimieren!

Danke noch einmal für die Hilfe!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

48

Thursday, October 6th 2005, 3:44pm

Hallo Rene,

das tut man aber auch nich, ein Programm so an den Rand seiner Möglichkeiten zu bringen :D
Bin gerade aus dem urlaub zurück, daher meine späte Antwort. Aber es freut mich natürlich, daß du jetzt alles soweit hin hast.

Gruss, Jens

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

47

Thursday, September 22nd 2005, 3:49pm

her jeh, da muss man erst mal drauf kommen. Sobald die Datenbank die 2Gb erreicht, geht Access in die Kniee und spielt völlig verrückt. Mit etwas pech lässt sich die Datenbank dann auch nicht mehr reparieren.

Ich habe also alles neu angelegt und die VB Skripts neu eingespielt. Nun läuft es.
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

46

Thursday, September 22nd 2005, 9:06am

Hallo Jens!

Nachdem ich einige Zeit mit einem anderen Projekt beschäftigt war, wollte ich nun am Datenimport weiter arbeiten. Die Funktionen waren alle so weit fertig, dass ich bereits die Ausgabedatei erzeugen konnte. Nun plötzlich kamen an den seltsamsten Stellen Fehlermeldungen.
Ich entdeck´te einen aktivierten Active X Verweis und habe ihn entfernt. Trotzdem kommt nun bei jedem Versuch das Programm laufen zu lassen

"Ungültiges Argument" Danach stürzt Access ab. Sogar bei der Funktion Extras - Dienstprogramme - Komprimierung

stürzt das programm ab. Ich bin nun reichlich ratlos!

Woran könnte das Verhalten liegen? Ich habe keine Idee!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

45

Tuesday, August 23rd 2005, 9:30am

ich Trottel, habs doch gefunden!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

44

Tuesday, August 23rd 2005, 8:51am

Problem gelöst! :)

aber ich habe ein nächstes, wo ich den Fehler nicht finde:

In folgender prozedur wird unter Angabe eines Pfades der Importvorgang gestartet. Das Programm liest die Dateinamen und wenn alle Kürzel stimmen werden die Daten importiert! Manchmal bekomme ich allerdings einen merkwürdigen Laufzeitfehler. Es wird gemeldet, das die Datenbank das Objekt

index_fdax_ ..... nicht finden kann. Den Dateinamen aus dieser Fehlermeldung kann Access allerdings nur kennen, wenn dieser vorhar an Hand der Pfadangabe ausgelesen wurde, was ja logischerweise nur geht, wenn dort die Datei mit diesem Namen vorhanden ist! Irgendwie sehr merkwürdig!

Vielleicht hat jemand einen Hinweis??
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

43

Monday, August 22nd 2005, 8:41pm

Nun taucht doch ein Problem auf, bei dem ich einfach nicht weiterkomme. Ich möchte die Tabellenliste der offenen Datenbank überprüfen, ob eine Tabelle mit bestimmten Namen bereits existiert. leider finde ich keine funktionierende Lösung. Die folgende Routine wird zwar durchlaufen, funktioniert aber nicht, da in der folgenden Routine, die die neue Tabelle erzeugt dann ein Laufzeitfehler "Tabelle besteht bereits" generiert wird.


Frag: Wie durchsuche ich die TableDefs Auflistung nach einem gegebenen Namen??


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'Prüfen, ob Tabelle bereits vorhanden ist
Sub CheckTables(TableName, TableFlag)
    Dim db As Database, tdList As TableDefs, i As Variant
    Dim td As TableDef
    Set db = CurrentDb
    Set tdList = db.TableDefs
    For Each td In tdList
        If td.Name = TableName Then
            MsgBox "Tabelle ist bereits vorhanden"
            TableFlag = 1
        End If
    Next td
            
   
End Sub
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

42

Sunday, August 21st 2005, 9:27pm

und ich habe auch ein fertiges Ergebnis:

auf Knopfdruck werden alle Dateien in einem Ordner in eine Tabelle importiert, dann wird die Ausgabedatei erzeugt! Zwischendurch wird geprüft ob die Dateien alle das selbe Underlying enthalten!


Damit kann ich schon gut arbeiten!

Ich denke, jetzt habe ich erst mal keine Fragen mehr!

Vielen Dank füpr die Unterstützung!!! Bei Fragen zu Equilla bitte an meine Mail Adresse schreiben!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

41

Sunday, August 21st 2005, 6:53pm

Hallo Rene,

danke für den Tipp mit den global Vars! Hat auf Anhieb super funktioniert, dieses Problem war mir schon länger ein Dorn im Auge. Naja, wie du auch immer sagst, Equilla und VBA sind gar nicht so weit voneinander entfernt.

Gruss, Jens

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

40

Saturday, August 20th 2005, 11:57pm

Hallo Jens!

Danke für Deine Ausarbeitung. Transfertext war, was ich gesucht habe. Ich wollte das schon einzeln mit String Schnipseleien machen. Morgen teste ich das neu gelernte!

Zu Deinem problem: Das geht ganz einfach, Du (ich helfe Dir) schreibst einen zweiten Indikazor, der den KCH darstellt. Die Angabe für Periode und ATR übergibst Du aus dem ersten Indikator mittels zweier globaler Variablen. Am besten, Du schickst mir mal einen Arbeitsbereich, ich mache das dann fertig und Du siehst wie es geht!


PS: die Mailbenachrichtigung für diesen Thread funktioniert leider immer noch nicht!!!!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

39

Saturday, August 20th 2005, 2:02pm

Hallo Rene,

prima, daß du schon so weit gekommen bist!
Zum Abarbeiten einer Reihe von Dateien mal ein Codebeispiel aus der Access-Hilfe:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub FileFind()
'Beispiel aus VBA-Hilfe unter Execute-Methode (FileSearch-Objekt)
Dim i As Integer, fs As Object

Set fs = Application.FileSearch
With fs
    .LookIn = "e:\temp"
    .FileName = "*.pdf"
    If .Execute() > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
            " file(s) found."
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With

End Sub


Dies müsstest du jetzt kombinieren mit dem eigentlichen Textimport mit der TransferText-Methode, bei der dann die bereits vorhandene Importspezifikation angegeben wird. Details und ein (simples) Beispiel findest du in der VBA-Hilfe unter " TransferText-Methode".

... wo wir hier gerade beieinander sind, ich habe momentan ein TSe-Problem:
Ich habe einen Indikator erstellt, der Daten aus der Funktion KeltnerChannel(...) benutzt. Das Resultat wird als Subchart angezeigt - soweit ok. Nun möchte ich im Hauptchart den dazugehörigen KCH darstellen, d.h. dieser soll dieselben Parameter verwenden wie die Funktion in meinem Indikator. Bislang muß ich Periode, Faktor etc. sowohl für den Chart als auch für den Indikator separat angeben. Kann man das in einem Aufwasch erledigen?

Gruss, Jens

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

38

Friday, August 19th 2005, 6:03pm

Inzwischen ist die nächste Frage aufgetaucht:

Ist es in VB möglich, den gesamten Importvorgang zu automatisieren?? Ich würde gerne alle in einem Ordner liegenden .csv Dateien in eine Access Tabelle importieren ohne diesen Schritt immer wieder durchführen zu müssen!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

37

Friday, August 19th 2005, 3:38pm

Hallo Jens!

Ich hatte nun endlich mal wieder Zeit, an meiner Formatierung zu arbeiten! Bin immer wieder überrascht, wie einfach es doch geht, weil die Gemeinsamkeiten zu Equilla sehr groß sind.

TradeSize lässt sich mit Format nicht bearbeiten. Das Programm macht eine 5 STellige Zahl daraus. Aber ich habe das Problem mit einige Stringoperationen gelöst. Ich stelle den Code nachher hier rein.
Inzwischen wird auch der Header der alten Times and Sales Listen an den Anfang der erzeugten Datei gesetzt! Dieser ist wichtig, weil der TC daraus die Spaltenbezeichnung ausliest.

Das nächste Ziel ist die Benennung des Dateinamens nach dem Symbol, dessen Tickdaten formatiert werden. Danach möchte ich noch erreichen, dass alle .csv dateien die im Eingangsordner liegen automatisch bearbeitet werden! Die VB Hilfe in Access ist wirklich gut!

Wenn ich ein fertiges Skript habe, kann ich das gerne mal reinstellen!

Danke schon mal für Deine Tatkräftige Unterstützung!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

36

Friday, August 5th 2005, 11:44am

Hallo Jens!

Ich bin noch da! Aber nicht mehr lange....

Habe inzwischen mit meinen Equillakenntnissen einiges erreichen könne. Dazu kommen jetzt wertvolle Anregungen aus Deinem Positing. Nach meinem Urlaub werde ich das einarbeiten.

Mir ist es bisher gelungen, das alte Format der Times and Sales Listen zu immitieren. Ein Erfolg. Mit Deinen Hinweisen werde ich das deutlich verbessern können. Ist schon witzig, wie ähnlich sich die Programmiersprachen sind.

Das Problem mit Trade_Size habe ich gelöst, jedoch nicht versstanden. will ich Trade_Size direkt ausgeben kommt ein fehler. Speichere ich den Wert in einer Variable vom Typ Valid geht alles glatt!

bsi demnächst!!!!

Vielen Dank und trotz der schlechten Wetteraussichten:
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

35

Friday, August 5th 2005, 10:30am

Hallo Rene,

falls ich dich noch vor der Abreise erwische, wünsche ich euch herrliche Tage an der Ostsee, falls nicht, hoffe ich, ihr hattet solche! :)
Ich habe deine Ausgabe bearbeitet und hoffe, es passt jetzt.

Source code

1
2
3
4
5
6
7
8
9
Print #1, rs!Product_ID + Space(3);
Print #1, Format(rs!EXP_MONTH, "00") + " " + Format(rs!EXP_YEAR, "00") + " ";
Print #1, Space(4) + "0" + " " + "0" + " ";
Print #1, Format(rs!Year, "0000") + " " + Format(rs!Month, "00") + " " + Format(rs!Day, "00") + " ";
Print #1, Format(rs!Hour, "00") + " " + Format(rs!Minute, "00") + " " + Format(rs!Second, "00") + " " + Format(rs!CENTISECOND, "00") + " ";
'Variante1: Dezimalkomma, führende Nullen
Print #1, Format(rs!MATCH_PRICE, "0.00") + " " + Format(rs!TRADE_SIZE, "000")
'Variante2: Dezimalpunkt, führende Leerzeichen
Print #1, Replace(Format(rs!MATCH_PRICE, "0.00"), ",", ".") + " " + Right(Space(3) + Format(rs!TRADE_SIZE, "0"), 3)



Zu den einzelnen Problemen:
1. Space() oder Leerzeichen " " oder "x": bei Kombination mit Feldern vom Typ Numerisch (letzte Zeile) muß erst die Zahl in Text umgewandelt werden (z.B. mittels Format-Fkt.), bevor die Strings verkettet werden können.
2. Dezimalstellen in der Format-Fkt. mit "0.00" angeben. Verwendet wird das Dezimalzeichen lt. Gebietsschema (bei uns in der Regel das Komma). Deshalb eine Variante mit Ersetzung des Kommas durch Punkt.
3. rechtsbündige Ausgabe des Umsatzes mit führenden Nullen auch wieder mit Format-Fkt "000" oder mit Leerzeichen (Lösung ist vielleicht nicht schön, aber sie funktioniert). Ich weiß jetzt nur nicht, wieviele Stellen man hier spendieren muß, damit auch große Umsätze immer reinpassen.

btw: wenn diese Ausgabe in eine Textdatei klappt, könntest du eigentlich auch gleich eine Ausgabe in das neue Format hinkriegen!?

Gruss, Jens

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

34

Thursday, August 4th 2005, 11:00pm

Hallo Jens!

Hier ist der Code:

Source code

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
Sub GenOutput()
'erzeugt csv-Datei aus Tabelle Datenimport
Dim db As Database, rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("Bund01")

Open "c:\temp\eurex.csv" For Output As #1

rs.MoveFirst
Do Until rs.EOF = True
   
    Print #1, rs!Product_ID + "xxx";
    Print #1, Format(rs!EXP_MONTH, "00") + "x" + Format(rs!EXP_YEAR, "00") + "x";
    Print #1, "xxxx" + "0" + "x" + "0" + "x";
    Print #1, Format(rs!Year, "0000") + "x" + Format(rs!Month, "00") + "x" + Format(rs!Day, "00") + "x";
    Print #1, Format(rs!Hour, "00") + "x" + Format(rs!Minute, "00") + "x" + Format(rs!Second, "00") + "x" + Format(rs!CENTISECOND, "00") + "x";
    Print #1, rs!MATCH_PRICE + "x" + rs!TRADE_SIZE
         
   rs.MoveNext
Loop

Close #1

End Sub


Ich habe mir vorgenommen, die beiden offebeb Fraen, nämlich Dezimalstellen und Rechtsanschlag der Volumenangeb nach meinem Urlaub mit meinen einfachen Mittelkn zu lösen. Programmiersprachen sind sich oft sehr ähnlich. Also werde ich wohl mit einigen if then Abfragen zu Recht kommen.

Ab morgen bin ich an der Ostsee mit meiner Süßen, komme am Mittwoch aber zurück, Kurzurlaub also!

Bis dahin alles GUte und vielen Dank!!!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

33

Thursday, August 4th 2005, 6:26pm

Kannst du bitte mal deinen Code reinstellen, dann kann ich konkreter was dazu sagen!? Danke.

Gruss, Jens

Rene Rose

Trainee

  • "Rene Rose" started this thread

Posts: 79

Location: Mitteldeutschland

Occupation: Chef

Thanks: 18

  • Send private message

32

Wednesday, August 3rd 2005, 8:26pm

Hallo Jens!

Ich habe mich mal mit den print Anweisungen beschäftigt. Da ich mit der Space Funktion nicht klar komme habe ich statt Leerzeichen xxx eingefügt. Dies nur zum Test. Ich versuche mal folgendes Format und zwar exakt hinzubekommen:

DTB contract time and sales sheet
S511

contract(s): year: month: day:

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
BUND 12 90 0 0 1990 11 23 08 03 36 00 83.17 10
BUND 12 90 0 0 1990 11 23 08 05 24 00 83.17 5
BUND 12 90 0 0 1990 11 23 08 06 07 00 83.18 10
BUND 12 90 0 0 1990 11 23 08 06 41 00 83.18 75

Das sind die alten Times und Sales Listen. Wenn ich in einem Texteditor die x gegen Leerzeichen getauscht habe, sieht mein Ergebnis schon ganz gut aus.

Problem1: Wie erzwinge ich zwei Nachkommastellen?? In den neuen Eurexdateien fehlen leider beide Nachkommastellen, zb.b Bund 119 glatt oder eine Nachkommastelle z.B. Bund 118.4 statt 118.40

Problem zwei: im nachfolgenden Code funktioniert alles bis auf die allerletzte Ausgabe "Trade_Size" hier wird eine Fehler "Tapen unverträglich" genmeldet. Ich habe keine Ahunjg was das bedeutet. Die Spalte ist vom Typ Zahl, so wie einige andere Spalten auch, bei denen kein Fehler gemeldet wird. Wenn ich die Ausgabe von "Trade_Size" lösche, funktioniert das Programm

Problem3: Die Umsätze, Spalte ganz rechts müssen rechts angeschlagen sein, also mit der letzten Ziffer alle übereinander stehen. Ich habe auch hier keinen PLa wie ich das schaffe soll.

Falls die probleme lösbar sind, kann ich frohe Kunde tun:

Ich habe ein Programm, welches dieses Format und zwar penibel genau bis aufs letzte Leerzeichen liest, die Kontrakte isoliert, OHCL komprimiert und Endloskontrakte zusammenfügt. Alles Funktionen, die ich sonst noch selbst entwickeln müsste!!


Nun beschäftige ich mich trotzdem noch mit dem Erzeugen von Tabellen und Spalten!
8) --- sonnige Grüße -> von Rene --- 8)

Rene Rose online

tradie

Beginner

Posts: 16

Location: Bayern

Occupation: Ingenieur

  • Send private message

31

Tuesday, August 2nd 2005, 9:38pm

Du steigst ja wirklich schnell in die Tiefen von Access-VBA hinab!

Ich habe selbst mit CreateQueryDef noch nicht gearbeitet, aber mal schnell in die Hilfe geschaut.
Die Felder, die diese Abfrage verwendet, ergeben sich aus der SQL-Anweisung im 2. Parameter der CreateQueryDef-Methode, also z.B.
"SELECT Product_Id, Exp_Month, Exp_Year FROM Datenimport"
Dies sind die gleichen Felder, die du auch im Abfrageassistenten eingibst. Soweit ich weiß, kannst du in einer Abfrage (Query) z.B. die Feldtypen oder -längen nicht ändern, denn diese sind ja durch die zugrundeliegende Tabelle definiert.

Mit der Methode Append kannst du z.B. der Field-Auflistung einer Tabelle ein neues Feld hinzufügen, das läuft dann im Prinzip so:

Source code

1
2
3
4
5
6
7
Dim db As Database, td As TableDef, fld1 As Field

Set db = CurrentDb
Set td = db.CreateTableDef("Test")
Set fld1 = td.CreateField("Nachname", dbText, 50)
td.Fields.Append fld1
db.TableDefs.Append td


also zur aktuellen Datenbank (db) eine neue Tabellendefinition erstellen (td) und dieser ein neues Feld (fld1) hinzufügen. Dann die neue Tabellendefinition der Liste aller Tabellendefinitionen hinzufügen (letzte Zeile).

Das ganze läuft absolut objektorientiert, deswegen musst du ständig wissen, auf welches Objekt sich welche Methode anwenden läßt oder welche Eigenschaften es hat. Ich fand das zu Anfang einen grausigen Berg, der sich vor mir auftürmte und wollte schon manchmal verzweifeln. Geholfen haben mir ein Buch - damals über A97-Programmierung - die wirklich gute Hilfe in Access-VBA (gib da z.B. mal createquerydef oder createfield oder append ... ein! Die Beispiele liefern gute Anregungen) und auch oft eine Google-Suche.

Also weiterhin viel Spass und wenn noch Fragen auftauchen, poste einfach.

Schönen Abend,
Jens