Комбинатор: ¿Ejecutarlo como administrador no ayuda?
No lo he probado. Nunca había sucedido, antes de la compilación 1045. Y tampoco es todo el tiempo ahora. Puede funcionar durante medio día y luego encontrar este error.
Estuve a punto de reiniciar windows, cerré el editor mql5, cerré el editor mql4 y cerré los terminales MT5 y MT4. Pero necesitaba mirar algo en el editor de mql4. Lo abrí de nuevo y, Dios mío, el archivo se compiló. Ahora estoy pensando que dos editores, mql4 y mql5, están trabajando simultáneamente. Es extraño que los mismos archivos de diferentes directorios no se abran en ellos.
Seleccionado. El cero se produce sólo después de la primera ejecución y no necesariamente en los símbolos SGD.
El SGDJPY entró en la fuente por accidente. El resultado ya se muestra para la versión corregida, donde "SGDJPY" se sustituye por _Symbol.
¿Fue capaz de reproducirlo?
Es lo mismo en la 4. Incluso tengo un comentario para que no se me olvide. Ahora he actualizado MT4 a 1052 - el error no se ha eliminado. Ejecutarlo bajo administrador no ayuda (respuesta a Combinator)
Aquí está el código de la función para MQL4, lo uso en el indicador, se llama en OnCalculate. Si añado el indicador al gráfico, todo va bien. Pero si reinicio el terminal - algunos valores nulos, ver la salida al final del post.
bool Quote2Price(double diff,double &price4lot,string symbol="EURUSD") { int dig=(int)MarketInfo(symbol,MODE_DIGITS); if(dig == 0) return(false); // symbol is none double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке) double tickValue, tickSize2; if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке) Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false"); if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке) Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
Artyom Trishkin: No lo he probado. No solía ocurrir antes de la compilación 1045. Y ahora tampoco ocurre siempre. Puedes trabajar durante medio día y luego te encuentras con este error.
Estuve a punto de reiniciar windows, cerré el editor mql5, cerré el editor mql4 y cerré los terminales MT5 y MT4. Pero necesitaba mirar algo en el editor de mql4. Lo abrí de nuevo y, Dios mío, el archivo se compiló. Ahora estoy pensando que dos editores, mql4 y mql5, están trabajando simultáneamente. Es extraño que los mismos archivos de diferentes directorios no se abran en ellos.
Pero, los veré trabajando juntos.
No hay ninguna diferencia: de vez en cuando se produce un error, independientemente de que haya uno o dos editores en funcionamiento:
2017.03.0101:43:30.843 MetaTrader 4 build 1052 started (MetaQuotes Software Corp.) 2017.03.0101:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00 2017.03.0101:43:30.844 Data Folder: D:\New MT4
La epopeya del error continúa:
EX4 write error 00
Reiniciar constantemente Windows para poder seguir trabajando hace que el trabajo sea insoportable.
tienes que mirar los usuarios de las carpetas correspondientes, no creo que MT4 tenga la culpa de nada, parece un problema de acceso a la carpeta. quizás algún proceso oculto está bloqueando el acceso.
Andrey Dik: tienes que mirar los usuarios de las carpetas correspondientes, no creo que sea culpa de MT4, parece que hay un problema de acceso a las carpetas. quizás algún proceso oculto está bloqueando el acceso.
¿Ejecutarlo como administrador no ayuda?
Estuve a punto de reiniciar windows, cerré el editor mql5, cerré el editor mql4 y cerré los terminales MT5 y MT4. Pero necesitaba mirar algo en el editor de mql4. Lo abrí de nuevo y, Dios mío, el archivo se compiló. Ahora estoy pensando que dos editores, mql4 y mql5, están trabajando simultáneamente. Es extraño que los mismos archivos de diferentes directorios no se abran en ellos.
Pero, los veré trabajando juntos.
Seleccionado. El cero se produce sólo después de la primera ejecución y no necesariamente en los símbolos SGD.
El SGDJPY entró en la fuente por accidente. El resultado ya se muestra para la versión corregida, donde "SGDJPY" se sustituye por _Symbol.
¿Fue capaz de reproducirlo?
Es lo mismo en la 4. Incluso tengo un comentario para que no se me olvide. Ahora he actualizado MT4 a 1052 - el error no se ha eliminado. Ejecutarlo bajo administrador no ayuda (respuesta a Combinator)
Aquí está el código de la función para MQL4, lo uso en el indicador, se llama en OnCalculate. Si añado el indicador al gráfico, todo va bien. Pero si reinicio el terminal - algunos valores nulos, ver la salida al final del post.
{
int dig=(int)MarketInfo(symbol,MODE_DIGITS);
if(dig == 0)
return(false); // symbol is none
double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке)
double tickValue, tickSize2;
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false");
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
Print("tickSizeMarketInfo= ", tickSizeMarketInfo, " tickSize2= ", tickSize2, " tickValue= ", tickValue);
if(tickSizeMarketInfo == 0 || tickSize2 == 0 || tickValue == 0.0)
return false;
double price=diff/(tickSize2/tickValue);
price4lot=NormalizeDouble(price,2);
return (true);
}
Salida después de reiniciar el terminal:
2017.03.01 00:31:43.588 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:43.460 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:43.351 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:42.961 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0
2017.03.01 00:31:42.910 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0
2017.03.01 00:31:42.866 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0
2017.03.01 00:31:42.301 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: inicializado
2017.03.01 00:31:41.080 Indicador personalizado ShowImportantParams EURUSD.e,M5: cargado con éxito
Es lo mismo en el cuatro. Incluso tengo un comentario en pie para asegurarme de que no lo olvido.
No lo he probado. No solía ocurrir antes de la compilación 1045. Y ahora tampoco ocurre siempre. Puedes trabajar durante medio día y luego te encuentras con este error.
Estuve a punto de reiniciar windows, cerré el editor mql5, cerré el editor mql4 y cerré los terminales MT5 y MT4. Pero necesitaba mirar algo en el editor de mql4. Lo abrí de nuevo y, Dios mío, el archivo se compiló. Ahora estoy pensando que dos editores, mql4 y mql5, están trabajando simultáneamente. Es extraño que los mismos archivos de diferentes directorios no se abran en ellos.
Pero, los veré trabajando juntos.
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
No hay diferencia - el error aparece de vez en cuando, independientemente de si uno o dos editores se están ejecutando:
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
¿El modo /portable también causa un problema?
Este es el modo /portable:
tienes que mirar los usuarios de las carpetas correspondientes, no creo que sea culpa de MT4, parece que hay un problema de acceso a las carpetas. quizás algún proceso oculto está bloqueando el acceso.
Este es el modo /portable: