Йцукен (Все сообщения пользователя)

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

Страницы: 1 2 След.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Nikolay, а для чего вам знать размер очереди? Вы же не извлекаете из середины?
Если организуется FIFO, то берётся первый элемент из очереди до тех пор, пока там что-то есть.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
Цитата
Йцукен написал:
Не факт
Да, но потокобезопасность - это гарантия, а не вероятность.
Я говорю, что сомнительно, что то, о чём вы пишите, вообще может произойти в Lua 5.4. Потому что там байт-код, который по определению выполняется под блокировкой.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
в момент получения размера, другой поток изменит last или first
Не факт
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
Потому что в момент получения размера, другой поток изменит last или first
При обращении к элементу с индексом, равным размеру очереди вы не получите nil в любом случае. В этом смысле работа с очередью потокобезопасна, если запись только - в одном потоке, а извлечение - в другом.
Но, если вы одновременно добавляете элементы в разных потоках или извлекаете в разных потоках, то да, нужно код оборачивать в ssort, например.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
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), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
размер уже можно получить кривой.
Почему?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
И как она стала потокобезопасной в Lua, где этого нет.
Добавление элемента в начало очереди в одном потоке не приводит к тому, что при попытке в другом потоке извлечь последний элемент возвращается nil.

Цитата
Nikolay написал:
Когда я говорил о двойной очереди, я говорил именно о двух очередях.
А можно ссылку на это обсуждение?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
-- Создание LIFO из двусвязанной очереди
table.insert / table.remove делают то же самое, только быстрее.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Йцукен написал:
table.insert
* table.remove
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
это же просто двойная очередь, с которой я разбирался и только ленивый меня "по столу носом не возил". Более медленный вариант, чем скажем кольцевой буфер?
А что сравнивать, если они для разных задач предназначены?
Кольцевой буфер - для хранения ограниченного количества элементов. Индексация всё время сдвигается вправо. Возможно удаление и изменение элементов с любым индексом.
Очередь из сообщения #699 аналог обычной таблицы с индексацией, начиная с 1. Используется, когда надо удалять элементы в начале таблицы, т.к. table.insert с этой задачей плохо справляется.
Приколы терминала QUIK
 
Цитата
nikolz написал:
получаю большую загрузку процессора (на 8.7 такого не было)
-----------------------
Тогда я удаляю свой скрипт
Загрузка процессора возвращается в норму
Без обид, но вы просто не умеете программировать  :lol:
свободные средства для срочного рынка на едином счете
 
У некоторых брокеров на срочной секции комиссия = комиссии биржи. Т.е., если биржевая комиссия = 0, то и брокерская = 0.
Но, если вы делаете тейкерские сделки по инструментам, где комиссия больше рубля, то очень дорого выходит.
Новый период и время проведения торгов на бирже.
 
Какой параметр на срочной секции показывает время аукциона (8:59) и начала торгов (9:00)?
STARTTIME выдаёт: "100000.000000" ("10:00:00")
Не приходит полная версия OnTrade
 
User12501, по каким классам инструментов наблюдается?
В самой таблице сделок trans_id есть?
onstop и колбек пользовательского окна
 
Цитата
tohoki написал:
поменять местами во времени реакцию на колбеки qtable_close и onstop, чтобы они обрабатывались в нормальном порядке. Именно в том, как они реально возникли.
Первым должен быть OnClose, а после - QTABLE_CLOSE.
onstop и колбек пользовательского окна
 
Цитата
tohoki написал:
и при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP
Значит main завершился раньше. Надо ставить таймаут в конце main с ожиданием сигнала из OnClose / OnStop. Если по завершении этого времени сигнал не получен, считать, что таблица закрыта пользователем.

Цитата
tohoki написал:
такая архитектура приводит к тому, .что нормальное человеческое событийное программирование придется разбавлять невнятным винегретом из каких то переменных и непонятных таймаутов с потолка.
Да.
onstop и колбек пользовательского окна
 
Цитата
Ziveleos написал:
У меня так:
Автору надо, чтобы скрипт останавливался при закрытии таблицы.
onstop и колбек пользовательского окна
 
Цитата
Ziveleos написал:
Цитата
tohoki написал:
при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.
Всё с точностью до наоборот.
Может такое произойти, что скрипт остановится раньше, чем будет получен колбэк OnStop / OnClose (когда терминал долго закрывается, например).
Может ли уменьшиться количество свечей на графике в течение дня?
 
