2002569:Hallo, können Sie mir sagen, ob es möglich ist, ein Kopieren Signal und ein Roboter auf das Konto in mt4 zu verbinden und die ganze Sache auf dem vps verbinden?
VasiliKolchanov: Hallo alle, könnten Sie mir bitte sagen, wie man eine Funktion pausieren, nicht die gesamte EA, aber nur eine Funktion, zum Beispiel eine Warnung?
Wie kommt das? Bisher ist nur eine recht komische Situation entstanden: Der Mann geht weiter, aber er soll seinen Kopf eine Weile an dieser Stelle lassen. Dann werden wir sie zurückbringen.
VasiliKolchanov: Könnten Sie mir bitte sagen, wie ich eine Funktion pausieren kann, nicht den ganzen EA, sondern nur eine Funktion, z.B. Alerts?
Mit einem Programm kann man alles machen, was man mit Worten beschreiben kann, in Ihrer Frage haben Sie beschrieben, was Sie tun müssen. So wird es gemacht: Sie beschreiben die globale (nun ja, fast am Anfang des Programms) Variable im Programm: bool pauza=false; Wenn sie falsch ist, funktioniert die Funktion, wenn sie wahr ist, wird die Funktion angehalten. Jetzt muss die Funktion auf pauza reagieren. Fügen Sie dazu entweder if(pauza)return; am Anfang der Funktion oder etwas Ähnliches an der Stelle des Funktionsaufrufs ein.
Sie bleibt in der Hauptfunktion, um die Bedingung zu prüfen und die Funktion über die Variable pauza zu verwalten.
Wenn Sie von außerhalb des Programms steuern müssen (von einem anderen Skript, Expert Advisor, Indikator), dann verwenden Sie die globale Variable des Terminals
Wie kommt das? Bisher ist nur eine recht komische Situation entstanden: Der Mann geht weiter, aber er soll seinen Kopf eine Weile an dieser Stelle lassen. Dann werden wir sie zurückbringen.
Ich habe den Alarm bei einem bestimmten Kursniveau ausgelöst, es gibt viele Instrumente, und der Kurs wird sich nicht sofort vom Niveau des Alarms wegbewegen, er wird natürlich immer weiter nachziehen. Sie können den Alarm mit Hilfe der Flagge deaktivieren, aber da es viele Instrumente gibt, kann man leicht vergessen, den Alarm zu aktivieren. Deshalb muss ich ihn vorübergehend deaktivieren und ihn (oder vielmehr seine Funktion) nach einer bestimmten Zeit wieder aktivieren.
VasiliKolchanov: Ich habe einen Alarm bei einem bestimmten Preisniveau ausgelöst, es gibt viele Instrumente, und der Preis bewegt sich nicht sofort von dem Niveau weg, das den Alarm auslöst, er wird natürlich immer weiter absacken. Sie können den Alarm über eine Flagge deaktivieren, aber da es viele Instrumente gibt, kann man leicht vergessen, den Alarm zu aktivieren. Deshalb muss ich ihn vorübergehend deaktivieren und ihn (oder vielmehr seine Funktion) nach einer bestimmten Zeit wieder aktivieren.
Für diesen Fall können Sie einen Zeitraum für die Auslösung des Alarms festlegen. Sagen wir in Sekunden:
inputuint i_uAlertPeriod = 120; // Период отображения Alert, сек.
...
void DoAlert(string sText)
{
staticdatetime dtLastTime = 0;
if (TimeCurrent() - dtLastTime < i_uAlertPeriod)
return;
dtLastTime = TimeCurrent();
Alert(sText);
}
Für diesen Fall können Sie einen Zeitraum für die Auslösung des Alarms festlegen. Sagen wir in Sekunden:
Ihor danke für die Antwort, nur eine Frage, wird es nicht eine Verzögerung der Aktion sein, d.h. während der Pause werden die Alarme mit jedem Tick akkumulieren, und wenn die Zeit abläuft, wird der EA sie immer noch an mich geben (alle akkumuliert)? Es mag lächerlich klingen, aber sorry, Neuling - ich lerne noch.
All dies ist durchaus machbar
Hallo alle, könnten Sie mir bitte sagen, wie man eine Funktion pausieren, nicht die gesamte EA, aber nur eine Funktion, zum Beispiel eine Warnung?
Wie kommt das? Bisher ist nur eine recht komische Situation entstanden: Der Mann geht weiter, aber er soll seinen Kopf eine Weile an dieser Stelle lassen. Dann werden wir sie zurückbringen.
Wahrscheinlich ist etwas anderes gemeint.
Könnten Sie mir bitte sagen, wie ich eine Funktion pausieren kann, nicht den ganzen EA, sondern nur eine Funktion, z.B. Alerts?
Mit einem Programm kann man alles machen, was man mit Worten beschreiben kann, in Ihrer Frage haben Sie beschrieben, was Sie tun müssen.
So wird es gemacht: Sie beschreiben die globale (nun ja, fast am Anfang des Programms) Variable im Programm: bool pauza=false;
Wenn sie falsch ist, funktioniert die Funktion, wenn sie wahr ist, wird die Funktion angehalten.
Jetzt muss die Funktion auf pauza reagieren.
Fügen Sie dazu entweder if(pauza)return; am Anfang der Funktion oder etwas Ähnliches an der Stelle des Funktionsaufrufs ein.
Sie bleibt in der Hauptfunktion, um die Bedingung zu prüfen und die Funktion über die Variable pauza zu verwalten.
Wenn Sie von außerhalb des Programms steuern müssen (von einem anderen Skript, Expert Advisor, Indikator), dann verwenden Sie die globale Variable des Terminals
Wie kommt das? Bisher ist nur eine recht komische Situation entstanden: Der Mann geht weiter, aber er soll seinen Kopf eine Weile an dieser Stelle lassen. Dann werden wir sie zurückbringen.
Es muss etwas anderes sein.
Ich habe einen Alarm bei einem bestimmten Preisniveau ausgelöst, es gibt viele Instrumente, und der Preis bewegt sich nicht sofort von dem Niveau weg, das den Alarm auslöst, er wird natürlich immer weiter absacken. Sie können den Alarm über eine Flagge deaktivieren, aber da es viele Instrumente gibt, kann man leicht vergessen, den Alarm zu aktivieren. Deshalb muss ich ihn vorübergehend deaktivieren und ihn (oder vielmehr seine Funktion) nach einer bestimmten Zeit wieder aktivieren.
Für diesen Fall können Sie einen Zeitraum für die Auslösung des Alarms festlegen. Sagen wir in Sekunden:
Ich brauche, um Daten aus dem letzten geschlossenen Handel zu nehmen, genauer gesagt, ich brauche Lot-Wert, wie kann ich dies in Mt4 registrieren
Ich habe überall gesucht, es gibt eine für Mt5, aber nicht für Mt4
Ich brauche, um Daten aus dem letzten geschlossenen Handel zu nehmen, genauer gesagt, ich brauche Lot-Wert, wie kann ich dies in Mt4 registrieren
Ich habe überall gesucht, es gibt eine für Mt5, aber nicht für Mt4
Eigentlich sollte es andersherum sein)
Für diesen Fall können Sie einen Zeitraum für die Auslösung des Alarms festlegen. Sagen wir in Sekunden: