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 179

 
Izdesbyll:

Por favor, ajude!

Erro 0 e o pedido não fecha! O que está errado?

E por que você está normalizando o preço para dois? Para os dígitos é necessário. É mais fácil escrever OrderClosePrice() em vez de Bid
 

É possível que tenha fechado parte do pedido?

E se ele tentasse desta forma, o que diz?

double bylo = OrderLots();
if (OrderClose( OrderTicket(), 0.1, NormalizeDouble(Bid,2), 1 ))    Alert ("  Закрито частину лоту в розмірі 0.1 від ",bylo);
else Alert("Маємо помилку ",GetLastError());
 

artmedia70:
А почему нормализуете цену до двух? До Digits нужно. А проще писать OrderClosePrice() вместо Bid


 OrderClose( OrderTicket(), 0.1, OrderClosePrice(), 1 );  
      Alert("Маємо помилку ",GetLastError());

Agora dá erro 4051

 
ALXIMIKS:

É possível que tenha fechado parte do pedido?

E se você tentar desta forma, o que diz?



bylo = 0,1 e não fecha meu pedido.
 
Agora é tudo uma falha, eu escrevo:
 double p[100];
 p[i+1] = OrderProfit();
 if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      OrderClose( OrderTicket(), 0.1,  NormalizeDouble(Bid,Digits), 1 );  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

I+1 = 2 e em todo lugar, mas a terceira ordem começou a fechar.

 
Izdesbyll:

Por favor, ajude!

Erro 0 e o pedido não fecha! O que está errado?

Que tal tentar desta maneira?

    double ld_Price;
    if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
    else ld_Price = NormalizeDouble (Ask, Digits);
    OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);

E não se esqueça de EXCEDER a ordem relevante antes do procedimento de eliminação!!!

 
Izdesbyll:
Agora é uma falha total, estou escrevendo:

i+1 = 2 e em todo lugar, mas a terceira ordem começou a fechar.

Se você coletar bilhetes em um array, o pedido deve ser SELECIONADO pelo TICKET, e não por sua própria lista (pedido).
 
TarasBY:

Que tal tentar desta maneira?

E não se esqueça de EXCEPTO a ordem relevante antes do procedimento de exclusão!!!


if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      double ld_Price;
      if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
      else ld_Price = NormalizeDouble (Ask, Digits);
      OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

A TERCEIRA ordem fecha GetLastError = 0, i+1=2, OrderProfit() responde a nada da SEGUNDA ordem. help.... Eu escreveria (OrderTicket()-1) mas receio que não vai ajudar

 
Izdesbyll:

TERCEIRA ordem fecha GetLastError = 0, i+1=2, OrderProfit() responde a nada da SEGUNDA ordem. help.... Eu escreveria (OrderTicket()-1) mas receio que não vai ajudar

não sabem ler (a menos, é claro, que haja números de bilhetes na matriz p[])!

    OrderSelect (p[i+1], SELECT_BY_TICKET, MODE_TRADES); 

...Em geral, é muito difícil pegar a "estupidez" de um pouco de código... :)

 
Olá, alguém poderia me dizer se existe uma espécie de bloqueio para fechar todas as ordens (incluindo a limpeza de ordens pendentes) se todas com números mágicos diferentes, na faixa de 1-60. Se houver, favor afixá-lo. E se não for tão difícil com instruções onde deve ser inserido (porque é completamente verde em mql). Obrigado de antemão.

Esqueci de lhes dizer que gostaria de fechar sobre a porcentagem de lucro do depósito.
Razão: