新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 948

 

在我的记忆中,其中一次终端升级增加了将报价自动加载到用户工具 中的可能性。

仿佛它们来自于一个经纪人。

怎么了,请把手册发给我。

谢谢

 
barashka:

在我的记忆中,其中一次终端升级增加了将报价自动加载到用户工具中的可能性。

仿佛它们来自于一个经纪人。

怎么了,请把手册发给我。

谢谢你

如果你能好心地使用搜索引擎。

我有疑虑...(с)

 
Artyom Trishkin:

这是否适用于MT4?

 
Evgeny Potapov:

这是否适用于MT4?

究竟什么是 "它"?

 
Artyom Trishkin:

究竟什么是 "它"?

我正在寻找MQL4中滚动条 组织的一些类或例子,而不是MQL5中的。

 
Evgeny Potapov:

我正在寻找MQL4中滚动条组织的一些类或例子,而不是MQL5中的。

在90%的情况下,MQL4和MQL5之间的代码是兼容的,主要区别在于交易操作和策略测试器的工作。

图形部分99%的兼容--在标准库中 有一个小的差异,也可能开发者已经修复了它。

 
Igor Makanu:

在90%的情况下,MQL4和MQL5之间的代码是兼容的,主要区别在于交易操作和与策略测试器的工作。

图形部分99%兼容--在标准库中 有一个小差异,也许开发者已经修复了。

我得到了一个错误。

testscrollbar EURUSD,M1: indicator on custom buffer is not supported yet
我希望看到一个工作代码(在MT4中)并处理它。
 
Evgeny Potapov:

我得到了一个错误。

我希望看到一个工作代码(在MT4中),并处理它。

搜索论坛 - 我不会搜索

这里有一些类似的东西,不久前帮助整理了https://www.mql5.com/ru/forum/320293/page3#comment_12887682

 
Igor Makanu:

搜索论坛 - 我不会搜索

这里有一些类似的东西,不久前帮助整理了https://www.mql5.com/ru/forum/320293/page3#comment_12887682

谢谢你!它是有效的!这很好!

而且滑块移位事件处理功能也出现了!

你能建议如何垂直地扩展滚动条吗?

 

为什么有时空缓冲区的元素显示不正确?

代码。

int Limit = rates_total - prev_calculated; 
       if (prev_calculated > 0)
         Limit++;
       if(prev_calculated==0) Limit--;
         
         for(int i=Limit; i>-1; i--){
         
            if (startTime!=isTime(i)){
                  startTime=isTime(i);
                  startPriceCur=Open[iBarShift(NULL, NULL,startTime,false)];
                 
                             Comment("time: ", isTime(i));
            }
            
            if(Close[i]>startPriceCur)
            CurrentCurrencyBuffer[i]=100-(100*startPriceCur/Close[i]);
            if(Close[i]<startPriceCur)
            CurrentCurrencyBuffer[i]=(Close[i]*100/startPriceCur)-100;
            if(Close[i]==startPriceCur)
            CurrentCurrencyBuffer[i]=0;
            
         }

我添加了一个限制器,根据这个限制器,当一个新条形图出现时,算法只计算一次。用这种方法可以正确显示。

if(controller<Bars){
 
       int Limit = rates_total - prev_calculated; 
       if (prev_calculated > 0)
         Limit++;
       if(prev_calculated==0) Limit--;
        
         for(int i=Limit; i>-1; i--){
         
            if (startTime!=isTime(i)){
                  startTime=isTime(i);
                  startPriceCur=Open[iBarShift(NULL, NULL,startTime,false)];
                 
                             Comment("time: ", isTime(i));
            }
            
            if(Close[i]>startPriceCur)
            CurrentCurrencyBuffer[i]=100-(100*startPriceCur/Close[i]);
            if(Close[i]<startPriceCur)
            CurrentCurrencyBuffer[i]=(Close[i]*100/startPriceCur)-100;
            if(Close[i]==startPriceCur)
            CurrentCurrencyBuffer[i]=0;
            
         }
        controller=Bars;
}


但这种算法只在开盘时计算零点栏。我希望它能一直被计算在内(而且是正确的)。如何才能解决这个问题?

原因: