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 93

 
ivann85:

programmaticamente ))))
O que exatamente você precisa encontrar? O número na lista? Um bilhete? E se houver mais de um na UE, este pêndulo?
Se houver dois ou três cinco milhões deles e todos tiverem o mesmo tipo e se pendurarem no mesmo par, qual deles é necessário?
 
alexey1979621:

paladino80


artmedia70



Então me ajude com o Expert Advisor- eu o testarei a partir de sua programação (como o tema do trabalho), caso contrário eu me enforco ou em dois meses, quando todos os fóruns vão violar algo vai funcionar.








Oh... E o número em seu apelido não é, por acaso, o número planejado de fóruns violados?

Escrever para você é de um centavo. Cinqüenta dólares e é seu. Nota - um preço muito democrático, quase para nada :))

 
alexey1979621:

paladino80


artmedia70



Então me ajude com o Expert Advisor- eu o testarei a partir de sua programação (como o tema do trabalho), caso contrário eu me enforco ou em dois meses, quando todos os fóruns vão violar algo vai funcionar.








Digerimos um pouco seu assessor, dissemos-lhe os pontos fracos, o que fazer e como fazer, mas não vou poder fazer as correções. Há muito código meu próprio para fazer.

... calmamente para a nuvem para otimizar...

 
ivann85:

programmaticamente ))))

Como não há resposta à pergunta, aqui está uma função que devolverá o bilhete do último conjunto de pedidos:

// Возвращает тикет последнего установленного/открытого ордера
int TicketLastOrder(string sy, int op, int mn) {
   datetime t;
   int      i, j=-1, tic=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;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS)) tic=OrderTicket();
   return(tic);
}
// -------------------------------------------------------------
/*
Ордера фильтруются по символу (sy), типу (op) и магику (mn)
Чтобы найти тикет последнего установленного ордера BuyLimit 
с магиком Magic на текущем графике,
нужно вызвать функцию с такими параметрами:
int Ticket=TicketLastOrder(Symbol(), OP_BUYLIMIT, Magic);
Если есть такой ордер, функция вернёт номер его тикета.
В противном случае, ф-ция вернёт ноль
*/
 

Ocasionalmente, mas não constantemente, recebo um erro de 4200 quando estabeleço uma ordem pendente. De acordo com a documentação, este erro significa que o objeto já existe:

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


Acontece que uma ordem deste tipo já está no mercado quando a ordem pendente é enviada?

 
hoz:

Ocasionalmente, mas não constantemente, recebo o erro 4200 quando coloco um pedido pendente. De acordo com a documentação, este erro significa que o objeto já existe:

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


Acontece que a ordem deste tipo já está no mercado quando a ordem pendente é enviada?

Este erro se aplica a objetos gráficos, não a pedidos.
 
Boa noite, Victor! Estranho, a ordem pendente não é um objeto! Talvez você tenha algum objeto que já deveria ter sido apagado, mas não foi!
 

Vocês podem me aconselhar, amigos? Esta é a primeira vez que escrevo uma EA trabalhando com várias ordens pendentes ao mesmo tempo, e tenho me perguntado... que erros podem haver ao abrir ordens pendentes? Em que devemos nos concentrar na função de tratamento de erros? Poderia haver erros como 4(servidor comercial está ocupado) ou 146(subsistema comercial está ocupado)? Compartilhe se você souber.

 
Dozol:

Vocês podem me aconselhar, amigos? Esta é a primeira vez que escrevo uma EA trabalhando com várias ordens pendentes ao mesmo tempo, e tenho me perguntado... que erros podem haver ao abrir ordens pendentes? Em que devemos nos concentrar na função de tratamento de erros? Poderia haver erros como 4(servidor comercial está ocupado) ou 146(subsistema comercial está ocupado)? Compartilhe se você souber.

Qualquer coisa pode acontecer no mundo real. Tratar, se possível, de quaisquer erros comerciais que possam ocorrer.
 

Por favor, avise!!!

Estou escrevendo ordens pendentes em um determinado momento

{

Definir tempo aberto

}

se ((condição)==verdadeiro)//
{
OrderSend ( OP_BUYSTOPP, parâmetros);// abrir um pedido BuyStop pendente
OrderSend ( OP_SELLSTOP, parâmetros);// abrir um pedido SellStop pendente
}

Acho que escrevi o tempo corretamente; ele o detecta mas, por alguma razão, abre ou Sell Stop ou Buy Stop e não abre duas ordens ao mesmo tempo. Tento abrir duas ordens pendentes de tipos diferentes (Bistop e Sellstop) ao mesmo tempo e uma a uma. A pergunta parece ser primitiva, por favor ajude os bonecos) Obrigado!)

Razão: