Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 646

 
Tra-der:
Es gibt zwei MT5-Terminals. Problem: Kann ich Skripte schreiben, um in einem Terminal nur Long-Trades und im anderen nur Short-Trades zuzulassen?
#define ORDER_TYPE_BUY ORDER_TYPE_BUY_STOP   // поставить в самом начале советника, если нужно отказаться от BUY-сделок
#define ORDER_TYPE_SELL ORDER_TYPE_SELL_STOP // поставить в самом начале советника, если нужно отказаться от SELL-сделок
 
Tra-der:
Es gibt zwei MT5-Terminals. Aufgabe: Ist es möglich, Skripte zu schreiben, die in einem Terminal nur Long-Trades und im anderen nur Short-Trades zulassen?

Geben Sie einfach einen Eingabeparameter in Ihren EA ein, und je nachdem, welchen Wert Sie ihm beim Start zuweisen, werden Sie entweder nur kaufen oder nur verkaufen:

input bool Long=true;            // allow only "Long"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
...
void OnTick()
  {
   if(!Long)
      trade.Sell(0.01);
   if(Long)
      trade.Buy(0.01);
  }
 
Artyom Trishkin:

Um zu wissen, ob es sich um ein neues Oberteil oder ein neues Unterteil handelt, müssen Sie sich an die Zeit des letzten gefundenen Oberteils/Tops erinnern und sie mit dem vergleichen, was Sie bisher gefunden haben.

Danke, das mit dem Puffer ist klar.

Um sich den Zeitpunkt des letzten gefundenen Scheitelpunkts zu merken, müssen Sie ihn irgendwie kennen.

Wie kann ich den Zeitpunkt des letzten gefundenen Scheitelpunkts erfahren?

 
mila.com:

Danke, der Puffer ist klar.

Um sich den Zeitpunkt des letzten gefundenen Scheitelpunkts zu merken, müssen Sie ihn irgendwie kennen.

Wie kann man dies tun, wie kann man die Zeit des letzten gefundenen Scheitelpunkts erfahren?

Sie deklarieren eine statische Variable, um den Zeitpunkt des vorherigen Extremwerts des Zickzacks zu speichern, und initialisieren sie mit Null.

2. Finden Sie einen Scheitelpunkt, und wenn seine Zeit nicht gleich der Zeit in der statischen Variablen ist, gehen Sie davon aus, dass Sie das gewünschte Extremum gefunden haben, und merken Sie sich die neue Zeit in dieser Variablen.

3. goTo(2);

 

Genossinnen und Genossen Programmierer!

Empfehlen Sie einen Weg, um herauszufinden, ob die Streuung zugenommen hat.

Das Problem ist das folgende: während des Übergangs zu einem neuen Tag Brokerage-Unternehmen erweitert Spread, und manchmal ist es verrückt für einige Paare - es übersteigt von 3-5 mal den normalen Wert. Die Sommerzeitspannen sind in den Maklerunternehmen unterschiedlich, wobei die Zeitumstellung von 23 auf 59 und von 20 auf 59 usw. erfolgt.

Für einige Leute ändert sich der Spread nicht viel, so dass wir den "Working by time"-Roboter nicht ausschalten können, denn wenn sich der Spread nicht ändert, müssen wir den Handel nicht verbieten.

Die Hauptfrage ist, wie man erkennen kann, dass der Spread zu groß ist und der Roboter deshalb keine Position eröffnen darf. Ich sehe eine Variante, bei der die Spread-Größen für jeden neuen Balken für die letzten 5-7 Balken in einer Datei gespeichert werden, dann alles addiert und durch die Zahl geteilt wird, um so den durchschnittlichen Spread zu erhalten und mit 1,2 - 1,4 (Marge) zu multiplizieren, aber es ist nicht interessant, Dateien zu speichern und zu multiplizieren, und ich bin nicht sicher, ob dies die richtige Lösung für die Berechnung des durchschnittlichen Spreads ist. Wenn ich die maximal zulässige Streuung manuell in den Einstellungen eingebe, ist das sehr trivial und für den Botbetrieb uninteressant.

