[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 679

 


Estimados programadores,
Por favor, responda a la siguiente pregunta:

Salidas con 8 decimales. ¿Por qué no se normaliza?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif

 
Hedin:


Estimados programadores,
por favor respondan a la siguiente pregunta:

Salidas con 8 decimales. ¿Por qué no está normalizado?

http://savepic.ru/1435355.gif


Si está escrito en la ayuda sobre la función NormalizeDouble() que redondea a una precisión especificada y devuelve el tipo double, tienes todo correcto, y si necesitas una cadena de texto con precisión especificada después de un punto decimal, entonces debes usar DoubleToStr()
 
IgorM:


Debo haber entendido mal el significado de int startH = Hour(); - dará la hora actual del servidor - hora, yo buscaría cero horas, o cualquier otra hora:


Gracias, ahora funciona.

Pero por qué no funcionó con la función Hour(), todavía no lo entiendo.

Nos dio la hora actual del tiempo del norte. Por ejemplo, que sea 5.

Por lo tanto, cuando llamamos a open[i+5], obtenemos el precio de apertura de la vela que se abrió al principio del día, es decir, a las 0:00 AM.

Por favor, explique qué es exactamente lo que no entiendo.

 
webgreck:


Gracias, ahora funciona.

Pero por qué no funcionó con la función Hour() sigo sin entenderlo.

Nos dio la hora actual del tiempo del norte. Por ejemplo, que sea 5.

Por lo tanto, cuando llamamos a open[i+5], obtenemos el precio de apertura de la vela que se abrió al principio del día, es decir, a las 0:00 AM.

Por favor, explique qué es exactamente lo que no entiendo.


La hora del servidor es la del servidor ( TimeCurrent() ), la tienes en tu PC ( TimeLocal(); ), la función Hour() :

" Devuelve la hora actual (0,1,2,...23) de la última hora conocida del servidor al inicio del programa (este valor no cambia durante la ejecución del programa ).Nota: la última hora conocida del servidor se simula durante las pruebas. "

Ni yo mismo sé qué hacer con él si no cambia, quizá sólo sea necesario para el probador.

 
webgreck:

¿Pueden decirme qué he hecho mal?

Necesito encontrar el precio de apertura de la primera vela del gráfico horario, es decir, la de las 0:00 y desde esta vela hasta la actual para encontrar el valor máximo del precio.

¿Por qué siempre obtengo el máximo de la primera vela del día actual?

Así es como lo hago yo:

Recorre Time[] y encuentra la barra deseada, luego recorre esa barra para encontrar un extremo.
 

Colegas, ¿alguien sabe cómo hacer que el probador no descuente la comisión por una operación? ¿Tal vez hay un archivo en MT4, donde se especifica el importe de la comisión de un contrato para un instrumento en particular?

Déjeme explicarle para qué lo necesito. Además de las divisas, también me interesan los futuros del Uber y del índice RTS. Quick no es adecuado para el desarrollo de robots. Por ejemplo, mi empresa de corretaje tiene una comisión para un contrato - CFD sobre los futuros sobre el índice rts (como suena, pero ...:)) - es una raqueta ... cuesta 10 papeles verdes. Por eso, incluso una operación con un beneficio de 250p da una pérdida de 1$ en el probador. Es increíble, tengo herramientas y presupuestos, pero es imposible probarlo y optimizarlo.

¡Ayuda!

 
Blaid73:

Colegas, ¿alguien sabe cómo hacer que el probador no descuente la comisión por una operación? ¿Tal vez hay un archivo en MT4, donde se especifica el importe de la comisión de un contrato para un instrumento en particular?

Déjeme explicarle para qué lo necesito. Además de las divisas, también me interesan los futuros del Uber y del índice RTS. Quick no es adecuado para el desarrollo de robots. Por ejemplo, mi empresa de corretaje tiene una comisión para un contrato - CFD sobre los futuros sobre el índice rts (como suena, pero ...:)) - es una raqueta ... cuesta 10 papeles verdes. Por eso, incluso una operación con un beneficio de 250p da una pérdida de 1$ en el probador. Es increíble, tengo herramientas y presupuestos, pero es imposible probarlo y optimizarlo.

¡Ayuda!


probablemente esto: https://www.mql5.com/ru/forum/119830

 

Por favor, aconseja cómo y qué se puede hacer para sustituir el código para hacer lo mismo pero que funcione más rápido:

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

Es un trozo de una gran función, donde hay muchas comprobaciones de este tipo y afecta mucho al rendimiento. Ya pregunté aquí sobre la optimización del código, pero no obtuve ninguna respuesta y no encontré nada en la búsqueda... ¿Es realmente un secreto que nadie conoce o está dispuesto a compartir? Al menos un enlace a un artículo... para leer en su tiempo libre... De todos modos, es imposible probarlo completamente...

 
¿Cómo puedo ponerme en contacto con ustedes? Tengo muchas preguntas y me gustaría recibir algún consejo.
 
artmedia70:

Por favor, aconseja cómo y qué se puede hacer para cambiar el código para hacer lo mismo pero que funcione más rápido: ...

Yo sustituiría el conmutador por una matriz ya preparada, ¿por qué asignar valores predefinidos cada vez?
Razón de la queja: