Mt4 Ende der Unterstützung. - Seite 31

 
Vladimir Pastushak:

4 Zyklen, ist das nicht cool? bei 600 Zeichen in der Marktübersicht wird das Terminal jede Minute sterben ....

Was soll das heißen? Der Timer läuft 1 Mal pro Minute. Das ist noch gar nichts.

Und der Benutzer greift auf die Funktion New_bar() zu, wann immer er will.

 
Alexey Viktorov:
Was den Code-Kommentar anbelangt: Was ist, wenn nur die aktuelle Periode und nur ein Zeichen auf einmal im Programm geöffnet werden soll? Wird dieses ganze Konstrukt alle Schleifen drehen? Das wäre unvernünftig.

Ich habe den Code völlig missverstanden.

Neue Ereignisse in der Symbolleiste werden einmal pro Minute in einer Schleife erfasst. Automatisch. Wenn die aktuelle Anzahl der Takte nicht mit der Anzahl der im Array aufgezeichneten Takte übereinstimmt, wird das Flag für ein neues Taktereignis im Array Events_new_bar[][] gesetzt.

 

Alexey Viktorov:


ps; Und warum einen Millisekunden-Timer starten? Ist ein zweiter Timer nicht genug?

Sie können auch einen zweiten Timer einstellen. Dann schreiben Sie "Timer_Frequenz = 1000".

 

Ich habe es eingebaut und getestet, es funktioniert nicht.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Новый_бар(Symbol(), PERIOD_M1)) Print("M1 = ",Time[0]);
   if(Новый_бар("EURUSD", PERIOD_M5)) Print("M5 = ",Time[0]);
  }
Gibt immer falsche Informationen aus
 
Vladimir Pastushak:

Sind 4 Zyklen nicht cool? bei 600 Zeichen in der Marktübersicht wird das Terminal jede Minute sterben ....

Ich frage mich, ob jemand wirklich so viele hat?

Ich habe 16 - und ich frage mich schon, ob die Belastung zu groß ist?

Stimmt, ich habe einen Mindestzeitrahmen von M15... Dennoch frage ich mich, ab wann die Belastung des Terminals kritisch wird?

 
Реter Konow:

Wie meinen Sie das? Der Timer läuft einmal pro Minute. Das ist noch gar nichts.

Und New_bar() wird immer dann aufgerufen, wenn der Benutzer es wünscht.


Die Funktion "Neuer Balken" wird normalerweise bei jedem Tick ausgeführt... Dieser Aufruf bei jedem Tick erfolgt, um Ressourcen zu sparen. Machen Sie sich klar, wie Ihre Funktion Ressourcen "spart", sie frisst sie auf.

 
George Merts:
... Dennoch frage ich mich, ab wann die Belastung des Terminals kritisch wird?

Wenn der Prozessor in die Knie geht und nicht mehr aufstehen kann.

Hochachtungsvoll.

 
Реter Konow:

Ich habe den Code völlig missverstanden.

Neue Symbolleistenereignisse werden einmal pro Minute in einer Schleife erfasst. Automatisch. Wenn die aktuelle Anzahl der Takte nicht mit der im Array aufgezeichneten übereinstimmt, setzen wir das Flag des neuen Taktereignisses im Array Events_new_bar[][].

Lassen Sie uns ein weiteres Beispiel für die Verwendung von OOP diskutieren.

Forum über Handel, automatisierte Handelssysteme und Strategietests

Mt4 Ende der Unterstützung.

Alexey Viktorov, 2017.09.11 13:08

Ich glaube, ich habe ein primitives Beispiel für die Brauchbarkeit von OOP gefunden. Hier ist eine Funktion, die ein Array mit einem bestimmten Wert füllt. Je nach Art des Arrays gibt es acht Varianten.

Stellen Sie sich vor, Sie müssen eine Funktion schreiben, die eine Reihe von Parametern übergeben muss, dann eine andere, dann eine dritte... Mit dem algorithmischen Ansatz erhalten Sie N verschiedene Funktionsnamen. Es scheint, dass es nichts falsch ist, können Sie 8 solche Funktionen wie ArrayInitializeInt()ArrayInitializeDouble() und so weiter zu schreiben.Aber es ist schön, nicht über den Typ des Arrays nachdenken zu müssen, nur eine Funktion in jedem Fall zu verwenden, und wie sicher es ist, das Array zu verwechseln, das man dort einfügt...


Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

Installiert, getestet, funktioniert nicht

Sie gibt immer false aus.

1. Führen Sie den EA auf M1 aus.

2. Sie müssen warten, bis die aktuelle Bar vollständig fertiggestellt ist. Beim ersten Takt ist das Ereignis noch nicht festgelegt. Ich habe es absichtlich getan. Anschließend müssen Sie so lange warten, wie es der Zeitrahmen vorgibt, den Sie an die Funktion senden.

Ich habe es eine Minute lang ausprobiert und es hat funktioniert.

 
Dmitry Fedoseev:

Die Funktion "neuer Balken" wird normalerweise bei jedem Tick ausgeführt... Dieser Aufruf erfolgt bei jedem Tick, um Ressourcen zu sparen. Machen Sie sich klar, wie Ihre Funktion Ressourcen "spart", sie frisst sie auf.

Sie wissen offensichtlich nicht, wie man Codes liest. )) Wo verschlingt er sie?
Grund der Beschwerde: