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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4245
Beiträge: 39297
Benutzer: 6.551
Aktive Benutzer: 258
Links: 80
Wir begrüßen unseren neuesten Benutzer: Jonnes
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- Jonnes
vor 2 Tagen
- bluesdd
vor 4 Tagen
- KEY
vor 5 Tagen
- aliconii
vor einer Woche
- Matthias

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 98
Gesamt: 100
Team: 0
Team:  
Benutzer:  fxnoob, traderdoc
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard for-Schleife bringt im Strategietester seltsame Werte

Inzwischen versuchte ich im Rahmen verschiedener "Lernprojekte" mit "for"-Schleifen zu arbeiten und die Werte der Kerzen im jeweilgen Zeitraum / Timeframe in einem Array zu speichern.
Dabei kam ich nie zu einem zufriedenstellenden Ergebnis, weil seltsame Werte entstanden.
Gerade beim Vergleich mit Kerze x und deren Vorgängerkerze entstehen irgendwann noch vor Erreichen der Zählvariablen "Sprünge".

Guckt mal hier bitte:

Code:
#property copyright "Angel"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

int i;
int z;
//+------------------------------------------------------------------+
//| Expert initialization function                                                       |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                                 
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                                       
//+------------------------------------------------------------------+
void OnTick()
  {
   for(i=50;i>1;i--) 
     {
      for(z=i-1;z>0;z--) 
        {
         Alert("  i= ",i,"    z= ",z);
        }
     }
  }
Ich checkte das mal im Strategietester auf H1. Die Ergebnisreihe der i- und z-Werte kann man im Journal sehen.
Wenn ich i=10 setze, dann ist noch alles ok. Aber sobald ich zB i= 50 setze, dann ergibt die Reihe ab ca. i=20 immer unterschiedliche und nicht kontinuierliche Werte. Kann mir das jemand erklären?? Ich meine , das bischen Code, da ist nix drin, was irgendwie querschlägt... es sollten bei i=50 rund 1250 Berechnungen stattfinden. Das ist eigentlich nix... Hat jemand Rat? Eine verschachtelte "for-Schleife" mit festgelegten Werten i=50 und z=i-1 kann doch kein Eigenleben haben?!?!?
Bitte macht Euch mal den Spaß , ladet den EA und seht selbst...!? Oder hat mein MT4 einen Hau weg?!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mal nur auf die i-Schleife und i=50 reduziert:
Ab dem 5.ten Durchlauf (Also 5 x die i-Schleife durchlaufen) fangen die unregelmäßigen Werte an.
Und der Beginn der Anomalie ist stets unterschiedlich!
Ich weiß echt keinen Rat mehr.

Code:
#property copyright "Angel"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

int i;
int z;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   for(i=50;i>1;i--) 
     {
         Alert("  i= ",i,"    z= ",z);
     }
  }
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 160
AVT befindet sich auf einem aufstrebenden Ast
Standard

Ich denke es liegt an der OnTick. Ich hatte solche Aussetzer bei meinem ersten Candle Countdown, der war auch Tick-abhängig und zählte die Sekunden eben nicht gleichmäßig runter, sondern hatte "einen (ach was hunderte ) Sprünge in der Schüssel". AVT
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ja, das dachte ich auch schon, aber selbst wenn ich eine "NewBar"-Funktion einbauen würde, so würde der nächste Tick ja das gleiche auslösen müssen. Zudem würde die Anomalie ja auch verteilt auftreten und nicht erst ab ca. der Hälfte der Zählvariablen.... Also dürfte es etwas anderes sein....
Ich denke, ich deinstalliere den MT4 , installiere ihn neu und berichte dann nach... Es kann doch nicht sein, dass die Hälfte des Ablaufs alles ok läuft und dann plötzlich alle Gesetze der Mathematik außer Kraft gesetzt sind....?
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ok. Jetzt habe ich ab Montag, Handelsbeginn, im Strategietester weiter gestestet. Immer noch seltsame Ergebnisse und das eingebaute Zeitglied wurde nicht angebsprochen, d.h. der Zeitraum belief sich auf den ersten Tick nach einer Stunde.
Umstellung von 1 Stunde auf 1 Minute brachte nichts.
Jetzt, im real-Betrieb, wo "Alert" nicht im Journal des Strategietesters ausgegeben wird, sondern im "Live-Alamfenster" des MT4, wird jede Minute eine neue Berechnung durchgeführt, sprich : Brav die For-Schleife durchgerechnet. Und zwar richtig und exakt! Wenn auch nur ca. 1 - 4 Sekunden verzögert,obwohl nach jeder neuen Minute einige Ticks erschienen, die wohl - unglaublicherweise - einfach "verschluckt" wurden.
Warum die unterschiedlichen Ergebnisse im Strategietester vs. Realbetrieb existieren, erschließt sich mir nicht - ich kann nur die Konsequenz daraus schließen, dass
a) ein Testen eines EA im Strategietester im Allgemeinen und am Wochenende im Besonderen nur bedingte bis gar keine Aussagekraft besitzt
b) eine Handelsentscheidung (bzw. im EA) auf Tickbasis unnsinnig ist, da einige Ticks nicht berücksichtigt / verschluckt werden, obgleich sie im Chart auf M1 zu sehen sind. Ob dies brokerabhängig ist, kann ich nicht sagen. Dies hat jedoch Einfluss auf EAs auf Basis kleiner Timeframes.

Beinahe faszinierend (oder erschreckend, ich bin hin- und hergerissen) finde ich, dass mein Broker "Leverate" / Direktbroker-FX trotz Anmahnung den gesamten Montag (!) die Ticks zwar in Echtzeit liefert, aber 5 Minuten später beginnt, d.h. Forex sonntags um 23:05 Uhr, was für die Montage erheblichen Einfluss auf die Kerzengestaltung / Aussehen haben kann (Und dies auch oft so ist). Auf M5 kann man dann montags gar nichts entscheiden, da mein M15 oder H1 anders aussieht als in Australien oder US oder eben bei anderen Brokern, deren Handelsbeginn eben um 23:00 Uhr beginnt. Sehr unbefriedigend, aber ich habe ohnehin vor, zu wechseln. Der Spread im EURUSD von 2-3 Pipetten bei Kommission von 2,4 pro Lot wird wohl eben auf diese Art und Weise erkauft.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Mit Zitat antworten
Antwort

Lesezeichen


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 00:02 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 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.
-----------------------------------------------------------------------------------------------------------------------------