In der Tat hätte da auch Time[1] statt Time[2] stehen müssen.
Code:
if (EMA10_2 > EMA20_2 && EMA10_1 < EMA20_1) datetime time1 = Time[1];
if (EMA10_2 < EMA20_2 && EMA10_1 > EMA20_1) datetime time1 = Time[1];
Man müsste jetzt sicherlich auch unterscheiden, ob das Rechteck im laufenden Betrieb gebildet und nach rechts verbreitert werden soll oder ob die Rechtecke retrospektive eingezeichnet werden sollen.
Im laufenden Betrieb wird das Rechteck beginnend von Time[1] bis Time[1] !!! gezeichnet und mit jedem Weiterrücken nach rechts jetzt entweder gelöscht und incl. Verbreiterung neu gezeichnet oder in der Funktion ObjectMove() wird die 1. Zeitangabe die sein, nachdem die EMAs gekreuzt hatten und die zweite Zeitangabe wäre dann wieder Time[1], usw. bis die nächste Kreuzung erscheint. Das nächste Rechteck muss dann entweder einen neuen Namen tragen oder das alte wird gelöscht.
traderdoc