Библиотеки: SingleTesterCache - страница 2

 
Edgar Akhmadeev:

Не знаю, как происходит в блогах, появление нового комментария (если это не ответ) как-то сигнализируется? Или лучше писать в одной из тем форума, где видно появление новых комментариев?

Автору записи в блоге приходит ЛС при появлении нового комментария. Читателей же никак не уведомляют, к сожалению.

Почему не опубликовали в КБ? Было бы удобнее.

Потому что использует семь библиотек (16 mqh файлов) из КБ. КБ не позволит выложить только mq5 без этих библиотек. EX5 в КБ так же запрещены.

Так где писать для оперативного реагирования?

Пишите на форуме. Тема все равно касается tst.

 

TesterPortfolio. Всё работает. Подоспела как раз когда стала нужна. Такая же история произошла с MultiTester. Огромная благодарность.

Напрашивается 

input string Portfolio = "Expert1.EURUSD|1.0,Expert2.AUDUSD|0.5";

для фильтрации файлов Expert1.EURUSD.M1.*_*.*.*.tst и выбора самого нового из них, и задания веса для каждого инструмента. И ручной работы для копирования нужных tst не нужно будет. Отбирать файлы через WinAPI прямо из Tester\cache.

А если известен принцип именования файлов, чтобы сразу найти последний файл, можно сделать линк на кэш и работать встроенными средствами. Как формируется окончание имени, типа "*.4.EDE6CD7716E7B1FAB6207685F7921E65.tst"? Но это вряд ли.

 
Edgar Akhmadeev:

Напрашивается

Делал для себя, поэтому такой функционал мне был бы неудобен. Это проба пера. Исходники не сложные, поэтому добавить свой функционал смогут многие.

А если известен принцип именования файлов, чтобы сразу найти последний файл, можно сделать линк на кэш и работать встроенными средствами. Как формируется окончание имени, типа "*.4.EDE6CD7716E7B1FAB6207685F7921E65.tst"? Но это вряд ли.

Не анализировал, как формируется имя файла. Чтение самого свежего файла было в примере выше.


Если у Вас толстокожая ТС, то 99% потребностей покроет бесплатный сторонний продукт, скрин которого есть в блоге (Только сегодня его заметил. Оказалось, известная вещь.).

Мне же нужно для очень тонкой настройки. Вижу это так.

  1. Через MultiTester делается уйма Оптимизаций с выбором хороших проходов (сотни штук - норма).
  2. Через ядро TesterPortfolio для каждого прохода создаются соответствующие ряды эквити - именно здесь вся новизна.
  3. Мат. методами находятся оптимальные весовые коэффициенты для этих рядов.
  4. Составляется оптимальный портфель из малого количества проходов и запускается TesterPortfolio для них.
  5. По итогу ставим на реал портфель ТС.

Замечу еще раз, что исходники торговых советников не нужны. Можно составлять портфели исключительно из Маркет-продуктов. Создавать более сильные решения, чем сами авторы этих Маркет-продуктов. При этом платить не надо совсем.


ЗЫ Шаги к 2-4 никакого отношения не имеют к поиску профитной ТС. Только первый шаг косвенно касается этой темы. Поэтому многим имеет смысл заниматься этими шагами именно на Маркет-советниках, т.к. там авторы уже что-то сами нашли.

 
fxsaber:

Делал для себя, поэтому такой функционал мне был бы неудобен. Это проба пера. Исходники не сложные, поэтому добавить свой функционал смогут многие.

Не анализировал, как формируется имя файла. Чтение самого свежего файла было в примере выше.

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

fxsaber:

Мне же нужно для очень тонкой настройки. Вижу это так.

  1. Через MultiTester делается уйма Оптимизаций с выбором хороших проходов (сотни штук - норма).
  2. Через ядро TesterPortfolio для каждого прохода создаются соответствующие ряды эквити - именно здесь вся новизна.
  3. Мат. методами находятся оптимальные весовые коэффициенты для этих рядов.
  4. Составляется оптимальный портфель из малого количества проходов и запускается TesterPortfolio для них.
  5. По итогу ставим на реал портфель ТС.

У меня методика такая:

  • Мой мультитестер (на основе Вашей идеи кликера) проводит генетические оптимизации на OHLC, пока не перестанет получать улучшений за последние N попыток. Это 10-20 генетических оптимизаций.
  • Затем переходит к медленной оптимизации по группам связанных параметров, в узком диапазоне.
  • Затем - к оптимизации по тикам в ещё более узком диапазоне.
  • Включает вычисление лота от баланса и оптимизирует степень риска. Это будет вес в портфеле.
  • Я пока здесь.
  • А дальнейшая работа - получаем графики эквити по наоптимизированным инструментам в соответствии с весами, создаем портфель и оптимизируем общую степень риска.
 
С тормозными советниками стало проще.

Ускорение бэктеста. Например, имеете советник, который очень долго делает одиночный проход (автооптимизатор внутри или другой тормоз). В таком случае прогнать его на разных интервалах или посмотреть визуализацию - большая проблема. TesterPortfolio же делает его прогон очень быстрым.

 

Аргументировано на тему диверсификации.

Будем оценивать влияние портфеля ТС на максимальную просадку.


Взял четыре ТС.


И объединил их в один портфель с одинаковыми весами.


Данная сторонняя программа умеет считать просадку только по балансу. Поэтому применим TesterPortfolio для точной оценки просадки (и других показателей).

EA MaxDD_Balance MaxDD_Equity
1 909 1117
2 981 1173
3 1076 1160
4 860 1086
1+2+3+4 875  961

По таблице хорошо видно, что просадка портфеля ТС рухнула, как по балансу, так и по эквити.


Используйте портфели ТС, даже если ТС одна!

 
Это правда. Я потому и оптимизирую советник на нескольких инструментах. Запускаю минимум на шести. Мажоров семь. Пока не дошел до кроссов, не знаю, прибыльны ли.
И ещё надо бы учитывать корреляцию валют, не все наборы улучшают портфель.
 
Что есть поля price_open и price_close в сделке? По идее в сделке только 1 цена может быть и тестер именно так показывает. Судя по проведенному сравнению, price_open - это всегда цена сделки, а price_close - цена обратной сделки (т.е. открытия позиции (in), когда смотришь сделку out). Если это так, то почему такие сбивающие с толку названия?
 
Stanislav Korotky:
Что есть поля price_open и price_close в сделке? По идее в сделке только 1 цена может быть и тестер именно так показывает. Судя по проведенному сравнению, price_open - это всегда цена сделки, а price_close - цена обратной сделки (т.е. открытия позиции (in), когда смотришь сделку out). Если это так, то почему такие сбивающие с толку названия?

Это так. Названия полей получены от разработчиков и не менялись.

 
Функция  
 Print

не пишет в логи сообщений с 2 примеров на странице с библиотекой.

Пошагово:

1. запускается в тестере любой советник

2. вешается скрипт 20ой к которому указано что " В КБ нельзя размещать DLL-решения, поэтому ниже исходный код другого скрипта, что не входит в КБ-поставку.".

3. График выводится баланса,сет файл создаётся а в логи ничего не пишется(статистика)


P.S. Поправка ни в каком скрипте не выводится информация по команде Print даже текстовая строка или число

Причина обращения: