getFuturesLimit - параметры, не могу получить таблицу getFuturesLimit
Пользователь
Сообщений: Регистрация: 04.09.2016
06.07.2017 12:25:46
В соответствии с инструкцией формат вызова функции TABLE getFuturesLimit(STRING firmid, STRING trdaccid, NUMBER limit_type, STRING currcode) Почитал форумы и не вполне понимаю какие аргументы подставлять и что они значат Firmid - это SPBFUT или индекс фирмы вида MC0061... trdaccid -- аккаунт? везде пишут что он должен иметь вид SPBFUT...TT, но у меня не так, я в lua использую аккаунт вида 76..0 limit_type -- какие типы лимита бывают, чт currcode - это что вообще? код валюты?
Использовал строку вида FutLimit = getFuturesLimit("SPBFUT", ACCOUNT, 0, "SUR").cbplimit но она возвращает нулевые значения...
QUIK clients support
Сообщений: Регистрация: 27.01.2015
06.07.2017 16:33:57
Добрый день,
Значение всех параметров функции можно посмотреть в таблице "Ограничения по клиентским счетам": Firmid - Фирма, trdaccid- Торговый счет, limit_type - Тип лимита. Коды возможных типов лимитов можно найти в документации QLUA.chm Раздел "Структуры данных/Лимиты по фьючерсам". currcode - Валюта позиции.
Цитата
Иван Ру написал: Использовал строку вида FutLimit = getFuturesLimit("SPBFUT", ACCOUNT, 0, "SUR").cbplimit но она возвращает нулевые значения...
ACCOUNT вероятно, неверное значение параметра trdaccid, кроме того, значения счета нужно указывать в кавычках. Убедитесь, что вводимые Вами параметры соответствуют тем, которые отображены в таблице Рабочего места QUIK.
Значение всех параметров функции можно посмотреть в таблице "Ограничения по клиентским счетам": Firmid - Фирма, trdaccid- Торговый счет, limit_type - Тип лимита. Коды возможных типов лимитов можно найти в документации QLUA.chm Раздел "Структуры данных/Лимиты по фьючерсам". currcode - Валюта позиции.
Цитата
Иван Ру написал: Использовал строку вида FutLimit = getFuturesLimit("SPBFUT", ACCOUNT, 0, "SUR").cbplimit но она возвращает нулевые значения...
ACCOUNT вероятно, неверное значение параметра trdaccid, кроме того, значения счета нужно указывать в кавычках. Убедитесь, что вводимые Вами параметры соответствуют тем, которые отображены в таблице Рабочего места QUIK.
ACCOUNT -- строковая переменная содержащая код моего аккаунта. У меня (Финам) он имеет вид 7...kb0 Есть еще код клиента вида 3...MYJ . НИ с одним, ни с другим функция не работает.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
06.07.2017 16:42:08
Цитата
Иван Ру написал: ACCOUNT -- строковая переменная содержащая код моего аккаунта. У меня (Финам) он имеет вид 7...kb0 Есть еще код клиента вида 3...MYJ . НИ с одним, ни с другим функция не работает.
Просьба привести полный текст вызова функции, а также скриншот таблицы "Ограничений по клиентским счетам" с видимыми задаваемыми параметрами.
Иван Ру написал: ACCOUNT -- строковая переменная содержащая код моего аккаунта. У меня (Финам) он имеет вид 7...kb0 Есть еще код клиента вида 3...MYJ . НИ с одним, ни с другим функция не работает.
Просьба привести полный текст вызова функции, а также скриншот таблицы "Ограничений по клиентским счетам" с видимыми задаваемыми параметрами.
Вы также можете прислать запрошенные данные нам на адрес: указав в письме ссылку на данную ветку форума.
Иван Ру написал: ACCOUNT -- строковая переменная содержащая код моего аккаунта. У меня (Финам) он имеет вид 7...kb0 Есть еще код клиента вида 3...MYJ . НИ с одним, ни с другим функция не работает.
Просьба привести полный текст вызова функции, а также скриншот таблицы "Ограничений по клиентским счетам" с видимыми задаваемыми параметрами.
Просьба в дальнейшем использовать приведенный выше адрес электронной почты.
В строке: message (tostring(#FutLimit)) нужно убрать символ #. Также убедиться, что в таблице ограничений "Валюта позиции"=SUR.
Пользователь
Сообщений: Регистрация: 04.09.2016
06.07.2017 17:28:10
Спасибо, решетка осталась еще с попыток считать всю таблицу, а не ее параметр .cbplimit Я написал, что ошибка появляется не в строке с message, а в предыдущей строке FutLimit = getFuturesLimit... т.е. интерпретатор даже не доходит до строки, которую предлагается исправить. Ожидаемо, исправление не изменило результат.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
06.07.2017 17:39:39
Цитата
Иван Ру написал: Спасибо, решетка осталась еще с попыток считать всю таблицу, а не ее параметр .cbplimit Я написал, что ошибка появляется не в строке с message, а в предыдущей строке FutLimit = getFuturesLimit... т.е. интерпретатор даже не доходит до строки, которую предлагается исправить. Ожидаемо, исправление не изменило результат.
При подстановке собственных данных в Ваш код он отработал корректно. Ошибка может быть только в заполнении значений параметров таблицы. Также, в коде вы указываете фирму SPBFUT, в то время как в таблице - MC. Если разобраться не удастся, просьба все же направить письмо на адрес: приложив скриншот таблицы и скриншот ошибки, указав в письме ссылку на данную ветку форума.
Иван Ру написал: Спасибо, решетка осталась еще с попыток считать всю таблицу, а не ее параметр .cbplimit Я написал, что ошибка появляется не в строке с message, а в предыдущей строке FutLimit = getFuturesLimit... т.е. интерпретатор даже не доходит до строки, которую предлагается исправить. Ожидаемо, исправление не изменило результат.
При подстановке собственных данных в Ваш код он отработал корректно. Ошибка может быть только в заполнении значений параметров таблицы. Также, в коде вы указываете фирму SPBFUT, в то время как в таблице - MC. Если разобраться не удастся, просьба все же направить письмо на адрес: приложив скриншот таблицы и скриншот ошибки, указав в письме ссылку на данную ветку форума.
Проблема решена. 1. Первый параметр у меня должен был быть не 'SPFUT' как везде пишут, а иной код характерный для моего брокера (МС... у Финам). 2. Параметр "валюта расчетов" у меня в таблице пустой, здесь он должен быть в виде пустой строки "" (опускать его нельзя).
Однако, выяснилось что поставленную задачу я решить не могу. Мне нужно узнать объем свободных средств, которые я могу использовать для октрытия новых позиций (сопоставлю его с ГО). В терминале Quik я вижу эту цифру в таблице "Состояние счета" на дату T2 внизу строки в поле "Свободно". Не подскажете, какой функционал Lua не необходимо использовать чтобы получить этот показатель программно.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
07.07.2017 11:37:33
Добрый день,
Цитата
Иван Ру написал: Однако, выяснилось что поставленную задачу я решить не могу. Мне нужно узнать объем свободных средств, которые я могу использовать для октрытия новых позиций (сопоставлю его с ГО). В терминале Quik я вижу эту цифру в таблице "Состояние счета" на дату T2 внизу строки в поле "Свободно". Не подскажете, какой функционал Lua не необходимо использовать чтобы получить этот показатель программно.
Значение можно получить из таблицы "Клиентский портфель" с помощью функции getPortfolioInfoEx, параметр - "lim_non_margin" (НаПокупкуНеМаржин).