Zitat:
Zitat von next user
Ein Teil, warum es nicht geht, hat Raul0 schon erwähnt. Du kannst natürlich kein Fractal bei der aktuellen Kerze erwarten.
Üblicherweise kommt ein Shift von min. 3 zum Einsatz, damit sich die Kerzen für ein Fractal vollständig gebildet haben
und nicht die aktuell laufende Kerze (noch "undefiniert") miteinbezogen wird.
Der andere Teil, der noch zu beachten ist, auch bei Shift 3(4,5,...) muss nicht unbedingt ein Fractal sein.
Eine einfache Möglichkeit wäre folgende:
Code:
double lastfractUP = 0;
double lastfractLO = 0;
for(int i=3; i<20; i++)
{
if(lastfractUP == 0 && iFractals(NULL,0,MODE_UPPER,i) > 0)
lastfractUP = iFractals(NULL,0,MODE_UPPER,i);
if(lastfractLO == 0 && iFractals(NULL,0,MODE_LOWER,i) > 0)
lastfractLO = iFractals(NULL,0,MODE_LOWER,i);
if(lastfractUP > 0 && lastfractLO > 0)
break;
}
Hier werden als Beispiel die letzten 20 Kerzen (- Shift) geprüft und bei denen die letzten Fractals ermittelt.
Klar. Musst dann entsprechend einfach nicht das letzte, aktuelle Fraktal nehmen...
|
Hi zusammen,
vielen lieben Dank für eure Rückmeldung. Ich habe in der Zwischenzeit einen anderen Ansatz verfolgt. Ich habe, um Unterstützungen (SL) und Widerstände (TP) zu ermitteln, die Fibonnaci genutzt. Hierzu habe ich folgendes angestellt:#
Code:
// Hochs ermitteln
int FindHigh = iHighest(NULL,0,MODE_HIGH,15,3);
double HighestHigh = High[FindHigh];
// Tiefs ermitteln
int FindLow = iLowest (NULL,0,MODE_LOW,20,3);
double LowestLow = Low[FindLow];
// Fibonacci Retracements
double Differenz = HighestHigh - LowestLow;
double Level_1 = LowestLow + (Differenz * 0.236);
double Level_2 = LowestLow + (Differenz * 0.382);
double Level_3 = LowestLow + (Differenz * 0.500);
double Level_4 = LowestLow + (Differenz * 0.618);
double Level_5 = LowestLow + (Differenz * 0.764);
double Level_6 = LowestLow + (Differenz * 1.000);
double Level_7 = LowestLow + (Differenz * 1.616);
double Level_8 = LowestLow + (Differenz * 2.618);
Im Anschluss einfach via OrderSend() bspw.Level_1 (SL) ,Level_5 (TP) einbetten (Bsp. LongOrder)