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

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

Страницы: Пред. 1 ... 36 37 38 39 40 41 42 43 44 45 46 ... 72 След.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Старатель написал:
К сожалению, движок этого чудо-форума не позволяет редактировать заголовки тем или сообщения.
С учётом  полученной раннее информации  заголовок темы должен выглядеть так:

Высокая нагрузка CPU в QUIK 9 при вызове колбеков в скриптах, которые содержат много переменных или хранят большое количество элементов в таблицах.

_sk_, посмотрите мои сообщения на первой странице и комментарий Антона  #16 .
Суть в том, что сам по себе вызов колбеков при большом количестве хранимой информации создаёт огромную нагрузку вне зависимости от кода внутри колбека и параллельно выполняющейся работы в main. Отмечу, что объём хранимых данных (в байтах) не имеет значения. Нагрузка пропорциональна  количеству  данных.
Обратите внимание также на тест в  сообщении #19 . Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте.
А тормоза в GUI, которые вы наблюдаете, - скорее всего уже следствие, а не причина.

ЗЫ: версии библиотек qlua.dll, lua53.dll, lua54.dll в QUIK 9.3.3 не изменились по сравнению с QUIK 9.3.1
Колбеки выполняются в основном потоке терминала КВИК,
Поэтому, когда у Вас исполняется колбек терминал КВИК курит бамбук.
Если Вашему main надо данные получаемые основным потоком, то ваш main тоже курит бамбук.
и не важно сколько у вас ядер, все ждут основной поток, а тот ждет когда ваш колбек закончит ....  
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
Kalmar написал:
Блин. Прочитал страшное.
Теперь хочется вывести все деньги и засунуть их в матрас.
А у меня стоит галочка "не использовать мои средства в интересах брокера". Это спасет мир или нет?
Не смешите мои тапочки.
Основной доход брокера не в комиссии, а в использовании денег и бумаг клиентов.  
-------------------------
Аналогично как у банков, только еще более прибыльней.
------------------------
Мир спасет любовь.
-----------------
Проблема запуска QUIK
 
Проблему решил.
Всем спасибо.
Проблема запуска QUIK
 
windows 10  
Проблема запуска QUIK
 
Привет, разработчики КВИК.
Возникла проблема.
Квик работал, работал и настал кирдык.
-----------------------------------
Брокер сбарбанк
-----------------
версия квик 8.7.1.3
-------------------  
Соединение с сервером двухфакторное.
--------------------------
При запуске КВИК
получаю сообщение в окне сообщений:

Connection was closed by peer: Can’t get messege size from net.

И все. Соединения нет.
Что делать?
Спасибо
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
из истории брокерского движения.
Ранее для манипуляций с деньгами клиентов использовалось физ лицо - доверенное лицо всех клиентов, потом юр лицо - пустышка - доверенное лицо всех клиентов.
В настоящее время солидные брокеры создают для этой цели свой банк и офшорную фин компанию.
Все успехов на бирже.  
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
и еще
нет никакой разницы какое это юр лицо, так как за деньги клиентов отвечает лишь брокер и лишь в том случае,
если Вы через доблестные органы докажите,  что был умысел со стороны брокера.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Объясняю  буратинам популярно , чтобы не было мучительно больно.
-------------------------
Брокер оказывает Вам услуги посредника на рынке ценных бумаг.
Это означает, что он от своего имени по вашему поручению и за ваши деньги выставляет заявки на совершение сделок. Это все.
Сами сделки заключает биржа , исполнение  сделок совершает клиринговая компания.
------------------------
Все средства клиентов брокер отображает на забалансовом счете.
Это значит, что эти средства не контролируются налоговыми, ни службой мониторинга фин операций, а лишь иногда проверяются ЦБ и контролируется биржей на предмет достаточности у брокера средств.
-----------------------
Брокер использует средства и бумаги клиентов на собственные нужды и по собственному желанию.
--------------------
Заявки клиента брокер исполняет лишь при наличии возможности  (Понимайте это в широком смысле т е от "проспал", до "послал" )
--------------------
регистрация и исполнение заявок клиентов производится брокером в грос.бухе .
Т е в специально придуманной книге регистрации заявок, по которой клиенту направляется отчет, который является основанием для удержания комиссии.
--------------------  
Пример из обычной жизни:
Вам надо купить бутылку водки, самому идти в магазин нельзя, посылаете соседа , даете деньги и говорите что купить.
В результате -может и купит, а может и нет. Деньги -может вернет, а может и нет.
----------------
Ну вот и все.
Медленный вывод в таблицы QLua через SetCell
 
Цитата
Владимир написал:
_sk_, О, Господи! Только я уже раз 20 советовал в разных местах: "Не пользуйтесь вы таблицами Квика - есть же таблицы Луа"! Да и с таблицами Квика что за проблемы? В моей главной обычно 20-30 тысяч ячеек, и почти все они проходят не только SetCell, но и SetColor.

Ах, "Скрипты надо запускать одновременно". Ну вот она и причина всех тормозов! А у меня "local nRow обычно порядка 1000 (и может сильно меняться, если установлены какие-то фильтры), а вот "local nCol" как раз порядка 30.

И ещё один тормоз навскидку: что, при каждом выводе таблицы она набивается InsertRow? К меня так только после изменения количества строк в ней, что происходит довольно редко (при внесении нового тикера в портфель, удалении из него или при установке/снятии каких-то фильтров).
можете показать время исполнения скрипта при текущих торгах  ?
Спасибо
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
_sk_ написал:
Цитата
Упомянутый код демонстрирует проблему в QUIK 9.3.1.11. В QUIK 9.3.3.3 QLua 5.4 эта конкретная проблема устранена.
Это хорошо. Полагаю, что разработчики это тоже подтвердили бы, если бы провели разбор проблемы качественно.

Цитата
...  если в колбеках, есть обращение к функциям API QLua, то все запущенные  скрипты рабочего места QUIK, могут выстраиваться в очередь к  синхронизуемым ресурсам QUIK (по которым в ранних версиях QUIK, возможно  синхронизации вообще не было), что эквивалентно их работе в одном  потоке.

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

Цитата
Правильно я понимаю, что у Вас три терминала КВИК работают и каждый сделал по 12 потоков, а у Вас всего 8 ядер ?

Нет. В процессоре всего имеется 8 ядер. Каждый из 3-х терминалов грузит полностью одно ядро процессора (архитектура терминала такая). Дополнительная нагрузка собственно от Lua минимальна. Основная беда, похоже, с тем, как отрабатывают функции QLua, заставляющие терминал что-то отрисовывать. Что-то там внутри терминала с синхронизациями при доступе к общим ресурсам не так. Пока неясно, как бы это в явном виде продемонстрировать.
понятно.
не раз писал , что надо сворачивать окна, которые не смотрите, чтобы ускорить работу КВИК.
-------------------------
Относительно числа ядер для одного КВИК.
У меня квик ( 8 версия) без скриптов использует 8 потоков.
Как я понимаю, разработчики используют рекомендации что число потоков не более чем удвоенное число ядер.
-------------------------
Как Вы определили, что у Вас каждый КВИК занимает одно  ядро?
При одном ядре число потоков не рекомендуется делать быть более 2.  Так как это лишь тормозит работу процессора.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
_sk_ написал:
Дополню, что при этом нагрузка на ядро процессора (i7-9700K) максимальная (100% / 8 ядер = 12.5%).
Правильно я понимаю, что у Вас три терминала КВИК работают и каждый сделал по 12 потоков, а у Вас всего 8 ядер ?
Стоп лосс с задержкой
 
Цитата
NoneB написал:
Первая производная графика цены = скорость изменения цены, а ее единицей измерения могут  быть   USD/сек, Руб/сек или др.
Например, средние скользящие линии являются первыми производными  Производная (математическое понятие)
Среднее скользящее вычисляется как среднее суммы N значений на шагом T,
а первая производная - это  примерно разность значений c шагом  T.
-------------------------
Ау, Что тут общего?
Labels
 
Цитата
s_mike@rambler.ru написал:
Скрипт на луа, выставляющий 2 метки на один график

Попробуйте увеличить длину и различие имен файлов.
Редактор для LUA
 
Цитата
Владимир написал:
nikolz, Ну, конечно, конечно - скрипт работает у меня, дерёт, как котов всех местных умников и по памяти, и по производительности, и по прибыли, и по количеству тикеров и таймфреймов, а заблуждения - у меня! ::  Естественно, Ваши "объяснения скорее не для меня, а для начинающих" - я же их просто размажу по стенке - даже не читая! Но ведь я сейчас Ваш опус и читать буду!..

1) Да неужели?! Во-первых, а что такое "скриптовый язык"? Тыкаем в первую попавшуюся ссылку в Гугле - там аж "Обзор скриптовых языков программирования", и первый же раздел называется "Понятие о скриптовых языках", и первая же фраза в нём гласит:
В любой дискуссии есть как минимум два способа высказать свое мнение.
В первом случае , высказывающий пытается унизить , обозвать и нахамить, полагая, что таким образом он доказывает свое превосходство.
Этот способ в человеке заложен природой на уровне подсознания.
Во втором способе, высказывающий пытается высказать свое понимание и свою логику по обсуждаемой , т е дать собеседнику новую информацию, не унижая его, а разъясняя ему.
-------------------------------
Сожалею, что Вы сторонник первого способа беседы.
=====================
Вы опять заблуждаетесь.
------------------
Что такое скриптовый язык.
В моем понимании скрипт - это  программа , которая исполняется на виртуальной машине в  псевдокоде.  Как правило такую программу не надо явно компилировать и линковать.
Достоинство таких языков в том, что виртуальная машина может быть установлена на любом железе и нет надобности под это железо переписывать пользовательские программ.
Классический пример - это  джава.
---------------------
Теперь про множество скриптовых языков
Проблема в быстродействии и объеме требуемой памяти для развертывания виртуальной машины.
До луа не было ничего подобного, что можно было бы развернуть на микроконтроллерах.
Потом появился микро питон.
--------------------------
Относительно ваших рассуждений относительно того что и как у вас делают между собой скрипты, то тут Вы тоже ошибаетесь.
-----------------------
Есть такая технология в разработке сложных систем, называемое - системным подходом.
Американцы использовали его в разработке программы космических полетов на Луну.
Его эффективно применять для создания любых систем и устройств.
------------------------
Если кратко , то основа его в том, что любую систему проектируют сверху вниз, а реализуют снизу вверх.
Применительно к  программированию - язык программирования не имеет никакого значения в начале создания системы.
Оптимальный язык выбирается на этапе реализации, а не на этапе проектирования.
----------------------  
Поэтому при разработке алгоритма нет никаких скриптов, так как скрипт - это лишь программа на псевдокоде.
 
Трейлинг- стоп. Как протестировать на quik?
 
Цитата
Egor Denisov написал:
Здравствуйте. Хочу у себя реализовать lua скрипт реализующий функцию трейлинг-стопа с защитным временем. Вопрос в следующем: как правильно поступить, чтобы получить ситуацию, когда цена инструмента делает прокол на несколько процентов и возвращается обратно в течение 1-2 секунд. На игровых серверах таких ситуаций может и не быть совсем. Как моделировать и тестировать такие ситуации?
Можно сделать это в КВИК, а можно и без него
==================  
Для начала надо создать тестовые данные.
----------------------
Выбираем на истории нужный участок  и пишем его в файл,
можно скачать данные истории с сайта финам
или вывести из терминала КВИК
--------------------------
Далее можно корректировать тестовые данные создавая различные движения цены.
==========
После этого пишем свою функцию стопа.
--------------------------
Затем выполняем ее тестирование.
=================
Вариант в терминале КВИК.
----------------------------
Вставляем свою функцию в КВИК например в индикатор
и подменяем реальную цену торгов значением из текстового файла.
======================
Вариант без КВИК.
удобно делать в редакторе SciTe,  в котором можно исполнять скрипты.
----------------
в SciTe пишем свою функцию и исполняем ее с тестовыми данными из файла
--------------------
Примерно так.
А графики в Квике не настоящие!!!
 
Цитата
Александр написал:
Я тоже не планировал в это сильно углубляться и как мне казалось вопрос задал максимально просто: "Почему официально день считается от клиринга(19:00) до клиринга(19:00) а в квике по своему"
Речь не про то, что именно я или кто-то другой считает для себя истиной, у каждого свой метод как Вы и сказали, речь про то, что та информация которая выводится в квике абсолютно для всех не верна согласно алгоритму построения свечей БИРЖЕЙ.
В том числе и поэтому на форуме переодически и создаются темы "о неверных графиках"
попробую объяснить.
--------------------------
Есть два разных периода торговых дня - для акций и для фьючерсов.
В квике реализован расчет свечей лишь для акций.
Т е акции и фьючерсы по расчету периода торговых свечей не различаются.
Проще сказать, что начало периода торговых свечей считается от 00:00:00 и никак не связан с периодом торгового дня.
------------------
Почему так?
Ну так сделали, изначально.
---------------------------------------------------  
Свечи - это фильтр и алгоритм их реализации каждый делает как хочет.
Исходный данные - это сделки.
А как Вы их потом уродуете - это дело интимное.
Редактор для LUA
 
Цитата
Владимир написал:
И я уже несколько раз говорил, что я чуть ли не единственный на этом форуме, кто программирует на чистом Lua,


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

29.09.2020 10:31:16
Убрать тип integer из языка, на мой взгляд, есть самая большая дурость. Ладно, бог с ним, с никому не нужным boolean - пусть будет, если нравится, но с целочисленными переменными я за долгие годы программирования (а я уже пенсионер!) работал раз в 10 чаще, чем с вещественными! Если не во все сто.

Ребятки, доступ по ключу - это не прямой, а как раз КРИВОЙ доступ к данным! Даже если обозвать ключи "индексами". Уши бы надрать этому "Роберто Иерусалимскому!

Какие "индексируемые таблицы" - побойтесь Бога! Мне чуть ли не с первого дня стало очевидно, что тут постоянно путают индексы и имена, что является источником многочисленных глюков - в том числе, и в основном ПО Квика (таблица заявок, я об этом не раз писал). Язык отвратителен, и только за убийство типа integer и замену его на вонючий "тип number" создателей нельзя подпускать к компу ближе, чем на километр - об этом и о многом другом я тоже писал. Как и о том, что синтаксис, про который Вы здесь соловьём заливаетесь, вообще не имеет значения - профессионалу всё равно, на каком языке писать, была бы обеспечена требуемая функциональность.

Строки НЕЛЬЗЯ "индексировать как таблицы", какие бы не делать "финты ушами": индекс - это НЕ имя, и об этом я тоже писал буквально в первых же своих постах (а Ваш убогий "финт ушами" эмулирует обращение по индексу как массива, а не "как таблицы", и абсолютно бесполезен - разве что для пущего оверхеда).
Попробую объяснить Ваши заблуждения, но скорее не для Вас, а для начинающих.
-----------------------------
1) Луа - это скриптовый язык и он имеет вполне определенною область применения.
Подобно микроскопу, который можно применять и в качестве молотка для забивания гвоздей, но не так эффективно.
---------------------------
Назначение чистого луа  - это быстрое  и простое тестирование идей и алгоритмов, создание диалоговых интерфейсов для устройств и программ.
Т е чистый луа -это инструмент для быстрой разработки программ взаимодействия компьютера и человека.
-----------------------------
Все функции в библиотеках Луа написаны на чистом СИ, поэтому они работаю быстро.
-------------------------------
Для реализации более сложных и быстродействующих задач предназначен язык СИ и API C for Lua.
===================  
Создание торговых роботов в КВИК - это задача создания систем реального времени.
В реализации этой системы условно можно выделить три задачи.
----------------------
1 задача, это интерфейс с человеком.  И эту задачу легко и эффективно решать на чистом Луа.
-----------------------
2 задача, это задача взаимодействие робота с биржей , сервером брокера и терминалом QUIK.  
Эту задачу разработчики реализовали на СИ в виде библиотеки QLUA.  т е программ на чистом СИ взаимодействующие с VM Lua через API C for Lua.
-----------------------
3 задача, это разработка и реализация алгоритма работы робота.
Не сложно понять, что наиболее эффективно этот алгоритм можно реализовать лишь на СИ, т е как задачу 2.
Но дело в том, что пользователи Луа не есть профессиональные программисты.
Но Луа позволяет им тоже заняться творчеством и написать собственные, пусть и не оптимально реализованные алгоритмы.
--------------------  
Поэтому ранее я Вам пытался объяснить, что на чистом луа  сложные алгоритмы  пишут,  либо профи для быстрой реализации идеи, чтобы ее протестить,
либо чайники  , которые горды собственным невежеством и не сомневаются в собственной гениальности.  
================  

Теперь объясню немного Ваши заблуждения относительно реализации Луа внутри.
Судя по Вашим гневным рассуждениям, Вы не разбирались в исходниках VM Lua.
-----------------------------
Все переменные (кроме данных в таблицах)  имеют именно прямой доступ. Они представляют собой структуры
В этой структуре есть 32 бит (или 64 бит) слово, которое содержит целую, вещественную, булев. переменные. а также указатель на таблицу или функцию.
Если Вы используете API C for Lua, то Вы получаете прямой доступ к ним.    
Замечу, что указатель - это и есть любимое Вами целое.
---------------  
Но для чайников эти возможности, по вполне понятным причинам, недоступны на чистом Луа.  Доступ чайникам к целому типу в версиях 5.3 создало  кучу  вопросов на этом форуме.
Так как чайник не читает документации - потому что он чайник .
----------------------
Теперь про Выши гневные опусы о строках текста.
В луа строки текста заменяются изначально на их хеш - 32(64) любимое Вами целое число .
А далее, во всей вашей программе , где вам надо сравнивать сортировать строки, участвуют не строки, а эти числа. Т е обработка строк происходит также быстро как обработка целых чисел.
Ну и где Вы видели более компактное и эффективное решение?
-----------------------
В итоге, если вы присвоите элементу таблицы имя , то луа сделает для него целое число- хэш и далее для извлечения этого элемента будет использовать это целое как индекс в массиве.
====================  
Не буду более рассказывать об интересных и эффективных решениях в VM Lua. Кому интересно, читайте исходники.
==========================  
В результате - Луа самый компактный и быстрый из скриптовых языков. Его  легко встраивать в любые системы, в том числе и на одном чипе.
Конечно, есть множество языков программирования и каждый из них создавался для определенных задач и имеет определенную область эффективного применения.
=========================
И в завершение моего ликбеза, замечу, что в КВИК встроили луа именно для расширения интерфейса для пользователя, а не для создания торговых роботов.
------------------------
Поэтому не стоит на зеркало пенять...
Редактор для LUA
 
Цитата
Владимир написал:
nikolz,
Цитата
SciTe - написан на луа, есть встроенный  компилятор и отладчик
Убийственная характеристика редактору! Лучше помню только фразу Кернигана из статьи "Почему Паскаль не является моим любимым языком программирования":  "Три из четырёх известных мне компиляторов с Паскаля написаны на Си". ::  
специально для Вас из Вики:
--------------------------------
По идеологии и реализации язык Lua ближе всего к JavaScript, в частности, он также реализует прототипную модель ООП, но отличается паскалеподобным синтаксисом и более мощными и гибкими конструкциями. Характерной особенностью Lua является реализация большого числа программных сущностей минимумом синтаксических средств. Так, все составные пользовательские типы данных (массивы, структуры, множества, очереди, списки) реализуются через механизм таблиц, а механизмы объектно-ориентированного программирования, включая множественное наследование — с использованием метатаблиц, которые также отвечают за перегрузку операций и ряд других возможностей.
Lua предназначен для пользователей, не являющихся профессиональными программистами, вследствие чего большое внимание уделено простоте дизайна и лёгкости обучения. Язык широко используется для создания тиражируемого программного обеспечения (например, на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (в том числе Garry's Mod)[10].
Редактор для LUA
 
Цитата
Владимир написал:
nikolz,
Цитата
SciTe - написан на луа, есть встроенный  компилятор и отладчик
Убийственная характеристика редактору! Лучше помню только фразу Кернигана из статьи "Почему Паскаль не является моим любимым языком программирования":  "Три из четырёх известных мне компиляторов с Паскаля написаны на Си". ::  
Видно, что Вы не в теме.
У Вас получается типа - "кина не видел, но считаю , что говно"
---------------------------  
На луа написан не только редактор но и многие  игры а также системы управления нефтяным оборудованием и приборами (Собственно для этого его и создавали изначально).
-----------------
Так как SciTe написан на луа, то пользователь может легко добавить свои плюшки и быть до .... счастливым и радостным.
Редактор для LUA
 
SciTe - написан на луа, есть встроенный  компилятор и отладчик
Изменение настроек (Settings) внутри кода индикатора, В окне свойств пользовательских настроек не отображается новое значение
 
В качестве совета.
Вне зависимости от тайма графика , в индикатор приходят все тики или почти все.
Но чтобы алгоритм действительно работал по свечам, а не по тикам, ставьте  фильтр работы алгоритма по началу(концу) свечи
 
Изменение настроек (Settings) внутри кода индикатора, В окне свойств пользовательских настроек не отображается новое значение
 
Цитата
Александр написал:
nikolz, перезагрузка скрипта в любом случае приведет к сбросу параметров на начальные значения. это не "сохранение параметров settings", файл lua-скрипта индикатора оно не перезапишет
я их меняю в режиме редактирования, но программно, и новые значение не отображаются в диалоговом окне настроек индикатора, хотя индикатор работает по новым значениям, и нажатие кнопки ОК или Применить затрёт эти изменения на старые даже если открыта другая вкладка настроек графика
согласитесь, неправильно, когда переменная Settings.Offset равна 50, и рисуется 50, а настройках написано, что 30, и нажатие ОК запишет в нее 30 и будет рисоваться 30
возможно, я Вас не понял. Но у меня нет проблем с settings.
Обнаружение айсбергов в стаканах
 
Цитата
Vladimir написал:
Здравствуйте. В общем есть идея написать бота который бы сообщал о том, что цена инструмента подошла к айсбергу. Реализацию я представляю следующим образом: перехватывает рыночные заявки, если лимитка была 90 и после проедания она обновилась до >= 1000 (и такое происходило 2 раза подряд), то будет выведено сообщение..

Может существуют возможности Quik и QLua которые бы предложили альтернативу?
Подобные идеи  реализуют HFT роботы, но не на КВИКЕ
Установка QUIK на Linux под Wine, Проблемы с актуальными на сегодняшний день версиями
 
Цитата
Андрей написал:
новичок, печально, что вы всё ещё живёте в прошлом веке… г...г...
Увы, в раю все будут использовать лишь отечественное, а они просто сдохнут.
Торговый скрипт встроенный в индикатор
 
Цитата
Евгений написал:
Торговый скрипт встроенный в индикатор, вроде там есть какие то функции .
Кто нибудь пробовал делать такое ? Есть там какие то проблемы ?
Проблем нет. Все работает быстро. Делать проще.
Алгоритм любой сложности.
Изменение настроек (Settings) внутри кода индикатора, В окне свойств пользовательских настроек не отображается новое значение
 
считаю , что сохранение изменений параметров  settings не следует делать по следующей причине.
setting - это параметры скрипта по умолчанию.
Их изменения в режиме редактирования  позволяет выполнить подбор более лучших параметров.
Но если параметры подобрать не удалось, то перезагрузка скрипта возвращает все в начальное состояние.
----------------------
Если делать смену начальных параметров в процессе редактирования,
то автоматический возврат к начальным параметрам станет невозможным.
 
Указанная транзакция по указанному классу не найдена: "TQBR".
 
Цитата
Aleksandr написал:
Цитата
Указанная транзакция по указанному классу не найдена: "TQBR".

строка, возвращаемая sendTransaction ^

Подтвердите кто-нибудь плиз что для акций такого не реализовано.
может для начала документацию почитаете?
там все написано черным по белому на русском языке.
Скрипт для перезапуска другого скрипта
 
Цитата
Владимир написал:
Nikolay, Есть и четвёртый вариант: написать скрипт на чистом Lua, вообще не пользоваться никакими dll и не перезапускать скрипт никогда. Всегда так делаю. ::  
есть много готовых библиотек написанных на СИ и следовательно работающих на порядок быстрее, чем на чистом луа.
Да и сомневаюсь я что-то, что Вы сможете написать на чистом луа, например, torch7,
который написан на основе  библиотек для научных расчетов  на фортране, которые имеют обертки на СИ .
-------------------  
Библиотеки на чистом луа - это для чайников.
Скрипт для перезапуска другого скрипта
 
Цитата
Aleb написал:
Добрый день. Никогда сам не писал на LUA, но есть скрипт который тащит за собой DLL и который постоянно и неприлично увеличивает размер используемой памяти. Подскажите, можно ли написать скрипт, который бы перезапускал первый скрипт допустим раз в день в определенное время. Буду признателен, если кто-то напишет пример, полагаю что если возможно, то это пара строчек. Спасибо
Прикольно.
Написать не можете, но заранее знаете , что это пара строчек.  
ММ заполняет стакан заявками в 1 шаг цены, Фокусы маркетмейкера
 
Цитата
D7DSk написал:
Маркетмейкер заполняет весь стакан заявками с ничтожными количествами  на покупку и проджажу почти на каждый шаг цены. Информацмонная ценность такого стакана резко падает.И  периодически дергает стакан  вверх-вниз удалением-вставкой строк на определенных позициях, но это менее важно.

Что можно сделать для понимания обстановки ?
MM получает деньги от биржи, если цена бьет в его заявки, так как его нанимает биржа, чтобы уменьшить спред.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:

Ещё более смешны разговоры о безопасности применительно к браузеру - ведь это всего лишь паршивая прикладная задача. Более того - та самая, которая постоянно лазит по всяким помойкам, и тащит в рот всякую гадость. И Вы поверили, что именно эту программу и отрядили, чтобы "противостоять попыткам проникновения в систему"?! ДА КАКОЕ ЕЁ СОБАЧЬЕ ДЕЛО?! Пусть ковырятся в своей выделенной песочнице - и дело с концом Успокойтесь господа! Все эти "шпионские страсти" и "вирусные инфекции" - ничто, по сравнению с кошмариками в исполнении тупорылых "защитничков" - вот кого нам действительно следует бояться! С другой стороны, бояться какого-то тупорылого стада... стыд и позор! Так что успокойтесь господа. Если вам всё равно страшно - накапайте себе валерьянки. Или выпейте водки. Или возьмите топор, да изрубите ваш комп в капусту. Или хотя  бы послушайте, что говорят про безопасность сами тупорылые - да, да, те самые, которые вас и пугают!
Эта характеристика сколь важна, столь и сложна в оценке. К сожалению, здесь нет (!) четких критериев, а каждое (!) исследование вызывает подозрения со стороны как пользователей, так и экспертов. Поэтому говорить собственно о безопасности браузера пока преждевременно (!). В общем-то, и материалов на эту тему найти не удалось (!).
Как видим, никто даже и не знает, что такое "безопасность браузера" - так, мычат что-то невразумительное насчёт "результатов ежегодных хакерских соревнований, на которых предлагается взламывать браузеры". Так чего же вы все так дружно обоср... испугались-то, господа? Да разве тупорылые дадут нас в обиду? Смотрите:
Вопрос сохранности частной жизни (!) приобретает особую (!) важность: если за ваш (!) компьютер кто-то (!) сел... Но работы над совершенствованием различных аспектов безопасности браузеров не прекращаются, и новые решения появляются практически в каждой (!) очередной версии. Все современные браузеры поддерживают приватный режим функционирования, в котором не сохраняются (!) следы посещённых веб-сайтов. Кроме того, реализован механизм, блокирующий на веб-страницах элементы, следящие (!) за перемещением пользователя. Полезная новинка - автоматическое упрощение URL в том случае, когда реальное имя сайта назначения передается (как правило, злонамеренно) в качестве параметра.
Примеры можно приводить бесконечно - от подобной бредятины Интернет просто ломится. Тем не менее, сказка про безопасность остается одной из самых популярных. Ну нельзя же быть настолько тупыми, господа!
(...)
Так что же это за таинственные "новые технологии", которые, оказывается, даже умудрились "войти в обиход"? Назовёт мне хоть кто-нибудь, хоть когда-нибудь, хотя бы одну? А вдруг окажется, что о них И НЕ НАДО было "думать"? Вдруг о них перестанут думать уже к выходу следующей версии браузера? А ведь перестанут - зуб даю! И куда, скажите на милость, подевались СТАРЫЕ технологии? Зачем их сп... гхм... украли?
Адаптировать браузер также не имеет смысла: придётся ограничить или вообще убрать практически все нововведения, так что он потеряет и свои преимущества.
Огласите весь список, пжалста! Хоть "нововведений", хоть "преимуществ". И вы немедленно убедитесь, что список этот даже не смехотворно мал - он просто-напросто ПУСТ! Ну нельзя же быть настолько тупыми, господа!
(...)
Война браузеров (грязная, беспощадная!) действительно была, я её и сам видел. Но она была между NN и IE! И в этой войне любые технические нюансы, достоинства и недостатки самих браузеров, не имели НИ МАЛЕЙШЕГО значения! А весь этот нынешний ублюдочный зоопарк из оперных хромированных лис есть лишь ИМИТАЦИЯ войны, лишь разводка для лохов. Я понимаю - вся эта погань из W3C и ниже мечтает рулить финансовыми потоками, она только на этом поганом клиенте ворует бабло десятками миллиардов долларов. НО НАМ-ТО КАКОЕ ДО ЭТОГО ДЕЛО?! Воруют - да и хер бы с ними, но они же еще и СРАТЬ ПРИХОДЯТ НА НАШИ КОМПЫ! Ну почему вы это терпите?! Ну нельзя же быть настолько тупыми, господа!
(...)
Был такой анекдот: "Абрам - нас, кажется, учат коммерции"! Не нужно считать одну из самых успешных компаний толпой идиотов: разводка для быдла КЛАССНАЯ! Дать им возможность почувствовать собственную состоятельность, поспорить, повыдвигать предложения, как нужно писать браузер... Они относятся к юзеру с полнейшим презрением - и правильно: он такого отношения более, чем заслуживает. Пока зомбированное быдло считает себя продвинутыми пользователеми, бизнес тупорылых будет успешным. Ну нельзя же быть настолько тупыми, господа!
(...)
Можно, например, проводить разнообразные тесты на "качество" браузеров. И неважно, что подобные тесты никогда не охватывают весь стандарт, неважно, что сами спецификации всё ещё находится на стадии обсуждения, и номинальная их поддержка мало о чем говорит, неважно, что на других аналогичных тестах результаты и лидеры могут быть совершено иными! Теперь можно вываливать на вконец одуревшего юзера ещё порцию макулатуры в стиле: Полезность такой новинки, как голосовой ввод, сомнительна, зато (!) она демонстрирует возможности HTML5. Надо признать, что и в этом лохотроне тупорылые одержали блестящую победу - мы лишь дружно надуваем щёки, да с важностью покачиваем головами: "Да, да, HTML5 - это круто, это прорыв". Ну нельзя же быть настолько тупыми, господа!
(...)
Тупорылые успели так загадить клиента, что знаменитые Авгиевы конюшни выглядят на этом фоне чуть ли не благоухающим садом! Одних только лохотронов о браузере (о каждом из которых можно писать многотомные опупеи) бесчисленное множество - файловая система и менеджер вкладок, плагины и расширения, меню и библиотеки, редактирование и поиск, графика и анимация, асинхроность и синхронизация, тормоза и глюки, не говоря уже про более конкретный зверинец: DOM, jQuery, GWT, AJAX, PHP, SEAM, Wicket, Greasemonkey, Silverlight, и прочую мерзость. Но ведь нужно же когда-то заканчивать статью!

А теперь замените "браузер" на QUIK и перечитайте ещё раз. ::  
Прикольно.
---------------------
Опус типа:
"все телеги - говно.
А теперь замените слово телеги на любое другое существительное и прочитайте еще раз."
---------------------
"Тех, кто был особо боек,
Прикрутили к спинкам коек —
Бился в пене параноик,
Как ведьмак на шабаше.."
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
Цитата
nikolz написал:
VMLua - никакого отношения к КВИКУ не имеет.
    Ну и как вы объясните 16-ти кратную разницу времени выполнения скрипта ?:
1) В QUIK 8.13.1.16 (QLua 5.4)  T = 0,00016 ;      
2) В QUIK 9.3.1.11 (QLua 5.4)  T = 0,0026  ??? (в 16,25 раз дольше)
    -----

Вам не лень всякий раз цитировать комментарии пользователей полностью?
Не можете удержаться перед халявой?
Вы же так можете разорить АРКУ на накопителях базы форума  ::
Я Вам ранее пытался объяснить расхождение в Вашем тесте, но Вы очевидно не увидели.
-----------------------------
Поясню еще раз.
Вы проверяете две различные задачи Причем в каждой из них Вы в отдельно открытом потоке исполняете цикл 1 млн раз.
---------------------------------------
Винда это многозадачная операционная система. Для каждой задачи дается интервал с квантом не менее 10 мс.
---------------------------------------------
Если выделенный квант для задачи исчерпан, но задача не завершилась, то OC выгрузит ее текущее состояние и загрузит другую задачу потом следующую и так по очереди с учетом приоритетов.
--------------------  
Таким образом время исполнения Ваших циклов зависит не только от скорости VMLua, но и от наличия других задач и служб ОС .
------------------------  
Хотите корректно протестить используйте HiResTimer
его квант измерения времени  исполнения составляет примерно 0.1 мкс. Он позволит Вам не делать миллион циклов для измерения времени исполнения
Но при этом Вы увидите, что результаты будут изменятся от измерения к измерению.
--------------------------  
Но хочу обратить  внимание на тот факт, что в Вашем тесте нет функций из библиотеки QLUA
Т е Вы тестируете ядро VMLua, а его разработчики КВИК ставят без своих костылей на основе исходников LUA.
------------------------
Скрипт продолжает работать после выключения терминала, разрыва соединения, снятия всех сделок, После разрыва соединения со стороны брокера, скрипт не остановился и продолжает работать, не ясно как выключить
 
Цитата
boolean.rat написал:
возможно, создалась некая очередь на транзации у брокера, что и исполняется, пока не закончилась, если верна догадка, были ли другие подобные прецеденты, есть ли инструмент у конечного пользователя эту очередь очистить, не ожидая брокера?
вообще-то это называется DDoS атака.
Но вы ее неправильно организовали,
поэтому сервер брокера не упал,
а брокер очевидно терпеливый.  
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
s_mike@rambler.ru написал:
Цитата
_sk_ написал:
Очень хочется увидеть ответ от разработчиков по поводу изучения данной проблемы, хотя бы после новогодних праздников. Ниже описывается пример, как большое количество таблиц может появляться в реальной программе.

Предположим, что скрипту нужно хранить в памяти для работы 3000 свечей (сколько отдаёт сервер при запросе данных по ликвидным инструментам) по 10 инструментам и 5 таймфреймам. Время свечи QLua отдаёт в виде таблицы

 
Код
    datetime   =   { year   =     2021  , month   =     12  , day   =     30  , hour   =     11  , min   =     0  , sec   =     0  , ms   =     0  , mcs   =     0  ,   ..  . }
    
 
Соответственно, сразу же имеем 3000 * 10 * 5 = 150 000 таблиц. А если скриптов несколько, то можно ещё на порядок увеличить количество таблиц в памяти.

Конечно, конкретно здесь можно закодировать дату в виде строки "2021-12-30T11:00:00.000" или вообще числом 20211230110000000 для эффективности, но придётся писать код для выделения из этого числа отдельных полей, и арифметика даты/времени станет неудобной.

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

_sk_,

вы видите проблему, где ее нет

function main()
t = {}
for i = 1,150000 do
t = os.time()
end
while true do
sleep()
end
end

запустите, посмотрите размер занимаемой памяти.
"И Остапа понесло"
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
Цитата
nikolz написал:
попробуйте исполнить Ваш тест вне квика и сравните время исполнения.
  Предложение почти гениальное, особенно с учетом того, что обуждается проблема производительности скриптов в QUIK  ::
 У вас нет понимания, что при встраивании Lua в QUIK его разработчиком вносятся изменения, которые способны изменить встроенного Lua?

Цитата
nikolz написал:
Дело в том, что в ваш пример некорректный.0.00016  это 160 us0.0026 это 2.6 ms
   Переведите все в терасекунды и вам все станет понятнее  ::

Цитата
nikolz написал:
У Вас тест VMLua.
   Спасибо. А то я этого не знал  ::
Судя по Вашему нытью Вы этого не знаете.
-----------------------
VMLua - никакого отношения к КВИКУ не имеет.
-------------------------
Разработчики КВИКА ничего в нее не добавляют и не являются авторами VMLua.
-----------------------------
Поэтому Ваши претензии не по адресу.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Можете пояснить какое отношение этот тест имеет к QLUA библиотеке?
Что в нем из нее используется.
У Вас тест VMLua.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
Цитата
nikolz написал:
Правильно я понял, что Вы сравниваете 0.16 ms v 0.26 ms в разных задачах?
   Вы поняли неправильно.  Задача одна и та же. Версии QUIK разные.
 Читайте:
Цитата
nikolz написал:
1) В QUIK 8.13.1.16 (QLua 5.4)  T = 0,00016 ;      
2) В QUIK 9.3.1.11 (QLua 5.4)  T = 0,0026  ??? (в 16,25 раз дольше)
Можете пояснить какое отношение этот тест имеет к QPUA библиотеке?
Что в нем из нее используется.
У Вас тест VMLua.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
Цитата
nikolz написал:
Правильно я понял, что Вы сравниваете 0.16 ms v 0.26 ms в разных задачах?
   Вы поняли неправильно.  Задача одна и та же. Версии QUIK разные.
 Читайте:
Цитата
nikolz написал:
1) В QUIK 8.13.1.16 (QLua 5.4)  T = 0,00016 ;      
2) В QUIK 9.3.1.11 (QLua 5.4)  T = 0,0026  ??? (в 16,25 раз дольше)
попробуйте исполнить Ваш тест вне квика и сравните время исполнения.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
Цитата
nikolz написал:
Правильно я понял, что Вы сравниваете 0.16 ms v 0.26 ms в разных задачах?
   Вы поняли неправильно.  Задача одна и та же. Версии QUIK разные.
 Читайте:
Цитата
nikolz написал:
1) В QUIK 8.13.1.16 (QLua 5.4)  T = 0,00016 ;      
2) В QUIK 9.3.1.11 (QLua 5.4)  T = 0,0026  ??? (в 16,25 раз дольше)
Было бы неплохо, если бы Вы писали ед изм.
----------------------  
Но особой разницы в числе нулей нет.
---------------------
Дело в том, что в ваш пример некорректный.
0.00016  это 160 us
0.0026 это 2.6 ms
А минимальный квант времени задачи это 10 ms или 10 000 us
------------------  
У вас миллион циклов
Поток, исполняющий эти циклы может иметь низкий приоритет
и будет прерываться системой  
которая будет выгружать эту задачу
-----------------------
У меня к Вам вопрос.  С какой погрешностью Вы измерили эти величины?
или иначе какая стабильность этих показаний?
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
TGB написал:
В ниже приведенном коде выделена строка символами ###, которая в QUIK 9.3.1.11 (QLua 5.4) выполняется в 16,25 раз дольше чем в QUIK 8.13.1.16 (QLua 5.4)
 Где поддержка??
Код
   --- Загрузка CPU --- 
IsRun  =   true 
 function   main ()
     local  T
    local  hour  =   0 , N
   N  =   1000000 
     ------------------- 
     while  IsRun  do  
       T  =   os.clock () 
       for  i  =   1 , N  do  hour  =  {}  end       
      T  =  ( os.clock ()  - T)  *   1000  / N      ---- ### !! Без подключения к серверу: 1) В QUIK 8.13.1.16 (QLua 5.4)  T = 0,00016 ;      
                                                                 ---                                                         2) В QUIK 9.3.1.11 (QLua 5.4)  T = 0,0026  ??? (в 16,25 раз дольше) 
       message  (tostring(T))
         sleep ( 500 )  
     end 
     ------------------ 
 end    
   
 function   OnStop ()
     IsRun  =   false 
     return   10000    
 end 
   
Правильно я понял, что Вы сравниваете 0.16 ms v 0.26 ms в разных задачах?
Но время минимального кванта для задачи 10 ms.  
Т е вы сравниваете величины разность которых можно объяснить затратами на выгружения одной задачи и загрузкой другой или разностью  приоритетом задач или  минимальным квантом времени для исполнения задачи.
Иначе говоря, особенностями обслуживания данных задач операционной системой.
Еще один вопрос про потоки
 
Цитата
Коc написал:
Здравствуйте.
Кто может подсказать как идет поток ордеров в таблице обезличенных сделок, например одномоментно  в 10:10:00 прошло 7 продаж (7 строк) 20 контрактов, 18, 15, 10 и 5. Эти 7 строк в ленте отображаются разом или каждая строчка по отдельности только очень быстро?    
присылают блоком вот  поэтому видите разом но с разным временем.
количество в блоке зависит от интенсивности торгов.
-----------------------  
исследовать реальную задержку можно сравнивая время сделок с временем сервера точного времени.
Попробуйте и увидите много интересного.  
Добавить временную метку в потоках маркет-даты
 
Цитата
r написал:
Цитата
Daniil Pozdnyakov написал:
Касательно времени в потоке Level 2. Параметр времени не транслируется, однако можно использовать функцию getInfoParam("SERVERTIME ") для получения  времени сервера. Подробно об этом написано в документе QLUA.chm в разделе "Сервисные функции" в соответствующем пункте "getInfoParam".

Получая данный параметр, Вы можете сравнивать его с текущим временем на  локальной машине. Таким образом, Вы сможете проверить, насколько  актуальную информацию Вам прислал сервер.

Daniil Pozdnyakov, поясните, какая связь между Level 2, ТТТ и временем сервера. Заодно и nikolz почитает для общего развития.

Также поясните, чьё время указано в свечах по параметрам из ТТТ, кто и в какой момент проставляет это время?
Увы,Вы невнимательно читаете
Про свечи я указал что данные приходят с опозданием до 10 секунд. т е свеча на графике появляется когда время сервера брокера, время  сервера точного времени уже на 10 секунд отстоит от времени свечи, которое и есть время сервера точного времени.  
Рекомендую изучить алгоритм формирования свечи.
Trans2Quik + DDE пропускает котировки
 
Цитата
Михаил Филимонов написал:
Цитата
nikolz написал:
  предположу что проблема в поделке на C#.  
Поэтому задайте вопрос автору этой поделки.
----------------------------------------------
Для чистоты эксперимента сделайте экспорт Вашей таблицы по DDE без костылей на C#
Какая разница С# или что-то другое?
Не все сделки передаются по DDE из таблицы "Текущие торги"
Что пришло по DDE, то и записалось.
А сегодня, по BR-1.22 направление сделки указано не верно (Таблица всех сделок)
разница следующая.
DDE передает данные в формате EXCEL  
В поделке на C# реализовано преобразование этого формата и запись данных в память.
Как это реализовано нигде нет
------------------  
В прошлой жизни еще до по явления в КВИКЕ луа я использовал именно DDE и свой клиент-сервер для получения данных
много исследовал результаты работы DDE
Никаких пропусков никогда не наблюдал.
--------------------  
Поэтому еще раз советую сделать экспорт данных по DDE непосредственно в Excel и сравнить результаты.
как за AddLabel() отметку цены
 
Вам ехать или шашечки на дверь?
Шкала времени
 
Цитата
Николай-77 написал:
Добрый день!
Нельзя ли сделать, чтоб шкала времени занимала поменьше места? Например, как в МТ5, NT8 и мн. др. терминалах? А то сейчас у Квика соотношение полезной площади окна (где собственно цена) к площади всего окна графика пожалуй самое маленькое среди большинства терминалов - это не есть хорошо.
p/s Про то, что шкалу времени можно совсем отключить, я в курсе.
Можно поставить второй  монитор и вынести на него  окно графика.  
 
Не понятная ошибка помогите, луа самп тут, (exception) and (error)
 
Цитата
Fasmin написал:
Script died due to an error
Цитата
Fasmin написал:
(exception) update.luac: error reading ini file: D:\SAMP\CLEAR SBORKA SAMP\moonloader\script_update.ini: cannot open file[17:34:47.955073] (error) update.luac: D:\SAMP\CLEAR SBORKA SAMP\moonloader\update.luac:0: attempt to index global 'updateIni' (a nil value)stack traceback: D:\SAMP\CLEAR SBORKA SAMP\moonloader\update.luac: in function  [17:34:47.955073] (error) update.luac: Script died due to an error. (0F3649BC)
Вам система говорит, что
ошибка при чтении ini-файла: D:\SAMP\CLEAR СБОРКА SAMP\moonloader\script_update.ini: не удается открыть файл
[17:34:47.955073] (ошибка) обновление.luac: D:\SAMP\CLEAR СБОРКА SAMP\moonloader\update.luac:0: попытка индексировать глобальный "файл обновления" (нулевое значение)
Странная ошибка в скрипте с автообновлением., Ошибка: D:\SAMP\CLEAR SBORKA SAMP\moonloader\update.luac:0: attempt to compare nil with number
 
а Вы форумом не ошиблись?
Доступные скрипты, Значки для скриптов с ошибками
 
Цитата
Старатель написал:
Сделать другие значки для скриптов:
1) остановившихся в результате ошибки;
2) в которых возникла ошибка, но скрипт продолжил работу (ошибка в колбеке)
прикольно.  
-----------------  
3)  сообщать на форуме все теплые материнские слова об авторе такого скрипта и сопровождать эти сообщения гудком паровоза.  
Добавить временную метку в потоках маркет-даты
 
Цитата
r написал:
Цитата
s_mike@rambler.ru написал:
миллисееундв найдете. Микросекунды тоже
У вас значения ms и mcs для параметров бывают отличны от нуля?
Но вопрос в том, чье время там проставлено (явно не биржевое) и насколько ему можно доверять?
Не может ли случиться так, что сервер пришлет старые данные, а время проставит текущее?
синхронизируйте компьютер с сервером точного времени и получите время биржи с погрешностью не более 10 ms (при соответстующих настройках винды)
потом можете сравнить с временем сервера и потока сделок.
-------------------------  
На основе собственного опыта могу сказать, что время сервера брокера с точным временем совпадает в пределах погрешности.
А вот данные по свечам обычно отстают , иногда до 10 секунд.  
Прибавить к текущей дате 30 дней (или произвольное кол-во дней)
 
Цитата
Иван написал:
Как на языке луа сделать прибавление текущей даты + 30 дней (или произвольное кол-во)?
А учебник почитать слабо?  
Страницы: Пред. 1 ... 36 37 38 39 40 41 42 43 44 45 46 ... 72 След.
Наверх