template <typename T>
T GetValue()
{
T Res; // possible use of uninitialized variable 'Res'return(Res);
}
voidOnStart()
{
MqlTick Tick = GetValue<MqlTick>();
int i = GetValue<int>();
}
生活小窍门
template <typename T>
const T GetDefaultValue( void )
{
struct STRUCT_TYPE
{
const T Value;
};
const STRUCT_TYPE Res = {0};
return(Res.Value);
}
voidOnStart()
{
int i = GetDefaultValue<int>();
MqlTick Tick = GetDefaultValue<MqlTick>();
string Str = GetDefaultValue<string>();
}
HistorySelect是一个非常昂贵的函数。但是HistorySelectByPosition就更贵了。
例如,如果我们需要找到平仓的第一笔交易,我们可以通过两种方式来实现它
第二项可能要便宜得多。但肯定不会更贵。
在测试器中调用HistorySelect*-函数几乎是在浪费计算资源。因此,你应该始终尝试尽量减少它们的数量。特别是HistorySelectByPosition。
对于测试器中的对冲账户,这意味着测试器的结果在很大程度上取决于账户的类型。
正如在一个相邻的线程中所发现的,测试者的结果甚至取决于测试是在本地代理还是在分布式网络代理中进行。
https://www.mql5.com/ru/forum/1111/page1880#comment_4904481
正如在一个相邻的线程中所发现的,测试者的结果甚至取决于测试是在本地代理上进行还是在分布式网络上的某个代理上进行。
https://www.mql5.com/ru/forum/1111/page1880#comment_4904481
你描述了BAG,这不在这个主题的范围内。对限制器的不同执行是官方立场。
同意,只是想指出,测试器正成为一个越来越不可预测的工具。
我同意,我只是想指出,测试器正成为一个越来越难以预测的工具。
这意味着测试者的结果在很大程度上取决于账户的类型。
结果
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.04.10 16:53
亲爱的开发者,在这种情况下,如何摆脱警告?基本功能(非必需)