Блог им. VDV

Торговая система - алгоритм создания и тестирования МТС

Ну чтож, вот и пришло время создать первую механическую торговую систему (МТС) и протестировать её в Wealth Lab…
Процесс создания механической торговой системы достаточно прост. Но это простота — кажущаяся.
Этап 1: Проектирование торговой системы на бумаге

 
На первом этапе необходимо продумать и решить — как будет функционировать механическая торговая система (МТС). Для этого нужно поставить перед собой вопросы:
  • Какие принципы будут заложены в основе торговли.
  • Когда нужно входить в позицию,  и когда выходить из позиции.
  • Какие бумаги будем торговать,
  • на каком таймфрейме.
  • Будем ли шортить...
Допустим, мы собираемся торговать тренды.
Основной принцип нашей МТС — это следование тренду. Соответственно девиз этой МТС — растет — покупай.
Торговать собираемся только ликвидные бумаги, торгующиеся на ММВБ.
У нас нет цели постоянно сидеть перед компьютером и отслеживать каждое малое движение рынка. Поэтому таймфрейм нашей МТС составит не менее 30-ти минут. Наличие коротких позиций на первом этапе — не предполагается. Будем торговать только при растущем тренде.
Этап 2: Написание кода торговой системы

На этом этапе у большинства трейдеров возникают сложности. Дело в том, что многие трейдеры готовы только генерировать торговые идеи, а вот для того, чтобы алгоритмизировать эти идеи  — нужны также навыки.
Здесь можно услышать такие высказывания: — «Я трейдер, а не программист!!!»
Но без навыков программирования далеко не уедешь. Поэтому советую каждому — даже если Вы не собираетесь становиться профессиональным программистом — освойте хотя бы основы программирования.
Наилучшим выбором здесь, на мой взгляд — является освоения языка программирования C#
Я, например, основы языка С# освоил просмотрев следующий бесплатный видеокурс: http://www.intuit.ru/department/pl/incsharp3/
Кроме того, очень рекомендую прочитать книгу Автор: М. Дрейер с названием «C# для школьников» и пройти курс, основанный на этой книге http://www.intuit.ru/department/school/cs4kids/ — это тоже бесплатно.
При желании, Вы можете посещать и платные курсы, которые обучают прогарммированию на C# в связке с трейдингом.  Вот примеры таких курсов:
  • Проводит Церих: http://education.zerich.ru/event/141807/ — стоимость записи порядка 5000 рублей
  • Если знаете ещё курсы этой тематики — пишите в комментах.
Разобравшись с основными понятиями языка программирования C# — Вы без труда сможете написать код любойторговой системы в wealth lab.
Как это сделать — обязательно посвящу этому отдельный пост. Чтобы не пропустить — не забывайте подписываться по RSS.
Этап 3: тестирование созданного кода торговой системы и оптимизация параметров.

Понятно, что человек может только предполагать — какие параметры (длина скользящей средней, стоп лосс, тейк профит) являются оптимальными.
Точно определить это сможет только бездушный алгоритм, перебирая огромное количество всевозможных вариантов и оставляя лишь те из них, которые ведут к наилучшему результату.
Конечно тут сразу же возникает вопрос — «Может ли поведение цены в прошлом определять поведение цены в будущем?».
Это вопрос философский.  Можно много рассуждать на эту тему, но к сожалению, как говориться, при всём богатстве выбора — другой альтернативы нет.
Мне очень нравится как подходит к этому вопросу екатеринбургский трейдер Игорь Чечет — он говорит о том, что точно знает, что подобранные параметры торговой системы не будут работать в будущем. Однако он ставит торговую систему в торговлю, зная, что в любой момент может её заменить.
 
Этап 4: Создание торгового робота

После того, как код торговой системы написан и найдены оптимальные параметры — нужно задуматься о том, как автоматизировать сам процесс торговли. Ведь Вы же не собираетесь постоянно сами отслеживать все торговые сигналы и руками их исполнять.  Не зря ведь говорят — лень — двигатель прогресса.
На текущий момент существует достаточно много вариантов автоматизации торговли. Перечислю некоторые из ник:
Создание собственного торгового робота с нуля, напрямую подключаясь к торговым серверам (или торговым терминалам).  К примеру, Алор представляет сервис Alorr Attentis — это возможность подключиться напрямую к серверу Алор Трейд, минуя посредника в виде торгового терминала. Также есть возможность работать с АйТи Инвестом (SmartCom 2), напрямую с Plaza 2 — в общем, варианты имеются.
  • Создание торгового робота, используя уже готовые библиотеки. Здесь стоить отметить динамично развивающийся проект Stock# — программная библиотека для создания на платформе .NET торговых роботов, аналитических программ и МТС.  Также можно использовать библиотеку от компании Финансовая лаборатория -  FinLab.MTS
  • Создание торгового робота, используя программу wealth lab и создавая адаптеры для непосредственной передаче  заявок брокеру. Насколько я знаю на текущий момент существуют адаптеры для работы с Квиком, терминалом Альфы, СмартТрейдом и т.п. Если поискать — можно найти любые варианты.
  • Создание торгового робота, используя программу OpenQuant — аналог WealthLab — в котором нет проблем с построением брокер-адаптера...
  • Создание торгового робота, используя программу TradeMatic — по сути, это аналог WealthLab, который можно сразу подключать к Квику и начинать торговлю…
  • Ну и конечно же, используя  полностью российскую наработку для создания торговых роботов — программу TSLab. Именно эту программу я использую для того, чтобы создавать полностью автоматически торгующие торговые системы. Об этом уже был отдельный пост.
В общем, вариантов достаточно много нужно выбрать именно тот, который больше всего подходит именно Вам. Но ещё раз напишу, что очень желательно обладать хотя бы навыками языка программирования C#.
Этап 5: Создание корзины механических торговых систем и отслеживание результатов торговли

На этом этапе — главное создать целую коллекцию независимых торговых систем, торгующих разными инструментами и вести постоянный мониторинг результатов торговли каждой торговой системы.
Главное здесь — понять когда наступил момент, показывающий, что механическая торговая система перестала работать. И дальше принимать решение — что делать с этой системой.
Конечно, здесь тоже есть свои сложности и свои хитрости. Обязательно расскажу про свой собственный опыт.
Чтобы не пропускать следующие статьи про построение механической торговой системы — подписывайтесь на наши новые статьи по RSS
★28
12 комментариев
Ваше статья смахивает на типичную SEO-статью для продвижения своего ресурса :-)

2dr-mart
Ты бы сделали все ссылки на внешние ресурсы с атрибутом rel=«nofollow» или же через свой редиректор, типа: http;//smartlab/go?url

Любителей размещать такие статьи станет на порядок меньше.
avatar
Денис, тут много ссылок не на мой ресурс, а на ресурсы, о которых идет речь: блог Чечета, ресурсы по обучению С#, ресурс про S#, TSLab, TradeMatic — все эти ссылки именно для того, чтобы те, кто хочет разобраться в вопросе могли быстро найти то, что нужно. Насколько я понимаю, ссылки на внешние ресурсы здесь и так «nofollow».
Seo статьи обычно бессмысленны и не несут никакой полезной информации. Здесь, я думаю, полезная информация всеже есть.
Почему бы тогда не сделать просто ссылки. Зачем эти дурацкие редиректы и выделения болдом ключевых слов?

По-поводу статьи. Нужно создать не просто корзину МТС, а корзину, МТС в которой, будут иметь как можно меньшую корреляцию, а еще лучше отрицительную.
avatar
Просто статью сюда скопировал из своего блога. Как там было, так и осталось здесь. Отсюда и «редиректы».
По поводу корзины — согласен — именно разные стратегии, разные инструменты — чтобы кривая доходности была максимально сглаженной.
Не знаю как насчет лени, мне так лень лезть в это болото под названием МТС.
Хорошо где нас нет. И 2-е если вы такие умные, что насоздавали всяких роботов- программ, то почему такие бедные.
avatar
С чего Вы решили, что бедные?
Ну вы же не пишете, что уже что-то заработали, вот я и продолжил логическую цепочку.
avatar
:-) всё равно ведь никто не поверит… Кстати, можно на ты
можно несколько или больше слов о преимуществах/недостатках Tradematic в сравнении с TSLab?
avatar
и WelthLab
avatar
К сожалению, TradeMatic пока еще не пробовал. Но судя по описанию — там можно одновременно торговать только одну стратегию на одном счете. Если не прав — поправьте…
Что-то нигде не нашел указания на то, что тот же Wealth Lab стоит бешенных денег. Как для того, чтобы попробовать научится уж стоит подобрать то, что можно использовать условно-бесплатно. Хотя бы та же NinjaTrader. 
avatar

теги блога Дмитрий Власов

....все тэги



UPDONW
Новый дизайн