В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
2012.02.26 10:57:51 测试员分析的历史质量是100%。
2012.02.26 10:57:51 Core 1 EURUSD,H1: 测试experts\pattern10000.ex5从2009.12.01 00:00到2012.02.10 00:00开始
......
在日志中似乎一切正常,但尝试在专家顾问中寻找错误。
例如,在粗略检查代码时,我发现该程序使用了3个文件,但只有一个在属性中列出。
#property tester_file "primer_massivstarihpatternovdlyaraboty.csv"
修改了代码 - 现在你可以看到错误了
2012.02.26 11:24:56 核心 1 2009.12.01 00:00:00 错误 = 5004
文件打开 错误 - 尽管文件在C:\ProgramData\MetaQuotes\Terminal\Common\Files和#property tester_file "primer_massivstarihpatternovdlyaraboty.csv "和FILE_COMMON标志被选中。
你好!我正在编写一个 简单的多货币指标,在同一图表上显示2个工具(货币对)。告诉我应该用哪个函数来选择和处理给定符号的绘图数据。如果你有一个小的例子将非常感激。 谢谢你!
现在我现在的图表的裸体算法是这样的
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[]。
const double &open[],
const double &high[],
const double &low[],
构成双倍的&close[])
{
int i=0。
bool vol=true。
if(i<prev_calculated) i=prev_calculated-1;
while(i<rates_total && !IsStopped())
{
ExtCloseBuffer[i]=close[i]。
如果(i>0)
{
如果(close[i]>close[i-1])vol=true。
如果(close[i]<close[i-1])vol=false。
}
i++;
}
return(rate_total)。
}
修改了代码 - 现在你可以看到错误了
2012.02.26 11:24:56 核心 1 2009.12.01 00:00:00 错误 = 5004
文件打开 错误 - 尽管文件在C:\ProgramData\MetaQuotes\Terminal\Common\Files和#property tester_file "primer_massivstarihpatternovdlyaraboty.csv "和FILE_COMMON标志被选中。
你好!我正在编写一个 简单的多货币指标,在同一图表上显示2个工具(货币对)。告诉我应该用哪个函数来选择和处理给定符号的绘图数据。如果你有一个小的例子将非常感谢。 谢谢你!
现在我显示当前图表的算法是这样的
...你可以通过MqlRates 结构接收数据,也可以在MQL5中为 每个时间序列单独接收数据参考/访问时间序列和指标
使用MqlRates 更好,因为它存储了关于条形时间的数据(这很重要,因为不同工具的条形是不同步的),但使用时间序列更经济。
但多币种专家顾问的主要问题是同步性的差异--不是每个根据一个符号的指数要求的条形图都对应于另一个符号的相同指数。而且越是深入森林,游击队就越厚实,指数的转变在不断累积。
我们将不得不再次解决不同长度阵列的问题(因为不同工具上的数据量不同)。
而第三个问题,不是图表指标上的每一个条形都可以显示(例如,一个本机符号没有条形,但对于其他的,该放在哪里?)
这些都是我们所面临的问题。
看了一下,把文件放在Mql5\Tester\Files中
但测试者只是站在原地不动。
#property tester_file 属性是为了避免 用 手把 任何东西放在 任何地方。
测试员文件
绳子
测试器的文件名,指定其扩展名,用双引号括起来(作为一个常量字符串)。 指定的文件将被传递给测试人员进行工作。 如果需要,应始终指定用于测试的输入文件
如果程序操作需要一些datafile.csv 文件,并且它位于 terminal_directory/MQL5/Files,该文件将被 测试员自动移动 到testing_agent/MQL5/Files目录(为此必须指定#property tester_file datafile.csv)。
修改了代码 - 现在可以看到错误了
2012.02.26 11:24:56 核心 1 2009.12.01 00:00:00 错误 = 5004
文件打开 错误 - 尽管文件在C:\ProgramData\MetaQuotes\Terminal\Common\Files和#property tester_file "primer_massivstarihpatternovdlyaraboty.csv "和FILE_COMMON标志被选中。
该错误是可见的,但不清楚是哪个文件
为什么在属性中评论了其他文件? 顺便说一下,有一个错误:同样的扩展名,虽然文本是其中一个 "signal10000.dat"。
我没有你的文件,你自己检查吧。
现在,我们如何找到这个不幸的文件夹,the_agent_testing_directory/MQL5/Files?从Windows Vista开始,安全系统和安全策略变得更加复杂,可以使任何人都感到困惑。找到这个文件夹的最简单方法是询问测试人员,他知道测试代理的确切位置。在测试结束后 的测试员日志中,总是写上测试员日志的路径,例如。
所以测试代理文件夹在这里 -C:\Program Files\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log。
你不能迎头而上。你不能这样做,MetaQuotes软件公司 是反对的。// 我认为这是不对的,但他们可能更清楚。
有一个相当耗时的选择--使用数学模式。如果不是太麻烦的话,可以试一试。
现在,我们如何找到这个不幸的文件夹,the_agent_testing_directory/MQL5/Files?从Windows Vista开始,安全系统和安全策略变得更加复杂,可以使任何人都感到困惑。找到这个文件夹的最简单方法是询问测试人员,他知道测试代理的确切位置。测试员日志的路径总是写在测试结束后的测试员日志中,比如说。
因此,测试代理文件夹位于这里 -C:\Program Files\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log。
现在给出了
2012.02.26 15:47:46 测试文件C:\Users\openlive\AppData\Roaming\MetaQuotes\Terminal\9C3619DDD286B60B1DB9B989A2FFC701\MQL5\Files\signal10000.csv打开错误[32] 。