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 712

 
artmedia70:
A resposta deve ser dada por si só. Ordenar as posições abertas por ocasião de sua abertura. E depois fechá-las pela lista da matriz ordenada.

Complicado para mim, pensará) há um códigopara fechar as ordens na ordem em que foram abertas.

//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  for(int i=0; i<OrdersTotal(); )
  {
    if ( !OrderSelect(i, SELECT_BY_POS) )
      break;
    
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      i++;
      Sleep(500);
    }  
  }
}

// End

Aqui, pelo que entendo, a classificação é feita às custasda OrderTicket

como colocá-lo no código)

 
_new-rena:

138 - "O preço solicitado está desatualizado, ou o lance e a solicitação são misturados.

O preço aberto/fechado não pode ser recalculado, porque está lá, mas há um problema aqui(você precisa consultar o preço e dar-lhe um valor usando MarketInfo, e reatribuir esta variável a outra variável):

Obrigado pela dica) Mas acabou se revelando que meu problema está na própria EA e não nesta função.
 
Como lembrar de um certo nível. Digamos que foi o Máximo de uma vela. Mas atribuir este valor a uma variável foi através de se. e em outra situação, esta variável é zero. ou seja, preciso lembrar de algum modo de um certo preço.
 
305:
Como memorizar um certo nível. Suponha que fosse o Máximo de uma vela. Mas atribuir este valor a uma variável foi através de se. e em outra situação, esta variável é zero. ou seja, preciso lembrar de algum modo de um determinado preço.
Talvezhttps://book.mql4.com/ru/variables/arrays possa ajudar. Acho que há algo que você precisa abaixo.

Matrizes de séries cronológicas

 
Isso não funciona. Vou tentar a linha horizontal
 
305:
Isto não está funcionando. Vou tentar a linha horizontal.

kim tem muitas funções diferentes para memorizar qualquer coisa, leva cerca de 3 minutos para percorrer os nomes, talvez você possa encontrarhttps://www.mql5.com/ru/forum/131859

 
7Konstantin7:

Complicado para mim, pensará) há um códigopara fechar as ordens na ordem em que foram abertas.

Aqui, como entendi, a triagem é feita às custasda OrderTicket

Eu gostaria de colocá-lo no código)

Por favor, diga-me qual é o segredo de fechar pedidos em uma determinada ordem e não em uma fila? Como um par de segundos mudaria a vida da conta?

Obrigado.

 
Roger:

Diga-me, qual é o segredo para fechar pedidos em uma determinada ordem e não em uma fila? Como um par de segundos faria a diferença na vida de uma conta?

Obrigado.

Vamos pegar aquela rede de arrasto que eu nunca consegui reescrever a função(, que fecha as ordens na ordem em que foram abertas: embaralhar

Esta função fecha todas as ordens lucrativas primeiro, depois todas as ordens perdidas, o que resulta em um gráfico de saldo feio na pilha mais dados errados: máximo levantamento, série máxima de ordens perdidas, lucro máximo e série máxima de ordens lucrativas.

Se eu fechasse as encomendas de forma mista , então não haveria valores tão grandes.

Se você usar ordens de fechamento na ordem em que foram abertas, o gráfico de saldo se tornará mais uniforme, a informação de dados na declaração será mais adequada.

Suponha que negociamos muitos pares, se cobrirmos todos eles um por um, o preço pode desaparecer por algum par antes de chegarmos a ele,

Se cobrimos na ordem de abertura, fecharemos em um par, depois em outro e assim por diante, para que seja mais diversificado.

Eu acho que o MT4 pode enviar até 8 pedidos simultaneamente, mas não tenho certeza, neste caso podemos fechar ainda mais rápido.

 
7Konstantin7:

Vamos levar essa rede de arrasto onde eu não poderia mudar a( função para que ela feche as ordens na ordem em que foram abertas: Embaralhar

nesta função todas as ordens lucrativas e depois todas as ordens perdidas são fechadas primeiro, o que resulta em um gráfico de saldo feio na pilha mais dados errados: máximo levantamento, série máxima de ordens perdidas, lucro máximo e série máxima de ordens lucrativas.

Depois, revela-se uma estúpida montanha-russa decente, por exemplo, aumentou em 500 dólares e depois caiu em 400 dólares. Se tivéssemos que fechar os pedidos de forma mista , então valores tão grandes não existiriam.

Se usarmos ordens de fechamento na ordem em que foram abertas, o gráfico de saldo se tornará mais suave e a informação de dados na declaração será mais adequada.

Suponha que negociamos muitos pares e se fecharmos todos eles um a um, o preço pode desaparecer por algum par antes de chegarmos a ele,

Se cobrimos na ordem de abertura, fecharemos em um par, depois em outro e assim por diante, para que seja mais diversificado.

Eu acho que o MT4 pode enviar até 8 pedidos simultaneamente, mas não tenho certeza, neste caso podemos fechar ainda mais rápido.

Ciclo reverso. Procurando a primeira posição aberta, feche-a, vá para o início do ciclo. Continue até ficar sem posições para fechar.
 
artmedia70:
Ciclo reverso. Procure a posição aberta mais cedo, feche-a, vá para o início do ciclo. Continue desta forma até que você fique sem todas as posições para fechar.

Obrigado, não posso fazer isso, apenas pensei que talvez alguém pudesse rabiscar algumas linhas nessa função ou poderia deixar cair uma coruja, a versão final. Não acho que seja difícil, mas não acho que ninguém vá ajudar.

Há 4 créditos no mql5 poderiam dar) se for possível a transferência entre os membros.