template <typename T>
class IS
{
public:
template <typename T1>
staticbool Object( const T1* Ptr )
{
return(dynamic_cast<const T*>(Ptr) != NULL);
}
};
class CLASS1 {};
class CLASS2 : public CLASS1 {};
class CLASS3 : public CLASS1 {};
voidOnStart()
{
CLASS2 Object;
CLASS1* Ptr = &Object;
Print(IS<CLASS1>::Object(Ptr)); // true - Ptr указывает на объект класса CLASS1Print(IS<CLASS2>::Object(Ptr)); // true - Ptr указывает на объект класса CLASS2Print(IS<CLASS3>::Object(Ptr)); // false - Ptr НЕ указывает на объект класса CLASS3
}
这个例子来自随机抽查的职位
分号不影响编译结果 ....没有错误分号不影响编译结果 ....结果无误
通过调用函数来初始化静态变量是一个没有记录的特性,它的出现完全是偶然的,但现在要删除它是非常困难的。
强烈不鼓励调用交易环境 函数来初始化静态变量
没有必要断章取义。这句话是这样说的。
为了确保测试的最大准确性,在实际的tick模式中也使用了分钟条。这些都是用来检查和纠正打勾数据的。它还可以避免策略测试器和客户终端中的图表出现分歧。
这是否意味着一分钟条形图的历史不对应于刻度条?
这怎么可能......假设数据对应的是真实的交易历史?
运行几个优化(不是一个!)10次(50次就太多了)。请记住,有优化缓存,所以要么在优化之间重新编译EA,要么改变假的参数枚举值(这是最好的)。顶部和底部的2个极端值应被舍弃。分析每个优化的剩余6个值。
不要使用微秒计时器进行质量测量。使用常规的毫秒级GetTickCount。使用如此大范围的测试日期,使毫秒以数百和数千为单位计算。然后你会得到更准确和稳定的测量。
关于测量测试仪速度的建议