新的MetaTrader 4客户终端构建 402

 

MetaTrader 4客户终端构建402

  1. 终端:修正了上传历史记录到历史中心(F2键)时的时区校正。
  2. 终端:固定显示5位数的字符在刻度1-1上的图形。
  3. 修正了论坛和kreshlogs上的信息。
实时更新 将通过LiveUpdate系统提供。
 

问题二。

这里有一个功能。

void MonitorTick()
{   
   string s;
   
   datetime dt=TimeCurrent();
   int y1=TimeYear(dt);
   int m1=TimeMonth(dt);
   int d1=TimeDay(dt);
   string fn=y1+"_"+m1+"_"+d1+"_Monitor_Tick_"+Symbol()+".mon";
         
   {
      handleM=FileOpen(fn,FILE_BIN|FILE_WRITE|FILE_READ);
      if (handleM<0) 
      {
         handleM=FileOpen(fn,FILE_BIN|FILE_WRITE);
      }
      else
      {
         s="Time;;Shift "+Symbol()+"\n";
         FileWriteString(handleM,s,StringLen(s));
      }
   }

   s=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+";;";
   
   s=s+DoubleToStr((Bid-iOpen(NULL,PERIOD_D1,0))/Point,0)+"\n";
   
   {      
      FileSeek(handleM,0,SEEK_END);
      FileWriteString(handleM,s,StringLen(s));
   
      FileClose(handleM);
   }
      
}

换句话说--在每一个刻度,它把当前价格和当天开盘价 之间的差异写进一个文件。

有一次,它开始向文件写入垃圾。下面的内容。

2011.05.12 15:40:50;;2
2011.05.12 15:40:50;;1
2011.05.12 15:40:51;;0
2011.05.12 15:40:51;;1
2011.05.12 15:40:52;;2
2011.05.12 15:40:53;;2
2011.05.12 15:40:55;;3
2011.05.12 15:53:54;;15692
2011.05.12 15:53:54;;15688
2011.05.12 15:54:05;;15692
2011.05.12 15:54:28;;15696
2011.05.12 15:54:42;;15694
2011.05.12 15:54:56;;15698
2011.05.12 15:55:40;;15697
2011.05.12 15:56:40;;15698
2011.05.12 15:56:47;;15696
2011.05.12 15:57:17;;15696
2011.05.12 15:57:34;;15699 

如何解释????

专家对这个函数不做任何其他事情,代码只有三行。站在10个工具上,周期性地有5-7个工具输出这个结果。只有重设终端才有帮助。顺便说一下,指标(多币种)也开始显示胡言乱语。

 
dimonsky:

问题二。

如何解释????


当你使用像这样的结构时。

Bid-iOpen(NULL,PERIOD_D1,0))

是要确保D1历史上有一条杠,并且与预期的情况相对应。

也就是说,如果你使用的是当前日线的开盘价,你需要确保你使用的是 确切地说,是当前的日线.

P.S.

我怀疑在你的多币种代码中也是如此。

 

那么,你能看到屏幕上的数据是不够的?

我在屏幕上有几个月的历史记录。 另外,请解释一下,当历史记录 "突然 "消失时,以及在重启后立即出现,当终端被打开的一瞬间 "突然 "出现,并且没有任何闪失地进一步写入,一秒钟前的刻度与当前的刻度有什么不同。

即使在零点,当所有货币对都有历史记录时,它们也会在其他窗口中被特别打开,以获得100%的历史记录。

 
PapaYozh:


也就是说,如果你使用的是当日条形图的开盘价,你需要确保你使用的是开盘价 正是当前的日线.

奇怪的情况。图表是开放的,这自然会显示当前日期。一秒钟前,开盘价还在那里,然后消失了?在网络断开,没有互联网接入 的情况下,重启突然帮助终端找到历史记录?

什么日子才能有15000点的差异....?

 
dimonsky:
奇怪的情况。有一个开放的图表,自然会显示当前日期。一秒钟前,有一个开盘价,然后它就消失了?


我不是一个终端开发者,我只能猜测打开的窗口中的条形图和可用的历史记录之间的联系。

我已经给你写了如何正确编程以避免歧义。

 
PapaYozh:


我不是一个终端开发者,我只能猜测打开的窗口中的条形图和程序化的可用历史之间的联系。

我已经给你写了如何正确编程以避免歧义。


在访问当日的开盘价 时,会有什么模糊不清的地方? 我还需要什么检查?

对于GBPCAD货币对来说,15000点意味着所有的历史都按天数消失了,包括今天的。而且是突然消失,因为就在刚才。

 
对于GBPCAD 15000点意味着买入价=0,因为你没有用RefreachRates()刷新报价,或者没有使用MarketInfo(Symbol(),MODE_BID)
 
xrust:
对于GBPCAD 15000点意味着买入价=0,因为你没有用RefreachRates()刷新报价,或者你没有使用MarketInfo(Symbol(),MODE_BID)


不,因为在这种情况下,获得的数值将是负数(见公式)。

问题是,投标是存在的,但没有历史记录。我正在弄清楚为什么程序代码不能使用它的原因,尽管之前有一秒钟的历史记录存在。

 

- 而我,截至今天,(2011年5月13日),还没有任何更新。是我的DC忽略了新的建设吗?

无论如何,没有更新警告或定期重启。

 
brici:

- 而我,截至今天,(2011年5月13日),还没有任何更新。是我的DC忽略了新的建设吗?

无论如何,没有更新警告或定期重启。

更新应该在明天进行。这是一份初步公告。
原因: