Юрий С написал: В чем причина не реализации данного пожелания аж с 2016 года ?
Можем только сообщить что отказа в реализации не было. Значит когда-нибудь оно будет реализовано.
Цитата
Юрий С написал: Тем более, что реализация данного пожелания достаточно элементарна и не затрагивает ни коим образом ни функциональность Квика, ни его быстродействие и вообще не несет ни какой дополнительной нагрузки на систему .
Простота реализации не является критерием для принятия решения о реализации.
Юрий С, Возможно речь о том что было зарегистрировано пожелание на доработку. рекомендуем ознакомиться с регламентом рассмотрения пожеланий: https://forum.quik.ru/forum8/topic13/
Сергей Привалов написал: но никак не могу понять как мне узнать с хорошей точностью когда это произошло, нужно время сервера, а не моё локальное ?
Никак, пожелание о котором идет речь еще не реализовано, а это означает что функционала нет. раз нет функционала то никак задачу не решить Ищите альтернативные пути, ранее пару постов выше например предлагалось использовать локальное время.
Для столбцов со строковыми типами данных параметр «value» не задается.
А он у Вас указан в функции QTable:SetValue
Следует понимать что пример приведенный в документации является именно примером одной из возможных реализаций функций. никто Вас не принуждает слепо использовать именно его, так как это пример, не более. Если Вам нужно вставлять строковые данные, тогда перепишите пример под свои нужды так чтобы для строковых данных, в SetCell параметр «value» не задавался. Либо напишите свои функции. либо не пишите и используйте те что в документации, а не в примерах. на Ваш выбор.
Здравствуйте, В QLUA нет возможности указать вкладку для таблицы. Размер и положение, можно запомнить в каком либо текстовом файле. Получить данные можно функцией GetTableSize, потом сохраняете их в файл. В init или в main, считываете цифры из файла и устанавливаете размер и положение на таблицу, через функцию SetWindowPos
Aleksandr написал: OnFuturesClientHolding вызывается терминалом QUIK при изменении позиции по срочному рынку. Мне же нужно позицию самостоятельно изменить, поэтому не подходит.
Вопрос тут не к коду, а к пониманию того что Вам нужно. На сколько становится понятно, Вы хотите применить код по факту совершении сделки. Если так то при этом срабатывает OnOrder, OnTrade и OnFuturesClientHolding. Если Вам нужно применить код не в момент совершения сделки, а в другой, тогда потесните, какой момент Вам нужен.
Александр М написал: В терминале есть ограничение на число транзакций на снятие в секунду?
В терминале нет. И даже на сервере нет. А вот на бирже есть. Легко можно попасть на флуд контроль.
Цитата
Александр М написал: Я могу в цикле запулить 500 транзакций через sendTransaction(Transaction), если мне надо снять 500 заявок? Если нет, то как мне гарантированно это сделать?
Вы можете в цикле делать что угодно, вопрос с какой скоростью оно обработается дальше.
Александр М написал: Вы не ответили. Тип "KILL_ALL_FUTURES_ORDERS" работает в Lua? Если да, то почему фьючерсы я могу снять 1 командой, а акции нет?
KILL_ALL_FUTURES_ORDERS работает по акциям не работает. связано это с исторически сложившимися (еще со времен QPILE) архитектруными особенностями. Изменить это нельзя.
Сами по себе транзакции ALLL Выполняются НЕ сервером QUIK, а непосредственно терминалом QUIK. Терминал просто в цикле перебирает заявки и снимает те которые удовлетворяют заданным условиям. В коде Вы легко можете сделать то же самое.
Борис написал: Правильно ли я понимаю, что в ТВС появляются, наряду с реальными сделками, происходящими на СПБ, также фиктивные сделки (с количеством 1), отражающие "международные рынки"?И что эти фиктивные сделки ничем не отличаются от настоящих?
Вы можете уточнить это у биржи, поток CurrentPriceOfMarket является биржевым, нам честно не известно как биржа его формирует, мы просто его транслируем.
Борис написал: Как маркируются эти "данные мировых рынков"? Особыми классами бумаг?
Речь про биржу СПБ, следовательно и смотреть надо классы биржи СПБ, например "SPB: Акции"
Цитата
Борис написал: Как узнать, по каким бумагам есть соответствующие "данные мировых рынков"?
Если данные едут значит они есть.
Цитата
Борис написал: С какой периодичностью (или по каким иным принципам) они транслируются?
Вопрос не понятен. Есть торги значит транслируются, нет торгов значит не транслируются. А разве бывает по другому?
Цитата
Борис написал: Соответствует ли CurrentPriceOfMarket какому-либо отдельному объекту в Квике или это просто обозначение категории транслируемых данных?
Как уже было сказано и еще раз повторим:
Цитата
Sergey Gorokhov написал: Кроме того по рынку СПБ был выполнен переход на новую технологию трансляции обезличенных сделок из потока CurrentPriceOfMarket
Вам понятно из сказанного что в QUIK речь про таблицу обезличенных сделок?
Sergey Gorokhov написал: Там ведь бессмысленно указывать количество?
Возможно речь про количество которое транслируется в обезличенных сделках? Если так, то при трансляции их из CurrentPriceOfMarket в количестве всегда указано "1"
Борис написал: То есть стоп-заявка превращается в обычную, когда "мировая" цена пересекает заданный уровень?А потом эта активированная заявка исполняется, при наличии контрагента по заданной цене исполнения, уже на СПБ?
Да, верно.
Цитата
Борис написал: Как выглядят эти "мировые" данные в ТВС? Там ведь бессмысленно указывать количество?
Вопрос не понятен. Вы же сами можете открыть таблицу и посмотреть как она выглядит.
Цитата
Борис написал: И откуда они берутся -- с какой-то одной биржи (например, NYSE) или как-то иначе?
Данные транслирует биржа, Вы можете спросить у биржи.
Борис, В первую очередь это полезно для корректного срабатывания стоп заявок. На самой бирже СПБ довольно мало сделок. А на мировых биржах их много. В результате если раньше пользователь выставлял стоп заявку она могла не сыграть при движении мировых рынков (ранее это был график индикативной котировки) т.к. на СПБ просто небыло сделок с такой ценой. Теперь, благодаря тому что мы изменили трансляцию обезличенных сделок, стоп заявки будут срабатывать по графикам мировых рынков.
В том что раньше ТВС содержала только сделки совершенные исключительно на бирже СПБ А теперь содержит данные мировых рынков. Если Вам не нужны рынки СБП Вы можете попросить брокера отключить соответствующие классы.
файл мог стать больше по разным причинам. например в какой то из версий в обезличенные сделки был добавлен параметр "Открытый интерес", время с точностью до мск. и некоторых других. Даже если эти параметры у Вас не добавлены в таблицу они все равно скачиваются с сервера. Кроме того по рынку СПБ был выполнен переход на новую технологию трансляции обезличенных сделок из потока CurrentPriceOfMarket, который в разы более информативен и как следствие увеличивает количество данных.
У Вас функция FixTime не правильная. При указании "9:50" Вы отправляете строку размером 4 символа, а в функции у Вас проверка для строки 5, 6 и больше 6 символов. Если же указать "09:50" - 5 символов, то функция string.match не сможет корректно обработать строку т.к. в ней требуются параметры с секундами, т.е. "09:50:00"
либо переделайте функцию, либо указывайте время правильно.
Борис написал: Так я как раз хочу после перехода на x64 продолжить использовать версию 1.2, которая уже есть в проекте.
Версия 1.2 является 32х разрядной ее не получится использовать в х64 проекте. Если хотите х64 проект Вы вынуждены перейти на х64 версию библиотеки, а это 1.3
Цитата
Борис написал: Проблемы начались, когда я перекомпилировал проект под x64.
Просто перекомпилировать проект недостаточно, см выше. Если не получается, значит что то делаете не так, компилятор какую ошибку выдает?
Борис, недостаточно просто заменить dll в проекте. Потребуется перекомпилировать проект под х64, при этом понадобится актуализировать заголовочный файл с функциями trans2quik_api.h
Андрей написал: В таблице QUIK depo_limits согласно документации QLUA по инструменту представлен только "код инструмента" sec_code. Как мне проще и быстрее вычислить "код класса" для инструмента, представленного в таблице лимитов по бумагам depo_limits? Код класса требуется, например, для вызова функции getSecurityInfo.
Один инструмент может торговаться в нескольких классах. getSecurityInfo при отсутствии кода класса, вернет параметры инструмента из первого попавшегося класса, но не факт что нужного. В связи с чем, правильно самому указывать нужный класс
Сергей Запольских написал: ds:Size() содержить уже кол-во свечей за указанный промежуток времени.
В функции CreateDataSource Вы указываете НЕ "промежуток времени", Вы указываете интервал (таймфрейм) графика. INTERVAL_D1 - означает дневной интервал. Т.е. Вы заказываете кучу дневных свечек, а не свечки за 1 день как Вам кажется
Цитата
Сергей Запольских написал: Если это не так, то как реализовать скрипт чтобы он выдавал кол-во свечей за указанный промежуток времени?
Вы это сами написали: local current_candle = ds:Size() local max_candles = math.min(1000, ds:Size()) ... while current_candle > ds:Size() - max_candles do
max_candles получается равным 1000. т.е. в цикле Вы и перебираете последние 1000 свечек.
Ваш текущий код по русски звучит так: "взять последние 1000 свечек дневного графика и пробежаться по ним"
а зачем вообще потребовалось пробегаться по всему графику? если Вам надо выяснить мин макс за день, то не проще с дневного графика, со свечки текущего дня вытащить hight и low? ds:H(ds:Size()) ds:L(ds:Size())
нет не должен, от куда такая инфомрация? Вы в коде, на дневном интервале просматриваете свечки за последние 1000 дней, и в этом периоде был минимум ~82. почему Вы считаете что за последние 1000 дней не было такого минимума?
Старатель, Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Vladimir написал: Не имеете право разглашать, до выхода какого релиза? Квика нового или имеется ввиду обновления Spectra ?
До выхода терминала QUIK который будет приурочен к обновлению Spectra с 19ти значными номерами. Биржа говорит что это произойдет не раньше февраля 2020 г.