Как получить размер лота для бумаги по открытой позиции?

Страницы: 1
RSS
Как получить размер лота для бумаги по открытой позиции?
 
Перебираю все открытые позиции через таблицу лимитов по бумагам (depo_limits). Все нужные данные там есть, кроме размера лота по конкретной бумаге. Чтобы получить лот нужно использовать getSecurityInfo(class_code, sec_code).lot_size, но кода класса бумаги у меня нет. Таблица классов (classes) возвращает все классы. Можно ли как-то достать код класса бумаги по коду бумаги? Спасибо!
 
Добрый день,

Код класса Вы можете получить из таблицы сделок, например, с помощью функции getItem.
 
Цитата
Stanislav Tvorogov написал:
Код класса Вы можете получить из таблицы сделок, например, с помощью функции getItem.

Спасибо, Станислав! Конечно, не за что, но спасибо, что вообще что-то написали. Из вашего ответа я понял две вещи:
[LIST=1]
[*]Вам точно не платят за качество ответов на форуме.
 
  1. Вам точно не платят за качество ответов на форуме.
  2. Найден автор исчерпывающего и полезного «Руководство пользователя QLua».
P. S. И движок форума ломается от юникода.
 
Кому интересен ответ, получаю размер лота по бумаге следующим образом:
Код
function getLotSizeBySecCode(sec_code)
   local status = getParamEx("TQBR", sec_code, "lotsize"); -- Беру размер лота для кода класса "TQBR"
   return math.ceil(status.param_value);                   -- Отбрасываю ноли после запятой
end;
Все интересующие меня бумаги имеют код класса «TQBR», это помогло. Не знаю насколько изящно это решение, фолианты по тайному учению QLua бережно хранят свои секреты.

Совет от поддержи оказался неприменим, так как таблица сделок для моего случая пустая.
 
Цитата
Edunon написал:
Можно ли как-то достать код класса бумаги по коду бумаги?
Добрый день,

Так как один инструмент может содержаться сразу в нескольких классах, по этой причине получать код класса по коду инструмента не рекомендуем.
Цитата
Edunon написал:
Все интересующие меня бумаги имеют код класса «TQBR», это помогло.
Действительно нужно отметить, что пример с getItem применим только в случае открытия позиций в текущую торговую сессию. В данном случае, явное указание кода класса будет являться наилучшим решением.
 
Цитата
Edunon написал:
получаю размер лота по бумаге следующим образом:
Спасибо, брат! Я так попробую узнать размер лота (указываю коды бирж -- некоторые маятся)
Код
Prazdnik = string.find('08 March, 03 May, 04 November', os.date('%d %B'))
birzhaSPB = 'SPBXM'
birzhaSPBDE = 'SPBDE'
birzhaMSK = 'TQBR'
birzhaMSKrisk = 'TQPI'
birzhaNYSEbest = 'NYSE_BEST'
birzhaNasdaqBest = 'NASDAQ_BEST'
birzhaMSKvalyuta = 'CETS'
BabloKodUSD = 'USD000UTSTOM'
BabloKodEUR = 'EUR_RUB__TOM'
birzhaMSKvalyutaSmall = 'CETS_S1'
BabloKodUSDsmall = 'USD000SMALL'
BabloKodEURsmall = 'EUR000SMALL'

XXXXsFull[key].birzha = birzhaMSK

result = getParamEx(XXXXsFull[key].birzha, key, 'LOTSIZE')
if result.result == '1' then XXXXsFull[key].lot = result.param_value else message('Куу! LOTSIZE '..key, 3) end
Страницы: 1
Читают тему
Наверх