Привет! Подскажите, плиз, как кириллический текст конвертировать в юникод и обратно.
Например, чтобы из "\u0425\u0435\u043b\u043b\u043e\u0020\u0432\u043e\u0440\u043b\u0434\u0021" получилось "Хеллоу ворлд!", и наоборот. Спасибо.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
04.04.2022 13:38:33
Нет, прослеживается зависимость от типа инструмента. Если написать:
x = Subscribe_Level_II_Quotes('SPBFUT','RIM2') y = Unsubscribe_Level_II_Quotes('SPBFUT','RIM2')
то x == true и y == true;
А если написать:
x = Subscribe_Level_II_Quotes('TQOB','SU24020RMFS8') y = Unsubscribe_Level_II_Quotes('TQOB','SU24020RMFS8')
то x == true и y == false.
На облигациях не работает что-ли... Вроде же 'RIM2' - это код инструмента фьючерса, а 'SU24020RMFS8' - код инструмента облигации. Или я что-то напутал? Может для облигаций какие-то другие значения подставлять нужно?
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
04.04.2022 11:51:09
nikolz, пробовал акции, облигации, фьючерсы. Без разницы.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
04.04.2022 11:50:02
nikolz, не понимаю почему у вас этот код работает, а у меня нет. Я пробовал в версиях квика 9.2.3.15 и 8.9.0.107. Я застреваю в первом же цикле while Unsubscribe_Level_II_Quotes(cl,se)==false do sleep(5) end. Т.е. я получаю true при первой проверке на подписку на первый инструмент. Отписка у меня не происходит - цикл бесконечный.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
01.04.2022 16:35:39
Тоже не понял почему задача не выполнима. Я ее выполнил, и это было не так уж сложно для меня с небольшим опытом программирования. Данные, нужные мне, в таблицу выводятся. Но только до 200-го инструмента. И все - я упираюсь в количество открытых стаканов. А функция 'Unsubscribe_Level_II_Quotes()', которая должна их закрывать - их не закрывает. Я пробовал в одном цикле: открыть стакан, получить данные и тут же закрыть. Не получается. Пробовал порциями (вот эти 2 функции, которые сюда скинул): в одном цикле открываю 150 стаканов, получаю данные. В следующем цикле эти же стаканы пытаюсь закрыть. Опять не выходит. Пробовал на 9-й версии квика и на 8-й. Так скажите мне, господа - это все-таки я криворукий или эта гребаная функция 'Unsubscribe_Level_II_Quotes()' не работает.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
01.04.2022 14:46:51
Цитата
Владимир написал: , Справиться с этой проблемой невозможно никак. Даже если у Вас будет десяток стаканов. А обслуживать 2000 тикеров не так просто даже моему скрипту, у которого ни одного стакана нет, не было, и не будет (Борис, слышишь меня? :: ). Ваша же задача просто безнадёжна, в принципе невыполнима.
Вопрос скорости обработки в этой задаче не критичен.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
01.04.2022 14:44:28
Цитата
Владимир написал: , Справиться с этой проблемой невозможно никак. Даже если у Вас будет десяток стаканов. А обслуживать 2000 тикеров не так просто даже моему скрипту, у которого ни одного стакана нет, не было, и не будет (Борис, слышишь меня? :: ). Ваша же задача просто безнадёжна, в принципе невыполнима.
А по функции 'Unsubscribe_Level_II_Quotes()' что можете сказать? Почему она не выполняет ту задачу, которую должна выполнять? Или может я не правильно ее применяю?
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
01.04.2022 14:22:13
Продублирую еще раз: если в функции 'Unsubscribe(list)' после 'local x =Unsubscribe_Level_II_Quotes(class_code, sec_code)' написать 'local y = IsSubscribed_Level_II_Quotes(class_code, sec_code)', а затем вывести значения x и y в таблицу, то x будет false, а y будет true.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
написал: цикл убрать, то функция отрабатывает и отписки не происходит.
Как определили, что не происходит?
Если в функции 'Unsubscribe(list)' после 'local x =Unsubscribe_Level_II_Quotes(class_code, sec_code)' написать 'local y = IsSubscribed_Level_II_Quotes(classCode, secCode)', а затем вывести значения x и y в таблицу, то x будет false, а y будет true.
тут опять я скопировал разные названия переменных sec_code и secCode, но прошу не обращать внимания на это - в коде названия переменных одинаковое.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
01.04.2022 12:16:08
Задача такая возникла из-за того, что мне нужно вывести в таблицу данные на основании расчетов 2000 стаканов. Т.к. у многих брокеров есть ограничение на 200 стаканов, то я хотел по очереди открывать и закрывать котировки 150 стаканов.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
написал: цикл убрать, то функция отрабатывает и отписки не происходит.
Как определили, что не происходит?
Если в функции 'Unsubscribe(list)' после 'local x =Unsubscribe_Level_II_Quotes(class_code, sec_code)' написать 'local y = IsSubscribed_Level_II_Quotes(classCode, secCode)', а затем вывести значения x и y в таблицу, то x будет false, а y будет true.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Внутри цикла while переменная x не меняется. Если окажется not x эквивалентно true то цикл бесконечный.
Ну этот цикл я сделал на тот случай, что вдруг отписка от котировок происходит не сразу, а через сколько-то миллисекунд. Если это произойдет, то x должен поменяться, я думаю. Но даже если я ошибаюсь, то, если цикл убрать, то функция отрабатывает и отписки не происходит. Unsubscribe_Level_II_Quotes() возвращает false. А в первой функции Subscribe_Level_II_Quotes() возвращает true. Хотя функции Subscribe(list) и Unubscribe(list) в основе своей идентичны. Вот этого я никак уразуметь не могу.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
31.03.2022 16:28:53
Цитата
написал: Нет, это все таки руки. classCode и class_code - не одно и то же
Эта путаница в переменных произошла когда я писал функцию для отправки сюда в чат. Старался максимально просто и понятно написать и налажал немного. В рабочем коде, поверьте, с переменными все в порядке (перепроверил только что). Если учесть, что дело не в названиях переменных, есть еще варианты почему код не работает?
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
Пользователь
Сообщений: Регистрация: 17.11.2021
31.03.2022 15:11:26
Есть функция, в которую передается массив. Каждый его элемент - массив из двух элементов: код класса и код инструмента.
function Subscribe(list) for i = 1, #list do local classCode = list[i][1] local secCode = list[i][2]
local x = Subscribe_Level_II_Quotes(class_code, sec_code)
while not x do sleep(10) end
Calculate(classCode, secCode) end end
В ней я по очереди подписываюсь на котировки по каждому инструменту функцией Subscribe_Level_II_Quotes(). Дальше цикл (на всякий случай), чтобы убедиться, что функция вернула true. И дальше какое-то вычисление. Здесь у меня все работает нормально.
Дальше я прохожусь циклом по этому же списку, чтобы отписаться от каждой котировки.
function Unsubscribe(list) for i = 1, 100 do local classCode = list[i][1] local secCode = list[i][2]
local x =Unsubscribe_Level_II_Quotes(class_code, sec_code)
while not x do sleep(10) end end end
Здесь на первом же элементе из списка я застреваю в цикле while. Если цикл убрать, то функция отрабатывает, а отписка не происходит.
Подскажите как справиться с этой проблемой. Нужно сначала подписаться на инструменты, потом отписаться от них.
Версия квика 9.2.3.15. Может дело не в моих кривых руках, а в версии?
Как получить "доходность покупки/продажи" из стакана котировок
Пользователь
Сообщений: Регистрация: 17.11.2021
18.03.2022 14:27:21
Привет всем знатокам. Функцией getQuoteLevel2() можно получить количество котировок, их цены и объемы. А как из таблицы котировок получить доходность покупки/продажи облигаций?
Как считать данные из таблицы текущих торгов?
Пользователь
Сообщений: Регистрация: 17.11.2021
07.02.2022 09:30:53
Всех благодарю за обсуждение. Хачить квик, я, конечно, же не буду.
Как считать данные из таблицы текущих торгов?
Пользователь
Сообщений: Регистрация: 17.11.2021
06.02.2022 18:05:15
Владимир, ну, тогда, возможно, что-то попроще придумаем
Как считать данные из таблицы текущих торгов?
Пользователь
Сообщений: Регистрация: 17.11.2021
06.02.2022 17:24:35
Владимир, потому что я, начинающий программист, выполняю заказ клиента. Таково его желание. Ему нужно выводить в эксель те данные, которые он сам выберет в ТТТ. И он, естественно, не сможет залезть в код и добавить новую колонку когда решит это сделать. Он сможет только добавить новую колонку в ТТТ и она должна быть выведена. Сложность в том, что выводить данные нужно не только из ТТТ, а еще из одной самодельной таблицы. Вот я и хотел объединить их сперва как-то, а потом сборную таблицу вывести.
Владимир, мне не нужны любые данные из ТТТ. Я понимаю, что можно достать любые данные через getParamEx, но по определенным причинам я не хочу их доставать таким образом. Через getParamEx я должен конкретно указать какие данные мне нужны, а мне нужны именно те, которые показываются без конкретного их указания. Так вот, можно ли их получить?
Как считать данные из таблицы текущих торгов?
Пользователь
Сообщений: Регистрация: 17.11.2021
06.02.2022 12:49:11
Например, у меня есть открытая таблица текущих торгов. Там три строки с инструментами : GAZP, VTBR, SMLT. И три колонки: Оборот в деньгах, Спрос по лучшей цене, Цена последней сделки. Я хочу сделать самодельную таблицу в которую будут передаваться данные из таблицы текущих торгов и плюс мои какие-то данные. Чтобы, если бы я добавил в таблицу текущих торгов новую колонку (например Средневзвешенная цена), то она так же передавалась бы в мою таблицу без изменения кода. Возможно такое сделать? Если возможно, то как?
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
Пользователь
Сообщений: Регистрация: 17.11.2021
04.02.2022 12:18:56
Nikolay, это должно работать в реальном времени. Данные в квике будут меняться каждую секунду и то же самое я должен видеть в экселе.
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
Пользователь
Сообщений: Регистрация: 17.11.2021
04.02.2022 10:40:14
Владимир, правильно ли я понял, что данные из моей таблицы нужно сохранять в файл .txt при каждой итерации цикла в скрипте, а этот файл уже открыть в экселе? И при этом все изменения в таблице в квике будут так же отображаться в таблице в экселе?
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
Пользователь
Сообщений: Регистрация: 17.11.2021
04.02.2022 08:16:42
Я создал в квике свою таблицу с помощью AllocTable(). Можно ли вывести данные из нее в эксель по DDE? И как их вывести, если это возможно? Если тыкнуть на моей таблице пкм, то соответствующего пункта во всплывающем меню не появляется.
Редактор для LUA
Пользователь
Сообщений: Регистрация: 17.11.2021
14.01.2022 07:22:47
Цитата
nikolz написал: SciTe - написан на луа, есть встроенный компилятор и отладчик
От SciTe у меня лично глаза болят. Слишком контрастные цвета (я темную тему поставил). А в настройках я так и не смог найти как изменить цветовое оформление.
Редактор для LUA
Пользователь
Сообщений: Регистрация: 17.11.2021
13.01.2022 21:27:48
Я установил visual stidio code + plugins:
как советовал Nikolay выше.
Написал простой код, нажимаю F5 и вылезает ошибка: The 'cwd' can not be resolved in a multi folder workspace. Solution: "cwd": "${workspaceFolder:name}"
Подскажите, плиз, как это исправить.
Редактор для LUA
Пользователь
Сообщений: Регистрация: 17.11.2021
13.01.2022 12:18:15
А ZeroBrane как? Норм редактор?
Редактор для LUA
Пользователь
Сообщений: Регистрация: 17.11.2021
12.01.2022 20:16:59
А как сделать, чтобы в visual stidio code кириллица нормально отображалась? А то у меня ромбики вместо букв.
Как из скрипта открыть окно на нужной вкладке?
Пользователь
Сообщений: Регистрация: 17.11.2021
12.01.2022 17:40:39
О, спасибо!
Как из скрипта открыть окно на нужной вкладке?
Пользователь
Сообщений: Регистрация: 17.11.2021
30.12.2021 15:20:40
Регистрируем
Как из скрипта открыть окно на нужной вкладке?
Пользователь
Сообщений: Регистрация: 17.11.2021
30.12.2021 15:03:09
Это достоверная информация, что никак? На чем она основана?
Как из скрипта открыть окно на нужной вкладке?
Пользователь
Сообщений: Регистрация: 17.11.2021
29.12.2021 18:46:56
Добрый день. При запуске скрипта должна открываться небольшая табличка с выводом данных. Открывается она по умолчанию на той же вкладке, где открыто окно "Доступные скрипты". Что сделать, чтобы она открывалась на нужной вкладке? Желательно на той вкладке, где открыт график с определенным идентификатором. Есть для этого какой-то метод?
Почему не работает математическая функция math.frexp?
Пользователь
Сообщений: Регистрация: 17.11.2021
26.12.2021 23:06:41
Уже реализовал. Вопрос снимается.
Почему не работает математическая функция math.frexp?
Пользователь
Сообщений: Регистрация: 17.11.2021
26.12.2021 22:04:46
О, спасибо. А есть идея как реализовать это в Lua? Или какую внешнюю библиотеку подключить?
Почему не работает математическая функция math.frexp?
Пользователь
Сообщений: Регистрация: 17.11.2021
26.12.2021 21:26:54
Пишу в редакторе:
m, n = math.frexp(1.23456e24) print(m)
Вроде как эта функция есть в Lua и она должна привести экспоненциальное число в нормальный вид. Но она почему то не работает, если я пишу это в редакторе кода. Кто-нибудь знает почему не работает?
workingY, workingX, Y, X = GetWindowRect (id) -- Запомнил координаты и размер таблицы
workingW = X - workingX; workingH = Y - workingY
Спасибо!
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 11:48:19
Цитата
Владимир написал: Хотя я вообще не вижу смысла в перемещении таблицы по экрану
Мой вопрос был алгоритмического свойства, а не философского, и задан он был в ветке . Для рассуждений о смыслах чего-либо есть другие форумы и ветки типа "о том, о сём".
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 11:43:51
GetWindowRect возвращает координаты верхнего левого и нижнего правого угла окна. А есть ли возможность вернуть значения высоты и ширины окна?
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 11:33:46
О, кажется это то, что надо. Благодарю!
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 10:48:03
Скрипт рисует таблицу. Сдвигаю руками. Смысл в том, что ее положение на экране (координаты) должны сохраниться, чтобы при следующем запуске скрипта она нарисовалась там, куда я ее в прошлый раз сдвинул. "Наконец, нафига вообще хранить данные в таблицах Квика? Есть же таблицы Lua!" - вот этого уже я не понял. Я не храню данные в таблицах квика, я вывожу в них информацию, которую хочу видеть.
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 10:29:26
Под другими параметрами я имею ввиду текущую цену, разницу между ценами открытия/закрытия и подобные вычисления. Вот они сохраняются.
Как сохранить в файл координаты таблицы?
Пользователь
Сообщений: Регистрация: 17.11.2021
24.12.2021 10:26:07
Последовательность действий такая: 1. Запускаю скрипт 2. считываются данные с координатами таблицы ( left,right,width,height) и другими параметрами из файла .txt 3. Вывожу таблицу со считанными координатами: SetWindowPos(table, left,right,width,height) -- на данном этапе все работает верно 4. запускается основной цикл 5. Заполняются ячейки таблицы параметрами, считанными из .txt-файла. 6. Сохраняю в файл параметры и координаты таблицы
Вот на данном этапе проблема: параметры сохраняются, а координаты таблицы остаются теми же (я сдвигаю таблицу перед сохранением). Наверное, это потому, что параметры таблицы меняются в цикле, а координаты задаются перед циклом до создания таблицы. Вопрос как решить эту задачу - сохранить в файл измененные координаты таблицы?
Как создать экземпляры класса в цикле?
Пользователь
Сообщений: Регистрация: 17.11.2021
18.12.2021 12:03:11
Или, наверное, правильно будет их просто в массив записывать..?
Как создать экземпляры класса в цикле?
Пользователь
Сообщений: Регистрация: 17.11.2021
18.12.2021 11:59:09
Вопрос скорее в том, как создавать переменные в цикле, в которые будут записываться новые объекты.
Как создать экземпляры класса в цикле?
Пользователь
Сообщений: Регистрация: 17.11.2021
18.12.2021 11:55:19
Закладок может быть не 10, а 3, например. Поэтому цикл.
Как создать экземпляры класса в цикле?
Пользователь
Сообщений: Регистрация: 17.11.2021
18.12.2021 11:12:43
Есть таблица (интерфейс) и 10 закладок в ней. При нажатии на закладку нужно, чтобы в таблицу выводились данные, которые ей соответствуют. Данные хранятся в текстовом файле. Я предполагаю так, что при запуске скрипта нужно создать все 10 экземпляров объекта в цикле (считывая данные из файла), чтобы можно было переключаться между закладками.
Как создать экземпляры класса в цикле?
Пользователь
Сообщений: Регистрация: 17.11.2021
17.12.2021 23:20:32
Есть класс. Нужно создать 10 его экземпляров в цикле. Как это сделать?
Как программно узнать о наличии стоп-заявки, Как программно узнать о наличии стоп-заявки
Пользователь
Сообщений: Регистрация: 17.11.2021
19.11.2021 11:48:24
Разобрался сам. Вопрос закрыт.
Как программно узнать о наличии стоп-заявки, Как программно узнать о наличии стоп-заявки
Пользователь
Сообщений: Регистрация: 17.11.2021
17.11.2021 18:34:25
Здравствуйте. Я слабо знаком с программированием. Сумел написать скрипт, который открывает позицию, выставляет стоп, передвигает его при движении цены. Вопрос в следующем: если стоп-заявка остается на ночь, то на следующий день при запуске скрипта он не знает о ней. Предполагаю, что алгоритм должен быть следующим: 1. Узнать есть ли стоп-заявка; 2. Если есть, то подхватить ее каким-то образом и продолжить с ней работать. Подскажите, знатоки, как это реализовать?