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

Видео первого подключения. #155

Closed
Prival1 opened this issue Apr 30, 2018 · 9 comments
Closed

Видео первого подключения. #155

Prival1 opened this issue Apr 30, 2018 · 9 comments

Comments

@Prival1
Copy link

Prival1 commented Apr 30, 2018

Создал видео как скачать и первый раз запустить этот проект. Надеюсь что оно поможет тем кто первый раз это делает. Добавит популярности проекту и меньше будет вопросов к разработчикам...
Еще раз спасибо авторам за работу.

  1. На видео есть несколько ошибок (неточностей работы). Надеюсь что у разработчика найдется время воспроизвести их и поправить.
  2. Если не затруднит покажите как получить в C# данные озвученные в конце видео.
    Ссылка на видео. https://youtu.be/DKkCvKeSFoc
@buybackoff
Copy link
Collaborator

buybackoff commented Apr 30, 2018

Спасибо! Положу ссылку в РидМи. Демо приложение делал @Pr0phet1c, если честно я его даже не открывал кроме как проверить, что окно открывается нормально, - мне API достаточно.

По основному вопросу как получить параметры: насколько я понимаю, они не транслируются, их нужно получать через GetParamEx (#128). Пересмотрел документацию QLUA быстро и не нашел функции обратного вызова с этими данными. Логика мне кажется такая: если вы можете получить стакан, то зачем вам всё останое посчитанное непонятно на какой момент, если в коде это высчитывается легко из стакана.

@Prival1
Copy link
Author

Prival1 commented Apr 30, 2018

Из стакана не получиться. Квик транслирует в зависимости от настроек сервера брокера глубину +-10 или +- 20, для вычисления этих параметров необходим весь стакан, а это Plaza и orderLog.
ОИ вообще невозможно вычислить, его транслирует биржа. Это уникальная вещь. Не многие биржы в мире могут делать это реал тайм. Этими данными можно легко пользоваться, это приносит прибыль. Много и долго объяснять. Просто посмотрите мой скрин я думаю Вы как трейдер оцените эти данные и поймете как они для меня важны. Вот ссылка на описание моей ТС
https://www.mql5.com/ru/forum/105740/page85
к ней есть пояснения.

@buybackoff
Copy link
Collaborator

buybackoff commented Apr 30, 2018 via email

@buybackoff
Copy link
Collaborator

Из доков QLua:
image
Всё же эти параметры не транслируются, а транслируется событие об их обновлении. Потом нужно вызывать GetParamsEx. Это наверное нужно обернуть внутри Lua, чтобы не было лишних round trips.

@Pr0phet1c
Copy link
Collaborator

Добрый день. Когда я делал демо-приложения, то не столкнулся с проблемой доступа к элементам формы из других потоков (именно в данных приложениях), поэтому не стал заморачиваться с "обходом" этой проблемы, Главное было сделать максимально простое приложение, с работой которого сможет разобраться даже начинающий.
Замечание про нестандартный код класса - весьма интересное. Я демо-квиком уже много лет не пользовался и не предполагал, что этот параметр подменяют. Именно поэтому в моем списке классов такого нет, но в обычной работе этого списка хватает для 90% реально используемых инструментов.
и ОИ, и количество заявок действительно необходимо получать через qetParamEx.
Делать это можно или через колбэк onParam, или отправляя запрос на получение соответствующего параметра тогда, когда это требуется.
Причем, ОИ будет именно текущим значением, а не историческими данными (в квике ОИ можно отобразить в виде индикатора)

@Prival1
Copy link
Author

Prival1 commented May 4, 2018

Спасибо за ответы и ваши подсказки. Сделал вот так
` private void Events_OnParam(Param par)
{

        //NUMCONTRACTS  NUMERIC  Количество открытых позиций
        //NUMBIDS       NUMERIC  Количество заявок на покупку 
        //NUMOFFERS     NUMERIC  Количество заявок на продажу 
        //BIDDEPTHT     NUMERIC  Суммарный спрос 
        //OFFERDEPTHT   NUMERIC  Суммарное предложение            
        //список возможных идентефикаторов
        //https://quikluacsharp.ru/quik-qlua/poluchenie-dannyh-iz-tablits-quik-v-qlua-lua/

        if (par.SecCode == "RIM8")
        {
            var OI = _quik.Trading.GetParamEx(par.ClassCode, par.SecCode, "NUMCONTRACTS").Result;
            var Kol_pok = _quik.Trading.GetParamEx(par.ClassCode, par.SecCode, "NUMBIDS").Result;
            var Kol_pro = _quik.Trading.GetParamEx(par.ClassCode, par.SecCode, "NUMOFFERS").Result;


            Console.WriteLine("OB={0} Пок={1} Прод={2}",OI.ParamImage,Kol_pok.ParamImage,Kol_pro.ParamImage);
        }
    }`

Данные приходят.Но как-то неправильно мне кажется. Чисто интуитивно кажеться, я какраз из тех начинающих для кого вы писали эти примеры.
Можно ли как-то более красиво (экономно) получить эти данные ? Заранее спасибо

З.Ы. В файле qsfunctions.lua закоментировал
--log("Futures holding returns nil", 3)

Постоянно шло это сообщение в лог Квика. Надоело. Не знаю правильно вырезал или нет. Удивлён что так часто идет проверка getFuturesHolding

@Pr0phet1c
Copy link
Collaborator

Pr0phet1c commented May 4, 2018

Экономней не получится (во всяком случае я другого способа не знаю). Единственное, что можно тут посоветовать - вынести получение данных в отдельный метод, в котором можно будет применить конструкцию await ... .ConfigureAwait(false), вместо Result. Но можно оставить как есть, если проблем не возникает.
log("Futures holding returns nil", 3) - я у себя тоже закомментил, но сейчас уже не вспомню почему не сделал это в мастер-ветке.

@Nikolaev-Nikolay
Copy link

У меня вроде все заработало и соединяется - но таблицу не выводит и зависает. Просто мрак короче.
Есть ли пример конфигурационного файла VS - что бы он однозначно компилировался и выводил все нормально. Поему таблица вывода подвисает?!

@buybackoff
Copy link
Collaborator

@Prival1 если все еще пользуетесь Q#, может сделаете update для 1.0 или пишите в #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

4 participants