Соответствие Кодов клиента и Торговых счетов

Страницы: 1
RSS
Соответствие Кодов клиента и Торговых счетов, Определение соответствия Кодов клиента и Торговых счетов
 
Добрый день.
В QLUA доступно получение кодов клиета
Код
TABLE getItem (STRING TableName, NUMBER Index) 

например, getItem("client_codes", idx) возвращает количество доступных кодов клиента в  терминале.

При этом, код клиента используются в Функциях взаимодействия скрипта Lua и Рабочего места QUIK, например,

Код
TABLE getMoney (STRING client_code, STRING firmid, STRING tag,  STRING currcode)TABLE getMoneyEx(STRING firmid, STRING client_code, STRING tag,  STRING currcode, NUMBER limit_kind)TABLE getDepo (STRING client_code, STRING firmid, STRING sec_code,  STRING trdaccid)TABLE getDepoEx(STRING firmid, STRING client_code, STRING  sec_code, STRING trdaccid, NUMBER limit_kind)NUMBER qty, NUMBER comission CalcBuySell(STRING class_code, STRING sec_code,  STRING client_code, STRING account, NUMBER price, BOOLEAN is_buy, BOOLEAN  is_market) 
TABLE getPortfolioInfo (STRING firm_id, STRING client_code)TABLE getPortfolioInfoEx (STRING firm_id, STRING client_code,  NUMBER limit_kind)TABLE getBuySellInfo (STRING firm_id, STRING client_code, STRING  class_code, STRING sec_code, NUMBER price)TABLE getBuySellInfoEx(STRING firm_id, STRING client_code, STRING  class_code, STRING sec_code, NUMBER price)

В свою очередь, в сигнатуре этих функций присутствуют параметры

Код
STRING firm_id
STRING trdaccid
которые можно получить из функции getItem("trade_accounts", idx).
При этом последовательность выведенных кодов клиентов из getItem("client_codes", idx) не соответствует результатам из getItem("trade_accounts", idx).
Например для код под индексом 1 соответствует аккаунт под индексом 4.

Вопрос: как получить код клиента, соответствующий торговому аккаунту.

Q
 
Цитата
QApplication написал:
Вопрос: как получить код клиента, соответствующий торговому аккаунту.

Для одного кода клиента может быть несколько торговых счетов. Какой считать правильным?
Однозначного ответа нет. По этой причине нет однозначной связи между trade_account и client_code.
Вы можете по таблице depo_limits подобать нужный Вам счет.
 
Цитата
Sergey Gorokhov написал:
нет однозначной связи между trade_account и client_code
На сколько я понимаю, у разных аккаунтов могут быть одинаковые Идентификаторы фирм firmid?
Можно привести физическое назначение поля firmid.
Что такое фирма во взаимоотношениях клиент-брокер-биржа.
Q
 
Цитата
QApplication написал:
На сколько я понимаю, у разных аккаунтов могут быть одинаковые Идентификаторы фирм firmid?
Да могут.

Цитата
QApplication написал:
Можно привести физическое назначение поля firmid.
Внутри QUIK, фирма это некое объединение (группа) счетов.
У брокера может быть несколько фирм.

Цитата
QApplication написал:
Что такое фирма во взаимоотношениях клиент-брокер-биржа.

Для пользователя это просто некий идентификатор.
Для брокера это раздел к которому принадлежат счета.
Для биржи (если говорить про фондовый рынок), это некий Уникальный идентификатор участника торгов.
Если говорить про срочный рынок, то это рездел, при чем для одной фирмы в QUIK может быть несколько разделов на бирже.
 
Общий вопрос, из которого родился перовоначальный:
Какими функциями QLUA и в каком порядке можно построить структуру данных о клиентских счетах и др. в виде дерева?
например,
userID---
          | --- account 1
                       |  --- money
                                  |  --- T0
                                  |  --- T1
                                  |  --- T2
                       |  --- depo (T0, T1, T2)
                       |  --- portfolioInfo(T0, T1, T2)
          | --- account 2
          ...
          | --- account n

Если с функциями (money, depo , portfolioInfo) все понятно, то как посторить корень дерева - не понятно?
Q
 
например,
userID получаем из STRING getInfoParam (STRING param_name) с аргументов USERID
client_codes получаем из getItem(client_codes)
список аккаунтов по каждому коду клиента получаем ??? (не понятно как)
далее по каждому коду клиента (client_codes) и для каждого аккаунта, соответствующего этому коду клиента, получаем данные по известным функциям (get<Name>Ex(args...)).
Q
 
Предлагаю добавить функцию в QLUA для получения списка аккаунтов по коду клиента.
Q
 
Цитата
QApplication написал:
Предлагаю добавить функцию в QLUA для получения списка аккаунтов по коду клиента.
Здравствуйте!

Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и  сообщить Вам результаты анализа. Впоследствии, по результатам анализа,  будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
QApplication написал:
Какими функциями QLUA и в каком порядке можно построить структуру данных о клиентских счетах и др. в виде дерева?
Уже сейчас вам всё это доступно: надо просто проитерировать все лимиты по бумагам и по деньгам
И из них выстроить требуемую вам структуру. (Зачем она вам нудна - вот что не понять)

Собственно QUIK в каком-то смысле так и делает: есть лимиты - из них достаётся вся информация. И всё.
Никакой "структуры параметров" нет.
 
Освежу темку.
1. Если фирма для брокера это группа счетов, то зачем в вызовах getDepoEx, getMoneyEx, getFuturesLimit, ... кроме номера счета указывать еще и фирму? Кажется, эта информация избыточна.
2. Практически всегда, номер счета фондового рынка МБ имеет код "L01~00000F00", получается это не счет клиента, и даже не брокера, а .... счет чего?
 
Цитата
Сергей написал:
Освежу темку.
1. Если фирма для брокера это группа счетов, то зачем в вызовах getDepoEx, getMoneyEx, getFuturesLimit, ... кроме номера счета указывать еще и фирму? Кажется, эта информация избыточна.
2. Практически всегда, номер счета фондового рынка МБ имеет код "L01~00000F00", получается это не счет клиента, и даже не брокера, а .... счет чего?
на бирже торгуют фирмы(брокеры) а не их клиенты
поэтому информация о фирме нужна бирже.  
кроме того в сделке на бирже есть и идентификатор клиента,
но идентификатор клиента(счет)  нужен реально лишь брокеру для разнесения сделок по клиентам во внутренней "амбарной книге"
 
Цитата
nikolz написал:
Цитата
Сергей написал:
Освежу темку.
1. Если фирма для брокера это группа счетов, то зачем в вызовах getDepoEx, getMoneyEx, getFuturesLimit, ... кроме номера счета указывать еще и фирму? Кажется, эта информация избыточна.
2. Практически всегда, номер счета фондового рынка МБ имеет код "L01~00000F00", получается это не счет клиента, и даже не брокера, а .... счет чего?
на бирже торгуют фирмы(брокеры) а не их клиенты
поэтому информация о фирме нужна бирже.  
кроме того в сделке на бирже есть и идентификатор клиента,
но идентификатор клиента(счет)  нужен реально лишь брокеру для разнесения сделок по клиентам во внутренней "амбарной книге"
Информацию о фирме легко получить по номеру счета, судя по тому, что в таблице счетов есть поле с ид фирмы, сопоставление там однозначное.
 
Здравствуйте.
Торговому счету может соответствовать только один идентификатор фирмы?
 
Цитата
Незнайка написал:
Здравствуйте.
Торговому счету может соответствовать только один идентификатор фирмы?
Добрый день.

Может.
 
Торговому счету соответствует только ОДИН идентификатор фирмы или может быть НЕСКОЛЬКО ФИРМ для одного торгового счета?
 
Цитата
Незнайка написал:
Торговому счету соответствует только ОДИН идентификатор фирмы или может быть НЕСКОЛЬКО ФИРМ для одного торгового счета
В связи с чем возник данный вопрос?
Технически может, но таких случаев в бою мы не встречали. Возможно и существует такая конфигурация, но надо у брокера выяснять и смотреть его настройки.
 
Если считать, что Фирма - это некий код брокера, от имени которого выполняются поручения, то маловероятно. Но это, конечно, больше вопрос к брокеру.
 
Цитата
Egor Zaytsev написал:
В связи с чем возник данный вопрос?
Для заданного кода клиента ид фирмы, определяется однозначно, например из таблицы "trade_accounts"?
 
Будет ли корректно работать функция получения фьючерсных позиций без указания фирмы?

Код
function getFuturesHoldingEx(ACCOUNT, SEC_CODE, TYPE)
  if TYPE == nil then TYPE = 0 end
  local n = getNumberOf("futures_client_holding")
  if n == 0 then return nil end
  local index = SearchItems("futures_client_holding", 0, n-1, function (trdaccid, sec_code, type)
    if sec_code == SEC_CODE and trdaccid == ACCOUNT and type == TYPE then
      return nil
    else return false end
  end, "trdaccid,sec_code,type")
  if index then
    return getItem("futures_client_holding", index[1])
  else return nil end
end

Аналогично по денежным и фондовым позициям?
 
Незнайка, добрый день!

Нет, не будет.
Функция ожидает на вход параметр firmid.

Аналогично по денежным и фондовым позициям.
 
Цитата
Roman Azarov написал:
Функция ожидает на вход параметр firmid.
Не понял. Какая функция в моем коде ожидает?
 
Незнайка,

Прошу прощения, не совсем правильно Вас понял.
Вы просто реализовали поиск при помощи SearchItems.

В виду данного нами ранее ответа
Цитата
Egor Zaytsev написал:
Технически может, но таких случаев в бою мы не встречали. Возможно и существует такая конфигурация, но надо у брокера выяснять и смотреть его настройки.
Однозначно сказать нельзя.

Однако, если взять частный случай, когда набор trdaccid, sec_code, type уникален только для одной конкретной фирмы, то да, Ваша функция будет работать корректно.
 
Цитата
Roman Azarov написал:
В виду данного нами ранее ответа
Цитата
Egor Zaytsev написал:
Технически может, но таких случаев в бою мы не встречали. Возможно и существует такая конфигурация, но надо у брокера выяснять и смотреть его настройки.
Однозначно сказать нельзя.

Другими словами в квике в общем случае нет однозначного соответствия торговый счет -> фирма?
Но в форме ввода заявки нет идентификатора фирмы. Как же квик определяет, по какой фирме совершать сделку?
 
Цитата
Незнайка написал:
Но в форме ввода заявки нет идентификатора фирмы. Как же квик определяет, по какой фирме совершать сделку?

Если фирмы нет, значит в правах на классе только одна фирма.
Возможность торговли от разных фирм доступна только сотрудникам брокера.
Страницы: 1
Читают тему
Наверх