Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 240
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
1) - Esta parte abre el archivo 11112222.txt para leer los datos del mismo:
//=================================BUY=========================================
int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения
2) - A continuación viene la condición si handle2>0
if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
{
3) - Esta es la parte que no entiendo:
Print(FileReadString(handle2));
4) - Esta parte cierra el archivo:
FileClose(handle2); // закрытие текстового файла
5) - Dado que se cumple la condición handle2>0, es decir, el archivo 11112222.txt contiene 1, se abre una orden de compra:
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
{
OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
FileClose(handle2); // закрытие текстового файла
}
else
Print("NE USPESHNO!!!");
FileClose(handle2); // закрытие текстового файла
}
//=================================конец кода BUY=========================================
1) Abre el archivo, pero no lee su contenido.
2) El handle del fichero es SIEMPRE mayor que cero. En consecuencia, la condición siempre se mantendrá si el archivo existe, independientemente de su contenido.
3) Esto es exactamente leer el contenido del archivo. Aunque no entiendo por qué se hace la lectura de una cadena, si necesitamos leer un número... Pero aún así puede ser otro problema. Ahora lo principal es describir la secuencia de acciones.
4) Por supuesto, hay que cerrar el archivo y se cierra.
Y sólo hay que condicionar la siguiente cláusula en función de lo que se lea en la cláusula 3, pero no la segunda.
1) abre un archivo, pero no lee su contenido.
2) Un gestor de archivos es SIEMPRE mayor que cero. En consecuencia, la condición siempre se mantendrá si el archivo existe, independientemente de su contenido.
3) Esto es exactamente leer el contenido del archivo. Pero no entiendo por qué se lee una cadena, si se va a leer un número... Pero aún así puede referirse a otro problema. Ahora lo principal es describir la secuencia de acciones.
4) Hay que cerrar el archivo, por supuesto, y se cierra.
Y sólo la siguiente cláusula debe ser condicionada dependiendo de lo que se lea en la cláusula 3, pero no la segunda cláusula.
No... INVALID_HANDLE tiene el valor -1.
Es entonces cuando obtiene un error de apertura de archivo, entonces obtendrá una señal de venta...
Otras constantes
Constantes especiales utilizadas para indicar el estado de los parámetros y las variables. Pueden ser los siguientes valores:
Constante
Descripción
Valor
NULL
Nulo de cualquier tipo. También indica el estado de cadena vacía
0
VACÍO
Indica el estado vacío del parámetro
-1
VALOR_VACÍO
Valor vacío en la memoria intermedia del indicador
2147483647 (0x7FFFFFFFF)
CLR_NONE, clrNONE
No hay color. Valor por defecto, puntero al valor vacío. Se utiliza en los indicadores personalizados
-1
CARTAS_MAX
Número máximo posible de gráficos abiertos simultáneamente en el terminal
100
INVALID_HANDLE
Mango incorrecto
-1
IS_DEBUG_MODE
Señal de un programa mq5 en modo de depuración
en modo de depuración no es igual a cero, en caso contrario 0
IS_PROFILE_MODE
Señal de un programa mq5 en el modo de perfilado
en el modo de perfilado no es igual a cero, de lo contrario es 0
ARREGLO_COMPLETO
Indica el número de elementos que quedan hasta el final del array, es decir, se procesará todo el array
0
VALOR_ERROR
Una constante puede ser implícitamente lanzada a cualquier tipo de enum
-1
No he visto este hilo, así que he creado uno nuevo. por favor,mira https://www.mql5.com/ru/forum/206126
1) abre un archivo, pero no lee su contenido.
2) Un gestor de archivos es SIEMPRE mayor que cero. En consecuencia, la condición siempre se mantendrá si el archivo existe, independientemente de su contenido.
3) Esto es exactamente leer el contenido del archivo. Pero no entiendo por qué se lee una cadena, si se va a leer un número... Pero aún así puede referirse a otro problema. Ahora lo principal es describir la secuencia de acciones.
4) El expediente debe estar cerrado, por supuesto, y se está cerrando.
Y sólo se debe condicionar el siguiente punto en función de lo que se lea en el punto 3, pero no el segundo punto.
Estimados gurús de MQL - si no es un problema, por favor ayúdenme con este código, he pasado medio día en los motores de búsqueda, pero no he encontrado nada similar.
Supongo que son unas pocas líneas, pero para un usuario experimentado es cuestión de minutos)))
¿Cómo puede una dll en c++ tomar una cadena de mql4 y convertirla en char*?
Este es el código correcto, ¿no?Hola a todos, podríais aconsejarme por favor, escribí un EA hace un año aproximadamente, funcionaba bien. No lo he utilizado en todo este tiempo. No sé qué hacer con él, simplemente no sé qué hacer con él. ¿Puede ser porque he cambiado de edificio? Actualmente estoy utilizando la Build 1090.
Parece que es cuestión de unas pocas líneas, lo que para un entendido es cuestión de tres minutos)))
Me llevó dos horas. Tengo que revisar el sistema pieza por pieza. Ejecute ambos EAs a la vez en gráficos adyacentes - todo será visible. Asesor Experto 1 = Escribir en el archivo
//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }
EA 2 = Leer archivo
//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); }
Hola a todos, podríais decirme por favor, escribí un EA hace un año aproximadamente, funcionaba bien. No lo he utilizado en todo este tiempo. No sé qué hacer con él, simplemente no sé qué hacer con él. ¿Puede ser porque he cambiado de edificio? Actualmente estoy utilizando la Build 1090.
Es muy posible, ha habido muchas innovaciones. Empiece por comprobar si hay errores de compilación. Con la directiva #PropertyStrict.
Es posible que haya habido muchas innovaciones. Empiece por comprobar si hay errores de compilación. Con la directiva #PropertyStrict.
No existe tal directiva.
Lo hay:
Es posible que haya habido muchas innovaciones. Empiece por comprobar si hay errores de compilación. Con la directiva #PropertyStrict.
No existe tal directiva.
Lo hay:
Pero no puedo abrir el archivo EA que está en mi ordenador con extensión ex4, pero no existe tal archivo a través de MetaEditor. Por favor, dígame cuál es la razón.