Errores, fallos, preguntas - página 94

 
vdv2001:

Me encontré con un problema de este tipo, un conocido me pidió que escribiera un experto para comprobar la funcionalidad del TS. He pensado en escribirlo en Five (es más cómodo escribirlo + depurador). Escribí y obtuve el resultado:

Creo que es bueno, puedo reescribirlo para el 4.

Lo he reescrito 1:1. Este TS no tiene indicadores, sólo tiempo y rango de precios. El resultado me sorprendió mucho:

El periodo de pruebas abarca desde el 1.01.2000 hasta hoy.

Me pregunto qué probador muestra el resultado correcto.

El número de operaciones es muy grande, por lo que se plantea la cuestión de los diferenciales: ¿son los mismos para ambas pruebas?

 

¿Cómo se asigna un valor a una matriz bidimensional? Estoy escribiendo así:

positions[j, 0]=PositionGetInteger(POSITION_MAGIC);

El resultado es un error: ',' - token inesperado''.


 
EvgeTrofi:

¿Cómo se asigna un valor a una matriz bidimensional? Estoy escribiendo así:

El resultado es un error: ',' - token inesperado'.


Hazlo así:

   double array[2][4];
   array[1][0]=5;
PS. Hay ejemplos de declaraciones de arrays en la ayuda.
 

¿Cómo puedo traducir correctamente un tipo de datos a otro?

Por ejemplo, redondear un valor de punto flotante y transferirlo a una variable con un tipo de datos entero.

Al intentar hacer esto:

   double Close = iCloseMQL4(Symbol(),Period(), 1);
   double Open =  iOpenMQL4(Symbol(),Period(), 1);
   int Midle=MathRound(MathAbs(Close-Open)/_Point);

En la última línea de la compilación, aparece una advertencia:"posible pérdida de datos debido a la conversión de tipos".

¿Hay alguna forma de evitarlo?

 
Rosh:

Hazlo:

PS. Hay ejemplos de declaraciones de arrays en la ayuda.
¡Gracias! Funcionó. Pero es exactamente la misma línea en la ayuda
array[1][0]=5;
¡No pude encontrar!
 
EvgeTrofi:
¡Gracias! Funciona. ¡Pero no pude encontrar tal cadena en la ayuda!

Puede que no esté escrito directamente, pero hay un ejemplo de declaración de un array multidimensional, y hay un ejemplo de referencia a un elemento del array en el texto:

Arrays

Un array es una colección indexada de datos idénticos:

int a[50]; // Una matriz unidimensional de 50 enteros.
double m[7][50];// Una matriz bidimensional de siete matrices,
// cada uno de ellos compuesto por 50 números.
MyTime t[100];// matriz que contiene elementos de tipo MyTime

Un índice de matriz sólo puede ser un número entero. No se permiten matrices de más de cuatro dimensiones. Los elementos de un array se numeran empezando por el 0. El último elemento de una matriz unidimensional se numera con 1 menos que el tamaño de la matriz, es decir, acceder al último elemento de una matriz de 50 enteros se verá como a[49]. Lo mismo ocurre con las matrices multidimensionales, en las que una dimensión está indexada desde 0 hasta el tamaño de la dimensión-1. El último elemento de la matriz bidimensional del ejemplo tendrá el aspecto de m[6][49].

 
EvgeTrofi:

¿Cómo puedo traducir correctamente un tipo de datos a otro?

Por ejemplo, redondear un valor de punto flotante y transferirlo a una variable con un tipo de datos entero.

Al intentar hacer esto:

Hay una advertencia en la última línea al compilar:

¿Hay alguna forma de evitarlo?

Sí, haz una conversión de tipo explícita.
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Gracias. ¡¡¡Lo descubrí!!! :)
 
Rosh:

El número de operaciones es muy elevado, por lo que se plantea la cuestión de los diferenciales: ¿son los mismos para ambas pruebas?

El par de divisas EURJPY en Cinco pruebas según sus datos.

Cuatro es Alpari, los datos de los minutos se descargaron de su servidor a través de Archivo de cotizaciones -> Descargar.

Obviamente, hay una diferencia en los diferenciales, pero el resultado es muy diferente.

Para 2500 operaciones la diferencia debería ser como mucho de 2500$-5000$ pero es de 10000$, como dicen no creas en tus ojos.

Por cierto, hay 1 comercio al día con la condición de un beneficio de no menos de 8 (80 - cinco dígitos) pips.

 
¿Cómo puedo cambiar mi correo electrónico en mi perfil?