Einen neuen Balken anzeigen - Seite 3

 

Hallo Alain,

vielen Dank für deinen Kommentar und deine Verbesserungen.

Ich sollte zu meiner ersten Version zurückkehren, in der "bool NewBar" eine globale Variable ist, die durch einen Funktionsaufruf in OnTick() geschaltet wird.

Oder ich mache ein kleines Objekt daraus. Vielleicht ist das die klügste Option.


Und - natürlich - "never do the same calculation twice".

Helmut

 
datetime iTime[];
datetime recent;
datetime projection;
int OnInit()
  {
//---
  int pull=CopyTime(NULL,0,0,1,iTime);
  recent=iTime[0];
  projection=recent+PeriodSeconds();
//---
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
//---
  if(TimeCurrent()>=projection)
   {
   Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
   projection=projection+PeriodSeconds();
   }
  }
 

@ Doerk Hilger

Die Sprache ist die gleiche, aber sie haben eine kleine Teilmenge von Funktionen nicht gemeinsam<br / translate="no">

Oh mein Gott ... definitiv nicht!

Wie MQ in der Produktbeschreibung hervorhebt

MetaQuotes Language 5 basiert auf den Konzepten der bekannten und beliebten ProgrammierspracheС++ . MQL5 ist ebenfalls eine objektorientierte Programmiersprache auf hohem Niveau.

https://www.metatrader5.com/en/automated-trading/mql5

Neben einigen Unterschieden in der Handhabung von Strukturen, Zeigern und Adressen, ist der größte Punkt: MQL5 bietet alle Eigenschaften einer objektorientierten Programmiersprache, die ein völlig anderes Programmierparadigma ermöglicht. Unter diesem Gesichtspunkt gehört MQL5 eindeutig zu einer anderen Klasse und auch einer anderen Generation von Sprachen als MQL4.

Ein weiterer Vorteil ist die Geschwindigkeit. Ich weiß nicht mehr, wo ich das gelesen habe: MQL5 ist hundertmal schneller in der Ausführung als MQL4.

Und hier kommt der Nachteil: Es ist schneller in der Ausführung, ABER das Erstellen eines Programms ist sehr, sehr langsam, wenn man sich erst mit Konzepten der Programmierung auf professionellem Niveauvertraut machenmuss .

Das führt zu dem Problem von MQ. Einerseits müssen sie eine moderne professionelle Entwicklungsumgebung anbieten, um den Markt der Profis zu gewinnen oder zu halten, andererseits können sie es sich nicht erlauben, all die privaten und semiprofessionellen Kunden zu verlieren, die sich für den Handel und nicht für die Programmierwissenschaft interessieren.




 
MQ hat an dieser Stelle viel zur Verwirrung beigetragen.

Vielleicht haben Sie Recht.

Schauen wir mal, was wir tun können, um mehr Klarheit in diese Angelegenheit zu bringen.

Ich denke, es wäre sehr hilfreich, wenn die Leute ihre MQL4-Probleme im MQL4-Forum posten würden,, während diejenigen, die MQL5-Fragen haben, im MQL5-Forum posten sollten.

Klingt sehr einfach ... was meinen Sie?

Am Anfang wäre es hilfreich, wenn der Moderator falsche Beiträge in das richtige Forum verschieben würde, mit dem Hinweis "Sorry, falsches Forum - siehe ...".

Willbur

 

@LorentzosRoussos

Es wird immer einfacher ;-)

Worüber ich mir Sorgen mache ist die Frage, ob TimeCurrent() in allen Fällen mit den Balken synchronisiert ist.

Ich werde am Montag einige 2h-Tests durchführen.

Willbur



 
sein sollte: 24 h
 
Willbur:

@LorentzosRoussos

Es wird immer einfacher ;-)

Worüber ich mir Sorgen mache ist die Frage, ob TimeCurrent() in allen Fällen mit den Balken synchronisiert ist.

Ich werde am Montag einige 2h-Tests durchführen.

Willbur



Alain kann mich korrigieren, aber es kann sein, dass man Lücken findet, wenn es am Zeithorizont eines Balkens keine Ticks gibt, also kein Balken vorhanden ist.
 
Willbur:

@ Doerk Hilger

Oh mein Gott ... definitiv nicht!

Wie MQ schon in der Produktbeschreibung anmerkte

Neben einigen Unterschieden in der Handhabung von Strukturen, Zeigern und Adressen, ist der größte Punkt der: MQL5 bietet alle Features einer objektorientierten Programmiersprache, die ein völlig anderes Programmierparadigma ermöglicht.




Eindeutig ja :) Aber ich weiß, was du meinst, ich dachte immer, ich programmiere MQL5, weil ich nur objektorientiert programmiere, aber wie ich jetzt gelernt habe, ist sein "Enhanced" MQL4 seit Baujahr 600, das einfach nichts anderes ist als MQL5, aber, wie gesagt, mit kleinen Unterschieden bei den Funktionen - und seit diesem Baujahr ist MQL4 keine andere Sprache mehr. Eigentlich ist Enhanced-MQL4 MQL5 für MetaTrader4. Das war es, was ich mit der Verwirrung meinte. Für mich war MQL5 immer OOP und MQL4 war nur Top-Down-Spaghetti. Und ich mag keine Spaghetti ;)

Edit: Woher stammt Ihre obige Aussage und wann haben sie das veröffentlicht? Denn eigentlich würde es bedeuten, dass die erste Annahme richtig war: Es ist MQL5 .... Verwirrung auf höchstem Niveau ;)

 
Ich liebe Spaghetti.
 
Doerk Hilger:

Definitiv ja :) Aber ich weiß, was du meinst, ich dachte immer, ich programmiere MQL5, weil ich nur objektorientiert programmiere, aber wie ich jetzt gelernt habe, ist sein "Enhanced" MQL4 seit Baujahr 600, das einfach nichts anderes als MQL5 ist, aber, wie gesagt, mit kleinen Unterschieden bei den Funktionen - und seit diesem Baujahr ist MQL4 keine andere Sprache mehr. Eigentlich ist Enhanced-MQL4 MQL5 für MetaTrader4. Das war es, was ich mit der Verwirrung meinte. Für mich war MQL5 immer OOP und MQL4 war nur Top-Down-Spaghetti. Und ich mag keine Spaghetti ;)

Edit: Woher stammt Ihre obige Aussage und wann haben sie das veröffentlicht? Denn eigentlich würde es bedeuten, dass die erste Annahme richtig war: Es ist MQL5 .... Verwirrung auf höchstem Niveau ;)

Enhanced-MQL4?

Nie davon gehört.

Vielleicht sollten Sie die Dokumentation beider Plattformen lesen, bevor Sie sich einreden, dass Sie wissen, was Sie tun.