Андрей 77 (Автор тем)

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

Страницы: 1
CreateDataSource
 
CreateDataSource(class,sec,int) возвращает nil если задан неверный класс, однако задание несуществующего инструмента возвращает таблицу (не nil)
Вместо констант INTERVAL_M? удобно указывать переменную с целыми значениями (минутами), однако функция не производит проверку и принимает
любое значение.
SetUpdateCallback
 
Странная наблюдается закономерность. Как и в случае с SearchItems,  https://forum.quik.ru/messages/forum10/message15516/topic36/#message15516
пользоваться функциями QLUA непосредственно в реальных ситуациях крайне неудобно. Всегда нужны какие-от дополнительные обертки, костыли ...
Вот и SetUpdateCallback для CreateDataSource. В руководстве приведен замечательный пример, который сразу же вызывает вопросы (такие же как и
в случае с SearchItems) Там функция обратного вызова содержит явное использование источника данных, который никак туда не передается. Это что
же, для каждого источника писать свою функцию, даже когда нужна одинаковая стандартная обработка ? Фактически так и есть и остроумное решение
https://forum.quik.ru/messages/forum10/message1689/topic233/#message1689 лишь скрывает этот факт (еще одна обертка).

С другой стороны, ds:SetUpdateCallback(ucb)   эквивалентен  ds.SetUpdateCallback(ds,ucb) и источник данных должен быть доступен
в SetUpdateCallback через self, но тогда что мешает явно передать его ucb ?


 
TRANSPARENT_BACKGROUND
 
Обнаружил ОЧЕНЬ странное поведение QUIK при обработке меток с TRANSPARENT_BACKGROUND = 1.
Началось с того, что при включении прозрачности одна метка (buy - 32 bit, зеленый треугольник с альфа каналом) отображается нормально, другая (точно такой же, но красный - sell) вообще
практически не отображается. Попытки пересоздать красный треугольник из зеленого к успеху не привели :(. Зато другая метка - красная стрелка размером побольше на черном фоне,
прекрасно отображается с прозрачным фоном. Попытка уменьшить ее работает, но до некоторого размера, потом тоже все ломается ...  
ГО на покпку/продажу
 
Вопрос: как рассчитывается "ГО на покупку/продажу" при вызове заявки с графика ?
SearchItems
 
Пытаюсь постичь глубокий смысл этой функции. Но, что-то не получается.
Примеры, приведенные в руководстве, содержат функции обратного вызова с

Код
function fn(t)
if t.qty == 103 then
или
Код
function fn(par1, par2, par3)
if par1 == 103 and par2 == “SPBFUT” and par3 == “RIM3” then

Это что же, для каждой конкретной выборки свою функцию писать !?

Хотелось бы иметь универсальную fn, а набор контролируемых параметров и их значения  задавать при вызове SearchItems.

В принципе, я написал такую функцию, function SearchTables(tables,s,e,fn,...). Работает с переменным списком аргументов, а универсальная fn(t,...) выбирает таблицы, удовлетворяющие ВСЕМ условиям, например:

Код
st =  SearchTables("trades",0,getNumberOf("trades")-1,fn,"price",119.35,"qty",10)
Но она использует getItem(), а как я понимаю,  именно из-за слишком медленной ее работы и была создана SearchItems ...
Параметры меток
 
Странно. Для того, чтобы создать метку необходимо как минимум задать два параметра: DATE и TIME. Причем именно так, а не date, time.

   Params.DATE = "20010101"
   Params.TIME = "100000"
   lid = AddLabel(Tag,Params)

При чтении же параметров метки сразу после ее создания

   Params = GetLabelParams(Tag,lid)

оказывается, что никаких DATE, TIME там нет, но зато есть date и time (Params.date, Params.time)
Редактирование таблиц
 
При вызове окна редактирования таблиц отображаются списки "Доступные параметры" и "Выбранные параметры".
Было бы удобнее и логичнее, если бы в Доступных отображались только те параметры, которые не были выбраны (отсутствуют в списке "Выбранные параметры").
Луа скрипты
 
Как, на мой взгляд, должен выглядеть этот интерфейс.
Во-первых, как я уже писал когда-то, иконки (красный)треугольник и (зеленый)квадрат всюду и везде означают Play и Stop,
Если уж их использовать, то они должны располагаться на кнопках Запустить (треугольник) и Остановить (квадрат).

Хотелось бы иметь горячую клавишу (Ctrl-U) сразу открывающую панель "Сервисы/Луа скрипты",
Подпись: "Доступные скрипты в C:\QUIK\scripts"
(текущий каталог скриптов, например "C:\QUIK\scripts", его нужно сохранять независимо от других, хорошо бы здесь же менять)
и ниже - перечень ИМЕН всех файлов с расширением lua (то есть без вызова доп. панели Windows, все время виснет ...), кнопку "Добавить" - удалить вообще или заменить на "Каталог".
В первой колонке напротив имен - красный кружок напротив загруженных, но не запущенных скриптов (активна кнопка Запустить), зеленый - напротив работающих (активна кнопка Остановить),
ничего нет напротив не загруженных скриптов - для них активна кнопка "Загрузить" (вместо Добавить).
Горячие клавиши
 
В новых версиях куда-то делись Ctrl-F10, Ctrl-F12.
Как теперь быстро перезагрузить скрипт ?

Правда Ctrl-F10 стал вызывать меню Система (зачем ?).
В то же время эта комбинация отсутствует в списке ГК по умолчанию ...

А вот ГК для вызова Сервисы/Луа скрипты до сих пор нет.
И вообще, управление ГК какое-то странное и убогое ..
Ввод заявки из окна диаграммы
 
В стандартной теме еще как-то видно, включен режим или нет, а в темной нет.
Лучше бы сделать так, чтобы сама иконка (мишень) менялась.
Впрочем, не уверен, что эта кнопка вообще нужна. Чтобы ввести заявку с диаграммы
еще постараться нужно в свечку попасть ...

PS
Для смены темы нужна перезагрузка приложения :(( Хорошо, что не Windows :)
А что, тему сохранять/загружать невозможно, только выбрать из двух :( ?
Интервал
 
Когда то уже поднимал эту тему, может стоит вернуться  ...
Иногда хочется бросить взгляд на ВСЕ графики на текущей закладке с другим интервалом.
Переключать по очереди 10-15 окон, потом возвращать обратно ... !?
Для изменения интервала активного окна ведь уже есть контекстное меню, зачем же дублировать,
почему бы не использовать кнопку на верхней панели для задания интервала всех окон.

Правда может быть так, что различные окна открыты с различными интервалами. Хорошо бы запоминать
эти величины и иметь средство быстрого восстановления (одна из опций той же кнопки).
Сохранение настроек
 
Для сохранения настроек требуется попасть в кнопку "Система", строчку "Сохранить настройки в файл", кликнуть "Сохранить", и еще раз "Да".
Итого - 4 клика ! Не должно быть в программах действий, требующих 4-х кликов.

Хотелось бы: Иметь кнопку на верхней панели, нажатием на которую все настройки сразу сохраняются в файл по умолчанию (info.wnd) (который перед этим
автоматически копируется в info.wnd.YYYYMMYY_... Еще лучше, чтобы и в info.wnd.last, чтобы всегда можно было легко восстановить _последнюю_ конфигурацию
либо другой кнопкой либо ГК)

PS Я когда-то просил именовать файлы настроек с YYYYMMDD для удобной сортировки и поиска.  Хорошо, что это сделано, но почему они отправлены в WNDSAV и оставлены старые ... DDMMYYYY ?
Новая СТОП заявка
 
Когда можно будет выставлять новую СТОП заявку из таблицы Позиций по клиентским счетам ? Единственного естественного места, откуда СТОП заявка должна выставляться (с открытой позиции)  
Еще пожелания
 
1) При переносе info.wnd на другой ПК не учитывается разрешение экрана. Это плохо и неудобно. Было бы здорово, если бы разрешение сохранялось, а при загрузке учитывалось и размеры и расположения окон пересчитывались.

2) Окно сообщений - занимает много место и все равно бесполезно, так как длинные сообщения прочесть невозможно. Было бы полезно иметь возможность кликнуть по какой-то области или двойным кликом по сообщению открыть отдельное окно с полным текстом сообщения.

3) Старая просьба - Ctrl-W это хорошо, но еще лучше было бы иметь возможность упорядочивания столбцов таблицы по размеру ее окна. Точнее, для каждого столбца брать max от длины данных и длины наименования столбца, затем привести сумму этих длин к размеру окна (если не помещается, пропорционально или с приоритетом, скажем, данных, уменьшить).
Стоп-заявки FORTS, Использование таблиц, графиков для выставления стоп-заявок
 
Никак не могу понять, ну почему нельзя выставить стоп-заявку по таблице "Позиции по клиентским счетам(фьючерсы)" ?
Ведь именно тут указаны открытые позиции. Почему я должен использовать ТТП, где тьма всего и, возможно, и нет тех
инструментов, по которым нужно выставлять заявку ?

Другой (застарелый) вопрос аналогичен - стоп-заявки с графиков.

Аргументы, почему это до сих пор не сделано, так и не прозвучали. Или я что-то пропустил ?
Формат чисел при вводе заявки
 
Если в качестве разделителя групп в формате отображения чисел задана точка (Windows), то панель ввода заявки неверно отображает объем:
Сбербанк: Цена 72,79  Кол-во: 1 (Лот 10) Объем: 72790,00.  Надо бы аккуратнее обрабатывать числа.
Сообщения
 
В тексте сообщений гиперссылки ни кликнуть нельзя, ни скопировать. Позорище ... :((
Страницы: 1
Наверх