Робот на языке lua

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

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Как и многие другие, я начинал свою работу в качестве трейдера с торгового терминала Metatrader4. И когда у меня созрела необходимость в написании собственных скриптов и советников (торговых роботов), я не мудрствуя лукаво открыл учебник по MQL4 и изучив основы этого языка, через пару часов уже мог состряпать простую программку.

Дальше-больше, после реализации простых скриптов пришло желание запрограммировать более сложные алгоритмы торговли. Возникали, конечно, вопросы, но ответы на них достаточно легко дают Яндекс с Гуглом. В настоящее время существуют столько сайтов и форумов посвящённых данной тематике, что достаточно трудно найти такой вопрос, который остался бы без ответа после более-менее тщательного штудирования интернета.

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

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

Как написать программу

В QUIK предусмотрена возможность установки двух основных типов программ скриптов и торговых роботов:

На мой взгляд, наиболее простым вариантом является работа с программами на языке LUA. Область применения данного языка программирования не ограничивается только написанием программ для торговых терминалов, на нём пишут и компьютерные игры, и мобильные приложения, и много чего ещё. Но нас сейчас интересует его использование в контексте написания программ торговых роботов для торгового терминала QUIK. К слову сказать, используемая здесь разновидность данного языка часто именуется QLUA (Q от QUIK).

Программирование на LUA

Описать все особенности и синтаксические конструкции языка в рамках одной этой статьи конечно не получится, впрочем в этом и нет особой необходимости. Как я уже говорил, синтаксис здесь довольно простой и включает в себя все основные команды свойственные любому современному языку программирования. Есть, конечно, некоторые специфические моменты, но все они подробно описаны на многочисленных тематических ресурсах. Например здесь: https://forum.quik.ru/forum10/topic2029/

Я сильно не заморачивался ни синтаксисом, ни изучением языка, а просто сразу начал писать программу. По ходу необходимости, уточнял синтаксис той или иной необходимой мне команды через поисковики. Например запрос типа “оператор для открытия позиции в QLUA” подсказывал мне, что для данной цели необходимо использовать оператор sendTransaction(), а запрос “синтаксис оператора sendTransaction() в LUA” выдавал в первой же позиции результатов поиска сайт содержащий ответ:

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

На этом сайте вы найдёте синтаксис всех команд языка с конкретными примерами их использования: http://luaq.ru/

А вот здесь вы найдёте полное руководство по азам программирования на LUA: https://lua.org.ru/contents_ru.html

Кроме этого есть ещё масса других ресурсов содержащих исчерпывающую информацию по данной теме.

Где писать программу. Какой редактор использовать?

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

Для этого сначала создаёте обычный текстовый файл:

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

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

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

После запуска программы терминал показывает в ней ошибку

После этого достаточно будет её отредактировать и запустить вновь. В том случае, если ошибок больше нет, окно “Ошибки выполнения скрипта” останется пустым, а программа начнёт работать (об этом будет свидетельствовать характерный значок “play” перед названием). После того, как заложенный в неё алгоритм отработает, она остановится. Если же она специально зациклена (работает на постоянное отслеживание текущей рыночной ситуации), то остановить её можно будет нажатием на кнопку “Остановить”.

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Как протестировать торгового робота

В Метатрейдере с этим делом всё обстоит довольно просто – запускаешь тестер стратегий, выбираешь временной интервал ценовой истории и вперёд. Тестер прогонит через загруженного в него торгового робота весь массив цен из заданного в настройках интервала и выдаст вам график прибыли/убытка которые были бы получены роботом при реальной торговле online. При этом у вас ещё будет возможность оптимизировать настройки тестируемого торгового робота таким образом, чтобы получить наилучший результат (наибольший профит), правда на всё том же ограниченном интервале истории.

В QUIK такого тестера априори не существует. То есть тестировать созданных роботов на истории вы здесь не сможете**, но оно, пожалуй, и к лучшему. Почему к лучшему? Излишняя оптимизация на истории может сыграть с вами злую шутку. Дело в том, что самые замечательные результаты торговли в прошлом никогда не гарантируют вам того же и в будущем. Часто бывает так, что стратегии “заточенные” (читай – оптимизированные) под определённый интервал времени в прошлом и приносящие на нём стабильно высокий доход, в реальном времени начинают откровенно сливать депозит.

Но не расстраивайтесь, торговых роботов для терминала QUIK вы сможете тестировать в реальном времени. Правда для этого вам потребуется так называемый демо-счёт (вы ведь не хотите, чтобы тестируемый советник принялся сразу же торговать реальными деньгами).

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

Учебный QWIK можно скачать у любого брокера, желательно у того, через которого вы планируете в дальнейшем торговать. Правда здесь возможны некоторые заморочки связанные с тем, что не всегда учебная версия данного торгового терминала позволяет работать со скриптами LUA.

Если та версия, которую предлагает ваш брокер не поддерживает возможножность установки и запуска LUA-скриптов, то можете установить демку от брокера БКС. Это не реклама, просто у меня стоит такая же и я точно знаю, что данная версия позволяет работать с любыми скриптами и советниками написанными на языке программирования LUA (QLUA).

** По крайней мере чистыми средствами QUIK, без использования какого-либо дополнительного софта.

Как установить LUA-скрипт в торговый терминал

Процесс установки торгового робота (скрипта) одинаков и для учебного, и для реального терминалов. Он довольно прост и выглядит следующим образом:

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Вот и всё, на этом процесс установки торгового робота закончен. Для того, чтобы он начал работать достаточно выбрать его кликом мышки и нажать кнопку “Запустить”. Если в программе не будет обнаружено ошибок, то она начнёт работать, а иначе выдаст вам соответствующее сообщение (см. выше).

Источник

Свежие записи

Архивы

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Научиться создавать роботов в Квике на LUA: 31 комментарий

Здравствуйте Дмитрий!
Нужна ваша помощь, не могли бы вы написать мне на почту?

Большое Вам спасибо!
А у Вас на сайте нет случайно скрипта для виртуального тестирования в Quik, также прекрасно разобранного как все остальные? 🙂

Спасибо, конечно, за комплимент 🙂 Но, к сожалению, такого скрипта у меня нет.

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

Жаль, в любом случае, спасибо за информацию)
давайте я Вам напишу на почту лучше, а то вдруг меня потом выследят, что не очень-то самостоятельная работа получается 🙂 🙂 🙂

Я Вам на почту написал со своего личного почтового ящика, пишите на тот адрес, потому что на почте хостинга сайта сейчас идут какие-то аварийно-восстановительные работы и она не работает уже 2-й день, надеюсь скоро все восстановят.

Давайте вместе с Вами создадим на данном сайте курс для начинающих! Как Вам такая идея?

Коды (роботы) и стратегии опционные? Я за

Я имел в виду курс для новичков, которые вообще QLua первый раз видят 🙂

Да, это было бы здорово. Как начинать, куда нажимать, к чему подключать. Когда появится хотя бы мало мальское понятие, появятся и стратегии и вопросы и решения. Если у Вас возникнет желание помочь нам (тем кто «которые вообще QLua первый раз видят :)» ) в первых шагах изучения, буду премного благодарен и не я один.

Было озвучено предложение: «Давайте вместе с Вами создадим на данном сайте курс для начинающих», Вы хотите поучаствовать в создании?

Хочу, но в силу своих скромных способностей))) Можно попробовать, но к сожалению не знаю буду ли полезен.

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

Доброго времени! Ваша идея про создание курса для начинающих еще актуальна.

Добрый вечер! Ну, в принципе, да, только времени свободного катастрофически не хватает, а Вы решили как-то поучаствовать?

Я готов всячески принимать участие, только нет навыков в программировании.

и что конкретно от меня требуется.

Честно говоря, не знаю, что Вам сказать, мне нужно как-то время выкроить, чтобы начать создавать этот курс, а я сейчас проект большой делаю, по завершении которого, навыки программирования не понадобятся для создания скриптов на QLua. Будет нужно только понимание алгоритмов и умение их создавать из блоков, т.е. будет конструктор роботов из функциональных, визуальных блоков, только в отличии от существующих решений в результате будут получатся не роботы, которые могут работать только на определенной платформе, а обычные скрипты QLua, которые можно будет запускать в терминале QUIK. Но первым этапом я сделаю и запущу именно редактор кода с полной поддержкой QLua синтаксиса, с подсказками, автозавершением кода и т.п. И если Вы захотите уже на этом этапе начать использовать проект, то навыки программирования все-таки понадобятся 🙂

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

🙂 в меню (слева) пункт «Инструменты»:
для работы Вам понадопиться терминал QUIK с демо-доступом, чтобы не тестировать скрипты на реальных деньгах:
https://quikluacsharp.ru/instruments/demo-dostup-quik-dlya-testirovaniya-skriptov-i-robotov-na-qlua-lua/
чтобы писать скрипты Вам нужен редактор кода, для этого хорошо подойдет Notepad++:
https://quikluacsharp.ru/instruments/instrumenty-dlya-razrabotki-torgovyh/

О том, что такое переменные, арифметические операции, операторы сравнения, условные операторы, циклы и функции на данном сайте нет информации, т.к. эта информация касается всех языков программирования, а сайт о QLua.

Если у Вас есть базовые знания программирования, то информацию о том, из чего состоит скрипт QLua Вы можете найти здесь:
https://quikluacsharp.ru/qlua-osnovy/baza-skripta-v-qlua/
здесь о том, как запустить скрипт в терминале QUIK:
https://quikluacsharp.ru/quik-qlua/kak-zapustit-qlua-lua-skript-v-terminale-quik/

со всеми особенностями синтакса QLua можно ознакомиться в разделе меню «QLua(Lua) основы»

и, вобще, все пункты меню названы по принципу связи, т.е., например, в пункте «QUIK + QLua(Lua)» находится информация о взаимосвязях скрипта QLua и терминала QUIK.

Спасибо за подсказку, буду изучать.

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

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

Если что-то будет не получаться, задавайте вопросы, я Вас быстрее в нужное русло направлю.

Решил еще пример использования сайта привести 🙂
Например, стоит у Вас задача: «Как в скрипте получить данные с графика», вы рассуждайте следующим образом:
Между какими элементами взаимосвязь? С одной стороны скрипт QLua (данные нужно получить в него), с другой стороны терминал QUIK (данные нужно получить из него, т.к. график в нем), значит первоначальный раздел меню «QUIK + QLua(Lua)», открываете его, и видите в нем пункт «Обмен данными», открываете его и видите в нем решение Вашей задачи, пункт: «ПОЛУЧЕНИЕ В QLUA(LUA) ДАННЫХ ИЗ ГРАФИКОВ И ИНДИКАТОРОВ»

Или, например, Вы на знаете как в QLua работать с массивами, Вы снова рассуждаете, массивы это что? Чисто скрипт, т.к. массивы не имеют никакого отношения к терминалу, значит раскрываете раздел меню «QLua(Lua) основы» и ищите там в названии пунктов слово «массив», находите пункт «ПЕРЕМЕННЫЕ, МАССИВЫ И ФУНКЦИИ В QLUA (LUA)»

Источник

Торговый робот для QUIK на LUA “Прилипала”

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

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

Появления крупного игрока

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

На примере ниже видно, что продавец некоторое время держал уровень своими заявками, не давая цене пройти выше 86100 на фьючерсе на индекс РТС.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Как Вы сами поняли, цена очень часто отскакивает от подобных уровней. Потому что текущая сила покупателей недостаточно сильна, что бы пробить этот уровень.

