Closed Twagg closed 3 years ago
что демо-приложение (QuikSharpDemo) пишет в окно логов, когда Вы подписываетесь на получение свечей? Обычно, когда нет каких-либо нестандартных проблем, ничего дополнительно делать не надо. Вы выбираете подписку на свечи, и просто ждете. При получении новой свечи приложение сообщает об этом в логах, строкой которая начинается как "Получена новая свеча: 'Time' = ..."
Подключаемся к терминалу Quik... Экземпляр Quik создан. Получаем статус соединения с сервером.... Соединение с сервером установлено. Определяем код класса инструмента RIZ0, по списку классов... Определяем код клиента... Создаем экземпляр инструмента RIZ0|SPBFUT... Инструмент RIZ0 создан. Подписываемся на стакан... Подписка на стакан прошла успешно. Подписываемся на колбэк 'OnQuote'... Подписываемся на колбэк 'OnFuturesClientHolding'... Подписываемся на колбэк 'OnDepoLimit'... Подписываемся на получение исторических данных... Проверяем состояние подписки... Получаем исторические данные... Выводим исторические данные в таблицу...
свечи минутные по коду, больше в логе нет ничего... Пробовал и через студию запускать, и экзешником. и дебаг и релиз. кстати версия квика 8.7, не 8.5... это повлиять может на луа?
Странно. Если Вы не меняли код, то свечи должны быть 15-минутные. Версия квика на эту функцию не влияет. Вот так выглядит работа демо-приложения у меня (проверил сегодня), в "боевом" терминале:
что я делаю не так.
Пока единственное что можно проверить - это название класса для сишки или ришки. Других мыслей у меня нет. Что Вам мешает выполнить проверку в боевом терминале?
Столкнулся с той же проблемой - не приходят обновленные свечи и стакан (не срабатывает событие). Сначала пробовал в своем коде, потом в QuikSharpDemo. Та же ситуация, не срабатывает событие (даже ставил на событие точку остановки). В коде только поменял инструмент на Сбер и таймфрейм на М1
`
if (tool != null && tool.Name != null && tool.Name != "")
{
Log("Инструмент " + tool.Name + " создан.");
Log("Подписываемся на свечи...");
_quik.Candles.Subscribe(tool.ClassCode, tool.SecurityCode, CandleInterval.M1).Wait();
isSubscribedToolCandels = _quik.Candles.IsSubscribed(tool.ClassCode, tool.SecurityCode, СandleInterval.M1).Result;
if (isSubscribedToolCandels)
{
Log("Подписка на свечи прошла успешно.");
_quik.Candles.NewCandle += Candles_NewCandle;
}
else
{
Log("Подписка на свечи не удалась.");
}
}
public void Candles_NewCandle(Candle candle)
{
Log(candle.Datetime.ToString() + " " + candle.Close.ToString());
}`
версия QUIK Junior 8.9.0.107
и еще вопрос: может я не внимательно прочитал, не увидел минимальную версию терминала QUIK для работы с библиотекой. Пытался подключиться к демоверсии от ВТБ v8.10.1.1 , не получилось. Потом нашел информацию, что в 8.5 были изменения в lua.
Я новичок в этом деле.
По классу инструмента уже вижу, что это "игровой/демо" квик. Не готов комментировать работу библиотеки в этом варианте терминала. Если хотите разобраться - изучайте работоспособность этих функций на QLua.
вообщем все заработало... я через НуГет обновил все подключаемые библиотеки и после обновления System.Runtime.CompilerServices.Unsafe все завелось... Причем эту библиотеку захотело именно конечное приложение.
Спасибо Pr0phet1c за уделенное время и желание помочь разобраться!
Тоже столкнулся с неработающими коллбэками. На прежней системе (Windows 7) всё работало, а тут поставил 10-ку, последний Visual Studio, QUIK, и коллбэки перестали приходить. И в моём приложении, и в QuikSharpDemo. И в боевом Квике, и в QUIK Junior. Пробовал и на свежем архиве QUIKSharp, и на архиве полугодичной давности. Одно и то же: все прочие функции работают, а коллбэки не приходят. Решение оказалось здесь. Спасибо Igor-san. Через NuGet добавил в своё приложение System.Threading.Tasks.Extensions, и всё заработало как надо. После добавления этого пакета в QuikSharpDemo и там всё стало ОК, сразу bid/ask появились. Microsoft Visual Studio Community 2019, версия 16.8.2 QUIK 8.9.0.107
@strafly спасибо за важное замечание. Демо-приложения действительно давно не обновлялись, и я думал, что они должны стабильно работать. Внес необходимые изменения. Думаю, на этом тему можно закрыть.
никак не могу разобраться как работает подписка на обновления стакана/свечей. Запускаю любое приложение из демо. там есть несколько методов обратного ответа от терминала, но ни один не приходит от терминала (как пример одноминутные и пятнадцатиминутные графики), инфы по новым свечам нет.
Что я делаю не так, или я не правильно понял функционал кода? Все подписался, жду ответа от квика (кстати ДЕМО, мб связано с этим?)и количество свечей так и не меняется...