Лимиты на покупку

Страницы: 1
RSS
Лимиты на покупку
 
Приветствую!

Подскажите пожалуйста функцию, для фьючерсов и/иди акций, через которую можно узнать значение максимально возможного количества бумаг которое я могу использовать при открытии сделки? По аналогу в форме заявки Значение MAX.

Спасибо!
 
Добрый день.

Для срочного рынка такой функции нет, вернее в самом QUIK такой информации нет.
 
Дополним. Информация для срочного рынка есть, ее можно посмотреть в таблице "Состояние счета", однако доступа к этом таблице через Qlua нет.
Что касается акций, то данную информацию можно получить функцией getBuySellInfo,
параметры can_buy_own  и can_sell_own.
 
Жаль, а есть реализация формулы по лимитам в луе?
 
Цитата
Роман написал:
Жаль, а есть реализация формулы по лимитам в луе?
Роман, нету.
 
Цитата
Egor Zaytsev написал:
Добрый день.

Для срочного рынка такой функции нет, вернее в самом QUIK такой информации нет.

Почему же нет? А это что:

CalcBuySell
Функция предназначена для расчета максимально возможного количества лотов в  заявке.  

Формат вызова:  

NUMBER qty, NUMBER comission CalcBuySell(STRING class_code, STRING  sec_code, STRING client_code, STRING account, NUMBER price, BOOLEAN is_buy,  BOOLEAN is_market)
 
В списке функций взаимодействия скрипта LUA и Рабочего места QUIK она именуется по другому )
  • CulcBuySell - функция для расчета максимально возможного количества лотов в заявке
 
Спасибо, посмотрю!

Она одинаково работает для всех инструментов и площадок?
 
Добрый день.

Ромна, да упустили про функцию CalcBuySel.
Ее можете да использовать для своей задачи. Подойдет для любого режима, для срочного рынка в том числе.
 
Цитата
Борис Гудылин написал:
В списке функций взаимодействия скрипта LUA и Рабочего места QUIK она именуется по другому )    CulcBuySell   - функция для расчета максимально возможного количества лотов в заявке
Опечатка на странице со списком функций. На странице с описанием CalcBuySell всё правильно.
 
Цитата
SDL написал:
CulcBuySell
Здравствуйте!

Ваше обращение получено. Постараемся в ближайшее время дать ответ.
 
Спасибо, за уточнении!
Небольшая ремарка к производителю: CalcBuySell и CalcBuyBuy   -  расчёт ведётся самой программой (не сервером) и в случае изменения биржей формулы расчёта, нужно обновлять Квик с доработкой этих функций?

На будущее просто уточняю ...
 
Цитата
SDL написал:
Цитата
Борис Гудылин   написал:
В списке функций взаимодействия скрипта LUA и Рабочего места QUIK она именуется по другому )    CulcBuySell   - функция для расчета максимально возможного количества лотов в заявке
Опечатка на странице со списком функций. На странице с описанием CalcBuySell всё правильно.
Добрый день,
     
      Документация будет исправдена в одной из очередных версий       программы.
     
      Приносим извинения за причиненные неудобства.
 
Цитата
Anastasia Gordienko написал:
Цитата
Документация будет исправдена в одной из очередных версий       программы.
Лучше не надо;)
Шутку оценил.

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

И ещё, CalcBuySell :  STRING client_code, может иметь значение null?
 
Цитата
Роман написал:
з.ы. так формула вычисляется в самой программе?

И ещё, CalcBuySell :  STRING client_code, может иметь значение null?
Да.
Без client_code вы не получите результат расчета.
 
>> Да.  - Без client_code вы не получите результат расчета.
Егор, я правильно вас понял,  если client_code  будет равен NULL он не рас читает правильно??? Просто, не могу поставить это значение, нужно всю цепочку запросов переписывать ...
 
если нет, то как можно обойти это. К примеру можно получить client_code имея номер счёта?
 
Цитата
Роман написал:
>> Да.  - Без client_code вы не получите результат расчета.
Егор, я правильно вас понял,  если client_code  будет равен NULL он не рас читает правильно??? Просто, не могу поставить это значение, нужно всю цепочку запросов переписывать ...
Добрый день.

Это работает для фондового и валютного рынка.
Для срочного да, код клиента не обязателен.
 
local value = tonumber(CalcBuySell(class_code, security, null, account, price, false , false))

выводит: bad argument #1 to 'tonumber' (value expected) :(
 
CalcBuySell(SPBFUT , RIM8 , null, 4000000, 123300 , true, false) возвращает nil
 
в общем с NULL не работает, это глюк? Если нет, то вопрос остался, как по торговому счёту узнать код клиента? (вообще зачем он нужен в этой функции, что номер счёта и код клиента бывают разные).
 
как не странно вот это сработало: CalcBuySell(class_code, security, account, account, price, false , false)
 
CalcBuySell(class_code, security, "", account, price, false , false) и так тоже но не NULL
 
Цитата
Роман написал:
local value = tonumber(CalcBuySell(class_code, security, null, account, price, false , false))

выводит: bad argument #1 to 'tonumber' (value expected) :(
Цитата
Роман написал:
CalcBuySell(SPBFUT , RIM8 , null, 4000000, 123300 , true, false) возвращает nil
Почему вы везде пишите null вместо nil? В Lua, насколько я понимаю, нет такого ключевого слова как null, поэтому это будет интерпретироваться как некая переменная с именем null, которая не определена и соответственно вместо неё будет подставляться значение nil. То-есть, по сути, пока кто-то случайно не определил null со своим значением, такой код будет работать без ошибок и использование null будет равнозначно nil. Но тем не менее, это всё-таки синтаксическая ошибка, и лучше наверно не стоит так писать...

***
По теме... я ещё не разбирался с функцией CalcBuySell, поэтому не знаю что там за параметр client_code ей требуется... у меня поле с таким именем в OnTransReply, OnOrder и OnTrade точно равно полю account, а в вызове sendTransaction оно задаёт комментарий, который возвращается потом полем brokerref... то-есть полная путаница получается...

Подозреваю, что в вызове CalcBuySell параметр с таким же именем client_code должен задавать значение, которое возвращается в поле uid в OnTransReply, OnOrder и OnTrade, это уже пусть тех. поддержка точно скажет...

Тогда, если это так, то может вытащить это значение оттуда из uid? это так на вскидку, не зная структуры вашего кода...
 
да nil - это я языки попутал!
Но не факт с nil такая же ситуация, я поставил так:

CalcBuySell(class_code, security, "", account, price, false , false)

и всё работает ... Не знаю правильно или нет, ну это уже слово за разработчиками.
 
Цитата
Роман написал:
CalcBuySell(class_code, security, "", account, price, false , false)

и всё работает ...
работает возможно из-за того, что вы для срочного рынка считаете... а для фондового может уже так не сработает...
 
ну будем ждать комментарий разработчиков, я не в курсе как метод внутри обрабатывается.
 
Цитата
Роман написал:
в общем с NULL не работает, это глюк? Если нет, то вопрос остался, как по торговому счёту узнать код клиента? (вообще зачем он нужен в этой функции, что номер счёта и код клиента бывают разные).
Добрый день.

На фондовом/валютном рынке есть торговый счет и код клиента. Для расчета максимального кол-ва код клиента обязательный.
Для срочного рынка код клиента не используется, там только торговый счет.
 
SDL, Добрый день,
     
      Описанная в данном инциденте ошибка исправлена в версии 7.18.1       терминала QUIK.
      Рекомендуем вам обновить версию программы.
     
      Приносим извинения за причиненные неудобства.
Страницы: 1
Читают тему
Наверх