Получение данных по идентификатору с графика квика
Пользователь
Сообщений: Регистрация: 22.02.2023
02.07.2025 20:48:20
getCandlesByIndex
Функция предназначена для получения информации о свечках по идентификатору (заказ данных для построения графика плагин не осуществляет, поэтому для успешного доступа нужный график должен быть открыт).
Формат вызова:
TABLE t, NUMBER n, STRING l getCandlesByIndex (STRING tag, NUMBER line, NUMBER first_candle, NUMBER count)
Параметры:
tag – строковый идентификатор графика или индикатора,
line – номер линии графика или индикатора. Первая линия имеет номер 0,
first_candle – индекс первой свечки. Первая (самая левая) свечка имеет индекс 0,
count – количество запрашиваемых свечек.
Возвращаемые значения:
t – таблица, содержащая запрашиваемые свечки,
n – количество свечек в таблице t ,
l – легенда (подпись) графика.
Всё пройдет. Но это не точно.
Консольный QUIK
Пользователь
Сообщений: Регистрация: 22.02.2023
01.07.2025 02:58:03
Если начинает долго загружаться, запускаю скрипт, обрезающий графики до приемлемого размера.
Всё пройдет. Но это не точно.
Сделайте квик для ТРЕЙДЕРОВ, а не для пенсионеров, название само за себя говорит
Пользователь
Сообщений: Регистрация: 22.02.2023
30.06.2025 19:18:28
В светлой теме тоже можно сделать темные графики.
Всё пройдет. Но это не точно.
Убрать выходные дни с графиков
Пользователь
Сообщений: Регистрация: 22.02.2023
23.06.2025 14:08:14
Цитата
Graf Graf написал: срочку собираются по выходным запускать
Всё-таки придется сделать скрипт, удаляющий выходные с графиков.
Всё пройдет. Но это не точно.
Отображение фандинга для вечных фьючерсов., Как посмотреть знак фандинга?
Пользователь
Сообщений: Регистрация: 22.02.2023
23.05.2025 20:05:41
GLM5 в рублях.
Всё пройдет. Но это не точно.
Обработка клавиш в таблице LUA
Пользователь
Сообщений: Регистрация: 22.02.2023
23.05.2025 14:43:38
Цитата
Андрей написал: Я поискал и не нашёл что-то конкретное.
Всё пройдет. Но это не точно.
Как вернуть закрытый график ?
Пользователь
Сообщений: Регистрация: 22.02.2023
14.05.2025 12:45:09
Цитата
Серёга Юрьич написал: А как в график добавить сохраненное
Никак. Размер более 86000 свечек, но QUIK отображает максимум 2^16 = 65536.
Всё пройдет. Но это не точно.
Визуализтор истории сделок, История сделок на графике QUIK
Пользователь
Сообщений: Регистрация: 22.02.2023
08.05.2025 19:56:11
Поскольку QUIK показывает сделки только за текущую сессию, пришлось сделать пару скриптов.
Один - "летописец", ведет историю сделок. При остановке скрипта, разрыве связи с сервером или закрытии терминала добавляет ещё не учтённые сделки в текстовый файл. Всё остальное время он просто ждет.
Второй скрипт реализован как индикатор, выводящий на график метки сделок. Если несколько сделок подряд, одного направления и по одинаковой цене приходятся на одну и ту же свечу, то метки этих сделок объединяются с добавлением значка "плюс", а во всплывающей подсказке указывается, когда и сколько лотов добавилось.
В начало файла History можно скопировать сделки из отчета брокера [Меню > Расширения > Отчёты > Отчёт по всем сделкам клиента], чтобы увидеть на графике свои прошлые сделки (проверено на брокерах ВТБ и Сбер).
Есть опция показа сделок по уже исполненным фьючерсам (для практикующих склейку графиков).
Для быстрой смены инструмента можно подключить график к таблице "Текущие торги".
Attention! Индикатор удаляет ВСЕ метки с графика, на котором установлен. В демоверсии глубина истории ограничена 16-ю сделками.
Всё пройдет. Но это не точно.
Нет обновления данных индикатора Открытый интерес, Не подгружаются данные для индикатора ОИ
Пользователь
Сообщений: Регистрация: 22.02.2023
29.04.2025 19:05:06
На 10-й версии такая же картина.
Всё пройдет. Но это не точно.
CreateDataSource Возвращает данные с пропуском, CreateDataSource Возвращает данные с пропуском
Пользователь
Сообщений: Регистрация: 22.02.2023
23.04.2025 19:02:25
Прошло полторы недели, аргументы не предъявлены. Следовательно, Saturn - пустозвон.
Всё пройдет. Но это не точно.
Подскажите Как сделать в Квике( 9.2.3.15) на Lua вывод окна, с которого будет управляться робот?, Подскажите Как сделать в Квике( 9.2.3.15) на Lua вывод окна, с которого будет управляться робот?
Пользователь
Сообщений: Регистрация: 22.02.2023
14.04.2025 01:25:16
Такой вариант не устроит?
Всё пройдет. Но это не точно.
Данные с MOEX на Lua
Пользователь
Сообщений: Регистрация: 22.02.2023
13.04.2025 06:52:57
Ложная тревога. Подключался через http. Через https всё норм.
Всё пройдет. Но это не точно.
Данные с MOEX на Lua
Пользователь
Сообщений: Регистрация: 22.02.2023
13.04.2025 04:02:09
Похоже, iss.moex ввела ограничение на количество запросов без паузы между ними. Качал свечки. Без паузы — 9 запросов, и "Recv failure: Connection was rese". C таймаутом 8 сек. - качает столько, сколько нужно.
Всё пройдет. Но это не точно.
Ошибка снятия заявки. [GW][3] "Сейчас эта сессия не идет."
Пользователь
Сообщений: Регистрация: 22.02.2023
11.04.2025 22:12:24
Цитата
Nikolay написал: Правда пример функции не самый удачный, на мой взгляд. Но это дело вкуса, не более. Лишь бы работало.
Что Вас смущает? Как можно улучшить?
Всё пройдет. Но это не точно.
CreateDataSource Возвращает данные с пропуском, CreateDataSource Возвращает данные с пропуском
Ошибка снятия заявки. [GW][3] "Сейчас эта сессия не идет."
Пользователь
Сообщений: Регистрация: 22.02.2023
11.04.2025 02:12:02
А зачем Вы отправляете транзакцию, если сессия в это время закрыта? Если нет OnTransReply и сессия закрыта, какой вывод должен сделать робот?
Всё пройдет. Но это не точно.
CreateDataSource Возвращает данные с пропуском, CreateDataSource Возвращает данные с пропуском
Пользователь
Сообщений: Регистрация: 22.02.2023
11.04.2025 02:05:44
Фигня такая: На сервере хранятся только последние 3000 свечек. Если график долго не открывался, то и подгрузилось 3000 свечек.
Всё пройдет. Но это не точно.
Ошибка снятия заявки. [GW][3] "Сейчас эта сессия не идет."
Пользователь
Сообщений: Регистрация: 22.02.2023
10.04.2025 14:38:34
У меня так:
Код
function OnParam(class, sec)
if class == "SPBFUT" and (sec == Tr[1].sec or sec == Tr[2].sec) then
local sessn = (getParamEx("SPBFUT",sec,"TRADINGSTATUS").param_image == "открыта")
if sessn and (cond & 0x0080 == 0x0080) then
cond = cond & 0xFF7F -- Сброс "Сессия стоп".
SetColor(tw_id, 5, -1, -1, -1, -1, -1)
elseif not sessn and cond & 0x0080 == 0 then
cond = cond | 0x0080 -- "Сессия стоп".
SetColor(tw_id, 5, -1, yellow, -1, -1, -1)
end
end
end
Всё пройдет. Но это не точно.
Очень долгий пересчет клиентского портфеля (секунд 10)., Один из Квиков на компьютере зависает на 10 секунд при нажатии F5 на таблице Клиентский портфель. Если в настройках стоит галка "Обновлять через 15 секунд", то 10 секунд висит а пять работает.
Пользователь
Сообщений: Регистрация: 22.02.2023
10.04.2025 04:22:07
Цитата
Стас Золотарев написал: А где в квике хранится список Lua скриптов с их состояниями запущено/не запущено?Что-то он с info.wnd не передается.
В папке квика, файл "scripts.dat".
Цитата
Стас Золотарев написал: Дампа у меня пока нет.Не сохранял.
Дамп формируется автоматом, папка "dmp".
Всё пройдет. Но это не точно.
Руководство по QLUA, Не могу найти официальное руководство по QLUA
Пользователь
Сообщений: Регистрация: 22.02.2023
06.04.2025 19:03:16
В папке квика есть файл QLUA.chm, в нем все то же самое. В формате справки windows даже удобнее, чем в pdf. А так,
написал: Не знаю как у Вас, возможно это зависит от брокера, в моем QUIKe от ВТБ, в таблице "Текущие торги" ГО указан на первом уровне лимита концентрации.(КПУР) Сравните ГО здесь:
в том то и дело..В таблице всё указано верно,как и должно быть..А при выставлении заявки-уже другое(завышенное)
Вы написали:
Цитата
в таблице"текущие торги" так же соответствует категории КСУР
В моём квике - категории КПУР.
Всё пройдет. Но это не точно.
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 22.02.2023
02.04.2025 20:27:38
Если в индикаторе, то
Код
dtSch = getDataSourceInfo()
local C = getParamEx(dtSch.class_code, dtSch.sec_code, "PREVLEGALCLOSEPR").param_value
Всё пройдет. Но это не точно.
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 22.02.2023
02.04.2025 20:20:32
На примере Газпрома:
Код
local C = getParamEx("TQBR", "GAZP", "PREVLEGALCLOSEPR").param_value
Всё пройдет. Но это не точно.
не читается график, не читается график после дробления акций
Пользователь
Сообщений: Регистрация: 22.02.2023
02.04.2025 01:23:41
Есть у меня скрипт, обрезающий файлы графиков. Если его переделать, можно будет масштабировать график до дробления.
Всё пройдет. Но это не точно.
Завышенное ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
02.04.2025 01:11:04
Не знаю как у Вас, возможно это зависит от брокера, в моем QUIKe от ВТБ, в таблице "Текущие торги" ГО указан на первом уровне лимита концентрации.(КПУР) Сравните ГО здесь:
Всё пройдет. Но это не точно.
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 22.02.2023
12.03.2025 18:03:55
Выводить через PrintDbgStr подозрительные переменные, и когда в очередной раз глюканёт, посмотреть, кто чудит.
Всё пройдет. Но это не точно.
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 22.02.2023
12.03.2025 17:15:59
Но если ошибка возникает эпизодически, то это уже сложнее.
Всё пройдет. Но это не точно.
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 22.02.2023
12.03.2025 17:09:18
Цитата
Igor_User написал: Есть ли какие-нибудь ещё способы определить строку, из-за которой эта ошибка произошла?
message("OK") и дихотомия. Ставим message в середине скрипта, если выскочило "OK", значит, ошибка дальше. Нет - до него. Делим проблемный кусок дальше. И т.д.
Всё пройдет. Но это не точно.
Данный инструмент запрещен для операции шорт, Ошибка при ручной покупке акции
Пользователь
Сообщений: Регистрация: 22.02.2023
11.03.2025 22:48:56
Глушкова Екатерина, шорт заработал, но в 10-й версии, в таблице "Купить/продать" по-прежнему, кроме "D long" и "D short", одни нули. Данные в таблице "Параметры рыночных рисков [ЦК]" отображаются.
Всё пройдет. Но это не точно.
Данный инструмент запрещен для операции шорт, Ошибка при ручной покупке акции
Vasiliy написал: Это на Lua в Квике, без библиотек?
На qlua, без библиотек. Фрагмент скрипта работающий с окном:
Скрытый текст
Код
local function MainWindow()
limValue = "Market"
red = RGB(255,180,180)
local green = RGB(180,255,180)
yellow = RGB(230,230,0)
local function event_callback(mw_id, msg, row, col)
local function SetLimit()
limValue = string.format("%d ps", indLmPs)
SetColor(mw_id, 3, 4, -1, -1, -1, -1)
SetColor(mw_id, 2, 3, -1, -1, -1, -1)
end
if msg == QTABLE_CLOSE then
w_top, w_left, w_bottom, w_right = GetWindowRect(mw_id)
DestroyTable(x2_id)
DestroyTable(mw_id)
sleep(300)
OnStop()
end
if msg == QTABLE_LBUTTONDBLCLK then
if row == 1 and col == 1 then -- Стоп меньше на 10.
indStPrc = indStPrc - 0.8
elseif row == 1 and col == 4 then -- Стоп больше на 10.
indStPrc = indStPrc + 0.8
elseif row == 2 and col == 1 then -- Лимит меньше на 10.
indLmPs = indLmPs - 8
elseif row == 2 and col == 3 then -- Лимит ноль.
indLmPs = 0
SetLimit()
elseif row == 2 and col == 4 then -- Лимит больше на 10.
indLmPs = indLmPs + 8
end
end
if msg == QTABLE_LBUTTONUP then
if row == 1 and col == 1 then -- Стоп меньше.
indStPrc = indStPrc - 0.1
elseif row == 1 and col == 4 then -- Стоп больше.
indStPrc = indStPrc + 0.1
elseif row == 2 and col == 1 then -- Лимит. меньше.
indLmPs = indLmPs - 1
SetLimit()
elseif row == 2 and col == 4 then -- Лимит больше.
indLmPs = indLmPs + 1
SetLimit()
elseif row == 3 and col == 2 then -- Пауза
sPause = true
SetColor(mw_id, 3, 2, red, -1, red, -1)
SetColor(mw_id, 3, 3, -1, -1, -1, -1)
elseif row == 3 and col == 3 then -- Плей.
sPause = false
SetColor(mw_id, 3, 3, green, -1, green, -1)
SetColor(mw_id, 3, 2, -1, -1, -1, -1)
elseif row == 3 and col == 1 then -- х2
x2key = true
elseif row == 3 and col == 4 then -- Маркет/лимит.
if limValue == "Market" then
SetLimit()
else
limValue = "Market"
SetColor(mw_id, 3, 4, yellow, -1, yellow, -1)
SetColor(mw_id, 2, 3, -1, RGB(0,0,255), -1, RGB(0,0,255))
end
end
SetCell(mw_id, 1, 3, string.format("%.1f %%", indStPrc))
SetCell(mw_id, 2, 3, tostring(limValue))
end
end
mw_id = AllocTable()
-- Создание колонок.
local n = 1
local function NewColumn(hd,wt)
AddColumn(mw_id, n, hd, true, QTABLE_STRING_TYPE, wt)
n = n + 1
end
NewColumn("-",4)
NewColumn("Цена",9)
NewColumn("Отступ",9)
NewColumn("+",4)
CreateWindow(mw_id)
SetWindowPos(mw_id, w_left, w_top, (w_right - w_left), (w_bottom - w_top))
SetWindowCaption(mw_id, "Лонжа")
-- Заполнение строк таблицы.
local function FillRow(...)
local row = InsertRow(mw_id, -1)
for n,v in ipairs{...} do
SetCell(mw_id, row, n, tostring(v))
end
end
FillRow("<","Стоп:",string.format("%.1f %%",indStPrc)," >")
FillRow("<","Лимит:",limValue," >")
FillRow("x2"," I I"," >>","M")
SetColor(mw_id, 3, 3, green, -1, green, -1)
SetColor(mw_id, 2, 3, -1, RGB(0,0,255), -1, RGB(0,0,255))
SetColor(mw_id, 3, 4, yellow, -1, yellow, -1)
SetColor(mw_id, 3, 1, -1, -1, -1, -1)
SetTableNotificationCallback(mw_id, event_callback)
end
Всё пройдет. Но это не точно.
Создание окна и кнопок в Quik.
Пользователь
Сообщений: Регистрация: 22.02.2023
10.03.2025 18:51:39
Цитата
Vasiliy написал: Покопавшись к интернете, понял, что стандартными силами Lua в Quik, создать графическое окно с кнопками не получиться.
Ну, не знаю... У меня получилось. Сделал себе "автостоп".
Всё пройдет. Но это не точно.
Данный инструмент запрещен для операции шорт, Ошибка при ручной покупке акции
Пользователь
Сообщений: Регистрация: 22.02.2023
09.03.2025 15:57:44
Цитата
_LEV_ написал: На ДЕМО QUIK 12.2.0.37 при ручной продаже акции в шорт - выдает сообщение "Данный инструмент запрещен для операции шорт"
Такая же картина в 10 и 11 версиях, шортить "Юниор" не дает ничего. При этом, в 10-ой версии, в таблице "Купить/продать" одни нули, а в 11-ой, в таблице "Позиции по инструментам" тикеры повторяются дважды, с датой расчетов сегодня и завтра.
Уже десять лет, как зарегистрировано и рассмотрено. Скоро юбилей.
И ещё:
Лет через десять ещё раз зарегистрируют, это не трудно.
Всё пройдет. Но это не точно.
Перемещении сотп заявки
Пользователь
Сообщений: Регистрация: 22.02.2023
11.02.2025 17:01:39
Вот эти кнопочки нажаты?
Всё пройдет. Но это не точно.
Звуковые оповещения, как выставить звуковые оповещения
Пользователь
Сообщений: Регистрация: 22.02.2023
13.12.2024 13:00:21
Можно использовать стандартные звуки windows.
Код
--[[
MB_OK = 0x0 -- ' Стандартный звук
MB_ICONHAND = 0x10 -- ' Звук SystemHand
MB_ICONQUESTION = 0x20 -- ' Звук Вопрос
MB_ICONASTERISK = 0x40 -- ' Звук Звездочка
MB_ICONEXCLAMATION = 0x30 -- ' Звук Восклицание
--]]
io.popen('rundll32.exe user32.dll, MessageBeep MB_OK')
--os.execute('rundll32.exe user32.dll, MessageBeep MB_OK')
Всё пройдет. Но это не точно.
Таблицы для sendTransaction из .tri файла, Скрипт преобразующий строки .tri файла в таблицы для sendTransaction
Пользователь
Сообщений: Регистрация: 22.02.2023
13.12.2024 00:49:34
Код
function main()
file = io.open(getScriptPath().."\\Карман.tri", "a+") -- Файл транзакций
tri = file:read("*a")
if not tri:match("%[") then
for rec in tri:gmatch("[^\n]+") do
rec = rec:gsub(";","\n")
rec = rec:gsub("([%g ]+)="," ['%1'] =")
rec = rec:gsub("=([%g ]*)","= '%1',")
rec = rec:gsub(",\n$","")
rec = "\ntransaction = {\n"..rec.."\n }\n"
file:write(rec)
end
end
file:flush()
file:close()
end
Использование: 1) Сохранить содержимое "Кармана транзакций" в файл Карман.tri 2) Запустить скрипт. 3) Забрать результат в том же файле.
У меня проще. Выставил заявку - автоматом стоп-лосс. Точнее половина «Тейк-профит и стоп-лимит». Приоритет у позиции. Опция удвоения, на отскок/пробой. Простой, как кувалда.
Всё пройдет. Но это не точно.
И снова CreateDataSource
Пользователь
Сообщений: Регистрация: 22.02.2023
04.12.2024 20:49:52
Цитата
Acaw написал: Вопрос: если так сделать, не повлечет ли это за собой то, что терминал будет обновлять кучу копий датасорсов
Роберту Иерузалимски "Программирование на языке Lua"
2.5. Таблицы (стр.36) "Вы можете рассматривать таблицу как динамически выделяемый объект; ваша программа работает только со ссылками (указателями) на них. Lua никогда не прибегает к скрытому копированию или созданию новых таблиц."
Всё пройдет. Но это не точно.
Сохранение в Excel-файл всех данных из любой таблицы
Пользователь
Сообщений: Регистрация: 22.02.2023
22.11.2024 15:17:50
Можно просто написать скрипт, чтобы при закрытии квика сбрасывал все сделки в .csv.
Всё пройдет. Но это не точно.
Сохранение в Excel-файл всех данных из любой таблицы
Пользователь
Сообщений: Регистрация: 22.02.2023
22.11.2024 14:46:21
ПКМ > "Копировать всё" > вставить в "Блокнот" > сохранить как ,csv > открыть в LibreOffice Calc.
Всё пройдет. Но это не точно.
Народ, как подключить библиотеку HTTP ?
Пользователь
Сообщений: Регистрация: 22.02.2023
19.11.2024 21:52:06
Чем cUrl не устраивает? os.execute('curl -L -R -o "futures.csv"')