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

 
Nikolay Gaylis:
Olá, você poderia me dizer como mostrar/remover um certo símbolo programmaticamente na janela "visão geral do mercado"?

Veja a função SymbolSelect.

 

Boa tarde, você poderia me dizer onde pode haver um erro neste trecho de código?

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

Olá a todos, eu estou enfrentando o seguinte problema:

Abro um comércio sem stoploss e takeprofit:

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Quero fechar este pedido

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Eu recebo este erro: OrderClose error 131

Se ao invés deOrderOpenPrice() I point 0.1 ou OrderLots() houver um erro: OrderClose error 138

Qual é o problema?

 
labvic:

Olá a todos, eu estou enfrentando o seguinte problema:

Abro um comércio sem stoploss e takeprofit:

Quero fechar este pedido

Eu recebo este erro: OrderClose error 131

Se ao invés deOrderOpenPrice() I point 0.1 ou OrderLots() houver um erro: OrderClose error 138

Qual é o problema?

Você fecha pelo preço errado
 
Artyom Trishkin:
Você está fechando pelo preço errado

Você pode ser mais específico sobre o que deveria ser? Obrigado

 
labvic:

Você pode ser mais específico sobre o que deveria ser? Obrigado

Este é o básico.
A compra abre no Ask e fecha no Bid.
A venda abre na Bid, fecha na Ask
 

Boa tarde!

Li cuidadosamente o tutorial sobre incluir arquivos, e em nenhum lugar ele diz que um arquivo de inclusão não pode ser "incluído" duas vezes no EA.

Eu tenho o primeiro "acionado", o segundo (com o mesmo nome) é pulado/assinado.

O que eu faço - faço uma cópia do arquivo incluído, adiciono uma letra/dígito ao nome do arquivo e na linha EA, e tudo funciona.

Pergunta: é a língua mql4 ou eu?

Obrigado de antemão!!!

 
Roni Iron:

Boa tarde!

Li cuidadosamente o tutorial sobre incluir arquivos, e em nenhum lugar ele diz que um arquivo de inclusão não pode ser "incluído" duas vezes no EA.

Eu tenho o primeiro "acionado", o segundo (com o mesmo nome) é pulado/assinado.

O que eu faço - faço uma cópia do arquivo incluído, adiciono uma letra/dígito ao nome do arquivo e na linha EA, e tudo funciona.

Pergunta: é a língua mql4 ou eu?

Obrigado de antemão!!!

Por que você incluiria a mesma coisa duas vezes na listagem?

Se o arquivo include tem a função f(), então ao incluí-lo duas vezes em seu código, você receberá um erro de compilação sobre a função já declarada f()

 
Artyom Trishkin:

Por que você incluiria a mesma coisa duas vezes em sua listagem?

Se houver uma função f() no arquivo include, então incluí-la duas vezes em seu código resultará em um erro de compilação sobre uma função f() já declarada

Se eu utilizar o arquivo include não como uma função definida pelo usuário, mas como uma "substituição"/inserção de um simples fragmento de código, por exemplo, para procurar a última ordem por seu símbolo (ou presença de uma ordem). E esta busca pode ser usada em um programa várias vezes. E pode haver muitas dessas "operações clássicas".
 
Roni Iron:
Se eu usar o arquivo include não como uma função personalizada, mas como uma "substituição"/inserção de um simples fragmento de código, como a busca da última ordem pelo meu símbolo (ou presença de uma ordem em qualquer lugar). E esta busca pode ser usada em um programa várias vezes. E pode haver muitas dessas "operações clássicas".

É aqui que você fica confuso. Pode haver muitas dessas funções úteis em um arquivo de inclusão. Inclua o arquivo uma vez e utilize as funções disponíveis do arquivo.

Razão: