Sergey Gorokhov (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 66 След.
OnTrade flags - направленность сделки
 
rodionos,
добавим
NEWS in QUIK, callback on news
 
Здравствуйте,
такой возможности нет
OnTrade flags - направленность сделки
 
Цитата
rodionos написал:
подскажите, как правильно интерпретировать 5-ый и 6-ой биты таблицы trades.
Кстати, возможно это то что Вам нужно
TRADE_MAKER = 32; /**< Пассивная (сделка образована по ранее выставленной заявке). */
TRADE_TAKER = 64; /**< Активная (сделка образована по заявке выставленной для ее образования) */

Цитата
rodionos написал:
2) Был бы полезен getAllTradeByNumber по аналогии с getOrderByNumber, для быстрого получения строки с использованием индекса. Таблица all_trades большая и в отсутствие индекса поиск через SearchItems скорее всего будет медленным.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
OnTrade flags - направленность сделки
 
Цитата
rodionos написал:
Сергей, интересует расшифровка flags таблицы trades, то есть таблицы с моими сделками.
Она приведена в документации о которой Вы же и говорили в начале.

Цитата
rodionos написал:
Из этого флага нужно получить направленность сделки аналогично тому, как она кодируется в AllTrades.
Биржа не транслирует этой информации, следовательно и в QUIK Вы ее увидеть не сможете.

Цитата
rodionos написал:
Иначе придется искать мою сделку по идентификатору в таблице обезличенных сделок.
Другого выхода нет
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
 
Цитата
QApplication написал:
он у вас в документации описан как string.
К сожалению Lua не умеет лезть в документацию.
Цитата
QApplication написал:
в qlua.chm допишите, что для result = false type = 0;  и все будет понятно.
Это не всегда так. Вернее нет гарантий что это всегда так.
Цитата
QApplication написал:
насколько я понял, у вас одна структура данных для указанной функции для всех поддерживаемых рынков.
Вам понятно что на бирже нет такого параметра, как QUIK может показать то чего нет? никак, и не будет он что то придумывать просто ради того чтобы было как везде.
Набор параметров для разных рынков разный, а функция одна на все рынки.
OnTrade flags - направленность сделки
 
Цитата
rodionos написал:
По сути необходимо значение нулевого бита так как он проставлен для этой сделки в AllTrades (обезличенные сделки).

Обратите внимание что речь про обезличенные сделки.
Сделка одна. А заявки приведшие к сделке две, от двух людей, у одного на покупку у другого на продажу.
Однако в сделке мы видим какое-то направление.
В документации на этот счет сказано следующее:
Цитата
«Купля» – заключена сделка путем выставления заявки на покупку против находящейся в торговой системе котировки на продажу;
«Продажа» – сделка на продажу;
OnTrade flags - направленность сделки
 
rodionos,
Честно вопрос не понятен.
Совсем.
бит 2 показывает направление, Вы же сами сказали.
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
 
Цитата
QApplication написал:
или в документацию на QLUA.chm допишите тип 0 - undef
Вы не туда смотрите, Вам на result смотреть надо, если false то нет параметра, значит и характеристик параметра нет. Как уже было сказано 0 это просто значение по умолчанию. Это не значимая константа.
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
 
Цитата
QApplication написал:
Не согласен.
на фондовом рыке нет такого параметра как "Начало вечерней сессии", он есть на срочном рынке.
QUIK умеет работать далеко не с одной биржей и далеко не с одним рынком, а на разных биржах и рынках разный набор доступных параметров.
Просто потому что их создавали разные люди.
от куда Lua должен взять информацию о том что тип «3» - CHAR если такого параметра просто нет?
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
 
Цитата
QApplication написал:
почему то изображение не подтянулось (смотрите QLUA.chm: TABLE getParamEx (STRING class_code, STRING sec_code, STRING
param_name))
Вы запрашиваете параметры которых просто нет.
Если result = false то и возвращать нечего, а param_type = 0  это просто значение по умолчанию.
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
 
Цитата
QApplication написал:
При вызове callback OnParam(args) вызываю getParamEx(args...) со всеми возможными аргументами (описаны в info.chm), часть возвращаемых таблиц имеют не описанное значение param_type в документации («0») .
При этом полу result соответствует «0».
Приведите пример о чем речь
Доска опцинов из QLUA
 
Цитата
Женя Логинов написал:
почему в версии 7.27.2.1 на запрос DAYS_TO_MAT_DATE выдает nil? этот параметр уже нельзя запросить? в руководстве пользователя 7.27 этого параметра нет. хотя если строить таблиц текущих торгов, то столбец с количеством дней до погашения есть...

что я делаю не так?
Соответствие Кодов клиента и Торговых счетов, Определение соответствия Кодов клиента и Торговых счетов
 
Цитата
QApplication написал:
На сколько я понимаю, у разных аккаунтов могут быть одинаковые Идентификаторы фирм firmid?
Да могут.

Цитата
QApplication написал:
Можно привести физическое назначение поля firmid.
Внутри QUIK, фирма это некое объединение (группа) счетов.
У брокера может быть несколько фирм.

Цитата
QApplication написал:
Что такое фирма во взаимоотношениях клиент-брокер-биржа.

Для пользователя это просто некий идентификатор.
Для брокера это раздел к которому принадлежат счета.
Для биржи (если говорить про фондовый рынок), это некий Уникальный идентификатор участника торгов.
Если говорить про срочный рынок, то это рездел, при чем для одной фирмы в QUIK может быть несколько разделов на бирже.
Соответствие Кодов клиента и Торговых счетов, Определение соответствия Кодов клиента и Торговых счетов
 
Цитата
QApplication написал:
Вопрос: как получить код клиента, соответствующий торговому аккаунту.

Для одного кода клиента может быть несколько торговых счетов. Какой считать правильным?
Однозначного ответа нет. По этой причине нет однозначной связи между trade_account и client_code.
Вы можете по таблице depo_limits подобать нужный Вам счет.
Вопрос про OnAllTrade
 
Let_it_go,
только фильтровать по времени
Вопрос про OnAllTrade
 
Цитата
Let_it_go написал:
Есть ли риски, что в OnAllTrade прилетит старая сделка из сегодняшних?Ну например при первом старте КВИКа в 13 часов в КВИК начнут сыпаться ранее прошедшие сделки. Они мне не нужны. И только потом начнут поступать новые.  
Да риски есть, например тот же перезаказ данных.
Надежно обезопасить себя можно только через фильтрацию в самом коде скрипта.
Перенос лимитной заявки, Перенос лимитной заявки на фондовой секции!?
 
Цитата
Кирилл написал:
Наоборот, это не единственный, а самый неуклюжий вариант. Начинающий инвестор вряд ли является еще и программистом. Итак, если человек каждое утро по бумажке выставляет в программе свои заявки, почему бы не создать такой список в самой программе? Причем тут вообще биржа? Она и не узнает, кто выставил. Вы же сами это и говорите - ручную работу может заменить некий скрипт. И во всех серьезных программах реализована функция автоматического исполнения одних и тех же действий по шаблону. Это называется batch-processing или как-то так. Хоть в редакторах, хоть в конвертерах и т.п. И здесь этого нет только по одной причине - лень программистов создать лишнюю вкладку. Или какая-то выгода. Например,  этот костыль к программе могут продавать неопытным людям в виде отдельного скрипта, который человек, изрядно намучившись изо дня в день, рано или поздно купит за любые вменяемые деньги.


В QUIK есть импорт транзакций из файла. Вы можете один раз записать туда нужные Вам транзакции и загружать файл каждый день.
К слову обращаем внимание что за транзакции может браться комиссия, и конечные пользователи меньше всех заинтересованы в увеличении количества транзакций.
Нам не известно, берет ли Ваш брокер такую комиссию или нет, но биржа точно берет.
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Цитата
AndyJOKER написал:
Эммм, несколько странно слышать это от Вас, как от разработчика.
Почему странно?
Доступные функции явно описаны в документации:
-Индикаторы технического анализа
--Функции и глобальные переменные скрипта индикатора
--Список функций, доступных из скрипта индикатора
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Цитата
AndyJOKER написал:
Весело.
Я правильно понимаю, что фактически в индикаторах можно использовать только данные  O, H, L, C, V, T  ,  Size ?

Нет, категорически не верно, можно и другие данные, зависит от того что Вам нужно.
Если Вам нужно получить данные в индикаторе из другого скрипта, то почему бы не воспользоваться обменом через файлы? Один сприпт пишет в файл, другой читает.
описание функции Squeeze
 
Цитата
Aleksei написал:
но судя по формуле вернется 0,т.к (8-8)/2

Вы категорически не правы, проверьте на простом примере:
Скрытый текст



на второй итерации sum[Ip]=8, где Ip=1
и sum[Ippp] = nil
По формуле получается
(8 - (nil or 0)) / 2 = (8-0)/2 = 8/2 = 4
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Цитата
AndyJOKER написал:
Валится с ошибкой "attempt to call global 'GetCell' (a nil value)".

В QLUA индикаторах нет такой функции "GetCell"
Собственно в QLUA индикаторах вообще нет никаких функций для работы с GUI таблицами, они там не поддерживаются.
описание функции Squeeze
 
Aleksei,
Функция нужна только для того чтобы не запоминать все значения в таблицах, а только нужные.
Работает просто, есть порядковый индекс I свечки и есть период P за который нужны значения
Благодаря функции, вместо того чтобы в таблице sum хранить все значения за все свечки, мы храним для расчетов только значения за несколько последних свечек.
Это достигается путем побора индекса через функцию Squeeze
Выгрузка данных из QUIK, Прошу помощи с выгрузкой данных из QUIK
 
Цитата
Роман написал:
Сразу вопрос - можно это сделать без подключения к серверу? Данные то доступны когда QUIK не подключен.
Да можно. При условии что данные есть в терминале.

Цитата
Роман написал:
1. необходимо получить имя таблицы, к которой обращаться - покопался и выяснил, что, похоже, на QLua это не сделать - он работает только с данными с сервера брокера...блин
QLUA не работает с GUI таблицами, он работает с хранилищем данных для этих таблиц.

Цитата
Роман написал:
Я нашел примеры, когда с помощью CreateDataSource создается источник данных и происходит выгрузка исторических данных, а вот для такой таблички?
Если говорить про получение данных из терминала без подключения к серверу, то CreateDataSource не нужен, достаточно обойтись getParamEx
подробнее в документации QLUA.chm
-Функции взаимодействия скрипта Lua и Рабочего места QUIK
--Функции получения значений таблицы «Текущие торги»

Для getParamEx нужно знать имена параметров которые требуются.
Получить их можно выведя таблицу по DDE с галкой формальные заголовки.
также многие параметры приведены в документации на терминал info.chm
-Раздел 8. Алгоритмический язык QPILE
--Функции для получения значений Таблицы текущих торгов
---Значения параметров функций

CreateDataSource нужен больше для получения обновлений по параметрам таблиц текущих торгов и по таблице обезличенных сделок, а также по данным графиков.
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Цитата
Александр написал:
Цитата
Sergey Gorokhov написал:
В чем конкретно вопрос?
Вопрос для чего вы изменили скрипт. Что хотите получить? В чем то была ошибка?
Ошибок не было, причины правок описаны выше.
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Цитата
Александр написал:
Sergey Gorokhov, Спасибо. Про саму функцию я и забыл.  А что вы делаете в скрипте выше? Какая задача что то не пойму суть.

В чем конкретно вопрос?
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Цитата
Олег написал:
Тогда индикатор отрисовывает только одну верхнюю линию. Надо еще что-то менять.
Да Вы правы, надо удалить отрисовку горизонтальной линии. Т.е. так:
function OnCalculate(Index)
return ConvertValue(Settings, func(Index, Settings)),tonumber(Settings.Horizontal_line)
end
если она все же нужна то ее можно добавлять только первой.

полный код под спойлером
Скрытый текст
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Цитата
Александр написал:
Как одно выражение дает три значения?
Это нормально, в Lua одна функция может вернуть несколько значений.
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
Таким образом, на текущий момент вариантов кроме "ТВС должна быть открытой" я не вижу, на будущее хотелось бы все же видеть что-то более легкое, чем CreateDataSource, без встроенного энквадрата.
Еще раз повторяем (уже третий)
Пожелания НЕ будет т.к. описанного поведения НЕ должно быть вообще.
Вы описываете проблему с которой надо разобраться.
И только если вдруг после разбора окажется что так и должно быть тогда да, будет пожелание.
Сейчас это больше выглядит как баг, а не отсутствие функционала.
И как уже было сказано, у нас проблема не воспроизводится.

Для анализа просьба прислать на quiksupport@arqatech.com копию всей папки с проблемным терминалом QUIK (без ключей доступа)
В письме укажите ссылку на эту ветку форума.
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
утром-то ситуация как раз такая, в alltrade.dat вся вчерашняя ТВС, так что хочешь не хочешь, а надо запускаться вот в таком окружении.
для очистки dat файлов есть ключ -clear (в документации глава "Ключи запуска Рабочего места QUIK")
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
Любопытно, что подписка на дневки в том же самом цикле происходит практически мгновенно, хотя квику приходится несколько тысяч файлов создать в архиве (почистил предварительно). А вот если добавить ds:SetUpdateCallback(), приходится подождать секунд 10 (опять же на все). К сожалению, на ТВС это не влияет, фильтры не устанавливаются и все сделки не едут, а то был бы вариант.

ТОС (он же тики) и интервальные графики едут по разным технологиям. Интервалы генерирует сервер и хранит их у себя в хранилище, в связи с чем на терминал Вы уже получаете все готовое.
Тики же едут в сыром виде, как пришли с биржи. Естественно объемы не соизмеримые.

Как уже было сказано, Ваши ~500 сек никуда не идут в сравнении с нашими ~20сек.
И как уже было сказано, надо разобраться в начале с этим, а потом уже принимать решение о регистрации пожеланий.
Попробуйте собрать больше информации, например провести тестирование на другом компьютере и канале связи.
Кроме того, попробуйте провести тест в разное время, утром до торгов, утром при старте торгов, в обед и вечером.
Сравните данные и сообщите нам.
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
Категорически не согласен с пунктом 5. Пример. Юзер в 23:45 запустил квик, чтобы скачать данные за день, запустил скрипт. В 0:15 брокер вырубил сервер. И вдруг внезапно оказывается, что наш скрипт за это время (когда вся ТВС уже приехала бы сто раз) не то чтобы не сохранил данные, а даже еще и не подписался на них. То есть сессия пропала (нет подписки -> нет данныех даже в alltrade.dat), завтра утром на сервере ее уже не будет. Нормальный такой скрипт, удобный. Зато уж компом рычит как зверь по три часа кряду, сразу видно, что важным делом занят.
По этому пункту, дело конечно Ваше, стартовать в конце гонки или в начале.
Обычно люди стартуют в начале.
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
Таймер тут при чем?
Как же, он добавляет задержку на каждую итерацию каждого цикла.

Цитата
Anton написал:
Равно как и сплит тут мало на что влияет, он выполняется один раз на класс, коих в тестовом случае всего 19.
да он тут не причем, это просто один из примеров оптимизации

Цитата
Anton написал:
Тогда вопросы другие - а если я в info.ini их из скрипта запишу? Квик это увидит? А если квик со скриптом пересечется на доступе к info.ini, будет ждать анлока или упадет? А если через версию квика вы решите в другом месте фильтры хранить?
Правка info.ini в данном месте саппортом не обслуживается, т.к. не является документированным функционалом.

К слову, тема еще не закрыта. Прежде чем регистрировать пожелание мы должны выяснить а действительно ли оно нужно.
Так например на нашем боевом контуре, Ваш код по классу EQOB показал время ~20 сек
Это само по себе уже является основанием перейти к разбору проблемы а не регистрации пожеланий.
*AllTrade*, новые функции для qlua
 
Цитата
Anton написал:
Как показывает практика, полноценно использовать CreateDataSource для подписки на таблицу обезличенных сделок не представляется возможным
Из переписки совершенно не следует сказанное. Трудности да есть, но "не возможным" использование функции CreateDataSource не делает.

1) Уберите в коде функцию split, она совершенно лишняя.
getClassesList и getClassSecurities прекрасно обрабатываются через  string.gmatch, без всяких лишних манипуляций с циклами
А лишние циклы в борьбе за скорость, это великое зло.
Пример кода:
for vv in string.gmatch(getClassSecurities(v), "([^,]+)") do
--
end

2) в ОС Windows есть свой собственный таймер процессора, который по умолчанию равен 15.625 мс
Если вы про него не знали, почитайте про него в интернете
В результате на каждую итерацию цикла, кроме обработки самой итерации, вносится указанная задержка.
Крайне рекомендуем прочитать текст статьи прежде чем комментировать, это сразу избавит от лишних вопросов.

3) Вам уже говорили что нужно перенести функцию из OnInit в main.

4) зачем делать отдельный цикл для SetEmptyCallback, совершенно не понятно, хотя вопрос не в этом.

5) И последнее, куда важнее с какой скоростью данные поступают и обрабатываются нежели с какой скоростью происходит заказ.
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Цитата
Олег написал:
Для внешнего индикатора (архив на скачивание выше):
В скрипте это легко меняется. Указать так:
function OnCalculate(Index)
return ConvertValue(Settings, func(Index, Settings)),tonumber(Settings.Horizontal_line)
end

function PC() --Price Channel ("PC")
--какойтокод
return val_h,(val_h+val_l)/2,val_l
--какойтокод
end
QUIK 8 и компиляция luasql
 
Цитата
Nikolay написал:
Куда отправлять?
quiksupport@arqatech.com
QUIK 8 и компиляция luasql
 
Nikolay,
В терминале нет такого лога.
Однако при падении, по идее должен создаваться dmp файл в папке dmp
При должном умении, можно попробовать проанализировать его самостоятельно, однако лучше прислать его нам.
Получение данных без lua
 
Михаил Е,
К сожалению не готовы отвечать как что-то реализовано у посторонних для нас людей.
Лучше спросить у автора реализации.
Кривое отображение времени в секундах, У всех так??
 
Atom,
Во первых, время сервера это время сервера QUIK, а os.date - это время Вашего компьютера.
Их часы вполне по честному не обязаны идти синхронно.
Т.к. нет никакого способа заставить все компьютеры всего мира идти синхронно.

Во вторых ,сам по себе параметр "время сервера" обновляется по мере поступления данных с сервера.
А если быть точнее то каждый пакет данных присланных от сервера, содержит временную метку, которую Вы и видите.
Это накладывает помехи при передаче данных. например в случае задержек на канале связи.
trans2quik.dll сделан по технологии Native API ?, trans2quik.dll сделан по технологии Native API ?
 
К сожалению нет.
trans2quik.dll сделан по технологии Native API ?, trans2quik.dll сделан по технологии Native API ?
 
Нет, trans2quik.dll функционирует с помощью Windows API.
InsertRow
 
Проблема изучается. Постараемся в ближайшее время дать ответ.
InsertRow
 
Цитата
Старатель написал:
В документации написано:
Цитата
Функция возвращает номер добавленной строки при успешном выполнении, иначе – «-1».
По факту в случае ошибки возвращается 0
Пришлите пример кода на котором воспроизводится пробелма
trans2quik.dll сделан по технологии Native API ?, trans2quik.dll сделан по технологии Native API ?
 
Здравствуйте,
Уточните что имеется ввиду и в связи с чем возник вопрос?
как подключить .dll к lua скрипту , который выполняется в quik?, как подключить .dll к lua скрипту , который выполняется в quik?
 
Денис,
У нас нет опытка написания DLL для LUA и нет каких-либо примеров реализации.
Но нам точно известно об успешном опыте наших клиентов.
попробуйте поискать в интернете на специализированных форумах посвященных Lua
GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX в QUIK 8.0, Unknown (or illegally called) function при запросе данных GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX в QUIK 8.0
 
Роман,
Добрый день,

Обнаруженная вами ошибка была исправлена в обновлении Рабочего Места QUIK версии 8.0.4.  Приносим извинения за вызванные неудобства.
Сообщение системы, Подача заявки
 
Igor,
Вы хотите продать EUR но у Вас нет денег в EUR от сюда и ошибка, есть только рубли.
getNumberOf('all_trades') выдает 0, в чем ошибка?, Пытаюсь получить обезличенные сделки, но данные не приходят
 
Цитата
Андрей написал:
в документации Lua есть метод   str = table.tostring(tbl[, indent])

где Вы это нашли?
Протокол FIX
 
PFelix,
На нашем внутреннем протоколе, который не является публичным.
onParam, как работает?
 
Женя Логинов,
Причина проблемы в обновляющихся параметрах Волатильность и Теоретическая цена.
Они обновляются по таймауту раз в минуту, даже если инструмент не ликвидный и торгов по нему не было.
При их обновлении срабатывает колбек OnParam
Чтобы избежать этого, удалите эти параметры из меню "Заказ данных"
getNumberOf('all_trades') выдает 0, в чем ошибка?, Пытаюсь получить обезличенные сделки, но данные не приходят
 
Андрей,
Здравствуйте,
Проблема не воспроизводится.
Проверьте есть ли данные в таблице обезличенных сделок (не путать с таблицей сделок)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 66 След.
Наверх