MetaTrader 5 Strategy Tester! - страница 72

 
Vasiliy Sokolov:

Уважаемые Разработчики, с новым билдом (1476 x64) тестер стратегий стал криво отрисовывать свои окна:

 

Вот еще одно: нажал на кнопку зуммирования и убрал мышь в сторону, но кнопка по-прежнему осталась нажатой:

 

Визуальное тестирование на максимальной скорости.

Убавьте хотя бы на единичку. Или паузу нажмите

 

Я рад что помог вам разобраться с L-BFGS.

 

Andrey Dik:
Снова выглядите профаном..... Похоже это доставляет Вам удовольствие, мешать не буду. 

Прошу ссылку на пакет который моментально найдёт минимум для функции любой сложности, или предъява не защитана. 

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

 

Я даже пример приведу - нейронку можно представить как функцию с большим числом входов, где каждый вход - вес на нейроне.
Можно вообще написать одну функцию (не чёрный ящик, а именно функция с понятной формулой), которая возвращает ошибку нейронки по отношению к обучающим примерам, где параметры функции это веса на каждом нейроне. Найти минимум такой функции - означает найти параметры функции (веса для нейронов), при которых нейронка правильно работает на всех обучающих примерах. Вообщем-то так и делают, потом находят производные для каждого параметра, и меняют их для того чтоб минимизировать результат.
Люди тратят дни работы видеокарт на такие операции обучения нейронки. А по вашим словам этого можно достичь моментально, с помощью мифического пакета символьной математики. Иди патентуйте моментальное обучение нейронки своими пакетами.

 
Dr.Trader:

...

Я не вижу в Вашем коде точно совпадающую по выполняемым действиям ФФ с той что в ФФ представленных библиотек.

Потрудитесь переписать код своего оптимизатора так, что бы соблюсти идентичность и сопроводите код подробными комментариями.

 
Andrey Dik:

Я не вижу в Вашем коде точно совпадающую по выполняемым действиям ФФ с той что в ФФ представленных библиотек.

Потрудитесь переписать код своего оптимизатора так, что бы соблюсти идентичность и сопроводите код подробными комментариями.

 

А вот и новое правило. Я видел будущее. 

Dr.Trader:

Будет очень некрасиво если начнёте опять придумывать новые правила на ходу.

Задание было найти набор букв, про точное совпадение с ФФ mql ни слова. Это же очевидно что синтаксис будет другой. Например работа с векторами - мне не нужно циклом проверять каждую букву, я это делаю в векторной форме. Но даже если я напишу очень неэффективный код только ради совпадения - это ведь не изменит результат. Синтаксис не влияет на результат. Непонятно чего вы хотите добиться от другого синтаксиса.

 
Dr.Trader:

 

А вот и новое правило. Я видел будущее. 

Задание было найти набор букв, про точное совпадение с ФФ mql ни слова. Это же очевидно что синтаксис будет другой. Например работа с векторами - мне не нужно циклом проверять каждую букву, я это делаю в векторной форме. Но даже если я напишу очень неэффективный код только ради совпадения - это ведь не изменит результат. Синтаксис не влияет на результат. Непонятно чего вы хотите добиться от другого синтаксиса.

Причем здесь правила?!!!!

Я не требую совпадения синтаксического, я требую идентичной логики исполнения ФФ!!! Что бы в равных условиях ФФ выдавала одинаковый результат! ФФ одна и таже в тестах для моего алгоритма и алгоритма MQ и выполнена в виде библиотеки - код доступен, в этих условиях нет сомнений что мой алгоритм выполняет туже задачу, что алгоритм MQ, в отличии от Вашего алгоритма, который непонятно к какой ФФ обращается и непонятно что делает Ваша ФФ, она не одна и та же что для моего алгоритма и алгоритма MQ!

Потрудитесь переписать код своего оптимизатора так, что бы соблюсти идентичность логики и результата ФФ и сопроводите код подробными комментариями.

Вы будете продолжать плакаться и жаловаться на мою скромную персону или всё таки обеспечите чистоту проводимых экспериментов?!!!  

 
Andrey Dik:

Потрудитесь переписать код своего оптимизатора так, что бы соблюсти идентичность логики и результата ФФ и сопроводите код подробными комментариями.

Вам нужно иденитчность логики моего оптимизатора конкретно с чем? Моё оптимизатор тем и хорош, что у него своя логика.
Ваш оптимизатор вообще закрытая библиотека между прочим.. его логика идентична чему например?

