Чемпионат Алгоритмов Оптимизации. - страница 75

 
Кто нибудь попробовал задачу с текстом? Какие результаты?
 
Если никто из администрации MetaQuotes не появится здесь до 11 июля, то проведение чемпионата станет невозможным, поскольку процедура генерации ФФ для чемпионата не будет выполнена без них. 
 

Сейчас посмотрим, на что способен штатный тестер в задаче с текстом, условия проведения оптимизации те же, что и в представленном коде - текст не менялся, то есть 49 букв.

ЗЫ. Обнаружил, на мой взгляд, неправильную работу советника с библиотекой в тестере, отпишусь в ветке об ошибках

 

 

 

 

 

2016.06.29 02:15:16 Statistics optimization done in 1 minutes 18 seconds

2016.06.29 02:15:16 Tester genetic optimization finished on pass 23552

 Оптимизация завершилась с лучшим результатом 35 (столько букв оптимизатор смог правильно назвать из 49).

По скольку в штатном тестере нет возможности регулировки количества проходов/запусков ФФ, то, если я хочу провести сравнение своего алгоритма и штатного, мне придется запустить с таким же количеством запусков ФФ свой алгоритм.

Мой результат:

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Время: 475397 мкс; 0.47539700 c

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Запусков ФФ: 23552

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Макс: 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), поскольку в нем используется бинарный ГА. Напомню - задача очень сложная, кроме того что нужно выбрать лучший вариант из неисчислимого количества вариантов за ограниченное количество прогонов, но и ФФ представляет собой дискретную поверхность где не за что зацепится алгоритму.

ЗЗЫ:

"реакознаучная стацьщ жоватае  ж жебе мтъ двааюипа" - это собрал штатный тестер 

"редко научная статья сочетает в себе эти два типа" - а это текст задачи.

 ЗЗЗЫ. В прикрепе *.set файл советника с лучшим результатом.

Файлы:
 
ауу! есть тут кто?...
 
Почитываю.
 

Был в отпуске. Где пост с прикрепленными итоговыми файлами-интерфейсами подключения и расписанными вариантами (1 и 2) и желательно аргументом зачем нужен вариант подключения №2?

Т.к. недостаток этого варианта я написал  ранее и не получил ответа

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

Думал этот вопрос как раз утрясется участниками когда меня не будет (

 
Блин, все разругались и разбежались
 
Igor Volodin:

Был в отпуске. Где пост с прикрепленными итоговыми файлами-интерфейсами подключения и расписанными вариантами (1 и 2) и желательно аргументом зачем нужен вариант подключения №2?

Т.к. недостаток этого варианта я написал  ранее и не получил ответа

Думал этот вопрос как раз утрясется участниками когда меня не будет (

Испоьзуйте способ подключения по 2-му варианту. Некоторые участники высказали мнение, что переделка их алгоритмов под 1-й вариант связана с большими трудозатратами. А под 2-й вариант можно с легкостью оформить любой алгоритм. Поэтому этот вопрос утрясён.
Недостаток 2-го варианта в другом, но в рамках чемпионата он приемлем.
Путь прописывайте стандартный к библиотекам "ff.ex5"
 
Igor Volodin:
Блин, все разругались и разбежались
Я тут. Аукаю вон.
Ждем представителей MQ, без них проведение чемпионата невозможно, так как доверить генерацию ключа для FF можно только им.
Причина обращения: