错误、漏洞、问题 - 页 2585

 
Nikolai Semko:

在哪里以及在什么时候删除指标手柄

一旦不再需要,就立即进行。而在OnDeinit之前。

 
fxsaber:

只要不再需要它。而在OnDeinit之前。

这就是问题所在,一旦不再需要它,我就把它删除。如果OnDeinit不起作用,我如何告诉一个程序它正在被删除?

 
Nikolai Semko:

这就是问题所在,一旦不再需要它,我就把它删除。如果OnDeinit不起作用,程序怎么能知道它被删除了?

给我实际的任务。

 
fxsaber:

真正的问题是要告诉我真正的问题。

真正的问题很容易解决,只需避免得到自己的把手,因为你不需要自己的把手。

Total = ChartIndicatorsTotal(0,0);
for (int i=0; i<Total; i++) 
  {
      string name=ChartIndicatorName(0,0,i);
      if (name!=MQLInfoString(MQL_PROGRAM_NAME)) 
         handle[i] = ChartIndicatorGet(0,0,name);
  }

我只是在想:如果我需要自己的手柄怎么办......

有这样的问题,但我不记得了。

 
Nikolai Semko:

只是在想:如果你需要自己的手柄怎么办......

有这样的任务,但我不记得了。

Init_Sync有这样的需求。

 

通过随机化的方法,我定义了一个正常的复制到mql的字符串,一个const wchar_t*类型的字符串。
在memcpy函数中使用这个参数,mql开始接收均匀的字符串,而且没有泄漏。

memcpy( out, data, wcslen(data) * (sizeof(char)*3) );

也就是说,它没有使用2字节的sizeof(wchar_t),而是使用了3字节。
mql字符串开始正确地接受一个指向const wchar_t * string的指针。
可以吗?

但有趣的是,自我描述的字面字符串被正确地用sizeof(wchar_t)传递。
 
Roman:

随机的,我定义了正常的复制到mql的字符串,一个const wchar_t*类型的字符串
在memcpy函数中加入这样的参数,mql开始接收均匀的字符串,而且没有泄露。

也就是说,它没有使用2字节的sizeof(wchar_t),而是使用了3字节。
mql字符串开始正确地取一个指向const wchar_t*字符串的指针
,这是否正常?

但有趣的是,自写的字面字符串被正确地用sizeof(wchar_t)传递。

为什么使用memcpy 而不是普通的wcscpy?

 
Ilyas:

为什么使用memcpy而不是普通的wcscpy?

Renate的 例子文章 中所示,使用了memcpy。
使用其他复制功能也会导致同样的问题。
在这篇文章 中描述了使用这些函数的行为,在这篇文章 中还描述了
所有可能的复制功能都已尝试。

 
我无法在测试器(metaquot演示对冲服务器)中从任何日期读取100000条M15欧元兑美元的数据。


void OnInit()
  {
    datetime first_date;
   SeriesInfoInteger(_Symbol,_Period,SERIES_FIRSTDATE,first_date);
   int bars=Bars(_Symbol,_Period);
   Print("First date ",first_date," - ",bars," bars");
   
   datetime time[];
   CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);
   Print("rows=",100000," =? ",ArraySize(time));
   Print("Load data from ",D'2015.01.01'," =? ",time[0]," to ",time[ArraySize(time)-1],", rows=",100000," =? ",ArraySize(time));
//---

  }
 
void OnTick(){


}

读数约为37,000条。当在终端运行时,它读取了所有100000条。


试着从服务器上添加分页代码,https://www.mql5.com/ru/docs/series/timeseries_access#synchronized

但没有任何变化。

如何在测试器中读取这100000条?

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

你如何计算这100,000条?

首先阅读文章https://www.mql5.com/ru/articles/239

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...