错误、漏洞、问题 - 页 572

 
Interesting:

MarketWatch 是在哪里以及如何产生的?

根据我的理解,这个块是想把一个符号添加到列表中,并检查结果。

但是,如果专家顾问是多个货币对(这在上面的例子中并不明显)。

这段代码是在一个货币对的循环中,每一次的Exp_Symbol,除了第一次,都是一个 "外国 "货币对。如果有五个货币对,SymbolSelect(Exp_Symbol, true)将被调用五次,以获得五个不同的符号。

我的代码中对SymbolSelect()、SymbolIsSynchronized()、CopyRates()函数 的调用由 "外来 "的符号完成(历史记录应相应更新)。在第一次测试中,有数据,但在第二次测试中,没有数据,而且Expert Advisor在测试器中崩溃。

 
Konstantin83:

这段代码是在货币对循环中,除了第一遍是 "外来 "货币对外,每一遍的Exp_Symbol都是。我有一个通过 "外来 "符号调用SymbolSelect()、SymbolIsSynchronized()、CopyRates()函数(因此历史应该被调换)。在第一次测试中,有数据,但在第二次测试中,没有数据,而且Expert Advisor在测试器中崩溃。


你能给servicedesk一个专家和优化/测试设置的描述吗?
 
alexvd:
你能给servicedesk发送一个专家和优化/测试设置 的描述吗?
创建。
 
刚才,模拟账户 中的报价又挂了。有交流但没有运动。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

我想卸下2009年1月的数据。我已经卸载了15分钟和一小时的数据,但我不能卸载5分钟的数据,它说没有历史记录。为什么不下载5分钟的历史?

void OnStart()
  {
   int size = 25;
   datetime dateFrom;
   datetime dateTo;
   MqlRates rates[];
   MqlDateTime stDate;
   int FileHandle;
  
   stDate.day  = 1;
   stDate.hour = 0;
   stDate.mon  = 1;
   stDate.year = 2009;
   dateFrom    = StructToTime( stDate );
   stDate.day  = 31;
   dateTo      = StructToTime( stDate );
  
  
   ArraySetAsSeries(rates,true);
  
   int copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
   for(int i=0;i<100;i++)
     {
      if(GetLastError()!=0)
       {
        Sleep(5000);
        copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
       }
      else
       {
        break;
       }
      Print("Нет истории, проход № " + i);
     }
   if(copied>0)
     {
      Print("Скопировано баров: "+IntegerToString(copied));
      //string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      size = ArraySize(rates);
      ResetLastError();
     
      FileHandle=FileOpen("Data.csv",FILE_WRITE|FILE_CSV);
      if(FileHandle==INVALID_HANDLE)
        {
         Print("Ошибка " + IntegerToString((GetLastError())));
        }
      for(int i=size-1;i>=0;i--)
        {
         FileWrite(FileHandle, TimeToString(rates[i].time), DoubleToString(rates[i].open, _Digits), DoubleToString(rates[i].high, _Digits), DoubleToString(rates[i].low, _Digits), DoubleToString(rates[i].close, _Digits));
        }
     
      Print("size = " + FileSize(FileHandle));
      FileFlush(FileHandle);
      FileClose(FileHandle);
     }
   else
    {
     Print("Не удалось получить исторические данные по символу ",Symbol());
     Print("Ошибка " + GetLastError());
    }
  }

 

我决定检查ArrayResize函数在所有参数下是如何工作的。它的编译没有问题,自动交易在任何地方都是启用的,但专家顾问甚至没有进入OnInit就从图表上卸载了。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print(__FUNCTION__);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(__FUNCTION__);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   double ZZ[][2];
//==============================================   
   Print(__FUNCTION__);
   
   ResetLastError();
   ArrayResize(ZZ,5,5);
   for(int i=0;i<10;i++) {
      ZZ[i][0]=i;
      Print("i=",i,"; ZZ=",ZZ[i][0]);
      Print(GetLastError());
   }
   return;
}
//+------------------------------------------------------------------+

问题出在哪里,我想不出来。

1

2

 
Talex:

我决定检查ArrayResize函数在所有参数下是如何工作的。它的编译没有问题,自动交易在任何地方都是启用的,但专家顾问甚至没有进入OnInit就从图表上卸载了。

问题出在哪里,我想不出来。


巴纳尔不在范围内,请在 "专家 "选项卡中查看
保留不是分配,你的数组仍然是5个项目,尽管内存被分配为10个。

 
mql5:

巴纳尔超出了范围,请看 "专家 "标签。
保留不是分配,你的数组仍然是5个项目,尽管你已经为10个项目分配了内存。

对,谢谢。看错标签了,我病了,一定是影响了我。
 
Talex:

我决定检查ArrayResize函数在所有参数下是如何工作的。它的编译没有问题,自动交易在任何地方都是启用的,但专家顾问 甚至没有进入OnInit就从图表上卸载了

一般来说,上面的屏幕截图显示的是终端日志。而你要找的东西就在专家标签里。
 

你好。

我,经过测试和启用优化,得到了这个结果。

核心1的遗传密码(127, 1195)测试时出现错误 "关键运行时错误

该测试是正常的。