Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1637

 
Nerd Trader #:
Ich wusste nicht, dass es ein ObjectsDeleteAll gibt.

Ich benutze es überall

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

Ich benutze es überall

Ich bin es gewohnt, alles selbst in C zu machen, aber mql4 hat fertige Lösungen.
 
Nerd Trader #:
Ich wusste nicht, dass es ObjectsDeleteAll gibt, und jetzt möchte ich der Sache auf den Grund gehen.

Forum für Handel, automatisierte Handelssysteme und Strategietests

Alle Fragen von Neulingen zu MQL4 und MQL5, Tipps und Diskussionen zu Algorithmen und Codes

Artyom Trishkin, 2021.09.30 05:31

Sie können ihn löschen. Wenn Sie den Grund schon einmal verstanden haben, können Sie ihn besser verstehen, so dass Sie es nicht noch einmal versuchen.

Wenn ein Objekt aus einem Array gelöscht wird, wird die Position des nächsten Objekts im Array verschoben, und der Schleifenindex zeigt nun auf wo? Überlegen Sie es sich.


 
Artyom Trishkin #:

Verstanden, danke.
 
Valeriy Yastremskiy #:

Drucken Sie die Nummer, das Ticket und die Bestellart vor dem zweiten if und innerhalb des zweiten if.

Ich hab's. Ich habe es ausprobiert. Es wird gezählt, aber es ist nicht ganz richtig. Es zählt die Aufträge pro Tick. Ich brauche den vorletzten Auftrag am oberen Rand des Rasters. Wenn der Preis sinkt und ein weiterer Auftrag eröffnet wird, ist der vorletzte Auftrag derjenige mit dem maximalen OrderOpenPrice.

 
ObjectsDeleteAll ist in Ordnung. Aber wenn Sie nicht ALLES löschen wollen, geht es nicht ohne eine Schleife mit Bedingungen! Und da gilt die goldene Regel: Man muss am Ende anfangen!
 
pribludilsa #:
Wie kann man mit einer Datei in einem mql5-Programm arbeiten, ohne die Datei auf die Festplatte zu schreiben, sondern nur im RAM zu arbeiten, um die Geschwindigkeit zu erhöhen. Ich möchte Daten aus einem mql5-Programm in ein Programm auf meinem Computer übertragen.

Hier ist sie:

https://www.mql5.com/ru/articles/503

Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
 
makssub #:

Ich bin angekommen. Ich habe es ausprobiert. Es wird gezählt, aber es ist nicht ganz richtig. Es zählt die Aufträge pro Tick. Ich brauche den vorletzten Auftrag am oberen Rand des Rasters. Wenn der Preis sinkt und ein weiterer Auftrag eröffnet wird, ist der vorletzte Auftrag derjenige mit dem maximalen OrderOpenPrice.

double FindOpenPrice(int a=-1)// 0 - макс, 1 - мин
{
   double maxopenprice=0;
   double minopenprice=DBL_MAX;
   double openprice=0;
   
   for(int cnt=OrdersTotal()- 1 ; cnt>=0; cnt--)
   {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            if (OrderType() == OP_SELL || OrderType() == OP_BUY)
            {
               if (a==0 && maxopenprice<OrderOpenPrice())
               {
               maxopenprice = OrderOpenPrice(); openprice=maxopenprice ;
               }
               if (a==1 && minopenprice>OrderOpenPrice())
               {
               minopenprice= OrderOpenPrice(); openprice=minopenprice;
               }
            }
         }
      }
   }
   return(openprice);
}
 
makssub #:

Ich bin angekommen. Ich habe es ausprobiert. Es wird gezählt, aber es ist nicht ganz richtig. Es zählt die Aufträge pro Tick. Ich brauche den vorletzten Auftrag am oberen Rand des Rasters. Wenn der Preis sinkt und ein weiterer Auftrag eröffnet wird, ist der vorletzte Auftrag derjenige mit dem maximalen OrderOpenPrice.

Suchen Sie also nicht nach dem Preis, sondern nach der Öffnungszeit.
 
MakarFX #:

Der letzte kommt heraus, nicht der vorletzte(




Grund der Beschwerde: