|
Gruppen: Kunde
Beiträge: 15
|
Hallo Taipaner,
Ich habe die Formel für das Anzeigen eines Allzeithochs versucht umzuwandeln um das Kurs - Jahreshoch anzuzeigen.
Hier mein Fehlversuch
DrawArrow Beispiel }
// Pfeile mit Zeichensatz 'Wingdings 3'
Enum eArrow(Left = 231);
Function DrawArrow (AArrow: Integer; ADateTime: datetime; AKurs: Double; ATextColor: Integer = 0): Text; Begin tArrow := DrawText ("" + AArrow, ADateTime, AKurs, ATextColor, Leer, 14); tArrow.FaceName := "Wingdings"; Case AArrow Of eArrow.Left: tArrow.Format := TextFormat.Right Or TextFormat.VCenter; End; Result := tArrow; End;
Result := DrawArrow (eArrow.left,date.DateTimeAt(260) ,Lastvalue(ph(count(h))){LastValue(H)}, green);
Für mich ist die Formelsprache zum Haareausreißen. Kann wer helfen ?
|
|
Gruppen: Kunde
Beiträge: 270
|
Zitat:Für mich ist die Formelsprache zum Haareausreißen. Für mich auch. Bekomme deshalb wahrscheinlich irgendwann mal eine Glatze. Könnte L+P ein Seminar "Programmiersprache" anbieten? Mir würde für's erste eine Einführung in die Programmierung von eigenen Indikatoren und Filtern reichen. Gruß Norbert
|
|
Gruppen: Kunde
Beiträge: 270
|
... oder, wenn's nicht anders geht, ein Webinar.
|
|
Gruppen: Kunde
Beiträge: 15
|
Was ist das eigentlich für eine Scriptsprache ?
Result := DrawArrow (eArrow.left, LastDate(H).ToDateTime(), Lastvalue(ph(count(h))){LastValue(H)}, green);
Es geht mir nur darum wir ich
lastdate(h).ToDateTime()
was den Gesamtzeitraum abbildet in ein Jahr abändere. Da werden sich einige denken, ich weis es aber ich sag es nicht. Traurig.
|
|
Gruppen: Kunde
Beiträge: 371
|
Hallo Engelbert,
also ich empfehle Dir folgende Vorgehensweise ganz allgemein:
1. Die vorhandene Formel am Beispiel ausprobieren. 2. Anschauen was die Formel leistet.
Im Beispiel setzt die Original-Formel für den gesamten Kurszeitraum - jeweils zum letzten Kurs einen Pfeil für das ATHigh und das ATLow.
Wenn Du also nur das letzte Jahr betrachten willst, dann darf auch nur die aktuell entsprechende Anzahl von Kursen betrachtet werden. Diese muß für jeden neuen Börsentag neu berechnet werden.
Ansonsten muß man die Formel genau übernehmen.
3. Empfehle ich den Debugger zu verwenden.
Die Tai-Pan-Formelsprache ist nicht so schwer. Es liegt einfach daran, daß man sich intensiv einarbeiten muß und am besten halt an den Beispielen. Darüberhinaus ist es wichtig die Gemeinde zu befragen.
Ich halte mich nicht zurück, wenn ich etwas gelesen habe und die Lösung kenne oder einen Ansatz habe.
Schöne Weihnachten an alle.
Steffen
|
|
Gruppen: Insider
Beiträge: 22
|
Ich versuche mal die Verwirrung aufzulösen.
Die Funktion DrawArrow im Script FML_Allzeit_Hochkurs plaziert ein Zeichen aus dem Zeichensatz "Wingdings" an der angegebenen Datumsstelle und Kurshöhe in der gewünschten Farbe.
Result := DrawArrow (eArrow.left, LastDate(H).ToDateTime(), Lastvalue(ph(count(h))), Red);
Dieser Aufruf der Funktion "DrawArrow" mit den aktuellen Parameter bewirkt folgendes: 1. Der Pfeil nach links : eArrow.left 2. Das letzte Datum der Kursreihe H als DateTime : LastDate(H).ToDateTime() Plazierung also immer ganz rechts im Chart. .ToDateTime() wird verwendet damit dieses Script auch in einem Intraday-Chart funktioniert.
3. Der letzte Wert der Berechnung von PH: Lastvalue(ph(count(h)) Hierbei wird PH über alle Kurse der Kursreihe H berechnet weil der Parameter von PH immer die gesamte Anzahl aller Kurse ist. (count(h)) Es kommt also immer der Kurs des Alltime-High dabei herraus.
Um nur die Kursdaten des letzten Jahres zu berücksichtigen muss (count(h)) einfach durch (260) ersetzt werden. Dann hat der letzte Wert von PH immer den letzten Hochkurs der letzten 260 Kurstage (ca. 1 Jahr)
Die Result-Zeile sollte also so aussehen:
Result := DrawArrow (eArrow.left, LastDate(H).ToDateTime(), Lastvalue(ph(260)), Red));
Ich würde eine Kopie der Formel FML_Allzeit_Hochkurs anlegen und dann ändern und den Namen auf JahresHoch anpassen.
Grüße
Thorsten Kitzig
|
|
Gruppen: Kunde
Beiträge: 15
|
Danke Thorsten, hat geklappt.
|
|
Guest |