Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 162

 
ALXIMIKS:

+ Li em algum lugar que é útil verificar também o OrderClosetime dos bilhetes abertos ao selecionar (eles têm = 0).
Isto é para seleção por bilhete. Aqui é a seleção por índice.
 

Olá!

Como de costume, não é possível descobrir como selecionar corretamente os pedidos pendentes por número mágico. Alguém pode por favor me enviar o código para ver como fazê-lo através do exemplo. Agradecemos antecipadamente).

 
zaqwsx123:

Olá!

Como sempre, preciso de ajuda, não consigo descobrir como selecionar corretamente os pedidos pendentes por número mágico. Alguém pode por favor me enviar o código para ver como fazê-lo através do exemplo. Agradecemos antecipadamente).


ALXIMIKS 11.09.2013 21:36 #

void DeletePendingOrders()
{
    int NumberOfTry,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1)
      {
         ticket = OrderTicket();
         NumberOfTry=0;

         while (NumberOfTry < 5)
         {
            while (!IsTradeAllowed()) Sleep(5000);
      
            if (OrderDelete(ticket, Red))
                breake;
            else
                err = GetLastError();
      
            if (err > 0)
            { 
              Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000);  NumberOfTry++;
            }
         }
      }
   }
}

alguém uma vez pediu ajuda com este código, é um exemplo de como remover todas as ordens pendentes

Não posso ter certeza de que será sempre adequado no testador, não vou dizer nada sobre o verdadeiro

 
ALXIMIKS:

alguém uma vez pediu ajuda com este código, aqui está um exemplo de como apagar todas as ordens pendentes

Eu não sei se o código será sempre adequado no testador.

Não entendo, se você não tem certeza sobre o código, por que mostrá-lo a um questionador? A resposta deve ser sempre correta, não "talvez funcione - cometi alguns erros lá"...
 
zaqwsx123:

Olá!

Como sempre, preciso de ajuda, não consigo descobrir como selecionar corretamente os pedidos pendentes por número mágico. Alguém pode por favor me enviar o código para ver como fazê-lo através do exemplo. Obrigado antecipadamente)

Ele seleciona qualquer ordem aberta por último e devolve seu bilhete. Se não houver tal ordem, ela retorna -1 :

//-----------------------------------------------------------------------------+
int GetTicketLastOpenOrder(string sy, int op, int mn) {
   int   i, j=-1, t=0, k=OrdersTotal()-1;
   for (i=k; i>=0; i--) {                       // цикл от конца к началу
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;// если магик не тот - переходим к следующему
         if (OrderSymbol()!=sy)        continue;// если символ не тот - переходим к следующему
         if (OrderType()!=op)          continue;// если тип не тот - переходим к следующему
         if (t<OrderOpenTime()) {   // выбран нужный, ...
            t=OrderOpenTime();      // ... ищем последний ...
            j=i;                    // ... открытый ордер
            }
         }
      else Print("FUNC GetTicketLastOpenOrder() ошибка выбора ордера "+GetLastError());
      }
   if (OrderSelect(j,SELECT_BY_POS)) return(OrderTicket()); // если найден ордер, вернём его тикет
   return(-1);                                              // иначе - возвращаем -1
}
//-----------------------------------------------------------------------------+
 
artmedia70:
Cara, eu não entendo, se você não está certo no código, por que você o mostra para a pessoa que faz a pergunta? A resposta deve ser sempre correta, não "talvez funcione - cometi alguns erros lá"...

Bem, essa é a maneira do homem se afirmar.

Ele já mostrou aqui sua arrogância.

 
PapaYozh:

Bem, essa é a maneira do homem se afirmar.

Ele já mostrou aqui sua arrogância.

Bem... algumas pessoas batem em suas esposas, algumas pessoas tagarelam em fóruns, algumas pessoas fazem revoluções... As pessoas são diferentes. A cada um o seu.
 
artmedia70:
Bem ... alguém bate na esposa, alguém tagarela em fóruns, alguém faz revoluções .... As pessoas são diferentes. A cada um o seu.

Se uma pessoa faz uma pergunta à noite, cuja resposta não é tão complicada assim, mas devido à minha inexperiência, puramente por princípio, não posso atestar a exatidão de 100% do código,

ele está melhor esperando 8 horas por uma resposta de um profissional?

Ou eles poderiam dar uma ajuda rápida para acertar meu código (se um desenvolvedor não estiver desesperado...).

Escolhi a segunda opção, e acho que é justificada, pense o que quiser e seja feliz.

 
ALXIMIKS:
artmedia70:
Bem... algumas pessoas batem em suas esposas, algumas pessoas tagarelam em fóruns, algumas pessoas fazem revoluções... As pessoas são diferentes. A cada um o seu.

Se uma pessoa faz uma pergunta à noite, cuja resposta não é tão complicada assim, mas devido à minha inexperiência, puramente por princípio, não posso atestar a exatidão de 100% do código,

ele está melhor esperando oito horas por uma resposta de um profissional?

É claro que é melhor um novato esperar pela manhã para procurar erros no código de outra pessoa do que ter um bom sono e obter uma resposta competente.

O que quero dizer é que quando você responde a um iniciante, pense no fato de que ele pode não ter muita experiência.

 

Há uma biblioteca hoz_LoggingToAnywhere@Library.mq4, que é chamada a partir do arquivo de cabeçalho hoz_Base@Include.mqh

Ao compilar a biblioteca hoz_LoggingToAnywhere@Library.mq4, eu a vejo no registro:

'StringConcatenate' - incompatible types        D:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\include\hoz_Base@Include.mqh (75, 12)

Eu vou lá... E aí eu vejo:

   //---- Контролируем возможные ошибки
   fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

Chamando esta função fPrint de outras bibliotecas, nada é culpado em lugar algum, mas do arquivo de cabeçalho... é culpado. Por que isto é assim? Já copiou personagem a personagem...