错误、漏洞、问题 - 页 2816

 
fxsaber:

我记得,当我进入这个主题时,有许多细微的差别。有些东西显示出正确或错误,取决于OnTester*函数。试着在不同的On-functions中调用它。

你说的不同是什么意思?我在OnTesterInit中需要它--没有其他选项。

 
Stanislav Korotky:

你说的不同是什么意思?我在OnTesterInit中需要它--没有其他选择。

关于交易、自动交易系统和策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.08.15 17:49

ParameterGetRange在OnTesterInit中不起作用。
sinput int Range = 5;

#define  PRINT(A) Print(#A + " = " + (string)(A));

void PrintParameter( const string Name, const string From )
{
  PRINT(From)
  
  bool Enable;
  long Value, Start, Step, Stop;
  
  if (ParameterGetRange(Name, Enable, Value, Start, Step, Stop))
  {
    PRINT(Start)
    PRINT(Step)
    PRINT(Stop)
    PRINT(Value)
    PRINT(Enable)
  }   
}

void OnTesterInit()
{
  ParameterSetRange("Range", true, 5, 1, 2, 3); // Задали ненулевыми все значения
  
  PrintParameter("Range", __FUNCTION__); // Возвращает одни нули
}

void OnTesterDeinit()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
  
  ChartClose();
}

void OnTesterPass()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
}

int OnInit()
{
  uchar Data[];
  
  FrameAdd(NULL, 0, 0, Data);
  
  return(INIT_FAILED);
}
 
fxsaber:

这只是证实了我的测试案例:在MQL中设置一个参数对其在OnTesterInit中的后续读取没有影响。在其他处理程序中,调整任何东西都太晚了,因为传递是由初始设置决定的。

 
弊端
#import "z.ex5" //(1) Error: '#import' - #import was not closed
#import
/*
.
.
.
*/
#import "z.ex5" //(2)

第2个#import没有关闭,但错误出现在第1个#import上--因此真正的错误位置显示不正确--我花了很长时间才发现问题所在。

 
编译错误。
class A {};
class B {
public:
    static A a;
} b;  //Error: unresolved static variable 'B::a'
A B::a;
void OnStart() {}
 
 

职能。

CopyTicksRange(_Symbol, _ticks, COPY_TICKS_ALL);

tick生成模式 下,最多返回131072个ticks。这是一个错误,一个特点,文档中有没有提到这个问题?

在真正的ticks模式下,没有这样的限制。

 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 
当在终端图表上以框架模式运行专家顾问时,使用默认的输入参数而不是在测试器参数选项卡中设置的参数,目前的行为是否正确?
 
是否可以保护图表 不受时间框架和符号变化的影响?