Индикатор ликвидности. Квик - Таблица сделок - Индикатор ликвидности. Для фондовой секции данный параметр работает и это круто! Для срочной секции этот параметр не работает и это очень не круто! Желаю чтобы работал!
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 08.03.2016
24.12.2021 11:45:00
Код
workingY, workingX, Y, X = GetWindowRect(id) -- Запомнил координаты и размер таблицы
workingW = X - workingX; workingH = Y - workingY
Тейк профит и стоп-МАРКЕТ заявка для луа, стоп-заявка проскальзывает, так как стоит стоп-лимит
Пользователь
Сообщений: Регистрация: 08.03.2016
29.11.2021 13:49:24
Цитата
Nikolay написал: - не ставить стоп физически, а отслеживать цену алгоритмом и закрывать "по рынку" исходя из текущей ситуации, если алгоритм решил, что стоп сработал.
Предпочитаю именно этот подход
Таблица текущих торгов, Не отображаются данные по параметру
Пользователь
Сообщений: Регистрация: 08.03.2016
01.10.2021 13:10:42
Цитата
Alex написал: Я тоже являюсь их клиентом, версия квика аналогичная. Значит как-то с брокером может быть связано, само пройдёт? Вы обновляли что-нибудь?
Я ни чего не делал с утра, само пройдет)))
"там же вчера и сегодня перестраивают системы под квал/не квал у людей срочка пропала))"
Вот такое вот сообщение видел сегодня в чате в скайпе
Таблица текущих торгов, Не отображаются данные по параметру
Пользователь
Сообщений: Регистрация: 08.03.2016
01.10.2021 13:00:11
Цитата
Alex написал: Здравствуйте. Возникла следующая проблема: при создании новой таблицы текущих торгов исчезли из доступных параметров "мин/макс. возможная цена". В старых таблицах, которые были созданы раньше, эти столбцы остались, но они пустые!
Котировка последнего клиринга - отсутствовала вчера, и ряд других параметров, сегодня - норм. квик 8.13.1.16 Открытие брокер
Торговые роботы
Пользователь
Сообщений: Регистрация: 08.03.2016
23.09.2021 13:34:48
и не , а Lua
Торговые роботы
Пользователь
Сообщений: Регистрация: 08.03.2016
23.09.2021 13:33:17
Хороший программист - хорошо свое время оценивает - за недорого навряд ли будет делать. Могу подсказать, но не дорого и не дешево - по нормальной цене)
OnTransReply возвращает order_num = nil
Пользователь
Сообщений: Регистрация: 08.03.2016
18.09.2021 16:25:01
Код
function OnTransReply(reply) -- Функция вызывается терминалом QUIK при получении ответа на транзакцию пользователя
***
if reply.status == 3 then -- Транзакция выполнена
--------------------------------------------------------------------------------------------
OpCl[n] = rts(n, reply.price)
Num[n] = reply.order_num
--------------------------------------------------------------------------------------------
elseif reply.status == 2 or reply.status > 3 then -- Произошла ошибка
***
Вот так получаю цену и номер заявки - вопросов не возникало
Пример торгового робота, Помощь с торговым роботом
Я в курсе что не открывается - хз его знает как сюда рисунок воткнуть (попытка номер два)
Пример торгового робота, Помощь с торговым роботом
Пользователь
Сообщений: Регистрация: 08.03.2016
15.08.2021 22:14:08
Цитата
Maksimus написал: А ещё меня удивило,что в луа нет возможности работы с графическим интерфейсом. Например меню написать для ввода каких-то параметров.
Меню можно сделать
Пример торгового робота, Помощь с торговым роботом
Пользователь
Сообщений: Регистрация: 08.03.2016
15.08.2021 21:58:13
Цитата
Maksimus написал: Именно так я учился писать на mql4-5. Сначала смотрел видео уроки и пробовал по ним,потом начинал разбираться в каждой строчке кода и в итоге без проблем получается на этом языке. Но qlua для меня пока темный лес-куча дров.
Знакомо. Первые роботы на мкл4 были. Потом перешел на квик и lua - матерился долго. После метатрейдера на квик - это прыжок назад. Но что делать на метатрейдере опционов нет.
Пример торгового робота, Помощь с торговым роботом
Пользователь
Сообщений: Регистрация: 08.03.2016
15.08.2021 21:14:22
Цитата
Игорь написал: Возможно дикость но буду очень благодарен если кто ни будь выложит самого простого робота для луа.
пост № 4
самостоятельное изучение - очень много времени уйдет и все равно вопросы останутся (я шел этим путем) возможно есть смысл поучится у кого то, по крайней мере будет первоначальная база
Правильно понимаем, что под "меткой" имеется в виду горизонтальная линия?
Да, но эта линия - метка, ставиться роботом, а не берется из терминала (к метке из терминала вопросов нет).
Цитата
Вы можете отключить "Режим ввода/изменения заявки из окна диаграммы" на панели инструментов.
Этот режим должен быть включен - так надо.
Заявка + метка на графике
Пользователь
Сообщений: Регистрация: 08.03.2016
06.07.2021 17:34:30
Цитата
написал: Настройте в диаграмме порядок отображения слоёв
Это я первым делом проверил, сейчас еще раз проверил. Суть вопроса остается прежней - цепляется заявка, метка не цепляется. Порядок слоев роли не играет. Заявка поверх метки - цепляется - заявка, метка поверх заявки - цепляется - заявка.
Заявка + метка на графике
Пользователь
Сообщений: Регистрация: 08.03.2016
06.07.2021 16:15:47
Ставим лимитную заявку роботом, поверх этой заявки (по той же цене) робот ставит метку в виде линии (можно сначала метку поставить потом заявку), в результате имеем на графике две линии одна из них это заявка, другая - метка, т.к. цены заявки и метки равны, на графике видим только метку, а заявка казалось бы лежит под меткой, но при наведении курсора на линию и попытке перетащить метку - цепляется не метка, а заявка. Есть ли какой то способ зацепить именно метку, а не заявку.
простейший робот на Луа, Где взять простейший работающий робот на Луа в качестве заготовки?
простейший робот на Луа, Где взять простейший работающий робот на Луа в качестве заготовки?
Пользователь
Сообщений: Регистрация: 08.03.2016
10.06.2021 20:36:00
Цитата
BlaZed написал: Да не бывает простейшего робота, такой работать не будет ибо слишком много моментов надо учесть, чтобы косяки квика обойти. Своего робота даже без стратеги показывать жалко, слишком много трудов вложено. Не думаю, что хоть кто-нибудь тут вам своего покажет, сильно удивлюсь если ошибся.
Так что вам лучше писать самостоятельно и спрашивать уже конкретно то, что у вас не получается.
Полностью поддерживаю.
Ошибка создания заявки. [GW][32] "Цена сделки вне лимита"
Может, с тем, что на опционах границы Макс./Мин. возм.цена постоянно меняются?
Спасибо, так и есть, вопрос закрыт.
Ошибка создания заявки. [GW][32] "Цена сделки вне лимита"
Пользователь
Сообщений: Регистрация: 08.03.2016
26.03.2021 17:21:27
Робот отправляет рыночную заявку по опциону (рыночная по опциону - так надо) - сделка прошла - все ровно, но иногда без видимых причин выскакивает ОШИБКА - Ошибка создания заявки. [GW][32] "Цена сделки вне лимита". С чем это может быть связано - куда копать?
Причем стакан плотный не пустой, да если и пустой, то выставится и сняться должна и все, а не писать про ошибку.
Архив опционов BR, при загрузке терминала исчезли графики опционов BR-3.21
Пользователь
Сообщений: Регистрация: 08.03.2016
26.02.2021 12:02:52
Цитата
John написал: Открываю доску опционов, там базового актива BR-3.21 нет, уже только BR-4.21
Такая же ерунда - глюк?
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Суть вопроса в том что "10:00:05" это серверное время и торги по времени уже начались, а функция status == false не дает торговать каое-то время. В принципе меня этот вопрос не особо волнует т.к. для опционов время в боте стоит - старт торгов в "10:01:00", финиш в "18:44:00" (вечерняя сессия по аналогии), но все же хотелось бы понять почему status живет своей жизнью. Был еще такой момент у одного из товарищей (писал об этом в другой ветке), бот торгует - у фьюча status == true в течение всей торговой сессии, а вот у опционов с утра все норм, а ближе к вечеру (точное время уже не помню) - status == false - и понятное дело бот не торгует опционы, а торговля то идет.
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Пользователь
Сообщений: Регистрация: 08.03.2016
12.02.2021 20:53:07
Да и сама эта функция как то странно себя ведет: время "10:00:05", а status == false, (на 3-5 сек. на старте торгов задерживается), время "18:45:33", а status == true. Прокомментируете?
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Рекомендуем проверить статусы инструментов/классов, в момент создания транзакции. Это касается таких параметров, как "Состояние сессии" и "Статус торговли инструментом" в таблице текущих торгов. Если "Сессия" покажет "закрыта" и/или "Статус" будет "не торгуется", то транзакция не выполнится. Можете прописать в коде скрипта условие на проверку этих двух статусов перед отправкой.
Код
if round(getParamEx(statusClass, statusCode, "status").param_value) == 1 then status = true else status = false end -- Торговля разрешена/не разрешена
Во всех скриптах вот такая проверка стоит, если status == false, то транзакция не уйдет и тем не менее однажды вылезла ошибка описанная здесь.
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Пользователь
Сообщений: Регистрация: 08.03.2016
12.02.2021 14:02:06
Да я так и не понял в чем подвох был, а здесь то написал с целью привлечения внимания общественности - глядишь может кто и откликнется - подскажет в чем дело и как с этим быть.
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Пользователь
Сообщений: Регистрация: 08.03.2016
12.02.2021 13:34:11
Цитата
Олег написал: Указанная транзакция по указанному классу не найдена:
Сталкивался с таким вопросом.
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 08.03.2016
24.01.2021 18:50:49
Код
ST = getInfoParam("SERVERTIME") -- Время сервера
if #ST == 7 then ST = "0"..ST end
if ST > "10:00:00" and ST < "14:00:00" then
...
end
Как вариант
Status это работает ?
Пользователь
Сообщений: Регистрация: 08.03.2016
11.12.2020 20:32:55
Цитата
dimka написал: function main() Status = getParamEx("SPBFUT", "SiZ0", "STATUS ").param_value message("!!!"..Status) end
Вот так = 1
Код
function main()
Status = getParamEx("SPBFUT", "SiZ0", "STATUS").param_value
message("!!!"..Status)
end
Status это работает ?
Пользователь
Сообщений: Регистрация: 08.03.2016
11.12.2020 14:29:07
Поддержу вопрос. В Открытии статус фьючерсов и опционов - проблем нет - все работает, а в БКС например фьючи - работает, а опционы к вечеру статус = 0, хотя все торгуется.
Программисты на LUA, Требуются LUA программисты
Пользователь
Сообщений: Регистрация: 08.03.2016
30.10.2020 14:38:54
Цитата
nikolz написал: (как правило за символическую плату)
От себя добавлю - бесплатно - там же всего то надо чтобы было вот так и так, а сейчас просто на просто как то оно не так работает. Там все просто - "пару строк поправить" - делов то)))
Время ММВБ, Servertime не предлагать
Пользователь
Сообщений: Регистрация: 08.03.2016
27.10.2020 20:57:11
Цитата
Незнайка написал: У всех сегодня параметр "Начало вечерней сессии" показывает 19:00:00 ?
У всех
Цитата
Незнайка написал: Во время клиринга поменяли на 19:05:00 Не обратил внимания, во сколько точно поменяли
Оно так всегда и меняется, а вот во сколько не могу сказать точно, где-то около 19:03:00 - приблизительно
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
Пользователь
Сообщений: Регистрация: 08.03.2016
25.10.2020 02:31:09
Зависает скрипт QLua из примера, хотя даже убраны все коллбэки (v.8.8.4.3)
Пользователь
Сообщений: Регистрация: 08.03.2016
20.10.2020 18:14:17
Код
while is_run do
---
sleep(100)
end
Как убрать нуль после точки?, .0
Пользователь
Сообщений: Регистрация: 08.03.2016
01.10.2020 15:00:01
Вот так можно
Код
function round(num, n) -- Функция округляет до указанного количества знаков
local n = (n or 0)
return tonumber(string.format("%."..n.."f", num))
end
Функция возвращает код класса по коду инструмента
Пользователь
Сообщений: Регистрация: 08.03.2016
07.09.2020 13:32:04
Вот так работает
Код
function GetClassBySec(code) -- Функция возвращает код класса по коду инструмента
--------------------------------------------------------------------------------------------------------------------------
for class in string_gmatch("STOCK_USA,SPBXM,FQBR,TQBR,QJSIM,SPBFUT,", "(%P*_*%P*),") do
for sec in string_gmatch(getClassSecurities(class), "(%P*%.*%P*-*%P*),") do
if sec == code then return class end
end
end
--------------------------------------------------------------------------------------------------------------------------
end
Функция возвращает код класса по коду инструмента
Пользователь
Сообщений: Регистрация: 08.03.2016
04.09.2020 11:35:57
Спасибо
Функция возвращает код класса по коду инструмента
Пользователь
Сообщений: Регистрация: 08.03.2016
04.09.2020 00:00:00
Код
function GetClassBySec(code) -- Функция возвращает код класса по коду инструмента
--------------------------------------------------------------------------------------------------------------------------
for class in string_gmatch("STOCK_USA,SPBXM,FQBR,TQBR,QJSIM,SPBFUT,", "(%P*),") do
for sec in string_gmatch(getClassSecurities(class), "(%P*_*%P*_*%P*),") do
if sec == code then return class end
end
end
--------------------------------------------------------------------------------------------------------------------------
end
Здравствуйте. Функция не возвращает код класса: "STOCK_USA" и "FQBR" ("SPBXM" - не проверял). В чем подвох?
Ошибка в отрисовки таблиц
Пользователь
Сообщений: Регистрация: 08.03.2016
24.08.2020 22:38:29
Вероятно таблица создается function OnInit(script_path) -- Функция вызывается терминалом QUIK перед вызовом функции main() здесь end Создайте ее вот function main() -- Функция, реализующая основной поток выполнения в скрипте здесь end
А может ответы на ваши вопросы внимательнее изучать?)))
Цитата
В какой лимитной заявке? Когда выставляется стоп, ни какой лимитной заявки нет. Лимитная заявка выставляется только после того, как условия выполнились согласно указанным условиям в стоп заявке или в тейке.
Все верно. Теперь нам нужно
Цитата
Всё бы хорошо, но я не могу отловить сам результат выполнения стоп заявки, когда стоп исполнился. В моём понимании когда срабатывает стоп, создаётся новая заявка с новым номером заявки которая не равна номеру стопа. Хотелось бы увидеть схему OnStopOrder -> ... -> ... -> здесь признак того что стоп сработал.
Сработала стоп-заявка - нужно это действие отследить, так? В таблице стоп-заявок есть поля: Номер и Номер заявки. Поле Номер - это номер нашей стоп-заявки, поле Номер заявки - это номер лимитной заявки - данное поле при выставлении стоп-заявки пустое, как только наша стоп-заявка превратится в лимитную - это поле заполнится - номер лимитной заявки - все.
контроль исколнения многоконтрактовой заявки в quik 8.6
Пользователь
Сообщений: Регистрация: 08.03.2016
18.07.2020 23:35:32
Через Таблица сделок
Как отловить когда сработал стоп
Пользователь
Сообщений: Регистрация: 08.03.2016
18.07.2020 13:41:00
Цитата
Демидков Юрий написал: Дальше где-то откопать номер выставленной лимитированной заявки.
Пример для таблицы заявок. linkedorder - в таблице стоп-заявок и есть номер лимитки.
Код
function CheckOrders() -- Функция проверяет таблицу заявок
local gNOf = getNumberOf("orders")-1 -- Номер последней строки в таблице заявок
for i = NumLineTO+1, gNOf, 1 do -- Перебирает строки в таблице заявок начиная от NumLineTO+1
local orders = getItem("orders",i) -- Параметры заявки
...
local num = 0 -- Номер заявки
if bit.test(orders.flags, 0) then -- Заявка активна
num = orders.order_num -- Контроль заявки
end
local stopNum = orders.linkedorder -- Номер стоп-заявки
...
end
end
Для id = 3 333 333 333 - транзакция уходит - и в таблице транзакций видим не 3 333 333 333, а присваивается № 2 147 483 647. Для id = 4 444 444 444 - ошибка - Неправильно указан идентификатор транзакции: "4444444444". По этому и возник вопрос. Ладно формат ххх ххх ххх - будет достаточно. Всем спасибо.
TRANS_ID, Значение на сегодня?
Пользователь
Сообщений: Регистрация: 08.03.2016
14.07.2020 13:53:14
Из описания QLUA.chm: TRANS_ID -- Уникальный идентификационный номер заявки, значение от «1» до «2 147 483 647» Реальное максимально допустимое значение на сегодня?
Работа с опционами, Где взять данные по дельте и временной стоимости опционов?
Пользователь
Сообщений: Регистрация: 08.03.2016
25.06.2020 16:48:00
Цитата
Демидков Юрий написал: Не могу найти, как получить данные, которые отображаются в доске опционов.
Эти данные не транслируются - надо рассчитывать в скрипте
Как отследить событие - перерыв в торгах на фортс
Пользователь
Сообщений: Регистрация: 08.03.2016
11.06.2020 13:04:44
Цитата
Дмитрий написал: Не знаю, может что делаю не правильно, но код выдает ошибку
Код
function Round(num, n) -- Функция округляет до указанного количества знаков
local n = (n or 0)
return tonumber(string_format("%."..n.."f", num))
end
Эту функцию еще добавить надо. В принципе то можно без нее. Но тогда вот так
Код
Status = tonumber(getParamEx(CLASS_CODE, SEC_CODE , "status").param_value)
но опять результат будет = 1.0 например (8.5 квик). А функция Round - .0 уберет, это у меня бзик - по "феншую" должно быть и все))). А так эта функция в основном то нужна сейчас для объема и цены - приходит объем 3.0, цена по РТС например 100 000.0 - не порядок.