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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 22 След.
Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
Подниму тему.

Читаем справку:

Универсальный формат позволяет отправлять любые транзакции, если известно их  описание

Описание набора полей транзакции можно посмотреть в окне создания кармана транзакций.

Ок. Смотрим на поля окна для фондовой секции по акциям. Есть такое поле "Код клиента". Собственно оно обязательно для акций.
Вводим в карман транзакций заявку, указывая код клиента. Сохраняем в файл. Смотрим - а кода клиента нет. Ну ладно, бывает.
Пробуем отправить транзакцию в этом формате, добавив поле "Код клиента" (выше же сказано, что поля можно увидеть в окне).

Получаем:

Ошибка выставления лимитной заявки: Не найдено поле "Код клиента" для транзакции "Ввод заявки" по классу "Акции 1-го уровня (эмулятор)"

Убираем поле "Код клиента" - работает. Но как же так, код-то нужен. Код видно только в поле "Примечание" вместе с введённым комментарием.


Внимание вопрос: это так демо-сервер работает или лыжи не едут...

Этот квест с универсальным форматом просто великолепен. Если бы сделали перенос заявки в фиксированном формате, то, видимо, никто бы не задавал больше вопросов. Но нет...
Необъяснимоле чудо
 
Согласен, но иногда просто слов нет. Да и в двух словах не опишешь проблему.
Что возвращает SearchItems
 
Индексы от 0. Т.е. первая строка - это индекс 0.
Чудеса на виражах
 
Да, у меня выделенный IP адрес. Но я очень сомневаюсь в его влияние. В 90-е, ещё можно было ожидать, что как-то будут его учитывать, но уже с 00-х он стал бесполезен. С учётом того, что большинство участников живёт за разными шлюзами, прокси серверами, используя "плюшевые" адреса, совершенно не подозревая какой у них адрес. Подозреваю, что здесь связь по типу P2P с использованием некого уникального ключа-токена установленного соединения.

Ну и если говорить о смешивании пакетов в терминах баз данных, я бы понял если бы было полное соединение, а здесь левое. Только в одном терминале подмешана информация от другого, и только таблица ордеров. Баланс счёта, да и сами счета субсчета не смешаны.
Чудеса на виражах
 
Да, оба терминала версии 11.4.0.54
Чудеса на виражах
 
Брокер Сбербанк. Действие 24.01.2025

Есть два брокерских счёта у него. Два терминала Квик. После очередного обрыва связи, которые на этой неделе почти каждый день, ордера из одного брокерского счёта стали видны в таблице Квика другого брокерского счёта. Буквально - есть записи с несуществующим кодом клиента для этого счёта, терминала. Что ещё забавно, если снять ордер в этом терминале (хотя этот ордер не принадлежит этому брокерскому счёту), то он также снимается и в другом. Вот такая загогулина. Если бы не было печально, то, наверно, можно было бы посмеяться. Возникает вопрос - как серверная часть терминала допускает такое? А если бы стали видны ордера совсем другого клиента?

Прикладываю картинку. Один терминал и окно другого терминала. Видны ордера из первого во втором. Если это не критическая уязвимость связки терминал-сервер, то я не знаю что это.
И просьба не говорить о том, что брокер может что-то настроить у себя на серверной части. Такого просто не может быть, ни при каких обстоятельствах.
Брокер ВТБ. Недоступна торговля на срочном рынке при начале сессии., Очень неприятная проблема для алготрейдинга.
 
Цитата
Михаил Понамаренко написал:
Вот такое сообщение приходит при попытке отправить транзакцию:   Указанная транзакция по указанному классу не найдена: "SPBFUT".
Т.е. QUIK вообще забывает утром, что у него есть срочный рынок.
Это скорее всего из-за того, что в этот момент происходит очистка всех справочников и в момент транзакции они ещё не загрузились с сервера. После какой-то версии терминала это стало повально почти у всех брокеров. Пришлось изменить процедуру запуска скриптов, с ожидающей задачей, пока всё что необходимо не будет загружено.
Дата и время позиции
 
sleep обычно небольшой от 10 до 60 млс. Зачем 200 сразу.
Сделки надо учитывать, да. Но их можно очищать уже через день. Даже на след. день, исключая те, что в вечернюю сессию на срочном рынке. Их и с колбеками необходимо учитывать, т.к. колбек может и приходит несколько раз на одно событие. А значит чтобы исключить повторный учёт, необходимо их запомнить. Особой проблемы в этом нет.

Цитата
каждой сделки по этой заявке будет свой trade_num

Да, будет. По одному ордеру может быть неограниченное число сделок, если представить такой ордер.
Получение из системы купонного процента по облигации-флоатеру
 
Биржа в последнее время не транслирует купон для флоатеров. Данные же терминал не сам формирует. Даже на очень многих ресурсах перестали ставку показывать, т.к. они тоже просто брали поток биржи. Приходится идти в проспект эмисии.
Дата и время позиции
 
Цитата
Acaw написал:
Да, но я спрашивал несколько другой аспект. Что лучше обрабатывать для ведения позиции коллбеки или таблицы, учитывая ненадежность коллбеков? Если и то и то, то нужно это все постоянно приводить к одному, а если исходить, что первоисточник это таблица и сверяемся с ней, то зачем обрабатывать коллбек. Разве что коллбек может придти раньше обновления таблицы, но эта нано разница не играет роли.
Я предпочитаю таблицы. Кто-то колбеки. Причина выше - всё равно необходимой пройтись по сделкам, ордерам, чтобы проверить что случилось с момента прошлого запуска скрипта.
Да и надёжней это. Хоть и кто-то скажет - как можно, это же "прошлый век". Но в том-то и дело, что если задача надёжно получить информацию, то необходимо в реальном времени постоянно опрашивать датчик. Так и здесь. Мы же про деньги говорим и алгоритмы в реальном времени работают.
Дата и время позиции
 
Логика проста. Колбек - это реакция на событие, в терминале - это изменение соответствующей таблицы. Например, установили ордер - появилась запись в таблице ордеров. Ордер исполнился - изменился статус (флаг состояния). Всё, вроде, красиво. Обработай колбек - получили результат. Минимум усилий, скрипт почти всё время работает в холостую, ожидая колбеки.

Но, как говорил выше, реальность же сложнее. Скрипт может быть остановлен, а ордер исполнился в это время. Пользователь решил руками закрыть или открыть позицию - а почему нет, спрашивается. Сдвинул ордер на графике и т.д. Да и просто может выключить терминал вечером, когда ещё идет вечерняя сессия. Не у всех терминал на постоянно работающем VPS.

Т.е. есть разные ситуации. Если Вы пишите скрипт для себя и прекрасно понимаете что можно, а что нельзя делать, то да, используйте колбеки, понимаю их риски. Плюс учитывая, что они приходят не один раз на одно событие. А вот если скрипт не для себя, то уже приходится писать с расчётом на то, что будет выполнено всё то, что Вы не предполагаете. Могут даже пожаловаться на то, что сделка не открылась после выключения терминала. Я же скрипт запустил, выключил терминал чтобы не сидеть перед ним - где сделка?
limit_kind в таблице depo_limit
 
Цитата
либо значение "Tx"
Это уже новая информация. Какая минимальная версия терминала, поддерживающая данную функциональность?
limit_kind в таблице depo_limit
 
И сразу возникает вопрос: как будут работать методы, где есть входной параметр limit_kind?
limit_kind в таблице depo_limit
 
Цитата
Andrey Golik написал:
Nikolay, добрый день.


Это результат перехода тестового сервера на ведение позиций по календарным датам. limit_kind = 20250116 это тоже, что и limit_kind = 0.
Сообщение в терминале увидел. Вот оно, чтобы было понятно остальным:

Здравствуйте.С 16 января сервер QUIK Junior переведен на современную схему ведения позиций - по календарным датам. Если ранее каждой позиции соответствовал код расчетов (T0, T1, T2), то теперь - конкретная дата.
Например, если сегодня 16.01.2025, значит код расчета T0 соответствует дате расчета 16.01.2025, код T1 - 17.01.2025 и так далее. Ожидается, что в будущем на эту схему перейдет большинство брокерских компаний. Кроме того, теперь расчеты по всем инструментам на сервере происходят по схеме T+1, что соответствует режиму реальных торгов на Московской Бирже.
В связи с этим в таблицах с позициями по инструментам и деньгам следует заменить параметр "Срок расчетов" на "Дата расчетов". В таблице "Состояние счета" вместо кодов расчета теперь подставляется конкретная дата.


Правда это, конечно, несколько неожиданно, не говоря уже о каких-то формальных документах. Спрашивается а как теперь для инструментов, торгуемых в разных режимах определять позицию. До этого можно было найти максимальный limit_kind и по нему фильтровать записи. И он не изменялся. Теперь же схема работы становится печальной - каждый день этот параметр будет изменяться, т.е. необходимо заново его обновлять, и это если брокеры не придумают чего-то еще. На сайте биржи да и в транслируемых данных есть показатель режима торгов для инструмента. Никаких расчётных величин нет. Зачем это, какую проблему решает это нововведение? Представляю, что ждет работающие скрипты при переходе брокеров на этот режим.
limit_kind в таблице depo_limit
 
Сегодня на тестовом контуре в таблице depo_limit получил такое:

limit_kind = 20250116

Это что? Ясно что дата. Но с какой такой... Я не слышал о новом режиме торгов в виде даты. Есть Т0, Т+1, Т+2, TOD, TOM и новое Т365, отображаемое в терминале Тх.
Дата и время позиции
 
В реальности лучше перед подачей транзакции пойти и посмотреть, что в соответствующих таблицах, рассчитать лимиты и параметры.
Проблема в том, что колбек в терминале - весьма ненадёжная вещь. Точнее в спокойные периоды работает как ожидается и может создаться ощущение, что так будет всегда.
Но бывают моменты, когда клиент-серверное взаимодействие настолько медленное - повышенная торговая активность, или просто сбой в работе сервера брокера, что эти колбеки не приходят, приходят повторно.

Так что я лучше проверю руками в самом источнике информации. Тем более, что этот контур всё равно необходимо реализовывать, например, при перезапуске скрипта. Колбеки прошли давно, а понять ситуацию необходимо сейчас.

Позицию же необходимо вести самостоятельно. Да, бывают ситуации когда сделка прошла вне работы скрипта и необходимо провести выравнивание. Но в целом, прошла сделка - запомнил. Запустил скрипт - просканировал сделки и убедился, что запомненная позиция корректна с точки зрения количества. Где запоминать - это выбор по предпочтениям. То ли в файле состояния, то ли в базе данных. Не важно. Лог файл не предназначен для хранения информации, это инструмент анализа.
как найти единый счет
 
Не видел таких проблем для единого счёта. Вы бы вывели поля каждого счёта, да посмотрели что у него в поле классов.
Как передать данные в КВИК из сторонней программы? Из Квика я отправляю через SOCKET, а в Квик не получается(((
 
Цитата
Alex написал:
Коллеги добрый день

Как передать данные в КВИК из сторонней программы??
Из Квика во внешний мир я отправляю через SOCKET сервер который я поднял на ПИТОНЕ.

А в Квик из внешнего мира не получается(((
Пишите сервере на lua, открываете наружу порт и пожалуйста. Правда смелость этого решения высока.
Народ, как подключить библиотеку HTTP ?
 
В папке socket должны быть еще файлы lua, реализующие протоколы.
Народ, как подключить библиотеку HTTP ?
 
Ищите библиотеку socket. Она поддерживает http. Безопасное соединение не поддерживает, для этого необходимы дополнительные библиотеки, в частности luasec.
Работа терминала QUIK в Wine
 
Справедливости ради - это не среда Linux. Вот если бы терминал был нативный для Linux - это было бы прекрасно.
Вынос папки Luaindicators, Luaindicators
 
Проще сделать автосинхронизацию каталогов. Изменяя базовый, остальные зеркалируются.
API-запрос из Lua для QUIK к стороннему сервису, API
 
В самом lua нет методов сетевого взаимодействия. Но Вы можете по подключить библиотеку socket (дополнительная) и уже сделать это. Правда если требуется безопасное соединение, то необходимы ещё дополнительные библиотеки, обеспечивающие это.
квик игнорит условие оператора
 
А причём здесь Квик? Где изменение данных в переменой localtime. Оно как осталось от инициализации так и не изменяется.
Версия для macbook, Способы установки
 
Цитата
Николай Калашников написал:
С этим вопрос, как его установить и почему не попробовать не написать его для макбук, и других версий 

Как пользователь MacOS уже более 15 лет был бы раз видеть это. Но так уж сложилось в мире финансов - основные профессиональные инструменты на Windows. И это не только здесь, но и по всему миру так.
Это положение изменяется  постепенно, но не в ту сторону как хотелось бы. Теперь все делается на серверах Linux как backend, а интерфейс рисуют через Web приложение, что ужасно. Это пусть для масс. Проф. участники продолжают использовать свои решения и Mac там представлен минимально.

Так что не ждите, особенно сейчас, когда доля устройств на пространстве Quik Mac мизерна. Linux даже больше. Вот для него дистрибутив не мешало бы делать, во избежание казуса, если все перестанет работать.
Ответ транзакции
 
Тестовый контур Quik Junior 11.3.2.2

Ответ транзакции:
[INFO  2024-09-18 13:13:09] : OnTransReply all trans count: 8 | sec_code SiZ4 result_msg: Ответ из торговой системы не получен, статус исполнения транзакции неизвестен. За уточнением просьба обратиться к Вашему брокеру. status: 4 trans_id: 50553350 order_num: 0 price: 80013 qty: nil account SPBFUT000i4 client_code SPBFUT000i4 firmid nil brokerref SPBFUT000i4//NTR01


Не то чтобы нужен ответ, но просто хотелось бы понять причину. Это что-то новое: запрос сделан, ответ - кто же знает что там случилось.
Минимально торгуемый объем для заявки
 
Плюс, возможно, еще нужен НКД - это параметр ACCRUEDINT
Минимально торгуемый объем для заявки
 
Для облигаций сложнее, т.к. они представлены в виде процента от номинала. Поэтому необходимы параметры:

текущая цена - LAST
номинал - SEC_FACE_VALUE

сответственно стоимость - это цена*номинал/100


класс не информационный, а торгуемый. Его можно узнать на сайте бирже или прямо в терминале в таблице текущих торгов.
Минимально торгуемый объем для заявки
 
Стоимость лота - это стоимость одного инструмента на количество бумаг в лоте. Количество в лоте - это параметр LOTSIZE.
Цена одного инструмента - это уже сложнее для части инструментов, но для акций - это просто цена.

В очередной раз инструкция, справка Квика - это вещь в себе.
Минимально торгуемый объем для заявки
 
В чем проблема через известный объем узнать число лотов и подать транзакцию?
Определение входящих остатков по инструментам на начало торговой сессии, Проблемы при определении входящих остатков по инструментам открытых позиций на начало торговой сессии
 
Возможно вопрос был про класс "неполные лоты" для которого имело бы смысл знать остаток.
сообщение в Telegram - это просто
 
Цитата
Станислав написал:
Можно делать запросы через библиотеку socket

require "socket"

http = require 'socket.http'
local url = ' https://api.telegram.org/ бла-бла/'
http.request(url)
Только не забудьте, что протокол https, т.е. требуется поддержка TSL.
сообщение в Telegram - это просто
 
io.popen в окружении терминала все равно поднимает окно.
сообщение в Telegram - это просто
 
Цитата
VargoR написал:
Вопрос только в том, как убрать мелькание командного окна.
Не использовать curl из командной строки, а написать библиотеку, клиента, реализующую обмен и передачу информации прямо через http запрос.
LuaSQL
 
Потому что подключение неправильное.

local sqlite3 = require("lsqlite3")


Смотрите примеры http://lua.sqlite.org/index.cgi/dir?ci=tip&name=examples
LuaSQL
 
Собирать надо проект http://lua.sqlite.org/index.cgi/home

Вот собранное https://github.com/nick-nh/qlua/tree/master/luasqlite3 на lua 5.4. В терминале работает.
Быстрый ввод стоп-заявки
 
Немного юмора - видимо, проблема в том, что функционал нельзя реализовать, т.к. это математический термин. Вот и не получается.
текущий современный способ сделать робота без ежемесячных расходов?
 
Цитата
Константин написал:
Я имел в виду что-то не дорогое типа
https://data.moex.com/products/algopack
Это новая реализация, пока без денег. Потом, как обычно, будет за деньги.
текущий современный способ сделать робота без ежемесячных расходов?
 
Цитата
Константин написал:
Насколько я понимаю как только биржа добавит в свой API возможность выставлять заявки заявки и исполнять их, у LUA возникнут сложности с его потребностью. Как и у QUIK
Данный API ничего не изменит, т.к. это средство для разработки. Чтобы его использовать нужен клиент, читай терминал, в том или ином виде. А самый знакомый и уже давно используемый - это Квик.
Вот если брокеры массово начнут писать свои терминалы, тогда возможно. Но это крайне маловерятно. По крайней мере для меня, терминал должен быть не как Web приложение (и даже не на C#), которые сейчас лепят везде, даже там где это бессмысленно.
текущий современный способ сделать робота без ежемесячных расходов?
 
1С как платформа для роботов - это из области использования сковородки для глажки одежды. Вот как система учета портфеля, сделок, может даже подачи транзакций через файлы и папку обмена Квик - в самый раз. Хотя и это создает ряд сложностей, т.к. это либо установка на конкретном рабочем месте, либо web клиент, что уже требует совсем других затрат на поддержание. Это не говоря уже о скорости работы 1С. Это даже хуже Питона.
текущий современный способ сделать робота без ежемесячных расходов?
 
Кажется в первую очередь выбор брокера - это стоимость его услуг, комиссий. А то какой бы ни был у него шлюз, расплачиваться придется потом.
Финам выглядит более сбалансированным, хотя стоимость сделки за контракт на срочном рынке у него уже 1 рубль, вместо 0.5 рублей. Кажется не много, ерунда. Но когда сделок под тысячу, уже не так смешно становится.
Автоматическое снятие всех заявок ПОСЛЕ разрыва соединеия?, Автоматическое снятие всех заявок ПОСЛЕ разрыва соединеия?
 
Цитата
EugeneE написал:
Здравствуйте. Возможно ли в принципе автоматическое снятие всех заявок ПОСЛЕ разрыва соединения?
Как Вы себе это представляете? Терминал - это средство подачи команд. И он отключен, т.е. не может подать команду. Это больше вопрос к брокеру, чтобы он контролировал соединения клиентов и их заявки.
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
По моим наблюдениям само число графиков не особо влияет на скорость (но потребление памяти расчет). Индикаторы, если встроенные тоже не особо влияют. А вот если масштаб графика мелкий, т.е. показывается большое число бар, уже сильно влияет. Иногда покажешь большое число бар, порядка 5-10 тыс. и интерфейс всего терминала ощутимо замедляется. Так что проверьте на своих графиках масштаб.
Необъяснимоле чудо
 
Возможно и это. Хотя после восстановления соединения, по идее, данные должны были дойти. Тем более что новые ордера устанавливались корректно, по ним данные приходили. А вот эти старые зависли.
Для обычной пользовательской работы это просто неприятная неожиданность, а вот алгоритм уже не в состоянии адекватно понять, как такое возможно.
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
Ок. 8-гб не так и много, особенно если параллельно любой современный браузер запущен. Но должно хватать, конечно.

Но я бы посоветовал сменить тему на светлую. Также, по личным наблюдениям, замедленная работа с вкладками чаще всего из-за загруженности терминала. Например, если у меня запущено много скриптов и наблюдается повышенная активность на рынке, то при переключении вкладки содержимое может не измениться, хотя новая вкладка активируется. Правда терминал не падает. Но это уже индивидуально, конечно.

Так что еще стоит проверить нагрузку терминала на систему, диск.
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
Вы бы хотя бы какую-то информацию предоставили - версия терминала, темная или светлая тема, объем оперативной памяти рабочего места, установлен ли антивирус и т.д.
Необъяснимоле чудо
 
Да, это 11.07.2024. Скрипты были включены. Снятие этих заявок приводило к ошибке о невозможности снять.

Был разрыв связи. Во время простоя заявки исполнились. Восстановление связи. Заявки остались активные. Пришли только колбеки OnTrade. Колбеки на ордера не пришли. Статусы ордеров остались активные.
Необъяснимоле чудо
 
Версия 11.3.1.2, демо-сервер ARQA

Вот такая замечательная картина. Ордера на покупку.
Куда все подевались?
 
Примеры не равнозначны, т.к. в первой реализации функции addElement есть вывод элементов, т.е. цикл.


В общем случае алгоритм с единичным действием вставки элемента имеет константную сложность O(1), а тот, где есть сдвиги - О(n). Так что даже вопроса нет что быстрее.А скорость расчета индекса - это не то, что сильно повлияет на производительность в случае О(1).
Куда все подевались?
 
Цитата
VPM написал:
Ну хорошо если знаете алгоритм, приведите пример алгоритма "самое быстрое решение это перезапись элемента и расчет очередного корректного индекса" динамически меняющего индекс, длину и веса?  
Что это значит "динамически меняющего индекс, длину и веса"? Если речь про очередь, стек, то одна задача. Если речь про хранение в массиве определенного числа элементов, скажем 100 и не более, то это другая.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 22 След.
Наверх