s_mike@rambler.ru (Автор тем)

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

Страницы: 1 2 След.
os.time Lua 5.3
 
Перекомпилировал свои скрипты, наткнулся:

Открываем https://www.lua.org/pil/22.1.html,  Видим пример

print(os.time{year=1970, month=1, day=1, hour=0})      --> 10800

Не верим, проверяем.

print(os.time{year=1970, month=1, day=1, hour=0})
Console:1: time result cannot be represented in this installation

И правильно не верим, как выясняется. И в терминале и в стандалоне одинаково.

а вот

print(os.time{year=1970, month=1, day=1, hour=0})


Оказывается.

Теперь lua смотрит часовой пояс. У меня часовой пояс +1, и
print(os.time{year=1970, month=1, day=1, hour=1}) работает и дает 0

Смотрел в документацию на луа - ничего не нашел. На 5.1 в часовой пояс луа не смотрела.
QTABLE_INT_TYPE QTABLE_INT64_TYPE
 
Я правильно понимаю, что колонки пользовательских таблиц этих типов по прежнему уверенным домкратом выводят float циферки? )
Перенос индикаторов между диаграммами
 
В последней версии терминала 8 5 2 11  наблюдаю падения приложения при переносе мышкой (drag&drop) пользовательских индикаторов между диаграммами. При переносе встроенных индикаторов проблемы нет.
Остановить скрипт при закрытии терминала
 
То ли лыжи не едут....

Как остановить скрипт при закрытии терминала, чтобы при последующем запуске терминала он вы в состоянии "не запущен"?

Метод автогена с провокацией ошибки исполнения считаю недостойным для Программного Комплекса  QUIK )))
Торгуемые классы
 
Здравствуйте.

Каким образом из всего множества доступных в терминале классов НАДЕЖНО найти их подмножество, по которым идут торги\сделки?

Вариант с заказом истории по инструментам класса не подходит.


Например, SPBFUT - торгуемый, а cross_rate - не торгуемый
Valtoday
 
Добрый.

Что означают значения O,H, L, C на графике оборота в деньгах?

Не могу придумать смысл для первых трех значений.

Попутно -  в какой валюте идет подсчет?
LuaSQL
 
Что-то я сильно устал, пробуя пересобрать из исходников sqlite3.dll из пакета lua sql для работы с 8 квиком. Может, кто покажет указующим перстом, где это счастье можно взять в готовом виде?
Идентификация экземпляра индикатора
 
Здравствуйте

В индикаторе необходимо сохранять определённые данные между запусками терминала

соответственно:

1. как отличить ручное удаление индикатора (или закрытие окна/диаграммы) от закрытия терминала?
2. как идентифицировать данный экземпляр индикатора, чтобы сохранить данные для него?

ну и попутно.

Третий параметр setvalue() может быть nil.  Всегда и всюду в lua правые параметры nil при вызове функций можно опускать, но не в случае этой функции. Я уже раз пятый наезжаю на эту граблю... Может, стоит привести в норму?
Отложенная стоп-заявка
 
Если из lua выставить стоп заявку такую, что она не проходит проверку сервера, то

1. Она висит в таблице стоп-заявок
2. сделать с ней ничего нельзя.


Так и должно быть?
Фьючерсы/акции/опционы
 
Здравствуйте

Существует ли способ однозначно определить тип актива Фьючерсы/акции/опционы без использования таблицы текущих торгов? ТТТ может быть не открыта и получить оттуда нужные поля далеко не всегда возможно.

По коду класса тоже ненадежно, классов много разных на разных площадках

По наличию в полном наименовании слова "Фьючерсы" или "Опционы" как то видится ненадежным.

Есть какие-то более стандартные варианты?

Спасибо.
Выгрузка библиотек
 
Здравствуйте.

Как выгрузить библиотеку при завершении скрипта?

Вот пример




function main()

assert (package.loadlib(getScriptPath() .. "\\sqlite3.dll", "luaopen_luasql_sqlite3")) ()
env = luasql.sqlite3()

local db = env:connect('db.sqlite')

db:execute[[
 CRE ATE   TABLE generic(
   key varchar(50),
   value varchar(150)
 )
]]

db:execute[[
 INS ERT INTO generic VALUES('11111', '2222')
]]
db:execute[[
 INS ERT IN TO generic VALUES('33333', '4444')
]]

local results = db:execute[[
 SEL ECT * FR OM generic
]]

local key,value = results:fetch()
while key do
 message(key ..': '.. val ue)
 key,value = results:fetch()
end

results:close()
db:close()
env:close()

end

не выгружается.

перенос текста в поток терминала эффекта тоже нее дает.


спасибо
Стоп заявка "по исполнению"
 
здравствуйте

Эту стоп-заявку я могу выставить из луа (как)? в документации информации нет, в карман транзакций добавить ее не могу
Опять про метки
 
Здравствуйте.

1. Как я понимаю, за прошедшие несколько лет (5?   8?  10?) ошибка терминала, проявляющаяся в НЕРИСОВАНИИ на диаграмме маленьких меток, так и не решена? Тестовый пример, иллюстрирующий проблему, я приводил на форуме очень давно и "будет исправлена в очередной версии"

2. Другая проблема. Индикатор рисует метки на диаграмме. В момент запуска терминала с установленным индикатором все прекрасно, за исключением одного - метки не выводятся. Логирование результатов AddLabel свидетельствует об успешности операций, функция возвращает номера меток в инкрементальном порядке. Но на экране их нет.  
Перезапуск индикатора - и все рисуется прекрасно.
При обычном добавлении индикатора при уже запущенном терминале тоже все хорошо.

В чем причина?
Label callback
 
Здравствуйте

Было бы очень неплохо иметь возможность получать в скрипте lua колбек при нажатии пользователем метки на графике по аналогии с SetTableNotificationCallback

спасибо
Особенности функции Size
 
Здравствуйте.

Задача.

Индикатор. Необходимо выполнять определенные действия в oncalculate только на самой правой, текущей свече, игнорируя все предыдущие.

Очевидная попытка решения

function OnCalculate(i)
  if i == Size() then do_it() end
end

к успеху не приводит, если на графике построен какой-либо индикатор, сдвинутый вправо.

При этом Size() показывает увеличенное на величину сдвига число свечей.

Узнать величину этого сдвига возможности нет.

Вопрос. Как решить поставленную задачу?

Спасибо.
kill inactive stop order
 
Возможно я чего то не замечаю, но вижу следующее.

При попытке исполнить транзакцию kill_stop_order для неактивной стоп-заявки не приходит ответ ontransaction.

Мне это не кажется и так должно быть?
На заметку роботописателям
 
Сегодня установил новую версию терминала и оооо-паньки...Новый индикатор.
Цитата
Добавлен новый индикатор «Глубина рынка», отражающий объемы заявок в виде гистограммы. Подробное описание см. в п. 4.2.15 Раздела 4 «Работа с графиками» Руководства пользователя QUIK.




Что-то он мне  напоминает... Даже помню что. Написано в 2015 году было.


 

Практически один-в-один. Все режимы те же самые, тот же способ отображения из будущего по шкале времени, та же возможность отображать накопительные объемы.

Плагиат расцениваю как комплимент )


Всем, кто пытается писать какие-то вкусности для творений арка - на заметку - даже спасибы от этой компании не дождетесь, не то что бутылку пива.
Таблица обезличенных сделок и SearchItems
 
Снова возвращаюсь к вопросу. о котором разработчики позабыли, как видится.


Вот эта функция крутится в цикле опроса:

