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)
-   -   Fehler im MT4? (http://www.expert-advisor.com/forum/showthread.php?t=5668)

Hmt 13.05.17 10:12

Fehler im MT4?
 
Ich habe beim testen eines eigenen EAs ein nicht korrektes verhalten festgestellt . Bei der näheren Analyse habe ich festgestellt, dass der EA einen Angeforderten Close Wert einfach bei einigen Timeframes nicht einliest.

Daraufhin ab ich einen EA mit dem Assistenten erstellt, der nur wenige Zeilen Code enthält.

//+------------------------------------------------------------------+
//| a1.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict


//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---

double xClose1 = iClose(NULL,1,0);
double xClose60 = iClose(NULL,60,0);
double xClose240 = iClose(NULL,240,0);;

Comment("M1 = ",xClose1," M60 = ",xClose60," M240 = ",xClose240);


//+------------------------------------------------------------------+
}


Lasse ich den nun laufen, steht bei M1 immer 0.0. Die anderen Werte werden korrekt eingelesen. Habe es auf verschiedenen Währungen laufen lassen, schwerpunkt EURUSD immer das selbe M1 wird immer mit 0.0 angezeigt.

Ich habe auf Periode H1 gestellt - es geht nicht -, stelle ich die Periode auf M1 um funktioniert alles so wie es soll. Nur leider benötige ich für für meine Strategie, die auf H1 läuft, für einige Berechungen einfach den aktuellen Close auf M1.

Ist das ein Problem des Testers? Ober besser gefragt, was mache ich falsch?

MA-EA 13.05.17 18:19

Wenn Du Close Bar 0 meinst, also die ganz ganz rechte, die sich stets verändert, kann der ja eigentlich nur den selben Wert in allen Timeframes haben. :confused: Ausser ich verwechsel irgendwas... :rolleyes:

Hmt 13.05.17 19:43

Zitat:

Zitat von MA-EA (Beitrag 38644)
Wenn Du Close Bar 0 meinst, also die ganz ganz rechte, die sich stets verändert, kann der ja eigentlich nur den selben Wert in allen Timeframes haben. :confused: Ausser ich verwechsel irgendwas... :rolleyes:

Ja schon klar, das stimmt, aber warum ist der Wert bei M1 0.0?
Wenn ich jetzt nicht den Close brauche sondern High oder Low, dann geht das nicht mehr, dass ich einfach einen Wert aus einer anderen Zeiteinheit nehme. Da Die Werte ja auf das Timeframe gesehen zurückgegeben werden.

Kronenchakra 13.05.17 21:03

Ich hab da eine Vermutung:
Bei der aktuellen Kerze ist doch der Close-Kurs noch nicht festgelegt und deshalb null.
Versuch mal iOpen, der müsste feststehen.
iHigh und iLow müssten Werte zurückgeben, die sich jedoch noch ändern können.

traderdoc 13.05.17 23:43

Aber klar funktioniert das, warum auch nicht? Mit iClose() auf der aktuellen Kerze wird immer der Wert des aktuellen Bid genommen, denn dieser Wert stellt sozusagen immer das temporäre Close der Kerze dar, da es der letzte Kurswert ist.

Da wird wohl mit Deinem Tester oder Deiner MT-Version was nicht in Ordnung sein.

traderdoc

Kronenchakra 14.05.17 00:13

@traderdoc
ist logisch. hab das nicht getestet. Also müsste iClose gleich dem aktuellen Bid sein !?

traderdoc 14.05.17 08:05

Korrekt, aber nur bei iClose(..., ..., 0)

traderdoc


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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