In Amibroker gibs einige Probleme. Arrays können nur Kursdaten speichern, keine Strings ect. Zahlen kann man speichern, aber auch nur positive. Also wenn man z.B. eine EquitiyKurve darstellen will und diese in den Kursdaten speichern möchte, darf die nicht in den negativen Bereich gehen. Tja was machen? Man könnte die Trades in eine Kursreihe speichern, jedoch die Information, welcher Basiswert gehandelt wurde in eine txt-datei. Auch Infos, wie Stoppweite, CRV "was auch immer". Man müsste mal schauen, wie die Performance ist, wenn man mehrere txt-Datein auswerten müsste. Ob es überhaupt sinnvoll ist, wenn man tausende von Trades im Jahr macht. Denke mal es ist sinnvoller, bei Bedarf sich nur eine bestimmt Menge an Trades zu widmen.
Hier liegst du falsch, denn es gibt keine derartigen Probleme, da sowohl das Speichern/Darstellen von negativen Zahlen als auch das Speichern bzw Anzeigen von Zusatzkommentaren sehr wohl möglich ist! Der Beweis, dass es möglich ist, zeigen diese Bsp.Bilder
http://is.gd/aNMDOx Hier noch z.B. Profit/Loss nicht kumuliert
http://is.gd/g1DijQ auch aus einer externen Datei. (Und hier noch ein anderes Bsp. bei dem EURUSD einmal negativ
http://is.gd/fRUuyK und einmal positiv
http://is.gd/RulFDm dargestellt wird.) Das ging auch schon damals und solange ich AB kenne (Version 4.8 aus 2006 zum Beispiel). Wie es geht, sage ich jetzt mal nicht, da es zu einfach in der entsprechenden Maske zu finden ist (wenn man die Äuglein etwas weiter öffnet) oder spätestens in der Hilfe nachzulesen wäre.
Das Einlesen/Speichern von Profit/Loss brauchst du (m.M.n.) aber nicht, da Fisch ja nur die Einstiegskurse benötigt und das Datum mit Uhrzeit z.B.
Buy signal ist dann
Buy = Datetime() == StrtoDatetime(Fischs ausgelesene Einstiegszeit);
BuyPrice = StrtoNum(Fisch's Kaufkurs aus der Datei);
Sell = 0;
Da er ja u.a.testen will, wie alternative Stopps und Ausstiege ausgesehen hätten.
Das macht man dann z.B. mit
Applystop(stoptypeLoss,...
Applystop(StoptypeProfit,...
Applystop(StoptypeTrailing,...
Applystop(stopTypeNBar,...
oder über Schleifen
Ich schätze mal, dass Fisch keine Tickhistorie seines Brokers hat? Wahrscheinlich Minutenhistorie. Da ja bei den Einsteigszeiten seiner Trades sicherlich auch Sekunden angegeben sind, müßte man beim Umwandeln des Zeitstrings der Datei ins Datetime Format die Sekunden in "00" umwandeln, da ja bspw. die Buybedingung
Datetime() == StrToDatetime("...."); sein soll und wenn er Minutenhistorie nimmt und deren Minuten Date/Time Arrays mit denen der Datum/Zeit Strings der Datei abgleichen lässt, nie zu einem Signal kommt, weil z.B.
10.05.2012 09:16:00 der 1-Minutenhistorie des jeweiligen Underlyings nicht gleich 10.05.2012 09:16:38 aus der Tradehistorie ist. Deshalb müßte man, wie gesagt, die Sekunden der jeweiligen Zeile der Tradeliste in "00" umwandeln. Ist kein Problem. Bsp.
|
Source code
|
1
2
3
|
Column_0 = StrExtract(Line, 0); // extract Date/time column of text file
tradesDTmod = StrLeft(Column_0, 17) + StrReplace( StrRight(Column_0, 2), StrRight(Column_0, 2), "00" ); // replace seconds data of file with "00"
TradeDT_Buy = StrToDateTime( tradesDTmod );
|
Was das zusätzliche Speichern/Auslesen von Strings angeht ist das auch kein Problem. Eine Lösung ... Ähnliches mache ich mit dem Update meines Intraday-News-Alarm Codes bzw Newskalenders. Einfach das
Interpretation Fenster verwenden. Kommentar mit Datum/Uhrzeit mit Prüfung auf Symbolname einfach aus der Datei auslesen (wenn vorhanden) und dort darstellen lassen. Über
SelectedValue kann man dann Informationen nur für den jeweiligen Tag (oder falls nötig zusätzlich nur zum jeweiligen Symbol) darstellen lassen. Zum Bsp wenn man egal wo im Chart reinklickt und der Tag ist Dienstag, dann werden nur die Zusatzkommentare mit Zeitangabe und Symbol für Dienstag angezeigt.
Hier ein Bsp. anhand meines Updates des automatischen News Kalender
http://is.gd/Vcd41H das zusätzlich die formatierten Newsangaben aus einer csv Datei im Interpretations Fenster ausgibt. Mit
Now(4) <= tnstring (tnstring sind die Zeitstrings der Textdatei und Now(4) ist die Funktion für aktuelle Systemzeit) kann man bspw nur die noch ausstehenden Tagesnews anzeigen lassen. Siehe
*GIF Animation unten (schlechte Bildqualität). Die Verwendung von
SelectedValue( Timenum() ) <= tnstring wäre in dem Bsp eine anderen Möglichkeit, um bei Klick in den Chart nur die News größer des aktuell im Chart angeklickten Datum/Zeit anzuzeigen.
Was den Ascii Import angeht, kann man das hier nachlesen (das Selbe steht in der Hilfe).
Import wizard
www.amibroker.com/guide/w_impwizard.html
fortgeschrittene Methoden des Ascii Import
www.amibroker.com/guide/d_ascii.html
Ob z.B. AUX1 oder AUX2 auch Kommentar Strings importieren können, weiß ich nicht. Ich habe diese bisher nur für Bid/Ask Ticks verwendet. Für was die Command INFO gut ist, weiß ich ebenfalls nicht. Müßte man mal beim Support nachfragen (was jedem anzuraten wäre, der nicht sicher ist, ob etwas geht oder nicht geht). Ich würde es wie gesagt über das Interpretations Fenster machen, um in der Datei vorhandene Zusatzkommentare anzuzeigen. Das sieht dann auch aufgeräumt aus und überlädt die Chartdarstellung nicht.
Frage an Fisch, hat deine Tradehistorie Angaben über Buy,Sell,Short,Cover? Kannst du ein Format Bsp mit veränderten Angaben reinstellen? (Fisch: "Yes, I can")
*