Главная » Правописание слов » Как написать торгового робота для quik на lua

Слово Как написать торгового робота для quik на lua - однокоренные слова и морфемный разбор слова (приставка, корень, суффикс, окончание):


Морфемный разбор слова:

Однокоренные слова к слову:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Код робота на LUA для QUIK

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

Предназначается для новичков в алготрейдинге, что-то типа болванки.

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

Предназначается для новичков в алготрейдинге, что-то типа болванки.

Извините за дальнейшее занудство.

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

К недостаткам я бы отнёс:
* неудачное форматирование;
* отсутствие должных комментариев;
* нет ссылки на библиотеку «QL» и подсказки, что она нужна для логгирования в файлы (и, может быть, зачем-то ещё);
* переменные объявляются то локальными, то глобальными;
* [«TRANS_ID»]=tostring(math.random(2000000000)) — нет гарантии, что не получится повторяющихся идентификаторов транзакций;
* молимся, что при отправке транзакций нет ошибок.

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

Источник

Примеры простого торгового робота на Lua и Python от разработчиков QUIK

Внимание

Выполнение 1,2 пунктов наверное не займёт много времени от разработчиков и не потребует вносить изменения в код QUIK и Документацию.
PS Примеры наверное можно разместить на GitHub или чёмто подобном.

Цитата
ЛуаСкрипт написал:
Не думаю что у разработчиков написание такого робота заняло бы более 1 го дня.

Оптимистичненько. Не более 1 года, так реальней звучит.

Цитата
ЛуаСкрипт написал:
Возникают проблемы с производительностью, стабильностью работы роботов и самого QUIK

Это зависит от квалификации программиста, а не от наличия/отсутствия примеров.
Lua придумали не мы и существует он очень давно. Что мешает посмотреть алгоритмы на не связанных с QUIK ресурсах, посвященных Lua?
И не надо говорить про «специфику», вся специфика относящаяся непосредственно к QUIK уже миллион раз обсуждалась еще со времен QPILE и с тех пор мало что изменилось.
И даже более того, 99% вопросов по «специфике», вообще никак не относятся к программированию на Lua, а относятся к функционалу самого терминала QUIK.
А функционал самого терминала QUIK должен быть Вам хорошо известен до того как Вы возьметесь программировать.

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

Что значит «типового»? Вот мы считаем что все имеющиеся способы (DDE, ODBC, QLUA) являются типовыми.

тот же комментарий, мы считаем имеющиеся способы «типовыми».

Что тут писать если есть DDE?
А в Excel есть VBA.
А дальше куда угодно.

такой пример уже есть, см примеры для Trans2quik

что такое «контроль выполнения заявок»? Если интересует как получить данные то уже было отвечено выше. Если интересует как считать состояние портфеля, то формулы можно посмотреть в документации на терминал.

Источник

10 этапов разработки торгового робота под QUIK и TSLab от Robot Scalper

К нам поступил запрос на создание многопараметрического робота, с кучей условий торговой логики и в конце с припиской: «За работу я готов оплатить 800 рублей». Как у заказчика получилась такая сумма осталось не ясно. Возможно, всё тривиально, и это просто все его доступные средства, которые остались от торговли по интуиции. А возможно человек просто не понимает какую работу нужно проделать и из чего образуется цена на торговых роботов. Но это не страшно. Мы как раз сейчас и постараемся разобраться в этом.

Нужно ли платить разработчикам роботов или нет, каждый решает для себя сам. Можно и не платить, а взять и методично, по пунктам, всё сделать самостоятельно. Сколько уйдет на это времени? И какой будет конечный вариант? Зависит непосредственно от опыта, знаний и умений конкретного человека.
Чем больше у человека опыта в программировании, в трейдинге, в автоматизации бизнес-процессов, в тестировании, в умении оптимизировать стратегии, тем быстрее и качественнее будет результат. Если вы начинающий алготрейдер и у вас нет наставника с его опытом и наработками, то настраиваться сразу желательно на 6 месяцев работы и более.
Профессиональный алготрейдер может передать знания по созданию прототипов, тестированию на истории и оптимизации роботов за более короткий срок. И это будет скорее всего платная услуга.

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

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

Очень много интересной и важной информации можно найти здесь:
https://www.instagram.com/robot_scalper/

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

Источник

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

Архивы

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

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

Научиться создавать роботов в Квике на 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, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать торгового робота для quik на lua", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.

Какие вы еще знаете однокоренные слова к слову Как написать торгового робота для quik на lua:



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

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