Блог им. Vanches

Моё выступление на Конференции

В 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. В планах интерполировать имеющиеся торговые системы на новые инструменты. И еще хотелось бы поработать с командой из программистов и трейдеров.

На этом всё, спасибо за внимание!
★16
Я не понял, на каких рынках работаете, валюта?
avatar

broker25

broker25, да
avatar

Vanches

Vanches, насколько важна оптимизация по параметрам?
Я проводил ряд форвард тестов, на разных интервалах, сравнивал множество лучших систем со стандартными классическими параметрами (например стохастик 14 зоны 30 70) и системы с оптимизированными параметрами. В последующих периодах системы с классическими неопримизированными параметрами смотрелись лучше
Апостол Андрей, я правильно понял, что сначала вы оптимизируете параметры индикатора, который служит сигналом для входа, и потом на форвард тесте, сравниваете результаты использования «оптимизированного» индикатора и «классического»?
Возможно, вы просто подгоняете параметры под конкретный период времени, а вне периода они перестают работать потому что логика заложенная в торговую систему не выявляет рыночные неэффективности…
avatar

Vanches

Vanches, 
потому что логика заложенная в торговую систему не выявляет рыночные неэффективности…

назовите хотя бы одну рыночную неэффективность, которую вы нашли, только не общими словами, в стиле вашей презентации, а конкретно. Нерабочую сейчас, неважно. Жду, спасибо!
Дмитрий Овчинников, сейчас всё работает… www.mql5.com/ru/blogs/post/650997
avatar

Vanches

Vanches, 
www.mql5.com/ru/blogs/post/650997
это совсем не то, о чем я вас спрашиваю. Это обычная торговая система,  переоптимизированная со странными параметрами, типа период расчета индикаторов=34.
Какую же рыночную неэффективность она использует?
Дмитрий Овчинников, тогда мне не понятен ваш вопрос.
avatar

Vanches

Vanches, да, именно так.
Чтобы избежать подгонки при оптимизации вы используете 2D и 3D модели и этого достаточно?
Апостол Андрей, 2д и 3д это варианты отображения одних и тех же результатов оптимизации. А на тему «Как избежать переоптимизации?» вы можете найти достаточно информации на просторах интернета… Удачи!
avatar

Vanches

Спасибо!
avatar

Фёдор

Вы, сумели удивить. Все ждал строчку продаю прибыльных роботов.
avatar

Антон Зюзин

Как страшно стало жить в этом мире..)
avatar

YuryDok

Очень интересное изложение. Профессиональное. Не каждому такое удается.
avatar

SectorC

SectorC, благодарю! ++
avatar

Vanches

Было бы бесценно еще добавить такой разрез, как доходы с трейдинга.
ну т.е. нечто измеримое, как среднемесячный или годовой доход, или там квартиру удалось купить именно таким способом, или капитал какой сформировать именно с трейдинга.
10 лет вполне серьезно — собственно, понимать стоило ли делать это основным доходом?
avatar

wildcad

поначалу было интересно читать, потом пошла муть.
avatar

Биотехнолог

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

а стоп от волы примерно как считаете ? 
avatar

Skifan

Skifan, кроме классики (от ATR), самое простое: от ширины боллинждеров или отценового канала.
avatar

Vanches

Господа, ответьте мне, а можно ли обойтись без оптимизаций? :)
avatar

Kartes


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW