错误、漏洞、问题 - 页 1028

 
tol64:

那么a)为什么它对物体有效b)如果你更换它,它就开始崩溃了

'0x00000008' - can't convert enum

不是所有的,21行中只有18行...

我试着把它们全部重写,还是不清楚。这似乎是一种类型。

 
Silent:

那么a)为什么它对物体有效b)如果你更换它,它就开始崩溃了

不是所有的,21行中只有18行...

我试着把它们全部重写,还是不清楚。这似乎是一种类型。

ENUM_TIMEFRAMES current_period_tf=PERIOD_CURRENT;
   string n="";
   if(_Period==PERIOD_M1)  {current_period_tf=PERIOD_M1;};
   if(_Period==PERIOD_M2)  {current_period_tf=PERIOD_M2;};
   if(_Period==PERIOD_M3)  {current_period_tf=PERIOD_M3;};
   if(_Period==PERIOD_M4)  {current_period_tf=PERIOD_M4;};
   if(_Period==PERIOD_M5)  {current_period_tf=PERIOD_M5;};
   if(_Period==PERIOD_M6)  {current_period_tf=PERIOD_M6;};
   if(_Period==PERIOD_M10) {current_period_tf=PERIOD_M10;};
   if(_Period==PERIOD_M12) {current_period_tf=PERIOD_M12;};
   if(_Period==PERIOD_M15) {current_period_tf=PERIOD_M15;};
   if(_Period==PERIOD_M20) {current_period_tf=PERIOD_M20;};
   if(_Period==PERIOD_M30) {current_period_tf=PERIOD_M30;};
   if(_Period==PERIOD_H1)  {current_period_tf=PERIOD_H1;};
   if(_Period==PERIOD_H2)  {current_period_tf=PERIOD_H2;};
   if(_Period==PERIOD_H3)  {current_period_tf=PERIOD_H3;};
   if(_Period==PERIOD_H4)  {current_period_tf=PERIOD_H4;};
   if(_Period==PERIOD_H6)  {current_period_tf=PERIOD_H6;};
   if(_Period==PERIOD_H8)  {current_period_tf=PERIOD_H8;};
   if(_Period==PERIOD_H12) {current_period_tf=PERIOD_H12;};
   if(_Period==PERIOD_D1)  {current_period_tf=PERIOD_D1;};
   if(_Period==PERIOD_W1)  {current_period_tf=PERIOD_D1;};
   if(_Period==PERIOD_MN1) {current_period_tf=PERIOD_MN1;};
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
 
tol64:
是的,我做到了,谢谢你,它在滴答作响)。
 
Silent:
是的,我做到了,谢谢你,它在滴答作响)。

现在像这样试试。

   string n="";
   ENUM_TIMEFRAMES current_period_tf=_Period;
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

 
MetaDriver:

现在像这样试试。

试了一下,我无法从M1自动返回。如果我按上述方式列举

if(_Period==PERIOD_M1)  {current_period_tf=PERIOD_M1;};

我可以每隔一段时间就返回,但如果我一下子指定_Period,我就会掉到M1并停留在那里。

即使我移动到指标的末尾,更新也不保存。

     if(_Period==PERIOD_M1) {ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);};

我不知道它为什么会堵塞,我正在努力弄清楚。

 

这是个拐杖,而不是同步化(在没有ticks时的输出上)。这个想法就像一辆坦克--出现了错误--切换到M1并返回。

   if(_LastError!=0)
     {
      ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
      ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
     };
   if(_LastError==0)
     {
      ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
     };
// и контрольный
   if(_Period==PERIOD_M1) {ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);};
只有从M1开始,它非常不总是释放。
 
Silent:

试了一下,从M1开始,我不能自动回去。如果我按上述方式列举

我可以每隔一段时间就回去,但如果我一下子指定_Period,我就会掉到M1,并停留在那里。

你的情况因一个小滑坡而得到治愈。

   string n="";
   ENUM_TIMEFRAMES current_period_tf=_Period;
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   Sleep(150);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

我的更糟糕。(顺便说一下,你的箱子以前不用Slip就能用,几周前停止工作了)。

同样的方案在其他(非当前)图表上停止工作,没有令人毛骨悚然的滑动

void cChartReInit::Run() // Scanning all charts and reinit if button is pushed
  {
   for(long i=ChartNext(0);i>0;i=ChartNext(i))
    {
     if(!ChartGetInteger(i,CHART_WINDOW_IS_VISIBLE)) continue;
     long wc = ChartGetInteger(i,CHART_WINDOWS_TOTAL);
     long wi = ObjectFind(i, pButtonName);
     if(--wc!=wi) { CreateReinitButton(i); ChartRedraw(i); continue;}
     if(ObjectGetInteger(i,pButtonName,OBJPROP_STATE))
       {
        ObjectSetInteger(i,pButtonName,OBJPROP_STATE,false);
        ENUM_TIMEFRAMES cp = ChartPeriod(i);
        Sleep(1350);  // раньше это было не нужно
        ChartSetSymbolPeriod(i, ChartSymbol(i), ((cp==PERIOD_M1) ? PERIOD_M5 : PERIOD_M1));
        Sleep(1350);  // раньше это было не нужно
        ChartSetSymbolPeriod(i, ChartSymbol(i), cp);
       }
     ChartRedraw(i);
    } // for(Charts)
  }
代码来自这里:https://www.mql5.com/ru/code/224
ChartReinit
ChartReinit
  • 投票: 7
  • 2010.11.29
  • Vladimir Gomonov
  • www.mql5.com
Кнопочная переинициализация чарта с перерасчетом всех индикаторов, а также простенький и прозрачный объектно-ориентированный пример обработки всех чартов из одного эксперта.
 
MetaDriver:

你的案件在处理时有一个小的滑动。

我的更糟糕。(顺便说一下,你的没有Slip的箱子曾经工作过,几周前停止了。)

但同样的方案在其他(非当前)图表上停止工作,没有令人毛骨悚然的滑动

代码来自这里:https://www.mql5.com/ru/code/224/10323

滑动在指标中不起作用,是吗?

链接到404页面抛出

 
Silent:

滑动在指标中不起作用,是吗?

这是一个404页面链接。

是的。

尝试某种有成本的循环...

你可以用计时器来做,但我不喜欢这一切。

// 纠正了链接,先是通过 "我的代码",现在是通过kodobaza的普通入口。 // 现在能用了吗? 还是说我需要取消登录才能得到一个公共链接?

 
MetaDriver:

是的。 :(

尝试某种昂贵的循环...

我可以通过计时器来做,但我不喜欢这一切。

我试着用ChartRedraw 附加OnTimer,而不是切换到另一个时间框架--没有反应,它更新了,但错误挂起。

我再看看。

更新有一个怀疑,这一切都与线程有关。在某处,它们并不匹配,一个挂起了错误,另一个则自己跳动。然而,Ras-同步化。而且没有全面重新计算的命令。

我也曾尝试过

#define   RESET 0

   if(_LastError!=0)
     {
     return(RESET);
     };
它似乎根本不起作用。不过是在kodobase里拍的。