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

 
AlexeyVik:
No se ha comprobado, pero ¿qué le impide comprobarlo usted mismo? Sólo tiene que guardar la plantilla con todos los indicadores bajo el nombre del EA y luego, cuando inicie el EA en el probador, todos los indicadores se cargarán y probablemente funcionarán correctamente. Pero es posible que tomen los valores de las pestañas "Comercio" e "Historial de la cuenta".
Lo he probado. Todavía no. Lo intentaré de nuevo.
 
kosmos0975:
Lo he probado. Todavía no puedo verlo. Lo intentaré de nuevo.
¿Es realmente necesario hacer tanto lío con los indicadores? ¿No sería más fácil poner todo en el Asesor Experto?
 
AlexeyVik:
¿Es realmente necesario hacer tal distorsión de los indicadores? ¿No sería más fácil meter todo en el Asesor Experto?

Con el tiempo, el Asesor Experto se verá sobrecargado con condiciones adicionales para su correcto funcionamiento y se volverá inflexible.

(Tal vez, es una perversión. Los rusos no buscamos caminos fáciles:)

 
¡Buenas tardes!
¿Cómo se puede definir "El mercado está cerrado" en EA?
 
abeiks:
Buenos días!
¿Cómo se puede definir "El mercado está cerrado" en Expert Advisor?

¿Por qué querrías hacer eso? Si el mercado está cerrado, no habrá ticks, y por lo tanto el Asesor Experto no funcionará.

Pero si realmente lo necesitas, prueba esto.

MarketInfo(Symbol(), MODE_TRADEALLOWED);

Si el mercado está abierto, devuelve 1. Si el mercado está cerrado, debe devolver 0).

 

El asunto es el siguiente: necesito determinar el valor mínimo y máximo del precio de las últimas 100 barras, por ejemplo, y luego fijar la subida/bajada cuando el precio baje/suba, para poder dibujar un patrón de inversión como 1 2 3. No puedo entender la diferencia entre las funciones ArrayMaximum y iHighest. Si entiendo bien, el resultado de sus cálculos será sólo el índice de la barra máxima en el intervalo especificado de la matriz? ¿Es necesario utilizar el operador for cuando se trabaja con arrays para realizar cálculos, como en el ejemplo de la pregunta 26 del libro de texto? He cambiado este código por el siguiente

//-------------------------------------------------------------------- //multiprice.mq4 // Diseñado para ser utilizado como ejemplo en el manual MQL4.//-------------------------------------------------------------------- extern int Quant_Bars=100; // Número de barras //-------------------------------------------------------------------- int start() // Función especial start { int i; // Número de barras double Minimum=Bid, // Precio mínimo Maximum=Bid; // Precio máximo for(i=0;i<=Quant_Bars-1;i++) // De cero (!) a .) if (Low[i]< Minimum) // Si < conocido Minimum=Low[i]; //entonces será Min if (High[i]> Maximum) // Si > conocido Maximum=High[i]; //entonces será Max double Level_1, // Nivel de señal 1 Level_2, // Nivel de señal 2 Price; // Precio actual Level_1=Minimum; // Establece el nivel mínimo Level_2=Maximum; // Establece el nivel máximo Price=Bid;                                  // Solicitud de precio if (Precio<Nivel_1) { // Comprobación de la condición compleja Alert("Se ha formado un patrón para la venta"); } if (Precio<Nivel_2) { // Comprobación de la condición compleja Alert("Se ha formado un patrón para la compra"); // Informe } return; } //-------------------------------------------------------------------- Pero de alguna manera produce un patrón para la compra en cada tick, mientras que debería señalar sólo cuando el mínimo o el máximo han cambiado.  



 
silachara:

¿Por qué querrías hacer eso? Si el mercado está cerrado, no habrá ticks, y por lo tanto el Asesor Experto no funcionará.

Pero si realmente lo necesitas, prueba esto.

Si el mercado está abierto, devuelve 1. Si el mercado está cerrado, debe devolver 0).

Gracias.
Para información. Necesito calcular el tiempo entre ticks.
Utilizo OnTimer().
 
Deniskaaa:

El asunto es el siguiente: necesito determinar el valor mínimo y máximo del precio de las últimas 100 barras, por ejemplo, y luego fijar la subida/bajada cuando el precio baje/suba, para poder dibujar un patrón de inversión como 1 2 3. No puedo entender la diferencia entre las funciones ArrayMaximum y iHighest. Si entiendo bien, el resultado de sus cálculos será sólo el índice de la barra máxima en el intervalo especificado de la matriz? ¿Es necesario utilizar la sentencia for cuando se trabaja con arrays, como en el problema 26 del libro de texto? He cambiado este código por el siguiente




Si quieres operar por estas señales, no deberías. Si aprendes a programar, escríbelo correctamente.

doble

   Nivel_1, // Nivel de señal 1 Nivel_2, // Nivel de señal 2 Precio; // Precio actual
en la parte superior.
for(i=0; i<=Quant_Bars-1;i++) sustituir por for(i=0;i<Quant_Bars; i++)
{
	 if (Low[i]< Minimum) // Si < conocido 	 Minimum=Low[i]; // entonces será min 	 if (High[i]> Maximum) // Si > conocido 	 Maximum=High[i]; // entonces será max
}
se han añadido llaves.
 si (Precio<Nivel_2) cambia el signo si (Precio > Nivel_2) por encima del tope
 
kosmos0975:

Si quieres operar con estas señales, no lo hagas. Si aprendes a programar, escribe correctamente.


Gracias por su respuesta.
 

Empezó a aprender a trabajar con archivos. Me encontré con el término asa. La pregunta surgió después de escribir el código:

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

Después de abrir el primer archivo news.csv, el programa establece la variable filehandle en 1. A continuación, el programa abrió el segundo archivo news150901.csv y estableció la variable filehandle en 2. Resulta que ahora el programa se queda con un valor de la manija sólo de la apertura del segundo archivo. En otras palabras, maté el valor de la manija para el primer archivo abierto. Es decir, ¿sólo puedo acceder a los datos/contenido y cerrar el segundo archivo? ¿Es un error utilizar una variable para almacenar el gestor del archivo abierto? ¿Es un error utilizar una variable para almacenar el mango del archivo abierto?