Сегодня в 10:12 на минутном графике Сбербанка (TQBR) CreateDataSource показала 66725 свечей.
После я перезагрузил QUIK (12.8.3), а когда подключился к тому же серверу, то свечей стало меньше - 65776 (в 10:59). Через час, в 11:59 - 65836 свечей.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
А, разобрался: функция Squeeze возвращает индекс в массиве "по кольцу" в пределах заданного периода.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Цитата
TGB написал:
могут быть участки скрипта критичные по времени выполнения, на которых они имеют возможность отключать, но потом восстанавливать сборку мусора.
Можете привести пример кода, где отключение сборщика мусора увеличит его выполнение?
А то у меня наблюдается ровно обратная ситуация.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Цитата
TGB написал:
Разработчик скрипта может в какой-то момент отключить на какое то время уборку мусора
Можно. А зачем?
Лишние вызовы OnAllTrade
 
Часть сделок прилетает повторно. Воспроизводится не всегда. Но, если в окне, где перезаказывали обезличенные сделки, нажать кнопку "Сохранить", то вероятность повторного получения сделок выше.
Лишние вызовы OnAllTrade
 
При перезаказе обезличенных сделок суммарное количество вызовов 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.
Скрипт правильно ли написан
 
Цитата
Ziveleos написал:
в qlua нет функции print
Вообще-то есть. Но куда она выводит текст - не понятно.
Проблема с нажатием правой кнопки
 
Цитата
Anton Belonogov написал:
Мы можем зарегистрировать пожелание на доработку ПО для добавления такой возможности в будущих версиях.
А толку?
https://forum.quik.ru/messages/forum10/message48510/topic5808/#message48510
https://forum.quik.ru/messages/forum10/message42293/topic4921/#message42293
https://forum.quik.ru/messages/forum1/message58929/topic6811/#message58929
Задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте
 
В Lua сделать возможным задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте.

Пояснение:
Сейчас, если в Lua-скрипте, заданы функции обратного вызова, в частности OnAllTrade, OnParam, OnQuote, то они будут вызываться для всех инструментов, данные по которым поступают в терминал, что влечёт высокий оверхэд на вызов этих самых колбэков.
Под вызовом колбэков понимается именно их вызов терминалом. Не путать с исполнением Lua-кода пользовательской функции.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
nikolz написал:
измеряете время от входа в колбек до входа в функцию main.
Ясно, к вам вопросов больше нет.
Очевидно (но, видимо, не всем), что таким образом не возможно измерить время, затрачиваемое на вызов колбэка. Не путать со временем исполнения кода пользовательской функции колбэка.
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
Nikolay написал:
Цитата
Йцукен написал:
OnAllTrade
Этот колбек самый опасный.
В каком смысле?
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Цитата
nikolz написал:
На него затрачивается не более  5 мкс.
Интересно, как вы это измерили?  :shock:
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
 
Нужно ли при завершении скрипта принудительно вызывать collectgarbage()?
Проблемная работа программы с луа роботами, Проблемная работа программы с луа роботами
 
Оверхед от вызова колбэков высокий, независимо от кода внутри колбэка.
Я вот думаю отказаться от OnAllTrade совсем.
Да и  от OnParam стоило бы отказаться, поскольку при включении "умного" заказа данных, терминал тянет данные почти по всем классам. Но в этом случае придётся постоянно в main опрашивать на наличие новых данных по инструментам, что отрицательно скажется на производительности.
Передача данных из скрипта в скрипт QUIK или приложение
 
Цитата
Nikolay написал:
mmap позволяет делать отражение в памяти
Какую библиотеку используете?
limit_kind в таблице depo_limit
 
Цитата
Anton Belonogov написал:
В зависимости от установленной на сервере схемы позиции учитываются либо по срокам расчетов (T0, T1), либо по датам.
Это взаимоисключающие параметры, сервер транслирует на терминалы только один из них
@#ять :evil:
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
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)
 
В некоторых скриптах я запускаю сборку мусора collectgarbage('collect') при смене торговой сессии.
В каком потоке это целесообразно делать: в OnCleanUp или в main?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
Nikolay написал:
дождаться их загрузки
Какие варианты?
Например, хранить данные портфеля в файле и не начинать торговлю, пока данные в квике не совпадут с нашими?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
Nikolay написал:
брокер может разорвать соединение, вызвать OnClenUp

OnConnected может быть вызван и без разрыва соединения. И это штатная ситуация.
Цитата
OnConnected

Функция вызывается терминалом QUIK при установлении связи с сервером QUIK и получении терминалом описания хотя бы одного класса. Если в течение торгового дня терминал получает новый класс, то функция вызывается еще раз, при этом параметр вызова flag принимает значение «false».

Но, если брокер разорвал соединение и перезапустил шлюзы с очисткой данных, то OnConnected будет вызван с флагом true.
Получается в скрипте нужно хранить информацию об обработанных заявках/сделках, как минимум, до смены торговой даты.
После обновления на версию 12.8.3.4 появился глюк в таблице "купить-продать", Глюк с фильром инструментов в таблице
 
Как тут скрины вставлять - не понял.
Ivan Smirnov, нажмите "Цитировать" на моём сообщении. Там скрин с настройкой.
После обновления на версию 12.8.3.4 появился глюк в таблице "купить-продать", Глюк с фильром инструментов в таблице
 
Ivan Smirnov,
[img]data:image/png;base64,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[/img]
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
Nikolay написал:
вызвать OnClenUp
Не обратил внимание на данный нюанс. У меня скрипт очищает таблицы при получении OnClenUp.
Надо будет внести правки в скрипт.
Рыночная заявка для торговли фьючерсами
 
Цитата
Ziveleos написал:
MARKET_STOP_LIMIT = "YES" и позиция закроется по рынку.
В отсутствии встречных заявок рыночная заявка будет отклонена, лимитная - встанет в стакан в очередь.
Если выставлять стоп-заявку с ценой исполнения на уровне верхней/нижней планки, то тоже есть нюанс: уровни планок постоянно меняются. Сегодня вы поставили стоп с одной ценой, а завтра при срабатывании стопа планка будет другой, и заявка может оказаться за пределами планок, и будет отклонена.
Нули в индикаторе там, где должны быть пустые интервалы
 
Такая же история, если в настройках диаграммы поставить галку "Показывать пустые интервалы".
Стандартный индикатор экспортируется нормально, а самописный (код выше) - с нулями там, где ничего не должно быть.
Драг энд Дроп в стакане не работает
 
Сделать опциональный параметр, чтобы пользователь мог сам выбрать один из:
1) передвигать первую заявку;
2) передвигать последнюю заявку;
3) объединять все заявки в одну.
Cкорость обмена данными через файлы
 
nikolz, так что, не знаете как в QLua синхронизировать запись из разных скриптов в один файл?
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
nikolz написал:
А как Вам это
Бывает.
Сбой в работе алгоритмической системы одного из участников торгов фьючерсами на доллар/рубль на бирже ММВБ-РТС мог принести владельцу максимальный убыток в $4,3 миллиона.
Один из программистов этого робота по секрету поделился, что они не успели протестировать алгоритм, но начальник приказал его запускать в бой. Сказано - сделано.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
VPM написал:
мой алгоритм оставленный мной без присмотра, поймал какую то  ошибку (уже и не припомню причину) наделал столько заявок, что брокер заблокировал канал, а затем выставил штраф.
Я думаю, тут надо какую-то защиту "от дурака" реализовывать: типа, при превышении заданного порога количества ошибочных транзакций подряд, останавливать скрипт до выяснения причин.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
Nikolay написал:
А во время простоя исполнились ордера, то колбеки пропущены
Ещё раз:
Цитата
Йцукен написал:
При запуске скрипта обработка таблиц происходит в OnInit.

Цитата
Nikolay написал:
Если только при запуске Вы сами не проверите что изменилось в таблицах с прошлого запуска.
Скрипт сохраняет, допустим, номер своей активной заявки или id транзакции в файл. И при запуске он в состоянии проверить результат транзакции/заявки, пробежав однократно по соответствующим таблицам.

Цитата
Nikolay написал:
брокер может разорвать соединение, вызвать OnClenUp и тогда приедут ВСЕ колбеки с начала сессии
Да и пофиг: скрипт запомнил, какие заявки/сделки (в т.ч. и те, что были в таблицах при запуске скрипта) он обработал и дубли проигнорирует.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
TGB написал:
Обработка перезапусков скрипта по любой неконтролируемой вами причине у вас не предусмотрена? Пока он перезапускается заявки на бирже могут быть выполнены, а коллбеки пропущены.
При запуске скрипта обработка таблиц происходит в OnInit. Соответственно, все новые колбеки будут получены и обработаны после выхода из OnInit.

Цитата
TGB написал:
Вы предполагаете что и коллбеки в работающем скрипте не теряются?
Если колбеки потеряются, то и данные в таблицах квика не будут заполняться.
Извечный вопрос: повторные вызовы OnTrade, Даже при заявке на одну акцию
 
Цитата
TGB написал:
можно проверять циклически, по изменению их размеров, нужные вам таблицы QUIK (таблицы заявок, стоп-заявок, сделок и т.д.)?
Думаю такой подход сложнее, чем обработка колбеков.
На примере данной ситуации: если пришедший колбек не содержит значения нужных мне параметров, то я его пропускаю и жду колбек, который их содержит.
В случае же обработки таблиц вместо колбеков, нужно хранить не просто индекс последней обработанной строки таблицы, а индексы всех обработанных строк либо общее количество строк и индексы необработанных строк (пропущенных по причине отсутствия в них значений нужных параметров). И циклически проверять, не появились ли новые значения в пропущенных строках.
Страницы: 1 2 След.
Наверх