错误、漏洞、问题 - 页 2223

 
Nikolai Semko:
是的,我已经在第22214号帖子中给了你实施的这个链接。我再说一遍--我认为这是迄今为止最明智的选择。而且,从最小的CPU负载和新刻度时刻的相关性来看,似乎没有更好的实现。

服务中会有正常的功能。

 
fxsaber:

在服务中,将有正常的功能。

希望...

 

当切换到另一个交易服务器时,终端(1874)停止显示(图表或查询)自定义符号的条形历史。终端重新启动后,会显示历史记录。只要你再次切换到另一个服务器,情况就会重演。


切换交易服务器时,Tick历史 不会受到影响。那里不存在这个错误。

 
template <typename T>
class CLASS
{
public:  
  T Func() { return(0); }
};

class CLASS2 : public CLASS<int>
{
public:
  CLASS2()
  {
    this.Func(); // ALT+G в ME не производит переход на int CLASS<int>:Func()
  }
};

中东地区应该是这样的吗?

 

在FileLoad中出错。如果两个带有FILE_COMMON 标志的本地Agent试图通过FileLoad读取数据,其中一个Agent会失败。

可以在FileOpen中设置适当的标志,但在FileLoad中不能。因此,如果其他 FileLoad 读取该文件,请允许通过 FileLoad 访问该文件。

 

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

不适合MT开发者!用什么来代替INIT_PARAMETERS_INCORRECT?

fxsaber, 2018.07.10 20:16

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
  #property tester_file __FILE__

古老的虫子。

 

是否有可能将测试器_文件保存在RAM中,以避免硬盘/SSD的滥用?有数以百万计的通行证,要数这么多遍的文件是很可怕的。


这样的 "RAM-磁盘 "将使未经授权将个人数据转移给第三方 的行为变得更加困难。

 

新的优化缓存没有考虑到在运行优化之前对测试者_文件和普通文件的修改。

下面是 这样一个EA的例子。

 
fxsaber:

新的优化缓存没有考虑到在运行优化之前对测试者_文件和普通文件的修改。

下面是 这样一个EA的例子。

到底有没有考虑到老的问题?

与 "旧的 "优化缓存相比,没有任何变化。

如果你滑出一个修改过的tester_file,且文件修改时间相同,那么该文件将被视为没有变化。

普通文件不能以任何方式被控制(而且从来没有被控制过),因为不知道你在你的专家顾问中使用了哪些文件。

 
Slava:

如果你滑出一个修改过的tester_file,并有相同的文件修改时间,该文件将被假定为未修改过。

更新的修改时间对结果没有影响。专家顾问

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#property tester_file __FILE__ 

sinput int NumPass = 10;

#define  TOSTRING(A) #A

void SetArray( int &Array[], const int Amount )
{
  MathSrand((int)TimeLocal());
  
  for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
    Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}

void OnTesterInit()
{    
  ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass    
  
  int Array[];
  
  SetArray(Array, NumPass);      
  FileSave(__FILE__, Array);
  
  ArrayPrint(Array);  
}

void OnTesterDeinit()
{
  ChartClose(); // Закрыли чарт Frame-выполнения советника
}

double OnTester()
{
  int Array[];
  
  return((FileLoad(__FILE__, Array) != -1) ? Array[NumPass]: 0);
}


连续两次运行的结果


用红色标记的是,第二次运行与第一次运行的数值完全对应,而不是第二次(第二行)。


日志证实了这一点

Tester  set "Custom max" as optimization criterion for mathematical calculations
Tester  input parameter 'NumPass' set to: enable=true, value=0, start=0, step=1, stop=9
Tester  cache file 'tester\cache\X2.30.480532BA71563CA64BC267378A0185DD.opt' contains 10 records
Tester  Experts\fxsaber\X2.ex5 math calculations test means no history and no symbol info for EURGBP
Tester  complete optimization started
Tester  optimization already processed, total passes 10
Tester  reading of 10 result records from cache...
Tester  1 blocks of results read from cache in 0 ms
Statistics      optimization done in 0 minutes 00 seconds


如果我重新设置缓存(重新编译),第一次运行就很好,再往后就不行了。