Preguntas de un "tonto" - página 188

 
Karlson:
Todavía no lo he probado, pero entiendo la idea de juntarlo en un solo archivo, así que tal vez los desarrolladores puedan indicar una opción: cómoconectar los datos no modificados de una carpeta.
Y vas directamente al CD con esta sugerencia: conecta los datos inmutables de una carpeta.
 

¡Buenas tardes!

Aquí hay una función que he escrito. Calcula la relación entre el tipo de cambio actual y el de principios de 2010.

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

Funciona correctamente si ejecuto una prueba para 2011 o períodos anteriores, pero devuelve 0 si pruebo para 2012 :(

Por favor, indíqueme cuál puede ser el problema.

Expert Advisor está funcionando en 10 minutos, estoy usando el servidor y la cuenta de Championship 2012 para las pruebas.

 
MegaVoin:

¡Buenas tardes!

Aquí hay una función que he escrito. Calcula la relación entre el tipo de cambio actual y el de principios de 2010.

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

Funciona correctamente si ejecuto una prueba para 2011 o períodos anteriores, pero devuelve 0 si pruebo para 2012 :(

Por favor, indíqueme cuál puede ser el problema.

Expert Advisor está funcionando en 10 minutos, estoy usando el servidor y la cuenta de Championship 2012 para las pruebas.

Pon una impresión del error, ya veremos.
 
Yedelkin:
Sí, no sé cuál es la lógica del programa, pero el período de 10 minutos se denota de manera un poco diferente.

Todo lo demás funciona en 10 minutos, así:

CopyHigh(_Symbol, _Period, 0, 2, MaxVal ) 

Sólo esta función intenta tomar los datos del mes.

¿Y cómo imprimir el error? Entiendo que CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) devuelve -1 en lugar de 1.

 
MegaVoin:

¿Y cómo imprimir el error? Entiendo que CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) devuelve -1 en lugar de 1. ¿Pero por qué ocurre esto, puede dar un error?

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 
   double OtkrVal[1]; 
   datetime time=D'2010.01.01 00:00:00';
   ResetLastError();
   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) 
     {
      Print("error = ",_LastError);
      return(0);
     }
   return(Bid / OtkrVal[0]);
}
 
Yedelkin:
Poner una impresión del error - vamos a ver.

error = 4401

No encuentro ninguna decodificaciónde códigos de error en Metatrader...

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
MegaVoin:

error = 4401

No encuentro ninguna decodificaciónde códigos de error en Metatrader...

https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5
 
MegaVoin: error = 4401

OK, "Historia solicitada no encontrada". Es decir, enero de 2010 no se encuentra en 2012, ¿verdad?

Y en la cuenta demo (no en el tester) ¿qué muestra?

 
Yedelkin:

OK, "Historial solicitado no encontrado". Es decir, enero de 2010 no se encuentra en 2012, ¿verdad?

¿Y en la cuenta demo (no en el tester) qué muestra?

No se detecta.

He creado una nueva cuenta de demostración (no de campeonato). Los lotes mayores de 5 se saltan ahora si hago la prueba para 2011, pero hay el mismo error para 2012.

Supongo que tengo que establecer en algún lugar cuánto historial es accesible antes del período de prueba. Y por defecto deben ser 2 años... Sólo que donde está configurado...

 
MegaVoin: Creé una nueva cuenta de demostración (no de campeonato). Los lotes de más de 5 se omiten ahora si se hace la prueba para 2011, pero sigue el mismo error para 2012.

Entonces, ¿este error también se produce en una cuenta demo(no en el probador)?

MegaVoin : Supongo que tengo que establecer en algún lugar la cantidad de historia disponible antes del período de prueba. La configuración por defecto es probablemente de 2 años... Sólo donde se establece...

Prefiero leer sobre la historia para las pruebas en la sección "Pruebas de las estrategias comerciales".