|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Eröffnung einer neuen Kerze abfragen
Eine kleine Sonntags-Frage:
Wie kann ich denn die Eröffnung einer neuen Kerze im aktuellen Timeframe abfragen? Also, es kommt ein neuer Tick und dies ist gleichzeitig die Eröffnung einer neuen Kerze. Ich habs leider noch nicht gefunden... iOpen z.B. liefert mir den Preis, den ich aber nicht brauche. Gruß Dick |
|
|||
Ein kleine Sonntags-Antwort:
Das ist schon richtig. Über iOpen(Symbol(), TimeFrame, 0) oder Open[0] traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Danke für den Denkanstoß traderdoc,
also ich lege mir jetzt zwei Variablen (Current und Previous) mit dem Open-Preis an und frage bei jedem Tick, ob der neue Open-Preis ungleich meinem bisherigen Open-Preis ist, wenn ja, dann hat eine neue Kerze begonnen. Noch einen schönen Sonntag traderdoc! Gruß Dick |
|
|||
Nein, mittels
double Open_0 = Open[0]; würde bei jedem Tick, solange die Kerze aufgebaut wird, immer derselbe OpenWert der aktuellen Kerze geschrieben werden. Wenn die Kerze wechselt, dann wird automatisch der OpenWert der neu zu bildenden Kerze ermittelt. Oder wenn man nur an dem Zeitpunkt des Kerzenwechsels einmalig die Abfrage durchführen wöllte, dann müßte das so ausssehen: In die init() kommt Oldbar = 0; Open_0 = 0; if (Time[0] != OldBar) { //prüft, ob ein Kerzenwechsel stattfand Open_0 = Open[0]; OldBar = Time[0]; //setzt OldBar auf die akt. Öffnungszeit der Kerze } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ich hatte das so gemeint:
OnInit() { double OpenPrice_curr = iOpen(NULL,0,0); double OpenPrice_prev = iOpen(NULL,0,0); } OnTick() { OpenPrice_curr = iOpen(NULL,0,0); if(OpenPrice_curr == OpenPrice_prev) { //keine neue Kerze } else if(OpenPrice_curr != OpenPrice_prev) { //neue Kerze } } Anstatt iOpen kann man natürlich auch Open[] verwenden. Wäre meine o.g. Lösung auch o.k? Aber Deine Lösung mit der Abfrage des Zeitpunktes des Kerzenwechsels ist natürlich auch nicht schlecht. Vielen Dank dafür! Gruß Dick |
|
|||
Und warum so umständlich?
Mir ist auch noch nicht richtig klar, was Du damit erreichen willst? Willst Du genau den Zeitpunkt haben, wo die Kerze wechselt? oder willst Du tatsächlich nur den Open-Wert der aktuellen Kerze? Das sollten wir erst mal klären. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ich möchte folgende RSI-Werte innerhalb einer Kerze auslesen:
Eröffnungskurs, High, Low und Schlusskurs, deswegen muss ich wissen, wann eine neue Kerze angefangen hat. Gruß Dick |
|
|||
Aha, d.h. Du benötigst die einzelnen Werte der letzten geschlossenen Kerze?!
Ja dann so, wie ich die Struktur bereits gepostet hatte: In die init() kommt OldBar = 0; if (Time[0] != OldBar) { //prüft, ob ein Kerzenwechsel stattfand Open_1 = Open[1]; High_1 = High[1]; Low_1 = Low[1]; Close_1 = Close[1]; OldBar = Time[0]; //setzt OldBar auf die akt. Öffnungszeit der Kerze } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ja, ich benötige die Werte der letzten geschlossenen Kerze, allerdings keine Kurse, sondern die RSI-Werte.
Ich mache das jetzt so, wie von Dir vorgeschlagen mit Time[0]. Nochmals vielen Dank für den Support traderdoc! Gruß Dick |
|
|||
Na dann eben so:
In die init() kommt OldBar = 0; if (Time[0] != OldBar) { //prüft, ob ein Kerzenwechsel stattfand RSI_1 = iCustom(......., 1); OldBar = Time[0]; //setzt OldBar auf die akt. Öffnungszeit der Kerze } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
eröffnung, eröffnung kerze, kerze, kerze abfragen, mql4, programmierung, programmierung metatrader |
|
|