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

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

Страницы: 1 2 След.
Создание окна и кнопок в Quik.
 
Существует не так много вариантов, советую начать с VCLua.
Смотрите примеры вот тут:
https://quik2dde.ru/viewforum.php?id=13
Если я отправляю подряд 2 лимитные заявки, то я могу ожидать, что они исполнятся в том порядке, в котором отправил?
 
Они исполняются в порядке очереди в стакане. Но это все не важно, ответы могут прийти в любой последовательности.
Имена параметров ТТП и других данных торгового сервера MOEX
 
А эти названия параметров соответствуют передаваемых в getParamEx?
По моему нет. Где, например SEC_SCALE, EV_SESS_ALLOWED?
Если я отправляю подряд 2 лимитные заявки, то я могу ожидать, что они исполнятся в том порядке, в котором отправил?
 
Не гарантируется что отправленные транзакции будут обработаны в порядке отправки, а также не гарантируется что ответы о регистрации заявки придут последовательно.
Новый период и время проведения торгов на бирже.
 
Цитата
ДмитрийР написал:
Цитата
Kolossi написал:
Еще бы кто рассказал как это выгрузить не имея Экселя (у меня Квик на Mac)
есть простой способ. настройки-программа-буфер обмена-формальные поля. далее капируем всё из таблицы и вставляем куда угодно. хоть в блокнот. там в полях столбцов будут нужные поля
Спасибо большое за эту информацию, так гораздо проще получать имена столбцов!Столько лет пользуюсь терминалом и впервые узнал об этой возможности.
Новый период и время проведения торгов на бирже.
 
Можно использовать виртуальную машину и QUIK-Junior. Не так уж и часто требуется узнать имена параметров.
Новый период и время проведения торгов на бирже.
 
Цитата
Kolossi написал:
Цитата
Станислав написал:
Таблица текущих торгов MORN_SESS_ALLOWE и EV_SESS_ALLOWED это?
Кто-нибудь расскажите мне, убогому, где находится секретная документация включающая эти param_name.
Раньше помню админ посылал на... QPile  с этими вопросами. Но нет там этого.
Я их получаю выгрузкой таблицы в excel через DDE
Новый период и время проведения торгов на бирже.
 
Таблица текущих торгов MORN_SESS_ALLOWE и EV_SESS_ALLOWED это?
В QUIK Junior в 11.4.1.3 перестала работать функция getDepoEx
 
Цитата
Nikolay написал:
Подход особо не изменился - найти максимальное числовое значение в таблице money_limit по полю limit_kind. Либо, если версия терминала выше 10.2.0, передавать не число, а строковое значение "Tx" - это такое тихое нововведние.
"Tx" это предлагает в соседней теме служба поддержки для их самописной функции, и хоть они в примере и передают этот параметр напрямую в getDepoEx, я бы так делать не стал, т.к. в справке limit_kind имеет тип number.

Цитата
Nikolay написал:
В Junior транслируется в поле limit_kind дата в виде числа. Т.е. можно взять максимум.
Да, у себя так и сделал. Но еще нужно учесть что максимум необходимо вычислять каждый раз перед вызовом, т.к. если нет сделок, то максимумом будет являться сегодняшнее число, а после совершения сделки дата следующего торгового дня.
Еще один вопрос про потоки
 
В скриптах используются всего 2 потока, один для колбэков и один в main.

В main для каждого скрипта создается отдельный поток, а вот колбэки находятся в некой очереди и вызываются синхронно, т.е. каждый колбэк ждет возвращения управления перед вызовом следующего.


Из-за этого имеем 2 особенности:
1. Нет нужды синхронизировать колбэки.
2. Надолго блокировать или производить тяжелые расчеты в колбэках не стоит, это приводит к подвисанию всех скриптов и даже терминала.


Если я ошибаюсь, поправьте.
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
Ну вы конечно очень глубоко копнули, а человек спросил просто можно ли одним скриптом в окне "доступные скрипты" перевести второй скрипт из состояния "остановлен" в состояние "запущен".

Штатными средствами сделать этого нельзя.
Понятно что имея возможность запускать любой код в подключаемых библиотеках можно сделать вообще все что угодно, однако это не будет хорошим решением.
В QUIK Junior в 11.4.1.3 перестала работать функция getDepoEx
 
Цитата
Андрей написал:
Последним параметром дату передавать что ли?
Ага, в виде 20250203. Но не просто дату, а дату следующего торгового дня (T+ T1), т.е. в пятницу нужно передавать дату на понедельник и не забыть учесть праздники если они есть.
SetUpdateCallback - как определить что начали приходить Не исторические данные., SetUpdateCallback - как определить что начали приходить Не исторические данные.
 
Свечи могут вообще не приходить. Может быть так, что сделок вообще нет на минутках.
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
Нет
limit_kind в таблице depo_limit
 
Какое значение limit_kind принимает getPortfolioInfoEx?
limit_kind в таблице depo_limit
 
Цитата
Anton Belonogov написал:
Предлагаем воспользоваться следующими функциями - функции могут принимать на ввод в параметре limit_kind конкретную дату расчетов, либо значение "Tx".
А справку не нужно поправить? В ней limit_kind указан как NUMBER. Какой еще "Tx"?
getBuySellInfoEx теперь тоже будет возвращать не пойми что? Тоже поправьте в справке.

А в целом кто так делает? По сути  limit_kind это теперь новый параметр содержащий не вид лимита а дату, соответственно никакой обратной совместимости, это приведет к полной неработоспособности всех ранее написанных программ.
И снова CreateDataSource
 
Цитата
Acaw написал:
не повлечет ли это за собой то, что терминал будет обновлять кучу копий
Не повлечет. Вы в своих функциях работаете всего лишь со ссылкой на первоначальный ds.


Цитата
Acaw написал:
И еще вопрос - после выполнения функции ее локальные переменные "разинициализируются" (обнуляются в памяти)?
Память отведенная под переменные на которые больше нет ссылок со временем будет очищена сборщиком мусора.

Цитата
Acaw написал:
Также есть вопрос по параметру Interval в функции CreateDataSource. Его типа по документации  Number, т.е. числовой, при этом он передается через константы, например INTERVAL_H1.А как его передать через переменную?  
Ну просто переменной присвойте значение константы. Для INTERVAL_H1 это вроде 60.
Как в qlua разделить на группы облигации по типу купона
 
Увы, другой информации биржа не транслирует (на сколько мне известно).
Как вариант, через api биржи и http запрос, можно получить график выплаты купонов в формате json. Но это уже совсем другая история..
Как в qlua разделить на группы облигации по типу купона
 
"COMPLEXPRODUCT" "Сложный продукт" содержит код «8» – облигации со структурным доходом;


По названию ОФЗ можно сразу понять, к какому классу бумаг относится конкретный выпуск. Существуют четыре основные категории гособлигаций, которые можно различать по номерам. Расскажем, как это делать
Что означают эти 5 цифр

Первые 2 цифры в номере ОФЗ указывают на класс облигации:

• ОФЗ-ПД (постоянный доход) — номера начинаются на 25 и 26
• ОФЗ-ПК (переменный купон) — номера начинаются на 24 и 29
• ОФЗ-ИН (индексируемый номинал) — номера начинаются на 52
• ОФЗ-АД (амортизируемый доход) — номера начинаются на 46
событие Заявка активна в OnOrder() при попытке отмены заявки., При отправке транзакции на отмену заявки. приходят два события, в OnOrder() . 1 заявка активна. 2 заявка снята.
 
Предположу, что есть какой-то флаг (возможно даже недоступный в lua), который изменяет свое состояние при попытке снять заявку и тем самым дергает коолл-бек.
Определение входящих остатков по инструментам на начало торговой сессии, Проблемы при определении входящих остатков по инструментам открытых позиций на начало торговой сессии
 
swerg очень верно описал ситуацию с классами.
В depo_limits мы имеем остаток, который может торговаться на бирже в разных режимах торгов с разными классами (самый простой пример: полные и неполные лоты).
сообщение в Telegram - это просто
 
Можно делать запросы через библиотеку socket

require "socket"

http = require 'socket.http'
local url = 'https://api.telegram.org/бла-бла/'
http.request(url)
сообщение в Telegram - это просто
 
Интересная тема!

В ботах также возможно добавить кнопки (в том числе динамические) и управлять скриптом прямо из приложения.
Однако, встает вопрос на сколько это все безопасно, как никак речь идет про деньги.

И еще интересно, какие уведомления вы используете в своих скриптах, например, сделки и так отображаются в приложении брокера и более информативны чем просто текст.
Запись открытого интереса в файл.
 
Открытый интерес можно добавить на график и читать как обычный индикатор.
Таблица текущих торгов в 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
Страницы: 1 2 След.
Наверх