Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1637

 
Nerd Trader #:
No sabía que había un ObjectsDeleteAll.

Lo uso en todas partes

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

Lo uso en todas partes

Estoy acostumbrado a tener que hacerlo todo yo en C, pero mql4 tiene soluciones ya hechas.
 
Nerd Trader #:
No sabía que existía ObjectsDeleteAll y ahora quiero llegar al fondo de la cuestión.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Cualquier pregunta de los novatos en MQL4 y MQL5, ayuda y discusión de algoritmos y códigos

Artyom Trishkin, 2021.09.30 05:31

Puedes borrarlo. Si ya has entendido el motivo, es mejor que lo entiendas una vez, para que no intentes hacerlo de nuevo.

Al borrar un objeto de un array, la posición del siguiente se desplaza en el array y el índice del bucle apunta ahora a dónde? Piensa en ello.


 
Artyom Trishkin #:

Lo tengo, gracias.
 
Valeriy Yastremskiy #:

Imprime el número, el ticket y el tipo de pedido antes del segundo si y dentro del segundo si.

Lo tengo. Lo he probado. Está contando, pero no está del todo bien. Cuenta los pedidos por tic. Necesito la penúltima orden en la parte superior de la cuadrícula. Si el precio baja y se abre otra orden, la penúltima orden es la que tiene el máximo OrderOpenPrice.

 
ObjectsDeleteAll está bien. ¡Pero si necesitas borrar no TODO, no puedes hacerlo sin un bucle con condiciones! Y ahí está la regla de oro: ¡hay que empezar por el final!
 
pribludilsa #:
Cómo trabajar con un archivo en un programa mql5 sin escribir el archivo en el disco, sino trabajar sólo en la RAM, para acelerar. Quiero transferir datos de un programa mql5 a un programa de mi ordenador.

Aquí está:

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

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

Llegó allí. Lo he probado. Está contando, pero no está del todo bien. Cuenta los pedidos por tic. Necesito la penúltima orden en la parte superior de la cuadrícula. Si el precio baja y se abre otra orden, la penúltima orden es la que tiene el máximo 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 #:

Llegó allí. Lo he probado. Está contando, pero no está del todo bien. Cuenta los pedidos por tic. Necesito la penúltima orden en la parte superior de la cuadrícula. Si el precio baja y se abre otra orden, la penúltima orden es la que tiene el máximo OrderOpenPrice.

Por lo tanto, no busque por el precio sino por la hora de apertura.
 
MakarFX #:

Sale el último, no el penúltimo(




Razón de la queja: