Роботы… Как много в этом слове для уха трейдера слилось!
Как? Откуда? С чего начать?
Как ни банально, но для начала необходимо определиться со стратегией. Она может быть создана либо основываясь на стратегии других трейдеров (Резвяков, привет! Ударные дни легли в основу самого первого робота, который работал и зарабатывал у меня 1.5 года назад), либо — основываясь на собственных ощущениях и понимании рынка.
Мы пойдём путём наиболее логичным и, на мой взгляд, правильным — будем исследовать рынок на истории, искать и наблюдать закономерности, их тестировать. А в случае успеха — реализовывать в торговом роботе.
шаг 0 — что почитать?
1)
Кургузкин А.А. Биржевой трейдинг: системный подход
Лучшая книга по системному трейдингу. Полезна всем и каждому, в независимости от вашей причастности к роботам.
Далее книги по C# — учимся программировать и готовимся к тестированию / реализации своих будущих алгоритмов:
2)
Герберт Шилдт. C# 4.0 полное руководство.
3)
http://msdn.microsoft.com/ru-ru/library/bb383962%28VS.90%29.aspx
4)
http://msdn.microsoft.com/ru-ru/beginner/ee344863.aspx
5)
http://www.youtube.com/user/geekitdevelop
Шаг 1 — поиск закономерностей:
открываем график, накладываем
индикаторы (хаха), ищем индикаторы/их пересечения, которые позволят нам обнаружить начало движения / его остановку / пилу /… Собственно всё то, что может стать костяком нашего будущего робота.
Кому индикаторы не внушают доверие — начинаем анализ стакана, ленты, строим объёмные уровни, анализируем дельту — и используем всё это для того же самого — понимания и осознания как что где может работать.
Вот один из примеров.
Все тут не первый год на рынке, поэтому у каждого есть свои наблюдения, которые он бы хотел протестировать.
Шаг 2 — тестирование
Для многих это первый затык, который останавливает.
Для тестирования берём либо Wealth-Lab (лучше брать версию не младше 5.0 — присутствует .Net язык C#. С помощью Wealth-Lab я умудрялся даже тестировать стратегии, основанные только на объёмах (кому интересны детали как — можно личкой / в комментах)),
либо — вариант более проффесиональный и намного лучше для будущего —
библиотека Stock# (мой выбор).
Кому-то может для тестов подойдёт и TsLab. На вкус и цвет все фломастеры разные.
Для начала в любом случае советую выбрать тестировщик с визуальным редактором.
Программируем наши первоначальные идеи-закономерности, смотрим на первые результаты. Если не сливает — уже отлично.
Добавляем / тестируем разные варианты выхода / входов. Перестановки стопа, выхода по времени, добавляем фильтры, убираем фильтры,… Стараемся получить лучший результат (доходность, просадка, ...), при этом не увеличивая число параметров стратегии.
Тестируем на разных интервалах, в разные периоды.
При тестировании учитывайте:
1) Стратегия должна быть простой, она должна быть обоснованной и логичной.
Закономерность, что сбербанк надо шортить в том случае, если 47 часовых свечек назад лукойл рос — бред, на помойку.
2) Параметров не должно быть много, старайтесь не перегружать систему параметрами. Чем меньше параметров — тем лучше. Если введение параметра лишь немного улучшает систему — от такого параметра стоит вообще избавиться и сделать систему таким образом более стабильной.
3) При тестировании параметров выбирайте не лучшее значение, а среднее значение среди стабильного диапазона. Т.е. при небольшом изменении параметра система должна работать также хорошо.
К примеру, если на параметре X равном 1.2 система показывает 100% прибыли, а на 1.1 и 1.3 — 10%; при этом в диапазоне 2.1 — 2.5 система показывает в среднем 60-80%, то стоит брать параметр именно 2.3 — средний от диапазона.
4) Старайтесь тесты максимально приближать к реальным торгам — учитывайте комиссии, проскальзывания берите больше чем могут быть.
И самое главное — 5) Перепроверяйте всё по 10 раз. Все полученные сделки просмотрите — что нет заглядывания в будущее, что всё именно так, как и предполагалось.
Данный этап может быть самым длительным и не все подойдут к третьему этапу, но если вы дошли — значит уже сделано более половины пути.
Продолжение следует...
надо как-то подробнее, с картинками, наверное, отдельно каждый пункт описать.
ладно, может осилю :)
10 входов, 7 в + пока. Порядка 3000пп взяла.
я подумаю =)
ждем продолжения
продолжайте развивать тему.
ошибки, если есть, довольно быстро находятся и исправляются.
обязательное условие тестирования:
1)тестируем на периоде где обязательно есть просадки и боковики, а не только рост.Лучше всего чтобы период тестирования начинался и заканчивался на примерно одном уровне цен (+- 20%)
2)Комиссии и проскальзывание НЕ МЕНЕЕ 0,1% от сделки! ПОВТОРЯЮ-НЕ МЕНЕЕ! Все личные довыды «да мой робот сможет быстрее реализовывать сделку»,«да я руками буду покупать сразу по сигналу» фтопку! Закладывайте лучше ваще 0,2% и нивкоем случае не принебрегайте этим показателем, я ваще считаю что он главный в тестинге.
3)обязательно оставляйте период(как правило самые свежие данные) где не проводили тестирование и после оптимизации своих показателей тестируйте на этом новом периоде.Только такой метод форвард-тестинга поможет выявить переоптимизировали ли вы или нет! ну автор думаю в дальнейших постах это опишет.
п.с.Автору мегареспект за столь понятное обьяснение этого аспекта трейдинга!
в среднем выходит 35пп (в районе 100 контрактов), поэтому результаты в реале получаются лучше тестов.
Можно в формате как здесь:
smart-lab.ru/blog/mytrading/4037.php
Или в любом другом.
главный плюс — сам код стратегии, который выводится на реальную биржу не надо никуда переписывать, всё делается также и гарантируется, что не будет распространённой ошибки — заглядывания в будущее.
в след. посте тогда подробнее отвечу.
думаю об этом можно с уверенности говорить через N лет.
стратегии устаревают и постоянно разрабатываются / тестируются новые.
поэтому торговля роботами — такой же путь как торговля руками.
только время уходит на создание, а не на торговлю.
Запускаются утром, сами вечером выключаются — всегда уверен что всё стабильно работает.
Смартком мягко говоря не стабилен.
Пожалуй, единственное, что будет интересно, это dynamic и optional params в функциях.
Ну я инвестор, мне проще.Мне эти шумы и мелкие телодвижения не интересны.
А инфа выложена грамотно.Даже мне понятно.
Если программировать умеете — то можно только Кургузкина. Его советую читать всем и каждому настоятельно.
Очень интересная инфа, продолжай писать!
Скажи, а через что ты торгуешь и на чем робот?
Я тоже занимаюсь роботостроением, пока правда только на начальной стадии, есть небольшая программка на Qpile, напрямую в QUIK ее гружу и работает)
Понимаю, что дальше надо юзать чтото посерьезнее — но никак не определюсь с выбором.
Как выбирал ты? Другие комментарии будут также интересны)
Wealth-Lab для тестинга идеально? а программа сама на чем и как коннектиться к квику?
спс)
я торгую через квик, робот на C# — по DDE получает инфу из квика, через Trans2Quik — передаёт заявки. Сделано через библиотеку Stock#.
Я тоже начинал с qpile. Потом быстро ушёл с него.
В следующем посте напишу свой опыт.
Wealth-Lab — хороший вариант для тестирования. Лучше многих.
а вот с DDE и Trans2quik — там задержек нет при передаче данных? или они несущественны
если не скальперская стратегия — то всё отлично.
если скальперская — надо под плазу писать.
задержки в получении данных минимальны, меньше 0.1сек точно.
Десятки тысяч заявок в минуту тоже тянет — больше, чем потянет плаза.
Те стратегии, которые сейчас реализую в Wealth-Lab'e вообще невозможно реализовать. Вроде Церих рекламировал какой-то адаптер к квику, можно к ним обратиться если вдруг такое желание возникло.
если тестить на истории — используйте Wealth-Lab / TsLab /…
TSLab в демо доступ на месяц дает Финам, берите и пробуйте.