Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
Михаил Филимонов пишет: 1. Неужели разработчикам трудно было написать для новичков кратко что потребуется для написания скриптов и программ(роботов) 2. Вкратце описать "скелет" индикаторов и роботов 3. Как отлаживать созданные скрипты и роботов
Николай Камынин, что из этого есть по приведённым вами ссылкам?
Надо делать так, как надо. А как не надо - делать не надо.
Зарегистрируйте пожелание на добавление функционала: 1) изменение цвета линии индикатора на заданном участке 2) добавление флага, запрещающего соединять точки, если между ними есть nil значение
Надо делать так, как надо. А как не надо - делать не надо.
Иногда сделки приходят с параметром flags, равным 1025 (установлен 1-й бит) или 1026 (установлен 2-й бит). А вот, что значат эти биты - вопрос к техподдержке.
Надо делать так, как надо. А как не надо - делать не надо.
Sergey Gorokhov пишет: Если интересует развернутый ответ, у нас есть документ описывающий стоп заявки на 16 страницах, могу отправить по письменному запросу на quiksupport@arqatech.com
Есть какое-нибудь логическое объяснение тому, что развёрнутое описание стоп-заявок нельзя найти в общем доступе и/или официальной документации? Какие ещё документы, описывающие работу с ИТС QUIK, можно запросить по quiksupport@arqatech.com?
Надо делать так, как надо. А как не надо - делать не надо.
Сергей пишет: function f_cb(t_id,msg,par1,par2) --событие на нажатие клавиш if (msg==QTABLE_CHAR) and (par2==19) then --сохранить в CSV файл текущее состояние таблицы нужно нажать комбинацию клавиш Ctrl+S CSV(t_id) end if (msg==QTABLE_CLOSE) then --закрытие окна Stop() end end
А где вы взяли этот кусок кода?
Надо делать так, как надо. А как не надо - делать не надо.
Это не задержка в 15 мс. Это разность между двумя событиями, которая в Windows при стандартном таймере вычисляется кратно 15.6 мс. Соответственно, для промежутка времени менее таймера будет отображаться либо 0 либо 15 (15.6 мс).
Надо делать так, как надо. А как не надо - делать не надо.
Дмитрий пишет: То есть если график не открыт, то CreateDataSource вообще не выдаст нам свечи, сохраненные в кэше?
Нет, не так. Конечно, CreateDataSource вернёт нам свечи из кэша (я не совсем верно написал выше). Но, если график открыт, то значения свечей мы можем получить сразу. Если же график не открыт, то сначала ds:Size() = 0. Свечи придут позже.
Надо делать так, как надо. А как не надо - делать не надо.
Николай Камынин пишет: действительно, нет надобности обновлять историю которая уже есть в терминале. Было бы хорошо, если бы история в терминале в начале сессии не обновлялась, а добавлялась.
Специально проверил: На выходных с помощью QMinEditor изменил значение одной свечи на графике. Сегодня подключился к серверу, и свеча не обновилась.
Причём, если график не открыт в терминале, то значения "старых" свечей мы получаем только в колбеке (не зависимо, сохранён кэш графиков или нет). Если график открыт, то "старые" свечи возвращаются в CreateDataSource. Эту информацию можно добавить в документацию.
Но в любом случае, значение изменённой свечи не обновляется.
Надо делать так, как надо. А как не надо - делать не надо.
Некто пишет: Контекстное меню графика - "Параметры текущего окна" - появится окно "Настройка параметров диаграммы" - вкладка "Диаграмма" - " Показывать графики" есть пункт "выбрать с" - можно выбрать на определённый день, но только до 18:45
Там можно выбрать любое время. Это поле редактируемое.
Старатель пишет: есть настройка Intra-day, где указывается нужное время.
Видимо, это может подойти тем, кто каждый день будет сохранять историю после 23:49 . Приятного им времяпрепровождения.
Сохранять историю с помощью getCandlesByIndex, изменяя каждый раз дату-время графика в настройках, - в любом случае не самое приятное времяпрепровождение :D Проще сохранять историю с помощью CreateDataSource: написал скрипт, запустил один раз и забыл. Остальное он сам сделает.
Надо делать так, как надо. А как не надо - делать не надо.
Некто пишет: В своём скрипте сначала вызываю getNumCandles(), потом getCandlesByIndex(), потом сравниваю кол-во свечей, которые они вернули. Для графика Сбера периодов 1 и 2 мин они равны. Для Si getNumCandles() в 21:30 возвращает бОльшее число.
Старатель пишет: TIME возвращает время последней сделки, но не дату, не так ли?
На графике есть
Пока последняя свечка не загрузится, мы об этом не узнаем.
Но ваш спор не понятен: Вас просят, сказать сколько свечек на сервере. Вы предлагаете считать свечки на рабочем месте. Вас спрашивают о дате-времени последней сделки, чтобы узнать загрузился ли график. Вы предлагаете дождаться загрузки графика, чтобы узнать дату-время последней сделки.
Надо делать так, как надо. А как не надо - делать не надо.
Sergey Gorokhov пишет: Здравствуйте, Вопрос уже многократно поднимался на форуме. Ответ: никак.
Прошу понять, что прочитать весь форум довольно затруднительно, а поиском не всегда находится нужное. Поэтому ещё вопрос - а планируется ли добавление срабатывания callback'а в такой ситуации? Ведь это решило бы проблему.
Вы не совсем понимаете. Дело в том, что нет такого критерия который позволил бы отличить ситуацию "продолжения ожидания" от "отсутствия данных", а значит и решить эту проблему нельзя.
Вопрос действительно многократно поднимался на этом форуме. И в этой теме было показано, что есть решение, которое "позволило бы отличить ситуацию "продолжения ожидания" от "отсутствия данных" при наличии этих данных на сервере. Вы не смогли аргументированно опровергнуть данное решение. Поэтому, правильней было бы говорить не об отсутствии критерия, как такового, а об отсутствии желания что либо делать в этом месте.
Надо делать так, как надо. А как не надо - делать не надо.
DronGO пишет: А почему дата меняется только утром? а не в 00:00:00?
Потому, что ночью торги ещё не начались. И в выходные торгов также нет. Вполне логично, что дата торгов меняется только в торговый день. Ключевое слово здесь "торгов".
Надо делать так, как надо. А как не надо - делать не надо.
Не помню, было такое пожелание или нет... Сделайте возможным из QLUA-скрипта, если не добавлять индикатор на диаграмму, то хотя бы управлять уже созданным индикатором: вызывать функцию Refresh, ту самую, которая вызывается при нажатии на кнопку "Сохранить" в настройках индикатора, а также изменить значения параметров таблицы Settings.
Надо делать так, как надо. А как не надо - делать не надо.
Я не знаю как там в Metatrader, но представляю себе следующим образом: В любом из скриптов создаётся переменная и обозначается как глобальная в общем "пространстве имён", доступ к которой возможен из любого скрипта. Обращение к этой переменной должно осуществляться по ссылке (без создания нового объекта) по аналогии с таблицами в Lua. Возможно ли это сделать?
Надо делать так, как надо. А как не надо - делать не надо.
Регистрируйте. Но мне хотелось решить ещё одну задачу: приведение к одному масштабу на нескольких диаграммах, где границы оси изменяются в зависимости от определённых условий..
Надо делать так, как надо. А как не надо - делать не надо.
Возможно ли сделать в QUIK общее хранилище данных для обмена информацией между скриптами?
Я знаю, что есть стороннее решение. Но оно не удобно тем, что при обращении к объекту из общего "пространства имён" создаётся новый экземпляр объекта (вместо ссылки), что негативно сказывается на ресурсах.
Надо делать так, как надо. А как не надо - делать не надо.
Николай Камынин пишет: Просто сервер биржи не транслирует стакана, пока не урегулирует очередь. Но обновление очереди на сервере QUIK или в терминале может проходить без запрета и мы видим промежуточное состояние стакана.
"Без запрета" чего? Что такое "промежуточное состояние стакана". Откуда оно появилось, если первоисточником для QUIK является биржа?
Надо делать так, как надо. А как не надо - делать не надо.
Alexey Ivannikov пишет: Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной.
Переходите на следующий уровень.
Надо делать так, как надо. А как не надо - делать не надо.
user пишет: Ту информацию, что ближе к спреду надо бы обновлять более приоритетно.
При чём тут приоритетное обновление?! Есть правила торгов, согласно которым исполняются ордера. Согласно этим правилам, ордера всегда исполняются последовательно (пусть даже по несколько штук в единицу времени) в порядке очереди. Исполнение ордеров приводит к изменению стакана таким же образом в строгой последовательности. Если соблюдать эту последовательность изменений при отображении "стакана", то никогда даже при частичном обновлении "ценовых уровней" не возникнет пересечения котировок. Отсюда вытекает вывод, что в QUIK эта последовательность изменений строк в "стаканах" нарушается.
Надо делать так, как надо. А как не надо - делать не надо.
Deserf пишет: Еще раз пишу: режим "а+" не подойдет: это cfg-файл, мне нужно заменять определенные значения в строго определенном месте, а не дописывать, а потом объяснять при следующем цикле оператором что же им считывать.
Вообще-то режим "a+" как раз предназначен, чтобы заменять "определенные значения в строго определенном месте":
C одной стороны, перенос лимитированной заявки через клиринг осуществляется путём её снятия и выставления новой. С другой стороны, можно ведь и реализовать механизм перевыставления стоп-заявки на новую заявку.
Надо делать так, как надо. А как не надо - делать не надо.
DronGO пишет: Сравнил количество сохранённый сделок/в секунду первым способом и вторым.
Видимо, идут накладные расходы на заморозку/разморозку параллельного потока. Кроме того, параллельный поток при использовании потокобезопасных функций просто простаивает.
Ваш тест показывает, что создание большой очереди в колбеке для её последующей обработки в main нецелесообразно, т.к. изымание элементов из большой очереди может занять больше времени, чем обработка колбеков сразу по факту их прихода. А в случае использования потокобезопасных функций в main основной поток терминала будет "заморожен", в результате мы не получим того, для чего собственно и использовали эту очередь: освобождение основного потока.
Надо делать так, как надо. А как не надо - делать не надо.
Михаил Иванов пишет: Есть допустим ОФЗ с купоном в 7% годовых, и стоит она 85 % от номинала.
Невысокий купон - одна из причин, почему бумага торгуется ниже номинала. И наоборот. Чтобы знать истинную доходность к погашению в терминале и транслируется значение доходности с учётом дисконта/надбавки.
Надо делать так, как надо. А как не надо - делать не надо.