Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3627
Beiträge: 35737
Benutzer: 5.755
Aktive Benutzer: 625
Links: 80
Wir begrüßen unseren neuesten Benutzer: Piz_Buin
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- Piz_Buin
vor einem Tag
- ThisIsSef
vor einem Tag
- ASZSpeedy
vor 2 Tagen
- Superopa
vor 2 Tagen
- mkdaher

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 48
Gesamt: 51
Team: 0
Team:  
Benutzer:  Adlerauge, Collider, Nostradamus
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Hmt Hmt ist offline
Neues Mitglied
 
Registriert seit: Jan 2016
Beiträge: 23
Hmt befindet sich auf einem aufstrebenden Ast
Standard 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?
__________________
...tu nicht selbst, was andere für dich tun können... [I] alte Programmierer-Philosophie /I]
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 558
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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. Ausser ich verwechsel irgendwas...
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Hmt Hmt ist offline
Neues Mitglied
 
Registriert seit: Jan 2016
Beiträge: 23
Hmt befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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. Ausser ich verwechsel irgendwas...
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.
__________________
...tu nicht selbst, was andere für dich tun können... [I] alte Programmierer-Philosophie /I]
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 257
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.743
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 257
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

@traderdoc
ist logisch. hab das nicht getestet. Also müsste iClose gleich dem aktuellen Bid sein !?
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.743
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
code fehler, fehler, metatrader fehler, mql4, programmierung, programmierung metatrader, programmierung mql4


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 10:30 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------