nidves en primer lugar, hacer un mensaje correcto con el código, es muy difícil de entender, y en segundo lugar, me gustaría ver la estructura del archivo de noticias, de lo contrario no está claro qué datos se utiliza donde.
Lo primero que llama la atención es que está utilizando el EA como un script ordinario. Lee el manual para ver en qué se diferencian. ¡Es el script, no el Asesor Experto, el que es adecuado para su tarea!
En segundo lugar,¿por qué utiliza este diseño?
for (count=1; count<=countstr; count++)
{
//----//---- if (count>=countstr) break;
}
Y la raíz de su problema.
void CreatFile()
{
string Filepatch="Analyse news\\"+"Symbol"+"_"+IntegerToString(periodMT)+".csv";
Comment("Creat a new file");
int file=FileOpen(Filepatch, FILE_WRITE|FILE_CSV);
FileWrite(file, "Symbol","Period","News","Data Time","Open","High","Low","Close");
int bar_index=iBarShift(symbolMT,periodMT,DateNews[count-1]);
//Чему равен в этот момент count?
//Для чего нужен был массив событий если в обработку попадает только одно событие?
//Функция iBarShift (так как вы используете) возвращает либо номер бара по времени либо ближайший номер бара если в истории есть пропуски
//Внимательно почитайте описание
int countBar=bar_index;
for(count=1; count<=countstr; count++)
{
countBar--;
FileWrite(file,symbolMT,periodMT,NameNews[count-1],DateNews[count-1],
DoubleToStr(iOpen(symbolMT,periodMT,countBar))
);
}
FileClose(file);
ExpertRemove();
}
¡Bueno, lo último que has metido en un simple programa describe lo que quieres de este programa y vamos a tratar de escribir el script paso a paso muy bien!
Lo primero que llama la atención es que está utilizando el EA como un script ordinario. Lee el manual para ver en qué se diferencian. ¡Es el script, no el Asesor Experto, el que es adecuado para su tarea!
En segundo lugar,¿por qué utiliza este diseño?
Y la raíz de su problema.
¡Y por último, estás haciendo demasiado ruido en un programa sencillo, describe lo que quieres de este programa e intentemos escribir el script paso a paso!
Vitaly, ¡gracias por tu respuesta!
1)Sobre el guión, te entiendo, lo intentaré.
2)Bueno, todo es sencillo, interrumpo el bucle for.
3) Quiero crear un Asesor Experto o un script que descargue las cotizaciones de ciertos instrumentos + plazos, noticias específicas por fecha y hora específicas.
El resultado final de la escritura en el archivo debería ser el siguiente
Índice de precios al consumo (IPC) de referencia de Canadá (m/m)
21.12.2017 15:30:00
0.00000000
0.00000000
0.00000000
0.00000000
GBPUSD
5
Índice de precios al consumo (IPC) de referencia de Canadá (m/m)
17.11.2017 15:30:00
0.00000000
0.00000000
0.00000000
0.00000000
GBPUSD
5
Índice de precios al consumo (IPC) de referencia de Canadá (m/m)
20.10.2017 15:30:00
0.00000000
0.00000000
0.00000000
0.00000000
Y así en diferentes instrumentos+plazos+noticiasy fechas.
Hay un matiz más. Si los datos se descargan en el marco temporal de 60 minutos, las cotizaciones deberían corresponder a los marcos temporales de las 16:00 y las 15:00.
Si el horario de las noticias es 14:45, las cotizaciones deberían corresponder a la hora:
¡Mira este bucle de nuevo! El recuento de la variable sólo se modifica por la propia sentencia for, por lo que el if es superfluo en este bucle.
Definamos ahora cómo vamos a procesar los datos. Me parece que sería más lógico leer del archivo de noticias los parámetros de las mismas, procesar los datos y escribirlos en el archivo de cotizaciones. Recoger un array de noticias que luego hay que volver a recorrer un array para un registro no parece racional, además, muy a menudo en el procesamiento de arrays se pueden cometer muchos errores asociados a los índices.
¡Mira este bucle de nuevo! El recuento de la variable sólo se modifica por la propia sentencia for, por lo que el if es superfluo en este bucle.
Definamos ahora cómo vamos a procesar los datos. Me parece que sería más lógico leer del archivo de noticias los parámetros de las mismas, procesar los datos y escribirlos en el archivo de cotizaciones. Recoger una matriz de noticias, que luego de nuevo para ejecutar a través de una matriz para un registro no parece racional, además, muy a menudo en el procesamiento de matrices puede hacer un montón de errores asociados con los índices.
Es decir, ¿crear archivos con comillas de antemano y añadir parámetros de noticias al archivo?
¿Se refiere a crear los archivos de cotización por adelantado y añadir los parámetros de las noticias al archivo?
No me entiendes, ¡leemos del archivo de noticias, lo procesamos e inmediatamente lo escribimos en el archivo de citas y así sucesivamente hasta procesar todo el archivo de noticias!
Vitaly Gorbunov: No me entiendes, ¡leemos del archivo de noticias, lo procesamos e inmediatamente lo escribimos en el archivo de citas y así sucesivamente hasta procesar todo el archivo de noticias!
Eso es lo que intento hacer, sólo que a través de arrays. ¿Cómo escribirías este código?
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Lo primero que llama la atención es que está utilizando el EA como un script ordinario. Lee el manual para ver en qué se diferencian. ¡Es el script, no el Asesor Experto, el que es adecuado para su tarea!
En segundo lugar,¿por qué utiliza este diseño?
Y la raíz de su problema.
¡Bueno, lo último que has metido en un simple programa describe lo que quieres de este programa y vamos a tratar de escribir el script paso a paso muy bien!
Lo primero que llama la atención es que está utilizando el EA como un script ordinario. Lee el manual para ver en qué se diferencian. ¡Es el script, no el Asesor Experto, el que es adecuado para su tarea!
En segundo lugar,¿por qué utiliza este diseño?
Y la raíz de su problema.
¡Y por último, estás haciendo demasiado ruido en un programa sencillo, describe lo que quieres de este programa e intentemos escribir el script paso a paso!
Vitaly, ¡gracias por tu respuesta!
1)Sobre el guión, te entiendo, lo intentaré.
2)Bueno, todo es sencillo, interrumpo el bucle for.
3) Quiero crear un Asesor Experto o un script que descargue las cotizaciones de ciertos instrumentos + plazos, noticias específicas por fecha y hora específicas.
El resultado final de la escritura en el archivo debería ser el siguiente
Y así en diferentes instrumentos+plazos+noticiasy fechas.
Hay un matiz más. Si los datos se descargan en el marco temporal de 60 minutos, las cotizaciones deberían corresponder a los marcos temporales de las 16:00 y las 15:00.
Si el horario de las noticias es 14:45, las cotizaciones deberían corresponder a la hora:
1 minuto - 14:45
5 minutos - 14:45
15 minutos - 14:45
30 minutos - 14:30
60 minutos - 14:00
Espero haber sido claro. Gracias
¡Mira este bucle de nuevo! El recuento de la variable sólo se modifica por la propia sentencia for, por lo que el if es superfluo en este bucle.
Definamos ahora cómo vamos a procesar los datos. Me parece que sería más lógico leer del archivo de noticias los parámetros de las mismas, procesar los datos y escribirlos en el archivo de cotizaciones. Recoger un array de noticias que luego hay que volver a recorrer un array para un registro no parece racional, además, muy a menudo en el procesamiento de arrays se pueden cometer muchos errores asociados a los índices.
¡Mira este bucle de nuevo! El recuento de la variable sólo se modifica por la propia sentencia for, por lo que el if es superfluo en este bucle.
Definamos ahora cómo vamos a procesar los datos. Me parece que sería más lógico leer del archivo de noticias los parámetros de las mismas, procesar los datos y escribirlos en el archivo de cotizaciones. Recoger una matriz de noticias, que luego de nuevo para ejecutar a través de una matriz para un registro no parece racional, además, muy a menudo en el procesamiento de matrices puede hacer un montón de errores asociados con los índices.
Es decir, ¿crear archivos con comillas de antemano y añadir parámetros de noticias al archivo?
¿Se refiere a crear los archivos de cotización por adelantado y añadir los parámetros de las noticias al archivo?
No me entiendes, ¡leemos del archivo de noticias, lo procesamos e inmediatamente lo escribimos en el archivo de citas y así sucesivamente hasta procesar todo el archivo de noticias!
Eso es lo que intento hacer, sólo que a través de arrays. ¿Cómo escribirías ese código?
¿Por qué debo utilizar la matriz donde no es necesaria? Cuanto más sencillo sea el código, menos errores podrá cometer.
Estoy aprendiendo a trabajar con arrays a través de este código. Después de todo, la tarea no es complicada en principio.
Las comillas "abiertas" ya están almacenadas en el array anterior. Por lo tanto, sólo necesito sacar la cita de la fecha que necesito del array.
Estoy aprendiendo a trabajar con arrays a través de este código. Después de todo, la tarea no es complicada en principio.
Las comillas "abiertas" ya están almacenadas en el array anterior. Por lo tanto, sólo tengo que sacar la cita de la fecha que necesito de este array.