Прежде, чтобы обратиться к строкам таблицы, мы использовали номера строк, автоматически проставленные языком Lua. В языке Lua существует возможность дать каждой строке таблицы уникальное имя. Имя, присваиваемое строке, называется ключ строки. Обратившись к строке таблицы по ее ключу, мы получим содержимое данной строки. Данная возможность потребуется, когда мы будем работать с заявками в терминале QUIK. Для подачи и снятия заявки в системе QUIK, необходимо отправить в терминал таблицу с определенными именами строк, каждая строка должна содержать определенное значение. Рассмотрим пример создания таблицы с ключами строк. Таблица будет содержать строки необходимые для отправки заявки в систему QUIK. Подробная работа с заявками будет рассмотрена позже. Создадим новый скрипт с именем «010 Таблицы с текстовым ключом.lua».

Создадим пустую таблицу с именем SendOrderBuy.

local SendOrderBuy = {}

Для того чтобы присвоить ключ строке таблицы, достаточно записать строку с именем таблицы далее поставить символ точку «.» и далее прописать ключ строки. Например: SendOrderBuy.ACTION.

Заполним строки таблицы и одновременно присвоим каждой строке ключ.

SendOrderBuy.ACTION = «NEW_ORDER»

Строке назначается ключ «ACTION» и присваивается строковое значение «NEW_ORDER» (строка ACTION – действие, которое необходимо выполнить терминалу QUIK, содержание строки — NEW_ORDER, указывает, что будет подана новая заявка).

SendOrderBuy.SECCODE = «SBER»

Строке назначается ключ «SECCODE» и присваивается строковое значение «SBER» (строка SECCODE – код бумаги в торговой системе, содержание строки – SBER, код бумаги акций ПАО «Сбербанк России»).

SendOrderBuy.OPERATION = «B»

Строке назначается ключ «OPERATION» и присваивается строковое значение «B» (строка OPERATION – содержит указание на вид операции покупка «B», продажа «S»).

SendOrderBuy.PRICE = «120» Строке назначается ключ «PRICE» и присваивается строковое значение «140» (строка PRICE – содержит цену инструмента, по которой будет выставлена заявка, не смотря на то, что цена имеет числовое значение, она записывается в таблицу как строковое значение – таковы требования терминала QUIK, преобразование числа в строку и наоборот рассмотрим чуть позднее).

SendOrderBuy.QUANTITY = «100»

Строке назначается ключ «QUANTITY» и присваивается строковое значение «100» (строка QUANTITY – содержит количество лотов в заявке, указывается в строковом виде).

В результате получилась таблица следующего вида:

Первый столбец ключи строк, второй столбец значения строк.

Рассмотрим еще один способ назначения ключей к строкам и заполнение этих строк.

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