El editor guarda automáticamente los archivos en Unicode si el texto tiene caracteres en el rango 128-255.
Ahora todos los archivos son el doble de grandes. Los guardo en el bloc de notas en ANSI - ok. Después abro en meta editor y guardo - unicode de nuevo.
fxsaber: Tengo varios indicadores que contienen las mismas cadenas
Decidí ponerlos en mqh y vincularlos a "save". Resulta que esto no se puede hacer - #propiedad sólo se puede establecer en la fuente mq5-archivo.
¿Por qué esta restricción?
De hecho, estas propiedades son propiedades de un proyecto de indicador MQL.
Actualmente, el archivo de proyecto de un programa MQL es el archivo fuente *.mq5(4). Además, los usuarios pueden utilizar archivos *.mqh de terceros que pueden contener estas propiedades.
El editor guarda automáticamente los archivos en Unicode si el texto contiene caracteres del rango 128-255.
Esto es algo nuevo. ¿Por qué no tomar la codificación de los caracteres de un solo byte de la configuración del sistema? Este ha sido el valor por defecto hasta ahora.
De nuevo, se podría hacer una opción para que aquellos que lo necesiten puedan habilitar el formato de dos bytes.
Karputov Vladimir: Cuando tengamos un ejemplo, lo combinaremos todo en un solo post: problema, ejemplo, datos del sistema operativo y del terminal.
Hecho. Ahora estoy bajo Win764bit, pero el problema es el mismo. En tiempo real todo es como debería ser, pero en el probador en la visualización el punto izquierdo de la línea se pega firmemente y el derecho se mueve.
datetime prevtime=0,
time_last_bar[1]={0};
bool New_Bar=false; // Флаг нового бараconstlong chart_ID=0; // ID графика conststring nname="TrendLine"; // имя линии constint sub_window=0; // номер подокна datetime time1=0; // время первой точки double price1=0; // цена первой точки datetime time2=0; // время второй точки double price2=0; // цена второй точки datetime prevbar=0;
double cclose[];
datetime ttime[];
//--------------------------------------------------------------------void Fun_New_Bar() // Ф-ия обнаружения ..
{ // .. нового бара
New_Bar=false; // Нового бара нетCopyTime(Symbol(),Period(),0,1,time_last_bar);
if(time_last_bar[0] != prevtime) // Сравниваем время
{
prevtime = time_last_bar[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
//=============================================================================================================intOnInit()
{
CopyTime(Symbol(),Period(),0,1,time_last_bar);
prevtime = time_last_bar[0];
ArraySetAsSeries(cclose,true);
ArraySetAsSeries(ttime,true);
ArrayResize(cclose,5);
ArrayResize(ttime,5);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ObjectsDeleteAll(0," ",-1,-1);
Print("------------Работа эксперта завершена!------------");
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
Fun_New_Bar(); // Обращение к ф-ииif (New_Bar==false) // Если бар не новый..return; // ..то уходимPrint("новый бар !");
ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];
Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);
//--- создадим трендовую линию по заданным координатам if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return;
}
}
//--------------------------------------------------------------------------------
Dibujo una TrendLine normal entre los puntos de cierre de dos barras anteriores (en cada nueva barra).
ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];
Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);
//--- создадим трендовую линию по заданным координатам if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return;
}
Todo funciona bien en tiempo real. Pero en el modo de visualización en el probador, el punto izquierdo de la línea está unido al inicio de la referencia y no se mueve en absoluto. ¿Cuál es el problema?
Hay un problema con el ejemplo. La propia cáscara del cerrojo toma varios archivos. Haré uno más sencillo por la noche cuando llegue a casa.
El sistema operativo es WinXP SP3. Construir 1434
LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 iniciado (MetaQuotes Software Corp.) DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC basado en X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00
LJ 0 14:55:39.889 Terminal C:\N-Archivos de Programa\N-MetaTrader 5
ZY. En cualquier caso, okrozme esas manipulaciones que di arriba, nada más se hace. Cuando se detecta una nueva barra, se borra todo y se dibuja una nueva línea. Pero un ejemplo completo para compilar lo haré.
Hecho. Ahora estoy bajo Win764bit, pero el problema es el mismo. En tiempo real todo es como debería ser, pero en el probador en la visualización el punto izquierdo de la línea se pega firmemente y el derecho se mueve.
Agradecimiento. Hay un poco de asquerosidad en el probador.
¿Cómo puedo desactivar el guardado de Unicode en el meta-editor? Necesita ANSI.
¿Por qué esta necesidad?
El editor guarda automáticamente los archivos en Unicode si el texto contiene caracteres del rango 128-255.
¿Por qué esta necesidad?
El editor guarda automáticamente los archivos en Unicode si el texto tiene caracteres en el rango 128-255.
Ahora todos los archivos son el doble de grandes. Los guardo en el bloc de notas en ANSI - ok. Después abro en meta editor y guardo - unicode de nuevo.
Intenta abrir y guardar este archivo adjunto.
Decidí ponerlos en mqh y vincularlos a "save". Resulta que esto no se puede hacer - #propiedad sólo se puede establecer en la fuente mq5-archivo.
¿Por qué esta restricción?
No puedo adjuntar archivos en los mensajes privados.
Al menos ex4 de 4,9 Mb
Tengo varios indicadores que contienen las mismas cadenas
Decidí ponerlos en mqh y vincularlos a "save". Resulta que esto no se puede hacer - #propiedad sólo se puede establecer en la fuente mq5-archivo.
¿Por qué esta restricción?
Actualmente, el archivo de proyecto de un programa MQL es el archivo fuente *.mq5(4).
Además, los usuarios pueden utilizar archivos *.mqh de terceros que pueden contener estas propiedades.
¿Por qué esta necesidad?
El editor guarda automáticamente los archivos en Unicode si el texto contiene caracteres del rango 128-255.
Esto es algo nuevo. ¿Por qué no tomar la codificación de los caracteres de un solo byte de la configuración del sistema? Este ha sido el valor por defecto hasta ahora.
De nuevo, se podría hacer una opción para que aquellos que lo necesiten puedan habilitar el formato de dos bytes.
Además, los usuarios pueden utilizar archivos *.mqh de terceros, que pueden contener estas propiedades.
Es posible establecerlos en mqh, pero no se leerán como si no existieran.
Cuando tengamos un ejemplo, lo combinaremos todo en un solo post: problema, ejemplo, datos del sistema operativo y del terminal.
Hecho. Ahora estoy bajo Win764bit, pero el problema es el mismo. En tiempo real todo es como debería ser, pero en el probador en la visualización el punto izquierdo de la línea se pega firmemente y el derecho se mueve.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
Alexey Kravchenko, 2016.10.04 09:09
¡Hola !
Tengo un problema que no entiendo.
Dibujo una TrendLine normal entre los puntos de cierre de dos barras anteriores (en cada nueva barra).
Todo funciona bien en tiempo real. Pero en el modo de visualización en el probador, el punto izquierdo de la línea está unido al inicio de la referencia y no se mueve en absoluto. ¿Cuál es el problema?
Z.U. Parece que no tengo este problema con MT4.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
Alexey Kravchenko, 2016.10.04 09:57
Hay un problema con el ejemplo. La propia cáscara del cerrojo toma varios archivos. Haré uno más sencillo por la noche cuando llegue a casa.
El sistema operativo es WinXP SP3. Construir 1434
LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 iniciado (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC basado en X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00
LJ 0 14:55:39.889 Terminal C:\N-Archivos de Programa\N-MetaTrader 5
ZY. En cualquier caso, okrozme esas manipulaciones que di arriba, nada más se hace. Cuando se detecta una nueva barra, se borra todo y se dibuja una nueva línea. Pero un ejemplo completo para compilar lo haré.
ж
Hecho. Ahora estoy bajo Win764bit, pero el problema es el mismo. En tiempo real todo es como debería ser, pero en el probador en la visualización el punto izquierdo de la línea se pega firmemente y el derecho se mueve.