function a(s)
message (s)
end
Oni nit = {}
mt = { __call = a}
setmetatable(OnInit, mt)
--OnInit("a")
Хотел на колбеки (например возмем OnInit) повесить метатаблицy и обнаружил что квик не хочет их вызывать. Код выше в теории должен при старте скрипта вызвать a(). но он просто завершается Но если принудительно вызвать OnInit("a") все работает. В чем подвох?
в реализации qlua. Таково ее природное свойство.
Пасхалочка для Алексея Иванникова:
Закрытие терминала QUIK средствами QLUA - возможно ли?, Закрытие терминала QUIK средствами QLUA - возможно ли?
Пользователь
Сообщений: Регистрация: 30.01.2015
17.09.2017 12:42:57
Цитата
Александр Волфовиц написал: Собственно, вопрос: есть ли такая возможность?
Если в QLUA нет такой возможности - есть ли в самом QUIK возможность закрытия терминала по шедулингу или что-то в этом роде?
Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ. Дополнительно сообщите версию рабочего места QUIK.
версия 7.11. та что стоит у вас на демо.
обновляться по самой последней и что-то присылать не стану. Проверить сами можете, а надежд что исправите все равно нет.
Пасхалочка для Алексея Иванникова:
Похоже очередная дырка в qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
04.09.2017 13:55:11
есть индикатор, который в том числе рисует метку на графике.
При удалении индикатора в колбеке ondestroy эта метка удаляется. Все хорошо.
Пробуем индикатор в режиме связанных окон. При переключении инструмента-источника метка не удаляется, ondestroy не вызывается
Попытка запомнить в переменной факт наличия метки чтобы стереть ее на первой свече после смены инструмента также не приводят к успеху по причине полного рестарта скрипта индикатора.
Смеха для: регистрируйте ))
Пасхалочка для Алексея Иванникова:
Загрузка своих данных в Quik, Требуется создать индикатор который на основании еxel таблицы будет формировать гистограмма с положительных и отрицательный значениями
Пользователь
Сообщений: Регистрация: 30.01.2015
03.09.2017 20:58:16
Цитата
Андрей Воронцов написал: Данные в виде 1 столбца в Excel пр идее должно быть тривиально. Подскажите нету образцов? к примеру взять какой нибудь индикатор(готовый) и изменить в нем входные данные. Хоть MACD. Получится?
нет. Не получится.
Пасхалочка для Алексея Иванникова:
Загрузка своих данных в Quik, Требуется создать индикатор который на основании еxel таблицы будет формировать гистограмма с положительных и отрицательный значениями
Пользователь
Сообщений: Регистрация: 30.01.2015
03.09.2017 20:24:58
Можно.
начать нужно с чтения документации на язык луа и правила построения индикаторов а терминале quik.
емди вы хотите читать данные из текстового файла формата vsv или аналогичного - можно приступать к программированию. Если опыта нет -рридетсч помучиться.
если хочется читать данные свечей из открытого листа эксель, то дополнительно придется написать модуль расширения, который умеет общаться с экселем посредством ole или разобраться с уже готовой библиотекой.
Пасхалочка для Алексея Иванникова:
Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами игнорируется, Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами не добавляет их в подписку сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
01.09.2017 00:10:01
Цитата
Михаил Филимонов написал: Планируется, что у меня в приложении DDE + trans2Quik.dll будут работать несколько роботов, в каждом по три инструмента. Получается, чтобы добавить нового робота, я должен выключть 20 остальных!!!!
Ещё раз - КРУТО!!!!
или написать прокси.
д'артаньяну это не составит труда.
Пасхалочка для Алексея Иванникова:
Добавление области/столбца с данными, Добавление столбца "Цена лота"
Anastasia Gordienko написал: Информацию в таблице текущих торгов quik получает с биржи и транслирует. Никаких вычислений внутри таблицы текущих торгов в Quik не производится. В какой таблице Вы бы хотели видеть отражение данных параметров?
Разве невозможно добавление в ТТТ столбцов с расчётными значениями, ведь все данные для расчёта указанных параметров берутся из той же ТТТ?
а что сложного в написании собственной таблица с любыми биржевыми параметрами и любыми расчётными?
Пасхалочка для Алексея Иванникова:
Функция на основе message
Пользователь
Сообщений: Регистрация: 30.01.2015
29.08.2017 13:36:09
Если интерпретатор говорит, что ms есть nil и запустить функцию невозможно - не стоит сомневаться, так оно и есть. Ещите место, где вы или обнуляете его (типа ms = nil) или где присваивание значение ms другой переменной до об'явивший самой функции ms
a=f function f() end a() -- ошибка исполнения
Пасхалочка для Алексея Иванникова:
Уведомление о достижении индикатором определенного значения.
Пользователь
Сообщений: Регистрация: 30.01.2015
29.08.2017 07:51:31
строчка будет всего одна
Пасхалочка для Алексея Иванникова:
Насколько уникален order_num?
Пользователь
Сообщений: Регистрация: 30.01.2015
22.08.2017 07:33:07
Цитата
_sk_ написал: Если торгуете на Московской бирже, то class_code + order_num уникальная комбинация.
в течение одного торгового дня
Пасхалочка для Алексея Иванникова:
Как определить, когда идет торговая сессия, а когда нет?
Пользователь
Сообщений: Регистрация: 30.01.2015
18.08.2017 09:13:18
Цитата
Sergey Gorokhov написал: Здравствуйте, Проверить можно через параметры TRADINGSTATUS или STATUS с помощью функции getParamEx Или еще проще, добавить проверку текущего времени. Расписание торгов заранее известно и меняется крайне редко
а заказать эти параметры к получению можно?
Пасхалочка для Алексея Иванникова:
Поиск бумаги на рынке по заданному условию., Поиск бумаги на рынке по заданному условию.
Пользователь
Сообщений: Регистрация: 30.01.2015
16.08.2017 12:17:09
Цитата
Роман Родников написал: Сообщение об ошибке при запуске сканера.
совершенно верно.
в вашем терминале нет инструментов, принадлежащих классу QJSIM.
укажите правильно классы и коды инструментов, которые вы хотите тестировать
Пасхалочка для Алексея Иванникова:
Поиск бумаги на рынке по заданному условию., Поиск бумаги на рынке по заданному условию.
Sergey Gorokhov написал: На бирже нет рыночных заявок по срочному рынку и никогда не было. То что в QUIK называется "рыночной" для срочного рынка, это обычная лимитированная заявка с признаком "Снять остаток" и указанной ценой. Если пользователь цену не указывает , то автоматом подставляется минимально/максимально возможная цена, в зависимости от направления
В описании формата .tri-файла для параметра PRICE сказано, что:
Цитата
Цена заявки, за единицу инструмента. Обязательный параметр. При выставлении рыночной заявки (TYPE=M) на Срочном рынке FORTS необходимо указывать значение цены – укажите наихудшую (минимально или максимально возможную – в зависимости от направленности)...
Так нужно или нет указывать цену при выставлении рыночной заявки на срочном рынке средствами lua? Другими словами, можно ли указать PRICE = "0", или надо обязательно лезть в Таблицу текущих торгов за соответствующими параметрами мин-макс цены инструмента?
если у вас нормальный брокер и программное обеспечение он своевременно обновляет, то можно указывать type=m и нулевую цену. Шлюз обработает.
если же на такую транзакцию приходит ответ что цена не может быть 0 - задумайтесь, правильно ли вы выбрали брокера.
Пасхалочка для Алексея Иванникова:
OnTransReply, Поле balance при снятии заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
02.08.2017 15:48:41
Цитата
Sergey Gorokhov написал: Здравствуйте, Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ.
В советское время на партсобраниях было "есть мнение" и "от имени всего советского народа"
у вас это выродилось в "постараемся дать ответ"
вы собираетесь всей компанией и хором этот ответ изобретаете?))
Очень удобно иметь динамически меняющуюся вертикальную шкалу. Но мне надо еще и статику. 150 ровно, последняя котировка - по центру неё. Добавьте такую возможность, пожалуйста. Оптимально будет установить шаг шкалы, как сейчас, и задать вот этот интервал. 50 и 150 - три деления на небольшое окно. Их у меня много. Нужно, чтобы были примерно одинаковые. При этом сейчас выставляю нужный размер, цепляю за шкалу времени, сдвигаю - шкала вертикальная опять изменяется. Нет, мне нужно всегда одинаковый масштаб/размах.
Но, разумеется, цена меняется, так что задать как сейчас мин и макс правой оси - не вариант Но очень вариант - задать отступ от последней котировки. При интервале 150 - это 75 сверху от последней котировки и 75 снизу.
Сейчас попробовал выставить "По всем значениям" (было по видимым) - лучше. Но всё равно +/- от последней котировки будет удобнее.
К сожалению надежно никак. Предлагаем зарегистрировать пожелание на доработку.
регистрируйте...
Пасхалочка для Алексея Иванникова:
OnStop
Пользователь
Сообщений: Регистрация: 30.01.2015
29.07.2017 19:22:18
Ну что же..
У нас понимание этого момента полностью совпадает.
Все-таки хотелось дождаться чего-то вразумительного от Михаила Булычева. Почему с его точки зрения закрытие терминала и останов скрипта из диалога это одно и то же. Или если не одно, то вопрос из первого поста: как различить?
мой личный опыт показывает, что сообщение QTABLE_CLOSE генерируется, если пользователь сам закрывает окно таблицы, созданное скриптом, либо если это делает терминал автоматически при простом закрытии. Но, если вы останавливаете скрипт через сервис терминала (диалоговое окно), то данное событие не генерируется.
совершенно верно.
задача стоит так.
при закрытии мышкой главного окна скрипта нужно обработать процедуру завершения, закрыть остальные окна и завершить скрипт.
по закрытию из диалога - все то же самое, включая закрытие главного окна и завершение скрипта
по закрытию терминала - ничего не делать!
как исхитриться -не могу придумать.
Пасхалочка для Алексея Иванникова:
OnStop
Пользователь
Сообщений: Регистрация: 30.01.2015
28.07.2017 12:08:13
Цитата
При закрытии терминала закрываются все окна скрипта.
Точнее так:
При закрытии терминала окна скрипта закрываются кем-то, кто не есть сам скрипт.
Пасхалочка для Алексея Иванникова:
OnStop
Пользователь
Сообщений: Регистрация: 30.01.2015
28.07.2017 11:42:25
Добрый день. Два вопроса.
1. Колбек OnStop выполняется при закрытии терминала и при остановке из диалога. Мне по этим двум событиям необходимо делать разные действия. Как отличить одно от другого?
2. При закрытии терминала закрываются все окна скрипта. При этом функции обратного вызова от этих окон активны и выполняются. Это верное утверждение?
Спасибо.
Пасхалочка для Алексея Иванникова:
MOVE_ORDERS на ММВБ, Планируется ли введение MOVE_ORDERS на рынке акции ММВБ?
Пользователь
Сообщений: Регистрация: 30.01.2015
19.07.2017 20:49:25
Цитата
Юрий Балашов написал: Сейчас ACTION = MOVE_ORDERS на рынке акции ММВБ не работает. 1. Существует ли веская причина этого? 2. Планируется ли ввести передвижение заявок для акций, с целью снижения нагрузки на сервера биржи? 3. Если этот вопрос не поднимался, прошу зарегистрировать его как пожелание.
это нужно писать не в арку, а на биржу
Пасхалочка для Алексея Иванникова:
65000 свечей
Пользователь
Сообщений: Регистрация: 30.01.2015
17.07.2017 20:15:15
Цитата
Андрей Пахомов написал: Буду очень признателен, если подскажете такую бесплатную программу, на которой можно создавать окна с разными таймфреймами, проставлять на них различные графические объекты векторной графики (линии, отрезки, тексты) с теми же возможностями (тип, цвет, время, цена и пр.) что и в QUIK-е, а затем открывать их для просмотра, изменения, а также для тестирования QLUA скриптов в любое время суток. Исторические данные также должны полностью совпадать с реальными на всех таймфреймах.
все что вы попросили, делает любая программа технического анализа. Амиброкер, велслаб и даже метасток древний.
конечно, гонять скрипты на qlua в них не полуситмя., Там другие встроенные языки программирования. Намного более мощные.
Пасхалочка для Алексея Иванникова:
65000 свечей
Пользователь
Сообщений: Регистрация: 30.01.2015
17.07.2017 15:34:47
Цитата
Андрей Пахомов написал: Ещё в прошлом веке надо было сделать. И не 65000 свечей, а всю историю, хотя бы за последний год. И с возможностью хранения и просмотра всех нужных данных на локальной машине трейдера.И без удаления старой истории при перезагрузке графиков. Да, если есть ограничение по истории у брокера, то может придётся следить и периодически подгружать текущую историю, что бы потом не было в ней пробелов, но кому надо тот сделает. А сейчас возможность нормальной работы с историческими данными отсутствует практически полностью. Приходится сохранять весь QUIK с "текущей" историей раз в 15-20 дней, в отдельную папку, со всем последующим "геморроем" по обработке этих данных...(((
А может быть проще не заниматься ерундой, а использовать для анализа истории специально предназначенные для этого программы?
Пасхалочка для Алексея Иванникова:
Снова проблемы с SMS при сделках от Финама
Пользователь
Сообщений: Регистрация: 30.01.2015
08.07.2017 15:20:11
Цитата
Sergey Denegin написал: к сожалению си не знаю и торгую на квике. ЛУА хорошо знаю
на чистом луа не напишете.
Пасхалочка для Алексея Иванникова:
Снова проблемы с SMS при сделках от Финама
Пользователь
Сообщений: Регистрация: 30.01.2015
08.07.2017 10:00:46
Цитата
Sergey Denegin написал: не хочется тратить время на то, что надеялся купить. А может кто-нибудь поделится библиотеками и наработками для отправки в вотсап или телеграм?
для метатрейдера человек делал. Нетрудно переложить в С++ библиотеку для скрипта lua.
Пасхалочка для Алексея Иванникова:
Снова проблемы с SMS при сделках от Финама
Пользователь
Сообщений: Регистрация: 30.01.2015
07.07.2017 15:32:01
Цитата
Лично я уже на грани того, чтобы отказаться от этой услуги и написать самостоятельные уведомления через вотсап или телеграм.
- Мыши плакали, кололись, но продолжали грызть кактус
Зачем кричать и нервничать? Давно бы написали.
Пасхалочка для Алексея Иванникова:
CreateDataSource возвращает пустой набор данных, Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2017 14:14:02
Процедуру можно делать в тот момента когда она вам нужна.
Схематично эта процедура стучится к брокеру с просьбой послать терминалу данные по требуемому вам инструменту.
весточек должны доставить (dhl или голуби), сервер после ее получения докушает чай, отошлет назад данные (может снова голубями), потом терминал их рассует по полкам т только после этого они станут доступны вам.
сколько времени пройдет на все эти пассы -гетзвестно. Но явно больше, чем выполняется один оператор lua в вашей программе.
Пасхалочка для Алексея Иванникова:
CreateDataSource возвращает пустой набор данных, Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2017 13:22:24
Вода из крана начинает капать с некоторой задержкой после того как вы начали поворачивать вентиль.
здесь то же самое. Данные будут несколько позже.
Пасхалочка для Алексея Иванникова:
Исполнение рыночной заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
22.06.2017 08:50:04
Цитата
Владимир написал: Я думаю, будет исполнена с остатком, т.е. частичное исполнение.
результат непредсказуем. Возможны 3 варианта оащной верочтности: исполнена полностью, исполнена частично или неисполнена.
Пасхалочка для Алексея Иванникова:
Внешние транзакции от нескольких приложений, Обработка программой Quik внешних транзакций от нескольких внешних приложений
Пользователь
Сообщений: Регистрация: 30.01.2015
17.06.2017 12:03:20
Цитата
Владимир Фонякин написал: Здравствуйте! В данное время Quik не может обрабатывать внешние транзакции от нескольких внешних приложений. Это очень неудобно, когда есть необходимость подключения нескольких роботов, передающих торговые приказы таким образом. У разработчиков программы разработан вспомогательный модуль QuikTrans, который позволяет следующее (цитата из ): "Вспомогательный модуль QuikTrans служит для передачи торговых приказов из программы MegaTrader в терминал Quik. Необходимость создания данного модуля вызвана тем, что терминал Quik может поддерживать соединение (принимать торговые приказы) только с одним внешним приложением. Модуль QuikTrans снимает это ограничение, позволяя транслировать торговые приказы от нескольких одновременно запущенных экземпляров программы MegaTrader в один терминал Quik, что делает возможным подключение к одному терминалу нескольких программ MegaTrader".
Свяжитесь, пожалуйста, с разработчиками этой программы, может, есть возможность сделать что-то подобное в программе Quik. Спасибо!
все просто на самом деле.
нужно произвести каеую-манипуляцию с терминадом- подключились, произвели, отключились.
если в момент подключения уже другой робот разговаривает с катком -подождали и попробовали снова.
что такое мегатрейдер мне неизвестно, но делает то же самое, что совсем никакое не мега.
Пасхалочка для Алексея Иванникова:
Createdatasource error list
Пользователь
Сообщений: Регистрация: 30.01.2015
16.06.2017 17:22:33
Цитата
Michael Bulychev написал: Добрый день. ошибки, которые может вернуть CreateDataSource: - "invalid context" - функция вызвана вне main или других зарезервированных функций; - "unknown class code"; - "unknown param name" - не найден такой параметр на заданном классе; - "static param" - параметр в ТТП есть, но он берется из описания бумаги (getSecurityInfo); - "CreateNetDataSource failed" - это ошибка общего характера, например не хватило памяти.
Этот вопрос очевидно, снят. Но изначальный по-прежнему актуален.
Пасхалочка для Алексея Иванникова:
Createdatasource error list
Пользователь
Сообщений: Регистрация: 30.01.2015
14.06.2017 16:25:56
Цитата
Michael Bulychev написал: Добрый день. Какие ошибки фиксируются в логе?
Текст ошибки не фиксировался. Раз нам терминал рассказал о существующих инструментах, разве могут быть ошибки при подписке на них? Терминал же нас не обманывает )) Хорошо хоть статус поверялся.
Вот еще на ту же самую тему.
Текст скрипта на экране. также на экране график инструмента и запись о нем в таблице текущих торгов.Результат выполнения скрипта меня удивляет. Я чего-то не понимаю?
Пасхалочка для Алексея Иванникова:
Createdatasource error list
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2017 07:49:27
Господа разработчики...
Пасхалочка для Алексея Иванникова:
Createdatasource error list
Пользователь
Сообщений: Регистрация: 30.01.2015
06.06.2017 11:57:06
Здравствуйте.
1. Нельзя ли усидеть полный список возвращаемых ошибок?
2. По какой причине cteatedatasource может возвращать ошибку для инструмента, о наличии которого нам говорит функция, возвращающая сптсок инструментов класса? Почему эта ошибка проявляется обычно при установлении нового сеанса и почему такая ошибка плавающая?
порядок действий:
-- был oncleanup get class info()
for ticker in instrument_list printlog(createdasource(ticker))
в результате среди сотни успешных подписок иногда встречаются неудачные. Обычно это неликвидный мусор.
написал: Не имеет значения, кто виноват. Брокер, терминал или папа римский.
С точки зрения обыкновенного пользователя данным, которые он видит на графиках своего терминала, невозможно доверять.
Для того, чтобы такие проблемы не возникали нужно их локализовать. В дальнейшим устранить. Без каких либо данных это сделать затруднительно.
Егор.
Для поиска ошибок существует процедура тестирования.
Я привел вам скриншот, демонстрирующий проблему в вашем ПО. Если компания заинтересована в улучшении своей продукции -пусть принимает меры. Я не сотрудник компании.
Связались с Вашим брокером. Запросили необходимые данные для проверки. Графики на сервере корректные, с 30 мая по 5 июня никаких действия с графиками не проводились. Брокер также на своей стороне проблем не видит. Если У Вас по прежнему сохраняется проблема. Просьба прислать архив рабочего места QUIK без ключей доступа.
написал: Не имеет значения, кто виноват. Брокер, терминал или папа римский.
С точки зрения обыкновенного пользователя данным, которые он видит на графиках своего терминала, невозможно доверять.
Для того, чтобы такие проблемы не возникали нужно их локализовать. В дальнейшим устранить. Без каких либо данных это сделать затруднительно.
Егор.
Для поиска ошибок существует процедура тестирования.
Я привел вам скриншот, демонстрирующий проблему в вашем ПО. Если компания заинтересована в улучшении своей продукции -пусть принимает меры. Я не сотрудник компании.
Пасхалочка для Алексея Иванникова:
Феерическое
Пользователь
Сообщений: Регистрация: 30.01.2015
05.06.2017 07:16:29
Не имеет значения, кто виноват. Брокер, терминал или папа римский.
С точки зрения обыкновенного пользователя данным, которые он видит на графиках своего терминала, невозможно доверять.
Вы много всего написали. На самом деле все просто.
Сервер посылает информацию вам с вполне определённой последовательностью в соответствии со своим внутренним алгоритмом.
Но информация делится на пакеты. Пакеты эти уезжают от сервера в сеть и дальше он ими не управляет. Поэтому первый пакет может уехать к вам через Камчатку, а второй через Химки. И вы запросто можете получить второй пакет раньше первого.
Пасхалочка для Алексея Иванникова:
Феерическое
Пользователь
Сообщений: Регистрация: 30.01.2015
02.06.2017 23:16:10
А что скажут разработчики?
ищут 30 мая до сих пор?
Пасхалочка для Алексея Иванникова:
Феерическое
Пользователь
Сообщений: Регистрация: 30.01.2015
31.05.2017 16:39:32
Утром мне звонит клиент и тыкает в меня палкой: твоя писанина не работает. Смотрю: и правда не работает, причем разваливается прямо в хлам по непонятной причине. Полдня глаза ломал. Нашел. Вот вам скриншот:
Это графики газпрома в боевых торгах. Терминал 7 11 1 5, брокер церих
смотрим на нижний график. таймфрейм 30 минут, торги за 29,30 и 31 мая. А теперь смотрим на верхний график.. Таймфрейм 4 часа. А где, ....ь 30 мая????
Пасхалочка для Алексея Иванникова:
Порядок следования в ТОС
Пользователь
Сообщений: Регистрация: 30.01.2015
31.05.2017 13:45:39
Да и вообще... Как может быть таблица обезличенных сделок всегда у вас быть упорядоченной?
поедставим ситуацию. Сделан заказ сделок на Газпром в а постройках терминала. Соответственно идут торги, в хранилище в правильном порядке лежат обезличенные сделки по Газпрому.
запускаем скрипт. Он хочет вывести ТОС по сберу и Газпрому. Делам подписку на такие Газпрома -ничего не происходит (и так получает терминал), делаем подписку на сбербанк - терминал отправляет запрос на сервер.
в этот момент скрипт начинает читать ТОС. Козе понятно, что сделок по Сбербанку в ней ещё нет. Скрипт заглатывает всю имеющуюся таблицу (там один Газпром) и выводит ее в файл. А уже после того приезжают сделки по Сбербанку.