He probado el Asesor Experto ExpertMACD estándar en el probador de estrategias, que se entrega junto con MT5, genera errores:
2013.03.30 19:18:09 Core 2 genetic pass (0, 15) probado con error "OnInit failed" en 46 ms
2013.03.30 19:18:08 Core 1 genetic pass (0, 13) probado con error "OnInit failed" en 32 ms
2013.03.30 19:18:07 Core 2 genetic pass (0, 5) probado con error "OnInit failed" en 0 ms
Buscando he descubierto que el error está en el módulo: "SignalMACD" al optimizar los periodos MACD Rápido y Lento (al marcar las casillas en los parámetros del probador de estrategias).
¿Alguien se ha encontrado con este problema y cómo solucionarlo? (cuando sólo hay un tic funciona de alguna manera, pero hay errores en cuanto se comprueban dos tic)
Establezca un rango diferente de cambios Lento y Rápido. El error desaparecerá. Puedes ignorarlo.
Lo mismo es posible. Se pueden pasar hasta 64 parámetros a una función.
¿Y podemos obtener tipos arbitrarios para todos los argumentos sólo por sobrecarga? Es decir, no sólo se puede pasar una cadena, sino también un doble a una función, por ejemplo. cadena s = Concatenate("abc",2.0, "def");
¿Y los tipos arbitrarios para todos los argumentos sólo pueden lograrse mediante la sobrecarga? Es decir, no sólo se puede pasar a la función una cadena, sino también un doble, por ejemplo. cadena s = Concatenate("abc",2.0, "def");
voidOnStart()
{
//string s1=Foo("5"); // Это теперь ошибка. Компилятор не знаек какой функцией из двух пользоватьсяstring s2=Foo("5",3.0);
// string s=Foo(,"5"); // Ошибка
}
//+------------------------------------------------------------------+string Foo(string i0="", string i1="", string i2="")
{
string rez=i0+i1+i2;
return rez;
}
string Foo(string i0="", double i1=2.0, string i2="")
{
string rez;
if (i1>2.0) {rez=i0+i2;} else rez=i0+"99"+i2;
return rez;
}
Hola. Después de actualizar la build de MT5, el indicador ya no se muestra con normalidad en el probador, en el propio terminal se muestra con normalidad. El indicador es bastante complejo y requiere muchos recursos (ZUP), lo traduzco de MT4 a MT5. En el probador, Bild 756 línea ZigZag se muestra normalmente, en el probador después de Bild 770 - ZigZag valores de los precios son correctos, pero el marco de tiempo no es correcto (desplazado, no uniformemente) ZigZag - búfer de salida. Al mismo tiempo, los objetos gráficos (triángulos, líneas, etc., que por cierto se basan en los datos de las memorias intermedias de salida (ZigZag también)) se muestran normalmente. Por favor, ayúdenme a entender esto.
He probado el Asesor Experto ExpertMACD estándar en el probador de estrategias, que se entrega junto con MT5, genera errores:
2013.03.30 19:18:09 Core 2 genetic pass (0, 15) probado con error "OnInit failed" en 46 ms
2013.03.30 19:18:08 Core 1 genetic pass (0, 13) probado con error "OnInit failed" en 32 ms
2013.03.30 19:18:07 Core 2 genetic pass (0, 5) probado con error "OnInit failed" en 0 ms
Buscando he descubierto que el error está en el módulo: "SignalMACD" al optimizar los periodos MACD Rápido y Lento (al marcar las casillas en los parámetros del probador de estrategias).
¿Alguien se ha encontrado con este problema y cómo solucionarlo? (cuando sólo hay un tic funciona de alguna manera, pero hay errores en cuanto se comprueban dos tic)
Establezca un rango diferente de cambios Lento y Rápido. El error desaparecerá. Puedes ignorarlo.
¿Es posible escribir una función con un número variable de parámetros en MQL5? ¿Por ejemplo, como en StringConcatenate(...) o Print(...)?
¿Es posible escribir en MQL5 una función con un número variable de parámetros? Por ejemplo, como en StringConcatenate(...) o Print(...)?
Por ejemplo, puedes hacer un array cuyo tamaño será igual al número de tus parámetros como parámetro.
Estoy interesado en un número variable de parámetros como en StringConcatenate. Algo así: string Concatenate(string s, ...); ¿Es posible?
Lo mismo es posible. Se pueden pasar hasta 64 parámetros a una función.
Lo mismo es posible. Se pueden pasar hasta 64 parámetros a una función.
¿Y podemos obtener tipos arbitrarios para todos los argumentos sólo por sobrecarga? Es decir, no sólo se puede pasar una cadena, sino también un doble a una función, por ejemplo. cadena s = Concatenate("abc",2.0, "def");
¿Y los tipos arbitrarios para todos los argumentos sólo pueden lograrse mediante la sobrecarga? Es decir, no sólo se puede pasar a la función una cadena, sino también un doble, por ejemplo. cadena s = Concatenate("abc",2.0, "def");