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 1050

 
rapid_minus:
Boa tarde! A pergunta que eu fiz na página 1048 é tão complicada que os profissionais não sabem a resposta? Ou é apenas ignorar (bem, algumas pessoas não gostam de mim!)?
O que é a pergunta, é a resposta. Leia a nota para a função Sleep() Esta é uma resposta à sua primeira pergunta.
 
Ekburg:

Boa tarde.

Estou trabalhando através do código de um especialista e não consigo entender uma linha:

Pelo nome da variável, entendo o que o programador queria alcançar.

Mas em meu nível de programação amadora eu não entendo nada excetoMarketInfo(Symbol(),MODE_MINLOT).

Explicar para que, onde e com que molho)

Você entende o que é logaritmo?

Embora este código não seja muito claro. Não está claro porque o logaritmo de um valor deve ser dividido por logaritmo(10) se o logaritmo(10) será sempre 1.

 
kocunyc89 código, no indicador que aparece no canto da tela
#property indicator_chart_window  //Вывод информации в окно графика
#property strict
int Число=25;

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
  // Проверка наличия метки для вывода информации
  if(ObjectFind("Итог")<0)
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);  // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10); //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);       //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);
  return(0);
}

void OnDeinit(const int reason)
{
  ObjectDelete("Итог");
}
 
AlexeyVik

log(10) será sempre 1.

Alert(log(10)); log(10)=2.302585092994046. O MathLog é um logaritmo natural, assim como o logaritmosimples .Não há registro decimal em MQL. Eu queria o logaritmo decimal e através dele o número de dígitos na parte inteira do número, a chamada ordem numérica. O logaritmo decimal LG(X) pode ser obtido através de qualquer outro logaritmo. Aqui LG(X)=Log(X)/Log(10)
 
Eu não entendo onde está a resposta. Você quer dizer isto: "A função tem uma verificação embutida do status da bandeira de parada da EA a cada 0,1 segundos"? Em caso afirmativo, como esta bandeira pode ser retirada?
 
LRA:

Desculpe, não sou muito bom em programação, você pode me ajudar a colocar tudo isso em um indicador?
#property indicator_chart_window  //Вывод информации в окно графика
#property strict
int Число=25;

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
  // Проверка наличия метки для вывода информации
  if(ObjectFind("Итог")<0)
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);  // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10); //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);       //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);
  return(0);
}

void OnDeinit(const int reason)
{
  ObjectDelete("Итог");
}
Arquivos anexados:
j_1.mq4  6 kb
 
rapid_minus:
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Uma das razões: após 10 segundos de escorregamento, Bid fica velho e haverá um erro. Verificar logs. Você pode aumentar o slip ou RefreshRates(). No testador, o glop escorrega e tudo está bem
 
kocunyc89:   pau ... no indicador

Primeiro, coloque isto no final do indicador. Quando você vê a marca na tela, descubra como colocar o que você precisa nela. Aqui você recebe conselhos, mas tem que fazê-lo você mesmo.

  int Число=25;

  if(ObjectFind("Итог")<0)        // Проверка наличия метки для вывода информации
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);       // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10);   //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);   //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);   // Вывод в метку
 
rapid_minus: A função tem uma verificação incorporada para o status da bandeira de parada da EA a cada 0,1 segundos. Como eu removo esta bandeira?
A bandeira ergue o terminal para informar o Expert Advisor que ele será silenciado em três segundos. Ao ver a bandeira, o escorregadio brilha e não impede o especialista de coletar brinquedos antes de escapar.
 
LRA:
Alert(log(10)); log(10)=2.302585092994046. O MathLog como simplesmente Log é umlogaritmo natural. Não há registro decimal em MQL. Eu queria o logaritmo decimal e através dele o número de dígitos na parte inteira do número, a chamada ordem numérica. O logaritmo decimal LG(X) pode ser obtido através de qualquer outro logaritmo. Aqui LG(X)=Log(X)/Log(10)

log(10) não é realmente 1, mas o fato de que o mql não tem logaritmo decimal me surpreendeu...

O que é então? https://docs.mql4.com/ru/math/mathlog10 embora haja um erro no texto.

A questão é resolvida de uma maneira muito mais simples.

(int)MathAbs(MathLog10(MarketInfo(_Symbol, MODE_LOTSTEP)));