Меню Рубрики

Установка lua для quik

Введение в QUIK (Квик) и LUA

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

Если вы начинаете с самого начала и ещё ни разу не слышали о том как писать индикаторы или скрипты в платформе QUIK, то этот сайт как раз то что вам нужно.

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

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

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

Где писать код?

Индикатор или скрипт это обыкновенный текстовый документ который имеет специальное расширение. Поэтому писать мы можем используя любой текстовый редактор, даже самый простой блокнот встроенный в операционную систему Windows. Открываем блокнот, пишем необходимый код сохраняем и всё наш индикатор или скрипт готов, можем использовать его в платформе QUIK, всё просто. Просто, да неудобно. Вы видели как выглядит текст в блокноте? Сплошной черный текст на белом фоне, писать можно, читать тоже можно, но программировать просто ужасно трудно. Поэтому я вам предлагаю использовать расширенную версию блокнота, называется эта программа notepad++. Я никоим образом ни кого не заставляю использовать именно ее, можете использовать любую другую программу. Я же предпочитаю пользоваться именно notepad++.

Если Вы решили как и я использовать для написания кода программу notepad++, то рекомендую перейти в раздел «QLUA (Квик) -> Рабочее Место» изучить все статьи начиниая с первой «Редактор кода notepad++» и настроить свое рабочее место.

Индикатор или скрипт? Что выбрать?

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

в заключении

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

Если у вас всё готово, а главное вы сами готовы, то переходим к следующему шагу.

источник

QUIKBOT . EVOLUTION …

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

Архивы

Свежие комментарии

Как запустить QLua(Lua) — скрипт в терминале QUIK

Для тог, чтобы запустить QLua(Lua) — скрипт в терминале QUIK, в начале нужно поместить его в какую-нибудь папку на Вашем компьютере. Удобно для этого создать новую папку в папке установки терминала, назвать ее, например, «MyLua», или так, как Вам нравится, и хранить в ней все Ваши Lua — скрипты.

Далее, нужно перейти в меню терминала QUIK по пути: «Сервисы» -> «Lua скрипты. «. Откроется окно, как на картинке. В этом окне нужно нажать кнопку «Добавить», далее, найти Ваш скрипт, открыть его. Таким образом он добавится в «Загруженные скрипты», после чего, его нужно выделить в этом окне (строка подсветится) и нажать кнопку «Запустить». Если в скрипте нет ошибок, то слева от его названия вместо «красного квадратика» появится «зеленый треугольник», это означает, что скрипт запущен, если в скрипте обнаружились ошибке, то информация об этом будет выведена в подокне «Ошибки выполнения скрипта» данного окна.

Чтобы остановить выполнение скрипта, в любой момент можно нажать кнопку «Остановить», при условии, что выделена строка с нужным скриптом. После запуска скрипта, Вы можете закрыть окно «Доступные скрипты» соответствующими кнопками.

Читайте также:  Установка датчика дождя volvo

ВАЖНО . Если Вы запустили скрипт и затем закрыли терминал QUIK, то при последующем запуске терминала скрипт автоматически запустится . Это удобно, например, при использовании скрипта автоматической авторизации.

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей .

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

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

Как запустить QLua(Lua) — скрипт в терминале QUIK: 52 комментария

Добрый день!
Не удаётся запустить даже такой простой Lua скрипт в Квике (версии 7.25.1.3):

Всё делаю строго по инструкции: в окне «Доступные скрипты» при попытке его запуска сообщений об ошибках не появляется. Но перед именем файла содержащего скрипт после нажатия кнопки [Запустить] остаётся красный квадрат. Не знаю что и делать.

Здравствуйте, ознакомьтесь с этим: https://quikluacsharp.ru/qlua-osnovy/baza-skripta-v-qlua/
если кратко, то скрипт работает, пока работает функция main(), это основная функция скрипта

Извините за беспокойство, решение нашел — при масштабе экрана более 100% (при 100% все ок) в последнем обновлении Win10 появляется этот глюк, на форуме Quick обещают решить этот вопрос при следующем обновлении программы.

Здравствуйте, Дмитрий! У меня такая же проблема как у 13bmv, в окне Доступные скрипты — видна только верхняя левая часть окна Загруженные скрипты и нет кнопок (как буд-то лагает). Система Win10, Quick 7.12.1.10 Подскажите, в чем может быть проблема?

Здравствуйте Дмитрий. У меня возможно тупой вопрос, но я полный нуб в програмировании. Так как я не нашол меню терминала QUIK по пути: «Таблицы» -> «Lua» , то захажу через «Сервис» OPILE скрипты » -> «Работа со скриптами» -> «Доступные скрипты» и при указании пути к файлу, QUIK не видет файл «Хранитель сделок.lua» . Ранее скрипты не устанавливал. Версия 7.12.1.10. Буду благодарен за помощь.

Здравствуйте! В 7-й версии терминала названия пунктов меню немного поменяли, прошу прощения, забыл исправить в статье, сейчас поправил, прочтите инструкцию снова, пожалуйста.

Всеровно не доступно. В открывшемся окне «Доступные скрины» нет кнопки «Добавить» (оно почему то постоянно моргает, как бутто лагает). Я бы добавил скрин, да коментариях нет такой функции.

Пришлите мне на почту скрин: reply@quikluacsharp.ru

При запуске корректного скрипта ничего не происходит. Красный квадрат стоит намертво. Причем если в скрипте есть ошибки, то компилятор их выявляет. Я их исправляю, компилятор перестает ругаться, но сам не запускается. Подключаю через Сервисы -> Lua скрипты..

Вопрос вдогонку: каким образом Квик понимает к какому графику подключить скрипт, или он подключает сразу ко всем?

Во первых, я не знаю что у Вас за скрипт и что он должен делать при запуске, чего Вы от него ожидаете?
Во вторых, скрипт не подключается сам по себе к графикам, если в скрипте нет соответствующей функции.
Рекомендую Вам ознакомиться с содержанием данной статьи: https://quikluacsharp.ru/bez-rubriki/s-chego-nachat/

Индикатор «Индексы свечей», скачан с вашего сайта.

Спасибо за быстрый ответ. Буду изучать.

Индикатор это не обычный скрипт, как его подключить почитайте здесь в инструкции по установке: https://quikluacsharp.ru/product/indikator-moi-sdelki/

В общем, нужно его поместить в папку «LuaIndicators», если ее у Вас еще нет, то нужно ее создать. А потом он добавляется на график как обычный индикатор, правой кнопкой по графику, «Добавить график индикатор» и в списке индикаторов найти его и запустить.

Здравствуйте.
На ПК установлена XP SP3 и программы для Lua (SciTE и ). Quik версия 7.12.1.10. При попытке добавить скрипт он не отображается в списке доступных. Отображаются 2 файла с расширением .lua, а у скрипта расширение .luac. Все указанные файлы лежат в C:\Open_Broker_QUIK\lua.
При этом на Windows 7 этот же указанный скрипт отображается, добавляется и торгует.
В чем может быть причина, подскажите пожалуйста.
Большое спасибо!

Здравствуйте, попробуйте переименовать расширение файла с luac на lua

Спасибо за Ваш совет, Дмитрий, но, к сожалению, скрипт с измененным расширением присоединился, а торговать не стал.

Причин может быть много, т.к. luac это «черный ящик», нужно обращаться к тому, кто его написал.

источник

Коммуникации Quik Lua с внешним миром.

Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.

Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта python.org, в этом случае, вам придется добавлять нужные вам библиотеки (пакеты) самостоятельно. Этот подход сложнее, но имеет некоторые преимущества.
Эти библиотеки в основном написаны на С++ и работают очень быстро, а сам Python при этом выполняет роль языка сценариев. И хотя сам Python язык не очень быстрый, его доля в исполняемой программе невелика и существенного влияния на быстродействие он не оказывает. Во всяком случае, для большинства ТС, включая интрадей, быстродействия систем на Python вполне хватает. Python, кстати, на начальном уровне, когда уже можно работать, легко осваивается за пару недель. Литературы в интернете много и не буду что-либо рекомендовать.
Итак, мы будем связывать QLua с Python. И делать это через обмен файлами с данными.
Сам я этот способ связи сейчас не применяю и работаю через DLL. Однако, ранее много использовал для самых разных целей, в том числе для проверки и отладки различных торговых программ. Писать DLL, все-таки, достаточно муторно, а опробовать обработку данных со связью через файлы не представляет сложности, да и всякие изменения вносятся очень просто. А DLL — это уже на последнем этапе, когда все уже готово.
Итак, файловый обмен. Код приводить не буду, он элементарен, файловые операции все знают. Опишу только принципы обмена данными. Но, если будут просьбы опубликовать экземпл, то со временем сделаю.
Пусть мы получили данные из события терминала в функцию OnAllTrade(alltrade). Для обмена с DLL функция выглядит так:

Читайте также:  Установка капиталов и его функции

В этом коде мы должны вместо функции вызова DLL написать и подставить другую функцию, преобразующую данные at к текстовому формату CSV. Получим строку букв и чисел разделенных запятыми. Данные готовы для передачи во внешний мир.
Теперь для передачи данных нам потребуется два файла:
AllTradeD — служит для передачи данных, и
AllTradeF — пустой файл, служит флагом для индикации готовности данных к считыванию.

На первом шаге мы открываем и записываем данные at в файл AllTradeD, закрываем файл, после чего создаем пустой файл AllTradeF, индицирующий приемной стороне, что данные готовы к считыванию, и закрываем его. Данные преданы.
Теперь обратимся к приемной стороне, уже Python, в нашем случае.
В программе Python организуем цикл, проверяющий наличие файла AllTradeF. Как только файл обнаружен, данные готовы к чтению. Читаем данные из файла AllTradeD и обязательно закрываем файл. Теперь удаляем файл AllTradeF, что будет означать для передающей стороны (QLua), что приемник готов к получению следующей порции данных. Далее процесс повторяется до полного одержания.
Да, передающая сторона должна открывать файл AllTradeD для записи, а не для дополнения.
Собственно, передача данных из Python в QLua делается аналогично.

Теперь о быстродействии такой системы.
Мне удалось получить скорость передачи

1Gb/s c RAM-Disk. Разумеется с HDD такую скорость обмена не получить, но если у вас есть SSD, то скорость обмена будет вполне удовлетворительной. Даже если у вас нет SSD, то сейчас уже на многих компьютерах появились порты USB 3.0 и 3.1. Имея соответствующую флешку и осуществляя запись на нее также получаем очень приличную скорость обмена.
Использование для записи флешки USB 2.0 вместо HDD тоже дает некоторое преимущество в скорости, т.к. диск порой занят не только вашими, но и другими делами, и временами скорость обмена может существенно падать.

источник

Курсы Lua

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

1. Необходимые программы и документы для торговых роботов на Lua для QUIK.

Подключайтесь на автоследование за моими торговыми роботами.

LuaForWindows_v5.1.4-46.rar

Пакет Lua­­ for Windows содержит всё, что необходимо для написания, выполнения и отладки скриптов на языке Lua под операционную систему Windows. Размер файла: 25.06 мб

Quik_lua.zip

Документация по языку Lua в QUIK. Размер файла: 2.54 мб

Doc714.zip

Документация к торговому терминалу QUIK. Руководство пользователя QUIK. Размер файла: 17.30 мб

8 Язык QPILE.pdf

Имена параметров для вызова функции getParamEx. Страницы с 63 по 68. Размер файла: 1.63 мб.

6 Работа с другими приложениям

Таблица параметров транзакции страницы с 32 по 38. Размер файла: 1.83 мб.

Ошибка при установки LuaForWindows_v5.1.4-46

Если у Вас, при установке LuaForWindows_v5.1.4-46 появляется следующая ошибка:

Запустите установку файла vcredist_x86.4053.exe из архива LuaForWindows_v5.1.4-46.rar , а после снова попробуйте запустить LuaForWindows_v5.1.4-46.exe.

1. Lua for Windows.

Установим пакет на свой компьютер. Процесс установки прост и не требует никаких специальных настроек. Необходимо только принять лицензионное соглашение. Более никаких изменений в процессе установки вносить не требуется. После установки пакета в меню Пуск найдем директорию Lua. Из всех установленных приложений пользоваться мы будем только редактором кода SciTE. Редактор кода SciTE это специальный текстовый редактор, который настроен на язык программирования Lua и знает синтаксис данного языка.
Запустим SciTE через меню Пуск > Все программы > Lua > SciTE или Пуск > Приложения > Lua > SciTE. Если по какой-то причине в меню Пуск отсутствует папка Lua, то запускаем по следующему пути. C:\\Program Files\Lua\5.1\SciTE\SciTE.exe.

Читайте также:  Установка ламп авео т300

Немного о редакторе SciTE.

После запуска идем в меню Language и выбираем язык Lua. Этим действием мы настраиваем редактор на нужный язык программирования. Редактор знает синтаксис языка Lua и поэтому, будет выделять цветом тот или иной текст кода. Например слова входящие в состав языка Lua выделяются синим жирным шрифтом, обычным черным шрифтом печатаются имена переменных, названия таблиц или названия каких-то функций, которые уже были созданы с помощью языка Lua. Значения переменных выделяются голубым тонким шрифтом. Красным тонким шрифтом выделятся комментарий к коду.

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

Еще некоторые возможности редактора SciTE. При написании кода иногда выводятся подсказки ниже курсора — это редактор подсказывает Вам имена, существующие в текущем скрипте. Нажав клавишу Tab или дважды щелкнув мышкой на подсказку, произойдет автоматический ввод подсказки.

На рисунке, с левой стороны окна, Вы можете видеть столбец с номерами 1, 2, 3, 4, 5 – это нумерация строк кода. Нумерация строк очень удобная вещь, она позволяет находить ошибки в коде. Например, если произошел какой-то сбой в программе, то в сообщении об ошибке будет указан номер строки, в которой это произошло.
Некоторые полезные функции при написании кода:
Для того чтобы удалить одну строку, встаем на нее курсором и нажимает Ctrl+L, при этом действии удаляется целиком вся строка.
Для выделения всей строки, трижды щелкаем левой кнопкой мыши по строке.
Для выделения прямоугольной области из нескольких строк удерживая клавишу Alt, выделяем необходимый фрагмент, удерживая нажатой левую клавишу мыши.
В редакторе работают стандартные сочетания горячих клавиш Ctrl+C – копировать, Ctrl+V – вставить, Ctrl+X – вырезать, Ctrl+Z – отменить.
Выше приведены минимально необходимые знания для работы с редактором кода SciTE. Функции редактора, которые нам потребуются, при изучении языка Lua и написании торговых роботов мы будем рассматривать в процессе.

2. Документация по языку Lua в QUIK.

Разработчиками терминала QUIK составлен пакет документов поясняющих взаимодействие скриптов на языке Lua и торгового терминала QUIK. Документация доступна на официальном сайте QUIK www.arqatech.com, а также в документах к данному курсу. Рассмотрим имеющиеся документы подробнее.

«Интерпретатор языка Lua.pdf» – это основной документ, содержащий команды для терминала QUIK, позволяющие скриптам на языке Lua получать доступ к данным и отправлять заявки в торговую систему. Интерпретатор языка Lua для терминала QUIK называется QLua. Определение интерпретатора QLua из документа «Интерпретатор языка Lua.pdf» стр.5:
«Интерпретатор языка Lua (QLua) – это библиотека, которая предоставляет пользователю возможность взаимодействия с Рабочим местом QUIK при помощи скриптов, созданных на языке Lua.»
Библиотекой называют сборник подпрограмм для выполнения часто встречающихся операций.

Что такое скрипт? Прежде чем ответить на этот вопрос давайте с начала подробнее разберем, что такое язык программирования.

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

Язык программирования Lua.
Lua — это встраиваемый язык программирования, предназначенный для встраивания в программу собственного кода. Пользователь, при помощи языка Lua, может написать сценарий поведения для определенной программы, и программа будет самостоятельно выполнять прописанные в сценарии действия. Такие сценарии называются скриптами. В нашем случае мы будем встраивать скрипт на языке Lua в торговый терминал QUIK. Интерпретатор QLua служит связкой между скриптом на языке Lua и терминалом QUIK, именно эта связка и позволяет встроить код на языке Lua в терминал QUIK.

Список данных, к которым предоставляет доступ интерпретатор QLua:

1.Данные из таблицы «Текущие торги».
2.Данные с графиков цены, объема и индикаторов.
3.Данные из стакана котировок.
4.Данные из таблиц, заявки, сделки и стоп-заявки.
5.Данные из таблицы «Клиентский портфель».
6.Информация по денежным средствам на торговых счетах.
7.Информация по бумажным лимитам.
8.Позиции по фьючерсам и ограничения по денежным лимитам.
9.Данные с графиков цены и объема торгового инструмента.
10.Данные с графиков индикаторов.

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

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

1.Рыночная заявка.
2.Лимитированная заявка.
3.Заявка типа «Стоп-лимит» (стоп-заявка).
4.Заявка типа «Тейк-профит».
5.Заявка типа «Тейк-профит и Стоп-лимит».
6.Заявка типа «Спот-цена по другой бумаге».
7.Заявка типа «Со связанной заявкой».

На протяжении всего курса мы будем обращаться к документу «Интерпретатор языка Lua.pdf», так как в нем содержится вся информация по взаимодействию скриптов на языке Lau и терминалом QUIK.Следующий документ из пакета «Документация по языку Lua в QUIK» это «Создание индикаторов технического анализа с помощью скриптов Lua.pdf» – в данном документе рассматриваются примеры создания индикаторов технического анализа. Данная инструкция была разработана специалистами компании ARQA Technologies.

Следующий документ «Использование Lua в Рабочем месте QUIK.pdf» — документ был разработан специалистами компании ARQA Technologies. Документ поясняет взаимодействие скриптов Lua и терминала QUIK также в документе представлены некоторые примеры написания скриптов на языке Lua.

В папке «examples» содержаться примеры скриптов Lua для QUIK.

источник

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

Adblock
detector