Станислав (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Запись открытого интереса в файл.
 
Открытый интерес можно добавить на график и читать как обычный индикатор.
Таблица текущих торгов в Quik., TTT
 
Цитата
Vladimir spb написал:
Я так понимаю, что стаканы, через подписки на них, мне не светят. Буду курить прямой запрос котировок по таймеру.
Без подписки не будет и данных в getQuoteLevel2().

Цитата
Когда стаканы приходят, повторить   https://www.quantower.com   DOM Surface (история стаканов) на Питоне не сложно. Правда я нигде не нашел, что они называют Imbalance ?  
Такие графики строятся по таблице обезличенных сделок.
Таблица текущих торгов в Quik., TTT
 
В ручную удаляйте, изменяйте. В QLua вообще ничего нет для изменения параметров рабочего места.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Subscribe_Level_II_Quotes работает нормально, ищите проблему у себя.
onQuote передает только изменения стакана, возможно вы торгуете неликвид, где стаканы обновляются раз в час.
Дополнительные флаги для таблицы «Стоп-заявки», Дополнительные флаги для таблицы «Стоп-заявки»
 
Установите защитный спрэд в 5%, в 99% случаев заявка исполнится, если конечно ее объем не на миллионы.
Таблица текущих торгов в Quik., TTT
 
Конечно нет
Доступ к таблице "Состояние счета"
 
Если коротко то нет.
Но можно получить доступ к данным по которым строится таблица "Состояние счета".
Функции для получения значений Таблицы текущих торгов, getParamEx, Как обновлять данные через функцию. getParamEx
 
nikolz все правильно вам ответил.

Перенести запрос цены в main необходимо.

Все что расположено вне блоков выполняется первым и только один раз после запуска.
getParamEx("QJSIM", "SPBE", "LAST").param_value может вернуть nil, если нет заказа данных с сервера этого параметра.

Для заказа данные должна быть открыта таблица ТТТ с данным инструментом и параметром или осуществлен заказ данных самим скриптом через:
Код
BOOLEAN ParamRequest(STRING class_code, STRING sec_code, STRING db_name)
Запрос не мгновенный, и серверу необходимо время что бы начать отправлять запрошенное значение, поэтому вызов getParamEx сразу после ParamRequest вернет все тот же nil.
Хорошей практикой будет производить подписку в колбэке OnInit().
Помощь.
 
Так сам квик сообщает что переменная num имеет значение nil.

очевидно что price == nil
Скрипт, запускающий и останавливающий экспорт по dde
 
Горячих клавиш для вывода отдельных таблиц нет, поэтому надежное и простое решение не получится найти.  Конечно есть разные программы для автоматизации и написания макросов (например, autoit) но все эти решения я не считаю надежными.
Скрипт, запускающий и останавливающий экспорт по dde
 
Только внешними библиотеками, например w32
Расчет денег в лоты и обратно., Lot2Money и Money2Lot
 
Скорее всего связано с этим: https://forum.quik.ru/messages/forum10/message70890/topic8157/
Расчет денег в лоты и обратно., Lot2Money и Money2Lot
 
1. getParamEx никогда не возвращает nil, но вот 0 там может быть запросто
2. Скорее всего у вас цена запрашивается тоже через getParamEx и тоже может быть 0, кроме того до первой сделки по инструменту, после открытия торговой сессии она гарантировано 0.
3. Money/(Price * LOTSIZE) Вызовет ошибку при 0 значениях в делителе.  
getQuoteLevel2 Получение доходности облигаций
 
Пожалуйста добавьте возможность получения доходности облигаций в функцию getQuoteLevel2, в стаканах в самой программе она есть, но по видимому ее забыли добавить в getQuoteLevel2.
Дублируются пользовательские сообщения из скрипта lua
 
Порядок прихода сделок по возрастанию номера не гарантирован.
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
 
OnTrade как правило приходит раньше OnOrder.

Сама по себе сделка содержит номер транзакции, номер заявки и цену исполнения.

После получения всех сделок, информация о состоянии заявки, нам больше не нужна.
Помогите с lsqlite3
 
Установить Visual C++ Redistributable Runtimes
10.2.1.12 Таблица "Состояние счета" - некорректное отображение стоп-заявок
 
Проверил.
  1. Тип стоп-заявки не важен.
  2. С облигациями все тоже самое.
  3. Всегда происходит изменение значения в строке с "AGRO" вместо действительной бумаги.
  4. Таблица начинает отображать корректные значения если переключить режим (Тx/T2).
  5. Если выбрать режим T2 и выставить заявку, проблема сохраняется (не зависит от выбранного режима).
Настройки выставил как на рисунке, никаких изменений не заметил.
10.2.1.12 Таблица "Состояние счета" - некорректное отображение стоп-заявок
 
Брокер ВТБ, записывать видео не хочу.

Все еще интереснее, если снять эту заявку, то в таблице не обновляется значение, а по другой бумаге значение устанавливается в "-1"
Вот скриншот, активных заявок нет. Была снята стоп-заявка POLY, в результате имеем AGRO "-1"

10.2.1.12 Таблица "Состояние счета" - некорректное отображение стоп-заявок
 
После выставления стоп-заявки (тейк-профит) признак ее наличия (колонка стоп-заявки) в таблице "состояние счета" отображается для совсем другой бумаги, для бумаги для которой в реальности выставлен стоп - не отображается.
После перезаказа данных локальных справочников и перезапуска терминала отображение корректное.
Добавление флагов в скрипт
 
Цитата
Beginner написал:
Цитата
nikolz написал:
у вас flag всегда ноль.
а как правильно нужно?  
flag=0 --ИСХОДНОЕ ЗНАЧЕНИЕ ФЛАГА

Сейчас переменной присваивается значение 0 на каждой итерации цикла while. Очевидно, что инициализацию переменной нужно вынести за его пределы.
Дублируются пользовательские сообщения из скрипта lua
 
Функции обратного вызова вызываются по нескольку раз и это обычное поведение. Вызываются они не только после изменения свойств входящего параметра доступных внутри луа, но и свойств которые остаются "за кадром".
Последовательность обработки функций обратного вызова
 
Не нужно вставлять задержки в main, организуйте очередь задач и обрабатывайте их последовательно, возвращаясь к незавершенным (требующим ожидания) задачам уже после.
Последовательность обработки функций обратного вызова
 
Согласен, коллбеки нужно обслуживать максимально быстро, т.к. во время обслуживания копится очередь из других коллбеков.

В идеале нужно записывать данные в таблицу с индексом и сразу возвращать управление, всю обработку производить уже в main.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
Alexander написал:
Что за ерунда такая?
Все так как и должно быть. Просто вы не учитываете, что процедура Subscribe_Level_II_Quotes выполняется асинхронно и требует значительного времени на выполнение.
Получить данные из колонки "Доступно" из таблицы "Позиции по инструментам"
 
currentbal "Текущий остаток" в getDepoEx
Luacom, Luacom
 
https://wdho.ru/f4704dc
Выгрузка библиотек
 
Цитата
Alexander написал:
Цитата
Станислав написал:
Настройте динамическое название библиотеки, например, mylib-723cf36f.dll, где 723cf36f - динамический хеш. Да, будут оставаться файлы старых версий и в памяти и на диске, но их можно подчищать после закрытия терминала.
Как это сделать? Можно поподробней.
Напишите макрос для post-build события сборки, который будет переименовывать файл. Готового решения у меня нет.
Выгрузка библиотек
 
Настройте динамическое название библиотеки, например, mylib-723cf36f.dll, где 723cf36f - динамический хеш. Да, будут оставаться файлы старых версий и в памяти и на диске, но их можно подчищать после закрытия терминала.
Как узнать доступность облигаций для неквалифицированных инвесторов, неквалифицированный инвестор офз
 
Еще можно по параметру "QUALIFIED" в таблице текущих торгов.
Как узнать доступность облигаций для неквалифицированных инвесторов, неквалифицированный инвестор офз
 
По коду класса?
Выгрузка библиотек
 
Цитата
Kalmar написал:
Цитата
paluke написал:
Вызвал сборщик мусора.
ЗЫ: а его можно явно вызвать? Он же вроде сам приходит когда считает нужным?
collectgarbage()
Запаздывание свечей. Что не так.?
 
Предположу, что процессор Ryzen, а компьютер вышел из гибернации.
Функция getCandlesByIndex() и закрытие свечки
 
Если использовать источником данных DataSource, то использовать SetUpdateCallback для получения информации о том, что появилась новая свеча можно.

При появлении новой свечи в OnDataSourceUpdate изменится index и время свечи, пример:


-- Функция вызывается при изменении свечки в таблице data_source
-- OnDataSourceUpdate(TABLE data_source, STRING class_code, STRING sec_code, NUMBER interval, STRING param, NUMBER index)
function OnDataSourceUpdate(ds, class_code, sec_code, interval, param, index)
...
local datetime = ds:T(index)

end

...

local ds, error = CreateDataSource(class_code, sec_code, interval, param)
if ds ~= nil then
ds:SetUpdateCallback(function (...) OnDataSourceUpdate(ds, class_code, sec_code, interval, param, ...) end)
end
Снятие заявки, server check failed
 
OnTransReply не всегда содержит поле с номером заявки order_num (параметр указан со звездочкой в руководстве). Номер заявки обычно поступает в одном из последних вызовов OnTransReply. Лучше всего номер заявки получать из таблицы заявок по trans_id транзакции.
Вызов функций С из DLL в скрипте Lua QUIK, информация к размышлению
 
PineScript указал просто как пример. Рано или поздно он начнет выполняться на сторонних серверах как уже произошло с графиком.
Вызов функций С из DLL в скрипте Lua QUIK, информация к размышлению
 
Цитата
nikolz написал:
Цитата
Станислав написал:
А интерпретатор JavaScript в Node.js? По идее должна быть хорошая производительность.
Не видел торговых систем на их основе
Подключать к КВИКУ не планирую.
Вполне устраивает Lua, MQL5 и C.
PineScript, TradingView, терминал Тинькофф.  

Да я и не прошу его подключать к квик.
Сейчас молодежь со школы учат программировать на python, наверное, это был бы самый востребованный вариант в будущем. (сам не программирую на нем)
Вам такое не снилось!!!, LUA5.3 LUAJIT MQL5
 
Производительность не бывает лишней. Как вариант можно тестировать стратегию на истории прямо внутри квик ( т.к. появляется возможность запустить задачу в отдельном потоке)
Вызов функций С из DLL в скрипте Lua QUIK, информация к размышлению
 
А интерпретатор JavaScript в Node.js? По идее должна быть хорошая производительность.
can_buy из подтаблицы "Купить/Продать" таблицы "Клиентский портфель", Как мне получить can_buy при для фондового рынка?
 
Попробуйте использовать CalcBuySell
bid_count возвращает 0, при этом в стакане есть заявки.
 
Subscribe_Level_II_Quotes заказывает с сервера поток котировок (далеко не быстрая процедура)
Естественно getQuoteLevel2 вернет значения только для уже заказанных ранее стаканов (или открытых в quik)
Вызов функций С из DLL в скрипте Lua QUIK, информация к размышлению
 
Впечатляет! Т.е улучшение производительности в 20 раз?
В таблице не хватает теста с Lua 5.4.1
Вызов функций С из DLL в скрипте Lua QUIK, информация к размышлению
 
Очень интересно, поздравляю с успехом коллега!

Не понимаю, где была инициализирована переменная  nk1?PS: К сожалению, не являюсь программистом на C/C++.
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Выше написано все верно. От себя могу добавить что для обмена еще можно использовать сокеты (socket).
Мало кто об этом знает.
 
А что если каждые 100 элементов вызывать сборку мусора?
collectgarbage()
После вызова ds:Close() не работает callback при перезаказе данных
 
Цитата
NiKO написал:
Цитата
NiKO написал:
Не помогло.
Извиняюсь, добавление ds:SetEmptyCallback() помогло решить проблему.
Какая версия терминала?
КРАШ -ТЕСТ терминала
 
CalcBuySell сломали в версии терминала 10. Производительность снизилась на порядок в сравнении с версией 9.
После вызова ds:Close() не работает callback при перезаказе данных
 
Как решить эту проблему? Терминал 10.0.1.18
Отписка от колбека SetUpdateCallback и сразу же подписка
 
Цитата
Anton Belonogov написал:
Quikos, добрый день.

Причина данной проблемы установлена и будет устранена в одной из ближайших версий библиотеки qlua. В качестве временного решения рекомендуем перед вызовом ds:Close() для закрытия таблицы устанавливать пустую функцию обратного вызова с помощью ds:SetEmptyCallback().

Столкнулся с данной проблемой в терминале версии 10.0.1.18, ds:SetEmptyCallback() перед ds:Close() не решает проблему.
Есть еще идеи как это обойти на данный момент?
Отладка QUIK 9.3
 
Ошибка в getPortfolioInfo и getPortfolioInfoEx воспроизводится и на чистом луа без внешних библиотек и при единственном запущенном скрипте.

Дополнительные скрипты запущенные параллельно ВЛИЯЮТ на частоту появления ошибки, так и на возвращаемое значение этой функции.

Всем, кто использует getPortfolioInfo в своих программах не советую обновляться до 9 версии.
Страницы: 1 2 След.
Наверх