Guten Abend, ist es möglich, das Skript in einer Schleife laufen zu lassen? So dass es nach dem Ende der offenen Charts wieder von vorne beginnt, anstatt die Arbeit zu beenden.
Im Prinzip können Sie das. Wie viele Zyklen müssen Sie machen? Oder wie ein Kaleidoskop - den ganzen Tag lang?
Nun, ein ganzer Tag wäre besser.....
In diesem Fall brauchen Sie einen EA, in dem Sie das gesamte Karussell in OnTimer() aufrufen. Ich werde darüber nachdenken.
Hinzugefügt. Der Text wurde korrigiert.
Wie auch immer, hier ist der Expert Advisor. Denken Sie daran, dass es ein wenig problematisch ist, den Expert Advisor auszuschalten/zu entladen, wenn unendlich viele Charts angezeigt werden :) . Deshalb möchte ich Sie daran erinnern, dass dieser Expert Advisor im Fenster "Navigator" angezeigt wird:

Ah, hier ist der Expert Advisor selbst:
//+------------------------------------------------------------------+ //|Chart_bringing_to_top.mq5 | //|Copyright © 2016, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2016, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property description "The indicator switches all open charts after a certain interval." //--- Eingabeparameter //--- Eingabeparameter input uchar Seconds=3; // Intervall // Intervall //--- bool IsCicle=false; // true - in cicle // true - in cicle //+------------------------------------------------------------------+ //| Experteninitialisierungsfunktion| //+------------------------------------------------------------------+ int OnInit() { //--- Zeitschaltuhr erstellen if(Seconds<3) { MessageBox("Interval must be greater than 3 seconds"); EventSetTimer(3); } else EventSetTimer(Seconds); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Experten-Deinitialisierungsfunktion| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Zeitgeber zerstören EventKillTimer(); } //+------------------------------------------------------------------+ //| Experten-Tick-Funktion| //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| Timer-Funktion| //+------------------------------------------------------------------+ void OnTimer() { //--- if(IsCicle) return; IsCicle=true; //--- uchar temp_second; if(Seconds<3) temp_second=3; // Variablen für Diagramm-ID long currChart,prevChart=ChartFirst(); //--- Das erste Diagramm anzeigen //--- Das erste Diagramm anzeigen ChartBringToTop(prevChart); Sleep((int)MathAbs(temp_second*1000)); int i=0,limit=100; //Drucken("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); // Wir haben wahrscheinlich nicht mehr als 100 offene Graphen // Wir haben sicherlich nicht mehr als 100 offene Karten while(i<limit)// { // Auf der Grundlage des vorherigen Diagramms ergibt sich ein neues Diagramm // Abrufen der neuen Diagramm-ID unter Verwendung der vorherigen Diagramm-ID currChart=ChartNext(prevChart); if(currChart<0) break; // Haben das Ende der Diagrammliste erreicht // Haben das Ende der Diagrammliste erreicht //Drucken(i," ",ChartSymbol(currChart)," ID =",currChart); ChartBringToTop(currChart); Sleep((int)MathAbs(temp_second*1000)); // Merken Sie sich die ID des aktuellen Diagramms für ChartNext() // Speichern wir die aktuelle Diagramm-ID für die Funktion ChartNext() prevChart=currChart; // Vergessen wir nicht, den Zähler zu erhöhen // Vergessen Sie nicht, den Zähler zu erhöhen i++; } IsCicle=false; } //+------------------------------------------------------------------+ //| Senden Sie einen Befehl an das Terminal, um das Diagramm über allen anderen Diagrammen anzuzeigen. //| Sendet den Befehl an das Terminal, um das Diagramm über allen anderen anzuzeigen. //+------------------------------------------------------------------+ bool ChartBringToTop(const long chart_ID=0) { //--- den Fehlerwert zurücksetzen ResetLastError(); //--- das Diagramm über allen anderen anzeigen if(!ChartSetInteger(chart_ID,CHART_BRING_TO_TOP,0,true)) { //--- Ausgabe der Fehlermeldung in das "Experten"-Protokoll. Print(__FUNCTION__+", Error Code = ",GetLastError()); return(false); } ChartRedraw(chart_ID); //--- erfolgreiche Ausführung return(true); } //+------------------------------------------------------------------+
Ich danke Ihnen für Ihre Schnelligkeit. Aber der Expert Advisor funktioniert nicht richtig. Wenn mehr als zwei Charts geöffnet sind, springt der Expert Advisor vom ersten zum letzten Chart und überspringt den Rest dazwischen. Und es gibt keinen Übergang vom letzten zum ersten Chart, d.h. das Karussell funktioniert nicht.
Das Terminal führt eine eigene interne Buchhaltung über die Reihenfolge der geöffneten Diagramme. Wenn Sie die Charts während der Arbeit umstellen, wird die interne Buchhaltung nicht verändert. Machen Sie ein Experiment: Schließen Sie alle Charts, öffnen Sie fünf neue und legen Sie den Expert Advisor auf Chart Nummer 3.
Ich habe es überprüft, alles ist gleich geblieben. Er wechselt vom 3. zum letzten Chart und hält dann an. Er schaltet nicht vom letzten zum ersten um, es gibt kein Karussell.
Ich weiß nicht, ob es einen Einfluss hat - ich habe mt4. Ich habe die Datei in mt4 umbenannt und eine Kompilierung vorgenommen. Das frühere Skript schaltet korrekt....
EA Version 1.01. Ein Fehler wurde behoben und der Variablenname ersetzt. Anstelle von
Seconds
hat die Variable nun den Namen
Seconds_da in MQL4 das Wort Seconds nicht als Variablenname verwendet werden kann. (Hilfe zu Seconds).
Der Expert Advisor kann sowohl in MetaTrader 5 als auch in MetaTrader 4 verwendet werden (für MT4 müssen Sie nur die Datei umbenennen).
Ein Video, wie der EA funktioniert - ein Kaleidoskop, das alle verfügbaren Charts im Endlosmodus umschaltet:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Die Umschaltung der Charts:
Autor: Vladimir Karputov