MQL5中的初学者问题。专业人士不会路过。 - 页 7

 
Artyom Trishkin:

DRAW_NONE == 0

DRAW_LINE == 1

所以你在某个地方有别的东西。它应该对你也有用。

我还不能告诉你它是什么,但它并不总是有效。
 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 
Artyom Trishkin:

不,你不必如此。一切都在极限>1时进行一次,这是第一次运行和历史加载。如果你有平滑期_sm=10,那么在这种情况下,限制应该减少10。相应地也是如此。

if(limit>1)
  {
   limit=rates_total-period_sm-1;
   ArrayInitialize(Buffer,InitValue);
  }

InitValue - 初始化缓冲区的值 - 0或EMPTY_VALUE - 根据情况。或-100500 ...

正如你在你的例子中所建议的那样--这不是正确的方法--或者,如果你不理解你,请给出一个详细的解释。

决定你所说的 "这是第一次运行和加载历史" -- 是由prev_calculated完成的

限制(不清楚在你的情况下限制是什么)--如果是条数,从它开始重新计算--那么这里的限制可能超过1,例如,5分钟没有连接--在M1的连接出现时限制=5,没有必要从头开始重新计算指标。

你可以在标准终端的例子中看到如何使用一切。

来自 "熊市 "指标的例子。

MQL4(从头到尾的小节编号)。

   int limit=rates_total-prev_calculated;
//---
   if(rates_total<=InpBearsPeriod)
      return(0);
//---
   if(prev_calculated>0)
      limit++;
   for(int i=0; i<limit; i++)

MQL5(小节的编号从结束到开始)。

   if(prev_calculated<InpBearsPeriod)
      limit=InpBearsPeriod;
   else limit=prev_calculated-1;
//--- the main loop of calculations
   for(i=limit;i<rates_total && !IsStopped();i++)
 

大家好。我曾经在MT-5上有一个模拟账户。在我重新安装Windows后,我丢失了登录MT-5的密码。现在我在网络终端注册了它

我的模拟账户MT-5。都好了。我把新的登录名和密码放到常规的MT-5主终端上。所有的工作,只有在打开新的订单F9。

在一个新的订单窗口中 - 买和卖的按钮没有激活。我不能下订单。拜托,我应该怎么做?

我很抱歉,我必须问。

我没有订单,谢谢你。

 
Shara1:

大家好。我曾经在MT-5上有一个模拟账户。在我重新安装Windows后,我丢失了登录MT-5的密码。现在我在网络终端注册了它

我的模拟账户MT-5。都好了。我把新的登录名和密码放到常规的MT-5主终端上。所有的工作,只有在打开新的订单F9。

在一个新的订单窗口中 - 买和卖的按钮没有激活。我不能下订单。拜托,我应该怎么做?

我很抱歉,我必须问。

谢谢你。

我已经理解了这个问题。我在新的订单窗口F9中是0.00,成交量是0.00。我放了0.01,它就成功了。

 

你好,请指示,在一些专家顾问中存在这些字符串。

  double highest=DBL_MIN,lowest=DBL_MAX;

问题--与这些常数DBL_MIN、DBL_MAX等值的变量是什么?

 
refounder83:

你好,请指示,在一些专家顾问中存在这些字符串。

我的问题是--等同于这些常数DBL_MIN 和DBL_MAX的变量是什么?

要把它们与真实的数据进行比较,这些数据明显小于DBL_MAX,明显大于DBL_MIN。

比如说。

double x=DBL_MIN;
int total=ArraySize(array);
for(int i=0; i<total; i++)
  {
   double y=array[i];  
   if(y>x) x=y;
  }
Print("x=",DoubleToString(x,Digits()));
 
谢谢你,我明白了)。
 

这个程序是为了将服务器时间 转换为秒吗?

datetime time=TimeTradeServer()+60*60*24;
   
  
 
refounder83:

这个程序是为了将服务器时间转换为秒吗?

这是 "服务器时间 "加上一天(60秒*60分钟*24小时)。

你可以使用PeriodSeconds()

Print("PeriodSeconds(PERIOD_D1)=",PeriodSeconds(PERIOD_D1),", PeriodSeconds(PERIOD_H1)*24=",PeriodSeconds(PERIOD_H1)*24,", 60*60*24=",60*60*24);