Руководство пользователя qlua

Qlua-основыЧтобы скомпилировать(получить байт-код) Ваш скрипт, Вам понадобится файл luac.exe, находится в корневом каталоге Вашей LuaForWindows, если у Вас ее еще нет, то установите отсюда code.google.com
Затем, положите в папку с Вашим скриптом копию файла luac.exe, создайте в этой папке текстовый файл, добавьте в него строчку:
luac.exe -o MyScript.luac MyScript.lua
«MyScript» замените на имя Вашего скрипта и сохраните этот файл под любым названием, главное с расширением .bat
Теперь выполните этот файл и в папке появится еще один файл с расширением .luac, перекиньте его куда-нибудь, поменяйте его расширение на .lua и запускайте в терминале как обычный скрипт.

Тот же результат можно получить программным путем:

1
2
3
local f = io.open(FilePathLuac, 'wb')        -- FilePathLuac по этому пути будет создан скомпилированный файл, например: "C:\MyScript.lua"
f:write(string.dump(loadfile(FilePathSrc)))  -- FilePathSrc путь к Вашему исходному файлу .lua
f:close()

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

csvФайл CSV-формата это обычный текстовый файл, с которым Excel и аналогичные программы могут работать как с таблицей. Каждая строка таблицы в этом файле записывается как новая строка со знаком переноса в конце, а значения полей разделены между собой каким-то символом, чаще «;». В самой первой строке такого файла можно (не обязательно) указать названия столбцов, так же через «;».

Ниже приведен пример создания такого файла и записи в него данных о совершенных сделках средствами QLua(Lua):
Смотреть полностью…

Qlua-основы

INTERVAL_TICK -- (0)       Тиковые данные  
INTERVAL_M1   -- (1)       1 минута  
INTERVAL_M2   -- (2)       2 минуты  
INTERVAL_M3   -- (3)       3 минуты  
INTERVAL_M4   -- (4)       4 минуты 
INTERVAL_M5   -- (5)       5 минут 
INTERVAL_M6   -- (6)       6 минут 
INTERVAL_M10  -- (10)      10 минут 
INTERVAL_M15  -- (15)      15 минут 
INTERVAL_M20  -- (20)      20 минут 
INTERVAL_M30  -- (30)      30 минут 
INTERVAL_H1   -- (60)      1 час 
INTERVAL_H2   -- (120)     2 часа 
INTERVAL_H4   -- (240)     4 часа 
INTERVAL_D1   -- (1440)    1 день 
INTERVAL_W1   -- (10080)   1 неделя 
INTERVAL_MN1  -- (23200)   1 месяц

Qlua-основы

Сейчас в QLua появилась встроенная функция bit.test, которая решает ту же задачу, т.е. смысла в использовании функции CheckBit больше нет !

true — флаг установлен
false — флаг не установлен

-- Функция проверяет установлен бит, или нет (возвращает true, или false)
CheckBit = function(flags, _bit)
   -- Проверяет, что переданные аргументы являются числами
   if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!") end
   if type(_bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!") end
 
   if _bit == 0 then _bit = 0x1
   elseif _bit == 1 then _bit = 0x2
   elseif _bit == 2 then _bit = 0x4
   elseif _bit == 3 then _bit  = 0x8
   elseif _bit == 4 then _bit = 0x10
   elseif _bit == 5 then _bit = 0x20
   elseif _bit == 6 then _bit = 0x40
   elseif _bit == 7 then _bit  = 0x80
   elseif _bit == 8 then _bit = 0x100
   elseif _bit == 9 then _bit = 0x200
   elseif _bit == 10 then _bit = 0x400
   elseif _bit == 11 then _bit = 0x800
   elseif _bit == 12 then _bit  = 0x1000
   elseif _bit == 13 then _bit = 0x2000
   elseif _bit == 14 then _bit  = 0x4000
   elseif _bit == 15 then _bit  = 0x8000
   elseif _bit == 16 then _bit = 0x10000
   elseif _bit == 17 then _bit = 0x20000
   elseif _bit == 18 then _bit = 0x40000
   elseif _bit == 19 then _bit = 0x80000
   elseif _bit == 20 then _bit = 0x100000
   end
 
   if bit.band(flags,_bit ) == _bit then return true
   else return false end
end

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

Qlua-основы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- Флаг поддержания работы скрипта
IsRun = true;
 
function main()
   -- Пытается открыть файл в режиме "чтения/записи"
   f = io.open(getScriptPath().."\Test.txt","r+");
   -- Если файл не существует
   if f == nil then 
      -- Создает файл в режиме "записи"
      f = io.open(getScriptPath().."\Test.txt","w"); 
      -- Закрывает файл
      f:close();
      -- Открывает уже существующий файл в режиме "чтения/записи"
      f = io.open(getScriptPath().."\Test.txt","r+");
   end;
   -- Записывает в файл 2 строки
   f:write("Line1nLine2"); -- "n" признак конца строки
   -- Сохраняет изменения в файле
   f:flush();
   -- Встает в начало файла 
      -- 1-ым параметром задается относительно чего будет смещение: "set" - начало, "cur" - текущая позиция, "end" - конец файла
      -- 2-ым параметром задается смещение
   f:seek("set",0);
   -- Перебирает строки файла, выводит их содержимое в сообщениях
   for line in f:lines() do message(tostring(line));end
   -- Закрывает файл
   f:close();
   -- Цикл будет выполнятся, пока IsRun == true
   while IsRun do
      sleep(100);
   end;   
end;
 
function OnStop()
   IsRun = false;
end;

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

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

Для каждого определенного события есть своя предопределенная разработчиками QLua функция!Смотреть полностью…

Qlua-основы
isConnected()   — возвращает 1, если QUIK подключен к серверу и 0, если не подключен

getScriptPath()   — возвращает путь, по которому находится скрипт, без последнего обратного слэша («»), например, «C:Program Files (x86)InfoMyLua»

getInfoParam()   — возвращает значение параметра из окна:«Связь» -> «Информационное окно…»
Смотреть полностью…

Qlua-основы
Для приведения типов в QLua(Lua) служат всего 2 функции:

tostring()   — принимает любой параметр и конвертирует его в строку в подходящем формате, для применения конкретного формата, используйте функцию string.format

tonumber()   — пытается преобразовать переданный параметр в число, иначе возвращает nil

Qlua-основы
Стандартные арифметические операции:
«+» — сложение,
«-« — вычитание,
«/» — деление,
«*» — умножение,
«%» — остаток от деления (5%2 == 1).

   math.abs (x) — Модуль x.

   math.acos(x) — Возвращает арккосинус x

   math.asin(x) — Возвращает арксинус x (в радианах).

   math.atan(x) — Возвращает арктангенс x (в радианах).

   math.atan2(x, y) — Возвращает арктангенс x/y (в радианах), но использует знаки обоих параметров для вычисления «четверти» на плоскости. (Также корректно обрабатывает случай когда y равен нулю.)Смотреть полностью…

Qlua-основы
Материал статьи взят здесь: http://www.bot4sale.ru/blog-menu/qlua/spisok-statej/368-lua-time.html

Дата/время в QLua(Lua) может быть представлено либо в виде секунд, прошедших с полуночи 1 января 1970 года, либо в виде таблицы, имеющей следующие поля:

   year — год (четыре цифры)
   month — месяц (1 – 12)
   day — день (1 – 31)
   hour — час (0 – 23)
   min — минуты (0 – 59)
   sec — секунды (0 – 59)
   wday — день недели (1 — 7), воскресенью соответствует 1
   yday — день года
   isdst — флаг дневного времени суток, тип booleanСмотреть полностью…

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

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

message(«Hello, World!»,1)

Текст программы можно набрать в блокноте:
 Qlua для чайников. Часть 1
Но лучше, конечно, воспользоваться специализированной программой типа «Notepad++», там есть даже подсветка синтаксиса:
 Qlua для чайников. Часть 1
Обратите внимание, что сохранять файл нужно обязательно с расширением lua.
Итак, программа набрана, запускаем ее. Для этого идем в меню «Таблицы» -> «Lua» -> «Доступные скрипты».
 Qlua для чайников. Часть 1
У нас откроется вот такое окошко:
 Qlua для чайников. Часть 1
Жмем кнопочку добавить, выбираем там наш файл:
 Qlua для чайников. Часть 1
Он появился в списке доступных скриптов:
 Qlua для чайников. Часть 1
Выделяем его, жмем на кнопочку «Запустить» и видим результат:
 Qlua для чайников. Часть 1
Поздравляю, вы написали свою первую программу. Просто, не правда ли?
Но слышу разочарованные вздохи. Несмотря на просто изумительную простоту, наша программа абсолютно бесполезна. Ну что я могу сказать? Наберитесь терпения! Сейчас мы научится делать более сложные вещи.
Итак, давайте попробуем ввести заявку. Создаем новый скрипт (файл lua) вот с таким текстом:

t = {
            [«CLASSCODE»]=«TQBR»,
            [«SECCODE»]=«LKOH»,
            [«ACTION»]=«NEW_ORDER»,
            [«ACCOUNT»]=«L01-00000F00»,
            [«CLIENT_CODE»]=«52134»,
            [«TYPE»]=«L»,
            [«OPERATION»]=«B»,
            [«QUANTITY»]=«1»,
            [«PRICE»]=«1950»,
            [«TRANS_ID»]=«1»
      }
res=sendTransaction(t)
message(res,1)

Это программа чуть-чуть сложнее, поэтому я подробно сейчас разберу ее. Итак, сначала у нас идет строка t={…
t – это переменная. Она хранит в себе какое-то значение (число, строку, массив, таблицу, какой либо специальный объект или ничего не хранит, если ничего ей не присваиваем). В данном примере мы переменной t присваиваем целую структуру. У этой структуры есть поля. Они указываются в квадратных скобках, после них идет знак «=» и то, чему они равны. Такие пары перечисляются через запятую. Первое поле CLASSCODE. Это код класса. Его можно посмотреть, например, в текущей таблице параметров:
Qlua для чайников. Часть 1 
В нашем случае мы используем код класса акций ЛУКОЙЛ.
Саму текущую таблицу параметров можно открыть через меню «Таблица» -> «Текущая таблица».
Qlua для чайников. Часть 1 
В этой таблице необходимо настроить колонки, которые мы хотим видеть:
Qlua для чайников. Часть 1 
Следующее поле SECCODE – это код бумаги, в данном случае код ЛУКОЙЛа, так же смотрим его в текущей таблице параметров:
 Qlua для чайников. Часть 1
Поле ACTION – это действие, которое мы производим. В нашем случае это NEW_ORDER – новая заявка.
Поле ACCOUNT – это номер брокерского счета, можно посмотреть в таблице счетов, колонка «Счет»:
Qlua для чайников. Часть 1 
Эта таблица находиться в меню «Торговля» -> «Торговые счета»:
Qlua для чайников. Часть 1 
Далее идет поле CLIENT_CODE – это код клиента, можно посмотреть в таблице «Клиентский портфель»:
Qlua для чайников. Часть 1 
Открывается данная таблица через «Лимиты» -> «Клиентский портфель»:
Qlua для чайников. Часть 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 идет без кавычек, это переменная, а не жестко заданный текст, как в предыдущем примере.
Итак, поставим в текст программы те параметры, которые правильные для вашего случая (номер счета, код клиента, параметры бумаги, цену и количество) и запускаем скрипт. Если все правильно, то вы увидите примерно такое сообщение:
Qlua для чайников. Часть 1 
Иначе может вылезти сообщение с ошибкой. Проверьте, действительно ли выставилась заявка.
Qlua для чайников. Часть 1 
И так, мы уже научились писать скрипт, выставляющий заявки. Но опять слышу разочарованные вздохи. По-прежнему мы не написали ни одной полезной программы.  Ну что ж, для начала давайте напишем простенький скрипт, который выставит серию заявок на покупку и на продажу с шагом от заданной цены.

Полная версия саться на robostroy.ru

Главная » Основные форумы » Программирование на языке Lua

Страницы:
1

 

Александр Шуравин


Пользователь

Сообщений: 15
Регистрация: 12.03.2015

#1

11.02.2016 11:40:41

Подскажите пожалуйста, гед скачать документацию по qlua. Дело в том, что сайт help.qlua.org — лежит, и непонятно, где еще можно посмотреть справочник по функциям qlua.

 

Stanislav Tvorogov


QUIK clients support

Сообщений: 1427
Регистрация: 27.01.2015

#2

11.02.2016 15:09:15

Добрый день,

Документацию относительно использования QLUA в системе QUIK, с доступными для QUIK функциями и примерами Вы можете скачать с нашего сайта по ссылке:

https://arqatech.com/upload/iblock/efe/quik_lua.zip

 

Александр Шуравин


Пользователь

Сообщений: 15
Регистрация: 12.03.2015

#3

11.02.2016 20:44:32

Большое спасибо

 

max max


Пользователь

Сообщений: 37
Регистрация: 20.07.2015

#4

12.02.2016 20:37:01

Цитата
Stanislav Tvorogov написал:
Добрый день,

Документацию относительно использования QLUA в системе QUIK, с доступными для QUIK функциями и примерами Вы можете скачать с нашего сайта по ссылке:

https://arqatech.com/upload/iblock/efe/quik_lua.zip

Добрый день

На 7й версии некоторые функции обновились
По ссылка качается «старое» описание от 6й версии

 

Николай Камынин


Пользователь

Сообщений: 2762
Регистрация: 30.01.2015

#5

15.02.2016 12:09:24

действительно,
хотелось бы услышать начальника транспортного цеха.
где документация на QLUA версии 7.
Спасибо

 

Sergey Gorokhov


QUIK clients support

Сообщений: 3875
Регистрация: 23.01.2015

#6

15.02.2016 12:10:32

Здравствуйте,
В файле QLUA.chm

 

Николай Камынин


Пользователь

Сообщений: 2762
Регистрация: 30.01.2015

#7

15.02.2016 12:19:00

Цитата
Sergey Gorokhov написал:
Здравствуйте,
В файле QLUA.chm

дайте ссылку , где на вашем сайте это лежит.
Спасибо

 

Николай Камынин


Пользователь

Сообщений: 2762
Регистрация: 30.01.2015

#8

15.02.2016 12:19:59

нашел

 

Александра


Пользователь

Сообщений: 1
Регистрация: 20.02.2016

#9

20.02.2016 11:42:29

Цитата
Stanislav Tvorogov написал:
Добрый день,

Документацию относительно использования QLUA в системе QUIK, с доступными для QUIK функциями и примерами Вы можете скачать с нашего сайта по ссылке:

https://arqatech.com/upload/iblock/efe/quik_lua.zip

Добрый день!
К сожалению, ссылка пустая. Не могу найти документацию. Выложите актуальную, пожалуйста. Спасибо!

 

Валентин


Пользователь

Сообщений: 161
Регистрация: 30.03.2015

#10

20.02.2016 12:16:32

https://arqatech.com/ru/support/files/

 

Matvey Alekseev


Пользователь

Сообщений: 2
Регистрация: 16.09.2017

#11

16.09.2017 10:26:36

Цитата
Николай Камынин написал:

Цитата
Sergey Gorokhov   написал:
Здравствуйте,
В файле QLUA.chm

дайте ссылку , где на вашем сайте это лежит.
Спасибо

А я не нашёл, опубликуйте QLUA.chm отдельно где-нибудь, актуальной версии, заранее спасибо!

 

Matvey Alekseev


Пользователь

Сообщений: 2
Регистрация: 16.09.2017

#12

16.09.2017 11:14:51

Цитата
Matvey Alekseev написал:

Цитата
Николай  Камынин   написал:

Цитата
Sergey Gorokhov   написал:
Здравствуйте,
В файле QLUA.chm

дайте ссылку , где на вашем сайте это лежит.
Спасибо

А я не нашёл, опубликуйте QLUA.chm отдельно где-нибудь, актуальной версии, заранее спасибо!

Пардон, всё есть… не докрутил.

Страницы:
1

Читают тему (гостей: 1)

справочники-квик-LUA

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

Для начала разберем структуру языка, чтобы знать, что именно и где именно нужно искать ответ.

Какие есть источники информации для КВИК.

1. Прилагающаяся Документация по терминалу Quik.

Первое, где мы можем узнать о том, как работает сама программа КВИК и как в ней все можно настраивать, это открыть папку, в которую установлен терминал КВИК. В данной папке находим файл с именем «info.chm».

файл-info_chm

Запускаем данный файл и нам открывается справочник.

справочник-КВИК

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

6-раздел-квик-заявки

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

2. Прилагающаяся Документация по QLUA.

Вместе с обычной документацией по терминалу, в папке, где установлен КВИК, находится и нужная нам документация по QLUA. В папке КВИК находим файл с название «QLUA.chm».

Файл-QLUA_chm

Открываем файл. Это уже как раз то, что нам нужно!

Справочник-QLUA

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

Где же найти справочники по LUA?

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

Постараемся помочь начинающим!

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

Заключение.

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

Узнали, что в папке КВИК есть еще и описание по работе с QLUA.

Продолжение следует, следите за следующими постами, посвященными QUIK и QLUA.



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 мб.

Ошибка при установки 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 FilesLua5.1SciTESciTE.exe.

Окно редактора SciTE.

Немного о редакторе 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.

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

Пакет документов «Руководство пользователя QUIK» содержит исчерпывающую информацию по работе с терминалом.

Курс предполагает, что Вы умеете пользоваться терминалом QUIK и знаете его основные функции. В курсе будут рассматриваться функции терминала QUIK относящиеся только к скриптам на языке Lua.

Из всех документов, представленных в руководстве пользователя QUIK, мы будем рассматривать только документ «6 Работа с другими приложениями.pdf», а именно пункт «6.11 Импорт транзакций», стр. 31. В данном пункте прописаны все возможные настройки для отправки заявок в торговую систему.

Скачайте все перечисленные документы. И установите пакет Lua for Windows.

Это ознакомительная часть курса, что бы просмотреть полный курс, пожалуйста оплатите подписку, подписка действует 2 года. Помимо доступа к полному тексту курса, предоставляются все коды скриптов и вспомогательные файлы. Первые три раздела предоставляются бесплатно в полном объеме. Всем кто ранее покупал коды скриптов доступ будет предоставлен бесплатно, пожалуйста пришлите запрос с Email на который Вам были направлены коды.

Понравилась статья? Поделить с друзьями:
  • Как сделать букет из конфет инструкция пошаговая инструкция
  • Плед детский плюшевый своими руками пошаговая инструкция
  • Стиральная машина славда ws 30et инструкция
  • Камаз 5320 руководство по эксплуатации читать онлайн
  • Когитум цена инструкция по применению детям отзывы цена