算法优化锦标赛。 - 页 75

 
有人试过文本任务吗?结果是什么?
 
如果MetaQuotes管理部门的人在7月11日之前没有出现在这里,冠军赛就不可能举行,因为没有他们,冠军赛的FF生成程序就无法进行。
 

现在让我们看看普通测试器在文本问题上的能力,优化条件与所展示的代码相同--文本没有改变,即49个字母。

我发现,在我看来,EA在测试器中的库工作不正常,我将在错误的主题中报告

 

2016.06.29 02:15:16 统计数据 优化在1分18秒内完成

2016.06.29 02:15:16 Tester 遗传优化完成,通过23552

优化完成后,最好的结果是35个(49个字母中,优化器能正确说出这么多字母)。

由于在标准测试器中没有调整FF的通过/运行次数的选项,如果我想将我的算法与标准算法进行比较,我必须以相同的FF运行次数运行我的算法。

我的结果。

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Time: 475397 µs; 0.47539700 c

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) FF Runs: 23552

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Max: 42.00000000

虽然,测试者是在4个核心上运行优化,而我的脚本是在1个核心上运行,但我得到的结果在时间上快了100多倍。

这里是专家顾问的文本,用于测试内部优化器在有关文本的任务。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
// тестовая фитнес функция чемпионата, не известна участникам
#import "FFtext.ex5"
int    GetParamCount (); 
void   GetParamProperties (double &min, double &max, double &step); 
double FF (double &array []); 
int    GetCountRunsFF (); 
void   PrintCodeToFile (double &param []); 
#import
//+------------------------------------------------------------------+

//--- input parameters
input int      Input1  = 0; 
input int      Input2  = 0; 
input int      Input3  = 0; 
input int      Input4  = 0; 
input int      Input5  = 0; 
input int      Input6  = 0; 
input int      Input7  = 0; 
input int      Input8  = 0; 
input int      Input9  = 0; 
input int      Input10 = 0; 
input int      Input11 = 0; 
input int      Input12 = 0; 
input int      Input13 = 0; 
input int      Input14 = 0; 
input int      Input15 = 0; 
input int      Input16 = 0; 
input int      Input17 = 0; 
input int      Input18 = 0; 
input int      Input19 = 0; 
input int      Input20 = 0; 
input int      Input21 = 0; 
input int      Input22 = 0; 
input int      Input23 = 0; 
input int      Input24 = 0; 
input int      Input25 = 0; 
input int      Input26 = 0; 
input int      Input27 = 0; 
input int      Input28 = 0; 
input int      Input29 = 0; 
input int      Input30 = 0; 
input int      Input31 = 0; 
input int      Input32 = 0; 
input int      Input33 = 0; 
input int      Input34 = 0; 
input int      Input35 = 0; 
input int      Input36 = 0; 
input int      Input37 = 0; 
input int      Input38 = 0; 
input int      Input39 = 0; 
input int      Input40 = 0; 
input int      Input41 = 0; 
input int      Input42 = 0; 
input int      Input43 = 0; 
input int      Input44 = 0; 
input int      Input45 = 0; 
input int      Input46 = 0; 
input int      Input47 = 0; 
input int      Input48 = 0; 
input int      Input49 = 0; 

double param []; 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit () 
{ 
  ArrayResize (param, GetParamCount ()); 
  
  param [0] = Input1; 
  param [1] = Input2; 
  param [2] = Input3; 
  param [3] = Input4; 
  param [4] = Input5; 
  param [5] = Input6; 
  param [6] = Input7; 
  param [7] = Input8; 
  param [8] = Input9; 
  param [9] = Input10; 
  param [10] = Input11; 
  param [11] = Input12; 
  param [12] = Input13; 
  param [13] = Input14; 
  param [14] = Input15; 
  param [15] = Input16; 
  param [16] = Input17; 
  param [17] = Input18; 
  param [18] = Input19; 
  param [19] = Input20; 
  param [20] = Input21; 
  param [21] = Input22; 
  param [22] = Input23; 
  param [23] = Input24; 
  param [24] = Input25; 
  param [25] = Input26; 
  param [26] = Input27; 
  param [27] = Input28; 
  param [28] = Input29; 
  param [29] = Input30; 
  param [30] = Input31; 
  param [31] = Input32; 
  param [32] = Input33; 
  param [33] = Input34; 
  param [34] = Input35; 
  param [35] = Input36; 
  param [36] = Input37; 
  param [37] = Input38; 
  param [38] = Input39; 
  param [39] = Input40; 
  param [40] = Input41; 
  param [41] = Input42; 
  param [42] = Input43; 
  param [43] = Input44; 
  param [44] = Input45; 
  param [45] = Input46; 
  param [46] = Input47; 
  param [47] = Input48; 
  param [48] = Input49; 
  //---
  return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit (const int reason) 
{ 
  PrintCodeToFile (param); 
  //---
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick () 
{ 
  //---
}
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester () 
{ 
  double ret = FF (param); 
  
  //---
  return (ret);
}
//+------------------------------------------------------------------+

当然,我确信,如果你在测试器中多次运行优化以确定结果,你可能会得到更好的结果。但说实话,我太懒了,懒得清理一百次缓存,懒得等那么久。但是,如果有人有充足的时间 - 可以付出几次,并得到平均可靠的结果工作人员优化。

说实话,我对内部优化器的结果感到惊讶。我预计会看到更糟糕的结果(无意冒犯MQ),因为它使用二进制GA。让我提醒你,这是一个非常复杂的任务,我不仅需要在有限的运行次数中从无数的选项中挑选出最好的选项,而且FF是一个离散的表面,算法无法立足于此。

ZZZI。

"reacoscientific article zhovataye zhevataye mt'yuipa"- 这是由一个工作人员测试员收集的。

"很少有科学论文将这两种类型结合起来"- 这就是任务的文本。

ZZZI.附上顾问的*.set文件,效果更好。

附加的文件:
 
你好!有人在这里吗......?
 
阅读。
 

一直在度假。附有最终连接文件和选项(1和2)的帖子在哪里,最好还能论证一下为什么需要选项2?

因为这个选项的缺点我之前写过,没有得到答案

В примере библиотеки участника по 2-му есть импорт FF и в скрипте запуска и в библиотеке участника. Но если я пришлю ex файл, какой путь импорта ff туда зашивать? Как запускать на другой FF? Не продумано.

我想这个问题在我离开后会由参与者来解决 (

 
妈的,每个人都在打架,都在散开。
 
Igor Volodin:

一直在度假。附有最终连接文件和选项(1和2)的帖子在哪里,最好还能论证一下为什么需要选项2?

因为这个选项的缺点我之前写过,没有得到答案

以为我不在的时候,这个问题会被参与者解决(

使用第二种变体的连接方法。一些与会者认为,为1-st变体重塑算法有很多工作要做。虽然我们可以很容易地为第二种变体做出任何算法。因此,这个问题已经解决。
第二种选择的缺点是不同的,但在冠军赛中是可以接受的。
标准库 "ff.ex5 "的路径
 
Igor Volodin:
哦,伙计,每个人都被撕碎了,散开了。
我在这里。我在这里。
我们正在等待MQ的代表,没有他们,冠军就无法举行,因为只有他们才能被信任,为FF生成密钥。