через таймер c опросом всех символов. (можно, конечно, только опрашивать новое значение функции TimeCurrent(), но в этом случае погрешность будет равна 1 секунде, т.к. эта функция возвращает значение в секундах)
Я правильно понимаю, что других вариантов (более простых и изящных) не существует? Или (надеюсь) я не прав?
稳定的播放?什么建筑?
问题。
假设我在一个专家顾问或指标中处理几个符号,或者说处理市场观察窗口中显示的所有符号。
任务是抓住任何一个符号上出现新刻度的时刻。
到目前为止,我只看到几个选项。第一个选项的缺点是在资源和数据相关性方面的非优化。OnTimer主要在空闲时敲击,当它捕捉到一个新的报价时,到达时间的误差将等于定时器的周期性。
第二种变体的缺点是繁琐,尤其是在有几十个符号的情况下。
我的理解是否正确,没有其他选择(更简单和更优雅)?或者(我希望)我错了吗?
问题。
假设我在一个专家顾问或指标中处理几个符号,或者说处理市场观察窗口中显示的所有符号。
任务是抓住任何一个符号上出现新刻度的时刻。
到目前为止,我只能看到有几个选择。第一个选项的缺点是在资源和数据相关性方面的非优化。OnTimer主要在空闲时敲击,当它捕捉到一个新的报价时,到达时间的误差将等于定时器的周期性。
第二种变体的缺点是繁琐,尤其是在有几十个符号的情况下。
我的理解是否正确,没有其他选择(更简单和更优雅)?或者(我希望)我错了吗?
也许这个会有帮助?https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments
具有实时报价的合成工具交易平台允许你创建合成金融工具--基于一个或多个现有工具的工具。你只需要设置一个公式来计算报价,平台就会实时生成合成工具的点位,还可以创建其分钟历史。
它是如何工作的
你创建了一个合成工具,并为其设定了公式。
该平台将以每秒10次的频率计算其ticks(并且只有在公式中至少有一个工具的价格发生变化时才会计算)。
也许这个会有帮助?https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments
具有实时报价的合成工具交易平台允许你创建合成金融工具--基于一个或多个现有工具的工具。你只需要设置计算报价的公式,平台就会实时生成合成工具的点数并创建其分钟历史。
它是如何工作的
你创建了一个合成工具,并为其设定了公式。
平台将以每秒10次的频率计算其ticks(并且只有在公式中至少有一个工具的价格发生变化时才会计算)。
是的,当然,那个变种人也有生命权。谢谢!
但是,事实上,它与我的变体#1相同,定时器周期为100毫秒,具有相同的缺点。
不过,在我看来,方案2似乎更合理。
顺便说一下,我记得这里 已经讨论过方案2了。
是的,当然,这种变体也有生命权。谢谢你!
然而,从本质上讲,它与上面的变体#1相同,定时器周期为100ms。
使EA与它所工作的符号相联系不是更容易吗?然后打开所有符号,将带有该EA的模板应用 于每个图表。
使EA与它所工作的符号相联系不是更容易吗?然后打开所有的符号,并为每个图表应用 该EA的模板。
很明显,这是可以做到的。问题是,我不知道一些事情,有可能通过一个多货币EA的代码来追踪另一个符号的报价的确切时刻。
但似乎通过自定义中断的变体2 是唯一合理的解决方案。
是的,很明显,可以这样做。问题是,我不知道一些事情,有可能通过一个多货币专家顾问的代码来捕捉另一个符号的报价的确切时刻。
但似乎通过自定义中断的变体2 是唯一合理的解决方案。
实施。
我认为没有其他选择(更简单、更优雅),这样的假设是否正确?或者(我希望)我错了吗?
毫秒计时器+SymbolInfoTick()将得到毫秒的时间。
实施。
Я правильно понимаю, что других вариантов (более простых и изящных) не существует? Или (надеюсь) я не прав?
毫秒级计时器+SymbolInfoTick()获得毫秒级的时间。
阿列克谢-科齐岑。
Millisecond计时器+SymbolInfoTick()得到的时间为毫秒。
客观地说,带有用户中断的变体更加合理,因为不需要不断地用昂贵的SymbolInfoTick函数组织一个循环,即使在报价器处于睡眠状态时也是如此,从而使处理器加载了闲置时间。此外,计算新刻度的误差可能等于定时器的周期性,所有的刻度将在OnTimer执行之间丢失,如果这些刻度超过1。