MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 98

 
evillive:
这里写的是什么恐怖的东西,我暂时不更新553以上的内容......。

我已经开始在图形对象的输出方面出现问题了。在代码的某一点上,一个函数

//+----------------------------------------------------------------------------+
void SetTLine(color cl, int wnd, string nm="",
              datetime t1=0, double p1=0, datetime t2=0, double p2=0,
              bool ry=False, int st=0, int wd=1) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, wnd, 0,0, 0,0);
   ObjectSet(nm, OBJPROP_TIME1 , t1);
   ObjectSet(nm, OBJPROP_PRICE1, p1);
   ObjectSet(nm, OBJPROP_TIME2 , t2);
   ObjectSet(nm, OBJPROP_PRICE2, p2);
   ObjectSet(nm, OBJPROP_COLOR , cl);
   ObjectSet(nm, OBJPROP_RAY   , ry);
   ObjectSet(nm, OBJPROP_STYLE , st);
   ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+

称呼如下:

//==============================================================================
// --------------------------------- Данные -----------------------------------+
//==============================================================================
   if(DrawGraphics) {                           // если рисуем графические объекты
      wnd=WindowFind("i_StdDev("+sdperiod+")"); // номер окна индикатора
      if(wnd>0) {                               // если индикатор на графике, нарисуем метку
         nm=Prefix+"_Текущий бар";
         p1=WindowPriceMax(wnd); p2=WindowPriceMin(wnd);
         SetTLine(Blue,wnd,nm,Time[0],p1,Time[0],p2,false,2);
         }
      }
//-----------------------------------------------------------------------------+   

在指标窗口中输出一条垂直趋势线,没有任何问题(我在零条上做了标记,以方便调试时对指标点进行视觉感知)。


当我像这样从代码中的另一个地方调用同一个函数时。

   if(op==OP_SELLSTOP) {
      pp=MathMin(Low[x],Low[x-1])-distanceSetOrders*PointX;
      b=iLowest(sy,tf,MODE_LOW,2,(x-1));
      if(pb-level*Point>pp) {
         ll=LotsS;
         if(StopLoss==0) sl=0;
         else sl=NormalizeDouble(MathMax(pp+StopLoss*PointX, pp+(level+1)*Point),dg);
         if(TakeProfit==0) tp=0;
         else tp=NormalizeDouble(MathMin(pp-TakeProfit*PointX, pp-(level+1)*Point),dg);
         co="Отложенный";
         Message("Кто звал? Чё..., ставить? Ставлю SellStop относительно бара "+b+
                 ", от "+DoubleToStr(pp,dg)+" до "+DoubleToStr(Low[b],dg)+" рисую линию");
         SetOrder(sy, OP_SELLSTOP, ll, pp, sl, tp, mn1, co);
         if(DrawGraphics) {
            nm=Prefix+"_Наименьшая цена_"+TimeToStr(Time[b]);
            SetTLine(FireBrick,0,nm,Time[b],Low[b],Time[b],pp,false,3);
            }
         }
      }

它在图表上标记了计算挂单水平的条形图,然后,可能看起来很奇怪,传递给它的参数显示出真实和正确的值;条形图时间被写入趋势线名称,但线本身的值都是零,而且它显示为 "射线",尽管我把 "假 "传递给负责这个选项的函数参数--不是射线。


我没有看到代码中的错误。会不会是个小故障?
 
图形似乎已经完全被扼杀了......。屏幕上没有出现按钮。我什么都没做,只是重新加载了终端,那些在图表上盘旋并正常绘制所有图形对象的EA都死了。等待几天来修复图形对象....hmmm....等待....所以,我想我将不得不承受同样的命运。:)将不得不等待新的建设。
 
你是否用新版本重新编译了程序?
 
artmedia70:

我已经开始在图形对象的输出方面遇到问题了。在代码的某一点上,一个函数

称呼如下:

在指标窗口中输出一条垂直趋势线,没有任何问题(我在零条上做了标记,以方便调试时对指标点进行视觉感知)。


当我像这样从代码中的另一个地方调用同一个函数时。

我可以用它来标记图表中的条形,根据它来计算挂单水平,然而奇怪的是,传递给它的参数显示出真实和正确的数值,条形时间被写入趋势线名称,但线本身的数值全部为零,显示为 "射线",尽管我向负责这个选项的函数参数传递了假的--不是射线。


我没有看到代码中的错误。会不会是个小故障?
在SetTLine函数内增加一个打印所有参数的功能。
 

再说一个关于时间的问题......。市场何时能全面启动?什么时候会有一个全球性的更新?

有人说在11月底会有一个月的测试,但12月已经在如火如荼地进行....。

 

雷纳特。

在不久的将来,是否有计划让新的ME4支持

ENUM_ANCHOR_POINT和ENUM_LINE_STYLE ?

谢谢你。

 
Wahoo:

雷纳特。

是否有计划在不久的将来推出新的ME4支持?

ENUM_ANCHOR_POINT和ENUM_LINE_STYLE ?

是的,他们是。图形模型将与MQL5中的相同。

我们在每次构建时都会增加和改进图形功能。

 

其中一家经纪公司(至少是一家)在发布新的MT4版本时,特别是有重大创新的时候,先在模拟账户上试用,然后再在真实账户上实施。

由于一些测试者无意中半自动 更新了邻近的终端,我们能确定演示和真实的终端,在一台电脑(或VPS)上,在引入这些变化时,能够观察到这些战术吗?或者有一个文件夹,用于管理系统中所有终端的更新,并建议删除它 "以避免",那么就只有两个选择:要么全部删除,要么什么都不做

 

不要在有终端工作副本的计算机上运行测试或更新。

一旦计算机上至少有一个副本收到更新,它们都会自动更新。