初学者的问题 MQL5 MT5 MetaTrader 5 - 页 850

 
Artyom Trishkin:
纠正曲线指示器。它可能只在完全重新计算时画线,这是由上下文菜单命令完成的。
阿列克谢-维克多罗夫

mql4中也有一个。

谢谢你。

 
用拐杖把它弄出来了)。我想让指标在手动拖动垂直线 后更新,从中获取时间。我使用了拖动对象的事件功能,并在其中加入了改变TF并返回初始值的功能。但由于某些原因,更新被推迟了,大约几秒钟。TF切换的功能工作得很慢,我不明白。
 
khorosh:
用拐杖解决了)。我需要在手动拖动一条垂直线 后更新指标,从中获取时间。我使用了拖动物体的功能,并在其中加入了改变TF的功能,并返回到初始状态。但由于某些原因,更新被推迟了,大约几秒钟。TF切换的功能太慢了,我不明白。

这个函数是异步的。它只返回事件队列中的命令的结果。

为了立即更新,你需要在图表切换命令之后执行ChartRedraw()命令

当然,这是一个错误的方法。如果你想在线的移动完成后才更新图表,指标重新计算的循环不应该从OnCalculate()调用,而应该从ChartEvent()调用--线的移动被捕获--指标重新计算的函数被调用,这将用新的数据运行整个线的重新计算周期(线是需要一些数据的,不是吗?)

还是指标根本没有做对,没有在当前数据上更新零点栏,而你踢了它?

 
ilyav:

谁能帮助修复MT5上的EA代码?

我读过手册,但在编译时,我无法战胜2个清漆。

xxxx "的声明隐藏了全局声明

и

由于类型转换可能造成的数据损失

见所附提示。

我只是愚蠢地修正了全局变量的名称,并使其类型相符。

这就是你可以收取的10,000,000的费用--因为克服了你的懒惰。

附加的文件:
 
Artyom Trishkin:

只是直截了当地纠正了全局变量的名称,并使其类型符合要求。

为了克服你的懒惰,你欠我一万块钱。

非常感谢你。

我很羞于展示我是如何修复它的)

int CountTrades(long PositionID1)

 
Artyom Trishkin:

这个函数是异步的。它只返回事件队列中的命令的结果。

为了立即更新,你需要在图表切换命令之后执行ChartRedraw()命令

当然,这是一个错误的方法。如果你需要在线的移动完成后才更新图表,指标重新计算的循环不应该从OnCalculate()中调用,而应该从ChartEvent()中调用--线的移动被捕获--指标重新计算的函数被调用,它将用新的数据执行整个线的重新计算周期(线是需要一些数据的,不是吗?)

或者是指标根本就做错了,它没有在当前的数据上更新零条,而你把它搞砸了?

该指标计算最后一个未计算的柱子。而在拖动垂直方向后,它应该在读取新的垂直时间后完全重新计算。我在这里 写过它,并添加了它如何工作的截图。

谢谢,我将尝试实现你的想法。我一般不擅长使用指标,我主要是和专家顾问打交道。

 
Artyom Trishkin:

这个函数是异步的。它只返回事件队列中的命令的结果。

为了立即更新,你需要在图表切换命令之后执行ChartRedraw()命令

当然,这是一个错误的方法。如果你想在线的移动完成后才更新图表,指标重新计算的循环不应该从OnCalculate()调用,而是从ChartEvent()-线的移动-调用指标重新计算函数,它将用新的数据运行整个线的重新计算循环(线是需要一些数据的,对吗)。

或者是指标做得不对,没有在当前数据上更新零点栏,你就踢了它?

按照你的建议做了。一切工作都很完美。现在,在拖动之后,指标瞬间被完全重绘。再次感谢。

 
khorosh:

我按照你的建议做了。一切工作都很完美。现在,在拖动之后,指标立即被完全重绘。再次感谢。

不客气。但它应该在OnCalculate()中绘制,还是不行?

当它在图表上被拖动时,指标不知道线的任何变化,但它应该画线。

 
Artyom Trishkin:

不客气。但它应该在OnCalculate()中绘制,还是不应该?

当你把它应用于图表时,它不知道线的任何运动,但它应该画线。

当指标被附加到图表上时,在init()中创建了一条垂直线,并为其初始设置了一些时间,例如Time[10]。我重复了OnChartEvent() 和OnCalculate()中的代码。只有在OnChartEvent中,我才会按所有条形重新计算。

 
khorosh:

当在init()中把指标安装在图表上时,会创建一条垂直线,最初它被设置为某个时间,例如Time[10]。我重复了OnChartEvent()和OnCalculate()中的代码。只有在OnChartEvent中,我才会按所有的条形图进行重新计算。

例如,简单地创建Refresh()函数,加上所需的正式参数,并在必要时调用它,不是更好吗?

顺便说一下,当使用Bars()在日期范围内获取OnCalculate()之外的指标中的rate_total时,你可以抓住指标的一个挂起。

关于交易、自动交易系统和交易策略测试的论坛

iBarShift的模拟

Nikolai Semko, 2018.04.05 23:47

到目前为止,这个变体,但我现在想添加它,以绕过Bars 函数挂起的这个bug,关于这个问题我已经写信给servicedesk。

这个错误的本质是,如果在Bars函数中,start_timestop_time 都在一个柱状体内或在未来(零柱的右边),那么这个函数会挂起超过10秒。

也许我以后会做一个适当的更快但更麻烦的版本。