Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Wie erhalte ich die Kerzennummer? (http://www.expert-advisor.com/forum/showthread.php?t=4551)

Trader6666 03.11.15 20:31

Wie erhalte ich die Kerzennummer?
 
Hallo zusammen,

ich bin kein Informatiker, lern das proggen grad über Inet quasi.
Zu meinem Problem:

Wie erhalte ich die Kerzennummer, wenn ich mir per

double Long_RSI2 = iRSI(Symbol(),0,14,PRICE_CLOSE,MathAbs(iLowest(Sym bol(),0,MODE_LOW,20,2)));

das letzte Tief von RSI ausgeben lasse?!Wenn ich die Formel für den Kurs nehme, erhalte ich die Kerzennummer, beim RSI nur den Wert. Ich vermut mal, dass es daran liegt, das der Indikator separat zum Kurs mit läuft,weiß es aber leider ned wirklich. Ich hoffe jem kann mir nen tipp geben, komm grad nicht weiter.

LG

traderdoc 03.11.15 21:00

Hiermit iLowest(Symbol(),0,MODE_LOW,20,2) wird bereits die Kerzennummer ermittelt.
Das MathAbs ist überflüssig.
Mit double Long_RSI2 wird nicht das letzte Tief von RSI ausgegeben, sondern nur der RSI-Wert an der Stelle! der Kerze iLowest(Symbol(),0,MODE_LOW,20,2).

traderdoc

Trader6666 03.11.15 23:56

klasse vielen dank für deine schnelle Antwort!!! Freu mich schon das ich ne Seite gefunden habe die auf Deutsch ist. Werd mich morgen nochmal ran setzten, mal schauen wie weit ich komme:D

n8t

Trader6666 05.11.15 12:15

Hi Zusammen,

leider bin ich nicht wirklich weiter gekommen :( .

Ich versuch nen EA zu basteln der nach ner RSI Divergenz handelt.

Ich bekomm partou nicht raus wie ich nur das letzte Tief vom RSI erhalte...

ich habs so probiert :

int RSI_Kerze;
double RSI_Wert;
for(int i = 2; i <= 10; i++)
{
double rsi = iRSI(NULL,0,14,PRICE_CLOSE, i);
if( rsi > RSI_Wert )
{
RSI_Wert = rsi;
RSI_Kerze = i;
}
}


so erhalte ich den höchsten Wert und die dazugehörige Kerze aus einem bestimmten zeitraum, aber anders herum funzt das ned... hoffe jem kann helfen....

lg

Deepack 05.11.15 15:43

und für den tiefststand genau andersrum
wo ist das problem??

Code:

int RSI_Kerze;
double RSI_Wert = 100;
for(int i = 2; i <= 10; i++)
{
double rsi = iRSI(NULL,0,14,PRICE_CLOSE, i);
if( rsi < RSI_Wert )
{
RSI_Wert = rsi;
RSI_Kerze = i;
}
}


Trader6666 05.11.15 18:52

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Trader6666 (Beitrag 31560)
aber anders herum funzt das ned... hoffe jem kann helfen....

vllt hast du es überlesen oder bist, so wie ich davon ausgegangen, dass es anders herum genauso funktionieren sollte :rolleyes:

int RSI_Kerze_Hoch;
double RSI_Wert_Hoch;
for(int i = 2; i <= 10; i++)
{
double rsi = iRSI(NULL,0,14,PRICE_CLOSE, i);
if( rsi > RSI_Wert_Hoch )
{
RSI_Wert_Hoch = rsi;
RSI_Kerze_Hoch = i;
}
}


int RSI_Kerze_Tief;
double RSI_Wert_Tief;
for(int b = 2; b <= 10; b++)
{
double rsi = iRSI(NULL,0,14,PRICE_CLOSE, b);
if( rsi < RSI_Wert_Tief )
{
RSI_Wert_Tief = rsi;
RSI_Kerze_Tief = b;
}
}

natürlich hab ich das anders herum probiert, dass würde ja nahe liegen :D... was dabei raus gekommen ist siehst du auf dem Bild von mir, da wird kein Wert wieder gegeben....bin noch neu auf dem Gebiet des Programmierens und über jede Hilfe dankbar!!!

lg

Deepack 05.11.15 20:21

double RSI_Wert = 100;

du prüfst ja ob RSI kleiner ist
wenn du RSI_Wert deklarierst ohne wert ist der Wert praktisch Null

Trader6666 05.11.15 21:59

Top:) ja so funzt es, vielen Dank!!!!!
Diese "Denkprozesse" muss ich verbessern, hätt dann auch selber drauf kommen können :o


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum