Самостоятельная разработка робота

 

Прежде чем программировать торгового робота необходимо во всех деталях представить себе как будет функционировать это самый робот. 

Если этого не сделать, то процесс программирования затянется, позже все равно придется осмысливать весь процесс и придется переделывать программу. Не делайте лишнюю работу! Делайте сразу всё правильно! Если решитесь самостоятельно разрабатывать. 

Все гениальные люди (Леонардо Да-Винчи, Никола Тесла и другие) по профессии не были программистами, но визуализация будущих проектов у них всегда была одним из основных этапов в процессе сотворения выдающихся творений. 

Существует много Роботов, полезных и разных. И, как показывает практика, не все Роботы одинаково полезны. 

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

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

 

Разработка торговых Роботов и что для этого нужно 

 

Во первых, необходимо продумать, формализовать и разработать торговый алгоритм. Этот алгоритм должен быть описан максимально точно, без общих утверждений. Например, подход к определению ценового канала или спреда в виде, "ну, мне кажется..., что он равен..., примерно..." – не подойдет! Торговый Робот не может знать кому что кажется. Поэтому сигнал на покупку или продажу должен описываться как выполнение условия (например, на покупку, пересечение быстрой скользящей средней линией другую медленную среднюю снизу вверх). Параметры линий 16 и 32. Или значение индикатора RSI (с параметром 14) стало меньше 30. Эти строго формализованные условия компьютерная программа выполнит однозначно. 

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

Сложностей, связанными с ними тоже не мало, но о них чуть позже. 

Нужно знать по какой цене покупать. А если мы выставили, а заявка осталась висеть, цена ушла. Берем по рынку? Какой спред? Без разницы? Покупаем как в последний раз? 

А если заявка отработалась частично? Остальное отдаем по рынку? Через какое время? Или ждем исполнения? Сколько времени?

Робот заточен на спокойный волатильный боковик? Запускаем его не с открытия сессии? Ждем когда спадет сверх-волатильность? Отключаем его раньше, чем закроются торги? На сколько раньше? 

Или робот наоборот заточен на ловлю всплесков волатильности? В каком интервале торгуем? Все дни торгуем? Или только сильно волатильные – понедельник и пятницу? 

Какие выставляем стоп-приказы, какое задаем проскальзывание? 

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

 

Во вторых, необходимо определиться на каком языке программирования будет вестись разработка, какая будет использоваться среда разработки? 

Если Вы уже владеете навыками программирования и знаете, например C#, то вероятно будете склоняться к написанию десктопного приложения, которое будет использовать API торгового терминала вашего брокера, например QUIK. 

Если Вы не владеете навыками программирования, но хотели бы попробовать запрограммировать Робота, то возможно Вас заинтересуют языки QPILE и QLUA, которые встроены в терминал QUIK. 

QPILE не могу назвать языком высокого уровня, так как он изначально не был предназначен для роботов, а лишь для вывода некоторой статистической информации по портфелю. Роботы в квике так и называются, портфелями ))

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

QLUA более современное решение для терминала QUIK. Лучше задокументированы функции, более мощная структура языка. Присмотритесь к нему. 

На рынке существуют и другие продукты для разработки роботов. Которые позволяют компоновать готовые алгоритмические модули, связывать их условиями, тестировать и оптимизировать. Казалось бы это намного лучше, чем вариант с QPILE, но не всё так просто. Эти самые модули, которые позволяют чуть с меньшими усилиями создавать роботов не всегда отрабатывают тестирование как если бы мы торговали этой системой на реальном рынке. Разработчик только разводит руками: "пользуйтесь тем что есть, менять ничего не будем". Но Вы должны понимать, что результат будет отличаться от реального. Обычно это касается высокочастотных стратегий (HFT). 

Для среднесрочных стратегий вполне подойдет разработка на QPILE или QLUA. 

Еще может возникнуть задача, которую невозможно реализовать заготовленными модулями, тогда придется либо программировать надстройку на C#, либо возвращаться к QPILE или QLUA. 

В общем, выбор языка программирования и среды разработки обычно зависит от специфики создаваемого Робота

 

В третьих, когда уже готов прототип нашего Робота, необходимо проверить его в работе. 

Тестирование и оптимизация! Очень важный этап разработки. 

Маленькая ошибка может стоить больших денег! 

Тестирование можно проводить на различных временных исторических интервалах, изменяя параметры системы и различные таймфреймы. 

Важно проводить форвардное тестирование. То есть, выбираем некий небольшой временной интервал, тестируем на нем, оптимизируем, затем берем следующий интервал и оцениваем результаты с предыдущими параметрами, затем еще один интервал и так далее. 

Если на разных интервалах система показывает себя хорошо, тогда можно переходить к реальному тестированию. 

Тестирование на демо-счете. 

Демо-счет довольно приближен к реальным торгам. Данные котировок автоматически подгоняются близкими к реальным. Но на демо торгах гораздо чаще происходят сильные выбросы цены то в одну, то в другую сторону, затем внутренний алгоритм приводит цену к рыночной. Сильные всплески происходят потому что кто-то решил просто поиграться и совершил сделку огромным объемом, сдвинув в моменте цены. Это ведь не настоящие деньги, почему бы не побаловаться...

Призываю брокеров не давать клиентам на демках большие объемы и самим не устраивать подобные штуки, не хорошо это. На реальном рынку подобный фокус может не пройти, так как маркетмейкер скорее всего остановит резкое движение и поглотит эти объемы. Контртрендовые высокочастотные роботы тоже не будут спать и встанут в позицию против неэффективности рынка. 

На демо-торгах можно протестировать механизмы выставления и снятия заявок, пограничные условия, например когда заявка сработала частично, изменил ли робот объем стоп-заявки? 

Так как демо-торги отличаются от реальных, нужно тестировать на реальных!

Тестирование на реальных торгах. 

Это тестирование связано с реальными убытками, так как комиссию брокера никто не отменял, стоп-лоссы тоже, и возможны проскальзывания и другие неприятности. 

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

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

 

Если Вы всё это сделаете на высоком уровне, то рынок Вас обязательно вознаградит! 

Ни один труд не должен пропадать напрасно! 

Стремитесь, и всё у Вас получится!

Но, если Вы не программист, то лучше всего доверить разработку торгового Робота профессионалам. Это будет быстрее и качественнее. Более того, профессионалы постараются не допустить, чтобы Вы наступили на одни и те же грабли алготрейдинга и подскажут на какие тонкие моменты нужно обратить внимание, чтобы прибыль была максимальной

 


Сайт Robot-Scalper — разработка торговых роботов, трейдинг, скальпинг, о том как заработать на акциях, торговать или играть на бирже. Копирование, клонирование, перепечатка и распространение материалов с данного сайта, без письменного разрешения, категорически запрещена! Если Вы заметили нарушение данного пункта, обращайтесь в наш юридический отдел. При выигранном судебном деле мы гарантируем вознаграждение.

Указанная выше информация представлена в ознакомительных целях. Мы не несем ответственности за принятие трейдерами торговых решений, основанных на материалах с нашего сайта. Торговля акциями, фьючерсами, опционами, валютами и другими финансовыми инструментами является высокодоходным и высокорискованным видом деятельности и без необходимых навыков и знаний чревата финансовыми потерями.