Библиотеки: TesterCache - страница 6

 
fxsaber:

Не искал, т.к. такой задачи не было. Мне достаточно получать последний. Они же еще и перезаписываются Тестером...

Поэтому беру последний и сохраняю в песочницу под нужным именем.

А если последний по дате файла не определить по причине наличия ранней оптимизации?

 
Aliaksandr Hryshyn:

А если последний по дате файла не определить по причине наличия ранней оптимизации?

Не в курсе, какая у Вас задача стоит. Найти можно и предпоследний по дате. Но по названию - вряд ли.


ЗЫ На этих выходных взялся за один проект, где библа будет использоваться. Если осилю, то в течение суток выложу в КБ. Там можно будет, наверное, посмотреть, как работаю с кешами.

 
Нужно для реализации разных алгоритмов оптимизации. Тестер управляется, писал библиотеку, кэш читается, не хватает однозначного сопоставления его с конкретной оптимизации с заданными параметрами. Хотелось бы без всяких "если".
 
Aliaksandr Hryshyn:
Нужно для реализации разных алгоритмов оптимизации. Тестер управляется, писал библиотеку, кэш читается, не хватает однозначного сопоставления его с конкретной оптимизации с заданными параметрами. Хотелось бы без всяких "если".

Провели оптимизацию - сохранили себе opt-файл. Если нужны предыдущие оптимизации - берем свои opt-файлы.

 
fxsaber:

ЗЫ На этих выходных взялся за один проект, где библа будет использоваться. Если осилю, то в течение суток выложу в КБ. Там можно будет, наверное, посмотреть, как работаю с кешами.

Выложил в КБ. И обновил ExpTradeSummary.mqh.

 
В демо-скрипте сейчас задвоен принт Print(Cache.Header.ToString());
 
Stanislav Korotky:
В демо-скрипте сейчас задвоен принт Print(Cache.Header.ToString());

Вроде, нет такого.

 
fxsaber:

Вроде, нет такого.


void OnStart()
{
//  TESTERCACHE<MATHEMATICS> Cache;             // Оптимизация в мат. режиме
//  TESTERCACHE<TestCacheSymbolRecord> Cache;   // Оптимизация по символам
  TESTERCACHE<ExpTradeSummary> Cache;         // Стандартная оптимизация

  if (Cache.Load(inFileName)) // Прочитали оптимизационный кеш.
  {
    Print(Cache.Header.ToString()); // Вывели основные данные оптимизационного кеша.
    MqlParam Params[][5];
    const int Size = Cache.GetInputs(inNum, Params); // Считали соответствующие оптимизируемые входные параметры.

    Print(Cache.Header.ToString()); // Вывели основные данные оптимизационного кеша.
    Print(Cache[inNum].ToString()); // Вывели стат. данные запрошенной записи
    ArrayPrint(Params);             // Вывели ее оптимизируемые входные параметры.

//    Cache.SaveSet(inNum); // Создали set-файл соответствующей записи.
//    Cache.Save(__FILE__); // Сохранили в opt-файл.

//    Print(Cache[GetMaxProfitPos(Cache)].ToString()); // Вывели стат. данные записи с максимальной прибылью.
  }
}
 
Stanislav Korotky:

Обновил, спасибо.

 
Как я раньше писал, с некоторого бета-релиза мой эксперт с фреймами, который работал больше года со всеми билдами, стал работать неправильно, и я перестал обновлять. Теперь с выходом релиза меня обновили насильно, а фреймы стали работать ещё хуже (с моим экспертом, и при тестировании за несколько лет).
Теперь я окончательно решил перетечь на библиотеки работы с кешем (жаль, что они не появилось раньше).
Сразу внёс добавление. В функцию поиска свежего кеша передаю время/дату, новее которого интересует файл. Время запоминаю перед запуском очередной оптимизации из мультитестера.
Кроме того, в обеих библиотеках (.opt и .tst) будут полезны 2 функции загрузки, средствами MQL и WinAPI. Не считая загрузки из массива. Для полноты, сам-то я сделал чтение извне в массив.

Преобразование времени из ulong Windows в datetime несложно, но если что, могу выложить завтра.