Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Получение стакана. #169

Closed
IFetisov opened this issue Nov 22, 2018 · 2 comments
Closed

Получение стакана. #169

IFetisov opened this issue Nov 22, 2018 · 2 comments

Comments

@IFetisov
Copy link

У меня задача проанализировать несколько инструментов и выбрать самый подходящий по цене.
Не могу разобраться с получением стакана.

  1. Subscribe - получается ты подписался на что то и это навсегда остается в квик? Никакого варианта все почистить нет? Только сохранять в массив все сделанные подписки и при выходе из программы вычищать.
  2. Вообщем отписался от всего. (В метод OnQoute добавил UnSubscribe для инструментов на которые не подписывались в текущей сессии приложения). Теперь надо скачать текущие данные по 3м бумажкам и их проанализировать. - Подписываюсь, жду 5 минут все пусто. - это значит что в стакане пусто или что нет изменений за 5 минут или что терминалу вообще не до моего стакана - он прокачивает сделки или еще что то?
    Вообщем я не пойму в каком направлении надо двигаться.
    Может надо сделать Subscribe а потом сразу вызвать функцию getQuoteLevel2? Или можно как-то зафорсить вызов OnQoute или в любом случае пока не будет изменений стакан получить не получится?
@IFetisov
Copy link
Author

IFetisov commented Nov 22, 2018

В итоге сделал так
1.в луа

function qsfunctions.Level_II_Quotes(msg)
   local spl = split(msg.data, "|")
   local class_code, sec_code = spl[1], spl[2]
   local status, ql2 = pcall(getQuoteLevel2, class_code, sec_code)

     if status then
         msg.data = ql2
         msg.data.class_code = class_code
         msg.data.sec_code = sec_code
         msg.data.server_time = server_time
     return msg
     else
         OnError(ql2)
     end
 end

В C#

    public async Task<OrderBook> GetQuotes(string class_code, string sec_code)
    {
        var response = await QuikService.Send<Message<OrderBook>>(
            (new Message<string>(class_code + "|" + sec_code, "Level_II_Quotes"))).ConfigureAwait(false);
        return response.Data;
    }

@buybackoff
Copy link
Collaborator

Получение стаканов работало с самого начала, повторяя QLUA API. Кажется Вы нашли решение. Если нет, то напишите в #195

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants