来自一个 "傻瓜 "的问题 - 页 188

 
Karlson:
我还没有试过,但我理解把它放在一个文件中的想法,所以也许开发者可以指出一个选项--如何从一个文件夹中连接未改变的数据
而你用这个建议直奔CD: 从一个文件夹中 连接不可变的数据。
 

下午好!

这是我写的一个函数。它计算的是当前汇率与2010年初的汇率的比率。

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

如果我对2011年或更早的时期进行测试,它可以正常工作,但如果我对2012年进行测试,则返回0 :(

请告知可能是什么问题。

专家顾问在10分钟内运行,我使用的是冠军2012的服务器和账户进行测试。

 
MegaVoin:

下午好!

这是我写的一个函数。它计算的是当前汇率与2010年初的汇率的比率。

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

如果我运行2011年或更早时期的测试,它可以正常工作,但如果我测试2012年,则返回0 :(

请告知可能是什么问题。

专家顾问在10分钟内运行,我使用的是冠军2012的服务器和账户进行测试。

把错误打印出来--我们会看到的。
 
Yedelkin:
是的,我不知道程序的逻辑是什么,但10分钟的期限表示得有点不同。

其他一切都在10分钟内工作,像这样。

CopyHigh(_Symbol, _Period, 0, 2, MaxVal ) 

只有这个函数试图从月中获取数据。

以及如何打印错误?我知道CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal)返回-1而不是1。

 
MegaVoin:

那么如何打印错误呢?我明白CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal)返回的是-1而不是1。 但为什么会出现这种情况,是否可以输出错误?

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 
   double OtkrVal[1]; 
   datetime time=D'2010.01.01 00:00:00';
   ResetLastError();
   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) 
     {
      Print("error = ",_LastError);
      return(0);
     }
   return(Bid / OtkrVal[0]);
}
 
Yedelkin:
把错误打印出来--让我们看看。

错误 = 4401

我在Metatrader中找不到任何错误代码的 解码...

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
MegaVoin:

错误 = 4401

我在Metatrader中找不到任何错误代码的 解码...

https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5
 
MegaVoin: 错误 = 4401

OK,"未找到所需的历史记录"。即2010年1月在2012年没有找到,对吗?

而在模拟账户上(不是在测试器中),它显示的是什么?

 
Yedelkin:

OK,"未找到所需的历史记录"。即2010年1月在2012年没有找到,对吗?

而在模拟账户上(不是在测试器中),它显示了什么?

嗯哼,没有发现。

我创建了一个新的模拟账户(不是冠军账户)。如果我对2011年进行测试,大于5的批次现在被跳过,但对2012年也有同样的错误。

我想我必须在某个地方设置在测试期之前可以访问多少历史。而且默认必须是2年...只有在哪里配置...

 
MegaVoin: 创建了一个新的模拟账户(不是冠军账户)。如果对2011年进行测试,超过5的地段现在被跳过,但对2012年仍有同样的错误。

所以这个错误也发生在模拟账户上(不是在测试器中)?

MegaVoin : 我想我必须在某个地方设置测试期之前有多少历史记录。默认设置可能是2年...只有在它被设定的地方...

我宁愿在 "交易策略的测试 "部分阅读有关测试的历史。