Errores, fallos, preguntas - página 1718

 
¿Cómo puedo desactivar el guardado de Unicode en el meta-editor? Necesita ANSI.
 
fxsaber:
¿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.

 
Alexey Da:

¿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.

 
Tengo varios indicadores con las mismas cadenas
#property indicator_separate_window

#property indicator_plots 1
#property indicator_buffers 1

#property  indicator_type1 DRAW_LINE
#property  indicator_style1 STYLE_SOLID
#property  indicator_color1 clrRed

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

 
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.
 
Alexey Da:

¿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.

 
Ilyas:
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.

 
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;      // Флаг нового бара
                 
const long            chart_ID=0;        // ID графика 
const string          nname="TrendLine";  // имя линии 
const int             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;                             // Поймался новый бар
     }
  }


//=============================================================================================================
int OnInit()
  {
    
   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                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  
   ObjectsDeleteAll(0," ",-1,-1);
   Print("------------Работа эксперта завершена!------------"); 
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 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; 
     } 


} 
 //--------------------------------------------------------------------------------


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).

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?

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é.


ж

 
Alexey Kravchenko:

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.