← Назад

Оптимизация

Добрый день. Подскажите пожалуйста, почему оптимизация каждый раз выдает разные результаты? Как вы сами проводите оптимизацию? Дизайнер или что-то свое? Спасибо 😂

Комментарии (4)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Sprite
Sprite

Вставлю свои 5 коп. Я не знаю что такое оптимизация, но если данные одинаковые, то и результаты одинаковых вычислений по этим данным должны быть одинаковыми. Вы точно используете одни и те же данные для тестирования, например грузите данные Level2, а не генерируете стакан?

Greenn
Greenn Автор

sprite: Вставлю свои 5 коп. Я не знаю что такое оптимизация, но если данные одинаковые, то и результаты одинаковых вычислений по этим данным должны быть одинаковыми. Вы точно используете одни и те же данные для тестирования, например грузите данные Level2, а не генерируете стакан?

Добрый день.

Оптимизация нужна, чтобы проверить устойчивость ТС: посмотреть, как она себя ведет при различных значениях ее параметров. Это следующий этап после написания стратегии. А как вы тестируете свои стратегии? Работаете только через код или используете другие программы?

План действий в Дизайнере

Screenshot_5.png

Оптимизация. Ранжируем по коэф. восстановления

Первый прогон Screenshot_3.png

Второй прогон Screenshot_4.png

Получаются разные результаты (Данные о стаканах, Level1, тиках, свечках присутствуют) Генерируются ли стаканы - это нигде не узнать (я не нашел такого пункта в настройках )

Sprite
Sprite

Greenn: Данные о стаканах, Level1, тиках, свечках присутствуют Я не знаю что там и как делает S# Designer, но, если в стратегии используются данные Level1 или Level2, а этих данных нет в хранилище (файлы level1.bin, quotes.bin) то, насколько я понимаю, стокшарп будет генерировать эти данные из тиков/свечек каждый прогон. Это я и имел ввиду под возможной причиной того, что у вас получаются разные результаты при одинаковых настройках. Если дело не в этом, то мои 5 копеек были не в тему.

Greenn: А как вы тестируете свои стратегии? Работаете только через код или используете другие программы? Я не использую логику "взять несколько свечей, сосчитать среднее что-то там и посмотреть что будет" (т.е. всякие SMA, EMA и т.п. индикаторы) для принятия торговых решений, т.е. по сути мне нечего "оптимизировать", меняя периоды. А вообще для тестирования я сделал коннектор, по типу встроенного HistoryEmulationConnector, который делает всё что мне надо и как мне надо, в том числе грузит доступные маркет данные из хранилища, сортирует их по дате и гоняет в цикле, именно для того, чтобы быть уверенным что изменение котировки в стакане, тика, транзакции и пр. в момент М будут каждый прогон происходить в одной и той же последовательности.

Greenn
Greenn Автор

sprite:

Greenn: Данные о стаканах, Level1, тиках, свечках присутствуют Я не знаю что там и как делает S# Designer, но, если в стратегии используются данные Level1 или Level2, а этих данных нет в хранилище (файлы level1.bin, quotes.bin) то, насколько я понимаю, стокшарп будет генерировать эти данные из тиков/свечек каждый прогон. Это я и имел ввиду под возможной причиной того, что у вас получаются разные результаты при одинаковых настройках. Если дело не в этом, то мои 5 копеек были не в тему.

Greenn: А как вы тестируете свои стратегии? Работаете только через код или используете другие программы? Я не использую логику "взять несколько свечей, сосчитать среднее что-то там и посмотреть что будет" (т.е. всякие SMA, EMA и т.п. индикаторы) для принятия торговых решений, т.е. по сути мне нечего "оптимизировать", меняя периоды. А вообще для тестирования я сделал коннектор, по типу встроенного HistoryEmulationConnector, который делает всё что мне надо и как мне надо, в том числе грузит доступные маркет данные из хранилища, сортирует их по дате и гоняет в цикле, именно для того, чтобы быть уверенным что изменение котировки в стакане, тика, транзакции и пр. в момент М будут каждый прогон происходить в одной и той же последовательности.

Благодарю за ответ.