Alexey P, во-первых вы мне не тыкайте. Во-вторых, я также считаю не логичным текущую реализацию привязки точек при понижении таймфрейма. Но в любом случае смещение будет, как ни крути. Что касается
Цитата
Alexey P пишет: Да и прошу решить касяк -допустим когда точка на таймфреме стоит допустим 10.04.2015: 12.00.00 а QUIK прогружает с сервераначиная с тайм фрейма 11.04.2015: 12.00.00 то тут волей не волей начинается смещение и не правильная отрисовка!
то, если это имеет место быть - надо исправить, не спорю.
Цитата
Alexey P пишет: Возми понизь тайм фрейм... округли коорднаты икс согласно выбранному тайм фрейму по оси Х
Под понижением таймфрейма вы подразумеваете то же, что и я? Вот был таймфрем Daily, на нём точка с координатой X = 10.04.2015. Понизили таймфрейм до H4. Что округляем-то? У нас 4 координаты теперь по Х: 08 ч, 12 ч, 16 ч, 20 ч. Какую выбираем?
Цитата
Alexey P пишет: Объясните тогда почему у других прог по ТА с таким гемором я не встречался?
Вам лучше знать. Я с вами не знаком, и какими прогами вы пользуетесь не знаю. Представьте лучше сравнительные скрины, как выглядят линии при смене таймфрема в QUIK и "других прогах", чтобы был предметный разговор.
Надо делать так, как надо. А как не надо - делать не надо.
Alexey P пишет: поймешь что привязка прямой к любому тайм фрему по двум точкам прямой прописанных в базе и округляемой по оси Х (согласно тайм фрему)
Ещё раз: при понижении таймфрейма вы не округляете координату Х, а наоборот, получаете несколько координат Х для одной Y. Вопрос: через какую проводить линию будете? Ответ уже был дан:
Цитата
Серж пишет: если хотите, чтобы линии выглядели одинаково на всех таймфреймах, стройте линию на младшем таймфрейме.
Надо делать так, как надо. А как не надо - делать не надо.
Zoya Vdovina пишет: На данный момент работ в этом направлении не ведётся.
Опа! :o Вот это откровение... Могли бы соврать что ли, что, дескать, "работа ведётся, скоро выпустим 64-разрядную версию, остались, буквально, считанные годы..." Что бы вы могли скорее оценить целесообразность перехода на 64-bit даю ссылку на полезную статью: 7 шагов по переносу программы на 64-битную систему.
Надо делать так, как надо. А как не надо - делать не надо.
Серж пишет: Проблема в том, что при понижении таймфрейма для каждой координаты по оси цены для базовой точки станет несколько координат по оси времени. Какую из них выбрать? Начальную, конечную или среднюю?
Вот сейчас посмотрел: при понижении таймфрейма разработчики выбрали вариант привязки точки к началу интервала, на котором строилась линия. На мой взгляд, логичнее было бы выбирать среднюю точку. Хотя, тут сколько людей - столько и мнений. В любом случае, если хотите, чтобы линии выглядели одинаково на всех таймфреймах, стройте линию на младшем таймфрейме.
Надо делать так, как надо. А как не надо - делать не надо.
Alexey P пишет: Рисую линии тренда на дневном. На часовых и минутых смещаются ..ТОже самое на понижение часовой - минутные и тд
Этот вопрос уже не раз поднимали. Проблема в том, что при понижении таймфрейма для каждой координаты по оси цены для базовой точки станет несколько координат по оси времени. Какую из них выбрать? Начальную, конечную или среднюю? Какую не выбери всегда будет вариант, когда выбранная точка не совпадает с вершиной.
Цитата
Alexey P пишет: Далее если делаю отрисовку параллельных с лучами на минутном.... при последюущем прогружении графика (след день) старые точки не прогружаются и линии не поймешь хер знет что рисуют!
А тут наверное надо, если базовая точка выходит за пределы диаграммы, рассчитывать новую ближайшую базовую точку.
Надо делать так, как надо. А как не надо - делать не надо.
В таблице всех сделок есть параметр "Время(мкс)", последние три цифры которого всегда равны нулю. Это у всех так или мой брокер что-то не обновил/не установил у себя?
Надо делать так, как надо. А как не надо - делать не надо.
Egor Zaytsev пишет: Действительно одно время эта функция не работала и проблема была устранена в версии 6.15
У меня предложение: при анонсировании новой версии писать более подробно о новых возможностях, об устранении старых ошибок и, по возможности, о добавлении новых.
Цитата
OnCleanUp Функция вызывается терминалом QUIK при смене сессии и при выгрузке файла qlua.dll.
Цитата
Egor Zaytsev пишет: Под сменой сессии имеется ввиду дата торгов.
Это значит, что OnCleanUp вызывается при переподключении к серверу в новый торговый день? Когда происходит выгрузка файла qlua.dll?
Короче, что нужно сделать, чтобы был вызван колбек OnCleanUp?
Надо делать так, как надо. А как не надо - делать не надо.
rozmin пишет: Увы, но квик не собирается соответствовать современным стандартам, его уровень "полена и топора" будет жить пока у него не заберут монополию, что в современных реалиях уже не за горами.
К сожалению, вынужден с вами не согласиться по поводу последнего пункта. Возможно, я чего-то не знаю, но, сдаётся мне, что доля конкурентных торговых платформ для российского фондового рынка всех вместе взятых меньше, чем QUIK. Хотя было бы интересно посмотреть исследования на эту тему. Вы таковыми располагаете? На чём основаны ваши заявления?
Надо делать так, как надо. А как не надо - делать не надо.
Sergey Gorokhov пишет: Вы можете вынести нужные окна за пределы главного окна терминала и назвать их как угодно
Как это поможет в решении задачи?
Цитата
Иван Кешиков пишет: А так можно было бы в панели задач наблюдать нужный мне параметр.
Интересная идея. Зря вы отмахиваетесь от неё. Вот, пример, как настраивается текст в заголовке окна, статусной строке и всплывающей подсказке в foobar2000:
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
Eldar пишет: второй цикл - это внесение изменений в таблицу.
У вас в цикле "for i=1, 30 do" нигде не используется переменная-счётчик i. Отсюда, на первый взгляд, в этом цикле вы делаете 30 раз одни и те же действия.
Надо делать так, как надо. А как не надо - делать не надо.
sam063rus пишет: как ей пользоваться и все возможные к ней параметры
К сожалению, не представляется возможным, описать все возможные варианты, всех транзакций, всех бирж с которыми работает QUIK, ввиду непреодолимо гигантского их количества. Поэтому, частный случай, лучше смотреть в документаци той конкретной биржи, о которой идет речь.
Правильно ли я понимаю ваш ответ, что в QUIK поддерживаются параметры/значения_параметров транзакций различных бирж, не описанные в Руководстве пользователя QUIK? Нам осталось только угадать как они могут называться в вашей интерпретации?
Примечания: • Параметр regime определяет режим работы команды и может принимать следующие значения: 0 Не менять объёмы заявок. Остается текущий фактический объем заявок в системе. Присланные количества игнорируются. 1 Изменить объёмы заявок. Если заявки найдены, вместо них выставляются заявки с присланными ценой и объемом. 2 Снять старые заявки. Если объем хотя бы одной из заявок не совпадает с присланным, удаляются обе заявки. Иначе - выполняется сдвиг. 3 Установить объемы заявок равными присланным за вычетом сведенной части заявки (не меньше 0). Если присланный объем меньше сведенной части заявки, удаляются обе заявки.
Если я правильно угадал, то FutMoveOrder - это транзакция с параметром ACTION = "MOVE_ORDERS", а regime - параметр MODE в QUIK. Поддерживается ли параметр MODE = 3 ?
Надо делать так, как надо. А как не надо - делать не надо.
sam063rus пишет: 2. значит ли то, что обращаясь к ТТП мы быстрей получим данные чем по коллбекам OnParam, OnTrade?
Как я понял из общения с ТП, сначала обновляются данные в ТТП, затем вызывается колбек OnParam. Но чтобы "быстрей получить" данные из ТТП, нужно знать, в какой момент к ней обращаться. Так что без OnParam не обойтись. И при чём здесь OnTrade?
Надо делать так, как надо. А как не надо - делать не надо.
sam063rus пишет: горздо интереснее было бы ознакомиться со списком зарегистрированных НО!!! ещё не реализованных пожеланий)))))) или... "огласите весь список, пжалста"
Для начала было бы неплохо огласить список зарегистрированных багов, а также тех, над исправлением которых уже работают. А то я уже со счёта сбился только обнаруженных мной багов. И непонятно, работают над ними или нет: по некоторым из них от техподдержки было лишь сообщение:
Цитата
Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Надо делать так, как надо. А как не надо - делать не надо.
Viktor MMM пишет: Подписаться на изменение конкретного параметра не возможно.
Можно, как вам уже указали, используя CreateDataSource и SetUpdateCallback. Но, если необходимо отслеживать много параметров, то неизвестно, как это отразится на производительности.
Надо делать так, как надо. А как не надо - делать не надо.
Egor Zaytsev пишет: Имел ввиду, что если настроить фильтр, то можно увидеть изменение по конкретному параметру. Так да, изменения будут по любому параметру, но получать сообщение только по конкретному. Например так:
Код
function OnParam(class,sec)
if class == "SPBFUT" and sec == "BRJ5" then
tp1 = getParamEx(class,sec,"qty")
message(class.." "..sec.." "..tp1.param_value,2)
end
Да нет же. Так вы будете получать сообщение при изменении любого параметра по данной бумаге. Максимум, что можно сделать, это проверять, была ли вызвана функция OnParam изменением интересующего параметра или какого-то другого:
Код
local tp_prev
function OnParam(class,sec)
if class == "SPBFUT" and sec == "BRJ5" then
tp1 = getParamEx(class,sec,"qty").param_value
if tp1 ~= tp_prev then
message(class.." "..sec.." "..tp1,2)
tp_prev = tp1
end
end
end
Надо делать так, как надо. А как не надо - делать не надо.
s_mike@rambler.ru, вы что, сговорились с разработчиками? По приведённой мной выше ссылке разработчикам на 5-ти страницах пытаются объяснить, что при подключении клиента к серверу требуется первым делом передать клиенту количество записей, которыми располагает сам сервер. Ничего более. Никаких гаданий, что "груз" в пути не нужно. Только то, что есть сейчас. И "окончательная загрузка" имеется ввиду по отношению к моменту подключения к серверу. Не заставляйте переписывать предыдущую тему сюда, лучше почитайте здесь.
Надо делать так, как надо. А как не надо - делать не надо.
Michael Bulychev пишет: Не могли бы Вы привести эти цитаты с решением?
:o Да вот хотя бы:
Цитата
quio пишет:
Корректное решение данной задачи зависит от реализации клиент-серверного взаимодействия, которая известна только вам. Однако универсальное решение здесь уже звучало: 1. Во все таблицы добавляется флаг, типа "инициализирована", который сбрасывается ПЕРЕД подключением; 2. После подключения первым пакетом с сервера передается количество имеющихся в данный момент записей на сервере для данной таблицы; 3. При получении пакета из п.2 для соответствующей таблицы ставится признак "инициализирована" и сохраняется полученное количество записей.
В пользовательском коде мы сначала смотрим флаг "инициализирована". Если нет, ждем. Если да, получаем, сколько строк таблицы было на сервере в момент подключения и сравниваем это значение с уже имеющимся количеством записей в этой таблице.
Все рассуждения на тему, что пока этот пакет дойдёт до клиента, количество записей может измениться, расценивается, как "отмазка", чтобы ничего не делать.
Надо делать так, как надо. А как не надо - делать не надо.
Сергей Ханжин пишет: Правильно ли я понял, резюме в том, что надежно узнать нельзя никак?
Да, правильно. И, несмотря на то, что разработчикам был предложен вариант решения, который бы всех устраивал, они всё равно включают... в общем вы поняли... И делают вид, что не понимают, чего от них хотят.
Надо делать так, как надо. А как не надо - делать не надо.
Constantin Constantin пишет: Sergey Gorokhov , а какой временной интервал лучше при этом заказывать?
Такой который даст Вам исчерпывающую информацию для анализа.
Речь в данном случае идёт о получении изменения параметров или таблице истории изменений. Разве для этого имеет значение интервал (не считая тикового)?
Надо делать так, как надо. А как не надо - делать не надо.
Я вижу, что "стакан". Но в стакане нет информации ни о количестве заявок, ни о времени их постановки... Есть только агрегированный спрос и предложение с разбивкой по ценам.
Надо делать так, как надо. А как не надо - делать не надо.
А можно ли дополнить программу Quik такой функцией, как - "Таблциа истории по стакану" ?
Которая бы создержала, все заявки на Куплю и Продажу, с датаой и временем подачи заявки, соответсвенно ценной, и кол-ом лотов, а так же насколлько исполнена данная заявка ?
Предлагаем написать скрипт на LUA, который будет выгружать данную информацию.
Позвольте еще вопрос, выгрузка через скрипт будет происходить, так сказать онлайн, или выгрузку можно сделать в конце дня, то есть историю за день ?
Если речь про заявки всех участников торгов, то LUA здесь не поможет, т.к. в QUIK нет этой информации по определению.
Надо делать так, как надо. А как не надо - делать не надо.
rozmin пишет: Благодаря quik понял, что готов платить за VOLFIX! - единственный положительный момент.
Похоже на дешёвый пиар.
Цитата
rozmin пишет: Платформа quik - собрат АвтоВАЗа, морально устаревшее и отсталые ПО, с которого все бегут на сторонние аналоги и, чаще всего, другие рынки...
Ежегодно на форуме вижу посты подобного рода. Возможно, одного автора...
rozmin пишет: Низкое количество ликвидных инструментов ММВБ отчасти вызвано отсталой операционной платформой, оставшейся на уровне MsDOS
всё веселее и веселее...
))))
+1 :D Интерфейс VOLFIX как раз чем-то напоминает DOS приложение 90-х :)
Цитата
rozmin пишет: Для настройки рабочего пространства требуются навыки программиста!
Быть может в этом-то и дело?! Вы не можете настроить рабочее пространство под себя. Навыки программиста для этого не нужны. Нужно что-то другое. Некоторые брокеры, ориентированные на клиентов, помогают своим клиентам в настройке рабочего места. Просто приносите ноутбук или планшет, и вам всё настраивают, как пожелаете. Если у вас открыт реальный счёт у брокера, попробуйте обратиться к нему за помощью.
Надо делать так, как надо. А как не надо - делать не надо.
Дмитрий пишет: добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
А пока данное пожелание не реализовано, разумно ли вместо OnParam использовать функции CreateDataSource и SetUpdateCallback на каждый из отслеживаемых параметров? Не окажет ли это негативного влияния на производительность?
Надо делать так, как надо. А как не надо - делать не надо.
Optimus1 Optimus1 пишет: Но не понятно почему должно отразится 10 (сделок) строк с принзаком Купля, да продовали 10 чевлоек, но купил то эти акции 1 человек.
Вы когда-нибудь видели как разбивается ваша одна большая заявка на несколько маленьких сделок? Теперь представьте, что этот один человек, о котором вы говорите, - это вы.
Надо делать так, как надо. А как не надо - делать не надо.
tab = {}
local n1, n2, n = #tab1, 1, 0
for i = 1, n1 do tab[i] = tab1[i] end
for i = 1, n1 do
local v1 = tab1[i]
for j = n2, #tab2 do
local v2 = tab2[j]
n = n + 1
if v2 < v1 then table.insert(tab, n, v2)
elseif i == n1 then
if v2 > v1 then table.insert(tab, n, v2) end
else
if v2 > v1 then n2 = j else n2 = j + 1 end
break
end
end
end
Надо делать так, как надо. А как не надо - делать не надо.