Предварительная проверка наличия в базе Quik инструмента (опциона), Subscribe_Level_II_Quotes и getParamEx не существующего опциона приводят к зависанию Quik
написал: Т е читайте любой из указанных параметров и проверяйте его на вшивость.
я это пробовал задолго до того как тут на форуме вопрос задать.
Проверял и на пустую строку и то что в значении число и что оно не nul Но всё равно Quik намертво виснет.
Вероятно он виснет не на этапе getParamEx, а ещё ранее и где именно - абсолютно непонятно. Но происходит это точно в тот момент когда в Quik обновляются данные и появляются сдохнувшие опционы. Памяти скрипт ест - 8-15мб - не более.
Может какой то кэллбэк есть "инструмент исключён из базы" ??
как я понял Вы используете вывод по dde. Я тоже с ним работаю, но сервер у меня свой на СИ. поэтому пару слов по особенностям этого вывода. Так как это может быть причиной зависания. -------------- В документации по применению DDE в квик, есть указание (место не помню где, но действительно влияет на результата вывода) что нельзя использовать фильтры в таблице если она выводится по DDE. Поэтому для начала отключите все фильтры на выводимой по DDE таблице. ------------- Кроме того, зависание возможно по причине некорректной обработки пустых строк в вашем приложении DDE Примерно так.
Передать в SetUpdateCallback дополнительные параметры
написал: Вы можете передать любые параметры в любую функцию через внешние для нее параметры Это могут быть либо глобальные либо локальные параметры блока Например в вашем случае делаем так:
Код
local param1,param2;
-------------------------------------
function my_callback_ (index)
--Теперь тут доступны внешние локальные параметры...my_table_, param1, param2 - помимо стандартного index
end
----------------
local my_table = CreateDataSource (code_class, code_paper_ interval)
parametr_1 = "1"
parametr_2 = "2"
my_table : SetUpdateCallback ( my_callback )
И не надо огород городить. Вы можете таким же образом передать и таблицу и все что хотите.
Не сочтите за наглость, Вы сами по поняли, что написали ?
1)Во первых даже если мы рассматриваем Lua - где тут передача параметров в функцию ? Я что спрашивал про глобальные параметры ? Почему вы вообще применяется к глобальным переменным термин "передать" ?? Это и так ГЛОБАЛЬНАЯ переменная. 2)Во вторых я четко спросил про Си, то есть, как это реализовать на Lua api в Си.
Будем откровенны - Вы написали очень глупую глупость :)
Я вам пояснил, что указанное вами решение - это нагромождение огорода - именно для луа. --------------------- В подсмотренном но не понятом Вами варианте , параметры будут загружаться в стек луа вне функциию ------------------------------ В моем варианте параметры определены как upvalue и будут загружены в стек луа внутри функции. ----------------- Разница лишь в том, что ваш вариант содержит больше букв . ----------------- Если Вы не поняли, то что я Вам написал, то нет смысла объяснять Вам как это делать на СИ. Вы это тем более не поймете.
Шаг сетчика в операторе for, Некорректная работа оператора for при нецелочисленном шаге
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 14:19:18
например так: for x=1,2.05,0.1 do print("x="..x) end ------------ x=1.0 x=1.1 x=1.2 x=1.3 x=1.4 x=1.5 x=1.6 x=1.7 x=1.8 x=1.9 x=2.0 -----------------
Шаг сетчика в операторе for, Некорректная работа оператора for при нецелочисленном шаге
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 14:17:33
чтобы было правильно , надо изменить границу цикла, чтобы результат проверялся не на равно. как правило путем добавления половины шага
Шаг сетчика в операторе for, Некорректная работа оператора for при нецелочисленном шаге
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 14:13:36
вообще-то , обычно в букварях по программированию предупреждают, что не надо использовать точное сравнение для вещественных чисел. чтобы не было мучительно больно.
Шаг сетчика в операторе for, Некорректная работа оператора for при нецелочисленном шаге
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 14:10:47
Цитата
BlaZed написал: Сегодня столкнулся с некорректной работой оператора for, если задать не целочисленный шаг счетчика
Простой пример
Код
for x = 1 , 2 , 0.1 do
message ( "x=" .. x)
end
Логично ожидать перебор значений от 1 до 2 включительно с шагом 0.1 Однако перебор значений идет от 1 только до 1.9
В данном случае на последнем шаге получается x=2.0+8.8817841970013e-016
Передать в SetUpdateCallback дополнительные параметры
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 13:57:04
Цитата
Quikos написал: При вызове SetUpdateCallback по умолчанию передать туда доп. параметры нельзя:
Код
function my_callback_ (index)
--index - индекс свечи в таблице my_table, НО сама таблица по умолчанию не приходит, что просто дикость.
end
local my_table = CreateDataSource (code_class, code_paper_ interval)
my_table : SetUpdateCallback (my_callback_)
Но, передать доп. параметры в callback - можно с помощью такой контракции, в данном случае я не знаю, что она означает на Lua, просто подсмотрел на данном форуме:
Код
function my_callback_ (my_table_, param1, param2, index)
--Теперь тут доступны переданные дополнительные параметры...my_table_, param1, param2 - помимо стандартного index
end
local my_table = CreateDataSource (code_class, code_paper_ interval)
parametr_1 = "1"
parametr_2 = "2"
my_table : SetUpdateCallback ( function (idx)my_callback_(my_table,parametr_1, parametr_2, idx) end )
И теперь параметры замечательно переданы в callback SetUpdateCallback. И вот подскажите пожалуйста, а можно ли подобное провернуть в Си ??
Вы можете передать любые параметры в любую функцию через внешние для нее параметры Это могут быть либо глобальные либо локальные параметры блока Например в вашем случае делаем так:
Код
local param1,param2;
-------------------------------------
function my_callback_ (index)
--Теперь тут доступны внешние локальные параметры...my_table_, param1, param2 - помимо стандартного index
end
----------------
local my_table = CreateDataSource (code_class, code_paper_ interval)
parametr_1 = "1"
parametr_2 = "2"
my_table : SetUpdateCallback ( my_callback )
И не надо огород городить. Вы можете таким же образом передать и таблицу и все что хотите.
Получение цены инструмента
Пользователь
Сообщений: Регистрация: 30.01.2015
11.10.2022 13:45:05
Цитата
Kolossi написал: Подскажите, есть ли возможность получения цены последней сделки по инструменту запросом с сервера не занося его в таблицу текущих торгов руками и не создавая всю базу через CreateDataSource ?
Можно. Для этого Вам надо установить режим по подписке и подписаться на нужные инструменты В ТТТ ни руками ни ногами заносить инструмент не требуется.
Предварительная проверка наличия в базе Quik инструмента (опциона), Subscribe_Level_II_Quotes и getParamEx не существующего опциона приводят к зависанию Quik
Пользователь
Сообщений: Регистрация: 30.01.2015
10.10.2022 19:11:34
Цитата
Boris написал: Периодически сервера Quik перестают транслировать данные по некоторым опционам. Выглядит это так как опцион был и все его параметры транслировались, эти опционы постоянно мониторятся lua скриптом - который был запущен в тот момент когда опционы все ещё были живы. В какой то момент некоторые дальние опционы "дохнут" (ещё до истечения по сроку) и исчезают из трансляции серверов Quik как доступные инструменты.
Если эти опционы находятся в таблице торгов то у них в таблице пропадают такие параметры как: Спрос Предл. Цена послед. Волатильность Теор. цена
Вместо нулевых значений начинает отображаться пустое значение.
Если таблицу отредактировать и заново заполнить по фильтру - то эти опционы исчезают.
В итоге по DDE из указанной таблицы начинают транслироваться пустые значения - что приводит к зависанию DDE сервера - до тех пор пока сдохнувшие опционы не будут удалены из таблицы
В lua мониторятся стаканы этих опционов - запускается скрипт и формируется список для мониторинга в тот момент когда опцион ещё жив, но в тот момент когда опционы дохнут - попытка мониторинга приводит к зависанию Quik намертво (даже ошибок lua не показывает)
Подобная конструкция - для предварительной проверки успешности запроса getParamEx через параметр result - не помогает, скрипт всё равно вешает Quik. Какие функции позволят заблаговременно отследить исчезновение инструмента из трансляции сервера Quik ?
Вы в своем вопросе написали ответ. ----------------------- Если эти опционы находятся в таблице торгов то у них в таблице пропадают такие параметры как: Спрос Предл. Цена послед. Волатильность Теор. цена
Вместо нулевых значений начинает отображаться пустое значение. ----------------- вот это и нужно проверять. Т е читайте любой из указанных параметров и проверяйте его на вшивость.
Поток в котором вызывается SetUpdateCallback, Поток в котором вызывается SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
09.10.2022 21:44:00
Цитата
Quikos написал: В документации естественно таких данных нет, но может кто знает ? Когда вызывается callback SetUpdateCallback от CreateDataSource - он вызывается всегда только в одном потоке, как в Lua, так и в С++ ? Кстати интересен данный вопрос и касаемо функции OnQuote. Вопрос естественно связан с синхронизацией доступа в случае - многотонной SetUpdateCallback .
Какая разница в каком потоке вызывается функция? ------------------------- Полагаю Вы знаете, что любая библиотека dll хранится в памяти компа в единственном экземпляре -------------------------------- Это значит, что все потоки, даже если их тысяча вызывают один и тот же код функции ------------------- Важным моментом является какие данные изменяют эти потоки. ------------------ Именно обращение к данным надо синхронизировать, а не обращение к коду функций. ------------------ Уточните свой вопрос.
Вызвать Lua функцию из С++ c передачей callback`а, Вызвать Lua функцию из С++ c передачей callback`а
Пользователь
Сообщений: Регистрация: 30.01.2015
09.10.2022 21:36:18
Цитата
Quikos написал: Подскажите пожалуйста, есть ли пример, как вызывать функцию к примеру SetUpdateCallback с передачей в нее параметров ? Ну то есть, вот аналог код в Lua:
Код
local my_table_ = CreateDataSource (code_class_, code_paper_, interval)
my_table_: SetUpdateCallback ( function (idx)my_callback_(my_table_, code_class_, code_paper_, interval) end )
Код
function my_callback_ (my_table_, code_class, code_paper, interval)
.. .код
end
Код
//В L - на вершине стека уже находится таблица возвращенная CreateDataSource .
lua_getfield(L, - 1 , "SetUpdateCallback" ); //"Извлекаем" на вершину стека из "таблицы" функцию SetUpdateCallback .
Теперь нужно поместить в стек последовательно параметры функции SetUpdateCallback, но тут уже не могу понять: - как поместить function(idx) - как поместить my_callback_
Не могу понять, где должна быть объявлена моя функция callback ?
В Lua скрипте и тогда мне ее нужно просто получить через Lua_global или же в C++ ?
Не совсем понятно, что Вы не знаете -луа или библиотеку QLUA, поэтому поясняю оба момента. ---------------------------- см. документацию луа: ---------------- Следующий пример показывает, как хост-программа может выполнять эквивалент этого кода Lua: a = f("как", т.x, 14) Вот оно в C: lua_getglobal(L, "f"); /* вызываемая функция */ lua_pushliteral(L, "как"); /* 1-й аргумент */ lua_getglobal(L, "t"); /* таблица, подлежащая индексации */ lua_getfield(L, -1, "x"); /* результат ввода t.x (2-й аргумент) */ lua_remove(L, -2); /* удалить 't' из стека */ lua_pushinteger(L, 14); /* 3-й аргумент */ lua_call(L, 3, 1); /* вызов 'f' с 3 аргументами и 1 результатом */ lua_setglobal(L, "a"); /* установить глобальный 'a' */ ================= см документацию библиотеки QLUA , ----------------- Формат функции обратного вызова: function call_back(NUMBER index) Пример получения времени из свечки: function cb( index ) -- объявили колбек функцию local t = ds:T(index) end ------------------ SetUpdateCallback(ds,cb) -- запихнули ссылку на нее в таблицу источника =============================== если Вы пишите на Си то колбек объявляете на СИ, но можете и на луа. в любом случае это глобальная функция. ----------------- ВСЕ функции библиотеки QLUA - глобальные. ----------------------- вроде бы все понятно? ---------------------- попробуйте написать, потом выложите и спросите что не так. =================
QUIK съедает более 2 ГБ памяти вне зависимости от брокера.
Пользователь
Сообщений: Регистрация: 30.01.2015
03.10.2022 19:20:38
Добрый день, Периодически на форуме появляются душераздирающие вопли о том, что мол у брокера .... QUIK съедает .. ГБ. Попытка объяснить , что и как надо сделать наталкивается либо на вопли "мы все это знаем", либо на рассуждения о том, что это не у любого брокера, а лишь у избранного. ---------------------- Полагаю, что проблема не в зеркале, то есть не в брокере, а как обычно, в отсутствии знаний у пользователя. ----------------- Доказательство: ------------------- брокер СБЕРБАНК. Чтобы доказать, что брокер не виноват, специально настроил QUIK так, чтобы получить наибольшую загрузку памяти для этого брокера. --------------------------- Желающие могут получить и большую загрузку. Я к этому не стремился, но знаю как это сделать. ----------------- итак вот картинка результата сегодня:
а это результат обычной настройки ----------------------------------------------- Успехов в борьбе за знания, т.е. за память.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
написал: как я понял у него объем потребления памяти уменьшился с 1800 Мб до 350 т е в 5 раз
У него ничего не уменьшилось:
Цитата
написал: Запустил пустой квик без вкладок и без любых котировок, всё отключил. Изменений нет .
Цитата
написал: Эксперимент завершил. Отсутствие файлов dat не повлияло на память. Сегодня ВТБ обновил версию до 9.8.0.11. А память забирают все столько же - 2Гб
И не путайте оперативную память и размер файла info.log на диске. Квик ВТБ жрёт памяти 2Г и больше, это показывает диспетчер задач. 180М (а не 1800!) и 350М - это размеры файла info.log !
Цитата
написал: Как я понял Вы из тех кому важно все обосрать
Из тех, но с учётом того, что я никого не обсирал, они существуют только в вашем воображении.
, Был неправ. Приношу извинения.
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 09:40:31
, Скажите, что не так в картинках ниже: это исходное
это изменили инструмент через легенду в окне это изменили интервал Все верно?
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 08:13:25
если изменять инструмент через меню, то надо изменить инструмент и в индикаторе. тогда все работает. -------------------- Резюме: Изменение данных в индикаторе будет происходить: 1) при изменении тайма 2) при изменении инструмента якорем 3) при изменении инструмента через меню в окне и в индикаторе 4) Можно сделать изменение инструмента через меню лишь в окне, но тогда изменение в индикаторе можно сделать лишь на следующей обезличенной сделке. , Какой из этих 4 вариантов или иной Вам нужен?
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 08:03:17
,, Как Вы изменяете инструмент? ------------------ Дело в том, что если Вы изменяете интервал или инструмент с помощью якоря, то эти изменения приводят к пересчету индикатора -------------------- Но если инструмент заменяется через меню окна, то индикатор не пересчитывается.
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 07:30:35
, Я не понял, зачем Вам два окна с двумя инструментами. Напишите подробнее, что Вы хотите сделать. Возможно есть решение именно того, что хотите , но пока я не понимаю в чем смысл двух инструментов и наблюдение трех первых и трех последних, если это не арбитраж. ---------------------- Можно решить задачу многими способами. В первом приближении выбранный вами неудачный.
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 07:25:00
вариант при котором индикатор работает при смене инструмента, если включить якорь но при этом смена происходит и во всех окнах и название индикатора тоже изменяется
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 07:20:36
Тот факт что индикатор остается привязанный к первоначальному инструменту косвенно подтверждает название окна индикатора если его поместить в третье окно На картинке индикатор помещен первоначально со Сбербанком После смены инструмента название окна индикатора не меняется
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2022 07:11:55
Цитата
но он отображает 0, а не данные предыдущего инструмента
Если индикатор написан правильно, то отображает предыдущее значение а не ноль
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Тут ничего особенного нет, у меня всё приблизительно так же. И даже если бы дело было в настройках, проблема была бы и раньше, а она в ВТБ появилась только недавно в сентябре. А советы ваши давно описаны в начальных постах по теме и все давно испробованы, не работает ничего
Вообще-то я Дмитрию помогаю, как я понял у него объем потребления памяти уменьшился с 1800 Мб до 350 т е в 5 раз. ----------- Вам я советов не давал, и тем более не спрашивал вашего мнения. Как я понял Вы из тех кому важно все обосрать.
Не исполняется ордер на валютной секции
Пользователь
Сообщений: Регистрация: 30.01.2015
01.10.2022 09:05:47
Цитата
Михаил Филимонов написал: Кто-нибудь торгует на Валютной секции на Едином брокерском счете в Открывашке через TRANS2QUIK API ?
Вы зря полезли в TRANS2QUIK API. это такое старье. появилось еще задолго до встраивания VMLua в QUIK. ------------------------ переходите на LUA - чем раньше сделаете, тем меньше будет проблем. --------------------------- "Ох, нелегкая это работа -Из болота тащить бегемота!"
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
01.10.2022 09:01:04
, Объясняю вам, почему данные не изменяются при смене инструмента. ------------- Проблема в том, что индикатор использует данные инструмента, который отображен перед загрузкой индикатора на график, т е при начальной инициализации индикатора в нем сохраняется указатель на архив данных инструмента. ---------------- Когда Вы изменяете инструмент на графике, то в индикаторе остается указатель на прежний инструмент. Поэтому он продолжает отображать данные первоначального инструмента. -------------- Поэтому для смены инструмента в индикаторе при смене его на графике Вам надо обеспечить отслеживание этой замены в индикаторе и при обнаружении замены изменить источник данных для индикатора. --------------- Полагаю, что это можно сделать задействовав функции создания источника данных. Но помогать Вам я не буду, нет желания.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
написал: я не понимаю чем Ваш пример от моего отличается.
понял, у Вас getCandlesByIndex вызывается в OnCalculate, а моем примере в Init. Однако
Цитата
написал: Я также тестировал пример с постоянными попытками забора значений свечей(как первых так и последних), и он также криво работает, тупо не видит цены, ни одной, однако если переставить индикатор все идет как по маслу.
я такой же пример сам писал, и все так же плохо работает
Странный Вы человек. Вместо того, чтобы задавать вопросы и высказывать недовольство, просто надо было бы привести результат теста, а не рассказывать мне что вы делали что-то не работающее. Я же не должен за вас все проверять, написал же вам выше , проверьте если что не так напишите поправлю. Но в любом случае Я делаю это если у меня есть желание Вам помогать.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 20:13:32
еще заметил, что у ВТБ все файлы с расширением dat почему-то 65536 байт т е 2 в 16 степени, а у меня т е сбербанка есть и 1024 байта. ------------------ Если вы не удаляли эти файлы как я писал ранее, то удалите их тоже.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 20:02:02
Рекомендую в дальнейшем их не сохранять, будет память как у меня.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 19:58:50
Предположу, что вы сохраняли историю многих параметров.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 19:57:12
Цитата
Дмитрий Б. написал: Мне системные файлы ничго не говорят. Не знаю куда смотреть.
По дате так:
убейте файлы info.log У вас они 74776765 байт и 24646913 байт а у меня 1024 байта
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 19:48:16
, Выкладываю пример, если что не так, напишите, поправлю.
Код
Settings={
sec ="ind2", --идентификатор инструмента 2-го графика
Name = 'nk_ind',
}
-------
function OnCalculate(i)
if i==Size() then
local N=getNumCandles (Settings.sec) ;
if N>3 then
local t=getCandlesByIndex(Settings.sec,0,N-3,3); --последние 3 свечи 2-го графика
local Hi2,Hi1,Hi0=t[0].high,t[1].high,t[2].high;
--------------------------
t=getCandlesByIndex(Settings.sec,0,0,3); --первые 3 свечи 2-го графика
local H1,H2,H3=t[0].high,t[1].high,t[2].high;
message("1="..H(1)..",2="..H(2)..",3="..H(3).."....,i-2="..H(i-2)..",i-1="..H(i-1)..",i="..H(i).."\n"..
"1="..H1..",2="..H2..",3="..H3..",i-2="..Hi2..",i-1="..Hi1..",i="..Hi0.."\n");
end
end
return
end
-----
function Init()
Settings.line={};
Settings.line[1] = {Name = "C",Color = RGB(0,255,0), Type =2,Width = 2 };
return 1;
end
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 16:38:08
это файл курса , не важно есть или нет. Вы отсортируйте по дате, чтобы можно было сравнивать
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 16:20:05
, Позже выложу для Вас пример
getCandlesByIndex в индикаторе, getCandlesByIndex в индикаторе
написал: Надо понимать, что при загрузке терминала варианты 1,2 и 3 имеют гораздо более высокую вероятность, чем вариант 4. А вот в устоявшемся варианте, когда все данные терминалом прогружены, вы скорее всего будете получать вариант 4
Цитата
написал: Я также тестировал пример с постоянными попытками забора значений свечей(как первых так и последних), и он также криво работает, тупо не видит цены, ни одной, однако если переставить индикатор все идет как по маслу.
Цитата
написал: посмотрите скрипт который я выложил на этом форуме для арбитража
если это скрипт, то в скрипте у меня тоже все работает нормально, проблема именно в индикаторе, где то была тема что функция getCandlesByIndex плохо работает именно в инидикаторах
это индикатор. Там я даже картинку выложил. Но называется он скриптом, потому что написан языке Lua.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 16:13:06
У меня так:
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2022 16:10:33
можно еще сравнить размер файлов в папке QUIK ВТБ и СБЕРБАНК
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
У вас почти тысяча инструментов. Зачем? -------------------------- Вы физически не сможете за ними следить. --------------------- Рекомендую оставить лишь ликвидные -------------------- Потом если будет мало и будете круто торговать добавите неликвид. -------------------- Начните с не более 100 инструментов. Полагаю что память уменьшится раз в 10.
Да, мне столько не нужно интрументов. Оказалось они тоже не влияют на память. Запустил пустой квик без вкладок и без любых котировок, всё отключил. Изменений нет.
и последнее, для чистоты эксперимента надо удалить содержимое папки arxive и все файлы с расширением dat
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2022 16:25:23
Цитата
Дмитрий Б. написал: " возможная причина - вкладки и окна, созданные в ранних версиях Quik."
Юрий в первом сообщении проверял в пустом квике без вкладок. Я тоже проверил. Получается вкладки не влияют.
инструменты оставил только российские акции МБ. Тоже не повлияло память.
У вас почти тысяча инструментов. Зачем? -------------------------- Вы физически не сможете за ними следить. --------------------- Рекомендую оставить лишь ликвидные -------------------- Потом если будет мало и будете круто торговать добавите неликвид. -------------------- Начните с не более 100 инструментов. Полагаю что память уменьшится раз в 10.
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2022 15:25:21
Цитата
Дмитрий Б. написал: спасибо за помощь. Все заработало. Запустил пустой квик и уже в нем открыл сохранненые настройки.
вам с памятью везет. Но я пока тоже не жалуюсь. Торговать оно не мешает, ничего не зависает.
Для интереса:
Роботов, скрипты и индикаторы не использую. Только чистый график и стакан.
возможно у Вас много инструментов подключено особо если опционы по умолчанию,
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2022 11:45:03
у меня кушает так:
Съедается оперативная память, Пустой запуск съедает 2ГБ памяти
Судя по скриншоту ресурсов на Вашем ПК достаточно. В таком случае рекомендуем запустить Рабочее место QUIK без файла настроек (т.е. убрать использующийся *.wnd файл, по умолчанию это info.wnd), после чего откройте терминал QUIK и поработайте в нём. Обращаем внимание, что после запуска терминала QUIK в рабочей области не будет вкладок и таблиц, их необходимо будет создать заново или же загрузить конфигурацию окон из ранее сохранённого файла настроек (файлы настроек сохраняются в каталоге WNDSAV, который находится в корневой директории с QUIK). При этом в случае загрузки ранее сохранённого файла нужно выбрать гарантированно тот, на котором данной проблемы не было.
Чтобы диагностировать , желательно посмотреть: 1) число инструментов и их параметров в заказе данных 2) объем занятой памяти каждым квиком 3) наличие запущенных скриптов и самопальных индикаторов
Глюк в программе Quik после обновления, Нужна помощь
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2022 06:28:21
Цитата
e2e4 написал: Раньше не приходилось откатывать Quik. Так понимаю, копирования с заменой всех файлов из папки SBERBANK\QUIK_x64\backup\20220927 в SBERBANK\QUIK_x64 достаточно будет?
Вы что никогда не торговали на Ninja,ATAS И ТД - и не понимаете что такое работа с несколькими мониторами - и для чего нужна линковка окон ВСЕХ окон - как внешних так и не открепленных - банальный обзор рынка с удобством - а так приходится растягивать терминал на 2 монитора - чтобы линковались нужные окна
понял, что речь идет о якоре. ---------------------- Рассмешили Вопросом о зверинце торговых терминалов. Вы что считаете это каким-то достижением? Или просто собираете коллекцию?
Скорее всего я не такой профи ка вы - имхо мне удобнее (как и многим другим) - два открытых окна старшего и младшего тф , залинкованых с воч листом - пробегая по старшему тф проводим анализ (что куда торговать) - а на младшем точки входа - и во многих случаях нужна мобильность и удобство - а не каждый раз вбивать тикер заново на младшем тф - PS я рад за вас что вы не не бегаете по активам - имхо я бегаю и хорошо 10-12 активов отслеживать - каждому свое - и чем вам этот зверинец не нравится - чем плохи эти терминалы которые по уму сделаны ?
У меня по активам бегает робот.
Глюк в программе Quik после обновления, Нужна помощь
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2022 16:45:16
после кувыркания с версией 9 от сбербанка я вернул версию 8.7 и нет проблем. ----------------------- Рекомендую вернуть из архива старую версию и отключить в квике сообщение о новой версии. ---------------------- В следующем году смените версию на очередную новую, если старая не будет устраивать. ----------------- "Что важнее -"шашечки" на двери или ехать ?"
Вынесенные окна
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2022 14:25:54
У меня нет проблем так как уже давно не бегаю по всему списку инструментов.
Вы что никогда не торговали на Ninja,ATAS И ТД - и не понимаете что такое работа с несколькими мониторами - и для чего нужна линковка окон ВСЕХ окон - как внешних так и не открепленных - банальный обзор рынка с удобством - а так приходится растягивать терминал на 2 монитора - чтобы линковались нужные окна
понял, что речь идет о якоре. ---------------------- Рассмешили Вопросом о зверинце торговых терминалов. Вы что считаете это каким-то достижением? Или просто собираете коллекцию?
Вы уже работаете в системе, Достаёт при смене точки доступа этот глюк!
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2022 11:11:58
Цитата
green_X5 написал: Предложение навскидку - сервер видит попытку подключения "со второго места", проверяет - откликается ли "первое", если нет - закрывает "старую сессию", открывает новую. А не тупо отказывает в соединении, как сейчас.
это предложение плохое. Если сервер реализует такой алгоритм, то его легко положить DDS атакой.
Вынесенные окна
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2022 09:09:22
Цитата
Roman Koledin написал: Сделайте ПОЖАЛУЙСТА связь терминала с вынесенными окнами, что бы была возможность линковать вынесенные (открепленные окна) с программмой - без этой функции нет возможности работать с несколькими мониторами
не понял. У меня два монитора. проблем не возникает. Пример в студию.