Постов с тегом "Бэктестинг": 136

Бэктестинг


Python в помощь тестированию структурных продуктов

Воодушевлённый статьёй с рекламой структурных продуктов на Хабре, адаптировал python-скрипт для их самостоятельного тестирования. Основная идея в том, что подобные продукты предлагают 100% защиту капитала.  А учитывая 10 лет бычьего рынка, исторические показатели подобных продуктов одурманивают безрисковым раем.

Скрипт подойдёт для быстрого и понятного тестирования своих портфелей с ребалансировкой в разные периоды. Ну а кому-то данный инструмент может пригодиться для самостоятельного построения подобных стратегий. Их наипростейшей формы. Однако брокеры пишут, что это не каждому под силу.

Код выложен в GitHub в виде Jupyter-блокнота. Поехали!



( Читать дальше )

Больше риск - больше прибыли?

Больше риск - больше прибыли?

Финансовые рынки это уникальный вид бизнеса.

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

Предыстория: Андрюша молодой бизнесмен со своим мебельным цехом. Андрей стал моим клиентом в августе 2016 года. Мы обсудили с ним стратегию сотрудничества и начали с небольшой для него суммы (10 тыс). Каждый месяц свободные средства он довносил на свой счет, поэтому депозит стремительно рос. Андрею еще и повезло попасть на волатильный период, за который удалось превысить среднюю полугодовую доходность. Лично для меня +40% за полгода это отличный показатель, но Андрею, как и любому другому инвестору, было мало. Его предложение изменить стратегию и увеличить риск было отклонено. Следующих полгода закрылись с доходностью +20% (август 2017). Его это сильно расстроило. Было принято решение вывести половину средств, ведь у него появились более прибыльные “темы”. Торговля продолжалась в спокойном режиме. В моменты просадок по счету, у Андрея сидело по несколько волосков. И в середине



( Читать дальше )

Обучение S#.Designer + 2 стратегии в подарок, курс за пол цены. Осталось 2 места, на полный курс.

    • 07 июня 2019, 11:07
    • |
    • SerWer
  • Еще
ХВАТИТ ТОРГОВАТЬ РУКАМИ.
Осталось 2 места за полцены, на полный курс.
Обучение S#.Designer для создания прибыльных торговых роботов + 2 стратегии в подарок.

Опубликована статистика бэктестов 1-й подарочной стратегии.
crowd.stocksharp.ru/product/designer/

Содержание курса.
stocksharp.ru/articles/10689/obuchenie-designer!-plan-videokursa-uzhe-tut!/

Обучение S#.Designer + 2 стратегии в подарок, курс за пол цены. Осталось 2 места, на полный курс.
График прибыли 1-й стратегии.


Обучение S#.Designer + 2 стратегии в подарок, курс за пол цены.

Обучение S#.Designer для создания прибыльных торговых роботов + 2 стратегии в подарок.
Хватит торговать руками.
Осталось мало мест, всего то за пол цены.

Опубликована статистика бэктестов 1-й подарочной стратегии.
crowd.stocksharp.ru/product/designer/

Содержание курса.
stocksharp.ru/articles/10689/obuchenie-designer!-plan-videokursa-uzhe-tut!/




Друзья, кто собаку съел на оптимизации и бэктестинге? Прошу вашего совета.

Есть те, кто автоматизировал, бэктестил и оптимизировал свою ручную систему? Пытаюсь найти способы прогнать свою ТС на истории, но нет опыта в этом. Может быть вы подскажете как лучше и проще это сделать?

Господа, прошу совета в способах оптимизации параметров торговой системы.

