Юрий Коробейников написал: 1. Почему в таблице котировок указаны только крайние десять позиций для каждой акции? Есть ли возможность отобразить все доступные котировки или хотя бы большее их число?
Размер стакана настраивает биржа, по своим каким-то договоренностям с брокером.
Цитата
Юрий Коробейников написал: 2. Есть ли какая-то возможность отобразить таблицу котировок в виду удобного графика? Как здесь
К сожалению такой возможности нет. Можем предложить зарегистрировать пожелание на доработку.
Не работает настройка "показывать иконку вынесенного окна в панели задач"
Пользователь
Сообщений: Регистрация: 23.01.2015
05.12.2016 06:36:43
Здравствуйте, В старых версиях действительно была такая проблема. Однако ее уже давно починили. На актуальной версии (сейчас это 7.5.) такой проблемы не должно быть
Значения показателей VOLUME квик транслирует для индексов RTSI и MICEXINDEXCF и MICEX
Пользователь
Сообщений: Регистрация: 23.01.2015
05.12.2016 06:29:27
Здравствуйте, Такой возможности нет.
Объем контрактов по фьючерсу РИЗ6 дейли не соответствует объему торгов согласно итогам торгов биржи
Пользователь
Сообщений: Регистрация: 23.01.2015
05.12.2016 06:27:54
Здравствуйте, В QUIK дневной график это с 00:00:00 до 23:59:59 А на сайте биржи это с 18:45:00 до 18:44:59 следующего дня.
Отсутствие данных в таблицах
Пользователь
Сообщений: Регистрация: 23.01.2015
05.12.2016 06:14:02
Здравствуйте, Проверьте сегодня, должно работать.
Показатель изменения цены в процентах
Пользователь
Сообщений: Регистрация: 23.01.2015
05.12.2016 06:12:21
Здравствуйте, Вы говорите про инструмент "линейка" В текущей версии такой возможности нет. Однако, ранее мы уже регистрировали от других пользователей пожелания на его реализацию.
SetUpdateCallback зависания системы
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 13:32:09
Космонавт, Для этого специально существует функция SetEmptyCallback
SetUpdateCallback зависания системы
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 12:03:32
Космонавт, Для расчета EMA требуется прогнать значения от первого до последнего. Настоятельно рекомендуем посмотреть пример, который описан в файле readme_LuaIndicators.txt
Космонавт написал: Ведь ds будет всё время принимать значение новой бумаги и будет каша.
Ничего не мешает сделать несколько ds, для каждой бумаги свой. Например если вместо переменной использовать таблицу ds[sec] = CreateDataSource("TQBR", sec, INTERVAL_M1)
Какие колбеки? и зачем Вы их выносите? Вы же сами сказали что не хотите подписываться на свечки в цикле. Так не подписывайтесь. Про колбеки никто ничего не говорил.
НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ, НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ!
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 09:55:51
Цитата
Иван Груздев написал: А что нужно сделать для того чтобы решить эту проблему....
Для начала обратитесь к брокеру.
НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ, НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ!
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 09:52:22
Цитата
Иван Груздев написал: вот что содержится в таблице, лимит откр. поз. всегда по нолям.....
Ну вот по этому Qpile скрипт и выдает сообщение.
НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ, НЕ НАЙДЕН ЛИМИТ ОТКРЫТЫХ ПОЗИЦИЙ!
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 09:35:08
Здравствуйте, Согласно коду, проверяется первая строка в ограничениях по клиентским счетам, параметр "Лимит открытых позиций" Соответственно, надо в терминале QUIK проверить а есть ли данные в этом параметре у этой таблицы, в первой строке. К слову, фильтры и сортировка таблиц не влияют на получаемые данные, а значит таблицу следует смотреть без них.
Расширение потокобезопасных функций в QLUA
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 07:59:43
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Расширение потокобезопасных функций в QLUA
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 06:40:05
Здравствуйте, Приведите пожалуйста пример применения.
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2016 05:21:22
Цитата
Космонавт написал: У меня ведь грубая ошибка - я каждый раз внутри цикла по новой подписываюсь на свечки и ставлю колбек?
Не понятно, что мешает Вам этого не делать?
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 23.01.2015
01.12.2016 10:22:09
Цитата
Космонавт написал: Сергей, спасибо за пример, но не понятно как функции OnCalculate(i) удаётся обратиться ко всем требуемым 9 свечкам. Что передаётся в переменную i ?
По данному вопросу, рекомендуем к прочтению документ "Создание индикаторов технического анализа с помощью скриптов Lua.pdf" расположенный по ссылке:
Sergey Gorokhov написал: SUM_TMP =(SUM_TMP[i-1] or 0)+C(i)
Сергей, спасибо за интересный пример. Обратил внимание на вот эту конструкцию. А Вы не могли бы пояснить, как он работает? как она обрабатывает оператор OR в данном случае? Если я правильно понимаю, она суммирует либо то, что перед ним, либо то что после, но по какому критерию?
Если SUM_TMP[i-1] не существует (nil) то вместо него берется 0
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 23.01.2015
01.12.2016 08:43:59
Здравствуйте, У нас есть такой пример индикатора без циклов, он не адаптирован под CreateDataSource, но может дать идею решения:
Скрытый текст
Код
Settings = {
Name = "*SMA",
Period = 9,
line = {{Name = "SMA1",Type = TYPE_LINE, Color = RGB(255, 0, 0)}}
}
function Init()
SUM_TMP={}
return #Settings.line
end
function OnCalculate(i)
local Out = nil
P=Settings.Period
if i==1 then SUM_TMP={} end
SUM_TMP[i]=(SUM_TMP[i-1] or 0)+C(i)
if i >= P then
Out = (SUM_TMP[i]-(SUM_TMP[i-P] or 0))/P
end
return Out
end
Перестал работать DDE с квика, Перестал работать DDE с квика
Пользователь
Сообщений: Регистрация: 23.01.2015
30.11.2016 05:19:46
Цитата
Александр Правилов написал: Я же написал наверху. Сначала поставил 13, потом снем, поставил 10, потом поставил 13. (все проф, лицензии)
Да написали, версии, но не сборки. У нас описанное поведение не воспроизводится (да и от других пользователей таких проблем не поступало). В связи с чем можем заключить что проблема в каких-то специфичных настройках на локальной машине. К сожалению затруднимся помочь с решением.
Перестал работать DDE с квика, Перестал работать DDE с квика
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 11:59:40
Александр Правилов, Какой именно офис Вы тестировали? Ранее были ситуации когда на версии Offise 2010 Starter (сокращенная версия офиса), DDE не работал. На остальных должен работать, с такими проблемами ранее никто не обращался. А на счет 13го, к сожалению подсказать затруднимся
Перестал работать DDE с квика, Перестал работать DDE с квика
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 10:52:39
Здравствуйте, В самом Excel, в параметрах, не должно быть галки "Игнорировать DDE-запросы от других приложений" Где эта галка расположена в Вашей версии Excel, к сожалению подсказать затруднимся.
Блок Settings
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 10:31:36
Цитата
Русский написал: Сергей, благодарю. Всё работает. Ещё подскажите, это сильно утяжеляет расчёт кода программой?
По идее не должно.
Блок Settings
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 09:28:29
Цитата
Sergey Gorokhov написал: Если данные строковые, то передавать в кавычках надо
или переписать пример, тогда будет работать как со строками так и с числами:
Код
function pack(...)
return arg
end
function str2tbl(str)
return assert(loadstring("return pack('"..string.gsub(str, ",", "','").."')"))()
end
function str2tbl2(str)
return string.gmatch(str, "([^,]+)")
end
tbl = str2tbl("TQBR,TQTF,RTSIDX,INDX")
Блок Settings
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 09:25:13
Цитата
Русский написал: Ваш способ либо не работает, либо я делаю что-то неправильно. Так как условие if не выполняется.
Это был пример не более (предоставляется как есть) и этот пример изначально предназначался для числовых данных. Если данные строковые, то передавать в кавычках надо tbl = str2tbl("'TQBR','TQTF','RTSIDX','INDX'")
Есть и другие способы, см интернет:
Блок Settings
Пользователь
Сообщений: Регистрация: 23.01.2015
29.11.2016 05:57:32
Цитата
Русский написал: Николай Камынин написал: Settings.cl="TQBR,TQTF,RTSIDX,INDX"Это я уже пробовал. Неверный способ
Как раз таки это единственно верный способ.
Цитата
swerg написал: можно ли строку, разделенную запятыми, преобразовать в таблицу lua
Например если разделитель точно запятые, то можно так:
Код
function pack(...)
return arg
end
function str2tbl(str)
return assert(loadstring("return pack("..str..")"))()
end
tbl = str2tbl("123,456,789")
Почему скрипты в QUIK выполняются дольше
Пользователь
Сообщений: Регистрация: 23.01.2015
28.11.2016 11:37:45
Цитата
Старатель написал: Вопрос разработчикам: верно ли, что в QUIK, как таковой, многопоточности нет?
В QUIK есть многопоточность
Цитата
Старатель написал: Да, есть два потока: основной и main. Но в каждый момент времени работают команды только из одного потока. Просто происходит переключение между потоками на уровне ОС.
так обрабатывается ситуация при одновременном доступе к одному ресурсу
Как уже было сказано, в QUIK нет возможности регулировать количество разрядов после запятой на Lua индикаторах. Ни через интерфейс, ни в коде индикатора, ни как-то иначе. Да в коде, Вы можете самостоятельно округлить числа до нужного количества знаков, но установить разрядность нельзя.
Число разрядов
Пользователь
Сообщений: Регистрация: 23.01.2015
28.11.2016 10:27:18
Здравствуйте, Такой возможности нет.
SetTableNotificationCallback : работы с клавишей Ctrl и двойным щелчком мышки
Пользователь
Сообщений: Регистрация: 23.01.2015
23.11.2016 17:28:46
Цитата
Sergey Denegin написал: одиночное нажатие мышки с нажатой кнопкой Ctrl
Прошу прощения, не заметили что Вы нажимаете Ctrl с клавишей мыши. Действительно, в таком варианте решить задачу в одном событии нельзя, разве что помнить предыдущие. Мы зарегистрировали пожелание на добавление события поднятия клавиш клавиатуры. Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
SetTableNotificationCallback : работы с клавишей Ctrl и двойным щелчком мышки
Пользователь
Сообщений: Регистрация: 23.01.2015
23.11.2016 17:14:26
Здравствуйте,
По второму вопросу проблема не воспроизводится. Вот наш код:
Скрытый текст
Код
work=true
function f_cb(t_id,msg,par1,par2) --событие на нажатие клавиш
message("msg= "..msg.." par1="..par1.." par2="..par2)
if (msg==QTABLE_CHAR) and (par2==19) then --сохранить в CSV файл текущее состояние таблицы нужно нажать комбинацию клавиш Ctrl+S
message("Нажали Ctrl+S")
end
if (msg==QTABLE_VKEY) and (par2==116) then --функция принудительного обновления таблицы при нажатии клавиши Ctrl+F5
message("Нажали Ctrl+F5")
end
if msg==QTABLE_CLOSE then
OnStop()
end
end
function OnStop()
work=false
DestroyTable(t_id)
end
function main()
t_id=AllocTable()
AddColumn(t_id,1,"INT1",true,QTABLE_INT_TYPE,10)
CreateWindow(t_id)
SetWindowCaption(t_id,"Script message.")
SetTableNotificationCallback(t_id, f_cb)
tmp=InsertRow(t_id,-1)
SetCell(t_id,tmp,1,"1",1)
while work do
sleep(500)
end
end
Приведите Ваш пример при котором проблема повторяется
Lua это регистрозависимый язык. Согласно документации, функция должна называться OnAllTrade
Не приходят события OnAllTrade при закрытой Таблице обезличенных сделок, События OnAllTrade приходят только при открытой таблице, в настройках все заказал.
Пользователь
Сообщений: Регистрация: 23.01.2015
23.11.2016 10:52:56
Цитата
Sergey Denegin написал: Где я потом смогу получить нужные мне данные обезличенных сделок?
Везде где это возможно. В том числе и в OnAllTrade. После заказа она будет наполняться с самого начала до текущего момента, и все это будет сыпаться в OnAllTrade.
Не приходят события OnAllTrade при закрытой Таблице обезличенных сделок, События OnAllTrade приходят только при открытой таблице, в настройках все заказал.
Потому что данные в таблице обезличенных сделок слишком большого объема. Если бы они заказывались все сразу без разбора, это был бы просто гигантский объем информации, до нескольких гигабайт. Пользователям это не то что не нужно, а даже вредно. Поэтому для таблицы обезличенных сделок, данные не едут пока пользователь сам их не запросит тем или иным способом.
написал: Вот именно линиями не получится, только точками или гистограммами.
Да вроде все получается. Если не забуду поищу в загашниках.
Там весь секрет в настройке "показывать пустые интервалы"
подсветка свечей на графика
Пользователь
Сообщений: Регистрация: 23.01.2015
21.11.2016 15:54:31
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
подсветка свечей на графика
Пользователь
Сообщений: Регистрация: 23.01.2015
21.11.2016 15:20:33
Здравствуйте, Менять цвет Lua индикатора в зависимости от условия можно уже сейчас. Путем создания нескольких одинаковых линий, но с разным цветом и далее, от условия рисовать только нужную линию. Однако, в текущей реализации через Lua нельзя создавать график в виде свечей. Вернее можно, но это будут не свечи, а линии (т.к значение можно указать только одно, а для свечи нужно 5). Таким образом, можем предложить зарегистрировать пожелание на добавление возможности рисовать свечи через Lua.
table.s*
Пользователь
Сообщений: Регистрация: 23.01.2015
21.11.2016 10:40:11
Здравствуйте, Просьба рассказать подробнее, как Вы пришли к такому выводу?
debugview - где его взять и как им пользоваться?
Пользователь
Сообщений: Регистрация: 23.01.2015
21.11.2016 09:59:47
Здравствуйте,
Цитата
Sergey Denegin написал: А как она по скорости? Быстрее чем обычный message?
PrintDbgStr быстрее чем message
Цитата
Sergey Denegin написал: И если я правильно понял, то если использовать DebugView, то значения переменных будут выводиться там, а обычные сообщения в обычном окне для message, и лично мне кажется, будет сложно совмещать по времени, что после чего следовало. Или такой проблемы не возникает?
Если хотите знать кто раньше, ничего не мешает добавить какой-нибудь порядковый номер.
Егор Масалкин написал: если у datetime отдельно секунды, часы, минуты и прочее, а у метки эти параметры объединены?
Взять отдельно секунды, часы, минуты и прочее и объединить
И по какому принципу они объединяются? Вроде простейший инструмент, но почему-то требуется множество дополнительных действий чтобы поставить метку на график...
Формат времени для меток это строка HHMMSS. datetime это таблица содержащая отдельно часы минуты и секунды. Вам нужно их взять из этой таблицы и просто объединить как строку. time = x.datetime.hour..x.datetime.min..x.datetime.sec
Почему так, объясняется тем что метки появились задолго до появления Lua в терминале. И тек исторически сложилось, что у них формат даты времени у них именно такой. Возможно, в будущем это как-то изменится, но сейчас работает именно так.
TRUMP сбой системы QUIK, TRUMP сбой системы QUIK (Не хватило памяти под объекты)
Пользователь
Сообщений: Регистрация: 23.01.2015
16.11.2016 13:43:02
Цитата
lokust написал: НЕответили на пару конкретнных вопросов,
На какие конкретные вопросы не было ответа?
Цитата
lokust написал: только отФутболиваете то к Брокеру, то на Биржу.
Потому что нам не известно и не может быть что и как у них настроено. Сервера QUIK находятся у брокеров, у нас нет к ним доступа. Брокер сам договаривается с биржей, на каких условиях нам тоже не известно. В некоторых вопросах мы можем помочь, но не то что касается взаимодействия между брокером и биржей, и взаимодействия между клиентом и брокером.
TRUMP сбой системы QUIK, TRUMP сбой системы QUIK (Не хватило памяти под объекты)
Пользователь
Сообщений: Регистрация: 23.01.2015
16.11.2016 12:57:58
lokust, Наш разговор зашел в тупик. Вы не воспринимаете то что Вам говорят, не только мы но и другие пользователи. А Ваши аргументы уже давно парированы. Не считаю должным дальше повторять то что и так уже было не один раз сказано.
Установка отметок на графике через скрипт
Пользователь
Сообщений: Регистрация: 23.01.2015
16.11.2016 11:04:36
Цитата
Егор Масалкин написал: если у datetime отдельно секунды, часы, минуты и прочее, а у метки эти параметры объединены?
Взять отдельно секунды, часы, минуты и прочее и объединить
Установка отметок на графике через скрипт
Пользователь
Сообщений: Регистрация: 23.01.2015
16.11.2016 10:20:34
Здравствуйте, В свечках нет таких параметров date и time (см документацию) Там есть только параметр datetime
Как взять значение последней строки из файла?
Пользователь
Сообщений: Регистрация: 23.01.2015
15.11.2016 06:55:21
Здравствуйте, Описание функций для работы с файлами можно найти в интернете, например ссылка Для построчного чтения можно использовать io.lines или file:lines
TRUMP сбой системы QUIK, TRUMP сбой системы QUIK (Не хватило памяти под объекты)
Пользователь
Сообщений: Регистрация: 23.01.2015
14.11.2016 10:54:05
Здравствуйте, Вынуждены еще раз повторить то что уже было сказано. Большой поток данных это нормально. Появление из-за этого ошибки о нехватке памяти это не нормально. И если есть баг в терминале из-за которого возникает ошибка, то в первую очередь следует обновить терминал, так как скорее всего эта ошибка уже давно исправлена. Версия терминала 6.12 является сильно устаревшей. С тех пор прошло уже 2 с лишним года. Выполните обновление терминала QUIK. Если Вам нужно уменьшить поток данных, в первую очередь обратитесь к брокеру. Касаемо вопроса к бирже, рекомендуем его задать специалистам биржи.
Управление таблицей LUA, Вопросы и пожелания.
Пользователь
Сообщений: Регистрация: 23.01.2015
11.11.2016 10:54:04
Цитата
Михаил Понамаренко (pmntrade.ru) написал: Горячие клавиши нужны будут для вызова добавленных возможностей, например, экспорта DDE.
Если пожелание на экспорт будет реализовано (станет понятно после рассмотрения), то стандартные горячие клавиши и контекстное меню для него также появятся.
Управление таблицей LUA, Вопросы и пожелания.
Пользователь
Сообщений: Регистрация: 23.01.2015
11.11.2016 10:30:01
Здравствуйте,
Цитата
Михаил Понамаренко (pmntrade.ru) написал: 1. Запускаю скрипт, создаётся таблица QLUA, сохраняю координаты окна таблицы, перехожу на другую вкладку, перезапускаю QUIK, таблица появляется на том же месте, НО НА ТЕКУЩЕЙ ВКЛАДКЕ, А НЕ НА ТОЙ, ГДЕ ОНА БЫЛА ОТКРЫТА. Есть ли возможность "запомнить" вкладку?
К большому сожалению в QLUA нет функционала позволяющего указывать на какой вкладке открывать таблицу. Мы зарегистрировали от Вас пожелание на добавление такой возможности.
Михаил Понамаренко (pmntrade.ru) написал: • таблицы не сохраняются в файл конфигурации (решилась бы проблема сохранения вкладок);
Нет, в данном месте решение другое. Добавить возможность через QLUA указывать на какой вкладке создавать таблицу, о чем сказано в первом пункте. Касаемо сохранения в файл, ничего не мешает запрограммировать это в самом коде скрипта.
Некоторые пункты контекстного меню в будущем будут добавлены, например то же редактирование, или экспорт данных (если будут добавлены). Если речь про добавление своих собственных пунктов просьба уточнить. Если речь про какие-то конкретные стандартные пункты, также просьба уточнить.
Михаил Понамаренко (pmntrade.ru) написал: • отсутствует экспорт данных из таблицы (особенно важен DDE экспорт, т.к. функциями DDE LUA пользоваться непривычно и неудобно);
Мы зарегистрировали от Вас пожелание на добавление такой возможности.
Этот пункт не понятен. Вы легко можете сами запрограммировать горячие клавиши. Для этого есть функция SetTableNotificationCallback
Мы постараемся рассмотреть зарегистрированные пожелания и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.