Торговый робот

Конечно, следить «вручную» за индикатором Индикатор стаканного давления очень тяжело. Потому что нужный лот может как быстро появиться, так и моментально исчезнуть. Трейдинг превратиться в ад, если все действия делать самому.

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

Как купить робота?

Соглашение о рисках


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

Хотите получить ответ на свой вопрос?

Справа внизу страницы есть зеленое окно вызова чата. Спросите там все, что считаете нужным!

Технические характеристики

1. Работает только в терминале QUIK.

2. Торговля акциями, валютами и фьючерсами ММВБ.

3. Несколько программ в одном QUIK. Сделайте копии торговых роботов на нескольких инструментах и тем самым сформируйте портфель!

5. Возможность установить фильтр размера лота, перед которым будут выставляться заявки.

Видеоинструкция

Следует знать!

Техническая поддержка оказывается в часы работы бирж(с 10.00 до 23.00).

Если Вы купите 2, 3 или более роботов, то Вам полагается скидка! Интересно? Обращайтесь к нам на почту или в чат внизу справа страницы.

У человека, слава которого гремит, никогда не будет недостатка в друзьях, в приязни и доброжелательстве людей.
Франческо Гвиччардини

Источник

Курсы Lua. Роботы для торговли.

Курсы Lua, создание торговых роботов для торговли в QUIK.

Торговые роботы для QUIK это просто. Нужно только начать.

Полный доступ к Курсу на 1 день после регистрации на сайте. Зарегистрироваться

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

С марта 2021 года, торги на Срочном и Валютном рынке будут проводится с 7:00 МСК

16 часов 50 минут торгов!
Скажите, как можно столько времени торговать руками?
Выдержать столько могут только роботы.

Если Вы видите эту страницу значит Курс актуален.

Видео-обзор Курса по созданию торговых роботов для QUIK

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

Основная цель курса – это научить Вас создавать торговых роботов для терминала QUIK. Торговые роботы для терминала QUIK пишутся на языке программирования Lua. Lua – это простой, маленький, но в тоже время мощный язык программирования. Простота Lua облегчает его изучение. Курс рассчитан на людей, которые никогда не сталкивались с программированием. Курс начинается с простейших основ программирования на примере языка Lua и далее по нарастающей, до уровня, необходимого для написания торговых роботов для терминала QUIK. Минимальные требование для начала изучения курса: установленный терминал QUIK, знание терминала QUIK на уровне пользователя.

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

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

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

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

Возможности языка Lua в терминале QUIK.

Язык Lua позволяет использовать все значения и параметры торговых инструментов, отображаемые в терминале QUIK.

Язык Lua позволяет отправлять в систему торговые заявки такие как:

— Рыночный приказ,
— Лимитированный приказ,
— Стоп-заявка,
— Тейк-профит,
— Тейк-профит и стоп-лосс.

Источник

Стратегия Поплавок. Робот-тестер на Луа и Питоне с описанием.

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

—ВВЕДЕНИЕ—
Пост будет полезен только разработчикам алгоритмических стратегий. Здесь нет прорывных идей. На истории стратегия прибыльная, но опыт показывает, что эта прибыльность иллюзорна и не гарантирует успех в будущем. По любой стратегии можно найти комбинацию параметров, которая прибыльна на прошлых свечках. Но радоваться, что ты нашёл Грааль, рано. На будущих сделках эти параметры скорее всего будут убыточными.
Тем не менее, подгонка под исторические данные — штука интересная, поэтому пишу этот пост. В нём вы найдёте рабочий тестер для описанной стратегии, который можете использовать как захотите.

—ОПИСАНИЕ СТРАТЕГИИ—
Назовём её «Поплавок», потому что это стратегия выныривания из зоны перепроданности.
1. Ждём, когда индикатор RSI сформирует двойное дно.
2. Оба дна должны быть ниже какого-то горизонтального порога по RSI, например 25.
3. Подъём (выныривание) выше этого порога мы считаем признаком разворота и покупаем.
4. Прибыль забираем, когда акция дорастёт до (к примеру) уровня 50 по RSI. Скрипт умеет подбирать и этот параметр. Часто наилучшим вариантом будет продавать при RSI = 70 или даже RSI = 80, то есть уже в состоянии сильной перекупленности. Но эту фразу не воспринимайте как рекомендательную, ведь все эти прогоны на истории ищут лучший вариант в прошлом, но это не гарантирует успеха в будущем.
Стоп лосс задаётся пользователем, например на уровне 1% от точки входа.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Важно: скрипт торгует виртуально на истории одной акцией (не путать с лотом!). Плечи не предусмотрены.

—ПРИМЕР ИНТЕГРАЦИИ С ЭКСЕЛЕМ—
Допустим, вы сделали прогонку Газпрома (15-минутки) в поисках, какой период RSI лучший.
А именно:
-период RSI (rsi_period) меняется в интервале от 5 до 30
-горизонтальный порог RSI rsi_val (признак перепроданности) неподвижен на уровне 20 (он не меняется)
-акции продаются при RSI = 60 (tp = 60 и не меняется)
У вас получились такие строки:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
То есть, вы изучали всего один параметр (rsi_period), а другие были неподвижны.
Этот список легко кидается в эксель через копи-паст. В экселе удаляете ненужные столбцы. Точку между дробной и целой частью (возможно) придётся заменить на запятую.
Огонь! В экселе строится приятный график:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
График грустный: плюсовые исходы не велики. Ради такой доходности даже не хочется нагибаться. Эта фраза не ругает всю стратегию в целом, она лишь ругает исходы по данным комбинациям параметров.

—ЕЩЁ НЕМНОГО ПРО ИНТЕГРАЦИЮ С ЭКСЕЛЬ—
Торговля по лучшей из найденных комбинаций записывается в отдельный файл вида:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
В нашем случае лучшим параметром оказался период RSI=21
Свечи прочёсывались слева направо, скрипт заключал виртуальные сделки на покупку и продажу.
Вот что он наколядовал по наилучшей комбинации параметров:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Это исходы сделок в рублях при торговле 1 акцией. Всего было 17 трейдов. Их тоже можно закинуть в эксель (мне приходится в экселе точку менять на запятую)
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

—ЧТО ПИШЕТ РОБОТ В ОКНО СООБЩЕНИЙ КВИКА—

Запустив скрипт, в начале вы будете видеть нудноватый процесс скачивания свечек с Финама:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Затем начинается перебор разных комбинаций параметров в поисках лучшей. Во время поиска в КВИК выводятся такие сообщения:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Скрипт обычным брутфорсом гоняет параметры в цикле один за другим, и если видит, что с какой то комбинацией заработано больше денег, чем было ранее, то пишет в окошко сообщений КВИКа строчку типа

NewBest! SBER rsi_period=28 rsi=30 tp=80 money=106.06 tr=22 losses=19

GAZP best_res=5.12 year_%=0.4 rsi_per=21 rsi_val=20 rsi_tp=60

Это значит:
best_res=5.12 — результат в рублях
year_%=0.4 — доходность процентов годовых
rsi_per=21 — период индикатора RSI
rsi_val=20 — горизонтальный уровень RSI, который мы считаем критерием перепроданности (из-под него выныривает двойное дно)
rsi_tp=60 — при каком уровне RSI продаём ранее купленные акции