Могу вам для счастья переписать свою функцию fitness. Вставлю туда циклы, субстринги, назову её FF. Только это вообще ничего не изменит.

Такое переделанное в R вам пойдёт? 

double FF (double &param []) export
{
  countRuns++;
  
  int sizeArray = ArraySize (param);
  if(sizeArray != TextLen)
    return (0.0);
  
  int ffVolue = 0;
  
  for(int i = 0; i < TextLen; i++)
  {
    if(GetCode (param [i]) == StringSubstr (Text, i, 1))
      ffVolue++;
  }
  
  // сохранение результатов
  if(CompareBests (ffVolue))
    SaveResults (BestResults, ffVolue);
  SaveResults (AllResults, ffVolue);
  
  return (double(ffVolue));
}


 

 
Dr.Trader:

Вам нужно иденитчность логики моего оптимизатора конкретно с чем? Моё оптимизатор тем и хорош, что у него своя логика.
Ваш оптимизатор вообще закрытая библиотека между прочим.. его логика идентична чему например?

Могу вам для счастья переписать свою функцию fitness. Вставлю туда циклы, субстринги, назову её FF. Только это вообще ничего не изменит.

Такое переделанное в R вам пойдёт? 

double FF (double &param []) export
{
  countRuns++;
  
  int sizeArray = ArraySize (param);
  if(sizeArray != TextLen)
    return (0.0);
  
  int ffVolue = 0;
  
  for(int i = 0; i < TextLen; i++)
  {
    if(GetCode (param [i]) == StringSubstr (Text, i, 1))
      ffVolue++;
  }
  
  // сохранение результатов
  if(CompareBests (ffVolue))
    SaveResults (BestResults, ffVolue);
  SaveResults (AllResults, ffVolue);
  
  return (double(ffVolue));
}


 

Перестаньте корчить из себя идиота. Идентичность логики не оптимизатора, а логики ФФ. Повторяю - идентичность логики ФФ, оптимизатор тут ни причем. ФФ должна быть одна и та же для всех алгоритмов участвующих в тестировании, иначе теряется объективность сравнения. Это черный ящик и он должен быть одинаковым для всех в плане передаваемых в него данных и получаемого от него результата.  
 
Andrey Dik:
Перестаньте корчить из себя идиота. Идентичность логики не оптимизатора, а логики ФФ. Повторяю - идентичность логики ФФ, оптимизатор тут ни причем. ФФ должна быть одна и та же для всех алгоритмов участвующих в тестировании, иначе теряется объективность сравнения. Это черный ящик и он должен быть одинаковым для всех в плане передаваемых в него данных и получаемого от него результата.  
Спасибо, вашу опечатку касательно оптимизатора/FF понял. Переписываю код FF.
 

Внёс одно изменение в код именно оптимизатора - раньше я искал минимум функции, но для совпадения с вашим FF нужно искать максимум, там два или три символа в коде отличаются.

 

Скопировал логику вашего FF, со всеми вложенными функциями. Код R можно писать в стиле очень похожим на c++ (или mql), вы поразитесь насколько он похож на ваш. К сожалению, такой стиль кода гораздо хуже по производительности. Результат тот-же, но функция работает намного медленнее. В принципе замедление не страшно, главное что вы код поймёте, это сейчас приоритетнее. Если хотите проверять быстродействие то берите прошлый вариант кода, если сравнивать код - то этот. Результат найденных букв в обоих случаях не отличается.

Файлы:
discropt3.txt  17 kb
 
Dr.Trader:

Внёс одно изменение в код именно оптимизатора - раньше я искал минимум функции, но для совпадения с вашим FF нужно искать максимум, там два или три символа в коде отличаются.

 

Скопировал логику вашего FF, со всеми вложенными функциями. Код R можно писать в стиле очень похожим на c++ (или mql), вы поразитесь насколько он похож на ваш. К сожалению, такой стиль кода гораздо хуже по производительности. Результат тот-же, но функция работает намного медленнее. В принципе замедление не страшно, главное что вы код поймёте, это сейчас приоритетнее. Если хотите проверять быстродействие то берите прошлый вариант кода, если сравнивать код - то этот. Результат найденных букв в обоих случаях не отличается.

Быстродействие мы рассматриваем в контексте данных тестов в последнюю очередь.