初学者的问题 MQL5 MT5 MetaTrader 5 - 页 927

 
Seric29:

我的意思是,如果条件为真,那么做两个相同的动作,例如

我已经声明了变量,除了这个动作Price_UrNij = Bar_Cl[iHgCL]>Bar_Op[iHgOP] ?Bar_Cl[iHgCL]:Bar_Op[iHgOP]; 或者这个动作Price_UrVerh = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ?Bar_Cl[iLwCL]:Bar_Op[iLwOP]; 如何让它按条件执行上下两层相同的动作。谁能建议如何以更短的形式来写?

1.这种代码非常难读。

          int iHgCL=iHighest(_Symbol,PERIOD_D1,MODE_CLOSE,4,qt+1); int iHgOP=iHighest(_Symbol,PERIOD_D1,MODE_OPEN,4,qt+1);

几乎没有人会在一行的开头之外寻找一个变量声明

2.你只需在if块中调用两次构建水平的函数即可

vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrNij, iTime(_Symbol,PERIOD_D1,qt), Price_UrNij, clrGreen, DRAW_LINE, 2, false, false);
vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrVerh, iTime(_Symbol,PERIOD_D1,qt), Price_UrVerh, clrGreen, DRAW_LINE, 2, false, false);
 

在使用上有什么区别? 有什么细微差别?

MqlDateTime dt;
datetime time=TimeTradeServer(dt)

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

在使用上有什么区别? 有什么细微差别?

可能没有什么区别。

 
Alexey Viktorov:

可能没有什么区别。

我认为第一种情况是如果你想使用时间变量和结构,第二种情况是只使用结构数据?

 
Fast528:

我认为第一种情况是如果你想使用时间变量和结构,第二种情况是只使用结构数据?

我没有注意到时间变量。

它是用来做什么的?毕竟,将结构转化为时间并不花费什么。但在这种情况下,将没有为该变量保留内存。

或者说,如果我们只需要时间,而不需要分成几个部分,那么我们为什么要为结构保留记忆?

 
Alexey Viktorov:

我没有注意到时间变量。

它是用来做什么的?将结构转化为时间不需要任何成本。但在这种情况下,将没有为该变量保留内存。

或者,如果你只需要时间而不需要除法,为什么我需要为结构预留内存?

我需要该指标在图表上 显示进入/退出的位置,并在它们之间画一条线,例如,在今天减去1天的期间,就像通常在指标或机器人中做的那样?

 

运行一个测试

程序在OnInit()中打开了该文件。

CFileTxt file;
int file_handle=file.Open("file_name.lic",FILE_READ);
if(file_handle==INVALID_HANDLE)
     {      
      return INIT_FAILED;
     }

它不仅没有找到文件夹中的文件,而且还在测试后删除了测试代理的MQL5\Files文件夹中的另一个文件。在启动时总共有两个文件被删除。

在FileOpen()上出现 错误5004

问题只出在测试器上。

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

运行一个测试

程序在OnInit()中打开了该文件。

它不仅没有找到文件夹中的文件,而且还在测试后删除了测试代理的MQL5\Files文件夹中的另一个文件。在启动时总共有两个文件被删除。

在FileOpen()上出现 错误5004

问题只出在测试器上。

代理人的文件夹正在被清理。这一点是正确的。如果你需要塞进以前保存的文件,使用保存在共享文件夹中的文件的参考。


我的代码中的例子

//--- STEP 6
   if(m_file_txt.Open(InpFileName,FILE_WRITE|FILE_COMMON)==INVALID_HANDLE)
 
Vladimir Karputov:

代理人的文件夹正在被清理掉。这是正确的。如果你需要塞进以前保存的文件,使用保存在共享文件夹中的文件的参考。


我的代码中的一个例子

什么共享文件夹?我根本不使用它。我总是以便携式模式开始。我把所有东西都放在安装文件夹里。

 
Juer:

什么共享文件夹?我根本不使用它。我总是在便携式模式下运行。我把所有东西都放在安装文件夹里。

共享的文件夹:FILE_COMMON。搜索,阅读。思考。

原因: