Preguntas de un "tonto" - página 70

 
Expert:

Hola. ¿Puede decirme, por favor. ¿Por qué las órdenes y las operaciones tienen un ticket pero las posiciones no?

¿Y cuál es la diferencia entre un billete y un identificador?

RTFM
 
sergeev:
RTFM
))))))))))
 
sergeev:
RTFM
Oh... Es demasiado grande para encontrar rápidamente la información necesaria
 
Expert:
Oh... Es demasiado grande para encontrar rápidamente la información necesaria
Y te tomas tu tiempo. )) Tienes que estudiarlo. Y entonces será muy rápido y fácil encontrar muchas respuestas a sus preguntas. Consulte la sección de funciones comerciales para su pregunta.
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

Llamada a funciones importadas de la biblioteca ex5.

Explíquese, por favor. Leer https://www.mql5.com/ru/docs/runtime/imports

Las bibliotecas del sistema (DLL) se cargan mediante las reglas del sistema operativo. Si la biblioteca ya está cargada (por ejemplo, por otro Asesor Experto, o incluso desde otro terminal cliente, ejecutándose en paralelo), entonces la referencia es a la biblioteca ya cargada.

¿Cómo se cargan las bibliotecas de ex5?Si la biblioteca ya está cargada (por ejemplo, por otro Asesor Experto e incluso desde otro terminal cliente que se ejecuta en paralelo),

Y todavía: cómo hacer que sólo se cargue una instancia de la biblioteca ex5.

Y otros EAs se conectarán sólo a esta instancia.

He hecho una biblioteca.

#property library
static int      i=0;
int lib[10 000 000]; /// разделил пробелами для наглядности
int Get(void) export {return(i++);}

He creado un Asesor Experto, que incluye la biblioteca.

#import "lib.ex5"
  int Get(void);
#import
void OnTick(){}

1. No se carga ni un solo Asesor Experto. El proceso terminal.exe ocupa 91.000 KB.

2. Conectando un Asesor Experto a EURUSD. Proceso Terminal.exe -- 131 000 KB. (+41 MB).

3. Conecto el mismo Asesor Experto (adicionalmente) a GBPUSD. proceso terminal.exe - 171 000KB.(+41MB).

¿Cómo por medio de MT5 solamente (a través de clases o bibliotecas o scripts, EAs, etc.) crear acceso a datos específicos (que cambiarán dinámicamente) de forma conjunta?

PS// Intenté hacer ambas cosas

static  int lib[10 000 000]
De todos modos, se carga una instancia diferente de la biblioteca para cada EA.
 

rlx:

Sigue cargando una instancia de biblioteca diferente para cada EA.

Puede ser posible implementar esto con variables globales de terminal. Es decir, ambas instancias utilizan las variables globales del terminal para los cálculos.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

Aún así: ¿Cómo puedo hacer que sólo se cargue una instancia de ex5?

Y los siguientes EA sólo se conectarán a esta instancia.

He hecho una biblioteca.

He creado un Asesor Experto, que incluye esta biblioteca.

1. No se carga ni un solo Asesor Experto. El proceso terminal.exe ocupa 91.000 KB.

2. Conectando un Asesor Experto a EURUSD. Proceso Terminal.exe -- 131 000 KB. (+41 MB).

3. Conecto el mismo Asesor Experto (adicionalmente) a GBPUSD. proceso terminal.exe - 171 000KB.(+41MB).

¿Cómo por medio de MT5 solamente (a través de clases o bibliotecas o scripts, EAs, etc.) crear acceso a datos específicos (que cambiarán dinámicamente) de forma conjunta?

PS// Intenté hacer ambas cosas

Sigue cargando una instancia de biblioteca diferente para cada EA.

Creo que las variables globales del terminal pueden ayudarte, o escribir los datos en un archivo
 
tol64:
Tal vez se pueda implementar con variables globales del terminal. Es decir, ambas instancias utilizan variables terminales globales para los cálculos.
sergey1294:
Creo que las variables globales del terminal pueden ayudarte, o escribir los datos en un archivo

Gracias por la sugerencia.

Tal vez haya otras formas.

 
rlx:

Gracias por la sugerencia.

Tal vez haya otras formas.

Creo que no hay otras formas de utilizar los mismos datos con diferentes EAs, scripts e indicadores
 
sergey1294:
Creo que no hay otras formas de utilizar los mismos datos por diferentes Asesores Expertos, scripts e indicadores

Ojalá pudiera.

Por ejemplo, me inventé una variante de este tipo. No se puede implementar a través de variables globales.

asesor.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
Info   test;
void OnTick()
  {
//---
   test.info3 = 78;
  }
bool  GetInfo(Info& massiv[]) export
  {
   ArrayResize(massiv, 10);
   massiv[0].id = 123;
   massiv[0].info1= 56;
   massiv[0].info3=test.info3;
   return(true);
  }

comerciante.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
#import "advisor.ex5"
  bool  GetInfo(Info& massiv[]);
#import
void OnTick()
  {
   Info req[];
   GetInfo(req);
   Print(req[0].info3);
  }

Pasando el array!!! ¡¡¡Estructuras!!! a otro Asesor Experto que rellena este array.

Este código funciona correctamente. PERO trader.ex5 no se vincula a un advisor.ex5 ya en funcionamiento, sino que crea otra instancia deadvisor.ex5.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
Razón de la queja: