Блог им. 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.1К | ★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:
Фото
Актуальный состав портфеля и взгляд на рынок 2026: по-прежнему 0% позитива.
Добрый вечер! С момента предыдущего поста, касающегося моего портфеля, прошел квартал.  Пришло время актуализировать его состав. Также поделюсь...
Фото
Биткоин попробует разыграть «треугольную карту»?
«Цифровое золото» прорвало верхнюю границу восходящего треугольника на уровне 94 500 и сейчас тестирует пробитую горизонталь, формируя серию...
Фото
Индикатор Fractal: торговые сигналы и робот для OsEngine. Видео
В этом видео разбираем индикатор Fractal Билла Вильямса — один из самых известных инструментов в трейдинге. Покажем, как формируются фракталы,...
Фото
Стратегия 2026 по рынку акций от Mozgovik Research: трудный год, но, возможно, последний год низких цен
Сегодня у меня первый день официального отпуска. За окном темная звездная ночь, яркая белая луна, +24С и шум волн Андаманского моря. Неудачный...

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

....все тэги



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