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)
-   -   Openprice einer Kerze zu einer bestimmten Zeit (http://www.expert-advisor.com/forum/showthread.php?t=4576)

ralfbenker 13.11.15 19:19

Openprice einer Kerze zu einer bestimmten Zeit
 
Hallo allerseits,
hat jemand einen Codeschnipsel der mir den Open/Closepreis einer bestimmten Kerze aus der Historie mit einer festen Uhrzeit ausgibt?
Beispiel: Der EA wird 14 Uhr aktiviert und ich möchte den Openpreis von 9 Uhr ermitteln. Hatte jetzt die Idee, das mit einer Rückrechnung über die aktuelle Kerze minus der Anzahl der Kerzen zu erledigen.
iTime() müsste ja eigentlich auch funktionieren, oder gibts ne einfachere Lösung?

traderdoc 13.11.15 20:57

Über

int iBarShift(
string symbol, // symbol
int timeframe, // timeframe
datetime time, // time
bool exact=false // mode
);

den Index der Kerze zur gegebenen Zeit im entsprechenden TF ermitteln und dann über

double iOpen(
string symbol, // symbol
int timeframe, // timeframe
int shift // shift
);

etc. die Kerzenwerte ermitteln.

traderdoc

ralfbenker 13.11.15 21:44

Danke traderdoc, auf iBarShift wäre ich nicht gleich gekommen.

Muss ich bei datetime das Datum eigentlich immer mit angeben, also Format
D'19.07.2015 12:30:27' oder reicht die Uhrzeit des aktuellen Tages im Format '12:30:27'

Denke mal der Befehl heißt datetime und das geht nicht ohne Datum.

traderdoc 13.11.15 21:56

Ja und wenn schon, dann in diesem Format:

datetime some_time=D'2004.03.21 12:00';

traderdoc

ralfbenker 13.11.15 22:29

Jo, sowas hab ich mir schon gedacht. Du brauchst zwar blos die Uhrzeit weil Du nur die Werte der Candles vom aktuellen Tag zu bestimmten Zeiten benötigst aber das Format verlangt wieder mal alles.

Das Tagesdatum kriege ich hoffentlich über:

TimeToStr(TimeCurrent(),TIME_DATE);

Ich probier das morgen aus.

ralfbenker 13.11.15 23:01

Hallo traderdoc,

glaube ich hab das Problem gelöst.
der Code hier wirft per Printbefehl zumindest die fortlaufende Barnummer im Journal aus. Opens und Close lassen sich ja dann über die BarNumber leicht abrufen

extern string OpenTime = "09:01";

string Datum = TimeToStr(TimeCurrent(),TIME_DATE);
int BarNumber = iBarShift(Symbol(),0,datetime(Datum+" "+OpenTime),false);

also nochmal GANZ GROSSES DANKESCHÖN für den Stein des Anstoßes


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:36 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