lokust написал: запускаем терминал для цели скачивания ТВС("таблицы всех сделок") Связь--Списки галки все, Интервал обновления данных - 10 сек.(в настройках, хотя для обозначенной цели он роли не играет). дальше что происходит -- опять уже мною описано (см.выше в посте): Что происходит, где собака зарыта ?
Указанные настройки не влияют на таблицу всех сделок. Для нее есть отдельные настройки в Система - Заказ Данных - Поток обезличенных сделок. И в старых версиях этой настройки не было.
Цитата
lokust написал: там-же описаны 2-а пути выхода из Проблемы...
Если проблема есть, мы готовы с ней разбираться. А для разбора нам нужна уже указанная два раза информация.
lokust написал: Вопрос, почему за 3-4 месяца Поле "Последняя запись" из порядка 8 - 12 миллионов стало Вчера 09.11.16, в день избрания TRUMP-а, достигла 110 миллионов !!! . ??? Вопрос : Что за поток добавила Биржа, или что так расширила не на %, а почти в 10 раз !!! ???
Отвечаем на вопросы, перед выборами и в день выборов, была очень большая активность на рынках. Большая активность предполагает повышенную частоту обновления данных, которую Вы наблюдали. Но ошибки из-за этого быть не должно. Как уже было сказано, ранее мы уже исправляли подобные ошибки и есть очень большая вероятность, что обновление терминала (сейчас актуальная версия 7.5) избавит от этой проблемы. Но раз Вы говорите что обновление не помогло, нам требуется провести анализ терминала в состоянии после падения. Выделять что-либо в отдельный поток не является решением. Хотя-бы потому что данные и так уже едут разными потоками. И разделять info.log тоже некорректно, потому что речь в ошибке про оперативную память, а не про жесткий диск.
Резюмируя выше сказанное, большой поток информации это нормально и избавляться от него не является решением проблемы. Тем более что стороны брокера и пользователя есть все инструменты для уменьшения потока. А решением является определение узкого места в терминале из-за которого происходит ошибка. Да, мы можем попытаться повторить у себя ошибку, но не факт что она повторится (ибо обратилось с проблемой единицы пользователей) и даже если повторится не факт что она укажет именно на то уязвимое место с которым столкнулись именно Вы. Так как проблемы с памятью (если это действительно проблемы с памятью) критично зависят от среды в которой работает пользователь.
lokust, Пришлите пожалуйста для анализа архив всей папки с терминалом QUIK (без ключей доступа) созданный сразу после возникновения ошибки "не хватило памяти под объекты" на ящик quiksupport@arqatech.com
Перед выборами и в день выборов, была очень большая активность на рынках. Вы не связываете это с возросшим потоком информации? Чтобы передать тему разработчикам нужно как минимум провести хоть какой-то анализ. И потом если ошибка появляется на старой версии терминала, не не появляется на новой, то ее никто править в старой версии не будет.
Здравствуйте, swerg, прав, ошибка не хватило памяти, зачастую возникает именно из-за файла настроек, а не из-за фактической нехватки памяти. И к слову в последних версиях терминала добавлена проверка wnd файла не версию. lokust, Вопрос количества заказываемой информации зависит в первую очередь от настроек терминала. Параметр "Последняя запись" может увеличиться не только из-за количества заказанной информации, но и из-за частоты ее обновления. В настройках терминала Вы также можете снизить эту частоту (запрашивать раз в...)
Касаемо версии, настоятельно рекомендуем обновить терминал. И вопрос даже не в том что "логика работы НЕ поменялась", а в том что реально были ошибки при которых возникало то же самое сообщение вида "не хватило памяти" и эти ошибки уже давно исправлены.
Давайте для начала забудем про Excel, если файл открыть блокнотом, что отобразится? Далее, если строка "Summ ubitok" действительно последняя, значит дальше код не отработал. Ищите ошибку по которой это могло произойти. Например ошибка при делении в следующей строке. В крайнем случае упростите код до минимального (вообще убрав все переменные)
Здравствуйте, К сожалению присланного кода недостаточно для понимания причин. За перевод строки в файле отвечает параметр "\n", вполне возможно что у Вас он вставляется не там где нужно или не так как нужно. Проверьте этот момент
Sergey Gorokhov написал: Да, но к сожалению это пожелание было отклонено.
Вобще-то я предложил другое: дать доступ к уже реализованной настройке с клиентского места. Т.е., это другое предложение. Мне оно, как бы, не надо. Дарю идею sav 312 , если пропихнёте.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Старатель написал: А вот это уже разумно. Я вижу это так: изменение настроек риск-менеджера производится локально с рабочего места QUIK самим пользователем (для этого ему надо дать права на эту операцию) и активирует уже давно реализованный на сервере функционал. Но не реалтайм, а после перезагрузки дилерской библиотеки, т.е. на следующий день. sav 312, Sergey Gorokhov, попробуйте договориться
Да, но к сожалению это пожелание было отклонено. К слову настройка, о которой была речь, распространяется на конкретный код клиента, а не сразу на всех.
Здравствуйте, На вскидку, такое может быть если глобальные переменные не сбрасываются при перестроении графика. сброс можно написать примерно следующим образом
Код
function OnCalculate(i)
if i==1 then
--обнуляем глобальные переменные
end
--остальной код
end
Если разобраться не получится, выложите исходный код проблемного индикатора.
Алексей Злобин написал: Разве читать файлы из LuaIndicators можно?
Конечно можно, это функционал самого языка Lua.
Цитата
Алексей Злобин написал: Для решения задачи Вам достаточно из индикатора прочитать данные в исходном файле...Разве читать файлы из LuaIndicators можно? А подключать сторонние библиотеки можно в скрипты для индикаторов?
Да, но для решения задачи Вам и это не нужно. Все функции уже есть.
Алексей Злобин написал: Можно ли мне получить доступ к произвольной таблице Quik в том числе и построенные с помощью Qlua?
Для доступа к таблицам терминала есть соответствующие функции (см цитату из документации в Вашем посте) Доступа к таблицам Qlua построенным из других скриптов не предусмотрено. Для решения задачи Вам достаточно из индикатора прочитать данные в исходном файле. Доступ к другим таблицам Вам не нужен.
function main( ... )
t_id=AllocTable()
AddColumn(t_id,0,"trans_id",true, QTABLE_STRING_TYPE,30)
AddColumn(t_id,1,"sec_code",true, QTABLE_STRING_TYPE,30)
AddColumn(t_id,2,"activation_time",true, QTABLE_STRING_TYPE,30)
AddColumn(t_id,3,"settlecode",true, QTABLE_STRING_TYPE,30)
AddColumn(t_id,4,"exec_type",true, QTABLE_STRING_TYPE,30)
AddColumn(t_id,5,"#",true, QTABLE_STRING_TYPE,30)
if CreateWindow(t_id)<1 then
message("Error creating Dlg window",1)
end
SetWindowCaption(t_id,"Orders data")
local t=0
local count = getNumberOf("orders")
if count then
for i=0,count-1 do
if stopped then
break
end
t=getItem("orders", i)
if t ~= nil then
local row = InsertRow(t_id,-1)
SetCell(t_id,row,0,tostring(t.trans_id))
SetCell(t_id,row,1,tostring(t.sec_code))
SetCell(t_id,row,2,tostring(t.activation_time))
SetCell(t_id,row,3,tostring(t.settlecode))
SetCell(t_id,row,4,tostring(t.exec_type))
SetCell(t_id,row,5,tostring(i))
end
end
end
end
Значение задается в виде фиксированной суммы с указанием валюты или в виде процента от входящих средств клиента. При проведении операции происходит сравнение максимально допустимого значения убытка с разностью оценок входящих и текущих средств по счету клиента. Если убыток по счету больше допустимого, то операция запрещается (кроме операций закрытия позиций).
При проведении оценки убытков все бумажные и денежные позиции клиента складываются и приводятся к валюте, в которой задано ограничение. Если ограничение задано в процентах, то пересчет происходит в «основную» валюту денежной позиции клиента. Входящие позиции по бумагам оцениваются по ценам закрытия, текущие позиции – по цене последней сделки.
Старатель, Вы перемешали обращения двух разных участников форума. Ответы про CoLibri относятся к Imersio Arrigo, А вопрос про контроль дневного лимита потерь относится к sav 312, CoLibri решает задачу которую поставил Imersio Arrigo, но НЕ решает задачу которую поставил sav 312, его задачу решает настройка на стороне брокера, без CoLibri.
Цитата
Старатель написал: Т.е., на стороне брокера есть настройка, автоматически блокирующая возможность торговли при достижении заданного лимита потерь?
sav 312 написал: Дневной лимит потерь (запрет торговли после превышения ранее заданной просадки по счету).
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что пожелание отклонено и реализовываться нами не будет, ввиду того что на стороне брокера уже есть возможность установки такого ограничения.
Вопрос с подвохом. Если Вы сравниваете a[trade.trade_num].status=nil, то номер сделки у Вас уже есть. А раз так, значит сделка уже была. И в OnTrade таблица уже заполнилась. Таким образом, если в main искать именно по номеру сделки, то нет, такая ситуация (=nil) не должна происходить Это конечно же при условии что сам по себе trade.trade_num не равен nil.
sav 312 написал: На самом деле исполнение может быть любым,
В том то и дело что нет. Лимитированные заявки, это сущность биржи и предотвратить исполнение лимитированной заявки в определенное время мы не можем. Может это только биржа. Мы можем, только предотвратить отправку заявки на биржу. В связи с чем и был предложен вариант Вашего пожелания. И с Ваших слов, становится понятно что вариант не правильный.
sav 312 написал: Торговля со стопом в определенные часы - это почти 100% гарантия их срабатывания, т.к. в "эти часы" волатильность высокая.
Да, именно по этому в стоп заявке можно указать время в которое будет происходить проверка.
Цитата
sav 312 написал: Торговля без стопа - это вообще не контролируемые риски. Вот и получается, что в "эти часы" или серия небольших стопов или огромный "лось".
Вы говорите о том чтобы была возможность проверки времени, перед отправкой лимитированной (не стоп) заявки? То есть человек настроил ограничение, открывает форму ввода лимитированной заявки, жмет отправить и ему ошибка вида "заявка отвергнута так как установлено ограничение...". Правильно?
sav 312 написал: К примеру в часы когда открывается Америка происходят такие движения на которых с коротким стопом делать нечего. А торговать без стопов по моей системе нельзя
Если стоп уже выставлен, без ограничения по времени, то ничего уже не спасет. Требуется заранее указать время его действия. Если время в нем заранее указано, это решает задачу. От сюда и возник вопрос об уточнениях.
Sergey Gorokhov написал: И вопрос был конкретно про пункт
Цитата
sav 312 написал: Часы работы (время в которое можно торговать).
Выше, я все подробно описал для чего это нужно и даже пример свой привел! Увы, не был понят...
Вы написали что это нужно для стоп заявок. Но для них уже есть проверка времени. Делать то что и так уже есть не видим смысла. Если задача понята не правильно, опишите подробней.
sav 312 написал: Сергей, Вы когда-нибудь торговали? Я же конкретно пишу, что "часами торговли" я хочу иметь возможность ограничивать торговлю в определённые часы. Смысл этого ограничения Вам я так понял не понятен
Если речь о добавлении какого-то функционала, всегда будут предложены уже готовые варианты обойтись и без этого функционала, тем более что они есть. И это правильно, ибо большинство пользователей не догадываются что их задачи уже можно решить. В Вашем случае, чтобы зарегистрировать пожелание нужно понимать зачем оно нужно. Касаемо ограничения по времени, пока это не понятно. Тем более что для стоп заявок, о которых Вы говорите, такое ограничение уже есть.
Sergey Gorokhov написал: Просьба уточнить, какова практическая польза? Можно на примере.
Польза - не торговать в часы повышенной волатильности, например на открытии нашей сессии (c 10 до 11) и Американской (грубо после 16). Также не заходить в сделку перед клирингом. Если на личном примере, то торгую, точнее стараюсь торговать с 11 до 16, т.к. торгую внутри дня с относительно небольшим стопом. Как только нарушаю свои правила - так либо стопов насобираю на Америке или ещё того хуже риск-менеджер отключу.
Если вопрос касается только стопов, там есть параметр указывающий время когда происходит проверка.
Sergey Gorokhov написал: Это уже есть, называется CoLibri
Мы же уже выяснили что это совсем не то, что нужно!
Нет не выяснили. У брокера есть возможность заблокировать торговлю пользователю. Не через CoLibri. Но с помощью нее он может понять что нужно заблокировать. Таким образом она полностью отвечает Вашему запросу.
sav 312 написал: Часы работы (время в которое можно торговать).
Просьба уточнить, какова практическая польза? Можно на примере.
Цитата
sav 312 написал: Дневной лимит потерь (запрет торговли после превышения ранее заданной просадки по счету).
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Imersio Arrigo написал: Сергей, зарегистрируйте пожелание на создание риск-менеджера, который будет управляться брокером, и не будет отключаться клиентом напрямую, а только из ЛК, либо визитом/звонком в офис.
sav 312 написал: Только вот объясните пожалуйста, какую роль будет играть эта галочка, если я в меню квика нажму становить скрипт?
Идея автозапуска в том чтобы скрипт повторно запускался после остановки. Пока на самом деле это все на стадии рассмотрения и сейчас рано говорить о том при каких условиях он будет запускаться. Может только после реконнекта к серверу, может как-то иначе. Однако эта идея уже гораздо лучше Вашей, хотя бы потому что возможность остановки скрипта не будет блокироваться.
sav 312 написал: Изначально, поднимая данную тему, предполагал, что результат будет отрицательным, т.к. реализация данного пожелания позволит многим контролировать свои риски, а это никому не нужно.
Уже было сказано, что Вы не с той стороны подходите к проблеме. И были предложены варианты как ее правильно обойти. Давать возможность запрета остановки скрипта, это заведомо означает создать дыру в безопасности с которой рядовой пользователь ничего не сможет сделать. И конкретно это является причиной отказа, а не "контроль рисков".
У пользователя должна быть возможность остановить любой скрипт. Забирать эту возможность мы ни под какими "пожеланиями" не будем.
Я разве просил всем все запретить? Напоминаю, что я просил сделать возможным устанавливать пароли на остановку и запуск скриптов. Пароль будут (или не будут если не нужно) устанавливать сами пользователи. И хранить пароль можно "в разных карманах". Кому нужно (как мне например) подальше положат, кому не нужно - вообще не введут.
А кто-то введет и забудет. Как уже было сказано, в таком виде пожелание является неприемлемым.
Imersio Arrigo написал: В итоге я короче так и не понял, поможет ли мне ваше CoLibri в разрезе обсуждаемой темы или нет.
CoLibri это и есть модуль управляемый брокером, который следит за операциями и рисками о котором Вы просили. Но для блокировки торговых операций он не подходит. Однако, если Ваш брокер пойдет на уступки, он может для Вас сделать такую услугу.