Hallo Ralf mit der Mütze
Knoten im Gehrinmuskel = Gehirnkrampf
Das Signal wird erst nach dem close der 60 Minuten generiert, ich hätte das aber gerne wenn der cross stattfindet
Das Signal sofort zu erhalten, schaffst Du, wenn Du die Option "Signale auch bei unvollendeten Perioden" verwendest. Allerdings schaffst Du Dir dann im Life-Betrieb mit den von Dir verwendeten Optionen (Delay 1) und der direkten Verwendung von Close in Komp() mehr Probleme, als Du löst, da werden Dir die Signale nur so "um die Ohren flattern". Unstabile Flattersignale also (suche nach diesem Stichwort hier im Forum!), sind das Ergebnis.
Wenn Du so zeitnah am Markt handeln möchtest oder musst, dann musst Du Dein System umstellen:
* auf die Signalgenerierung Open, Delay 0
* Signale auch bei unvollendeten Perioden
* die Formeln in Komp() innerhalb des Komp in Ref(,-1) verpacken, also mal so angepasst:
z.B.
Komp(#Ref( Cross(close,GD(GD(Close,30,E),5,E),1) =1), -1)#,#60#)
* high, low und open nur dann ohne Ref( ,-1) verwenden, wenn Du weisst, was Du da auf der Zeitlinie gerade tust; open ist meist am wenigsten kritisch von den 3en. Nicht dass Du Dir einen Terminator baust, und am Ende nicht mehr weisst, welcher Tick gerade Kyle Reese und wer John Connor ist ...
Ach ja, und dann neigt die Signalgenerierung mit Cross() zum Schönrechnen, sei damit im Open, Delay 0 Kontext bei unvollendeten Perioden extremst vorsichtig. Sicherer ist meist die alternative Abfrage (auf der Long-Seite) high > irgendwas and Ref( hig, -1) <= irgendwas
Wenn das alles passt und Du so munter in die unvollendete Periode hineinrechnest - kommt es auf eine ziemlich klevere Abrechnungsbasis an! Denn high könnte bei einem Signal schon weit ab von Open sein (Long Signal unterstellt). Du müsstest also in Deiner Open-Basis auf der Long-Seite die schlechtest mögliche Annahme treffen, z.B.:
global calc EBL: Max( open, dein_irgendwas_trigger+#_MinPriceChange#);
und EBL (soll die Abkürzung sein für EnterBasisLong) in den Testbedingungen eintragen unter Enter-Basis Long.
Short umgekehrt
global calc EBS: Min( open, dein_irgendwas_trigger-#_MinPriceChange#);
Das gibt wahrscheinlich ein schlechteres Ergebnis im Backtest, also Du jetzt annimmst - aber genauer kann man in einer Periode kaum "ranzoomen", und so rechnest Du Dir den Backtest wenigstens nicht schön - und bist im Konto dann später mehr als enttäuscht
PS: sorry für die salloppe Anrede oben; da ich keinen Namen habe ausser Cappuralf denke ich an Cappucino: auf deutsch Kaffee mit Mütze