Fehler, Irrtümer, Fragen - Seite 144

 
pronych:

Es war schon immer schwierig, schwebende Aufträge zu verwalten. auf mt4 zu. vielleicht versuchen, weg von dem? zum Beispiel, machen virtuelle schwebende Aufträge (nur speichern Sie sie in Variablen und öffnen auf dem Markt, wenn der Preis überschritten hat). Zeit ist jetzt wichtig...

Ich habe keine Zeit... Ich habe gerade den Code debuggt.

zumindest Zeit haben, um einige Tests und Optimierungen durchzuführen

 
Valmars:
Solche einzelnen Fehler haben keinen Einfluss auf das Schicksal deines EA in der Meisterschaft. Wenn er jedoch in Ermangelung von Geld wiederholt versucht, eine Position zu eröffnen, die Gigabytes in seinem Log erzeugt, wie es bei den letzten Meisterschaften der Fall war, wird er disqualifiziert.
Nein, wenn der ausstehende Auftrag gelöscht wird, wird natürlich kein neuer Auftrag erteilt, wenn kein Geld vorhanden ist.
 
Ich habe ein Problem bei der Festlegung von Stop-Levels für schwebende Aufträge. Wenn der Markt ruhig ist und wir eine Stop-Order auf einem zulässigen Niveau platzieren wollen, funktioniert die Funktion SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) perfektund die Orders werden platziert, und alle sind zufrieden, mich eingeschlossen. Wenn sich der Markt jedoch zu Beginn der Handelssitzungen stark bewegt, funktioniert diese Funktion nicht mehr, die Aufträge werden nicht platziert und das Terminal beginnt, Fehler über ungültige Stops zu erzeugen.

Ich möchte nicht, dass mein EA vom Wettbewerb ausgeschlossen wird, weil er sich auf diese Art von empfohlenen Funktionen verlässt. Aber woher weiß ich dann, wie hoch der zulässige Stop-Level für ein bestimmtes Symbol im Moment ist?

P.S. Ich würde es hassen, die Auswahl mit schrittweiser Erhöhung im Falle eines Fehlers zu verwenden, und die Anzahl der Fehler wird in diesem Fall steigen.
 
Vladix:
Ich habe ein Problem bei der Bestimmung von Stop-Levels für schwebende Aufträge. Wenn der Markt ruhig ist und wir eine Stop-Order auf einem zulässigen Niveau platzieren wollen, funktioniert die Funktion SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) perfekt; die Orders werden platziert und alle sind zufrieden, auch ich. Wenn der Markt jedoch zu Beginn einer Handelssitzung stark zu schwanken beginnt, funktioniert diese Funktion nicht mehr, es werden keine Aufträge erteilt und das Terminal beginnt, Fehler über ungültige Stops zu erzeugen.

Ich möchte nicht, dass mein EA vom Wettbewerb ausgeschlossen wird, weil er sich auf diese Art von empfohlenen Funktionen verlässt. Aber woher weiß ich dann, wie hoch der zulässige Stop-Level für ein bestimmtes Symbol im Moment ist?

P.S. Ich würde es sehr hassen, eine Auswahl mit schrittweiser Erhöhung im Falle eines Fehlers zu verwenden, und die Anzahl der Fehler würde in diesem Fall steigen.

Bei schwebenden Aufträgen tritt der Fehler der ungültigen Stopps auch dann auf, wenn der offene Preis näher am aktuellen Preis liegt.

D.h. Sie müssen nicht nur die Stopps, sondern auch den Eröffnungskurs überprüfen.


 

Ich glaube, dass es einen Fehler in der Funktion HistoryDealsTotal() gibt, wenn sie nach HistorySelectByPosition() gestartet wird .

Es zeigt immer wieder die Anzahl der Geschäfte gleich 0 an, und das, obwohl eine offene Position besteht (Variante mit mehreren Währungen).

Hier ist der Code:


void GetDealQuantity(string smbl)
{
long pos_id;
int gesamt, Menge=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(ticket!=newticket) { quantity++; ticket=newticket; }
}
if(smbl==Symbol1) Menge1=Menge;
if(smbl==Symbol2) Menge2=Menge;
Print(__FUNCTION__," Menge=",Menge);
}

Druckt es in das Journal:

2010.01.04 00:20:05 GetDealQuantity select=true gesamt=0
2010.01.04 00:20:05 GetDealQuantity Menge=0
2010.01.04 00:20:05 EURJPY Volumen=0.1 Menge=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity Menge=1
2010.01.04 00:20:05 AUDUSD Volumen=0.1 Menge=1

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 

Versuchen Sie, den Code korrekt in Ihre Beiträge einzufügen. Versuchen Sie, Ihr Beispiel folgendermaßen zu ändern:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void GetDealQuantity(string smbl)
  {
   long pos_id;
   int total,quantity=0;
   ulong ticket=0,newticket;
   if(PositionSelect(smbl))
     {
      pos_id=PositionGetInteger(POSITION_IDENTIFIER);
      bool select=HistorySelectByPosition(pos_id);
      if(select)
        {
         total=HistoryDealsTotal();
         Print(__FUNCTION__," select=",select," total=",total,"posID=",pos_id);
         for(int i=total-1;i>=0;i--)
           {
            newticket=HistoryOrderGetTicket(i);
            if(ticket!=newticket) { quantity++; ticket=newticket; }
           }
         if(smbl==symbol1) quantity1=quantity;
         if(smbl==symbol2) quantity2=quantity;
         Print(__FUNCTION__," quantity=",quantity);
        }
      else
        {
        Print("Не удалось выполнить HistorySelectByPosition() для pos_id=",pos_id);
        }

     }
   else
     {
      Print("Позиции не выбрана по символу ",smbl);
     }
  }
//+------------------------------------------------------------------+
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Gibt es irgendwo ein Beispielskript, das das letzte Zitat in die Zwischenablage schreibt oder etwas Ähnliches?
 
jmp:
Gibt es irgendwo ein Beispielskript, um das letzte Zitat in die Zwischenablage zu schreiben oder etwas Ähnliches?

Windows-Zwischenablage?

Ich muss in msdn nachsehen, in welcher dll sich die benötigten Funktionen befinden...

 
Ich möchte der Sache auf den Grund gehen. Korrigieren Sie mich, wenn ich falsch liege. Als ich die Dokumentation für die Indikatoren (Fraktale, glaube ich) studierte, erinnerte ich mich sehr deutlich daran, und ich erinnere mich immer noch daran, dass im Falle von zwei benachbarten (aufeinanderfolgenden oder durch ein paar Balken getrennten) Extremwerten desselben Niveaus der Schlüsselwert der neueste ist (der neuere rechts). Der Zig-Zag-Indikator sowie die Eigenschaft der Magnetisierung von Chart-Objekten (die offenbar auf diesem Zig-Zag basiert) sind jedoch am ersten Extremum zweier Kerzen in der Nähe eines Niveaus fixiert, obwohl ich noch keine endgültige Schlussfolgerung ziehen kann, da sich das Verhalten meiner Meinung nach von Fall zu Fall ändert. Was den Zick-Zack-Kurs betrifft, so baut dieser nur auf der allerersten Kerze auf. Ist das richtig, liebe Genossinnen und Genossen? Sollte das so sein? Oder gibt es mehrere "Standards" ohne klare Regeln, und jeder kann frei entscheiden, ob das Extremum nach der linken oder rechten Kerze beurteilt wird?
 
Es gibt Millionen von Zickzacklinien. Verwenden Sie die, die Sie für richtig halten.