Bitte nennen Sie mir die optimale Lösung für diese Frage, bei der ich keine Angst vor einem Neustart des Terminals und einer Notabschaltung im Falle eines Stromausfalls haben muss. Außerdem sollte das Programm so wenig wie möglich belastet werden, damit es nicht bei jedem Tick neu berechnet werden muss.

Ich danke Ihnen!

 
Vitaly Muzichenko:

Genossinnen und Genossen Programmierer!

Empfehlen Sie einen Weg, um herauszufinden, ob die Streuung zugenommen hat.

Das Problem ist das folgende: während des Übergangs zu einem neuen Tag Brokerage-Unternehmen erweitert Spread, und manchmal ist es verrückt für einige Paare - es übersteigt von 3-5 mal den normalen Wert. Die Sommerzeitspannen sind in den Maklerunternehmen unterschiedlich, wobei die Zeitumstellung von 23 auf 59 und von 20 auf 59 usw. erfolgt.

Für einige Leute ändert sich der Spread nicht viel, so dass wir den "Working by time"-Roboter nicht ausschalten können, denn wenn sich der Spread nicht ändert, müssen wir den Handel nicht verbieten.

Die Hauptfrage ist, wie man erkennen kann, dass der Spread zu groß ist und der Roboter deshalb keine Position eröffnen darf. Ich sehe eine Variante, bei der die Spread-Größen für jeden neuen Balken für die letzten 5-7 Balken in einer Datei gespeichert werden, dann alles addiert und durch die Anzahl geteilt wird, um so den durchschnittlichen Spread zu erhalten und mit 1,2 - 1,4 (Marge) zu multiplizieren, aber es ist nicht interessant, Dateien zu speichern und zu multiplizieren. Wenn ich die maximal zulässige Streuung manuell in den Einstellungen eingebe, ist das sehr trivial und für den Botbetrieb uninteressant.

Bitte teilen Sie mir mit, was die beste Lösung für diese Frage wäre. Ich danke Ihnen!

Es mag trivial sein, aber ich gebe den Grenzwert manuell ein. Und wenn in der Silvesternacht für die letzten N Kerzen die Spanne dreimal so groß ist wie üblich, und in der Nacht sogar noch dreimal so groß, dann wird das Analysesystem dies als eine normale x3-Spanne betrachten. Ich denke, wenn man mit realen Werten handelt, ist es nicht schwierig, die durchschnittliche Handelsspanne manuell zu schätzen und den Schwellenwert festzulegen. Obwohl die Lösung Ihrer Frage auch für mich interessant wäre)
 
Was ist das für eine TK-Logik, die so abhängig vom Spread ist!
 
fxsaber:
Was ist das für eine TS-Logik, die sich ausbreitet?!

OK, sagen wir es mal so. Wenn man mit einem Spread von 20pp in den Markt einsteigt, während der normale Spread 4-6pp beträgt, dann ist das nicht normal, und wir müssen diese Momente ausschalten.

 
Vitaly Muzichenko:

OK, sagen wir es mal so. Zum Beispiel ist der Spread hier nicht einmal dreimal so groß, sondern mehr, und wenn man mit einem Spread von 20pp in den Markt einsteigt, während der normale Spread 4-6pp beträgt, ist das nicht normal, und wir müssen diese Punkte abschneiden.

Konzentrieren Sie sich also auf das Gebot, wenn Sie SELL machen wollen. Welchen Unterschied macht es, was sich verbreitet? Okay, ich werde mich nicht mehr einmischen.
 
Vitaly Muzichenko:

OK, sagen wir es mal so. Zum Beispiel ist der Spread hier nicht einmal dreimal so groß, sondern mehr, und wenn man mit einem Spread von 20pp in den Markt einsteigt, während der normale Spread 4-6pp beträgt, ist das nicht normal, und wir müssen diese Punkte abschneiden.

Global wird nicht helfen?
Grund der Beschwerde: