...
voidOnTick()
{
//---
count++;
//Comment(count);if(count==9 || count==19)
{
ResetLastError();
if(position==CHART_BEGIN)
{
if(ChartNavigate(ChartID(),CHART_BEGIN,100))
Print("Успешно. redraw ",redraw,". position ",EnumToString(position));
elsePrint("Ошибка №",GetLastError(),". redraw ",redraw,". position ",EnumToString(position));
}
if(position==CHART_END)
{
if(ChartNavigate(ChartID(),CHART_END,-100))
Print("Успешно. redraw ",redraw,". position ",EnumToString(position));
elsePrint("Ошибка №",GetLastError(),". redraw ",redraw,". position ",EnumToString(position));
}
if(redraw)
ChartRedraw();
}
//--- получим номер самого первого видимого на графике бара (нумерация как в таймсерии) long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
//--- добавим символ переноса строки string comm="\r\n";
//--- дополним коментарий
comm=comm+"Первый бар на графике имеет номер "+IntegerToString(first_bar)+"\r\n";
//--- выведем комментарий Comment(comm);
}
//+------------------------------------------------------------------+
如果没有虱子,周末怎么办?然后必须连接一个定时器。
而要解决的问题只有一个:如何确定ChartNavigate是否已经成功执行?事实上,它返回的是真,这只是 "为滴答",对实际工作没有帮助。
我需要检查我在上面发布的专家顾问的代码...
我需要检查我上面在EA中发布的代码...
EA与此有什么关系?
这与议员有什么关系呢?
我们应该检查...
Vladimir Karputov:
这就是指标--我特别设置了9个点的延迟,两种类型的图表运动 和一个强制重绘标志(开/关)。
你不是一个初学者。你为什么要误导呢?你为什么无视Renat Fatkhullin所说的话?
在你的代码中(如这里,所以在这里),它通过在每一个tick上创建注释来强制重绘图表。
也就是说,无论输入参数中的标志是启用还是禁用。
而在这种情况下,在输入参数中加入你的标志,只会导致通过ChartRedraw() 进行额外的重绘。
也就是说,它不是有用的,而是通过创造评论给已经存在的人带来了额外的负担。
P./S.。
关于交易、自动交易系统和交易策略测试的论坛
错误、漏洞、问题
Renat Fatkhullin, 2017.12.05 02:51
...
在MT5中,评论功能明确地导致图表被重新绘制...
区别就在于此。
如果在MT4中调用Comment后,你强行把ChartRedraw(),行为还是和MT5中不一样。Metatrader 4中的ChartRedraw()忽略了注释值,自己决定是否从最后一帧开始更新图表。当然,在没有每秒数百个报价会导致图表数据失效的情况下,ChartRedraw决定 "为什么要画一个没有变化的图表",并跳过绘制框架。
Metatrader 5也有同样的系统,但有更多的情况下,无条件的渲染会优先考虑。
终端是图形化的应用,可以提供每秒数百帧的画面,并为了性能而在精益显示模式下运行。
因此,在运行基准时有额外的结论。
建议不要混合使用读/写命令,并分别进行大量读和大量写。
事实上,一些测试最终可能会测试显卡,而不是算法或功能。在笔记本电脑和台式电脑上的测试可能会显示多次不同的结果,仅仅是因为显卡慢了3-5倍。
这些错误每个人都会犯。
关于交易、自动交易系统和交易策略测试的论坛
初始化过程中的ChartNavigate
Vladimir Karputov, 2018.06.25 18:52
得检查一下...
P./S.: 除了你的第二个代码:在通过同一评论更新文本输入和发布之前,请检查数据是否已经改变。如果没有,最好推迟文本更新和出版。
也就是说,在这种情况下,它是指图表上第一根柱子的数量是否发生了变化。
我必须检查...
嗯。我不太清楚那是怎么回事。好吧,那么。我已经安装好了。在CHART_BEGIN 和CHART_END模式下检查了它。 它的工作情况与宣传的一样。重新启动后,就可以了。
或者你已经到了需要使用拐杖的地步--在ChartNavigate之后检查图表上第一个条形图的编号,如果不是正确的,再运行ChartNavigate。
是的,出路,当然,我也想过这个问题。但是,不断地记住这样的终端设备是令人厌烦的。毕竟,这很有可能是一个错误。
P./S.: 除了你的第二个代码外:在更新一个文本条目并通过同一评论发表之前,请检查数据是否已经改变。如果没有,最好推迟文本更新和出版。
也就是说,在这种情况下,它是指图表上第一个条形的数字是否发生了变化
当然,感谢你提供的信息,但我们在这里谈论的不是性能。我们讨论的问题是在一个稍微不同的平面上,这只是测试代码,以检查问题是否已经表现出来 ))
当然,谢谢你提供的信息,但我们在这里谈论的不是性能。我们讨论的问题是在一个稍微不同的平面上,这只是测试代码,以检查问题是否出现 ))
不客气。但也请看我的 另一篇文章,你引用的那篇是后记。
P./S.: 请不要贬值。我不会在我的车上运行这样的代码,因为我知道它所带来的后果。我的设备不是政府发放的
嗯。我不太清楚那是怎么回事。好吧,那么。安装好了。在CHART_BEGIN 和CHART_END模式下进行了检查。 一切都像宣传的那样工作。重新启动后,就可以了。
或者你已经到了需要使用拐杖的地步--在ChartNavigate之后检查图表上第一个条形图的编号,如果不是正确的,再运行ChartNavigate。
是的,出路,当然,我也想过这个问题。但是,不断地记住这样的终端设备是令人厌烦的。毕竟,这很有可能是一个错误。
我曾经有一个工作导航。现在我得故意检查一下。
补充:不要注意评论 :)
我的导航曾经工作过。现在我得故意检查一下。
新增: 忽略评论 :)
为什么?我写了/报告了胡言乱语吗?