Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 17:34:20
Nikolay, а для чего вам знать размер очереди? Вы же не извлекаете из середины? Если организуется FIFO, то берётся первый элемент из очереди до тех пор, пока там что-то есть.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Да, но потокобезопасность - это гарантия, а не вероятность.
Я говорю, что сомнительно, что то, о чём вы пишите, вообще может произойти в Lua 5.4. Потому что там байт-код, который по определению выполняется под блокировкой.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 16:15:32
Цитата
Nikolay написал: в момент получения размера, другой поток изменит last или first
Не факт
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 15:56:33
Цитата
Nikolay написал: Потому что в момент получения размера, другой поток изменит last или first
При обращении к элементу с индексом, равным размеру очереди вы не получите nil в любом случае. В этом смысле работа с очередью потокобезопасна, если запись только - в одном потоке, а извлечение - в другом. Но, если вы одновременно добавляете элементы в разных потоках или извлекаете в разных потоках, то да, нужно код оборачивать в ssort, например.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 15:50:01
Цитата
VPM написал: ---- lifo из двусвязной очереди и пример позволят вести себя как стек - обеспечивая LIFO-порядок
Можно гораздо проще:
Код
local LIFO = {}
LIFO.__index = LIFO
function LIFO.new()
return setmetatable({}, LIFO)
end
function LIFO:push(v)
self[#self+1] = v
end
function LIFO:pop()
local idx = #self
if idx == 0 then return nil end
local v = self[idx]
self[idx] = nil
return v
end
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 15:09:23
Цитата
Nikolay написал: размер уже можно получить кривой.
Почему?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 14:15:24
Цитата
Nikolay написал: И как она стала потокобезопасной в Lua, где этого нет.
Добавление элемента в начало очереди в одном потоке не приводит к тому, что при попытке в другом потоке извлечь последний элемент возвращается nil.
Цитата
Nikolay написал: Когда я говорил о двойной очереди, я говорил именно о двух очередях.
А можно ссылку на это обсуждение?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 10:35:27
Цитата
VPM написал: -- Создание LIFO из двусвязанной очереди
table.insert / table.remove делают то же самое, только быстрее.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 02.01.2026
12.02.2026 10:11:30
Цитата
VPM написал: это же просто двойная очередь, с которой я разбирался и только ленивый меня "по столу носом не возил". Более медленный вариант, чем скажем кольцевой буфер?
А что сравнивать, если они для разных задач предназначены? Кольцевой буфер - для хранения ограниченного количества элементов. Индексация всё время сдвигается вправо. Возможно удаление и изменение элементов с любым индексом. Очередь из сообщения аналог обычной таблицы с индексацией, начиная с 1. Используется, когда надо удалять элементы в начале таблицы, т.к. table.insert с этой задачей плохо справляется.
Приколы терминала QUIK
Пользователь
Сообщений: Регистрация: 02.01.2026
11.02.2026 13:05:05
Цитата
nikolz написал: получаю большую загрузку процессора (на 8.7 такого не было) ----------------------- Тогда я удаляю свой скрипт Загрузка процессора возвращается в норму
Без обид, но вы просто не умеете программировать
свободные средства для срочного рынка на едином счете
Пользователь
Сообщений: Регистрация: 02.01.2026
11.02.2026 12:53:37
У некоторых брокеров на срочной секции комиссия = комиссии биржи. Т.е., если биржевая комиссия = 0, то и брокерская = 0. Но, если вы делаете тейкерские сделки по инструментам, где комиссия больше рубля, то очень дорого выходит.
Новый период и время проведения торгов на бирже.
Пользователь
Сообщений: Регистрация: 02.01.2026
11.02.2026 10:42:40
Какой параметр на срочной секции показывает время аукциона (8:59) и начала торгов (9:00)? STARTTIME выдаёт: "100000.000000" ("10:00:00")
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 02.01.2026
09.02.2026 20:57:14
User12501, по каким классам инструментов наблюдается? В самой таблице сделок trans_id есть?
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 02.01.2026
08.02.2026 08:52:00
Цитата
tohoki написал: поменять местами во времени реакцию на колбеки qtable_close и onstop, чтобы они обрабатывались в нормальном порядке. Именно в том, как они реально возникли.
Первым должен быть OnClose, а после - QTABLE_CLOSE.
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 02.01.2026
07.02.2026 14:49:27
Цитата
tohoki написал: и при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP
Значит main завершился раньше. Надо ставить таймаут в конце main с ожиданием сигнала из OnClose / OnStop. Если по завершении этого времени сигнал не получен, считать, что таблица закрыта пользователем.
Цитата
tohoki написал: такая архитектура приводит к тому, .что нормальное человеческое событийное программирование придется разбавлять невнятным винегретом из каких то переменных и непонятных таймаутов с потолка.
написал: при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.
Всё с точностью до наоборот.
Может такое произойти, что скрипт остановится раньше, чем будет получен колбэк OnStop / OnClose (когда терминал долго закрывается, например).
Может ли уменьшиться количество свечей на графике в течение дня?
Пользователь
Сообщений: Регистрация: 02.01.2026
05.02.2026 19:06:46
Сегодня в 10:12 на минутном графике Сбербанка (TQBR) CreateDataSource показала 66725 свечей. После я перезагрузил QUIK (12.8.3), а когда подключился к тому же серверу, то свечей стало меньше - 65776 (в 10:59). Через час, в 11:59 - 65836 свечей.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
Пользователь
Сообщений: Регистрация: 02.01.2026
04.02.2026 18:10:47
А, разобрался: функция Squeeze возвращает индекс в массиве "по кольцу" в пределах заданного периода.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 02.01.2026
04.02.2026 15:06:07
Цитата
TGB написал: могут быть участки скрипта критичные по времени выполнения, на которых они имеют возможность отключать, но потом восстанавливать сборку мусора.
Можете привести пример кода, где отключение сборщика мусора увеличит его выполнение? А то у меня наблюдается ровно обратная ситуация.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 02.01.2026
03.02.2026 17:14:48
Цитата
TGB написал: Разработчик скрипта может в какой-то момент отключить на какое то время уборку мусора
Можно. А зачем?
Лишние вызовы OnAllTrade
Пользователь
Сообщений: Регистрация: 02.01.2026
02.02.2026 18:50:57
Часть сделок прилетает повторно. Воспроизводится не всегда. Но, если в окне, где перезаказывали обезличенные сделки, нажать кнопку "Сохранить", то вероятность повторного получения сделок выше.
Лишние вызовы OnAllTrade
Пользователь
Сообщений: Регистрация: 02.01.2026
02.02.2026 17:20:47
При перезаказе обезличенных сделок суммарное количество вызовов OnAllTrade больше, чем есть сделок на самом деле. QUIK-Junior 12.8.3 и 12.5.0
Код
local run = false
function OnStop()
run = nil
end
local a = 0
function OnAllTrade(alltrade)
if run ~= true then return end
a = a + 1
end
function main()
local n, m
while run ~= nil and 0 < getNumberOf("all_trades") do -- ожидание перезаказа обезличенных сделок
n = getNumberOf("all_trades")
sleep(1)
end
if run ~= nil then
run = true
message("start: " .. a)
repeat
sleep(1)
m = getNumberOf("all_trades")
until not run or n <= m
run = false
message("getNumberOf: " .. m .. "\nOnAllTrade: " .. a)
end
end
Результат:
Цитата
getNumberOf: 194038 OnAllTrade: 239930
В таблице обезличенных сделок количество совпадает с тем, что показывает getNumberOf.
Вообще-то есть. Но куда она выводит текст - не понятно.
Проблема с нажатием правой кнопки
Пользователь
Сообщений: Регистрация: 02.01.2026
31.01.2026 22:23:04
Цитата
Anton Belonogov написал: Мы можем зарегистрировать пожелание на доработку ПО для добавления такой возможности в будущих версиях.
А толку?
Задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте
Пользователь
Сообщений: Регистрация: 02.01.2026
31.01.2026 18:02:49
В Lua сделать возможным задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте.
Пояснение: Сейчас, если в Lua-скрипте, заданы функции обратного вызова, в частности OnAllTrade, OnParam, OnQuote, то они будут вызываться для всех инструментов, данные по которым поступают в терминал, что влечёт высокий оверхэд на вызов этих самых колбэков. Под вызовом колбэков понимается именно их вызов терминалом. Не путать с исполнением Lua-кода пользовательской функции.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
Пользователь
Сообщений: Регистрация: 02.01.2026
31.01.2026 17:34:27
Цитата
nikolz написал: измеряете время от входа в колбек до входа в функцию main.
Ясно, к вам вопросов больше нет. Очевидно (но, видимо, не всем), что таким образом не возможно измерить время, затрачиваемое на вызов колбэка. Не путать со временем исполнения кода пользовательской функции колбэка.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
Пользователь
Сообщений: Регистрация: 02.01.2026
31.01.2026 14:07:33
Цитата
nikolz написал: На него затрачивается не более 5 мкс.
Интересно, как вы это измерили?
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 02.01.2026
31.01.2026 10:46:56
Нужно ли при завершении скрипта принудительно вызывать collectgarbage()?
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
Пользователь
Сообщений: Регистрация: 02.01.2026
30.01.2026 19:26:49
Оверхед от вызова колбэков высокий, независимо от кода внутри колбэка. Я вот думаю отказаться от OnAllTrade совсем. Да и от OnParam стоило бы отказаться, поскольку при включении "умного" заказа данных, терминал тянет данные почти по всем классам. Но в этом случае придётся постоянно в main опрашивать на наличие новых данных по инструментам, что отрицательно скажется на производительности.
Передача данных из скрипта в скрипт QUIK или приложение
Пользователь
Сообщений: Регистрация: 02.01.2026
30.01.2026 16:51:57
Цитата
Nikolay написал: mmap позволяет делать отражение в памяти
Какую библиотеку используете?
limit_kind в таблице depo_limit
Пользователь
Сообщений: Регистрация: 02.01.2026
30.01.2026 11:19:10
Цитата
Anton Belonogov написал: В зависимости от установленной на сервере схемы позиции учитываются либо по срокам расчетов (T0, T1), либо по датам. Это взаимоисключающие параметры, сервер транслирует на терминалы только один из них
@#ять
Очереди и двойные очереди в луа, Пример из книги Р.Е.
Пользователь
Сообщений: Регистрация: 02.01.2026
28.01.2026 11:46:39
Цитата
Nikolay написал: Открываете пример MA.lua, например расчет SMA, и видите использование массива sum равного длине периода.
Да нет, вроде, в sum хранятся значения по всем свечам:
Код
function F_SMA()
local sum = {}
local it = {p=0, l=0}
return function (I, P, VT, ds)
if I == 1 then
sum = {}
it = {p=0, l=0}
end
if CandleExist(I,ds) then
if I~=it.p then it={p=I, l=it.l+1} end
local Ip,Ipp,Ippp = Squeeze(it.l,P),Squeeze(it.l-1,P),Squeeze(it.l-P,P)
sum[Ip] = (sum[Ipp] or 0) + GetValueEX(it.p,VT,ds)
if it.l >= P then
return (sum[Ip] - (sum[Ippp] or 0)) / P
end
end
return nil
end
end
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 02.01.2026
26.01.2026 12:30:35
В некоторых скриптах я запускаю сборку мусора collectgarbage('collect') при смене торговой сессии. В каком потоке это целесообразно делать: в OnCleanUp или в main?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Какие варианты? Например, хранить данные портфеля в файле и не начинать торговлю, пока данные в квике не совпадут с нашими?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Пользователь
Сообщений: Регистрация: 02.01.2026
22.01.2026 11:11:38
Цитата
Nikolay написал: брокер может разорвать соединение, вызвать OnClenUp
OnConnected может быть вызван и без разрыва соединения. И это штатная ситуация.
Цитата
OnConnected
Функция вызывается терминалом QUIK при установлении связи с сервером QUIK и получении терминалом описания хотя бы одного класса. Если в течение торгового дня терминал получает новый класс, то функция вызывается еще раз, при этом параметр вызова flag принимает значение «false».
Но, если брокер разорвал соединение и перезапустил шлюзы с очисткой данных, то OnConnected будет вызван с флагом true. Получается в скрипте нужно хранить информацию об обработанных заявках/сделках, как минимум, до смены торговой даты.
После обновления на версию 12.8.3.4 появился глюк в таблице "купить-продать", Глюк с фильром инструментов в таблице
Пользователь
Сообщений: Регистрация: 02.01.2026
19.01.2026 12:09:28
Как тут скрины вставлять - не понял. Ivan Smirnov, нажмите "Цитировать" на моём сообщении. Там скрин с настройкой.
После обновления на версию 12.8.3.4 появился глюк в таблице "купить-продать", Глюк с фильром инструментов в таблице
Пользователь
Сообщений: Регистрация: 02.01.2026
19.01.2026 12:07:26
Ivan Smirnov, [img]data:image/png;base64,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[/img]
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Не обратил внимание на данный нюанс. У меня скрипт очищает таблицы при получении OnClenUp. Надо будет внести правки в скрипт.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 02.01.2026
15.01.2026 22:22:06
Цитата
Ziveleos написал: MARKET_STOP_LIMIT = "YES" и позиция закроется по рынку.
В отсутствии встречных заявок рыночная заявка будет отклонена, лимитная - встанет в стакан в очередь. Если выставлять стоп-заявку с ценой исполнения на уровне верхней/нижней планки, то тоже есть нюанс: уровни планок постоянно меняются. Сегодня вы поставили стоп с одной ценой, а завтра при срабатывании стопа планка будет другой, и заявка может оказаться за пределами планок, и будет отклонена.
Нули в индикаторе там, где должны быть пустые интервалы
Пользователь
Сообщений: Регистрация: 02.01.2026
14.01.2026 12:32:33
Такая же история, если в настройках диаграммы поставить галку "Показывать пустые интервалы". Стандартный индикатор экспортируется нормально, а самописный (код ) - с нулями там, где ничего не должно быть.
Драг энд Дроп в стакане не работает
Пользователь
Сообщений: Регистрация: 02.01.2026
12.01.2026 21:51:38
Сделать опциональный параметр, чтобы пользователь мог сам выбрать один из: 1) передвигать первую заявку; 2) передвигать последнюю заявку; 3) объединять все заявки в одну.
Cкорость обмена данными через файлы
Пользователь
Сообщений: Регистрация: 02.01.2026
11.01.2026 14:46:31
nikolz, так что, не знаете как в QLua синхронизировать запись из разных скриптов в один файл?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Один из программистов этого робота по секрету поделился, что они не успели протестировать алгоритм, но начальник приказал его запускать в бой. Сказано - сделано.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Пользователь
Сообщений: Регистрация: 02.01.2026
10.01.2026 18:24:15
Цитата
VPM написал: мой алгоритм оставленный мной без присмотра, поймал какую то ошибку (уже и не припомню причину) наделал столько заявок, что брокер заблокировал канал, а затем выставил штраф.
Я думаю, тут надо какую-то защиту "от дурака" реализовывать: типа, при превышении заданного порога количества ошибочных транзакций подряд, останавливать скрипт до выяснения причин.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Пользователь
Сообщений: Регистрация: 02.01.2026
10.01.2026 17:51:45
Цитата
Nikolay написал: А во время простоя исполнились ордера, то колбеки пропущены
Ещё раз:
Цитата
Йцукен написал: При запуске скрипта обработка таблиц происходит в OnInit.
Цитата
Nikolay написал: Если только при запуске Вы сами не проверите что изменилось в таблицах с прошлого запуска.
Скрипт сохраняет, допустим, номер своей активной заявки или id транзакции в файл. И при запуске он в состоянии проверить результат транзакции/заявки, пробежав однократно по соответствующим таблицам.
Цитата
Nikolay написал: брокер может разорвать соединение, вызвать OnClenUp и тогда приедут ВСЕ колбеки с начала сессии
Да и пофиг: скрипт запомнил, какие заявки/сделки (в т.ч. и те, что были в таблицах при запуске скрипта) он обработал и дубли проигнорирует.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Пользователь
Сообщений: Регистрация: 02.01.2026
10.01.2026 17:17:44
Цитата
TGB написал: Обработка перезапусков скрипта по любой неконтролируемой вами причине у вас не предусмотрена? Пока он перезапускается заявки на бирже могут быть выполнены, а коллбеки пропущены.
При запуске скрипта обработка таблиц происходит в OnInit. Соответственно, все новые колбеки будут получены и обработаны после выхода из OnInit.
Цитата
TGB написал: Вы предполагаете что и коллбеки в работающем скрипте не теряются?
Если колбеки потеряются, то и данные в таблицах квика не будут заполняться.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
Пользователь
Сообщений: Регистрация: 02.01.2026
10.01.2026 13:55:24
Цитата
TGB написал: можно проверять циклически, по изменению их размеров, нужные вам таблицы QUIK (таблицы заявок, стоп-заявок, сделок и т.д.)?
Думаю такой подход сложнее, чем обработка колбеков. На примере данной ситуации: если пришедший колбек не содержит значения нужных мне параметров, то я его пропускаю и жду колбек, который их содержит. В случае же обработки таблиц вместо колбеков, нужно хранить не просто индекс последней обработанной строки таблицы, а индексы всех обработанных строк либо общее количество строк и индексы необработанных строк (пропущенных по причине отсутствия в них значений нужных параметров). И циклически проверять, не появились ли новые значения в пропущенных строках.