Блог им. robot-scalper

Как создать торгового робота своими руками? Robot-Scalper

Торговый робот своими руками под QUIK

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

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

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

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

Изучаем функции алготрейдинга (выставление и снятие заявок, получение текущих данных из терминала, механизм взаимодействия скрипта и терминала).

Изучаем как устроена структура данных (таблиц) на сервере Мосбиржи, чтобы знать откуда что брать.

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

После этого можно смело браться за создание своего робота. Описываем логику на языке программирования и запускаем робота на демо-счете, для отладки. Исправляем баги или ошибки в логике алгоритма, если такие обнаружатся.

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

Не забываем сделать удобный интерфейс, чтобы сразу видеть текущее состояние системы (заявки, позиция, стоп, тейк и т.п.).
Пример можно увидеть здесь:
Робот Sigma

Тестируем. Анализируем сделки. Проверяем насколько корректно отрабатывает робот.

Логирование событий позволяет отследить в прошедшем времени все намерения робота и все свершившиеся события: выставление и снятие заявок, полное или частичное исполнение заявок, изменение текущей позиции и т.п.

Если торговый терминал позволяет, то можно провести бэк-тестирование (тестирование на исторических данных). Либо даже форвардное тестирование. Об этом подробно написано здесь https://smart-lab.ru/blog/503560.php

А также можно выполнить оптимизацию значений параметров стратегии.
Здесь важно искать не просто конкретные значения, при которых система покажет максимальную прибыль и минимальный убыток (в следующем месяце это может не повториться), а нужно найти диапазон значений, в которых стратегия показывает прибыль. Желательно брать значения из середины диапазона. Мы не можем наверняка знать насколько хорошо они подойдут в следующем торговом периоде. Но мы ожидаем, что доходность будет положительна.

Какие гарантии того что робот будет стабильно зарабатывать деньги?
– Никаких! Когда разрабатываешь робота, то не знаешь заранее будет ли данная стратегия прибыльная или нет. Только время покажет. Это как в любом другом бизнесе. Например, вы купили помидоры и стали их продавать. Какие гарантии? – Никаких! Если вы плохой бизнесмен, то ничего не продадите и помидоры просто протухнут. А если хороший бизнесмен, то будете в прибыли.
Так же и в трейдинге. Нельзя ставить сильно высокую цену на продажу, так как никто у вас не купит. И нельзя ставить сильно низкую цену на покупку, так как никто по такой цене вам не продаст.
Слишком близкие цены покупки и продажи тоже не будут вам выгодны, так как комиссия будет съедать большую часть прибыли. Во всём нужна золотая середина! Это понимание приходит с опытом.

По поводу прибыльных стратегий. Как сразу найти прибыльную? – Никак. Нужно запрограммировать и протестировать десятки стратегий. Нужно анализировать сделки. Потом придет понимание того что работает на рынке, а что нет. Непроизвольно вы начнете делить стратегии на группы с общими признаками. После этого любую новую стратегию, еще до тестов, вы сразу будете относить к той или иной группе. И будете понимать примерные возможности по риску и доходности.
Это то, что касается разработки торговых стратегий и роботов.


Часть 2

Еще люди спрашивают, сложно ли развивать ваш проект «Робот Скальпер» и осуществлять техподдержку?
— Да. Сложно. Приходится отвечать более чем на 100 вопросов каждый день. Вопросы абсолютно разные. Не только по роботам. Это и базовые: как начать торговать, как открыть счет, сколько денег нужно и т.п., и нестандартные: вопросы по тарифам брокеров, по функционалу терминала QUIK, по данным от Мосбиржи и т.п.
Так как торговый робот для пользователя является конечным или финальным продуктом и если происходит сбой у брокера или в терминале QUIK или на бирже, то с точки зрения пользователя проблема всегда заключается в роботе! Это ведь он теперь работает не так как надо! И никого не волнует висит ли сервер брокера или поставляет ли Мосбиржа кривые котировки (нулевые цены и нулевую тек.позицию, при том что актив есть на балансе), отрубился ли интернет, заглючил или перезагрузился компьютер. Эти и другие проблемы приходится нам решать. Чтобы оказывать качественный сервис нужно знать гораздо больше, чем только алгоритм торговой стратегии.

Иногда думаешь, что всё, база знаний полная. В ней есть все вопросы и ответы. И за последние 3 месяца не было ни одного нового вопроса. И тут раз, появляется совершенно странный вопрос, который ставит тебя в тупик. Приходится подключаться дистанционно к пользователю, анализировать проблему, находить решение и добавлять его в базу знаний. И, если необходимо, то добавляется проверка в самого робота. Чтобы робот либо сам устранял ошибку, либо выдал сообщение пользователю о том что нужно сделать для продолжения торговли.

Так, постепенно, решая одну задачу за другой и набирается опыт, который позволяет чувствовать себя уверенно в алготрейдинге.

Спасибо всем, кто дочитал до конца!
Если вам интересны статьи о том как разрабатываются роботы, поддержите нас лайком. Мы будем знать нужно ли тратить время на подобные затеи или нет )) Может быть вам интереснее прочитать о более практических вещах? О конкретных стратегиях, их характеристиках в цифрах, рисках, доходностях? Напишите в комментариях. Мы обязательно вам ответим.

Желаем добра и успехов в трейдинге!

Остались вопросы по роботам? 
Обращайтесь в личку или на почту mail@robot-scalper.ru 

Откроем Вам бесплатно брокерские счета: демо и боевой! С версией терминала QUIK 7.27!

С уважением,
команда проекта «Робот Скальпер»

Наш сайт: Robot-Scalper.ru
Почта: mail@robot-scalper.ru 
Актуальная информация всегда есть в инстаграме: @robot_scalper
6.2К | ★31
9 комментариев
Также можете сохранить статью в закладках. Пригодится.
avatar
А ты не пробовал использовать какие-нибудь визуальные DLL для qlua?
Например QVClua.
avatar
Eldar Shaymardanov, 
лет 5 назад я интересовался данной темой. Изучал разные предложения на рынке. Пришел к следующим выводам:
1. QLUA позволяет выводить и раскрашивать информацию на экране. Даже мигание фона можно сделать и шрифт можно менять. А также можно использовать события мыши. Этого базового функционала вполне достаточно для текущих задач.
2. Сторонние компоненты всегда будут являться источником новых багов и проблем. Никто не знает насколько качественной и долгосрочной будет их поддержка.
Чем меньше элементов в системе, тем система надежнее и отказоустойчивее!
3. Не нужно следить за обновлениями сторонних компонентов и не нужно будет пользователям объяснять почему та или иная штука из нового интерфейса не работает или работает не так как хотелось бы.

Может быть кому-то и понравится использовать сторонние компоненты. Я не против этого. Но для себя я решил, что постараюсь обходиться стандартным функционалом. Так надежнее, для проекта. А это важнее всяких плюшек! ))

С уважением,
Денис
Алготрейдер.
avatar
И все? Так просто? сегодня же пишу робота )))
Владимир Литвинов, 
дорогу осилит идущий! ;)

Было бы желание! Всё можно сделать. 
Сначала создаем элементарный скрипт который просто получает данные из терминала. Потом добавляем функцию выставления заявки. Потом функцию снятия заявки. Потом добавляем условия и логику. И вот уже получается некоторое подобие робота.
Прикручиваем визуализацию и уже можно наблюдать за происходящим в режиме реального времени. Красота! ))

У меня, кстати, есть базовые скрипты для LUA. С подробным описанием функций, для начинающих алготрейдеров.
Если нужны скрипты, обращайтесь на почту robot-scalper@mail.ru 
Подскажу, помогу.
avatar
Robot-Scalper.ru, Вот на слове скрипт, все познания в области программирования у меня заканчиваются ))) А нет, я еще в школе точку и черточку рисовал с помощью кода Как же тот язык назывался не помню. Эт когда на мониторах такой экранчик еще вешали )))) эх времена были
Владимир Литвинов, учиться никогда не поздно! ;)
avatar
Robot-Scalper.ru, тем более, что я еще молодой

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят выходные дни. В...
«Профи» из группы Займер окупил первый приобретенный портфель
Делимся новостями коллекторского агентства из группы Займер. КА «Профи» вышло на точку окупаемости по первому приобретенному портфелю. ⚡️ Для...
Фото
Российский рынок недвижимости: почему торговые центры и офисы теряют популярность, а в лидеры выходят ЦОД и склады
Российский рынок коммерческой недвижимости переживает структурную трансформацию. Традиционные сегменты — торговые центры и офисы класса B...
Оперативная заметка с полей облигационной конференции для клиентов Mozgovik Research
Доброго дня, уважаемые читатели Mozgovik Research. Для вас хотел коротко и оперативно поделиться основными идеями, которые успел услышать на...

теги блога Robot-Scalper.ru

....все тэги



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