初学者的问题 MQL5 MT5 MetaTrader 5 - 页 666

 

下午好。

请告诉我如何修改这个函数以摆脱错误(局部变量的大小过大(超过512kb))。

double DTWDistance(double &s[], double &t[])
{
   int slenght = ArraySize(s);
   int tlenght = ArraySize(t);
   double dtw[1000][1000];
   int i, j;

   dtw[0, 0] = 0.0;
   for (j = 1; j <= tlenght; j++)
   {
      dtw[0, j] = 1000000.0;
   }
  
   for (i = 1; i <= slenght; i++)
   {
      dtw[i, 0] = 1000000.0;
   }

   for (i = 1; i <= slenght; i++)
   {
      for (j = 1; j <= tlenght; j++)
      {
         dtw[i, j] = Distance(s[i], t[j]) + MathMin(dtw[i - 1, j], MathMin(dtw[i, j - 1], dtw[i - 1, j - 1]));
      }
   }

   return (dtw[slenght, tlenght]);
}
 
Craft:

下午好。

请告诉我如何修改这个函数以摆脱错误(局部变量的大小过大(超过512kb))。

double DTWDistance(double &s[], double &t[])
{
....
   return (dtw[slenght, tlenght]);
}
为了重做它,你需要知道你的函数解决了什么问题,以及它被用于什么任务
 
Vitaly Muzichenko:
为了重做,你需要知道你的函数解决了什么问题,以及它被用于什么任务。
日安,维塔利。

我开始从一些MT4的构建中得到不同代码的编译错误信息(局部变量的大小过大(超过512kb))。 我试图找到错误信息,并附上简单的代码片段,例如WmiFor30指标。你能用这个例子来告诉我如何解决这个错误吗?

附加的文件:
WmiFor30.mq4  25 kb
 
Craft:
日安,维塔利。

从MT4的某个版本开始,我开始在编译不同的代码时收到一个错误(局部变量的大小过大(超过512kb)),我试图了解如何处理它,例如我粘贴了我认为是WmiFor30指标的一个简单代码片段。你能用这个例子来告诉我如何解决这个错误吗?

我不知道它的原理是什么,试试吧,你会看到修复的。
附加的文件:
WmiFor30.mq4  25 kb
 
Vitaly Muzichenko:
我不知道里面有什么,试试就知道了。
谢谢,这很有趣。
 

图形问题。

有一种设计是这样的

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

我如何发现该图不是主图,而是以测试者模式打开的,并跳过它?

 
你好!
今天是星期天:
TimeCurrent()=1478300399,对应2016.11.04 22:59 - 星期五
DayOfWeek()=5,这很自然))

问题:请告诉我如何在init()中以编程方式确定;现在,当EA被连接到图表时,休息日是星期天?
不参考TimeLocal()。
 
Leo59:
你好!
今天是星期天。
TimeCurrent()=1478300399,对应的是2016.11.04 22:59 - 星期五
DayOfWeek()=5,这是很自然的))

问题:请告诉我如何在init()中以编程方式确定现在,在将EA连接到图表的时刻,休息日是星期天?
不参考TimeLocal()。
会有帮助 吗?
 
Vitaly Muzichenko:
会有帮助 吗?
谢谢你的提示。但是,:

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)在以下情况下会返回错误。

  • 没有连接到贸易服务器。可以用TerminalInfoInteger(TERMINAL_CONNECTED)检查)。
  • 交易账户已转为只读模式(发送至存档)。
  • 账户 的交易已被禁止在贸易服务器端进行。
  • 与交易账户的连接是在投资者模式下进行的。

这里如果只是:在交易服务器端禁止交易

,就不太合适了))


虽然,原则上,可以尝试 使用boolIsTradeAllowed();

非常感谢Vitaly!!!!

 
不幸的是,它没有工作。

init();
if(IsTradeAllowed())Print("允许交易");
if(!IsTradeAllowed())Print("Trade is NOT allowed")。


上面写着:"交易授权 "

,一定有其他办法。我怎么做呢?