Perguntas de um "boneco" - página 70

 
Expert:

Olá. Pode dizer-me, por favor? Porque é que as ordens e os negócios têm um bilhete, mas as posições não têm?

E qual é a diferença entre um bilhete e um identificador?

RTFM
 
sergeev:
RTFM
))))))))))
 
sergeev:
RTFM
Oh... É demasiado grande para encontrar aí rapidamente a informação necessária
 
Expert:
Oh... É demasiado grande para encontrar aí rapidamente a informação necessária
E leva o seu tempo. )) É preciso estudá-lo. E depois será muito rápido e fácil encontrar muitas respostas às suas perguntas. Consulte a secção de Funções de Negociação para a sua pergunta.
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

Chamada de funções importadas da biblioteca do ex5.

Explique, por favor. Leia https://www.mql5.com/ru/docs/runtime/imports

As bibliotecas do sistema (DLL) são carregadas pelas regras do sistema operativo. Se a biblioteca já estiver carregada (por exemplo, por outro Expert Advisor, ou mesmo a partir de outro terminal de cliente, funcionando em paralelo), então a referência é para a biblioteca já carregada.

Como são carregadas as ex5 bibliotecas?Se a biblioteca já estiver carregada (por exemplo, por outro Expert Advisor e mesmo de outro terminal cliente a funcionar em paralelo),

E ainda: como fazer com que apenas uma instância da biblioteca do ex5 seja carregada.

E outros EAs ligar-se-ão apenas a este caso.

Fiz uma biblioteca.

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

Criei um Consultor Especialista, que inclui a biblioteca.

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

1. Nem um único Expert Advisor é carregado. O processo do terminal.exe é de 91,000 KB.

2. Ligação de um consultor especializado ao EURUSD. Processo Terminal.exe -- 131 000 KB. (+41 MB).

3. Eu ligo o mesmo Expert Advisor (adicionalmente) ao processo GBPUSD. terminal.exe - 171 000KB.(+41MB).

Como através do MT5 apenas (através de classes ou bibliotecas ou scripts, EAs, etc.) criar em conjunto o acesso a dados específicos (que mudarão de forma dinâmica)?

PS/// Tentei fazer ambos

static  int lib[10 000 000]
De qualquer forma, uma instância diferente da biblioteca é carregada para cada EA.
 

rlx:

Ainda carrega um exemplo de biblioteca diferente para cada EA.

Poderá ser possível implementá-lo com variáveis terminais globais. Ou seja, ambas as instâncias utilizam as variáveis globais do terminal para os cálculos.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

Ainda: Como posso fazer com que apenas um exemplo de ex5 seja carregado.

E os EAs subsequentes só se ligarão a esta instância.

Fiz uma biblioteca.

Criei um Consultor Especialista, que inclui esta biblioteca.

1. Nem um único Expert Advisor é carregado. O processo do terminal.exe é de 91,000 KB.

2. Ligação de um consultor especializado ao EURUSD. Processo Terminal.exe -- 131 000 KB. (+41 MB).

3. Eu ligo o mesmo Expert Advisor (adicionalmente) ao processo GBPUSD. terminal.exe - 171 000KB.(+41MB).

Como através do MT5 apenas (através de classes ou bibliotecas ou scripts, EAs, etc.) criar em conjunto o acesso a dados específicos (que mudarão de forma dinâmica)?

PS/// Tentei fazer ambos

Ainda carrega um exemplo de biblioteca diferente para cada EA.

Penso que as variáveis terminais globais podem ajudá-lo, ou escrever dados para um ficheiro
 
tol64:
Talvez possa ser implementado com variáveis terminais globais. Ou seja, ambas as instâncias utilizam variáveis terminais globais para os cálculos.
sergey1294:
Penso que as variáveis terminais globais podem ajudá-lo, ou escrever os dados num ficheiro

Obrigado pela sugestão.

Talvez haja outras formas.

 
rlx:

Obrigado pela sugestão.

Talvez haja outras formas.

Penso que não há outras formas de utilizar os mesmos dados com diferentes EAs, scripts e indicadores
 
sergey1294:
Penso que não existem outras formas de utilizar os mesmos dados por diferentes Conselheiros Peritos, roteiros e indicadores

Quem me dera poder.

Por exemplo, eu inventei uma tal variante. Não pode ser implementado através de variáveis globais.

conselheiro.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);
  }

trader.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);
  }

Passando a matriz!!! estruturas!! para outro Expert Advisor que preenche esta matriz.

Este código funciona correctamente. MAS trader.ex5 não se liga a um conselheiro.ex5, mas cria outro exemplo deconselheiro.ex5.

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