Примерные ТТХ системы: система на основе дивергенций: a) инструмента с индикатором №1; b) инструмента с индикатором №2; c) индикатора №1 и индикатора №2 между собой. Тип — intraday (опционально с переносом на вечернюю сессию и через ночь). Условия для входа в сделку не формализованы, окончательное принятие решения о заключении сделки принимается трейдером. Выход из сделки в большинстве случаев осуществляется по условиям системы, в отсутствии которых сделка закрывается либо через trailing-stop, либо перед закрытием основной сессии. Выход с убытком осуществляется через stop-loss за ближайшим локальным экстремумом цены или индикатора. 
 
 Задачи: оптимизировать кол-во пунктов, пройденное инструментом (как относительно текущей цены инструмента, так и относительно величины дивергенции) в направлении потенциальной сделки, при котором входим в позицию, проверить потенциал входа и выхода частями (одинаковыми и различными), оптимизировать выделяемую на каждый инструмент часть средств, проверить возможность переноса сделок на вечернюю сессию и через ночь.

( Читать дальше )

тестирование системы BWS

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

 


Вот он мой бэктестер-оптимизатор, моя прееелесть.

У хорошего мастера должны быть хорошие инструменты – у кузнеца – молот, у столяра – рубанок, у алготрейдера… — оптимизатор.


Выкатил новую версию.

 

Настоящий мужской оптимизатор конечно же должен быть консольным. Этот красавчик быстр – 10 лет 5-минуток на простой стратегии вместе с вычислением всяких там PF, RF 0,3 секунды. И это на одном потоке! (с многопоточностью, к слову, пока не смог подружить, но заложил такую возможность).

Бэктестер берет задания из csv файла и пашет. Т.е. на данный момент задания на оптимизацию задаются в момент создания файла с заданиями, решил поменять план оптимизации – меняю файл – меняется дальнейшая оптимизация. Т.е. по факту сейчас план на оптимизацию предустановленный, но легко прикрутить в дальнейшем оптимизацию с обратной связью на результаты предыдущих бэктестов. Меня всегда смущали стандартные оптимизаторы в этой части – где перебирается один параметр, или несколько строго итерационно, но я не мог задать явно другие алгоритмы перебора или в общем случае даже не перебора, а «изменения» значений. А здесь могу: т.е., могу за раз закинуть задания сразу на нужное количество гипотез, хочу посмотреть, как стратегия себя ведет между тикерам – не трогаю ничего, меняю только тикер, хочу проверить как ведет себя между тайм-фреймами – меняю только тайм-фреймы и т.д., т.е. минут за 5-10 во всемогущем экселе можно создать файл с заданиями для нужного набора гипотез. Потом когда бэктестер отработает – берешь эксельку и дата-майнишь данные.

Все-таки когда ты точно знаешь, чего хочешь, свой бэктестер это кайф! Нужна скорость, но не нужна какая-то функциональность – супер, не делаешь тормозящую функциональность, получая преимущество в скорости, интересует какая-то конкретная парадигма в оптимизации – отлично, пилишь архитектуру именно под парадигму, без оглядки на стандартные «лучшие практики», «модные мнения» и прочие «а вот я так делаю, а ты какую-то херню».

Более менее ООПшная прога получилась, так что есть надежда, что можно мяса при необходимости накрутить с контролируемым уровнем сложности и поддерживаемости.

Если вдруг кто-то собирался завидовать – не надо, вам бы не понравился мой оптимизатор. Думаю, он будет нравиться только мне! :)


Как создать тестерный грааль - 2

Классический случай =)
Можно во время бэктеста случайно забыть одно важное обстоятельство, после чего любоваться на красивую эквити. Во время входа в сделку внутри свечи тестер знает только значение фильтра за прошедший бар. Если этого не учесть, система будет радостно входить в каждую сделку, зная о том, как поведет себя фильтр в будущем на протяжении текущего бара и получая его одобрение на вход заранее, что в реальности, естественно, невозможно, и подобная ошибка будет стоить вам денег.
Из этого можно извлечь все ту же истину — слишком красивые результаты — главный сигнал к поиску ошибки =)
Слева пример того, как система себя поведет, если знает как закроется бар, справа — поведение системы, если она этого не знает.
Как создать тестерный грааль - 2


....все тэги
UPDONW
Новый дизайн