Для каждой выполняющейся mql5-программы поддерживается ряд предопределенных переменных, которые отражают состояние текущего ценового графика на момент запуска программы - эксперта, скрипта или пользовательского индикатора. Значение предопределенным переменным устанавливает клиентский терминал перед запуском mql5-программы на выполнение...
template<typename T>
class A{};
class B{
public:
template<typename T>
void test(A<T> &a);
};
template<typename T>
void B::test(A<T> &a){} // 'test' - member function already defined with different parameters voidOnStart(){
B b;
}
关键是要能够通过引用来传递。
和字符串 一样,开发者有机会(如果还没有做的话)通过引用传递一切,而不需要实际复制变量。
而且它将是一个解决方案,不是针对某个特定的MqlTick 结构,而是针对所有的场合
这再次证实了直接使用_Digits,_Point , _Period, _LastError等没有意义(甚至_Symbol也可以用NULL代替)。事实上,它们必须被声明为const volatile
而你,恰恰相反,建议扩大这个范围
你是对的,但它们几乎是 不稳定的,除了标志IsStopped--它是100%不稳定的,也就是说,任何对IsStopped的读取都是100%的内存读取。
对于其他人来说,几乎是ollatylе 意味着编译器可以在第一次调用时在寄存器中缓存一个变量的值,并在下次访问该变量时使用缓存的值,但只能在一个函数或调用的分支中,如果它们在一个函数中被内联。
这是可能的(也是必要的),因为改变预定义 的变量(除了IsStopped)不能发生在MQL入口点(OnXXX函数)内。
关于变量VARIABLE MODIFICATOR, 我们说它是由const 程序员为程序员使用的。
我们知道,你可以通过转换来改变一个变量的常数,所以编译器不能相信const 修饰符。
如果编译器看到变量没有改变它的值,并且被初始化为常量,那么即使没有const 修饰符
,它也会把这样的变量变成一个即时值(ImmentValue)。关于_LastTick,我们正在讨论,但...
这是一个结构,而不是一个简单的原子类型,它可以突然改变,在MQL程序的任何时候,包括获取值的时候。
事实证明,为了解决这种结构,你需要引入一个同步器。
我们一直在努力提高性能,特别是由于这种高发布率的构建。
我们计划做大量的工作来加快MQL代码的速度
关于_LastTick,我们正在讨论,但...
这是一个结构,而不是一个简单的原子类型,它可以突然改变,在MQL程序的任何一点,包括获得值的时候。
事实证明,为了解决这种结构,我们需要引入一个同步器。
但在测试中_LastTick不能在MQL程序的任何一点上改变?
如果是,那么只为测试人员提供这样的解决方案,因为计算的速度是最重要的。
但在测试中,_LastTick不能在MQL程序的任何地方改变?
如果是的话,那么只为计算速度最重要的测试人员提供这样的解决方案。
那么,是什么阻止了你在OnTick处理程序中请求这个tick一次,然后对收到的数据进行处理?
市场》和《云》所装载的EA创作者 的低资质是一个障碍。
那么,是什么阻止了在OnTick处理程序中请求一次tick,并阻止了对收到的数据的进一步处理呢? 这实际上是没有成本的。 为什么要重新请求100次(如之前引用的测试),人为地制造刹车呢? 所以,建议通过复杂化MT的内部工作来解决歪曲EA代码的问题。还是你有一些正常的测量方法?
要由 "OnTick "处理的事件从外部接收到一些有优先级的队列中。在其他处理程序中,确保没有这样的新事件发生是很有用的,否则前一个tick的数据是无效的/过期的。
那么,是什么阻止了你在OnTick处理程序中请求一次这个tick,然后处理产生的数据呢? 这实际上是没有价值的。 为什么要费力地请求它100次(如上面的测试),人为地在现场制造一个刹车。
这正是我在测试器中做的事情
也就是说,歪曲的EA代码的问题应该是通过复杂化MT的内部运作来解决的。还是你有一些正常的测量方法?
那么,代码是由常见的编码实践决定的,看看这些例子中的QB和安全线的使用吧
我不使用SB,我已经用剖析器 测量了几个月,并寻找解决方案,有一个关于速度测试的主题,部分抛出了替代解决方案
这是一个滑坡,必须认真处理,我对我的EA优化很满意,在18个月6秒时有一个通过,现在是2.5秒,我认为我对自己做得很好))))。
而不是目前的0,也就是说,实际上REASON_PROGRAM
当重新启动终端时,它连续不停地写到记录日志上
日志中的历史栏时间不断增加。英镑兑美元日线图 是开放的,而且是躁动的--零,第一和第二条被删除/创建。就这样周而复始。
我在这里等待。它是否会用这些日志填满所有的固态硬盘,还是会最后停止...
昨天的日志在拖车上。