а это число постоянно меняется, или оно постоянно? после запуска скрипта оно будет меняться? У меня такая задача решается путем сохранения значения переменной во внешний файл, а в скрипте идет импорт этого файла
Хочу заказать скрипт для Quick + настройку, Хочу заказать скрипт для одновременного выставления stoploss/takeprofit при выставлении заявки в стакане одной клавишей (параметры заявки заданы заранее)
nikolz написал: Скорость перерисовки таблицы существенно выше, чем запаздывание прихода данных в ваш терминал по каналу интернет.Поэтому актуальность наблюдаемых данных мало зависит от скорости рисования картинок на экране.
Хочу заказать скрипт для Quick + настройку, Хочу заказать скрипт для одновременного выставления stoploss/takeprofit при выставлении заявки в стакане одной клавишей (параметры заявки заданы заранее)
Если используется стакан котировок, созданный в интерфейсе Рабочего места QUIK, штатный функционал QLua действительно не позволяет определить, какая именно котировка выделена в стакане, а значит и получить ее параметры. Однако таблица котировок также может быть создана и наполнена с помощью пользовательского скрипта; в этом случае будет доступна функция обработки различных событий в таблице. Более подробную информацию можно найти в Руководстве пользователя Интерпретатора языка Lua (раздел 3.15 Функции для работы с таблицами Рабочего места QUIK , описание функции SetTableNotificationCallback ).
Благодарю! Наблюдая как быстро меняется стакан, мне кажется маловероятным, что скорости перерисовки таблицы Луа хватит для того, чтобы держать "самописный" стакан в актуальном состоянии. Могу ошибаться .
Хочу заказать скрипт для Quick + настройку, Хочу заказать скрипт для одновременного выставления stoploss/takeprofit при выставлении заявки в стакане одной клавишей (параметры заявки заданы заранее)
Если я правильно понимаю, Квик не позволит определить значение в стакане, на которое вы нажали. Поправьте меня более опытные программеры или разработчики, я прав или нет?
В общем написал вот такие функции. берите кому нужно
function get_price_max () local res = getParamEx (param.class_code, code_bumagi_full, "PRICEMAX") if type (res) == "table" then res = string.gsub(res.param_image,string.char (160),"") res = tonumber (res) return res end end --get_price_max
function get_price_min () local res = getParamEx (param.class_code, code_bumagi_full, "PRICEMIN") if type (res) == "table" then res = string.gsub(res.param_image,string.char (160),"") res = tonumber (res) return res end end --get_price_min
Alexey Danin написал: Здравствуйте.Определить можно с помощью параметров "Максимально/Минимально возможная цена"(Макс.возм.цена, Мин.возм.цена), в скрипте наименование параметров PRICEMAX и PRICEMIN, для того, чтобы посмотреть наименование параметра можно воспользоваться экспортом по DDE с включенной опцией "Формальные заголовки".Обращаем внимание, что трансляция этих параметров зависит от настроек на стороне брокера, если у Вас таких параметров нет, то Вам необходимо обратиться к брокеру.
Покопался на сайтах, и судя по всему мне поможет функция getParamEx
В документации QLUA.chm про них немного написано, в частности что вот так ее вызывать TABLE getParamEx (STRING class_code, STRING sec_code, STRING param_name)
Но совсем не понятно, где найти полный список значений param_name Как это сделать?
Alexey Danin написал: Здравствуйте.Определить можно с помощью параметров "Максимально/Минимально возможная цена"(Макс.возм.цена, Мин.возм.цена), в скрипте наименование параметров PRICEMAX и PRICEMIN, для того, чтобы посмотреть наименование параметра можно воспользоваться экспортом по DDE с включенной опцией "Формальные заголовки".Обращаем внимание, что трансляция этих параметров зависит от настроек на стороне брокера, если у Вас таких параметров нет, то Вам необходимо обратиться к брокеру.
Что-то это очень сложно для меня ( DDE никогда не использовал. А разве нельзя каким-то запросом получить все данные по торгуемому инструменту и найти там нужный параметр?
При выставлении тейка за границами максимальной цены выдает ошибку
Ошибка создания заявки. [GW][32] "Цена сделки вне лимита".
Вопрос в том, а как определить из таблицы параметров инструментов эти значения максимума и минимума? В таблице то я их вижу, а как в макросе получить, пока не знаю.
Вроде разобрался. Видимо прошлые версии не выдавала ошибки о наличии файла, а в версии 9 эти сообщения стали выдавать. А части файлов действительно не было
Долгое время пользуюсь версией квика 8.9 Когда попробовал обновить до верссии 9.2 мой робот стал выдавать ошибку
Файл 'M:\Sergey\Program\QuikRobots\автостоп\images\B15_20_2_l.bmp' не найден.
Хотя такой файл существует, и на версии 8.9 этот бот работает и все графические файлы прекрасно отображает на графеке. Когда заменил название папки на английское написание, все заново заработало. Скажите, почему новая версия квика или луа перестали поддерживать русские названия попок? И как это можно исправить?
Daniil Pozdnyakov написал: Как уже было сказано в данной ветке форума, в терминале на данный момент нет возможности отключить появление контекстного меню в пользовательских таблицах. Пожелание на реализацию данного функционала уже было зарегистрировано от Вас.
понятно. просто была информация, что вроде как можно. ок, хотелось бы вернуть удобство в пользование таблицами
Старатель написал: 2) Второй вариант прямо противоположный. По умолчанию, при срабатывании события, отображается контекстное меню. Чтобы не отображать меню, надо принудительно запретить его в коде:Код SetTableNotificationCallback(id, function(id, msg, row, col) if msg == QTABLE_CONTEXTMENU then return end end)
У меня игнорирование события QTABLE_CONTEXTMENU стоит давно в процедуре обработки событиями. Но толку от этого никакого. В версии квика 7.х контекстного меню не пояляется как раньше, таки сейчас. А в версии 8.х и выше, оно появляется при нажатии правой кнопки мыши. А макрос один и тот же.
Дополнительное предложение, как устранить проблему, сохранив при этом функционал "выпадение меню с сортировкой". Данное меню должно выпадать не прямо под мышкой, а чуть правее и ниже, чтобы повторное нажатие на правую кнопку мышки тоже срабатывало как правая кнопка мышки на этой же ячейке, а не попадало в окошкоо сортировки. Тогда и овцы будут целы, и волки сыты. Зарегистрируйте это как пожелание.
Проблему, о которой ведётся речь, воспроизвести не удалось. Поэтому предлагаем обновить терминал до актуальной (9.2.2) версии и проверить, актуальна ли будет проблема. Если она всё-таки сохранится, просьба прислать полный пример кода, на котором она воспроизводится.
В версии 9.2 такая же картина - при нажатии правой кнопкой мышки на любую ячейку таблицы LUA выпадает меню сортировки
Данная особенность воспроизвелась и при первых попытках её воспроизвести, но именно как недочёт интерпретирована не была. Было выдвинуто предположение, что возникает именно ошибка, поэтому было написано, что с нашей стороны её воспроизвести не удалось. В следующий раз, чтобы избежать подобных ситуаций, просьба присылать, пожалуйста, скриншоты, на которых проблему отчётливо видно.
Приношу извинения за доставленные неудобства.
понятно, спасибо за пояснения. Как быть с тем, что подобный запрос уже был, судя по сообщению в чате, не один раз, но никаких подвижек в этом направлении нет?
Проблему, о которой ведётся речь, воспроизвести не удалось. Поэтому предлагаем обновить терминал до актуальной (9.2.2) версии и проверить, актуальна ли будет проблема. Если она всё-таки сохранится, просьба прислать полный пример кода, на котором она воспроизводится.
И еще вопрос - что вы делали раньше, что воспроизвести не удалось, а как только я выложил видео, у вас сразу получилось? Откровенно говоря, есть впечатление,что вы делаете свою работу спустя рукава, и есть желание сообщить об этом руководству компании
Дело в том, что отключить появление контекстного меню на данный момент нельзя. Можем зарегистрировать пожелание на добавление такой возможности, регистрируем ?
Регистрируйте.
У меня еще вопрос - кто и зачем это нововведение внедрил? проводился ли опрос пользователей квика, чтобы такое новешство было внедрено?
Проблему, о которой ведётся речь, воспроизвести не удалось. Поэтому предлагаем обновить терминал до актуальной (9.2.2) версии и проверить, актуальна ли будет проблема. Если она всё-таки сохранится, просьба прислать полный пример кода, на котором она воспроизводится.
Данил, эта проблема тянется с 2013 года, когда в терминале появился луа все таки прежде чем писать "не воспроизводится", следует хоть как то проверить.
Насчет 2013 ничего подобного на наблюдал. Проблема есть только в 8й версии квика, выше еще не ставил. Даже в 7й версии квика. которую иногда использую, этой проблемы нет.
Помогите пожалуйста. При переходе с 7й на 8ю версию квика в неё появилась очень неудобная особенность - во всех таблицах,созданных на LUA при нажатии правой кнопки мышки на ячейке стало выскакивать меню с предложением изменить сортировку таблицы. Это капец как неудобно, т.к. правая кнопка мышки задействуется для изменения значения в ячейке в бОльшую сторону, и ее иногда надо нажимать несколько раз подряд. Подскажите, как можно отключить это выпадающее меню? Заранее спасибо за ответ.
Помогите пожалуйста. При переходе с 7й на 8ю версию квика в неё появилась очень неудобная особенность - во всех таблицах,созданных на LUA при нажатии правой кнопки мышки на ячейке стало выскакивать меню с предложением изменить сортировку таблицы. Это капец как неудобно, т.к. правая кнопка мышки задействуется для изменения значения в ячейке в бОльшую сторону, и ее иногда надо нажимать несколько раз подряд. Подскажите, как можно отключить это выпадающее меню? Заранее спасибо за ответ.
Спустя какое-то время операцию провести разрешило. Они написали, что когда будут проблемы в другой раз, чтобы сразу писал им, будут смотреть, в чем проблема.
Последнее время наблюдаю очень странную и неприятную картину. У меня на счете достаточно средств, чтобы открыть позицию, но при попытке совершить операцию мне выдает странную фразу типа:
Скорректированное значение НПР1 -65572.12 (RUB) меньше 0
Ситуация такая: на счете у меня свободно 7.800 рублей Более того, несколько секунд назад, я закрыл позицию вверх на 1 контракт по этому же самому счету. Т.е. на позицию вверх со вчерашнего дня денег хватало.
Я хочу развернуть позицию вниз на 1 контракт. Мне выдает такую ошибку "Скорректированное значение НПР1 -65572.12 (RUB) меньше 0"
ГО по Si на данный момент всего 4.484 рубля.
Ведь не может быть такого, что при таком ГО и моем остатке мне не дает открыть позицию на 1 контракт?
Александр написал: Действительно, имеется такая проблема, дело не в тормознутости квика, у меня тоже выскакивает окно ввода логина - пароля на передний план, поверх всех окон, даже если будеш смотреть какие - нибудь новости. Окно авторизации вскочит поверх всех окон, что очень неудобно.
Во первых. Если отвалился у вас quik, естественно, об этом необходимо узнать, и чем быстрее, тем лучше. Вы же в нем деньги зарабатываете, ну или просераете. Так что всплывание окна логина не передний план, это более чем логично и правильно.
Во вторых. На нормальном железе и чистой системе quik летает. У меня четыре-пять секунд до окна логина грузится, более чем приемлемо.
Ну и в третьих. Как можно на одном компе и квик рабочий держать и другими делами заниматься? Надо же понимать риски. Всякие вирусы еще не хватало подцепить, да или просто система глюкнет не во время, и из-за этого сделку просрете. Отдельный комп, чистая обновленная система и квик.
Может мы сами решим, на каком компе нам чем заниматься? У меня вообще все автоматом происходит , мне не надо смотреть на терминал. И логин тоже автоматом. то что у вас не автоматизировано, это ваши сложности. Поэтому выскакивание окна логина дико мешает.
Плюсую к вопросу! загадка полная. Первый час или два, несмотря на прибыльную позицию это значение равно нулю стабильно. Потом может быть больше или меньше нуля независимо от прибыльности текущей не закрытой сделки. После дневного клиринга тоже все не понятно.
Есть косяк - что когда в настройках терминала несколько вкладок, и на одной из вкладок работает робот на луа, и ему надо пересоздать окно, то он пересоздает его в той вкладке, в которой сейчас работает пользователь.
Как можно этого избежать?
И как можно определить название вкладки, в которой сейчас работаешь, чтобы использовать в параметрах робота?
Владимир написал: 1) OnTimer прекрасно эмулируется в цикле со sleep, там же указывается период срабатывания (у меня их даже два: раз в полторы секунды и раз в 15 секунд). А никакого OnInit вообще нет.
Подскажите, а как вам удается два цикла со sleep сделать? Вы внутри main их делаете? или внутри какого-то колбека?
Я тоже использую sleep в main, но насколько я исследовал этот вопрос, когда идет функция sleep он полностью прекращает свою работу и просто ждет это время
Сталкивался с подобным на ноутбуке. Толщину рамки квик видимо берет из настроек окон винды. и лечится это твикером винды, например я использую WinaeroTweaker, раздел Customize windows border. Делаешь его минимальным и радуешься
Поддерживаю проблему! Правую кнопку мышки активно использую для изменения значения в ячейке таблицы. Теперь после каждого нажатия выпадает меню, которое мне абсолютно не нужно. Сделайте что-нибудь! Что ни обновление квика, все неудобнее и неудобнее. Издевательство какое-то
думаю выставление заявок ничем не лучше, чем выкладывание файлов на локальном диске. У меня контроль работы скриптов сделан так же - скрипт выкладывает файл, другая программа их регулярно удаляет, и если файл в следующий раз не появится - то сигналит
а последнее время меня здесь на форуме научили пользоваться pcall, чтобы даже в случае ошибки скрипт не прекращал работу, а выдавал ошибку, но продолжал. Тоже удобно.
swerg написал: 2) Либо произошла какая-то (любая) ошибка -> тогда в окне скриптов гарантированно будет отображена ошибкаВерно? других вариантов нет? Точно нет?
Одно время я очень долго бился над поиском одной ошибки, и вот где она была:
Если некорректная операция, например деление на ноль, или например a = "b"..nil , совершается из функции main, то скрипт прекращает работу и выдает ошибку. Однако если такая же ошибка происходит из функции колбека (возможно не всех) но из тех, которые я использовал, например при изменении праметра инструмента, то скрипт просто останавливается, и ошибки никакой не выдает.
Давно хотел написать об этой ошибке, чтобы ее странили. Раз уж разговор зашел об этом, то прошу устранить данную ошибку.
Для решения данной проблемы пришлось делать так, чтобы в функции колбека создавалось отложенное действие, а из main оно выполнялось. Тогда об ошибке сообщается
Александр М написал: Мне кажется рекламировать так явно свои продукты на форуме разработчиков не очень хорошо. Если все так будут делать, то сообщения с реальными проблемами затеряются.
Какая к черту реклама? человек даром делится своими наработками, написанными на луа, как прибамбасу к квику, который улучшает свойства самого квика. А вам все заговор мерещится
Egor Zaytsev написал: Сергей, вы мы сделали запрос по поводу данной проблемы. Ответьте, пожалуйста, будем разбираться.
данную тему я создавал по вопросу ...... читайте первое сообщение. Прошу не уводить тему в область "почему квик долго грузится", это вечная проблема. и я не хочу тратить на ее решение свое время, ибо не верю, что вы можете что-то сделатть. Ответьте по существу созданной темы
Заодно добавьте возможность менять порядок скриптов. 21й век а в программе до сих пор окно со скриптами не масштабируется и нет возможно поменять порядок скриптов