Errores, fallos, preguntas - página 1341

 

metaeditor(64)?.exe tiene un compilador incorporado, ¿no? Por su parte, mql(64)?.exe es ese compilador "independiente" y autónomo.

Por eso mi pregunta era correcta y tu respuesta era "En cualquier caso, no se hacen colocaciones inteligentes de archivos ex? desde la línea de comandos. Sólo el editor puede hacerlo y sólo en modo ventana". responde perfectamente.

Por eso, de hecho, le doy las gracias.

 

La ruta de búsqueda fijada en el MetaEditor como R:\N

Aparece en los resultados de la búsqueda como R:\\\N-ES.

No afecta al funcionamiento, pero compruebe si hay errores ocultos (por ejemplo, puede introducir la ruta R:\\\\\\\)

 

Windows 10, MT4 Build 854 títulos extraños (en lugar de propagación dice "!"), no se traducen todos los elementos del menú y hay un elemento de menú vacío:


 
Cambio involuntario del valor
#import "Test.dll"
        void f( const int& x[] );
#import
void OnStart()
{
        int x[ 1 ] = { 1 };
        int y = x[ 0 ];
        Print( "y=", y ); //  здесь y = 1
        f( x );
        Print( "y=", y ); //а здесь y = 2, но я его явно не менял
}
//Test.cpp
void WINAPI f( int x[] ) { x[ 0 ] = 2; }

Está claro que f() está mal descrita en #import, pero la cuestión no es qué ha cambiado x, sino qué ha cambiado y.

Tal vez tenga sentido que el compilador considere que x es volátil (en el sentido de no optimizar el código que afecta a las variables pasadas por referencia a funciones llamadas desde la .dll). Teniendo en cuenta que la ausencia de dicha optimización será prácticamente imperceptible, mientras que sus consecuencias serán significativas para el resultado.

 
Artyom Trishkin:

Windows 10, MT4 Build 854 títulos extraños (en lugar de propagación dice "!"), no se traducen todos los elementos del menú y hay un elemento de menú vacío:

Confirmado.
 

Podría estar equivocado, pero NULL cuando se utiliza para poner a cero las variables, inicializa la variable con cero.

En la ayuda dice

Синтаксически тип void является фундаментальным типом наравне с типами char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double и string. 
Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void. Она может быть присвоена переменным любых других фундаментальных типов без преобразования. 
Также допускается сравнение переменных фундаментальных типов со значением NULL

Teóricamente, cuando se utiliza NULL, la variable debe estar vacía como en el caso de la variable de tipo cadena y no contener ni 0, ni -, ni +.

Cuando se inicializa una variable de tipo string text = NULL; la variable está vacía y se le asigna 0 cuando se inicializan otros tipos.

 
Artyom Trishkin:

Windows 10, MT4 Build 854 título extraño (en lugar de propagación dice "!")

¡spread es un nombre demasiado amplio, en MT5 tanto en Overview como en la ventana Quotes siempre ha sido !

 
A100:

¡spread es un nombre demasiado amplio, en MT5 tanto en la Visión General como en la ventana de Cotizaciones siempre ha sido !

Tal vez no estaba prestando atención, pero al menos "SP" habría sido más informativo
 

Hay otro error interesante en la versión 854

Tengo una carpeta de prueba que está en expertos, contiene el código fuente y el archivo excerset con el nombre de prueba.

Tengo un archivo con nombre test (también con source y excerset) en la carpeta principal, así que cuando compilo este último, el primero se instala en el terminal para el test.

Es decir, quiero probar el Asesor Experto con el nombre y la ubicación Xperts\\Test pero el terminal establece automáticamente Xperts\Test cada vez durante la compilación por lo que tengo que reorganizar el EA cada vez.

Esto es molesto...

 

Hola comerciantes,

Por favor, ayúdenme a resolver un problema:

La función SymbolInfoDouble( _Symbol,SYMBOL_TRADE_TICK_VALUE) para el instrumento #IBM_L devuelve 0.

LiteForex MT5 Terminal x64 build 1150 (Liteforex Investments Limited).

Moneda de la cuenta EUR.

Script de prueba en la aplicación.

El diario muestra:

2015.08.12 22:23:51.930 TestTickValue (#IBM_L,H1) Tick value = 0.00000.

Necesito este valor para calcular el volumen de operaciones.

double lots = loss * cSymbolInfo.TickSize() / ( priceDiff * cSymbolInfo.TickValue() );

Elijo cSymbolInfo.Name(symbol) correctamente en el código antes de llamar a TickValue(). El código funciona para otros instrumentos, por ejemplo, EURUSD.

Archivos adjuntos: