Чтобы получить доступ к графику(не индикатору) какого-либо инструмента нужно создать источник данных при помощи функции CreateDataSource().
ВАЖНО!!! Для получения новых данных, кроме тех, что уже есть в открытом графике на текущий момент (тем более, если он не открыт), требуется использовать одну из следующих функций: SetUpdateCallback(), или SetEmptyCallback(), о которых будет написано ниже.
Описание функции CreateDataSource()
-- Функция предназначена для создания таблицы Lua и позволяет работать со свечами, полученными с сервера QUIK, а также реагировать на их изменение.
ds, Error = CreateDataSource (class_code, sec_code, interval [, param]);
-- Параметры:
-- class_code - (STRING) код класса, например "SPBFUT"
-- sec_code - (STRING) код бумаги, например "RIZ5"
-- interval - (NUMBER) константа, обозначающая тайм-фрейм графика, например INTERVAL_M5 (полный список: https://quikluacsharp.ru/qlua-osnovy/spisok-konstant-tajm-frejmov-grafikov/)
-- param - (STRING) необязательный параметр. Если параметр не задан, то заказываются данные на основании таблицы всех сделок, если задан – данные по этому параметру, например "BID" (возможные параметры смотрите ниже)
-- Возвращаемые значения:
-- ds - (TABLE) таблица с данными по свечам графика
-- Error - (STRING) строка ошибки в случае неудачной попытки получить доступ к данным (тогда ds будет nil)
-- Если график, к которому нужно подключиться не открыт в терминале, то данные заказываются с сервера, на их получение нужно время,
-- по этому, рекомендуется добавлять вот такое ожидание, прежде, чем обращаться к ds:
-- Ждет, пока данные будут получены с сервера (на случай, если такой график не открыт)
while (Error == "" or Error == nil) and ds:Size() == 0 do sleep(1) end
if Error ~= "" and Error ~= nil then message("Ошибка подключения к графику: "..Error) end
-- Примеры (одновременно можно подключаться к нескольким источникам данных):
ds1 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1, "last");
ds2 = CreateDataSource("QJSIM", "SBER", INTERVAL_M1);
ds3, Error = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1, "bid");
if ds3 == nil then message('Ошибка подключения: '..Error); end; |
-- Функция предназначена для создания таблицы Lua и позволяет работать со свечами, полученными с сервера QUIK, а также реагировать на их изменение.
ds, Error = CreateDataSource (class_code, sec_code, interval [, param]);
-- Параметры:
-- class_code - (STRING) код класса, например "SPBFUT"
-- sec_code - (STRING) код бумаги, например "RIZ5"
-- interval - (NUMBER) константа, обозначающая тайм-фрейм графика, например INTERVAL_M5 (полный список: https://quikluacsharp.ru/qlua-osnovy/spisok-konstant-tajm-frejmov-grafikov/)
-- param - (STRING) необязательный параметр. Если параметр не задан, то заказываются данные на основании таблицы всех сделок, если задан – данные по этому параметру, например "BID" (возможные параметры смотрите ниже)
-- Возвращаемые значения:
-- ds - (TABLE) таблица с данными по свечам графика
-- Error - (STRING) строка ошибки в случае неудачной попытки получить доступ к данным (тогда ds будет nil)
-- Если график, к которому нужно подключиться не открыт в терминале, то данные заказываются с сервера, на их получение нужно время,
-- по этому, рекомендуется добавлять вот такое ожидание, прежде, чем обращаться к ds:
-- Ждет, пока данные будут получены с сервера (на случай, если такой график не открыт)
while (Error == "" or Error == nil) and ds:Size() == 0 do sleep(1) end
if Error ~= "" and Error ~= nil then message("Ошибка подключения к графику: "..Error) end
-- Примеры (одновременно можно подключаться к нескольким источникам данных):
ds1 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1, "last");
ds2 = CreateDataSource("QJSIM", "SBER", INTERVAL_M1);
ds3, Error = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1, "bid");
if ds3 == nil then message('Ошибка подключения: '..Error); end;
Функция CreateDataSource возвращает таблицу QLua с параметрами, получать значения которых можно следующим образом:
local O = ds:O(i); -- Получить значение Open для указанной свечи (цена открытия свечи)
local H = ds:H(i); -- Получить значение High для указанной свечи (наибольшая цена свечи)
local L = ds:L(i); -- Получить значение Low для указанной свечи (наименьшая цена свечи)
local C = ds:C(i); -- Получить значение Close для указанной свечи (цена закрытия свечи)
local V = ds:V(i); -- Получить значение Volume для указанной свечи (объем сделок в свече)
local T = ds:T(i); -- Получить значение Time для указанной свечи (время открытия свечи (таблица datetime))
-- Где i - индекс свечи (от 1 до ds:Size())
local Size = ds:Size(); -- Возвращает текущий размер (количество свечей в источнике данных)
ds:Close(); -- Удаляет источник данных, отписывается от получения данных
ds:SetUpdateCallback(MyFuncName); -- Позволяет задать пользователю функцию обратного вызова для обработки изменившихся свечей, т.е. когда по выбранному в CreateDataSource параметру в терминал поступит новое значение (возможно такое же), автоматически будет вызвана данная функция, в которую будут передан индекс последней свечи графика, а так же добавятся новые данные в таблицу ds
-- Пример функции:
function MyFuncName(index)
message('На '..index..'-й свече объем вырос до '..ds:V(index));
end;
-- Чтобы получать новые данные без использования функции обратного вызова, а просто получать новые данные в ds и брать их оттуда по необходимости существует функция:
ds:SetEmptyCallback(); -- Которая подписывается на получение новых данных |
local O = ds:O(i); -- Получить значение Open для указанной свечи (цена открытия свечи)
local H = ds:H(i); -- Получить значение High для указанной свечи (наибольшая цена свечи)
local L = ds:L(i); -- Получить значение Low для указанной свечи (наименьшая цена свечи)
local C = ds:C(i); -- Получить значение Close для указанной свечи (цена закрытия свечи)
local V = ds:V(i); -- Получить значение Volume для указанной свечи (объем сделок в свече)
local T = ds:T(i); -- Получить значение Time для указанной свечи (время открытия свечи (таблица datetime))
-- Где i - индекс свечи (от 1 до ds:Size())
local Size = ds:Size(); -- Возвращает текущий размер (количество свечей в источнике данных)
ds:Close(); -- Удаляет источник данных, отписывается от получения данных
ds:SetUpdateCallback(MyFuncName); -- Позволяет задать пользователю функцию обратного вызова для обработки изменившихся свечей, т.е. когда по выбранному в CreateDataSource параметру в терминал поступит новое значение (возможно такое же), автоматически будет вызвана данная функция, в которую будут передан индекс последней свечи графика, а так же добавятся новые данные в таблицу ds
-- Пример функции:
function MyFuncName(index)
message('На '..index..'-й свече объем вырос до '..ds:V(index));
end;
-- Чтобы получать новые данные без использования функции обратного вызова, а просто получать новые данные в ds и брать их оттуда по необходимости существует функция:
ds:SetEmptyCallback(); -- Которая подписывается на получение новых данных
Списки возможных параметров, используемых в функции CreateDataSource():
Список для АКЦИЙ
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"OPEN" -- Цена открытия
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"HIGHBID" -- Лучшая цена спроса сегодня
"LOWOFFER" -- Лучшая цена предложения сегодня
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"LASTTOPREVSTLPRC" -- Разница цены последней к предыдущей сессии
"MARKETPRICETODAY" -- Рыночная цена
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены |
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"OPEN" -- Цена открытия
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"HIGHBID" -- Лучшая цена спроса сегодня
"LOWOFFER" -- Лучшая цена предложения сегодня
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"LASTTOPREVSTLPRC" -- Разница цены последней к предыдущей сессии
"MARKETPRICETODAY" -- Рыночная цена
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены
Список для ВАЛЮТЫ
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"OPEN" -- Цена открытия
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"HIGHBID" -- Лучшая цена спроса сегодня
"LOWOFFER" -- Лучшая цена предложения сегодня
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"CLOSEPRICE" -- Цена периода закрытия
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"LASTTOPREVSTLPRC" -- Разница цены последней к предыдущей сессии
"PRICEMAX" -- Максимально возможная цена
"PRICEMIN" -- Минимально возможная цена
"BASEPRICE" -- Базовый курс
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены |
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"OPEN" -- Цена открытия
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"HIGHBID" -- Лучшая цена спроса сегодня
"LOWOFFER" -- Лучшая цена предложения сегодня
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"CLOSEPRICE" -- Цена периода закрытия
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"LASTTOPREVSTLPRC" -- Разница цены последней к предыдущей сессии
"PRICEMAX" -- Максимально возможная цена
"PRICEMIN" -- Минимально возможная цена
"BASEPRICE" -- Базовый курс
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены
Список для ОПЦИОНОВ
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"PREVSETTLEPRICE" -- Предыдущая расчетная цена
"NUMCONTRACTS" -- Количество открытых позиций
"BUYDEPO" -- Гарантийное обеспечение продавца
"SELLDEPO" -- Гарантийное обеспечение покупателя
"BGOP" -- БГО по покрытым позициям
"BGONP" -- БГО по непокрытым позициям
"STRIKE" -- Цена страйк
"STEPPRICET" -- Стоимость шага цены
"STEPPRICE" -- Стоимость шага цены (для новых контрактов FORTS и RTS Standard)
"VOLATILITY" -- Волатильность опциона
"THEORPRICE" -- Теоретическая цена
"CLPRICE" -- Котировка последнего клиринга
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены |
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"PREVSETTLEPRICE" -- Предыдущая расчетная цена
"NUMCONTRACTS" -- Количество открытых позиций
"BUYDEPO" -- Гарантийное обеспечение продавца
"SELLDEPO" -- Гарантийное обеспечение покупателя
"BGOP" -- БГО по покрытым позициям
"BGONP" -- БГО по непокрытым позициям
"STRIKE" -- Цена страйк
"STEPPRICET" -- Стоимость шага цены
"STEPPRICE" -- Стоимость шага цены (для новых контрактов FORTS и RTS Standard)
"VOLATILITY" -- Волатильность опциона
"THEORPRICE" -- Теоретическая цена
"CLPRICE" -- Котировка последнего клиринга
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены
Список для ФЬЮЧЕРСОВ
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"PREVSETTLEPRICE" -- Предыдущая расчетная цена
"PRICEMAX" -- Максимально возможная цена
"PRICEMIN" -- Минимально возможная цена
"NUMCONTRACTS" -- Количество открытых позиций
"BUYDEPO" -- Гарантийное обеспечение продавца
"SELLDEPO" -- Гарантийное обеспечение покупателя
"STEPPRICET" -- Стоимость шага цены
"STEPPRICE" -- Стоимость шага цены (для новых контрактов FORTS и RTS Standard)
"SETTLEPRICE" -- Расчетная цена
"PERCENTRATE" -- Агрегированная ставка
"CLPRICE" -- Котировка последнего клиринга
"REALVMPRICE" -- Текущая рыночная котировка
"STEPPRICECL" -- Стоимость шага цены для клиринга
"STEPPRICEPRCL" -- Стоимость шага цены для промклиринга
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены |
"LOTSIZE" -- Размер лота
"BID" -- Лучшая цена спроса
"BIDDEPTH" -- Спрос по лучшей цене
"BIDDEPTHT" -- Суммарный спрос
"NUMBIDS" -- Количество заявок на покупку
"OFFER" -- Лучшая цена предложения
"OFFERDEPTH" -- Предложение по лучшей цене
"OFFERDEPTHT" -- Суммарное предложение
"NUMOFFERS" -- Количество заявок на продажу
"HIGH" -- Максимальная цена сделки
"LOW" -- Минимальная цена сделки
"LAST" -- Цена последней сделки
"CHANGE" -- Разница цены последней к предыдущей сессии
"QTY" -- Количество бумаг в последней сделке
"VOLTODAY" -- Количество бумаг в обезличенных сделках
"VALTODAY" -- Оборот в деньгах
"VALUE" -- Оборот в деньгах последней сделки
"WAPRICE" -- Средневзвешенная цена
"NUMTRADES" -- Количество сделок за сегодня
"PREVPRICE" -- Цена закрытия
"PREVWAPRICE" -- Предыдущая оценка
"LASTCHANGE" -- % изменения от закрытия
"PRICEMINUSPREVWAPRICE" -- Разница цены последней к предыдущей оценке
"PREVSETTLEPRICE" -- Предыдущая расчетная цена
"PRICEMAX" -- Максимально возможная цена
"PRICEMIN" -- Минимально возможная цена
"NUMCONTRACTS" -- Количество открытых позиций
"BUYDEPO" -- Гарантийное обеспечение продавца
"SELLDEPO" -- Гарантийное обеспечение покупателя
"STEPPRICET" -- Стоимость шага цены
"STEPPRICE" -- Стоимость шага цены (для новых контрактов FORTS и RTS Standard)
"SETTLEPRICE" -- Расчетная цена
"PERCENTRATE" -- Агрегированная ставка
"CLPRICE" -- Котировка последнего клиринга
"REALVMPRICE" -- Текущая рыночная котировка
"STEPPRICECL" -- Стоимость шага цены для клиринга
"STEPPRICEPRCL" -- Стоимость шага цены для промклиринга
"SEC_FACE_VALUE" -- Номинал бумаги
"SEC_SCALE" -- Точность цены
Так же, в QLua есть функции для получения данных как графиков, так и индикаторов по их уникальным идентификаторам(тэгам), для этого необходимо нужному графику(индикатору) назначить уникальный идентификатор, о том как это делается можете ознакомиться в самом начале "Инструкции по использованию" Индикатора "Мои Сделки". Идентификатор для индикатора добавляется аналогичным способом.
После этого, можно использовать следующие функции для доступа к данным:
-- Функция предназначена для получения КОЛИЧЕСТВА ЛИНИЙ в графике (индикаторе) по выбранному идентификатору
getLinesCount(tag); -- Возвращает число
-- tag - (STRING) идентификатор графика (индикатора), о котором писалось выше
-- Функция предназначена для получения информации о КОЛИЧЕСТВЕ СВЕЧЕЙ по выбранному идентификатору
getNumCandles(tag); -- Возвращает число
-- tag - (STRING) идентификатор графика (индикатора), о котором писалось выше
-- Функция предназначена для получения информации о свечах по идентификатору (заказ данных для построения графика функция не осуществляет, поэтому для успешного доступа нужный график должен быть открыт)
t, n, l = getCandlesByIndex (tag, line, first_candle, count);
-- Параметры:
-- tag – (STRING) строковый идентификатор графика или индикатора
-- line – (NUMBER) номер линии графика или индикатора. Первая линия имеет номер 0
-- first_candle – (NUMBER) индекс первой свечи. !!! ПЕРВАЯ (САМАЯ ЛЕВАЯ) СВЕЧКА ИМЕЕТ ИНДЕКС 0 !!!
-- count – (NUMBER) количество запрашиваемых свечей
-- Возвращаемые значения:
-- t – таблица, содержащая запрашиваемые свечи, пример работы:
local O = t[i].open; -- Получить значение Open для указанной свечи (цена открытия свечи)
local H = t[i].high; -- Получить значение High для указанной свечи (наибольшая цена свечи)
local L = t[i].low; -- Получить значение Low для указанной свечи (наименьшая цена свечи)
local C = t[i].close; -- Получить значение Close для указанной свечи (цена закрытия свечи)
local V = t[i].volume; -- Получить значение Volume для указанной свечи (объем сделок в свече)
local T = t[i].datetime; -- Получить значение datetime для указанной свечи
-- Где i - индекс свечи от 0 до n-1
-- n – количество свечей в таблице t
-- l – легенда (подпись) графика |
-- Функция предназначена для получения КОЛИЧЕСТВА ЛИНИЙ в графике (индикаторе) по выбранному идентификатору
getLinesCount(tag); -- Возвращает число
-- tag - (STRING) идентификатор графика (индикатора), о котором писалось выше
-- Функция предназначена для получения информации о КОЛИЧЕСТВЕ СВЕЧЕЙ по выбранному идентификатору
getNumCandles(tag); -- Возвращает число
-- tag - (STRING) идентификатор графика (индикатора), о котором писалось выше
-- Функция предназначена для получения информации о свечах по идентификатору (заказ данных для построения графика функция не осуществляет, поэтому для успешного доступа нужный график должен быть открыт)
t, n, l = getCandlesByIndex (tag, line, first_candle, count);
-- Параметры:
-- tag – (STRING) строковый идентификатор графика или индикатора
-- line – (NUMBER) номер линии графика или индикатора. Первая линия имеет номер 0
-- first_candle – (NUMBER) индекс первой свечи. !!! ПЕРВАЯ (САМАЯ ЛЕВАЯ) СВЕЧКА ИМЕЕТ ИНДЕКС 0 !!!
-- count – (NUMBER) количество запрашиваемых свечей
-- Возвращаемые значения:
-- t – таблица, содержащая запрашиваемые свечи, пример работы:
local O = t[i].open; -- Получить значение Open для указанной свечи (цена открытия свечи)
local H = t[i].high; -- Получить значение High для указанной свечи (наибольшая цена свечи)
local L = t[i].low; -- Получить значение Low для указанной свечи (наименьшая цена свечи)
local C = t[i].close; -- Получить значение Close для указанной свечи (цена закрытия свечи)
local V = t[i].volume; -- Получить значение Volume для указанной свечи (объем сделок в свече)
local T = t[i].datetime; -- Получить значение datetime для указанной свечи
-- Где i - индекс свечи от 0 до n-1
-- n – количество свечей в таблице t
-- l – легенда (подпись) графика
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!