Язык qlua для начинающих

Qlua для чайников. Часть 1

Многие хотели бы научиться писать биржевых роботов или хотя бы автоматизировать некоторые свои биржевые операции, но пугаются самого процесса программирования, считая его чем-то сложным. Эта статья написана для того, что бы помочь тем, кто только начинает программировать. Вы сами увидите, что на самом деле тут все просто.
Прежде чем приступить к уроку, хочу сказать пару слов о языке программирования qlua, который мы будем изучать. На сегодняшний день этот язык – самый удобный и доступный способ что-либо автоматизировать для начинающих программистов. Язык qlua гораздо лучше и удобнее его предшественника – qpile, он содержит больше возможностей, и роботов, написанных на нем, можно сделать гораздо боле гибкими. Что особо радует, так это, например, наличие так называемых CALLBACK функций (функций обратного вызова), благодаря которым появилась возможность легко писать роботов, реагирующих на разные события: изменение статуса заявки, приход сделки и т. д. (см. статью robostroy.ru/community/article.aspx?id=765).

Итак, начнем. Для начала мы просто возьмем и создадим программу, которая просто выведет на экран сообщение «Hello, World!». Очень многие начинали именно с этого. Вот текст этой очень и очень простой программы:

message(«Hello, World!»,1)

Текст программы можно набрать в блокноте:

У нас откроется вот такое окошко:

Жмем кнопочку добавить, выбираем там наш файл:

Он появился в списке доступных скриптов:

Выделяем его, жмем на кнопочку «Запустить» и видим результат:

В этой таблице необходимо настроить колонки, которые мы хотим видеть:

Поле TYPE – тип заявки. «L» — лимитированная, «M» — рыночная.
OPERATION – тип операции, «B» если покупаем, «S» если продаем.
QUANTITY – количество, как правило, в лотах. Но у разных брокеров может быть по-разному (в лотах или в штуках акций).
PRICE – цена.
TRANS_ID – идентификатор транзакции. Иногда он бывает нужен, например, в случае, описанном в одной из моих предыдущих статей: http://robostroy.ru/community/article.aspx?id=765. Но чаще всего безразлично, что вы зададите в этом поле, например, можно просто поставить единичку.
После заполнения полей переменной t мы вызываем функцию sendTransaction, она вернет нам сообщение, которое мы выведем на экран функцией message, которую мы ранее использовали для вывода сообщения “Hello, World!”. Обратите внимание, что res идет без кавычек, это переменная, а не жестко заданный текст, как в предыдущем примере.
Итак, поставим в текст программы те параметры, которые правильные для вашего случая (номер счета, код клиента, параметры бумаги, цену и количество) и запускаем скрипт. Если все правильно, то вы увидите примерно такое сообщение:

Иначе может вылезти сообщение с ошибкой. Проверьте, действительно ли выставилась заявка.

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

Источник

Основы КВИК (QUIK) и языка QLUA

В данной статье начнем рассматривать такую интересную тему как написание скриптов на языке программирования QLUA. Существует язык программирования LUA, а если в названии указан символ Q, то значит, этот язык относится к торговому терминалу QUIK. Пользователи еще говорят, что это Квик_Луа (QUIK LUA). Но суть остается одна, это встроенный язык программирования для КВИК.

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

Приступим с самого интересного момента, а с чего надо начать все это осваивать? Все сталкиваются с таким вопросом и начинают копать тонну информации по разным источникам, чтобы разобраться что же это такое и из чего все состоит. Мы же Вам попытаемся немного помочь и ускорить процесс ознакомления с QLUA.

На языке LUA можно запрограммировать скрипты для торговли в терминале КВИК, все возможные индикаторы и торговые роботы, это все понятно, но как и где это делать, в каком редакторе необходимо все это программировать?

Где будем создавать код LUA?


Все скрипты или индикаторы, написанные на LUA представляют собой простой текстовый файл, просто имеет другое специальное расширение. Из этого становится ясно, что написать индикатор/скрипт возможно даже в простом текстовом редакторе, например в программе Блокнот, что есть у всех по умолчанию в Виндоуз. Запускаем текстовый редактор, пишем в нем код скрипта, далее сохраняем файл. Вот в принципе и все, наш скрипт для применения в торговой платформе КВИК готов. Как видите, оказывается очень просто. Да, все просто, но не очень удобно, т.к. текст в блокноте не имеет никакого обозначения, просто сплошной текст без разделений, если вы программировали, то поймете о чем речь идет. Именно поэтому обычно программисты используют подобие блокнота — это программа Notepad++. Повторюсь, что можно код писать в любом редакторе, но, на наш взгляд, программа Notepad++ очень удобна для программировании на LUA. В Notepad++ есть подсветка синтаксиса Lua и это очень большое преимущество в удобстве написания Lua кода.

Что лучше создать Скрипт или Индикатор?

И вот, когда мы поняли, где мы будем создавать наши творения для терминала КВИК, у нас возникает еще один вопрос, а что лучше написать Скрипт или может Индикатор?! Да, выбирать особо не приходится, но необходимо четко понимать в чем отличия между скриптом и индикатором. Тут можно не вдаваться в глубокие подробности структуры того и другого, а можно рассуждать как простой пользователь, если нужно просто видеть нужную информацию на графике в виде линий, точек и прочих обозначений, то значит нужен Индикатора. Если, что-то другое нужно, то значит скрипт. Да, это очень поверхностные различия, но для общего понимания хватит! Далее, когда вы углубитесь в данную тему и начнете понимать из чего состоит структура скрипта, а из чего структура индикатора, то сами легко сможете понять, что нужно сделать, чтобы осуществить задуманную идею.

Заключение

Мы начали с малого, подготовились к написанию кода на LUA и разобрались, что писать код будем в текстовом редакторе Notepad+, а также знаем, что нам выбрать для реализации индикатор или скрипт. Да, пока не коснулись самого кода LUA и структуры, но постараемся сделать цикл статей, чтобы это все постепенно разобрать и понять. Это был Первый и очень важный шаг к изучению языка QLUA. А тем самым даже на этой стадии мы помогли сэкономить Вам немного немало несколько часов рабочего времени!

Продолжение следует, следите за серией статей по языку программирования QLUA для торгового терминала КВИК.

Не откладывайте свой шанс заработать на бирже уже сегодня!

Источник

Язык qlua для начинающих

Оглавление

1) Почему стоит выбрать QLua.

2) Немного истории и о преимуществах QLua в сравнении с предшественником QPile.

3) Написание индикаторов на QLua.

4) Написание робота на QLua под Quik

5) Заключение

1. Почему стоит выбрать QLua.

Если сравнивать с системами, где алгоритм выстраивается путем построения блок-схем, то преимуществом Qlua является отсутствие платы за использование торговой системы как в TsLab и нет необходимости в использовании доп. «прокладок» как Wealth-lab. В системах построения из блоков таких как: TsLab, Wealth-lab и т.д. проблематично выстраивать сложные системы, а для уменьшения количества блоков и получения доп. функций требуется знание высокоуровневых языков типа: C#, Pascal для написания кубиков вручную.

Из минусов можно отметить, что QLua используется только в рамках терминала Quik и данный язык не доступен для работы с другими терминалами и торговыми системами. Так же учитывая, что Quik является только терминалом и не позволяет производить тестирование торговых алгоритмов. В QLua нет простого решения для тестирования роботов, как это можно сделать в рамках таких платформ как: TsLab и Wealth-Lab.

2. Немного истории и о преимуществах QLua в сравнении с предшественником QPile.

До QLua был QPile, в общем–то он и сейчас есть. Интерпретатор скриптового языка QPile был разработан ARQA Technologies в 2002г. и развивался до 2012г., позже в терминал Quik был добавлен Lua интерпретатор. Так же есть вероятность, что компания ARQA Technologies возможно в ближайшем будущем откажется от дальнейшей поддержки QPile. Qpile как и Qlua является скриптовым языком и обладает рядом возможностей. По праву он является первым языком для написания роботов и советников для терминала Quik. Является простым для изучения и функциональным инструментом, но обладает рядом минусов.

И так, какими плюсами обладает QLua в сравнении с QPile:

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

— у QLua есть многопоточность. Реализовано это в виде основного потока торговой логики и функций обратного вызова(«колбэков»).

— есть возможность писать и подключать библиотеки на других языках, сам Lua кстати написан на Си

— появилась возможность писать пользовательские индикаторы и использовать их как стандартные.

— синтаксис языка немного похож на JavaScript и C#, отсюда удобство работы с операторами переменными и т.д.

— скрипты обычно интерпретируются, а не компилируются. QLua обладает JIT-компиляторами так как в его основе лежит язык Lua. Что позволяет прятать исходный код, в то время как у Qpile он всегда открыт. Ссылка как компилятор для скрытия исходного кода Qlua

3. Написание индикаторов на QLua.

(1) Пользовательский индикатор

Как уже упоменалось выше в рамках терминала Quik существует два скриптовых языка это: Qpile и QLua. Qpile являестя более ранним языком, который появился в Quik и на нем нельзя было писать индикаторы. Позже разработчики расширили функционал и добавили QLua, в рамках которого стало возможным писать индикаторы. В данной части статье пойдет речь о создании индикатора под Quik.

И так перейдем к созданию индикатора. Для этого нам понадобится любой текстовый редактор типа Notepade.

Индикатор на QLua для Quik состоит из трех основных частей.

Здесь мы описали массив настроек, ввели название индикатора, параметры описали параметры двух линий индикатора Именно эти параметры будут доступны в пользовательском индикаторе для изменения при загрузке индикатора на Qlua в Quik

4. Написание робота на QLua под Quik

Написание торгового робота на QLua ведется в обычном текстовом редакторе, так же как и для написания индикатора. Отличие будет в структуре кода и в том, что располагать робот можно в любом удобном для вас месте на компьютере. В роботе является обязательной только одна функция main.

5. Заключение

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

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

Для написания индикаторов в Квик, Qlua является единственно возможным вариантом.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector