Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 451

 
Añadí variables de tipo int, en las que puse explícitamente el datetime convertido, y funcionó. Pero ahora necesito que el resultado de la relación sea inferior a 1, es decir
fórmula MathMin(Tiempo1-Tiempo2,Tiempo2-Tiempo3)/MathMax(Tiempo1-Tiempo2,Tiempo2-Tiempo3)
pero empezó a dar 0 de nuevo, aunque por separado es correcto
 
Roman Sharanov:
Añadí variables de tipo int, en las que puse explícitamente el datetime convertido, y funcionó. Pero ahora necesito que el resultado de la relación sea inferior a 1, es decir
fórmula MathMin(Tiempo1-Tiempo2,Tiempo2-Tiempo3)/MathMax(Tiempo1-Tiempo2,Tiempo2-Tiempo3)
pero empezó a dar 0 de nuevo, aunque por separado es correcto
(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)
 
Roman Sharanov:

Escribí que ya lo intenté de esa manera, nada

la variable receptora también debe ser doble

 
Genial, ahora da 1 todo el tiempo
MathMin y MathMax dan el mismo valor aunque sus argumentos sean diferentes
 
Roman Sharanov:

Por favor, aconséjeme, ¿cómo encontrar la relación de 2 plazos? (necesitamos la relación de barras entre 2 períodos)
Lo escribí así pero da 0. Tiempo1>Tiempo>Tiempo3 siempre

Lo he intentado sin conversión de tipos explícita, y (doblemente) he intentado escribir

Y con un ejemplo se puede explicar lo que está en la entrada y lo que debería estar en la salida. Ya he releído varias veces todos los consejos y preguntas, pero sigo sin entender de dónde partimos y a qué debemos llegar.

Por ejemplo, este código

#define  PRINT(A) ::Print(#A + " = " + (string)(A));
/********************Script program start function*******************/
void OnStart()
{
 datetime t1 = TimeCurrent(), t2 = TimeCurrent()-PeriodSeconds(PERIOD_M1)*7, t3 = TimeCurrent()-PeriodSeconds(PERIOD_M15);
 PRINT(t1-t2);
 PRINT(t1-t3);
 PRINT(double(t1-t2)/double(t1-t3));
 PRINT((t1-t2)/double(t1-t3));
 PRINT(double(t1-t2)/(t1-t3));
}/*******************************************************************/

da este resultado

2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: (t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t3 = 900
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t2 = 420
 
Alexey Viktorov:

Y con un ejemplo, puedes explicar cuál es la entrada y cuál debe ser la salida. Ya he leído varias veces todos los consejos y preguntas, pero sigo sin entender de qué partimos y a qué debemos llegar.

Por ejemplo, este código

da este resultado

Sí, excepto que da 0 o 1, pero lo resolví con una condición if else, pero al menos funciona

 
Roman Sharanov:

Sí, salvo que da 0 o 1, pero lo he solucionado con una condición if else, pero al menos funciona

Dice que debería dar un resultado como el doble

y aquí

E incluso después de mi ejemplo.... las palabras no son suficientes.

¿Qué tiene que ver con si más? Es un operador condicional y no depende en absoluto del tipo de valores en las condiciones.

Sólo puede hacer 1 si el numerador y el denominador son iguales. Pero no puede ser NUNCA 0.

 

Buenos días a todos.

¿Puede decirme, por favor, cómo deshacerse del enorme

de metaeditores en el ordenador.

Tengo 7 terminales instalados y cada uno arrastra un meta-editor con él.

7.0 se vuelve loco cuando intentas abrir un archivo mq desde el menú contextual

Los abre en diferentes metaeditores periódicamente lo que me hace sentir muy incómodo.

¿Tal vez alguien sepa cómo resolver este problema?

Me gustaría tener sólo 1 editor meta configurado.

Gracias de antemano.

 
Northwest:

Buenos días a todos.

¿Puede decirme, por favor, cómo deshacerse del enorme

de metaeditores en el ordenador.

Tengo 7 terminales instalados y cada uno arrastra un meta-editor con él.

7.0 se vuelve loco cuando intentas abrir un archivo mq desde el menú contextual

los abre periódicamente en diferentes meta-editores, lo que hace que sea emocionalmente desagradable.

¿Puede alguien saber cómo resolver este problema?

Me gustaría tener sólo 1 editor meta configurado.

Gracias de antemano.

Este problema lo resolví con un"enlace simbólico/etiqueta" a la carpeta MQL. Por ello, saqué la carpeta principal del directorio del programa, creé un acceso directo a ella y borré estos directorios, sustituyéndolos por un acceso directo. Ahora tengo el mismo conjunto de Asesores Expertos/indicadores/scripts en cualquier terminal. Y abrir cualquier maetaditor lleva a los mismos archivos.

Por supuesto, los directorios principales son diferentes para MQL4/5.

 
Konstantin Nikitin:

He resuelto este problema con un"enlace simbólico/etiqueta" a la carpeta MQL. Por ello, saqué la carpeta principal del directorio del programa, creé un acceso directo a ella y borré los directorios, sustituyéndolos por un acceso directo. Ahora tengo el mismo conjunto de Asesores Expertos/indicadores/scripts en cualquier terminal. Y abrir cualquier maetaditor lleva a los mismos archivos.

Por supuesto, los directorios principales son diferentes para MQL4/5.

Gracias por los consejos.

Pero sería deseable para mí ver sólo "mis EAs e indicadores" en diferentes terminales.

En otras palabras, las carpetas MQL deben ser "propias".

Esto sugiere el método de fuerza bruta. Debería arrancar los archivos del meta-editor de las distribuciones instaladas.

Deja sólo uno de ellos. Y luego usar el limpiador del registro para eliminar las rutas a archivos inexistentes.

Pero no sé si funcionará o no. Me gustaría que fuera sin consecuencias.

Razón de la queja: