Der große und schreckliche MT4 für immer (oder wie man einen Übergang strategisch plant) - Seite 26

 
fxsaber:

Wahrscheinlich gibt es im Inneren keine solche Flagge.

Offensichtlich nicht.

aber ich denke, dass MQ durchaus eine machen könnte, zumal es eine Flagge pro Terminal wäre, d.h. für alle Programme.

 
Artyom Trishkin:
Ich werde es wahrscheinlich vorschlagen. Aber viel später. Aufgrund subjektiver Umstände. Leider. In der Zwischenzeit können Sie sich als Demagoge betrachten. Nicht verboten.

Immer noch relevant? Wie wird Ihre Version der Lösung aussehen?

 
Igor Makanu:

Immer noch relevant? Wie wird Ihre Version der Lösung aussehen?

Sie haben meinen Beitrag zitiert, in dem es hieß "viel später". Für mich bedeutet "viel später" nicht früher als in einem Jahr. Nicht, weil es so lange dauert, eine Lösung zu finden, sondern einfach wegen der subjektiven Umstände, leider.

 
Artyom Trishkin:

das wird frühestens in einem Jahr der Fall sein.

OK, es ist also nicht relevant.

 
Wahrscheinlich fallen Ihnen noch Probleme ein, die von ihren Bedingungen her einfach sind und deren Lösung unerwartete Schwierigkeiten bereitet.
 
fxsaber:
Sie können wahrscheinlich immer noch auf einfache Probleme stoßen, deren Lösung unerwartete Schwierigkeiten verursacht.

Das Skript überwacht das übermäßige Risiko: Wenn die Gesamtzahl der Positionen und ausstehenden Aufträge zwei übersteigt - melden Sie es und steigen Sie aus.


Kurzer Code:

void OnStart()
{
  while (!IsStopped())
    if ((PositionsTotal() + OrdersTotal() > 2)) // Если (риск превышен) число отложек/позиций больше двух,
    {
      Alert("Risk exceeded!");                  // сообщаем      
      ExpertRemove();                           // и выходим.
    }
}


Wir sehen uns das Verhalten des Skripts in Abhängigkeit von den manuellen Aktionen an. Bevor wir dies tun (bevor wir das Skript ausführen), sollten wir die Anzahl der Positionen auf dem Konto PosTotal, Aufträge - OrdTotal markieren.

Drehbuch PosTotal/OrdTotal Aktion Skriptergebnis
01 0/0 Eröffnen Sie eine Position. Werke.
02 0/0 Platzieren Sie eine schwebende Position. Es funktioniert.
03 0/1 Eine Pause einlegen . 03 0/1 Eine Pause einlegen.
04 0/1 Eröffnen Sie eine Position. Alert (nicht immer).
05 0/1 Löscht eine schwebende Position. Werke.
06 1/0 Einen schwebenden Auftragerteilen. Werke.
07 1/0 Eröffnung einer Stelle. Alert (nicht immer).
08 1/0 Position schließen. Arbeiten.
09 1/1 Löschen einer schwebenden Position. Arbeiten.
10 1/1 Eine Position schließen. Alert.
11 0/2 Löscht eine schwebende Position. Arbeiten.
12 2/0 Eine Position schließen. Alert.


Es scheint eine sehr einfache Aufgabe zu sein, aber es gibt Warnmeldungen. Welche Varianten der Lösung gibt es?


Wahrscheinlich sollten wir gerade bei solchen einfachen Aufgaben an unserem Verständnis von MT5 arbeiten.

 
fxsaber:

Das Skript überwacht das übermäßige Risiko: Wenn die Gesamtzahl der Positionen und ausstehenden Aufträge zwei übersteigt - melden Sie es und steigen Sie aus.


Kurzer Code:


Wir sehen uns das Verhalten des Skripts in Abhängigkeit von den manuellen Aktionen an. Bevor wir dies tun (bevor wir das Skript ausführen), sollten wir die Anzahl der Positionen auf dem Konto PosTotal, Aufträge - OrdTotal markieren.

Drehbuch PosTotal/OrdTotal Aktion Skriptergebnis
01 0/0 Eröffnen Sie eine Position. Werke.
02 0/0 Platzieren Sie eine schwebende Position. Es funktioniert.
03 0/1 Eine Pause einlegen. 03 0/1 Eine Pause einlegen.
04 0/1 Eröffnen Sie eine Position. Alert (nicht immer).
05 0/1 Löscht eine schwebende Position. Werke.
06 1/0 Einen schwebenden Auftragerteilen. Werke.
07 1/0 Eröffnung einer Stelle. Alert (nicht immer).
08 1/0 Position schließen. Arbeiten.
09 1/1 Löschen einer schwebenden Position. Arbeiten.
10 1/1 Eine Position schließen. Alert.
11 0/2 Löscht eine schwebende Position. Arbeiten.
12 2/0 Eine Position schließen. Alert.


Es scheint eine sehr einfache Aufgabe zu sein, aber es gibt Warnmeldungen. Welche Varianten der Lösung gibt es?


Wahrscheinlich sollten wir gerade bei solchen einfachen Aufgaben an unserem Verständnis von MT5 arbeiten.

Was hat MQ5 damit zu tun? Die Bedingung für das Verlassen der Schleife: IsStopped und nicht mehr als zwei Aufträge. Dann funktioniert das Skript, und wenn die Bedingung nicht erfüllt ist, funktioniert auch das Skript.

 
Алексей Тарабанов:

Was hat das mit MQ5 zu tun? Bedingung für das Verlassen der Schleife: IsStopped und nicht mehr als zwei Aufträge. Dann funktioniert das Skript, und wenn die Bedingung nicht erfüllt ist, funktioniert auch das Skript.

Der Code enthält sogar Kommentare.

 
fxsaber:

Das Skript überwacht das übermäßige Risiko: wenn die Gesamtzahl der Positionen und Aufträge zwei übersteigt - melden Sie es und steigen Sie aus.

Ein prägnanter Code:


Es scheint eine sehr einfache Aufgabe zu sein, aber es gibt Warnmeldungen. Was sind die Varianten der Lösung?


Wahrscheinlich ist dies die Art von einfachen Aufgaben, die wir nutzen sollten, um unser MT5 Verständnis zu entwickeln.

Ich glaube, ich muss etwas Ähnliches tun:

void OnStart()
{
   while (!IsStopped())
   {
      //--- посчитаем ордера
      int orders = 0;
      for(int i = 0; i < OrdersTotal(); i++)
         if(OrderGetTicket(i) > 0 && OrderGetInteger(ORDER_TYPE) < ORDER_TYPE_CLOSE_BY) orders++;
      
      if(orders + PositionsTotal() > 2) break;     // выходим
   }
   if(!_StopFlag) Alert("Risk exceeded!");         // сообщаем
}
 
Igor Makanu:

Wahrscheinlich muss so etwas gemacht werden:

Natürlich müssen Sie die Aufträge filtern. Das ist keine leichte Aufgabe.

ZS Es ist eine interessante Situation in diesem Forum. Aktive Antworten auf Fragen. Hier ist das offenbar anders.
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2016.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...