Вопросы от "чайника" - страница 70

 
Expert:

Здравствуйте. Подскажите пожалуйста. Почему у ордеров и сделок есть тикет а у позиций его нет?

И в чем вообще разница между тикетом и  идентификатором?

RTFM
 
sergeev:
RTFM
))))))))))
 
sergeev:
RTFM
Oh... It's too big to find necessary information there quickly
 
Expert:
Oh... It's too big to find necessary information there quikly
А Вы не спешите. )) Справку нужно изучить. И потом в ней будет очень быстро и удобно находить многие ответы на вопросы. Посмотрите раздел Торговые функции по Вашему вопросу.
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

Вызов импортируемых функций из библиотеки ex5.

Объясните пож. Прочел https://www.mql5.com/ru/docs/runtime/imports

 Системные библиотеки (DLL) загружаются по правилам операционной системы. Если библиотека уже загружена (например, другим экспертом и даже из другого клиентского терминала, запущенного параллельно), то обращение идет к уже загруженной библиотеке.

 Как загружаются библиотеки ex5 ? Если библиотека уже загружена (например, другим экспертом и даже из другого клиентского терминала, запущенного параллельно),

И все таки: как сделать чтобы загружался только один экземпляр библиотеки ex5.

И последующие советники подключались только к этому экземпляру.

Сделал библиотеку

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

Создал советника Test, который включает эту библиотеку.

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

1. Ни один советник не загружен.                                            Процесс terminal.exe -- 91 000 КБ.

2. Подключаю  один советник на EURUSD.                               Процесс terminal.exe -131 000 КБ. (+41МБ)

3. Подключаю этот же советник (дополнительно) на GBPUSD.  Процесс terminal.exe - 171 000 КБ.(+41МБ).

 

Как средствами только МТ5 (через классы или библиотеки или скрипты, советники и тп) создать доступ к Определенным данным (которые будут динамически меняться) совместно?

PS// Пробовол делать и 

static  int lib[10 000 000]
Все равно загружается для каждого советника свой экземпляр библиотеки.

 

 

rlx:

 Все равно загружается для каждого советника свой экземпляр библиотеки.

 

Может быть получиться реализовать это с помощью глобальных переменных терминала. То есть и тот и другой экземпляр для расчётов используют глобальные переменные терминала.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

И все таки: как сделать чтобы загружался только один экземпляр библиотеки ex5.

И последующие советники подключались только к этому экземпляру.

Сделал библиотеку

Создал советника Test, который включает эту библиотеку.

1. Ни один советник не загружен.                                            Процесс terminal.exe -- 91 000 КБ.

2. Подключаю  один советник на EURUSD.                               Процесс terminal.exe -131 000 КБ. (+41МБ)

3. Подключаю этот же советник (дополнительно) на GBPUSD.  Процесс terminal.exe - 171 000 КБ.(+41МБ).

 

Как средствами только МТ5 (через классы или библиотеки или скрипты, советники и тп) создать доступ к Определенным данным (которые будут динамически меняться) совместно?

PS// Пробовол делать и 

Все равно загружается для каждого советника свой экземпляр библиотеки.

 

Думаю вам помогут глобальные переменные терминала, либо записывать данные в файл
 
tol64:
Может быть получиться реализовать это с помощью глобальных переменных терминала. То есть и тот и другой экземпляр для расчётов используют глобальные переменные терминала.
sergey1294:
Думаю вам помогут глобальные переменные терминала, либо записывать данные в файл

Спасибо за предложение.

Может есть другие способы.

 
rlx:

Спасибо за предложение.

Может есть другие способы.

 

Думаю что других способов использовать одни и те же данные разными советниками скриптами и индикаторами нет
 
sergey1294:
Думаю что других способов использовать одни и те же данные разными советниками скриптами и индикаторами нет

А хотелось бы.

Вот например настрочил такой вариант. Его не реализовать через глобальные переменные.

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

Передача массива!!! структур!!! в другой советник, который этот массив заполняет.

Данный код работает корректно. НО trader.ex5 не связывается с уже работающим advisor.ex5, а создает еще один экземпляр advisor.ex5 .

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