新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1746

 
MakarFX #:

首先,查看一下。

第二,也许经纪人没有那么多的报价。

不不不,我抄了一点,从一天到一年的时间都试过。指定的参数为最大值(10000000)。

...

当向一个指标请求数据时,如果所请求的时间序列还没有被构建,或者应该从服务器上下载,该函数将立即返回-1,但下载/构建过程本身将被启动。

当从专家顾问或脚本请求数据时,如果终端在本地没有这些数据,将开始从服务器加载,或者如果数据可以从本地历史建立,但它们还没有准备好,将开始建立所需的时间序列。该函数将返回在超时时间前准备好的数据量,但历史数据的加载将继续进行,下一次类似的请求将返回更多的数据。

...


这很奇怪。它说,如果你从一个未加载的历史记录中复制,下载本身就会进行,但...什么都没有发生。错误4073(如果重复,则在重启后)。
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ivan Butko #:

不,不,我在复制一点,我已经试过一天到一年的时间。指定的参数是最大的(10000000)。


很奇怪。他们说,如果我从未加载的历史中复制,它就会自己加载,但是...什么也没有发生。错误 4073
在MT5中与MT4中不一样
 
MakarFX #:
在MT5中与MT4中不一样


文本

...

当向指标请求数据时,如果请求的时间序列尚未建立或应从服务器下载,该函数将立即返回-1,但加载/建立过程本身将被启动

当从专家顾问或脚本请求数据时,如果终端在本地没有这些数据,将开始从服务器加载,或者如果可以从本地历史建立数据,但它们还没有准备好,将开始建立所需的时间序列。该函数将返回在超时时间前准备好的数据量,但历史数据的加载将继续进行,下一次类似的请求将返回更多的数据。

...

摘自MT4手册
https://docs.mql4.com/ru/series/copytime

按照我的理解,即使在一次请求之后,历史记录也应该被载入
void OnStart()
  {
   datetime rates[1];
   int copied=CopyTime(Symbol(),PERIOD_CURRENT,16216,1,rates);
   if(copied<=0)
      Print("Ошибка копирования ценовых данных ",GetLastError());
   else Print("Скопировано ",ArraySize(rates)," баров");
  }
但是,它没有加载。一条都没有))。
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Ivan Butko #:


文本

摘自MT4手册
https://docs.mql4.com/ru/series/copytime

根据我的理解,即使在一次请求之后,也应该下载历史记录
void OnStart()
  {
   datetime rates[1];
   int copied=CopyTime(Symbol(),PERIOD_CURRENT,16216,1,rates);
   if(copied<=0)
      Print("Ошибка копирования ценовых данных ",GetLastError());
   else Print("Скопировано ",ArraySize(rates)," баров");
  }
但是,它没有加载。一条都没有))。

就我遇到的情况而言,MT4是从档案中加载,MT5是从经纪人的服务器中加载。

 
MakarFX #:

据我所知,MT4是从档案室加载的,而MT5是从经纪人的服务器加载的。

请澄清你说的 "他们的档案 "是什么意思?

 
Ivan Butko #:

请澄清 "他们的档案 "是什么意思?

 
MakarFX #:

啊哈,我明白了。我明白了。

诶,那个文件条目现在真的很麻烦了

如果终端本地没有这些数据,将 启动服务器下载


 

问候。能否请您告诉我是否可以这样做,如何做?

是否可以编写自己的函数,以便向编写的函数传递不同数量的参数?

如何,例如在这个函数中,你可以传递4或5个参数。


 
Andrey Sokolov #:

问候。能否请您告诉我是否可以这样做,如何做?

有没有可能在写函数的时候,可以给写好的函数传递不同数量的参数?

如何,例如在这个函数中,你可以传递4或5个参数。


2.5种方式。1)用默认值制作参数 2)用相同的名字但不同的参数编写函数。3)编写 "模板函数"(同时使用1和2)。

对于函数的用户来说,这将类似于函数有 "4或5 "个参数和/或参数采取不同类型的事实。

 
Maxim Kuznetsov #:

2.5种方式。1)用默认值制作参数 2)用相同的名字但不同的参数编写函数。3)编写 "模板函数"(同时使用1和2)。

对于函数的用户来说,就像函数有 "4或5 "个参数和/或参数有不同的类型。

谢谢你。

结果是不同的函数有相同的名字。 而你不能让它有可能传递不同数量的参数?