错误、漏洞、问题 - 页 730

 

你能建议如何解决这个问题吗?
在测试器中第一次运行专家顾问(Read=false)后,会创建一个带有统计数据的csv文件。
在int OnInit()中,有以下代码。

  ResetLastError();
  if(Read)
  {
    filehandle=FileOpen(FileName,FILE_READ|FILE_CSV);
  }
  else
  {
    filehandle=FileOpen("razdvigka.csv",FILE_WRITE|FILE_CSV);
  }
创建的文件存储在目录中:tester\Agent\MQL5\Files

然而,在第二次运行时 (Read=true)。我们需要从该文件中读取数据,但该文件已被删除。

 
Vitya:

你能建议如何解决这个问题吗?
在测试器中第一次运行专家顾问(Read=false)后,会创建一个带有统计数据的csv文件。
在int OnInit()中,有以下代码。

创建的文件存储在目录中:tester\Agent\MQL5\Files

然而,在第二次运行时 (Read=true)。我们需要从该文件中读取数据,但该文件已被删除。

在这种情况下,你需要创建一个带有FILE_COMMON 标志的文件。该文件将被创建在终端的 共享文件夹 中。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:
在这种情况下,你需要创建一个带有FILE_COMMON 标志的文件。该文件将在终端的 共享文件夹 中创建。
filehandle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_COMMON);
谢谢你。
弄清楚了。
 
Rosh:
查看ChartIndicatorAdd
谢谢你!
 
Servicedesk,第359447号申请正在摸索中,还是你已经尝试过了,但没有结果?
 
x100intraday:
Servicedesk,第359447号申请正在被摸索,还是你白费力气?
有很多讨论在进行。但目前还没有准备好答案。
 

如果我们假设这是指标),第一次将显示日期,但接下来在图表上的设置(第二、三份)将不显示日期。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print(TimeCurrent());
   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,
                const datetime &Time[],
                const double &Open[],
                const double &High[],
                const double &Low[],
                const double &Close[],
                const long &TickVolume[],
                const long &Volume[],
                const int &Spread[])
{
  
  
  
  return(rates_total);
  
}
 
Karlson:

如果我们假设这是指标),它将第一次显示日期,但图表中的下一个设置(第二、三份)将不显示日期。

现在,指标的计算部分被从mql空间中删除,并有一个延迟。

如果你将同一个指标(具有相同的参数)应用于不同的(但相同的符号/时间线)图表--将不会有重新初始化的情况。

如果在删除最后一份拷贝后去抽烟--那么在启动时将会有重新初始化。

这种优化的副作用。:)

注意:吸烟对你的健康不利

;)

 

亲爱的程序员们。

告诉我,在mql5程序代码中,什么对速度影响最大?问题是,在创建我自己的程序和增加代码量的同时,我面临的事实是其速度明显下降。虽然,来自Advisors和Example文件夹的代码更密集的标准专家顾问要快得多。

总的来说,在论坛上是否有关于如何更好地格式化代码结构的文章或解释?给一个程序员新手 一个建议。谢谢你!

 
Alex5757000:

亲爱的程序员们。

告诉我,在mql5程序代码中,什么对速度影响最大?问题是,在创建我自己的程序和增加代码量的同时,我面临的事实是其速度明显下降。虽然,来自Advisors和Example文件夹的代码更密集的标准专家顾问要快得多。

一般来说,在论坛上是否有关于如何更好地格式化代码结构的文章或解释?给一个程序员新手一个建议。谢谢!

IMHO,嵌套循环对速度影响最大。嵌套循环到第三个深度实际上是一个极限,超过这个深度,你必须非常小心地对待循环的大小。我以我的P4为例:它的运行频率为3Hz,我每秒可以得到~10k个操作。

这个数字意味着,1000x1000x10的三重嵌套循环将在1秒内执行,如果你理解,如果第3个循环增加到100,你将得到10秒。

原因: