来自一个 "傻瓜 "的问题 - 页 70

 
Expert:

你好。能否请你告诉我。为什么订单和交易有票,而头寸却没有?

那么票据和标识符之间有什么区别呢?

术语表
 
sergeev:
术语表
))))))))))
 
sergeev:
术语表
哦...它太大了,无法在那里迅速找到必要的信息。
 
Expert:
哦...它太大了,无法迅速找到必要的信息。
而且你要慢慢来。))你需要研究它。然后就会非常迅速和容易地找到许多问题的答案。请看一下你的问题的交易功能 部分。
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

从ex5库中调用导入的函数

请解释一下。阅读https://www.mql5.com/ru/docs/runtime/imports

系统库(DLL)是由操作系统规则加载的。如果该库已经被加载(例如被另一个专家顾问加载,甚至从另一个客户终端加载,并行运行),那么引用的是已经加载的库。

ex5库是如何被加载的?如果库已经被加载(例如被另一个专家顾问,甚至从另一个并行运行的客户终端)

还有:如何使ex5库只有一个实例被加载。

而进一步的EA将只连接到这个实例。

我已经做了一个图书馆。

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

我已经创建了一个专家 顾问,其中包括库。

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

1.没有加载任何一个专家顾问。terminal.exe进程为91,000 KB。

2.将一个专家顾问连接到欧元兑美元。Terminal.exe进程 - 131 000 KB。(+41 MB)。

3.我将同一个专家顾问(另外)连接到GBPUSD。终端.exe进程 - 171 000KB。(+41MB)。

如何仅通过MT5的手段(通过类或库或脚本、EA等)共同创建对特定数据(将动态变化)的访问?

PS//试图同时进行

static  int lib[10 000 000]
总之,每个EA都会加载一个不同的库实例。
 

rlx:

它仍然为每个EA加载一个不同的库实例。

也许可以用全局 终端变量来实现这一点。也就是说,两个实例都使用终端的全局变量进行计算。
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

还是:我怎样才能使ex5只有一个实例被加载。

而后续的EA将只连接到这个实例。

我已经做了一个图书馆。

我已经创建了一个专家 顾问,其中包括这个库。

1.没有加载任何一个专家顾问。terminal.exe进程为91,000 KB。

2.将一个专家顾问连接到欧元兑美元。Terminal.exe进程 - 131 000 KB。(+41 MB)。

3.我将同一个专家顾问(另外)连接到GBPUSD。终端.exe程序 - 171 000KB。(+41MB)。

如何仅通过MT5的手段(通过类或库或脚本、EA等)共同创建对特定数据(将动态变化)的访问?

PS//试图同时进行

它仍然为每个EA加载一个不同的库实例。

我认为全局 终端变量可以帮助你,或者把数据写到一个文件里
 
tol64:
也许它可以用全局 终端变量来实现。也就是说,两个实例都使用全局终端变量进行计算。
sergey1294:
我认为全局终端变量 可以帮助你,或者把数据写到一个文件里

谢谢你的建议。

也许还有其他方法。

 
rlx:

谢谢你的建议。

也许还有其他方法。

我认为没有其他方法可以在不同的EA、脚本和指标中使用相同的数据。
 
sergey1294:
我认为没有其他方法可以让不同的专家顾问、脚本和指标使用相同的数据。

我希望我可以。

例如,我编了这样一个变体。它不能通过全局变量 来实现。

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

交易员.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