Присоединяюсь к Старателю, в новых версиях QUIK (от 8.13 и выше), по DelLabel метки не удаляются в колбеке OnDestroy, хотя должны, а удалять их по DelAllLabels нельзя, т.к. на 1 графике может быть много индикаторов со своим набором меток.
Во всех моих роботах профит/просадка по позиции естественно считается. Это вообще базовая функция любого робота должна быть, так что думаю, что у коллег она естественно тоже наверняка есть.
Но я открытый код не предоставляю, т.к. там мои наработки по каркасу. Вы можете заказать робота у меня или попытаться найти код на просторах интернета. Но расчет профита - это самое простое, что должно быть в каркасе.
Не в QUIK точно, просто надо считать от среднеэффективной цены позиции и все и Вам будет неважно, какой контракт Вы закрываете по очередности. В QUIK вообще каждый клиринг пересчет позиции идет, а скрипте можно (и надо ИМХО) считать от открытия позиции и до ее закрытия.
В QUIK есть остаток по счету, у него нет понятия - первый/последний. Если вы хотите профит посчитать, то все это делается в рамках Вашего скрипта. Сам QUIK считает относительно среднеэффективной цены позиции/
Старатель написал: QUIK 9.5.0.42 По какой-то причине в таблице сделок отображались не все совершённые сделки: по фильтру аккаунта и кода бумаги в таблице сделок было 83 строки, хотя в реальности было совершено 92 сделки. Причина этого глюка, скорее всего в том, что терминал постоянно тупил, и сервер принудительно его отключал по таймауту. (Сделки совершались с другого терминала.) После переподключения к серверу всё повторялось по кругу. Когда я закрыл два двойных графика (оба графика были созданы давно, и раньше таких проблем не вызывали), терминал ожил. Но вот прогрузились не все сделки. Пришлось закрывать QUIK и удалять файл trades.dat (заодно удалил и orders.dat). И только после таких манипуляций все сделки прогрузились.
В общем, в QUIK не хватает в этом месте проверки на корректность загрузки и отображения заявок и сделок. Заодно в менеджер окон неплохо бы добавить CPU Usage каждым окном, чтобы было проще искать проблемное окно.
Видимо 9.5.0.42 вообще глючная. Я тоже завел проблему с тестовым скриптом, что терминал наглухо вешается, при считывании данным по метке на графике в потоке main, больше он ничего не делает, двигаешь метки, терминал падает.
Владимир написал: Айдар, Функции обратного вызова не имеют ни малейшего отношения к способу хранения данных - это просто прерывания. И немного найдётся способов затормозить терминал, чем использование OnAllTrade. ::
Согласен полностью. Мало того, если вам Айдар вдруг придет в голову обновлять поля таблицы из прерывания OnAllTrade, то вам можно будет только посочувствовать.
Описанная в данном обращении проблема была устранена в версии 9.4.0 терминала QUIK. Рекомендуем вам обновить версию ПО. Приносим извинения за причиненные неудобства.
Правильно понимаем, что имеется в виду возможность получения реального количества баров индикатора в случае, когда оно отличается от количества баров источника данных (в частности, индикатор "сдвинут вправо" от исходных данных)? В текущей реализации такая возможность отсутствует.
Регистрируем пожелание на соответствующую доработку?
Для меня достаточно получить реальное количество баров, как Вы написали. Регистрируйте. Можно прямо в функции Size() параметр добавить (если это из Индикатора вызов) или в функцию getNumCandles ("Идентификатор"), если это вызов из Индикатора или кода скрипта..
Александр М написал: Есть функция: num = getNumCandles ("Идентификатор") Она вернет число баров, включая фантомные бары, которых нет, но которые QUIK создает чтобы показать значения линий индикаторов в будущем.
В результате как получить текущий реальный бар со значениями цены через getCandlesByIndex("Идентификатор",Номер линии,num-1,1) ?
Перебор всех баров вглубь не предлагать.
Должна быть функция или флаг у функции getNumCandles, чтобы данная функция вернула число реальных баров Инструмента. Как минимум это относится к самой Цене, все остальное можно смотреть по ней.
перебор всех баров справа налево с конца не даёт результата, даже если идти этим путем. Индикатор может быть присвоен индикатору, который даёт значимые нулевые значения. Пример - фрактал. Поэтому отличить фантомные бары, полученные справа сдвигом от значимых э, дающих пустое значение, нет возможности.
вопрос к разработчикам. Как, использую ваш интерфейс, отличить фантомные бары, полученные сдвигом от значимых, дающих пустое значение?
Согласен. Как итог - как получить число баров, ИСКЛЮЧАЯ фантомные "будущие бары"? Если это число в результате запуска getNumCandles (может с доп. параметром) будет гарантированно выдаваться, то все остальное решаемо.
Есть функция: num = getNumCandles ("Идентификатор") Она вернет число баров, включая фантомные бары, которых нет, но которые QUIK создает чтобы показать значения линий индикаторов в будущем.
В результате как получить текущий реальный бар со значениями цены через getCandlesByIndex("Идентификатор",Номер линии,num-1,1) ?
Перебор всех баров вглубь не предлагать.
Должна быть функция или флаг у функции getNumCandles, чтобы данная функция вернула число реальных баров Инструмента. Как минимум это относится к самой Цене, все остальное можно смотреть по ней.
Ваше письмо получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Подтверждаю проблему. Мало того, при добавлении метки из скрипта lua, данная галка привязки НЕ ставится, а в параметрах функции выставления метки этот флаг задать нельзя.
разве с 5.4.2 возникают проблемы? я как то не заметил их
Хотелось бы официальный ответ от разработчиков получить, что данный архив для компиляции можно использовать. Лично мне пока и 5.3.5 хватает, все работает стабильно, никаких проблем нет по моим продуктам.
информацию о данном изменении Вам должен был сообщить брокер, клиентом которого являетесь.
Прошу сообщить: 1. По какой логике в новой версии насильно снимаются галки "Оставлять трендовые линии, фигуры" 2. Где в описании по изменениям версий написано об этом? https://arqatech.com/ru/support/files/quik-workstation/ 3. Почему из-за фантазий Ваших разработчиков, которые данную галку сняли, мы должны каждому пользователю объяснять, как ее восстанавливать обратно, т.к. слетают все метки на всех графиках?
В первую очередь, рекомендуем выполнить обновление до актуальной версии программы (8.12). В случае, если описанное поведение сохранится, просим прислать примеры (в виде снимков экрана), которые явным образом ее демонстрируют.
Если Ваш брокер не предоставляет актуальную версию терминала, скачать ее можно с нашего FTP: ftp://ftp.quik.ru/public/updates/8.12/quik_8.12.0_upd.zip Необходимо будет закрыть терминал и распаковать скачанный архив в его корневую папку с обязательным подтверждением замены всех предложенных файлов.
Обновился до версии 8.13.1.16 (насколько я знаю, это самая последняя), проблема НЕ решена, брокер БКС:
Как видно итоги показывают, как сумму рубля и доллара, где доллар просто плюсуется как рублевое значение (Во всех показателях, которые выделены в синих прямоугольниках, включая те, что я заштриховал, как конфиденциальную информацию). Если купить 1000$ на валютной секции, то QUIK пишет убыток МИНУС 73000 рублей (-74000+1000).
Прошу срочно исправить данную ошибку или указать, как настроить терминал QUIK для корректного показа.
Добрый день.
Есть гипотеза, что у Вас нет в терминале кросс-курсов, откройте таблицу текущих торгов и проверьте наличие режима Кросс-Курсов (CROSSRATE), если таких нет, то необходимо обратиться к брокеру, чтобы он выдал Вам права на класс режима CROSSRATE.
Добавил в Котировках раздел Кросс-курсы валют, помогло, спасибо.
СергейК написал: Касательно первой проблемы (видеть инструменты в их валютах и значение средней цены), у меня показывается правильно, но у меня не акции, а облигации. Неправильно показывается только RUSB ETF, к-й я покупал за доллары, но он торгуется и в рублях, и видимо у него основная валюта - рубль.
Но с облигациями проще - там цена в процентах, и стоимость от валюты не зависит. Но я бы не возражал, чтобы в эту таблицу (Состояние счёта) добавили столбец с валютой, чтобы валюта бумаги была очевидна. Этот столбец будет немного избыточен для денежных позиций, но это мелочи. И его значение лучше показывать символом ($), а не текстом (USA Dollar).
Я на это не обращал внимание. т.к. про сами бумаги я и так знаю, какая в какой валюте, но сейчас посмотрел, что для строк столбца "валюта" вообще нету для выбора.
Но для начала надо исправить Итоговую строку, она то явно некорректно показывает.
В первую очередь, рекомендуем выполнить обновление до актуальной версии программы (8.12). В случае, если описанное поведение сохранится, просим прислать примеры (в виде снимков экрана), которые явным образом ее демонстрируют.
Если Ваш брокер не предоставляет актуальную версию терминала, скачать ее можно с нашего FTP: ftp://ftp.quik.ru/public/updates/8.12/quik_8.12.0_upd.zip Необходимо будет закрыть терминал и распаковать скачанный архив в его корневую папку с обязательным подтверждением замены всех предложенных файлов.
Обновился до версии 8.13.1.16 (насколько я знаю, это самая последняя), проблема НЕ решена, брокер БКС:
Как видно итоги показывают, как сумму рубля и доллара, где доллар просто плюсуется как рублевое значение (Во всех показателях, которые выделены в синих прямоугольниках, включая те, что я заштриховал, как конфиденциальную информацию). Если купить 1000$ на валютной секции, то QUIK пишет убыток МИНУС 73000 рублей (-74000+1000).
Прошу срочно исправить данную ошибку или указать, как настроить терминал QUIK для корректного показа.
Александр М написал: Не совсем понял Ваш ответ. После обновления на 8.3.0.106 на родной (НЕ измененной) библиотеке lua проблемы исчезли?
После упомянутого мною обновления QUIK 8.13.0.106, скорости на «смешанном» коде Lua (с обращениями к С-коду) в QUIK и на моем стенде сравнялись. Для меня это косвенный признак того, что, в обновленном QUIK 8.13.0.106 синхронизация могла быть реализована, как на моем стенде, то есть, по моему мнению, правильно. Для подтверждения этой гипотезы я в новой версии QUIK запустил 13.04.21 вечером свой тест, который не обновленную версию QUIK "ронял" гарантированно в пределах чуть более одних суток. Сейчас 15.04.21 17.56 тест идет нормально и установлен новый продолжительности его работы. При этом, в обновленном QUIK 8.13.0.106 я не наблюдаю никаких проблем. Если тест не "уронит" QUIK до субботы, то, наверное, можно будет, с большим основанием, предположить, что в обновленном QUIK 8.13.0.106 наблюдаемые мною ранее ситуации устранены, то есть синхронизация реализована корректно.
Спасибо за ответ, логику понял. Как я понимаю, уже к данной версии можно присматриваться. Я пока пользуюсь 8.8.4.3, она работает стабильно у меня.
Евгений написал: Придется оправдаться за неисправленные ошибки, лучше не читать
)
Читать не читают, но что характерно :: : 1. Мой комментарий был написан 10.04.21. 2. А вчера вечером (13.04.21) мой QUIK 8.13.0.106 совершенно неожиданно для меня автоматически обновился. Возможно это простое совпадение, но на всякий случай я запустил в нем свой тест (с подключением к серверу. Если он не "обрушит" обновленную версию QUIK в течении недели (до 20.04.21) то, наверное, разработчиков QUIK можно будет поздравить. При этом я не исключаю, что действительно поддержка ветку не читает (и особенно, длинные тексты ::)
Не совсем понял Ваш ответ. После обновления на 8.3.0.106 на родной (НЕ измененной) библиотеке lua проблемы исчезли?
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
Александр М написал: Большинство перечисленных пунктов в "Основные функции OS_Quesha." решаются в виде простого lua скрипта, включая и графические интерфейсы
Когда обсуждаются любые средства, облегчающие разработку программ, возражение типа: «Это можно сделать существующими средствами», «не катит», так как, в конце концов, все можно сделать и на ассемблере. По существу же, обсуждать имеет смысл то, насколько быстро и качественно можно разрабатывать приложения, использую предлагаемые средства по сравнению с тем, что обеспечивают существующие средства их разработки. Конечно, только практика использования любого средства разработки программ может определить его реальную полезность для разработчиков. Такая возможность разработчикам роботов в QUiK предоставлена в виде кодов и документации OS_Quesha.
Цитата
Александр М написал: Очень специфическое возможное использование, я даже не смог придумать сходу, где бы мне это решение понадобилось с учетом всех реализованных мною проектов, включая заказные
Мне непонятно в чем состоит специфичность использования OS_Quesha, если вместо одной функции main в QLua, в OS_Quesha, при использовании исходника TS_QUIK_RT.lua, предоставляется четыре (количество определяется в исходнике, в описании схемы обработки в табличном виде), аналогичные функции, в которых доступен весь API QLua. Эти функции могут, при наличии нескольких ядер в ЦП компьютера, выполняться параллельно (с учетом особенностей версий QUIK > 8.4, описанных в моем начальном комментарии). Дополнительно они могут взаимодействовать между собой через готовые очереди. Кроме того, в них доступны все возможности, описанные в моем начальном комментарии. Причем, расход ресурсов ПК на функционирование OS_Quesha ничтожен и в этом можно убедиться, запустив немодифицированный исходник TS_QUIK_RT.lua. Все дополнительное использовать не обязательно, но это может потребоваться при последующем расширении возможностей робота.
Поскольку Вы спрашивали у меня, то отвечаю.
У разработчика уже есть готовые набор библиотек, каркасы роботов, индикаторов и т.д. из которых он собирает продукт. Все это переделывать на ЧУЖУЮ библиотеку: 1. Непонятно зачем, т.к. уже есть свое и готовое. 2. Опасно.
Возможно Ваш продукт заинтересует новых разработчиков, которые только только хотят что-то сделать, и им для этого обязательно понадобилась параллельная работа нескольких скриптов с общей очередью (достаточно сложный проект). Такое сочетание факторов достаточно редкое, поэтому я и написал про "специфичность".
Конечные пользователи Ваш продукт просто не потянут для написания на нем чего либо.
Присоединяюсь к пожеланию. Нужен колбек, который вызывается при любом изменении настроек (ДО перерасчета первого бара графика), в котором можно было бы оперировать настройками индикатора и генерировать любое количество линий с заданной толщиной, цветом, типом.
Алексей написал: По моим ощущениям принцип создания Квика такой : "Зачем просто, когда можно сложно". Кому-то может и надо столько таблиц, но кто с форекса пришёл, и кто пользовался, например, терминалами от форекс клуба, (Либритек-менее удобен, Румус- по мне так идеальный вариант) не надо столько наворотов. Сделайте кнопку - "Упрощённый вариант", при нажатии на которую выдет что-то похожее на Румус, Либритек или Метатрейдер (на худой конец). И будет всем счастье. И не надо будет читать инструкцию в 1000 листов, чтоб найти две кнопки "Купит" и "Продать" во всей этой мешанине таблиц и стаканов. Стакан по завершении сделки на столе я лучше увижу :)
Никто не мешает настроить минимум таблиц. Настроить торговлю по горячим клавишам или запустить сторонний скрипт, который это будет делать. Возможностей полно как по усложнению. так и по упрощению интерфейса и самой торговли.
Сделайте пожалуйста наконец формирование списка Lua-скриптов: возможность передвигать строки внутри списка вверх/вниз. Пусть при этом надо будет остановить скрипты, главное, чтобы строки каким-то образом можно было двигать. У многих ваших пользователей по несколько десятков строк в списке по разным стратегиям, добавляются, когда требуется запустить по новому инструменту или протестировать стратегию, в результате в списке полная каша и это никак не исправить.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
1. Решение явно сделано программистом для программиста. Простой пользователь ее не осилит в принципе 2. Большинство перечисленных пунктов в "Основные функции OS_Quesha." решаются в виде простого lua скрипта, включая и графические интерфейсы 3. Очень специфическое возможное использование, я даже не смог придумать сходу, где бы мне это решение понадобилось с учетом всех реализованных мною проектов, включая заказные
Понятно, что Вы это сделали в первую очередь для себя, а потом уже как-то решили выдать в массы, но чужой код всегда труден для понимания. у всех свои стандарты написания кода.
Глебов Александр написал: Прошу совета, как получить горизонтальные объемы сделок на определенном уровне в заданном ценовом диапазоне. Имею в виду, как сумму всех сделок, так и в отдельности, покупки и продажи.
Спасибо, знаю про это. Мой вопрос связан не с готовым индикатором, а с получением горизонтальных объемов в скрипте QLua, чтобы затем их обрабатывать соответствующим образом.
Вы это можете сделать грубо на основе баров или точно, но для этого вам придется делать свою базу обьемов по каждому инструменту и по каждой цене по Таблице обезличенных сделок.
Александр М написал: Несколько смущают размеры файлов по Вашей ссылке
Согласен, меня то же смутил этот момент, как будто скомпилировано в дебаг'е (с информацией для отладки), но размер может быть увеличен и по каким то еще причинам. Но тем не менее скомпилированный скрипт работает. Разрабам квика все же, на мой взгляд, стоило бы заботиться о клиенте, можно было бы ссылку в доку добавить, или вовсе win32/64 компиляторы подкинуть, благо пока они места много не едят. По самой работе же 8.11 и моим скриптом скомпиленым под 5.4.1. за сегодня еще ни разу не упало, в то время как на предыдущей версии 8.09 по нескольку раз за день, устал уже перезапускать.
Все-таки хотелось бы получить официальный ответ от разработчиков, по поводу компилятора под их версию lua.
По моим наблюдениям на сегодняшний день самая стабильная версия 8.8.4.3, у меня ни разу не упала, работает круглосуточно.
ISR написал: Возможно не в тему, но сам искал где же взять этот самый lua 5.4.1, на lua.org не нашел, но гугл выдал таки одну ссылку: https://joedf.ahkscript.org/LuaBuilds/
Несколько смущают размеры файлов по Вашей ссылке, они раза в 2 отличаются от тех, что по официальной ссылке. Для примера картинка файлов официальных версий 5.35 и 5.40:
Евгений написал: То есть получается можно использовать только линии,свечи гистограммы треугольники как в настройках индикаторов и все, а уровни в виде прямоугольников и другие методы только от руки рисовать, это может быть смешно но пользуется популярностью ))
Да, тип линии можно выбрать в любом индикаторе, но суть от этого не меняется - 1 значение по 1 линии в 1 момент времени.
Евгений написал: То есть создать индикатор который использует например прямоугольники из методов создать можно?
Прямоугольник нет, т.к. Индикатор - это 1(ОДНО) конкретное значение в данные момент времени по конкретной линии, т.е. вы можете создать отрезок верхней и нижней линий прямоугольника. Зачем Вам для торговли вертикальные линии?
Andrey Bezrukov написал: 3. Данный вопрос предлагаем уточнить непосредственно у разработчиков данного инструментария с учётом того, что, по всей видимости, он предусматривает совместимость с lua5.4.0. Другой вариант – проверить совместимость самостоятельно, на практике. В случае подозрения на некорректную работу со стороны интерпретатора LUA в терминале QUIK – пожалуйста, сообщите. По вопросам эксплуатации представленных библиотек также предлагаем обращаться к их непосредственным разработчикам.
Это не библиотеки, это стандартный компилятор Lua. Когда я у Вас спрашивал про точно такой-же аналогичный, но по версии 5.3.5, Вы отвечали, что именно им и пользуетесь для компиляции. Если по данному компилятору (по версии 5.4) Вы ответить не можете, то укажите, каким ПО компилировать скрипты под Вашу версию 5.4.1.
Евгений написал: Как использовать инструменты технического анализа из Lua ?
Имею в виду Горизонтальные и наклонные уровни, фибо, фигуры, прямоугольники и тп.
Никак. Это просто картинки на графике, они из Lua недоступны. Вы должны реализовать индикаторы, которые делают тоже самое и тогда значения этих индикаторов вы сможете считывать из Lua. У меня на сайте и у некоторых коллег, которые здесь пишут, есть готовые индикаторы на эту тему.
swerg написал: Хотелось бы уточнить у тех. поддержки про новую версию 8.11:
1) Зачем остался в дистрибутиве (в обновлении) файл lua5.1.dll ? как он функционирует?! Вроде его планировали убрать.
2) В списке исправленных недоработок есть несколько пунктов про Lua (пункты 10, 11, 12, 13) Подразумевается, что указанные в них проблемы исправятся только при использовании Lua 5.4 ? или для Lua 5.3 они исправлены тоже?
1. Поддерживаю, не понятно для какой именно версии lua исправлены ошибки, перечисленные в списке обновлений. 2. Выбор версии Lua будет Вами поддерживаться и дальше или с какой-то версии вы перейдете строго на Lua 5.4.1? 3. Почему не 5.4.2?
Владимир написал: nikolz, Исторические данные отличаются от реальных лишь тем, что берутся из файла (из БД), а не поступают в реальном времени от того же Квика, а потому алгоритм, который хорошо работает на исторических данных будет столь же хорошо работать и на данных реальных - просто входной поток данных приходит из другого места. Алгоритм ZigZag тупой - это другое дело, и тупой он КАК на исторических данных, ТАК И на данных реальных.
Я думаю, что nikolz имел в виду, что пику в этих индикаторах всегда отображаются задним числом, текущая цена при этом от пика уже далека.
Торговать по данным индикаторам можно, но не напрямую.
Egor Zaytsev написал: Он не заменяет "горизонтальный объём", который представляет собой графическое отображение фактически проторгованного объёма по ценовым уровням за указанный временной отрезок.
mihail достаточно подробно расписал и я с его интерпритацией полностью согласен: "горизонтальный объём", представляет собой графическое отображение фактически проторгованного объёма по ценовым уровням за указанный временной отрезок. Поскольку это сейчас и скорее всего Вы будете делать через поток обезличенных сделок, то там есть понятие Покупка/продажа. Ну и собственно сам рассматриваемый период тоже важен, т.к. он напрямую влияет на картину обьемов.
Я думаю, что не имею право тут делать ссылки на решения в других платформах, которые есть на рынке, но хотя бы базовая реализация обьемов.
Добрый день.
В таком случае именно от mihail пожелание уже зарегистрировано.
На данный момент горизонтального объема на графике в QUIK нет. Мы зарегистрировали ваше пожелание и постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.