Код
   -- Собирает из ТОС новые обезличенные сделки
   rescan =
      function()
         if database.need_rescan == false then
            return
         end
         database.need_rescan = false

         local num_trades = getNumberOf("all_trades") - 1
         local items = SearchItems("all_trades",
                                    database.tos + 1,
                                    num_trades,
                                    database.search_function,
                                    "class_code,sec_code,datetime.day,datetime.month,datetime.year"
                                  ) or {}
         database.tos = num_trades
         log.write("Получено ",`#'items," сделок")

         for _,n in ipairs(items) do         -- Всегда по возрастанию
            database.process_trade(getItem("all_trades",n))
         end

         database.save()
      end,

   ---------------------------------------------------------------
   -- Обработка одной сделки
   process_trade =
      function(trade)

         -- Костыль для фильтрации кривых обезличенных сделок, которые шлёт терминал
         if not trade or trade.datetime.year == 1601 then
            log.error("BS: Ошибка терминала. Недопустимая таблица обезличенной сделки ",trade)
            return
         end




20:09:22.057   Получено 151892 сделок
20:09:23.197   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.197   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.197   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.198   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.198   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.198   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.221   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.222   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.222   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.222   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.223   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.223   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.223   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.224   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.224   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.225   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.225   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.225   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.226   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil
20:09:23.226   BS: Ошибка терминала. Недопустимая таблица обезличенной сделки nil

Подписка на тиковые данные происходит по двум колбекам.
Код
oncleanup.subscribe(function()
                     repository.init()
                    end
                   )
onconnected.subscribe(function(flag)
                        if flag then
                           repository.init()
                        end
                      end
                   )

repository.init в частности исполняет следующее


Код
         local security = getSecurityInfo(_class,_code)
         if not security then
            log.write("Инструмент ",instrument_dir," не обнаружен")
            screen.add(_class,_code,INSTRUMENT_NOT_FOUND)
            return
         end

         local ds,err = CreateDataSource(_class,_code,INTERVAL_TICK)
         if not ds then
            log.write("Невозможно получить обезличенные сделки по инструменту ",instrument_dir)
            screen.add(_class,_code,INSTRUMENT_NOT_FOUND)
            return
         end
         table.insert(database.ds,ds)
         log.write("Подписка на инструмент ",instrument_dir," успешна")


Указанный эффект всегда происходит при первом включений терминала в пределах дня. Последующие включения такой эффект не несут.

Если я что-то делаю неправильно, было бы полезно понять. что именно. Иначе получается, что это грубая ошибка терминала.

Спасибо.
 
Ondstroy и режим связанных окон
 
Здравствуйте.


я уже дважды поднимал вопрос об отсутствии вызова omdestroy в индикаторах в режиме связанных окон.

при смене инструмента в этом режиме функция ondrstroy не вызывается.

оба раза я получал ответ в виде " абажите, щаса напишем скрипт для проверки и саапчим".

Но не саапчили.

Что имеем то по вопросу?
Идентификация индикаторов
 
Здравствуйте.

Вопрос скорее к разработчикам.



Есть индикатор, одновременно запущенный на несколшьких разных инструментах (или одинаковых), с разными или одинаковыми настройкками, на произвольных таймфреймах и т.п.

Необходимо:

Найти способ для каждой запущенной копии индикатора сгенерировать свой ключ (строка, число) для установления связи между этой конкретной копией индикатора и внешним ПО. Основная проблема - получение внешним ПО информации о закрытии индикатора (тем или иным способом), закрытии терминала и корректная работа при перезапуске индикатора (например в режиме связанных окон).

Допустимы любые быстрые способы - средства терминала, winapi и так далее. У меня не хватает фантазии пока.

Спасибо.
SetLabelParams
 
Здравствуйте.

Не могу понять, что происходит с метками в момент обновления окна в режиме связанных окон.

насколько я могу предположить, что после обновления окна идентификатор остается тем же и функция Setlabelparams должна метку найти и переставить. если запрос setlabelparams происходит в момент обновления окна, там может произойти что-то неясное и, как я думаю, происходит. Но что?  

Каков должен быть алгоритм работы по перестановке метки из скрипта посредством setlabelparams? чтобы он работал в режиме связанных окон?


Напоминаю также о ошибке, заключающейся в отсутствии вызова ondestroy индикатора в том же режиме связанных окон. Это серьезная проблема - невозможно исполнить финализацию (закрыть процессы, удалить файлы, отвязаться от апишных дел и прочего)
CreateDataSource return code
 
Здравствуйте.

Что обусловлено отсутствие колбеков от Createdate source при условии, что последний вернул код успеха? Эффект проявляется при запуске терминала с работающим скриптом.

Эффект никогда не проявляется при запуске  скрипта при уже работающем терминале.
OnChangeSettings
 
Недавно был добавлен колбен OnChangeSettings

Посмотрел.

Или я чего-то не понял, или вы добавили его так, что он бесполезен

Во первых, он не вызывается при старте индикатора. Но это обойти еще можно

Главное - он не вызывается при смене таймфрейма, что приводит его полной бесполезности .

Или я неправ?
Стоп заявки сервера
 
Добрый день.

манипуляции со стоп заявками из луа подразумевают неявное "сделать стоп заявку своей" или нужно выписывать это явно?

спасибо.
Cteatedatasource
 
У меня ещё несколько вопросов по этой функции.

1. Что происходит, если в момент обращения к функции нет соединения с сервером?

2. Будут ли запрашиваться данные с сервера после установления связи в пункте 1?

3. Что происходит с подпиской после смены сессии?

4. Что происходит с подпиской после выключения и включения терминала с работающим скриптом?
Size()
 
Обращаюсь к разработчикам.

Как узнать в индикаторе (OnCalculate), что обрабатывается самая правая свеча?

Хотелось бы получить ответ, который работает всегда )))

Спасибо.
id метки
 
Здравствуйте

id метки уникален в пределах окна (панели), диаграммы или терминала?

Спасибо.
Очередные подарки
 
Кусочек текста скрипта,занимающегося обработкой таблицы обезличенных сделок:
Код
-- Собирает из ТОС новые обезличенные сделки
   rescan =
      function()
         if not database.need_tos_rescan then
            return
         end

         local num_trades = getNumberOf("all_trades") - 1
         local items = SearchItems("all_trades",
                    database.tos + 1,
                    num_trades,
                    database.search_function,
                    "class_code,sec_code,datetime.day,datetime.month,datetime.year"
                   ) or {}
         database.tos = num_trades

         for _,n in ipairs(items) do
            database.process_trade(getItem("all_trades",n))
         end

         database.save()
      end,

   ---------------------------------------------------------------
   -- Обработка одной сделки
   process_trade =
      function(trade)
         log.write(trade)
         local trade_datetime = datetime(trade.datetime)

что мы тут имеем?

rescan() получает новые сделки из ТОС и для каждой вызывает обработчик process_trade
первое действие в process_trade есть вывод в лог самой сделки
следующее действие - превращение времени сделки в некий объект.

Время от времени (закономерность неясна) последнее действие приводит к развалу скрипта по причине недопустимых данных в datetime сделки.

Смотрим конец логфайла:
Код
8:44:57.500 {repoterm=0,price=111620,trade_num=1899010832,yield=0,value=128723.53,qty=1,reporate=0,class_code=SPBFUT,repovalue=0,exchange_code=,accruedint=0,tradenum=1899010832,flags=1025,datetime={week_day=4,hour=10,ms=384,mcs=384000,day=26,month=10,sec=2,year=2017,min=27},sec_code=RIZ7,seccode=RIZ7,settlecode=,period=1,repo2value=0,open_interest=440244}
18:44:57.562 {repoterm=0,price=111620,trade_num=1899010833,yield=0,value=128723.53,qty=1,reporate=0,class_code=SPBFUT,repovalue=0,exchange_code=,accruedint=0,tradenum=1899010833,flags=1025,datetime={week_day=4,hour=10,ms=384,mcs=384000,day=26,month=10,sec=2,year=2017,min=27},sec_code=RIZ7,seccode=RIZ7,settlecode=,period=1,repo2value=0,open_interest=440242}
18:44:57.703 {repoterm=0,price=111620,trade_num=1899010834,yield=0,value=128723.53,qty=1,reporate=0,class_code=SPBFUT,repovalue=0,exchange_code=,accruedint=0,tradenum=1899010834,flags=1025,datetime={week_day=4,hour=10,ms=384,mcs=384000,day=26,month=10,sec=2,year=2017,min=27},sec_code=RIZ7,seccode=RIZ7,settlecode=,period=1,repo2value=0,open_interest=440240}
18:44:57.796 {repoterm=0,price=111610,trade_num=1899010835,yield=0,value=772272,qty=6,reporate=0,class_code=SPBFUT,repovalue=0,exchange_code=,accruedint=0,tradenum=1899010835,flags=1025,datetime={week_day=4,hour=10,ms=384,mcs=384000,day=26,month=10,sec=2,year=2017,min=27},sec_code=RIZ7,seccode=RIZ7,settlecode=,period=1,repo2value=0,open_interest=440240}
18:44:57.875 {repoterm=0,price=111620,trade_num=1899010836,yield=0,value=128723.53,qty=1,reporate=0,class_code=SPBFUT,repovalue=0,exchange_code=,accruedint=0,tradenum=1899010836,flags=1025,datetime={week_day=4,hour=10,ms=405,mcs=405000,day=26,month=10,sec=2,year=2017,min=27},sec_code=RIZ7,seccode=RIZ7,settlecode=,period=1,repo2value=0,open_interest=440240}
18:44:58.093 {repoterm=0,price=0,trade_num=0,yield=0,value=0,qty=0,reporate=0,class_code=TQBR,repovalue=0,exchange_code=,accruedint=0,tradenum=0,flags=0,datetime={week_day=1,hour=0,ms=0,mcs=0,day=1,month=1,sec=0,year=1601,min=0},sec_code=ABRD,seccode=ABRD,settlecode=,period=0,repo2value=0,open_interest=0}
Все строчки абсолютно нормальные, а последняя выведенная очень интересна. Все поля нулевые, в том числе и datetime.
Соответственно, обработка datetime приводит к краху:
Код
E:\quik\LuaIndicators\BS.lua:1085: Assert failed: /GoogleDisk/ROBOT/_LUA/datetime.lua : 106
Невозможно рассчитать Unix time: {week_day=1,hour=0,ms=0,mcs=0,year=1601,month=1,day=1,sec=0,min=0,isdst=false}
stack traceback:
   E:\quik\LuaIndicators\BS.lua:1085: in function <E:\quik\LuaIndicators\BS.lua:1074>
   (tail call): ?
   E:\quik\LuaIndicators\BS.lua:1446: in function 'floor'
   E:\quik\LuaIndicators\BS.lua:2563: in function 'process_trade'
   E:\quik\LuaIndicators\BS.lua:2545: in function 'rescan'
   E:\quik\LuaIndicators\BS.lua:2828: in function 'iterate'
   E:\quik\LuaIndicators\BS.lua:1839: in function <E:\quik\LuaIndicators\BS.lua:1802>

Ситуация регулярно появляется как на моем компьютере, так и на множестве других компьютеров, что установлен этот скрипт.

И собственно вопросы:
  1. Что это было?
  2. За что такое счастье?
  3. Как этого счастья избежать?
Новая очередная дырка
 
В продолжение темы  https://forum.quik.ru/forum10/topic3045/


индикатор рисует на графике метки.
в ondestroy() эти метки стираются.


накладываем индикатор на график. Размножаем график через Ctrl-N

удаляем индикатор с исходного графика: ondestroy срабатывает, метки удаляются
удаляем индикатор с размноженного графика. Ну вы поняли....
CreateDataSource: блуждания
 
Здравствуйте


Очередная непонятка с CreatedDataSource


Есть скрипт, который должен крутиться постоянно и собирать данные из таблицы обезличенных сделок.

Чтобы каждый раз не открывать таблицу обезличенных сделок, через CreateDataSource подписываюсь на тиковый интервал котировок. Как понимаю, этго достаточно в любом случае, чтобы обезличенные сделки поехали с сервера в терминал и стали доступны для чтения в скрипте. Или недостаточно?

Каждое утро далее при подключении к серверу (приходу oncleanup) скрипт по необходимым ему инструментам делает подписку
Код
local _class,_code = string.match(instrument,"^(%w+)#(%w+)$")
local ds,err = CreateDataSource(_class,_code,INTERVAL_TICK)
if not ds then               -- Нет такого инструмента
    log.write("Инструмент ",instrument," не найден: ",err)
    return
end
ds:SetEmptyCallback()
table.insert(database.ds,ds)
log.write("Подписка на инструмент ",instrument," успешна")

Вроде бы все чистенько - если есть какие-то проблемы (недоступен инструмент или что-то в этом роде) - мы получим ошибку. Если ошибок нет, значит подписка успешна и ждем обезличенные сделки.

Конечно на самом деле все не так )) Вот фрагмент лога quik 7 11 1 5, демо арка
Код
03:17:50.887 Смена сессии
03:17:50.887 on cleanup
03:17:50.887 database.init
03:17:50.887 Отписка от всех инструментов
03:17:50.965 Отписались от всех инструментов
03:17:51.075 Today=05.10.2017 Четверг
03:17:51.075 get_stock_list {[1]=QJSIM#GAZP,[2]=QJSIM#SBER,[3]=SPBFUT#GZU7}
03:17:51.075 Add instrument QJSIM#GAZP
03:17:51.075 Подписка на инструмент QJSIM#GAZP успешна
03:17:51.075 Добавлен инструмент QJSIM#GAZP
03:17:51.075 Add instrument QJSIM#SBER
03:17:51.075 Подписка на инструмент QJSIM#SBER успешна
03:17:51.090 Добавлен инструмент QJSIM#SBER
03:17:51.090 Add instrument SPBFUT#GZU7
03:17:51.090 Подписка на инструмент SPBFUT#GZU7 успешна
03:17:51.090 Добавлен инструмент SPBFUT#GZU7
03:17:51.090 Получено 0 сделок
03:17:51.215 Получено 0 сделок
03:17:51.340 Получено 0 сделок
03:17:51.465 Получено 0 сделок
03:17:51.590 Получено 0 сделок
и далее ни одной сделки не получено, хотя все подписки успешны. Озадачивает и нервирует. Торги идут, график бегает. Открываю руками таблицу обезличенных сделок - и чудо:
Код
05:50:52.231 Получено 0 сделок
05:50:52.356 Получено 0 сделок
05:50:52.481 Получено 0 сделок
05:50:52.606 Получено 104 сделок
05:50:52.731 Получено 204 сделок
05:50:52.887 Получено 255 сделок
05:50:53.028 Получено 250 сделок
05:50:53.153 Получено 274 сделок
05:50:53.309 Получено 251 сделок
05:50:53.434 Получено 322 сделок
05:50:53.653 Получено 263 сделок
05:50:53.965 Получено 252 сделок
05:50:54.215 Получено 251 сделок
05:50:54.356 Получено 260 сделок
05:50:54.528 Получено 265 сделок

В чем состоит недоступное мне сокровенное знание? Спасибо.
Tradedate
 
Здравствуйте.

Вопрос по tradedate. В какой момент происходит ее изменение?

Мой тест содержит колбек oncleanup и выводит в ог значение tradedate


Запущен вчера утром (воскресенье) к демо-серверу в районе 9-00 утра. При запуске тест вывел текущую tradedate

Рабочее место QUIK 7.11.1.5
24-Сен-2017  Воскресенье RTZ 2 (зима) +0300
08:58:11.890 Подключено к Информационно-торговая система ARQA (91.209.122.220:15100)
08:58:11.890 tradedate=24.09.2017

и оставлен работать. Работал больше суток.

Сегодня 25--Сен-2017, полдень

За это время колбек oncleanup пришел однажды - сегодня в 10 утра


10:00:25.764 on cleanup
10:00:25.796 tradedate=24.09.2017


И мы снова видим ту же самую вчерашнюю дату, что у меня вызывает недоумение и вопрос: "как так?"


-----------------------------------------------------

Может, есть другой, более правильный способ определить дату текущих торгов?



Спасибо.
Похоже очередная дырка в qlua
 
есть индикатор, который в том числе рисует метку на графике.

При удалении индикатора в колбеке ondestroy эта метка удаляется. Все хорошо.

Пробуем индикатор в режиме связанных окон. При переключении инструмента-источника метка не удаляется, ondestroy не вызывается

Попытка запомнить в переменной факт наличия метки чтобы стереть ее на первой свече после смены инструмента также не приводят к успеху по причине полного рестарта скрипта индикатора.

Смеха для: регистрируйте ))
OnStop
 
Добрый день.
Два вопроса.

1. Колбек OnStop выполняется при закрытии терминала и при остановке из диалога. Мне по этим двум событиям необходимо делать разные действия. Как отличить одно от другого?

2. При закрытии терминала закрываются все окна скрипта. При этом функции обратного вызова от этих окон активны и выполняются. Это верное утверждение?

Спасибо.
Createdatasource error list
 
Здравствуйте.

1. Нельзя ли усидеть полный список возвращаемых ошибок?

2. По какой причине cteatedatasource может возвращать ошибку для инструмента, о наличии которого нам говорит функция, возвращающая сптсок инструментов класса? Почему эта ошибка проявляется обычно при установлении нового сеанса и почему такая ошибка плавающая?


порядок действий:

-- был oncleanup
get class info()

for ticker in instrument_list printlog(createdasource(ticker))

в результате среди сотни успешных подписок иногда встречаются неудачные. Обычно это неликвидный мусор.
Феерическое
 
Утром мне звонит клиент и тыкает в меня палкой: твоя писанина не работает.
Смотрю: и правда не работает, причем разваливается прямо в хлам по непонятной причине. Полдня глаза ломал. Нашел. Вот вам скриншот:

http://my-files.ru/8k8pxz/1.PNG

Это графики газпрома в боевых торгах. Терминал 7 11 1 5, брокер церих

смотрим на нижний график. таймфрейм 30 минут, торги за 29,30 и 31 мая.
А теперь смотрим на верхний график.. Таймфрейм 4 часа. А где, ....ь 30 мая????
Порядок следования в ТОС
 
Задача. Хорошо,у вывести содержимое ТОС по классу TQBR в файл.

последовательность моих действий в скрипте:

1. Спрашиваю состав бумаг класса
2. Делаю подписку на каждую бумагу на тиковом диапазоне.
3. Периодически читаю ТОС на предмет новых сделок через SearchTable. Все полученное пишу последовательно в файл.

я хочу получить отсортированную по времени ТОС последовательность сделок в файле.

не тут-то было...

в терминале установлен заказ обезличенных сделок по Газпрому, соберу и лукойлу. На другие инструменты заказа нет.

что я получаю в файле (скрипт запущен после окончания торгового дня)

1. Сначала идёт полный список сделок с 10-00 по 18-45 по Газпрому
2. Далее вперемешку сделки ЛУКойла и сбербанка, тоже полный день с 10-00 до 18-45
3. И только после этого идут сделки по всем остальным инструментам в правильной последовательности в соответствии со временем.

я догадываюсь, что дело в наличии или отсутствии сделок по разным инструментам в хранилище терминала

однако хотелось бы понять:
1. Чем Газпром отличается от ЛУКойла со сбером
2. Как выводить сделки в файл в правильной последовательности в соответствии со временем.
3. Можно ли решить задачу полностью из луа без беганья с бубном по всевозможным настройкам в терминале?

Спасибо.
Получить заново таблицу обезличенных сделок
 
В окне заказа обезличенных сделок есть кнопка "получить заново".

можно ли отследить нажатие этой кнопки из луа?

спасибо.
Производительность библиотеки bit
 
Неожиданный результат: О ПОЛЬЗЕ INLINE-КОДА ИЛИ БИБЛИОТЕКА BIT
table.s*
 
Добрый день.

Господа разработчики. Я правильно понимаю, что в функциях table.s* семафоры/состояние проверяется с частотой 10 раз в секунду или мне это только кажется?

Спасибо.
Статус инструмента
 
Добрый день.

Подскажите, можно ли получить параметр status без создания таблицы текущих торгов?

Спасибо.
Размер стека
 
Ув. разработчики.

Каков размер стека в реализации qlua?

Можете ли предложить способы увеличения  размера стека ?

Спасибо.
Тест наличия идентификатора графика
 
Кв. разработчики!

Каким образом можно отличить  незаданный идентификатор графика от графика, на котором нет счечей?

не смог придумать вариант . GetLinesCunt при неправильном идентификаторе выдает 0, по другим функциям тоже не придумалось ничего полезного.

Спасибо.
Несчастное окно
 
Разработчики уже несколько лет насилуют несчастное окно "Доступные скрипты".


У меня оно сейчас выглядит так:



Размеры окна радуют при том что  изменить размер этого окна пользователь не может

Про открытие в нужной вкладке уже и не пишу....
SetUpdateCalback result value
 
Здравствуйте.


BOOLEAN res SetUpdateCallback (FUNCTION callback_function) В качестве параметра принимает  Функция возвращает «true» в случае успешного завершения, иначе – «false».  


В каких случаях вернется false, что для этого должно произойти?

Аналогично про setemptycallback


Спасибо.

Шлюз
 
Ув. разработчики!

Есть ли возможность узнать у шлюза Фортс информацию о наличии эмуляции в нем рыночных ордеров?


Спасибо.
Фишечка - индикатор оставшегося времени до окончания свечи
 
вот он

Add/SetLabel
 
Здравствуйте.


Насколько я понимаю, метки из луа выставляются асинхронно по отношению к скрипту. В этом случае:

  1. Как узнать, что метка отработана и соответствующий BMP файл более не требуется?
  2. Что происходит, когда метка еще не отработана, но из скрипта поступает новое указание типа setlabel?
Спасибо.
TRANSPARENT_BACKGROUND
 
Добрый день.

Ув. разработчики. Не могу понять, как работает флаг TRANSPARENT_BACKGROUND

Что я делаю.

1. Беру BMP-32 (тип 3 или 4) с альфа-каналом
2. Ставлю его на диаграмму в качестве метки вручную. Галка прозрачность - и все прекрасно: фон прозрачный.
3. Пробую поставить программно через qlua. Изгалялся как только мог - картинка устанавливается, но выглядит неправильно: не получается получить прозрачность на пикселях с нулевым альфа-каналом.

Каким должен быть набор флагов у AddLabel, чтобы установить битмап с прозрачным фоном?

Спасибо.
Объемы покупок и продаж интрадей
 


Можно скачать.
SetUpdateCallback
 
Добрый день.

Какие ошибки возможны при выполнении этой функции кроме данных неверного типа?


Спасибо
Страницы: 1 2 След.
Наверх