Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1637

 
Nerd Trader #:
Non sapevo che ci fosse un ObjectsDeleteAll.

Lo uso ovunque

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

Lo uso ovunque

Sono abituato a dover fare tutto da solo in C, ma mql4 ha soluzioni già pronte.
 
Nerd Trader #:
Non sapevo che esistesse ObjectsDeleteAll e ora voglio andare a fondo della questione.

Forum sul trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione di algoritmi e codici

Artyom Trishkin, 2021.09.30 05:31

Potete cancellarlo. Se hai già capito il motivo, puoi capirlo meglio una volta, in modo da non provare a farlo di nuovo.

Quando si cancella un oggetto da una matrice, la posizione del prossimo viene spostata nella matrice e l'indice del ciclo ora punta a dove? Pensateci.


 
Artyom Trishkin #:

Capito, grazie.
 
Valeriy Yastremskiy #:

Stampa il numero, il biglietto e il tipo di ordine prima del secondo if e dentro il secondo if.

Capito. Provato. Sta contando, ma non è del tutto giusto. Conta gli ordini al tick. Ho bisogno del penultimo ordine in cima alla griglia. Se il prezzo scende e viene aperto un altro ordine, il penultimo ordine è quello con il massimo OrderOpenPrice.

 
ObjectsDeleteAll va bene. Ma se avete bisogno di cancellare non TUTTO, non potete farlo senza un ciclo con condizioni! Ed è qui che si trova la regola d'oro: bisogna iniziare dalla fine!
 
pribludilsa #:
Come lavorare con un file in un programma mql5 senza scrivere il file sul disco, ma lavorare solo nella RAM, per accelerare. Voglio trasferire dati da un programma mql5 a un programma sul mio computer.

Ecco qui:

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

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

Arrivati lì. Provato. Sta contando, ma non è del tutto giusto. Conta gli ordini al tick. Ho bisogno del penultimo ordine in cima alla griglia. Se il prezzo scende e viene aperto un altro ordine, il penultimo ordine è quello con il massimo 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 #:

Arrivati lì. Provato. Sta contando, ma non è del tutto giusto. Conta gli ordini al tick. Ho bisogno del penultimo ordine in cima alla griglia. Se il prezzo scende e viene aperto un altro ordine, il penultimo ordine è quello con il massimo OrderOpenPrice.

Quindi, non cercate per prezzo ma per orario di apertura.
 
MakarFX #:

Esce l'ultimo, non il penultimo(