Блог им. robot-scalper
Нас часто спрашивают, как самостоятельно создать робота? И сложно ли это?
– Нет, не сложно, если у вас есть опыт и наработки. Но если вы начинающий алготрейдер, то перед вами встанет сразу несколько непростых задач.
Для начала вы должны определиться какую именно торговую стратегию будете автоматизировать.
Затем нужно четко формализовать эту стратегию: описать строгими условиями все входы и выходы из позиции.
Теперь нужно определиться под какой торговый терминал будем разрабатывать робота.
Изучаем функции алготрейдинга (выставление и снятие заявок, получение текущих данных из терминала, механизм взаимодействия скрипта и терминала).
Изучаем как устроена структура данных (таблиц) на сервере Мосбиржи, чтобы знать откуда что брать.
Важно иметь хотя бы базовое понимание о программировании: что такое переменные, условия, операции сравнения, циклы, функции, события, работа с файлами и т.п.
После этого можно смело браться за создание своего робота. Описываем логику на языке программирования и запускаем робота на демо-счете, для отладки. Исправляем баги или ошибки в логике алгоритма, если такие обнаружатся.
Для удобства все настройки выносим в отдельный файл, чтобы не приходилось каждый раз изменять исходный код робота при подстройке стратегии.
Не забываем сделать удобный интерфейс, чтобы сразу видеть текущее состояние системы (заявки, позиция, стоп, тейк и т.п.).
Пример можно увидеть здесь:
Тестируем. Анализируем сделки. Проверяем насколько корректно отрабатывает робот.
Логирование событий позволяет отследить в прошедшем времени все намерения робота и все свершившиеся события: выставление и снятие заявок, полное или частичное исполнение заявок, изменение текущей позиции и т.п.
Если торговый терминал позволяет, то можно провести бэк-тестирование (тестирование на исторических данных). Либо даже форвардное тестирование. Об этом подробно написано здесь https://smart-lab.ru/blog/503560.php
А также можно выполнить оптимизацию значений параметров стратегии.
Здесь важно искать не просто конкретные значения, при которых система покажет максимальную прибыль и минимальный убыток (в следующем месяце это может не повториться), а нужно найти диапазон значений, в которых стратегия показывает прибыль. Желательно брать значения из середины диапазона. Мы не можем наверняка знать насколько хорошо они подойдут в следующем торговом периоде. Но мы ожидаем, что доходность будет положительна.
Какие гарантии того что робот будет стабильно зарабатывать деньги?
– Никаких! Когда разрабатываешь робота, то не знаешь заранее будет ли данная стратегия прибыльная или нет. Только время покажет. Это как в любом другом бизнесе. Например, вы купили помидоры и стали их продавать. Какие гарантии? – Никаких! Если вы плохой бизнесмен, то ничего не продадите и помидоры просто протухнут. А если хороший бизнесмен, то будете в прибыли.
Так же и в трейдинге. Нельзя ставить сильно высокую цену на продажу, так как никто у вас не купит. И нельзя ставить сильно низкую цену на покупку, так как никто по такой цене вам не продаст.
Слишком близкие цены покупки и продажи тоже не будут вам выгодны, так как комиссия будет съедать большую часть прибыли. Во всём нужна золотая середина! Это понимание приходит с опытом.
По поводу прибыльных стратегий. Как сразу найти прибыльную? – Никак. Нужно запрограммировать и протестировать десятки стратегий. Нужно анализировать сделки. Потом придет понимание того что работает на рынке, а что нет. Непроизвольно вы начнете делить стратегии на группы с общими признаками. После этого любую новую стратегию, еще до тестов, вы сразу будете относить к той или иной группе. И будете понимать примерные возможности по риску и доходности.
Это то, что касается разработки торговых стратегий и роботов.
Часть 2
Еще люди спрашивают, сложно ли развивать ваш проект «Робот Скальпер» и осуществлять техподдержку?
— Да. Сложно. Приходится отвечать более чем на 100 вопросов каждый день. Вопросы абсолютно разные. Не только по роботам. Это и базовые: как начать торговать, как открыть счет, сколько денег нужно и т.п., и нестандартные: вопросы по тарифам брокеров, по функционалу терминала QUIK, по данным от Мосбиржи и т.п.
Так как торговый робот для пользователя является конечным или финальным продуктом и если происходит сбой у брокера или в терминале QUIK или на бирже, то с точки зрения пользователя проблема всегда заключается в роботе! Это ведь он теперь работает не так как надо! И никого не волнует висит ли сервер брокера или поставляет ли Мосбиржа кривые котировки (нулевые цены и нулевую тек.позицию, при том что актив есть на балансе), отрубился ли интернет, заглючил или перезагрузился компьютер. Эти и другие проблемы приходится нам решать. Чтобы оказывать качественный сервис нужно знать гораздо больше, чем только алгоритм торговой стратегии.
Иногда думаешь, что всё, база знаний полная. В ней есть все вопросы и ответы. И за последние 3 месяца не было ни одного нового вопроса. И тут раз, появляется совершенно странный вопрос, который ставит тебя в тупик. Приходится подключаться дистанционно к пользователю, анализировать проблему, находить решение и добавлять его в базу знаний. И, если необходимо, то добавляется проверка в самого робота. Чтобы робот либо сам устранял ошибку, либо выдал сообщение пользователю о том что нужно сделать для продолжения торговли.
Так, постепенно, решая одну задачу за другой и набирается опыт, который позволяет чувствовать себя уверенно в алготрейдинге.
Спасибо всем, кто дочитал до конца!
Если вам интересны статьи о том как разрабатываются роботы, поддержите нас лайком. Мы будем знать нужно ли тратить время на подобные затеи или нет )) Может быть вам интереснее прочитать о более практических вещах? О конкретных стратегиях, их характеристиках в цифрах, рисках, доходностях? Напишите в комментариях. Мы обязательно вам ответим.
Желаем добра и успехов в трейдинге!
Остались вопросы по роботам?
Обращайтесь в личку или на почту mail@robot-scalper.ru
Откроем Вам бесплатно брокерские счета: демо и боевой! С версией терминала QUIK 7.27!
С уважением,
команда проекта «Робот Скальпер»
Например QVClua.
лет 5 назад я интересовался данной темой. Изучал разные предложения на рынке. Пришел к следующим выводам:
1. QLUA позволяет выводить и раскрашивать информацию на экране. Даже мигание фона можно сделать и шрифт можно менять. А также можно использовать события мыши. Этого базового функционала вполне достаточно для текущих задач.
2. Сторонние компоненты всегда будут являться источником новых багов и проблем. Никто не знает насколько качественной и долгосрочной будет их поддержка.
Чем меньше элементов в системе, тем система надежнее и отказоустойчивее!
3. Не нужно следить за обновлениями сторонних компонентов и не нужно будет пользователям объяснять почему та или иная штука из нового интерфейса не работает или работает не так как хотелось бы.
Может быть кому-то и понравится использовать сторонние компоненты. Я не против этого. Но для себя я решил, что постараюсь обходиться стандартным функционалом. Так надежнее, для проекта. А это важнее всяких плюшек! ))
С уважением,
Денис
Алготрейдер.
дорогу осилит идущий! ;)
Было бы желание! Всё можно сделать.
Сначала создаем элементарный скрипт который просто получает данные из терминала. Потом добавляем функцию выставления заявки. Потом функцию снятия заявки. Потом добавляем условия и логику. И вот уже получается некоторое подобие робота.
Прикручиваем визуализацию и уже можно наблюдать за происходящим в режиме реального времени. Красота! ))
У меня, кстати, есть базовые скрипты для LUA. С подробным описанием функций, для начинающих алготрейдеров.
Если нужны скрипты, обращайтесь на почту robot-scalper@mail.ru
Подскажу, помогу.