Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1050

 
rapid_minus:
Buenas tardes! ¿La pregunta que hice en la página 1048 es tan complicada que los profesionales no saben la respuesta? ¿O es simplemente ignorar (bueno, a algunos no les gusto)?
Lo que es la pregunta, es la respuesta. Lea la nota de la función Sleep( ) Esta es una respuesta a su primera pregunta.
 
Ekburg:

Buenas tardes.

Estoy trabajando con el código de un experto y no puedo entender ni una línea:

Por el nombre de la variable entiendo lo que el programador quería conseguir.

Pero en mi nivel de programación amateur no entiendo nada más queMarketInfo(Symbol(),MODE_MINLOT).

Explica para qué, dónde y con qué salsa)

¿Entiendes lo que es un logaritmo?

Aunque este código no es muy claro. No está claro por qué el logaritmo de un valor debe dividirse por logaritmo(10) si log(10) siempre será 1.

 
kocunyc89 código, en el indicador que aparece en la esquina de la pantalla
#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) siempre será 1.

Alert(log(10)); log(10)=2.302585092994046. MathLog es un logaritmo natural, igual que el Logsimple .No hay registro decimal en MQL. Quería el logaritmo decimal y a través de él el número de dígitos en la parte entera del número, el llamado orden numérico. El logaritmo decimal LG(X) se puede obtener a través de cualquier otro logaritmo. Aquí LG(X)=Log(X)/Log(10)
 
No entiendo dónde está la respuesta. Te refieres a esto: "La función tiene incorporada una comprobación del estado de la bandera de parada del EA cada 0,1 segundos"? Si es así, ¿cómo se puede eliminar esta bandera?
 
LRA:

Lo siento, no soy muy bueno programando, ¿me puedes ayudar a ponerlo todo en un 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("Итог");
}
Archivos adjuntos:
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);
Una de las razones: después de 10 segundos de deslizamiento, Bid se hace viejo y habrá un error. Comprueba los registros. Puede aumentar el deslizamiento o RefreshRates(). En el probador se desliza el guante y todo está bien
 
kocunyc89:   palo ... en el indicador

Primero, pon esto al final del indicador. Aquí te aconsejan, pero tienes que hacerlo tú mismo.

  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: La función tiene incorporada una comprobación del estado de la bandera de parada del EA cada 0,1 segundos.
La bandera levanta el terminal para informar al Asesor Experto que se silenciará en tres segundos. Al ver la bandera, el resbalón se desploma y no impide que el experto recoja los juguetes antes de escapar.
 
LRA:
Alert(log(10)); log(10)=2.302585092994046. MathLog como simplemente Log es unlogaritmo natural. No hay registro decimal en MQL. Quería el logaritmo decimal y a través de él el número de dígitos en la parte entera del número, el llamado orden numérico. El logaritmo decimal LG(X) se puede obtener a través de cualquier otro logaritmo. Aquí LG(X)=Log(X)/Log(10)

log(10) no es realmente 1, pero el hecho de que mql no tenga logaritmo decimal me sorprendió...

¿Qué es entonces? https://docs.mql4.com/ru/math/mathlog10 aunque hay un error en el texto.

La cuestión se resuelve de forma mucho más sencilla.

(int)MathAbs(MathLog10(MarketInfo(_Symbol, MODE_LOTSTEP)));
Razón de la queja: