Hm... ja, für meine Zwecke reichen senkrechte Begrenzungen aus. Das Integral zwischen 2 EMAs sieht zwar sehr gut aus und ist auch programmiertechnisch sehr anspruchsvoll, aber ich brauche - gerade auf kleinen Timeframes - auf einen Blick die Indikation. Bei naheliegenden EMAs könnte der Zwischenraum wie eine (dickere) EMA erscheinen. Daher die senkrechten Begrenzungen.
So, ich habe mir den Code mal angesehen und mit leuchtet nicht ein, warum man die Schnittpunkte nicht wie folgt definieren könnte?!:
PHP-Code:
if (EMA10 > EMA20) datetime time1 = Time[1];
if (EMA10 < EMA20) datetime time2 = Time[2];
Dein Code
PHP-Code:
if (EMA10_1 > EMA20_1) datetime time1 = Time[1];
if (EMA10_1 < EMA20_1) datetime time2 = Time[2];
ist vermutlich "resistenter" gegen einen ein Zucken des Kurses. Frage: Hast Du Dich bei der zweiten Zeile verschrieben und es gehört Time[2] statt Time[1] da hin? (Ich glaube es kaum...)
Nichtsdestotrotz: Ich habe es hier mal mit EMA 2 und 4 versucht (zum Testen sieht man es schneller):
PHP-Code:
double EMA10_1 = iMA(NULL, 1, 2, 0, 1, 0, 1); // "NULL"= (Current Chart) , Timeframe , Periode ("0"=Current , "1"=M1 usw), MA_Shift , MA_Method ("0"=SMA,"1"=EMA usw) , Enum_Applied_Price ("0"=Close , "1"=Open usw) , shift)
double EMA10_2 = iMA(NULL, 1, 2, 0, 1, 0, 2);
double EMA20_1 = iMA(NULL, 1, 4, 0, 1, 0, 1);
double EMA20_2 = iMA(NULL, 1, 4, 0, 1, 0, 2);
if (EMA10_2 > EMA20_2 && EMA10_1 < EMA20_1) datetime time1 = Time[1];
if (EMA10_2 < EMA20_2 && EMA10_1 > EMA20_1) datetime time2 = Time[2];
ObjectMove("Rechteck",1,Time[1],1.19100);
ObjectCreate(0,"Rechteck",OBJ_RECTANGLE,0,Time[1],1.19100,Time[2],1.20100);
ObjectSetInteger(0,"Rechteck",OBJPROP_COLOR,clrBlueViolet );
ObjectSetInteger(0,"Rechteck",OBJPROP_WIDTH,1 );
ObjectSetInteger(0,"Rechteck",OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,"Rechteck",OBJPROP_BACK,true);
Problem: Ein Balken einer Kerze mit den korrekten y-Werten erscheint für einen Tick und verschwindet wieder. Das Rechteck wird auch nicht verschoben....
Ich komme nicht weiter..