Николай, если спрашиваю, значит надо! Оставьте свои комментарии при себе.
Ваш ответ (впрочем как часто и бывает) бесполезен. Во-первых, о таком способе и так понятно было, а во-вторых, когда речь идет о массиве данных из 20-30 полей, да еще и структура данных с текстовыми индексами, то это вообще составляет целую проблему и потребует написания целой функции. Так что дайте, пожалуйста, ответить на этот вопрос тем, кто может дать дельный совет!
Sergey Denegin написал: - захожу в квик снова - добавленного ранее скрипта нет!
Т.е. чтобы квик "запомнил" уже про этот скрипт, приходится выходить из квика и снова заходить. И это только для того, чтобы заставить квик помнить список скриптов. Кроме того, список скриптов не хранится в файле wnd, так что "Сохранить настройки в файл." не работают.
Sergey Gorokhov написал: Ну так она и сейчас есть в Система - Сохранить настройки в файл.
Это не совсем так. Делаю последовательность действий: - открываю Сервис - Луа скрипты - добавляю туда скрипт (запускаю или нет не важно). - потом начинаю работать с другим скриптом, который зависает. Приходится удалять процесс квика. - захожу в квик снова - добавленного ранее скрипта нет!
Sergey Gorokhov написал: Это некорректная формулировка. На самом деле, чтобы скрипт запускался автоматически, достаточно его правильно написать и запустить. А вот увидеть (проверить) что он действительно запустился автоматически, можно только после перезапуска.
Не совсем так, потому надо еще чтобы Квик был закрыт дОлжным образом. А если он завис в результате отладки, то состояние макросов опять будет забыто. Об этом я и говорю в пожелании 3.
Причем до вчерашнего дня все у меня было нормально, пока я не запустил один раз с параметром -clear а теперь даже без него ничего не видится.
А вот Спрос и предложения за более ранние дни все на месте. Поясните кто-нибудь, почему так получается, более старые данные на месте, а вчерашнего дня нет
Данные, отражающие текущее состояние и всю историю изменений? и галочка Получать пропущенные данные
Так же хотелось бы понять, что значит галочка Очищать данные после смены даты. В документации (по F1 в квике) как-то не понятно написано. И зачем вообще нужно очищать эти данные? А если я хочу оставить их в квике для анализа предыдущих дней, то как нужно сделать настройки?
В процессе отладки частенько возникают такие ситуации, когда скрипт подвисает, т.е. начинает сильно грузить терминал, и уже ничего не сделаешь,приходится снимать задачу с квиком и заходить заново. Можно ли как-то клавишами или еще какими-то методами прекратить работу скрипта?
Sergey Denegin написал: Пожелание 2 Нет так вопрос решается в коде. Раз роботу нужны данные, значит робот и должен проверять доступность нужных ему данных. И потом как уже много лет обсуждалось, нет такой точки которая обозначает момент когда загрузка данных закончена, вернее она есть - это окончание сессии. Можно проверить только актуальность поступающих данных, а это делается в коде робота.
Можно хотя бы сделать запуск скриптов после загрузки параметров окон из файла *.wnd, потому что пока они не загрузились, нет ни стакана, ни графиков.
Цитата
Sergey Gorokhov написал: Пожелание 3 Это пожелание не понятно. О каких параметрах скриптов идет речь? И зачем выходить и входить чтобы сохранить свойства?
Речь о том, что сейчас, чтобы скрипт запускался автоматически при запуске квика, его нужно запустить, а потом выйти и войти в квик, чтобы квик запомнил его состояние. Это пожелание сочетается с Пожеланием 1, потому что когда мы поставим там галочки, хотелось бы, чтобы эти галочки не слетели в случае зависания квика. А для этого в окне со списком скриптов нужна кнопка "сохранить". И быть спокойным, что этот список уже не изменится после аварийного перезапуска квика. К сожалению в процессе отладки квик часто виснет при возникновении каких-либо моментов, и это сильно неудобно.
Читая множество вопросов по поводу того, как ведут себя скрипты при запуске квика у меня есть одно предложение, которое, как мне кажется, понравится всем и уберет много неудобства пользователям, и избавит Вас от лишних вопросов. Последней каплей было то (недавно прочитал на форуме) что оказывается скрипты запускаются с нулевого состояния, и все равно не помнят все то, что в нем происходило в предыдущей сессии.
А идея проста, и то, что реализовано в других терминалах: при добавлении скрипта в список скриптов, сделать дополнительный параметр "автозапуск". Он и будет определять, запускать ли скрипты при входе Квика или нет. Потому что есть такие скрипты, которые надо запускать, а есть такие которые не надо. И если я запустил тот, который мне не нужен при следующем запуске, а потом вышел из Квика, и при следующем запуске Квика он снова запустится, это будет ОШИБКОЙ. Тоже самое наоборот!
Пожелание 2. Сейчас при входе в квик скрипты запускаются сразу, такое впечатление еще до того, как загрузятся графики. Однако роботам такой состояние очень тяжело отслеживать и они вылетают с ошибкой, что приводит к ощущению, что квик забыл запустить робота. Если уж запуск робота до появления данных свечей кому-то очень необходим, то учтите и потребности тех, кому этот запуск на раннем этапе ОЧЕНЬ МЕШАЕТ. Предложение простое: добавить еще одну галочку у скрипта - "запуск до загрузки данных", или "после загрузки данных"
Пожелание 3: сохранять параметры скриптов не при выходе из квика, как это сейчас, а сделать отдельную кнопочку в окне со скриптами "СОХРАНИТЬ". А то для того, чтобы сохранить свойства скриптов приходится выходить и входить. Неудобно очень!!!!!!
Николай, вы знаете как отключить упоминаемые вам ТТП? предложение писать свою выгрузку и загрузку для обыных свечей выглядит издевательством, поэтому давайте обойдемся без подобных советов с Вашей стороны
Sergey Denegin написал: Проверьте что в Система / Настройки / Основные настройки... , раздел «Программа» / «Сохранение данных» отмечены настройки - Данные, отражающие текущее состояние и всю историю изменений и Получать пропущенные данные
Здравствуйте!
Опять возникла такая же проблема, как и описана в первом сообщении ((( Вчера я боролся с долгим запуском квика (он долго грузился из-за большого файла info.log, и на страницах форума я нашел совет запускать квик с параметро -clear И вот теперь квик запускается быстро, и вчера график суммарного спроса и предложения был на месте, даже когда я загружал квик без подключения к серверу. А сегодня он пропал, и никакими методами возвращаться не хочет. Пробовал делать и "перезаказ данных" , все равно не появляется график Спроса и предложений за вчерашний день.
Sergey Denegin написал: Не стройте графиков по параметрам из ТТП и не будет большого файла.
А где это настраивается? Я тоже использую обычные свечи цены и свечи Суммарного спроса и предложений. И индикаторы свои. Но info.log все равно большой.
У меня такая же проблема, как и у многих пользователей квика - достаточно быстро растет файл info.log и потом при запуске квика, он думает о чем-то очень долго, прежде чем начать как-то реагировать на мои действия. Перечитал много разных веток на форуме, но так и не получил полного представления о том, что зачем и почему.
Просьба ответить на несколько вопросов для полного понимания:
1) какая информация пишется в файл info.log? На сколько я смог заметить, если его удалить, то квик точно также отображает данные графиков, которые были загружены ранее. Что именно тогда в нем записано в таком объеме, и зачем Квик читает это все оттуда так долго при запуске, если никуда потом не отображает?
2) В какой момент она потом оттуда используется?
3) Без понимания предыдущих вопросов возникает вопрос - зачем он вообще тогда нужен, если квик без него прекрасно быстро грузится и имеет отображение всех необходимых графиков на настоящий момент.
4) Я читал совет про запуск с "-clear". Возникает разумный вопрос - если есть такой ключ, то почему нельзя сделать такой же параметр в настройках?
5) Если от самих разработчиков следует совет "запускайте с ключом "-clear", то значит квику этот файл не нужен, тогда зачем тратится ресурсы программы (надо сказать и так не сильно быстро работающей в некоторые моменты), чтобы еще писать в большом объеме что-то в этот файл?
Заранее спасибо за разъяснения про этот файл.
P.S. В предыдущих дискуссиях читал еще про файл alltrade.dat, что он тоже замедляет работу, но у меня он небольшой, поэтому пока не критично. Но в целом если эти два файла как-то связаны друг с другом, то можно сразу ответить на все эти вопросы и про него. Тогда можно даже тему переименовать, чтобы более поздние читатели легче могли найти информацию
Здравствуйте! При программировании на Qlua не первый раз сталкиваюсь с проблемой, что функция message не вводит в окно сообщений строковую переменную, если в ней в любом виде содержится слово "анализ". Любыми русскими буквами. Одно время потратил очень много времени, пока понял, что мои сообщения отладки не выводятся на экран по этой причине. Пришлось менять на другое слово. Можно ли это как-то исправить? А то как-то странно выглядит, что обычная текстовая фраза, а полностью блокирует вывод на экран. Возможно есть и другие подобные слова.
Imersio Arrigo написал: А вам, не приходило в голову, что в этом файле буквосочетание RIM6 может в каком-то месте быть случайным, и не означать код инструмента?
Мне проще проверить чем ломать голову и тыкать 20 или 150 раз мышкой. Пока все работало
тоже всегда удивлялся, как можно так "нелюбить" клиента, что не предусмотреть такую функцию. Однако в силу своей лени нашел неплохой быстрый способ: открываете свой файл с настройками *.wnd в текстовом редакторе (желательно битового) и делаете глобальную замену одного кода, напирмер RIM6 на RIU6 сохраняете, и загружаете в квике. Я использую под эти цели FAR Manager. Главное, убедитесь, что старый и новый файл имеют одинаковый объем. Если объемы разные, чточит редактор убивает какие-то незначимые символы,и тогда нужно брать другой редактор.
Но хотелось бы от разработчиков увидеть такую функцию, как замену одного иснтрумента на другой.
Увы, я почти не программировал на объектно ориентированных языках, поэтому такого не встречал нигде, но и не встречал чего-то подобного, как _G, поэтому решил поинтересоваться, может есть что-то подобное. В том же VBA ведь есть свойства объектов, где через точку можно получить и цвет, и содержание ячейки. Думал вдруг у переменной есть что-то типа А.имя, которое будет возвращать имя переменной
Пока единственный способ сделать то, что мне нужно, это передавать в дочернюю процедуру не сам параметр, а его имя
например:
vivod("a")
а уже внутри нее получать значение через _G
Кстати тогда сразу вопрос - _G дает получить значение только глобальных переменных. А можно ли получить доступ подобным образом, если переменная описана локально в этой процедуре?
задача универсальности функций. Один из самых простых примеров, для отладки часто нужно вывести значение переменной. Чтобы не писать каждый раз message("a="..tostring(a))
хочется сделать универсальную функцию: vivod(a) чтобы она выводила и название переменной, и ее значение
Ну и для более серьезных вещей, когда одна универсальная функция работает с данными разных интервалов времени, чтобы в нее в качестве параметра не нужно было передавать кучу параметров то как входящий массив данных, интервал времени, исходящий массив данных а было достаточно указать только имя входящего массива данных, а он уже по его имени сможет определить какого интервала данный массив и куда выгрузить данные.
Другими словами хотелось бы иметь функцию обратную функции _G. Потому что получить значение переменной по ее названию можно через _G, а вот обратно пока не знаю как, и получается не всегда можно применить эту _G во всех возможных вариантах.
Буду благодарен за помощь, потому что ссылка на 4.9 – The Debug Interface как-то очень уж замудреная
Как вывести значение переменной, это понятно. Мне нужно вывести ИМЯ ПЕРЕМЕННОЙ. Причем не конкретной переменной, это понятно как, а той, которая например в качестве параметра была передана внутрь функции
Подскажите пожалуйста, можно ли имея переменную, поцедуре (например которая выводит значение этой переменной) получить каким-нибудь образом имя этой переменной?
Хочется сделать функцию, которая выводила бы переменную с ее именем:
Например
function print_perem (perem) name_perem = ???????? message (name_perem .."="..tostring(perem)) end
Поясните пожалуйста смысл этой фразы про "допустимое количество колбеков". Не совсем понятно, ведь суть колбека в том, что он срабатывает только при обновлении чего-нибудь, и логично, что это должно быть один раз на каждое изменение без пропусков и задвоений. Иначе весь смысл теряется, если каждый раз еще нужно проверять, а не дубликат ли это
Специально сделал только что выгрузку целой таблицы trade из функции Ontrade при совершении одной сделки. Как и писалось выше, на одну сделку Ontrade срабатывает 3 раза. И все три раза записи абсолютно одинаковые, о чем говорит лог. Зачем это? Ранее писалось, что они чем-то должны отличаться
я тоже столкнулся в роботе с дубликацией колбека на ontrade. но т.к. робота пишу недавно, то решил, что это мой глюк, и так всегда было, и это я просто заметил недавно. К тому же он у меня просто запускает некую процедуру, которая и так работает 1 раз в секунду, поэтому сильно задвоение не мешало. Но как-бы все равно не кравиво, что колбек работает криво.
Я решил проблему запоминанием всех сделок в текстовую переменную через пробел. А затем при повторном запуске проверкой, есть такой номер в этой строке или еще нет
Подскажите, а где скачать версию 7.2? Это та что на сайте как Junior качается? И еще вопрос - если трейдер еще не обновил версию программы (я через финам подключен), будет ли работать скачанная у вас на сайте? Заранее спасибо!
Здравтсвуйте! Столкнулся с такой проблемой - при переходе на новый ноутбук потребовалось перенастроить шрифты в квике, чтобы более оптимально использовать пространство рабочего стола. Захожу в настройки шрифтов, и везде ставлю MS Serif , размер 8 во всех настройках.
Все отлично отображается. Настраиваю размеры окон как мне надо. Для надежности вручную сохраняю настройки в файл, хотя при выходе они и так сохраняются. Потом выхожу из квика, захожу снова. Настройки загружаются, всё, кроме правильных шрифтов. Размер шрифтов слетает на 5, при этом сам шрифт остался MS Serif. Поэтому каждый раз при входе в квик приходится заново менять размеры шрифтов. Если вернуть настройки в стандартные, то шрифт и размер становится Segoe UI 9
Очень странно, но у меня такая же картина со скриптами. Но при этом если робота запустить вручную, даже при отсутствии соединения с сервером, он прекрасно запускается и никакой ошибки не выдает. Он у меня может работать по историческим данным. Как тогда объяснить то, что он не запускается автоматически при старте Квика?
Это очень приятная новость! А скажите, если Финам пока еще не обновил программу, то я могу с сайта ее скачать и поставить? Это тоже самое, или каждый брокер модифицирует как-то программу?
В луа для этого есть глобальная переменная _G через которую можно обратиться к любой переменной, или даже процедуре. например _G["a1"] выдаст значение переменной а1 а _G["a1"]["b2"] выдаст значение к элементу массива a1.b2