По лучшей комбинации вы увидите все заключённые сделки.
Они будут:
-выведены в КВИК, покуда хватит истории КВИКа. На звёздочку можно навести курсор и увидеть параметры сделки. У сделок, которые закрывают позицию, в конце выводится причина закрытия: стоп-лосс (sl), тейк профит (tp) или конец дня (end).
Важно:
-звёздочки попадают не точно на нужную свечку, а располагаются на 1 свечу левее, то есть слева от правильной.
-цена, на которой ставится звёздочка, чуть-чуть выше правильной.
На расчёты это не влияет, но если вы планируете вглядываться в эти звёздочки, это важно учитывать.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Чтобы робот мог нанести на график эти звёздочки, нужно указать идентификатор в виде тикера:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
-также сделки будут записаны в окне сообщений КВИКа вот так:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
по чём вошли, по чём вышли, сколько заработали или потеряли.
Если сделок будут тысячи, и вы поймёте, что не хотите их видеть в окне сообщений, просто закомментируйте эту строчку:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Закомментировать — это означает превратить строку в комментарий через выставление двойного дефиса вот так:

По каждой бумаге робот выведет наилучшие для неё параметры, и сколько с ними удалось заработать.
ЛУЧШИЕ ИНДИВИДУАЛЬНЫЕ ПАРАМЕТРЫ:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Индивидуальные параметры очень разные. Глядя на них, нельзя найти никакой закономерности. А ведь акциями торгуют одни и те же люди/роботы. Это печалька. Значит мы занимаемся тупой подгонкой под результат. Поэтому я и написал в начале, что здесь нет грааля, а пост предназначен только для алготрейдеров.

—УНИВЕРСАЛЬНАЯ КОМБИНАЦИЯ—
Попробуем поискать универсальную «золотую» комбинацию, которая будет едина для торговли всеми акциями.
Такая комбинация тоже ищется скриптом и выводится в окошко сообщений:
—УНИВЕРСАЛЬНЫЕ ПАРАМЕТРЫ—
Проценты здесь не годовые, а общие за всю прогонку.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Золотые параметры отвечают на вопрос, «Если для всех акций использовать одни и те же параметры, то какие параметры будут лучшими?» При этом по отдельным акциям золотые параметры могут давать убытки. Главное, чтобы общий результат был самым прибыльным. При поиске золотой комбинации нет отсева по критерию «слишком много лосёвых сделок, значит эту комбинацию отвергаем«, поиск рассматривает все исходы.

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

—ЧТО В АРХИВЕ?—

В архиве лежат:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
-папка tmp_files техническая. Через неё скрипт на Луа общается со скриптом на Питоне.
-в папке zapis_rezultatov лежат файлы с результатами прогонов. Их удобно забрасывать в Эксель и анализировать.
-файл _Start_poplavok.lua для вас главный. Его нужно открыть в КВИКе и запустить. В этом же файле — пользовательские настройки, которые можно и нужно менять.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Остальные файлы можно не открывать. Они интересны только программистам, которые захотят поковыряться в моём коде. Я снабдил код подробными комментариями.
-в файле finam_parser.lua лежит функция для загрузки и обработки свечек с Финама
RSI.lua — код индикатора RSI. Я его скачал как есть с сайта разработчиков КВИКа: https://arqatech.com/upload/iblock/398/INDICATORS.zip
service_functions.lua библиотека служебных функций на Луа типа округления и записи данных в файл.
virtual_trading.lua — сердце робота. Вся торговая логика здесь.
Finam_Big_Base.py — скрипт на Питоне. Его вызывает Луа-скрипт, чтобы получить с Финама циферки, под которыми там лежат акции и другие инструменты. В результате его работы в файле IDs.lua из папки tmp_files сформируется строчка типа:

—ТЕХНИЧЕСКИЕ ДЕТАЛИ—
У вас должен быть установлен:
-терминал КВИК.
-Питон 3-й версии и выше. Качается с сайта https://www.python.org/
При установке Питона важно поставить птичку Add Python 3.8 to PATH.

Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Иначе у вас не сработает строка на языке Луа в файле _Start_poplavok.lua:
Луа не поймёт, где у вас лежит Питон.
Если вы всё же столкнулись с этой проблемой (Луа не видит ваш Питон) её можно решить так: прописать полный путь к файлу python.exe:
У вас python.exe будет лежать в какой-то другой папке, я просто привожу пример. Бэкслэши обязательно должны быть двойные: \\
Тогда будет работать и без птички возле Add Python to PATH.

В окно сообщений КВИКа выводится много полезной информации, поэтому оно должно быть открыто:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua

Я кодю на Луа в блокноте Notepad++. Он красиво подсвечивает синтаксис, и в целом удобен.

—СКАЧАТЬ СКРИПТ—

yadi.sk/d/zVPrSyP8qJ28jA
Распакуйте архив где угодно. У вас появится папка poplavok с файлами, и действуйте дальше по инструкции. Напомню, что файл, который надо запускать в КВИКе, называется _Start_poplavok.lua

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

—ПРИЛОЖЕНИЕ—
Результат прогона стратегии на 21 акции российского рынка.

Тайм-фрейм — 15-минутки
Стоп-лосс = 1% от точки входа
dolya_losey = 0.5 (лосёвых сделок не больше половины)

50 минут, поэтому запасайтесь терпением.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Примеры сделок:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Скрипт нашёл лучшие индивидуальные параметры для каждой акции. Рост-падение доходности (грубо говоря, эквити), записалось в файлы с названием типа res_VTBR_equity.txt
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
В файлы записались результаты отдельных сделок (в процентах)
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Запихиваем в эксель и видим плохое. Комбинация конечно прибыльная и дала наилучший результат, но кривая доходности не стабильна, и в конце завалилась вниз.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
По СБЕРу вообще ужас. Почти всё время комбинация была убыточной, но последняя красивая сделка вывела торговлю в плюс, в результате комбинация стала самой лучшей:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Вот эта сделка на графике:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Поэтому к полученным результатам надо относиться критически. Скрипт ещё пилить и пилить. Поэтому я и приглашаю к обсуждению умных комментаторов.
А вот к Аэрофлоту претензий нет. Найденная комбинация дала прекрасную эквити:
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
А именно: AFLT rsi_per=8 rsi_val=23 tp=70 res=43.4 year_%=16.1
Восхитительно. Может быть торговать этими параметрами на всех акциях? Попробуем.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Увы, если гонять эту комбинацию на всех бумагах, депозит будет слит. Если суммировать процентный результат по всем сделкам (трейд за трейдом), получится убыток за всё время торговли -258,58%. Так что эта комбинация была хороша только для Аэрофлота.

ЕЩЁ ОДИН ПРОГОН НА ИСТОРИИ
Чуть изменю одно условие. Все параметры прежние, кроме одного. Раньше я отбраковывал исходы, где лосёвых сделок было больше 50%. Теперь их не должно быть больше 33%.
dolya_losey = 0.33
Итог сильно изменился
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
По Сберу и ВТБ уже не удаётся найти хороших комбинаций параметров. Суммарная доходность (если сложить доходность по каждой бумаге) уменьшилась вдвое до 49,1% (было 101,2% при dolya_losey = 0.5). Но доверие к этим параметрам возросло. Основная замеченная тенденция: сделок стало меньше, но выросло их качество.
Робот на языке lua. Смотреть фото Робот на языке lua. Смотреть картинку Робот на языке lua. Картинка про Робот на языке lua. Фото Робот на языке lua
Буду продолжать анализ. Может, что-то и получится. Закручивать гайки, отбраковывать шлак — дело полезное.

ЗАКЛЮЧЕНИЕ
Согласно комментариям готов дорабатывать эту стратегию и доделывать тестер. Истина где-то рядом… но ещё не найдена.


Друг,
если тебе понравился этот пост, поставь ему плюс, добавь в избранное и оставь коммент!
Мой блог на Яндексе про Питон.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *