Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1186

 
Vladimir Karputov :

¿Dónde está la pregunta? ¿Cuáles son exactamente los errores? Lo siento, todos los telépatas están de vacaciones.

Esa es la cuestión. Tampoco entiendo cuál es el error. ¿Crees que lo habría puesto aquí si supiera cuál es el error? Ni siquiera me sale el error. Sólo este mensaje y nada más.

 
jaffer wilson:

Esa es la cuestión. Tampoco entiendo cuál fue el error. ¿Crees que lo habría puesto aquí si supiera cuál es el error? Ni siquiera me sale el error. Sólo este mensaje y nada más.

Haga clic en

 
Vladimir Karputov :

¿Dónde está la pregunta? ¿Cuáles son exactamente los errores? Lo siento, todos los telépatas están de vacaciones.


Bien, lo tengo.

prueba en EURUSD, H1 (compensación) Tradestatisticspanel (EURUSD, H1) El código de retorno OnInit es -1 no puede inicializar el indicador de forma inconsistente

 

¡Por favor, dame una pista!

En la ayuda, está escrito que una instancia de una estructura es una variable. Por ejemplo, tenemos una estructura

struct STRUCT_POSITION {
   double            volume;                 
   double            lot_coefficient;        
   bool              waiting_transaction;    
   ulong             waiting_order_ticket;   
   bool              transaction_confirmed;  
   }

A continuación, creamos una instancia de la estructura declarando una variable de su tipo:

STRUCT_POSITION SPosition;

Pero me encontré con esto en el código

STRUCT_POSITION SPosition[];

Y esto me confundió. No he visto en ningún sitio que sea posible declarar un array del tipo estructura. ¿Qué propiedades tendrá ahora esta matriz? ¿Puede llamarse "instancia de estructura"? ¿Quizás sepa dónde leer más al respecto?

 
odyn:

¡Por favor, dame una pista!

La ayuda dice que una instancia de una estructura es una variable. Por ejemplo, tenemos una estructura

A continuación, creamos una instancia de la estructura declarando una variable de su tipo:

Pero me encontré con esto en el código

Y esto me confundió. No he visto en ningún sitio que sea posible declarar un array del tipo estructura. ¿Qué propiedades tendrá ahora esta matriz? ¿Puede decirme dónde puedo leer más sobre esto?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategia

FAQ de principiantes MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2020.02.23 08:29

Y STRUCT_POSITION SPosition[]; es la declaración de una variable de tipo usuario. Los corchetes [] indican que la variable es un array. Se pueden declarar varias variables de tipo usuario como cualquier otro tipo.

double a, b[];

STRUCT_POSITION Pos, SPosition[];// при условии, что структура уже создана.
En este tipo de entrada, variable, matriz

Oh... No me di cuenta enseguida de que eras tú quien tenía esta respuesta exacta.

Para explicarlo mejor: un array no es más que un conjunto de variables indexadas. Primitivamente, tenemos dos variables p1 y p2 o tenemos el array p[2], en cuyo caso no importa si almacenamos el valor en la variable p1 o en una celda del array p[0], o en la variable p2 o en el array p[1].

Cuando se necesitan 2-3, o máximo 5 variables, se puede hacer con variables, pero si se necesitan 100 o incluso un número desconocido de variables... Aquí es donde entra la belleza de las matrices.

 
Alexey Viktorov:

Oh... No me di cuenta inmediatamente de que eras tú quien tenía la respuesta.

Con más detalle: Un array es simplemente un conjunto de variables indexadas. Primitivamente, tenemos dos variables p1 y p2, o tenemos el array p[2], en cuyo caso no importa si el valor se almacena en la variable p1 o en una celda del array p[0], o en la variable p2 o en el array p[1].

Si necesitas 2-3 variables, o como mucho 5, puedes hacerlo con variables, pero si tienes 100 o incluso un número desconocido de variables necesarias... Aquí es donde entra la belleza de las matrices.

Alexey, ¿he entendido bien que un array, a diferencia de una variable, no contendrá campos de la estructura, sino instancias de la estructura, en número de cero a varias?

P.D. : el código no eraSTRUCT_POSITION Pos,SPosition[]

peroSTRUCT_POSITION SPosition[];

ninguna variable.

 
odyn:

Alexey, ¿he entendido bien que un array, a diferencia de una variable, no contendrá campos de la estructura, sino instancias de la estructura, en número de cero a varias?

Un bus (variable con estructura tipo bus) tiene tres campos:
1. Conductor
2. Conductor
3. Pasajeros[].
Una flota de autobuses (un conjunto de estructuras de autobuses) tiene 120 autobuses, cada uno con los mismos campos:
1. Conductor
2. Conductor
3. Pasajeros[].
Pero cada autobús tiene estos campos diferentes de otros autobuses.
En resumen: una flota de autobuses es un conjunto de cadenas de tipos de autobuses.
 
Artyom Trishkin:
Un bus (variable con estructura tipo bus) tiene tres campos:
1. Conductor
2. Conductor
3. Pasajeros[].
Una flota de autobuses (un conjunto de estructuras de autobuses) tiene 120 autobuses, cada uno con los mismos campos:
1. Conductor
2. Conductor
3. Pasajeros[].
Pero cada autobús tiene campos diferentes de los otros autobuses.
En resumen: una flota de autobuses es un conjunto de cadenas de tipos de autobuses.

Gracias, eso está muy claro. :) Así que es un conjunto de puntales. Ya veo.

 
odyn:

Gracias, eso está muy claro. :) Es una ESTRUCTURA MASIVA. Ya veo.

Artem lo explicó muy bien mientras yo estaba ausente. Sólo añadiré algo para que lo entiendas: obtienes un array de estructuras que contienen un array de pasajeros.

Cada célula de la matriz tiene un conductor, un conductor y muchos pasajeros (matriz).

 
Artyom Trishkin:

Aquí

Está creando un objeto de clase base. En consecuencia, tienes una clase base en todas partes.

pero ¿es posible declarar una clase como clase base y luego, dependiendo de las condiciones, anularla como una de las clases heredadas?

La tarea consiste en dejar el nombre de la clase igual en el código.

También, por favor, aconseje qué directiva utilizar para definir el probador.

#ifdef MQL_TESTER || MQL_VISUAL_MODE

¿Es posible hacerlo así?

Razón de la queja: