类似于iBarShift - 页 13

 
Nikolai Semko:

显示iBars功能与内置Bars和iBarShift功能相比性能的指标,来自@Alain Verleyen
功能执行时间,以微秒为单位。


这不是该去的地方--去kodobase。iBars()和iBarShift()都是如此。

 
Nikolai Semko:

iBars功能,虽然相当麻烦,但我仍然建议使用它,而不是普通的Bars,直到MQ修复了其中的挂起错误。

你仍然可以通过以下方式来加快它的速度。

start_time -= start_time % PeriodSeconds(timeframe);
TimeCur -= TimeCur % PeriodSeconds(timeframe);

iBar在逻辑上应该返回0的时候却挂了。作为一项规则,它的返回时间超过10秒。这个错误在MQL4中不存在。

这一呼吁

SeriesInfoInteger(symbol_name,timeframe,SERIES_LASTBAR_DATE)

它的工作原理是不正确的--在不应该存在的情况下,它导致了历史的加载。因此出现了滞后(见hcc文件的外观)。

 
Nikolai Semko:

一个显示iBars功能与内置Bars和iBarShift功能相比性能的指标,来自@Alain Verleyen
功能执行时间,以微秒为单位。

同样,应该在需要的地方测量性能--优化器。

 
Artyom Trishkin:

不是在这里--在kodobase。iBars()和iBarShift()都是如此。

是的,我打算这样做。让我们暂时测试一下。

 
fxsaber:

你也可以通过以下方式来加快它的速度

Start_time 从一开始就已经在那里实现了,但是通过TimeCur,你可以把它的速度提高一些。会做的。谢谢。

顺便说一下,它只适合从M1到D1。W1必须移动三天,因为1970年1月1日是星期四。而对于MN1,你必须用钻石来玩,因为月份是28、29、30、31天。

这一呼吁

这个调用不能正确工作--它导致历史记录在不应该的时候被换掉。因此出现了滞后(你可以看到hcc文件的出现)。

很奇怪,没有见过这种行为。

fxsaber:

同样,应该在需要的地方测量性能--优化器。

你说的优化器是什么意思?

 
Nikolai Semko:

有了start_time,从一开始就已经实现了

实施时出现了错误。例如,M1 starttime == D'12:00:05'。停止时间也需要做。

你说的优化器是什么意思?

测试仪中的优化模式

 
fxsaber:

实施时出现了错误。例如,M1 starttime == D'12:00:05'。停止时间也需要做。

解释一下这个错误是什么?还有,为什么只有时间,日期在哪里?

Bars和iBars 对这种格式给出了0。

 
Nikolai Semko:

解释一下这个错误是什么?还有,为什么只写时间,日期在哪里?

我太懒了,没有写日期。

t=start_time-(start_time-1)%PerSec;

在这一行中,用一分钟中的非零秒数代替start_time。

 
fxsaber:

我太懒了,没有写日期。

在这一行中,用一分钟中的非零秒数代替start_time。

这一切都很好。这不是一个错误。应该是这样。

试着像这样运行代码。

   Print(Bars(_Symbol,PERIOD_M1,D'2018.04.04 18:00:00',UINT_MAX));
   Print(Bars(_Symbol,PERIOD_M1,D'2018.04.04 18:00:01',UINT_MAX)); //результат на единицу меньше
 
Nikolai Semko:

这一切都很好。这不是一个错误。应该是这样。

尝试运行这样的代码。

那么我就不明白为什么巴斯认为18:00:01属于M1-bar 18:01而不是18:00。


顺便说一下,TimeCurrent 应该用SYMBOL_TIME代替。