В 2009 году моим основным видом деятельности были фото и видеосъёмка. Тогда для обработки отснятых материалов взамен стационарного компьютера я решил попробовать использовать ноутбук. Мне нужен был мощный ноут с большим экраном, но в то время я не мог себе позволить купить новый, поэтому нашёл объявление о продаже со вторых рук. Созвонился и договорился о встрече с продавцом. На встречу пришёл молодой человек примерно моего возраста, и я спросил его о том, почему он решил продать свой ноутбук? Он ответил что-то типо того, что ему «срочно нужны деньги чтобы пополнить счет, но уже на след.неделе, когда фунт вырастет, он сможет купить себе такой же только новый»… Не знаю вырос ли тогда фунт, но надеюсь что у того парня сейчас всё хорошо!)
Это было 10 лет назад, а сейчас трейдинг, и именно алгоритмический трейдинг, является моим основным источником дохода. Как такое стало возможно? 10 лет назад я ничего не знал про биржи, был далёк от программирования и особо не дружил с цифрами…
Думаю, что спасибо надо сказать форекс дилерам, которые активно рекламировали свои услуги, проводили всякие обучающие курсы и продвигали торговлю на форекс в массы. Золотые горы они прямо не обещали, но складывалось впечатление, что заработать можно легко… и много!)
Первую реальную сделку я совершил через Java приложение в сотовом телефоне, потом какое-то время пробовал торговать через терминал Rumus, но в итоге остановился на MetaTrader, как на самой распространенной платформе.
Я торговал и по индикаторам, и по графическим паттернам, и по разнообразным уровням, по всему… наверно, только по кофейной гуще не пробовал) Получалось зарабатывать с переменным успехом, чаще не получалось. Но процесс был довольно увлекательным, и я не останавливался. Мне нравится пробовать решить задачи, которые, возможно даже, не имеют решения. Видимо, это сыграло свою роль.
Однажды, в MetaTrader я открыл для себя возможность автоматической торговли. Мне захотелось запрограммировать и проверить торговую систему которую считал перспективной.
Нашёл в интернете программиста, он попросил прислать ему Тех.Задание.
Начался процесс составления моего первого ТЗ. Мне тогда казалось, что в доступной форме донести идею торговой системы я никогда не смогу, но терпения у разработчика хватило и я получил своего первого торгового робота основанного на системе мартингейл.
Сейчас я уже знаю что такие ТС не перспективны...)
Постепенно мастерство составления тех.заданий мне поддалось и я начал заказывать разнообразные индикаторы, утилиты и роботов уже через биржу программистов фрилансеров на сайте mql5.com
Несколько полезных программ которые были разработаны по моему заказу я выставил на продажу на том же сайте в разделе Маркет. Таким образом окупил свои затраты на программиста и даже получил небольшую прибыль!
Сопоставляя свои ТЗ и написанный по ним код я начал чуток программировать сам, используя язык mql4, a позже mql5. Благо по этим языкам есть объемная документация и огромное количество примеров в базе кодов. Поэтому реализовывать какие-то простые идеи не составляет труда. Некоторые свои разработки я выкладывал в свободный доступ на MQL5 Маркете. Там можно увидеть статистику и географию загрузок. Всего мои бесплатные программы были скачаны примерно 1700 раз.
Чем темнее зеленый цвет тем большее количество загрузок было из этой страны.
В какой-то момент, я перешёл от простого перебора индикаторных систем к осмысленным исследованиям. При помощи скриптов, выгружал нужную информацию с графиков в эксель и проводил анализ уже там.
Такой процесс дал свои плоды. Мне стала очевидна вероятностная природа движения цены. Также здесь стоит упомянуть массу полезных статей, прочитанных в тот период, на сайте mql5, и книгу «Биржевой трейдинг системный подход», автор Александр Кургузкин, которая тоже оказала влияние. В итоге мой подход к созданию торговых систем полностью преобразился. Появились первые успехи. Шёл 2014 год...
С тех пор я многому научился. Выработал собственные принципы построения торговых систем. Разобрался с оптимизацией и научился обходить подводные камни связанные с этим процессом. Сейчас у меня достаточно много свободного времени. Я периодически слежу за тем, чтобы не было сбоев в работе выделенного сервера и торгового терминала, а оптимизацию роботов провожу раз в год или по мере необходимости.
Приведу пример моей работы по оптимизации одного из роботов.
Сначала я подготавливаю два набора данных с которыми будет работать тестер:
1. Минутные бары с фиксированным спредом и не большим количеством тиков.
2. Реальные Бид-Аск тики.
Далее перехожу к процессу оптимизации, оптимизирую точку входа:
На точку входа влияет один параметр (перебираем от 10 до 40 с шагом 2). Выход осуществляется по стопу или тейк-профиту, которые рассчитываются через коэффициент от волатильности и изменяются в пределах от 1 до 100. На данном этапе, чтобы определить наиболее перспективную точку входа, тэйк сделаем равным стопу (перебирать будем от 20 до 90 с шагом 5).
Итак, оптимизировать будем два параметра за 240 проходов. Результаты оптимизаций оцениваются через R-квадрат. Риск на каждую сделку рассчитывается от фиксированной суммы.
После первого прогона получаем вот такую картину:
По оси Х точка входа, по Y — размер стопа. Теперь надо выбрать точку входа с которой мы будем работать дальше, она находится в области с наиболее плотным распределением максимальных значений. В метатрейдере есть возможность отобразить результат оптимизации в 3d. Это может помочь.
После того как мы определили точку входа переходим к следующему этапу, оптимизируем выход. Здесь будут перебираться стоп и тейк. В итоге получаем вот такую картину:
И так же находим наиболее перспективное сочетание. Теперь у нас есть точка входа и параметры определяющие выход.
Можно еще пробовать экспериментировать, комбинировать вход с другими вариантами выхода, такими как трелинг-стоп, выход по времени, по обратному сигналу или перенос в безубыток, но для примера нам достаточно.
Реальные тики нам понадобятся для оптимизации исполнения ордеров, а так же нужно будет проанализировать сделки и определить время в которое лучше не торговать. После этого запустим форвард тест и убедимся, что выбранный алгоритм оптимизации дает стабильный результат.
Далее включим период форварда в оптимизируемый период, повторим тот же алгоритм оптимизации и запустим ТС в бой!
Вот некоторые рекомендации касательно алготрейдинга:
1. Надо понимать на чём зарабатывает ТС. Какая логика заложена в основу.
2. В торговой системе не должно быть много параметров которые определяют точку входа и выхода. Если параметров будет много, то возрастает риск получить переоптимизацию или, так называемую, подгонку под историю.
3. Стоп, тейк и трейлинг не должны измеряться в пунктах. Размер этих переменных надо выражать через коэффициент от величины характеризующей волатильность.
4. Учитывать особенности моделирования котировок в тестере-оптимизаторе. Это позволит уменьшить несоответствие результатов тестовых и реальных.
5. Выработать подходящий алгоритм оптимизации. Который дает наиболее стабильные результаты.
На сегодняшний день в моём алго-арсенале есть портфель торговых систем, которые запущены в работу на базе платформы MetaTrader. Новые разработки, исследования и оптимизации я провожу там же. Так что спасибо стоит сказать и в адрес MetaQuotes, за полезный интернет ресурс и за то, что создали доступную и удобную платформу для алготрейдинга.
Сейчас через МТ уже можно торговать не только форекс, постепенно я тоже подбираюсь к биржевым рынкам. Присматриваюсь к вариантам как организовать алго-трейдинг через Interactive Brokers. В планах интерполировать имеющиеся торговые системы на новые инструменты. И еще хотелось бы поработать с командой из программистов и трейдеров.
На этом всё, спасибо за внимание!
Я проводил ряд форвард тестов, на разных интервалах, сравнивал множество лучших систем со стандартными классическими параметрами (например стохастик 14 зоны 30 70) и системы с оптимизированными параметрами. В последующих периодах системы с классическими неопримизированными параметрами смотрелись лучше
Возможно, вы просто подгоняете параметры под конкретный период времени, а вне периода они перестают работать потому что логика заложенная в торговую систему не выявляет рыночные неэффективности…
назовите хотя бы одну рыночную неэффективность, которую вы нашли, только не общими словами, в стиле вашей презентации, а конкретно. Нерабочую сейчас, неважно. Жду, спасибо!
Какую же рыночную неэффективность она использует?
Чтобы избежать подгонки при оптимизации вы используете 2D и 3D модели и этого достаточно?
ну т.е. нечто измеримое, как среднемесячный или годовой доход, или там квартиру удалось купить именно таким способом, или капитал какой сформировать именно с трейдинга.
10 лет вполне серьезно — собственно, понимать стоило ли делать это основным доходом?
а стоп от волы примерно как считаете ?