Вася (Все сообщения пользователя)

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

Страницы: 1
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Нет, прослеживается зависимость от типа инструмента.
Если написать:

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()
 
nikolz, пробовал акции, облигации, фьючерсы. Без разницы.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
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()
 
Тоже не понял почему задача не выполнима. Я ее выполнил, и это было не так уж сложно для меня с небольшим опытом программирования. Данные, нужные мне, в таблицу выводятся. Но только до 200-го инструмента. И все - я упираюсь в количество открытых стаканов. А функция 'Unsubscribe_Level_II_Quotes()', которая должна их закрывать - их не закрывает. Я пробовал в одном цикле: открыть стакан, получить данные и тут же закрыть. Не получается. Пробовал порциями (вот эти 2 функции, которые сюда скинул): в одном цикле открываю 150 стаканов, получаю данные. В следующем цикле эти же стаканы пытаюсь закрыть. Опять не выходит. Пробовал на 9-й версии квика и на 8-й. Так скажите мне, господа - это все-таки я криворукий или эта гребаная функция 'Unsubscribe_Level_II_Quotes()' не работает.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
Владимир написал:
Вася, Справиться с этой проблемой невозможно никак. Даже если у Вас будет десяток стаканов. А обслуживать 2000 тикеров не так просто даже моему скрипту, у которого ни одного стакана нет, не было, и не будет (Борис, слышишь меня? :: ). Ваша же задача просто безнадёжна,  в принципе  невыполнима.
Вопрос скорости обработки в этой задаче не критичен.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
Владимир написал:
Вася, Справиться с этой проблемой невозможно никак. Даже если у Вас будет десяток стаканов. А обслуживать 2000 тикеров не так просто даже моему скрипту, у которого ни одного стакана нет, не было, и не будет (Борис, слышишь меня? :: ). Ваша же задача просто безнадёжна,  в принципе  невыполнима.
А по функции 'Unsubscribe_Level_II_Quotes()' что можете сказать? Почему она не выполняет ту задачу, которую должна выполнять? Или может я не правильно ее применяю?
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Продублирую еще раз: если в функции '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()
 
Цитата
Вася написал:
Цитата
swerg написал:
 
Цитата
Вася  написал:
цикл убрать, то функция отрабатывает и отписки не происходит.
 Как определили, что не происходит?
Если в функции '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()
 
Задача такая возникла из-за того, что мне нужно вывести в таблицу данные на основании расчетов 2000 стаканов. Т.к. у многих брокеров есть ограничение на 200 стаканов, то я хотел по очереди открывать и закрывать котировки 150 стаканов.  
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
swerg написал:
Цитата
Вася написал:
цикл убрать, то функция отрабатывает и отписки не происходит.
Как определили, что не происходит?
Если в функции '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()
 
Цитата
TGB написал:
Цитата
Вася написал:
while not x do  
   sleep(10)    
end

Внутри цикла while переменная x не меняется. Если окажется not x эквивалентно true то цикл бесконечный.
Ну этот цикл я сделал на тот случай, что вдруг отписка от котировок происходит не сразу, а через сколько-то миллисекунд. Если это произойдет, то x должен поменяться, я думаю. Но даже если я ошибаюсь, то, если цикл убрать, то функция отрабатывает и отписки не происходит. Unsubscribe_Level_II_Quotes() возвращает false. А в первой функции Subscribe_Level_II_Quotes() возвращает true. Хотя функции Subscribe(list) и Unubscribe(list) в основе своей идентичны. Вот этого я никак уразуметь не могу.
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
s_mike@rambler.ru написал:
Нет, это все таки руки.
classCode и class_code - не одно и то же
Эта путаница в переменных произошла когда я писал функцию для отправки сюда в чат. Старался максимально просто и понятно написать и налажал немного. В рабочем коде, поверьте, с переменными все в порядке (перепроверил только что). Если учесть, что дело не в названиях переменных, есть еще варианты почему код не работает?
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Есть функция, в которую передается массив. Каждый его элемент - массив из двух элементов: код класса и код инструмента.

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. Может дело не в моих кривых руках, а в версии?
Как получить "доходность покупки/продажи" из стакана котировок
 
Привет всем знатокам.
Функцией getQuoteLevel2() можно получить количество котировок, их цены и объемы.
А как из таблицы котировок получить доходность покупки/продажи облигаций?
Как считать данные из таблицы текущих торгов?
 
Всех благодарю за обсуждение. Хачить квик, я, конечно, же не буду.  
Как считать данные из таблицы текущих торгов?
 
Владимир, ну, тогда, возможно, что-то попроще придумаем
Как считать данные из таблицы текущих торгов?
 
Владимир, потому что я, начинающий программист, выполняю заказ клиента. Таково его желание. Ему нужно выводить в эксель те данные, которые он сам выберет в ТТТ. И он, естественно, не сможет залезть в код и добавить новую колонку когда решит это сделать. Он сможет только добавить новую колонку в ТТТ и она должна быть выведена. Сложность в том, что выводить данные нужно не только из ТТТ, а еще из одной самодельной таблицы. Вот я и хотел объединить их сперва как-то, а потом сборную таблицу вывести.
Как считать данные из таблицы текущих торгов?
 
Владимир, ок, благодарю
Как считать данные из таблицы текущих торгов?
 
Владимир, мне не нужны любые данные из ТТТ. Я понимаю, что можно достать любые данные через getParamEx, но по определенным причинам я не хочу их доставать таким образом. Через getParamEx я должен конкретно указать какие данные мне нужны, а мне нужны именно те, которые показываются без конкретного их указания. Так вот, можно ли их получить?
Как считать данные из таблицы текущих торгов?
 
Например, у меня есть открытая таблица текущих торгов. Там три строки с инструментами : GAZP, VTBR, SMLT. И три колонки: Оборот в деньгах, Спрос по лучшей цене, Цена последней сделки.
Я хочу сделать самодельную таблицу в которую будут передаваться данные из таблицы текущих торгов и плюс мои какие-то данные. Чтобы, если бы я добавил в таблицу текущих торгов новую колонку (например Средневзвешенная цена), то она так же передавалась бы в мою таблицу без изменения кода.
Возможно такое сделать? Если возможно, то как?
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
 
Старатель, работает, благодарю.
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
 
Nikolay, это должно работать в реальном времени. Данные в квике будут меняться каждую секунду и то же самое я должен видеть в экселе.
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
 
Владимир, правильно ли я понял, что данные из моей таблицы нужно сохранять в файл .txt при каждой итерации цикла в скрипте, а этот файл уже открыть в экселе? И при этом все изменения в таблице в квике будут так же отображаться в таблице в экселе?
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
 
Я создал в квике свою таблицу с помощью AllocTable(). Можно ли вывести данные из нее в эксель по DDE? И как их вывести, если это возможно? Если тыкнуть на моей таблице пкм, то соответствующего пункта во всплывающем меню не появляется.
Редактор для LUA
 
Цитата
nikolz написал:
SciTe - написан на луа, есть встроенный  компилятор и отладчик
От SciTe у меня лично глаза болят. Слишком контрастные цвета (я темную тему поставил). А в настройках я так и не смог найти как изменить цветовое оформление.
Редактор для LUA
 
Я установил visual stidio code + plugins:

https://marketplace.visualstudio.com/items?itemName=keyring.Lua
https://marketplace.visualstudio.com/items?itemName=sumneko.lua
https://marketplace.visualstudio.com/items?itemName=actboy168.lua-debug
как советовал Nikolay выше.

Написал простой код, нажимаю F5 и вылезает ошибка: The 'cwd' can not be resolved in a multi folder workspace. Solution: "cwd": "${workspaceFolder:name}"

Подскажите, плиз, как это исправить.
Редактор для LUA
 
А ZeroBrane как? Норм редактор?
Редактор для LUA
 
А как сделать, чтобы в visual stidio code кириллица нормально отображалась? А то у меня ромбики вместо букв.
Как из скрипта открыть окно на нужной вкладке?
 
О, спасибо!
Как из скрипта открыть окно на нужной вкладке?
 
Регистрируем
Как из скрипта открыть окно на нужной вкладке?
 
Это достоверная информация, что никак? На чем она основана?
Как из скрипта открыть окно на нужной вкладке?
 
Добрый день.
При запуске скрипта должна открываться небольшая табличка с выводом данных. Открывается она по умолчанию на той же вкладке, где открыто окно "Доступные скрипты". Что сделать, чтобы она открывалась на нужной вкладке? Желательно на той вкладке, где открыт график с определенным идентификатором. Есть для этого какой-то метод?
Почему не работает математическая функция math.frexp?
 
Уже реализовал. Вопрос снимается.
Почему не работает математическая функция math.frexp?
 
О, спасибо. А есть идея как реализовать это в Lua? Или какую внешнюю библиотеку подключить?
Почему не работает математическая функция math.frexp?
 
Пишу в редакторе:

m, n = math.frexp(1.23456e24)
print(m)

Вроде как эта функция есть в Lua и она должна привести экспоненциальное число в нормальный вид. Но она почему то не работает, если я пишу это в редакторе кода. Кто-нибудь знает почему не работает?
Как сохранить в файл координаты таблицы?
 
Цитата
Константин Рейм написал:
Код
           workingY, workingX, Y, X  =   GetWindowRect (id)  -- Запомнил координаты и размер таблицы 
         workingW  =  X  -  workingX; workingH  =  Y  -  workingY
  
Спасибо!
Как сохранить в файл координаты таблицы?
 
Цитата
Владимир написал:
Хотя я вообще не вижу смысла в перемещении таблицы по экрану
Мой вопрос был алгоритмического свойства, а не философского, и задан он был в ветке Программирование на языке Lua. Для рассуждений о смыслах чего-либо есть другие форумы и ветки типа "о том, о сём".
Как сохранить в файл координаты таблицы?
 
GetWindowRect возвращает координаты верхнего левого и нижнего правого угла окна. А есть ли возможность вернуть значения высоты и ширины окна?
Как сохранить в файл координаты таблицы?
 
О, кажется это то, что надо. Благодарю!
Как сохранить в файл координаты таблицы?
 
Скрипт рисует таблицу.
Сдвигаю руками. Смысл в том, что ее положение на экране (координаты) должны сохраниться, чтобы при следующем запуске скрипта она нарисовалась там, куда я ее в прошлый раз сдвинул.
"Наконец, нафига вообще хранить данные в таблицах Квика? Есть же таблицы Lua!" - вот этого уже я не понял. Я не храню данные в таблицах квика, я вывожу в них информацию, которую хочу видеть.
Как сохранить в файл координаты таблицы?
 
Под другими параметрами я имею ввиду текущую цену, разницу между ценами открытия/закрытия и подобные вычисления. Вот они сохраняются.
Как сохранить в файл координаты таблицы?
 
Последовательность действий такая:
1. Запускаю скрипт
2. считываются данные с координатами таблицы ( left,right,width,height) и другими параметрами из файла .txt
3. Вывожу таблицу со считанными координатами: SetWindowPos(table, left,right,width,height) -- на данном этапе все работает верно
4. запускается основной цикл
5. Заполняются ячейки таблицы параметрами, считанными из .txt-файла.
6. Сохраняю в файл параметры и координаты таблицы

Вот на данном этапе проблема: параметры сохраняются, а координаты таблицы остаются теми же (я сдвигаю таблицу перед  сохранением). Наверное, это потому, что параметры таблицы меняются в цикле, а координаты задаются перед циклом до создания таблицы.
Вопрос как решить эту задачу - сохранить в файл измененные координаты таблицы?
Как создать экземпляры класса в цикле?
 
Или, наверное, правильно будет их просто в массив записывать..?
Как создать экземпляры класса в цикле?
 
Вопрос скорее в том, как создавать переменные в цикле, в которые будут записываться новые объекты.
Как создать экземпляры класса в цикле?
 
Закладок может быть не 10, а 3, например. Поэтому цикл.
Как создать экземпляры класса в цикле?
 
Есть таблица (интерфейс) и 10 закладок в ней. При нажатии на закладку нужно, чтобы в таблицу выводились данные, которые ей соответствуют. Данные хранятся в текстовом файле. Я предполагаю так, что при запуске скрипта нужно создать все 10 экземпляров объекта в цикле (считывая данные из файла), чтобы можно было переключаться между закладками.
Как создать экземпляры класса в цикле?
 
Есть класс. Нужно создать 10 его экземпляров в цикле. Как это сделать?
Как программно узнать о наличии стоп-заявки, Как программно узнать о наличии стоп-заявки
 
Разобрался сам. Вопрос закрыт.
Как программно узнать о наличии стоп-заявки, Как программно узнать о наличии стоп-заявки
 
Здравствуйте. Я слабо знаком с программированием. Сумел написать скрипт, который открывает позицию, выставляет стоп, передвигает его при движении цены. Вопрос в следующем: если стоп-заявка остается на ночь, то на следующий день при запуске скрипта он не знает о ней. Предполагаю, что алгоритм должен быть следующим: 1. Узнать есть ли стоп-заявка; 2. Если есть, то подхватить ее каким-то образом и продолжить с ней работать. Подскажите, знатоки, как это реализовать?
Страницы: 1
Наверх