Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1637

 
Nerd Trader #:
Eu não sabia que havia um ObjectsDeleteAll.

Eu o uso em todos os lugares

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

Eu o uso em todos os lugares

Estou acostumado a ter que fazer tudo sozinho em C, mas o mql4 tem soluções prontas.
 
Nerd Trader #:
Eu não sabia que havia ObjetosDeleteAll e agora quero chegar ao fundo da questão.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta de novatos sobre MQL4 e MQL5, ajuda e discussão de algoritmos e códigos

Artyom Trishkin, 2021.09.30 05:31

Você pode apagá-lo. Se você já entendeu o motivo, talvez entenda melhor uma vez, para não tentar fazer isso novamente.

Ao apagar um objeto de um array, a posição do próximo é deslocada no array e o índice do loop agora aponta para onde? Pense sobre isso.


 
Artyom Trishkin #:

Entendi, obrigado.
 
Valeriy Yastremskiy #:

Imprima o número, o bilhete e o tipo de pedido antes do segundo se e dentro do segundo se.

Entendi. Experimentei-o. Está contando, mas não é bem assim. Ele conta as ordens pelo tique. Preciso do último pedido no topo da grade. Se o preço cair e outra ordem for aberta, a penúltima ordem é a que tem o preço máximo de OrdemOpenPrice.

 
ObjetosDeleteAll está bem. Mas se você não precisa apagar TUDO, você não pode fazê-lo sem um loop com condições! E é aí que está a regra de ouro - você tem que começar no final!
 
pribludilsa #:
Como trabalhar com um arquivo em um programa mql5 sem gravar o arquivo em disco, mas trabalhar somente em RAM, para acelerar. Eu quero transferir dados de um programa mql5 para um programa no meu computador.

Aqui está:

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

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

Chegamos lá. Experimentei-o. Está contando, mas não é bem assim. Ele conta as ordens pelo tique. Preciso do último pedido no topo da grade. Se o preço cair e outra ordem for aberta, a penúltima ordem é a que tem o preço máximo de OrdemOpenPrice.

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 #:

Chegamos lá. Experimentei-o. Está contando, mas não é bem assim. Ele conta as ordens pelo tique. Preciso do último pedido no topo da grade. Se o preço cair e outra ordem for aberta, a penúltima ordem é a que tem o preço máximo de OrdemOpenPrice.

Portanto, não procure pelo preço, mas pelo tempo de abertura.
 
MakarFX #:

O último sai, não o penúltimo (




Razão: