1

Тема: Основы программирования LUA в QUIK (QLUA): обсуждение

Обсуждение материалов темы Основы программирования LUA в QUIK (QLUA) просьба пока делать здесь. Что-то не понятно, что-то не рассказано - пишите здесь, не стесняйтесь.

2

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Скачал с сайта новую версию QUIK (6.4) и установил ее. В доке написано "в меню программы появится дополнительный пункт Таблицы / LUA". Не появилось. Я что-то неправильно сделал или брокеру что-то необходимо поменять со своей стороны?

3

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

На QUIK Junior ARQA - работает. Я там проверял все. У брокера - не работает, но брокер и терминал не обновил у себя. Написал письмо в поддержку, но пока молчат.
Судя по форуму ARQA Lua является плагином, а с ними всегда какие-то сложности были.
Надо на форуме разработчиков спросить как достучаться до этого LUA у реального брокера.

4

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Еще хотелось бы добавить в тему про взаимодействие с внешними библиотеками из lua, без файла lua5.1.dll в папке квика, не удается подключать внешние библиотеки к скрипту, причем нужна последняя версия библиотеки lua5.1.dll

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

5

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Про внешние библиотеки - да, тут отдельная история. Если это LUA-библиотека - то все они непременно используют lua5.1.dll, но это будет отдельный рассказ. ( Уже есть )

У меня, если честно, не хотят работать вообще отладчики. Подгружаются, виртуальные машины видят в info.exe, а на точках останова не тормозят совершенно. Кто-нибудь отладчики победил?

6

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Подскажите пожалуйста:
1 - как организовать отладку скрипта
2 - как осуществить расчеты различных индикаторов с использованием внешних библиотек

7

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Vasj,

С отладчиками лично у меня пока не получается ничего. Decoda не очень понятно на каких принципах вообще работает, но к QUIIK подключаться упорно не хочет.
На данный момент возлагаю надежды на LuaEdit2010, вроде там есть ощущение, что можно победить; пока, правда, тоже не удалось. Как будет о чем - отпишусь.

По поводу расчетов - ну рассчитать-то просто, по формулам smile
А вот нарисовать - отдельный вопрос. Готовых средств на данный момент в QUIK нет, стоит ли делать для этого внешнюю библиотеку - лично мне пока не понятно, т.к. нет ясности, когда ARQA встроит поддержку отрисовки индикаторов на LUA. Если не скоро - то сделать сейчас библиотеку разумно, иначе - зря потраченное время, жалко его. Если только разыщется подходящая готовая библиотека отрисовки графиков с масштабированем и прочими готовыми удобствами - тогда другое дело, но пока таковая не подвернулась. А делать самому - слишком много труда, а есть ли смысл - не ясно.

8

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Administrator,
Скажите, Вы почему Вы закрыли тему? У Вас так отлично получается. Сколько не искал, нигде не нашел хорошего учебника для начинающих, Ваше описание самое понятное. Если будет возможность добавьте еще хотя бы несколько примеров.

9

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Balug, спасибо за ваш отзыв.
Обязательно постараюсь.

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

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

10

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Мне нравятся Ваше описание потому, что Вы даете  основы, и даете их детально и понятно, чего я нигде больше не нашел. Примеры, которые Вы разбираете, просты (не за умны), что важно для начинающих. Кроме того, Вы их достаточно подробно разбираете объясняя значение основных моментов и показывая к чему приведет запуск скрипта. Именно в таком ключе и хотелось бы увидеть продолжение.
Что касается примеров то тут одно пожелание – от простого к сложному и Вы наверняка лучше меня знаете с каких азов подойти к написанию программы. Мне же, как начинающему, было бы интересно увидеть примеры: создание простой таблицы; создание усложненной таблицы  (куда вошли бы данные из разных Квиковских таблиц, например из: «Таблицы по клиентским счетам», «Таблицы параметров опционов» и «Ограничения по клиентским счетам»); обращения к внешним файлам (чтение и запись); работа с дополнительными библиотеками (*.dll); простейший пример выставления и снятия заявки по условию. Если Вам будет удобнее, я могу более подробно описать каждый пример, но боюсь показаться слишком назойливым smile.

11

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Большое спасибо за этот вводный урок!
Наконец стало понятно какой поток основной, а какой - дополнительный.
А то я пытался написать в функции OnAllTrade команду sleep(1000) и удивлялся, почему вся система виснет настолько, что я даже не могу нажать кнопку "остановить" и приходится выключать весь Quik)
То есть, получается, что в функциях обратного вызова нужно делать как можно меньше "тормозящих" движений? перебросить цифры из одного места в другое, подсчитать что-нибудь - не больше? иначе система будет тормозить?

12

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Metallurg, и вам спасибо, что заглянули, спасибо за отзыв.

Metallurg пишет:

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

Именно так.

13

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Добрый день!
Комрады, подскажите, с чего начать!?

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

С чего начать, как это систематизировать, чтобы банально писать (пока что) простейшие скрипты (например, на покупку/продажу от уровня цены)??

14 (2015-12-31 12:08:04 отредактировано GREEN_X5)

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Regis пишет:

Добрый день!
Комрады, подскажите, с чего начать!?

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

С чего начать, как это систематизировать, чтобы банально писать (пока что) простейшие скрипты (например, на покупку/продажу от уровня цены)??

"С чего начать" - с самоучителей LUA, всех что найдете в сети, прочитать и понять написанное, создавая примеры.
"простейшие скрипты (например, на покупку/продажу от уровня цены)" - это как раз не простейшее, а станет эпогеем в вашем изучении языка, дальнейшее развитие пойдет как по маслу. Простейшее это

message("Hello Word")

вот с него и начните

15

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Regis пишет:

С чего начать, как это систематизировать, чтобы банально писать (пока что) простейшие скрипты (например, на покупку/продажу от уровня цены)??

Добрый.
Для начала сделайте тестовый скрипт, где проверите работу функций из описания qlua.chm, например:

# test.lua
local path = getScriptPath()
message (type ( path ).."\n"..path)

16

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Ок. Спасибо! мысль понятна)

p.s. апогей достиг быстро - sendTransaction))

17

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

kalikazandr пишет:
Regis пишет:

С чего начать...??

Для начала сделайте тестовый скрипт, где проверите работу функций из описания qlua.chm, например:

# test.lua
local path = getScriptPath()
message (type ( path ).."\n"..path)

Тема была уже закрыта год назад, все все поняли и успокоились, но так случилось, что я занялся квиком только сейчас. Обьясните пожалуйста, каким образом можно протестировать любой код на Lua, хотя бы даже этот. Пробовал сам компилировать luadll по материалам в интернете. В результате dllка создалась без ошибок, но при попытке запустить рабочий код, программа функции из lua подчеркивала красным, говоря как бы, что не видит и не понимает эти функции. Тогда взял готовый код и готовые dll с вашего форума по ссылке  https://quik2dde.ru/viewtopic.php?pid=25#p25  там было 2 папки в архиве

lua5.1.dll-cover.src

и

simple-lua-c-dll

. Первая папка я так понял, для создания dllки. Вторая папки пример программы на Lua с использованием dll. Запустил оба проекта в VS15 c++, оба проекта откомпилировались без ошибок. Но после добавления тестового кода в программу, VS15 снова подчеркивает код тест красным, что не понимает тестовые функции, вот я сюда его вставил

extern "C" LUALIB_API int luaopen_luacdll(lua_State *L) {
    
    luaL_openlib(L, "luacdll", ls_lib, 0);
    return 0;
}
main()
{//# test.lua
    local path = getScriptPath();
    message(type(path).."\n"..path);
}

Может вставил не туда, а может это и не тестовый вовсе код. Прошу прощения если что то спрашиваю не совсем правильно, это мое первое письмо на этом форуме и в lua в том числе. PS с++ немного знаю, VS c# знаю немного лучше, но для lua он вроде не очень подходит, поэтому пытаюсь писать на VS c++. Помогите пожалуйста понять, каким образом и куда надо вставить код lua что бы он работал в VS?

18

Re: Основы программирования LUA в QUIK (QLUA): обсуждение

Здравствуйте! Только начал изучать lua по книге Роберто  Иерусалимского и у него сразу пошло, без обьяснения, использование неких последовательностей символов в таблицах вроде "%q+" или "%w+" или "%a+" или все тоже самое но без плюса, растолкуйте мне пожалуйста что они значат, имеет ли значение буква после % или нет и что дает добавление знака плюс?