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

 
evillive:
Prueba con
Gracias.
 
evillive:
No, luego lo pensó y decidió que 140,15 o 140,35 también es un precio elevado y puede ser necesario. El cliente aún no ha decidido lo que necesita simplemente ))))

artmedia70:
Bueno... Cuando finalmente decida lo que quiere, que empiece a pensar...


¡Buenos días!

Señores, son ustedes muy educados, dado el título de este hilo.

Empecé a pensar. Y me he dado cuenta de que lo que me has aconsejado no resuelve el problema.

No hay ningún cliente))), estoy escribiendo para mí mismo. La tarea consistía fundamentalmente en explicar el precio del asesor después del punto decimal, en el que se realiza la acción.

El precio puede ser XXX.01 o XXX.34 - no importa. XXX.00 que señalé como ejemplo.

Resultó ser sencillo.

int start()                                   // Спец. функция start
  {
//----
   double Price, Level, Level_2;                 // Текущая цена и уровень для расчета
   Price=Bid;                                    // Запрашиваем цену
   Level=MathFloor(Bid);                         // Задаем уровень XXX.00
   Level_2 = MathFloor(Bid)+50*Point;            // Задаем уровень ХХХ.50
                              
//----
   if (Price==Level)                                      // Если цена на уровне ХХХ.00
     {
      Comment("Курс был равен  заданному уровню ", Level);    // Сообщение трейдеру
     }
     
   if (Price==Level_2)                                    // Если цена на уровне ХХХ.50
     {
      Comment("Курс был равен  заданному уровню ", Level_2);   // Сообщение трейдеру
     }
   
   return;// Выход из start()

"Nivel2" = 50 puede ser llevado a variables externas y establecer cualquier nivel que sea de interés en el momento.

La pregunta está eliminada.

P.D. El ejemplo es para pares de yenes (dos decimales). Para 4 dígitos debe escribirse de manera un poco diferente (!Principiantes, si están interesados, pregunten a un profesional cómo)) ).

Escribo en foros muy pocas veces. El deseo de cambiar de hábitos no ha aparecido.


Buenos días a todos y buena suerte.

 
¿Afectan las alertas e impresiones en el código al tiempo de optimización?
Es decir, ¿la optimización sabe cómo sortearlos o hay que hacerlo a nivel de usuario?
 
chief2000:
¿Afectan las alertas y las impresiones en el código al tiempo de optimización?
Es decir, ¿la optimización sabe cómo sortearlos o hay que hacerlo a nivel de usuario?


Afecta, sobre todo si se emite el resultado de un cálculo que requiere mucho tiempo. Mejor insertar la comprobación IsOptimization() antes de las alertas.
 
evillive:

Lo hacen, especialmente si se emite el resultado de un cálculo que requiere mucho tiempo. Es mejor insertar la comprobación IsOptimization() antes de las alertas.

Me refería a los comandos de Alerta e Impresión en sí mismos y no a los cálculos para la salida. No sirven de nada durante la optimización, pero ¿pueden ser desactivados automáticamente por el optimizador o no? (Cada comprobación adicional también afecta a la velocidad de optimización).
 
chief2000:

No me refería a los cálculos de salida, sino a los propios comandos de Alerta e Impresión. No sirven de nada durante la optimización, pero ¿los desactiva automáticamente el optimizador o no? (cada comprobación adicional también afecta a la velocidad de optimización)


Tanto la Alerta, como la Impresión y la Comprobación tienen un efecto. Pero la comprobación requiere menos tiempo.
 
evillive:

Tanto la alerta como la impresión y el control se ven afectados. Pero comprobarlo requiere menos tiempo.

Por lo que sé, la Alerta y la Impresión en el modo de optimización (no de prueba) son simplemente omitidas por el probador, por lo que no afectan a nada... MarketInfo tiene un impacto mucho mayor en la velocidad, puede realmente ralentizar el proceso. Realmente ayuda if(IsTesting()) y if(IsOptimization()); por ejemplo, si el programa monitorea constantemente la extensión actual, no es necesario en el probador.

 
alsu:

Por lo que sé, la Alerta y la Impresión en el modo de optimización (no de prueba) son simplemente omitidas por el probador, por lo que no afectan a nada... MarketInfo tiene un impacto mucho mayor en la velocidad, puede ralentizar mucho el proceso. Realmente ayuda aquí if(IsTesting()) y if(IsOptimization()); por ejemplo, si el programa controla constantemente la extensión actual, no hay necesidad en el probador.


Si esto no se arregla, los comentarios pueden ralentizar mucho la MT.
En cuanto a MarketInfo, ¿se refiere al propio comando? ¿Y por ejemplo el uso de Bid/Ask (en su forma pura, para el símbolo actual)?
 
chief2000:

Si esto no se arregla, los comentarios pueden ralentizar mucho a MT.
En cuanto a MarketInfo, ¿se refiere directamente al propio comando? ¿Y, por ejemplo, utilizando Bid/Ask (en su forma pura, para el símbolo actual)?

En el probador MarketInfo() no funciona, y Bid y Ask son lentos y distorsionados. Así que siguiendo el consejo de Xrust los saco de iClose(NULL,0,0):

  if(IsOptimization() || IsTesting() || IsVisualMode())
  {
    Spread = 21; 
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = NormalizeDouble(iClose(Symbol(),0,0),Digits);
    ask = NormalizeDouble(iClose(Symbol(),0,0)+spr,Digits);
  }
  else
  {
    Spread = MarketInfo(Symbol(),MODE_SPREAD);
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = MarketInfo(Symbol(),MODE_BID);
    ask = MarketInfo(Symbol(),MODE_ASK);
  }
 
borilunad:

En el probador MarketInfo() no funciona, y Bid y Ask son lentos y distorsionados. Por lo tanto, siguiendo el consejo de Xrust, los obtengo de iClose(NULL,0,0):


Muletas, imho.