Nikolay (Автор тем)

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

Страницы: 1
Данные параметров BID, OFFER
 
Есть два параметра таблицы текущих торгов - BID, OFFER.
Вопрос разработчикам - правильно ли я понимаю, что при отсутствии с одной из сторон данных (планка) будет возвращен 0 в качестве значения?  Либо result будет "0", сообщающий, что данные не получены?
Если просто 0, то как тогда это соотносится с возможностью нулевых цен для части инструментов. Не хотелось бы опрашивать стакан для такой простой задачи
TrustManager
 
Если ли доступ к таблицам, создаваемым модулем TrustManager из qlua?
При подключении модуля появляется тип транзакции NEW_GROUP_ORDER, судя по экспорту. Поэтому и возникает вопрос - как сформировать команду, читать данные и т.д.
Чтение данных метки, Зависание терминала
 
Версия 9.5


Скрипт простой: ставим метку и потом читаем данные.  После установки метки берем и перетаскиваем ее на графике, желательно  быстро. Терминал зависает. На таком простом скрипте это происходит не  сразу, поэтому можно просто двигать метку до выявления эффекта. Частично помогает избежать проблемы увеличение sleep до 500.

На версиях 8.* - сколько не двигал не получается эффект зависания, даже на sleep 55.


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

Ссылка на запись эффекта: https://disk.yandex.ru/d/OaffyXPOxRlG_Q


Тестовый скрипт:
Код
local sleep = _G.sleep
local isRun = true

local AddLabel          = _G.AddLabel
local GetLabelParams    = _G.GetLabelParams

function _G.OnStop()
    isRun = false
end

function _G.main()

    local tag       = 'virt_test'

    local label_params = {}
    label_params.YVALUE = 119.5
    label_params.TEXT = 'TEST    |||||||||||||||||||||||||||||||||||||||||||||'
    label_params.HINT = 'Еще текст'
    label_params.DATE = 20220611
    label_params.TIME = 152000
    label_params.FONT_FACE_NAME = 'Arial'
    label_params.ALIGNMENT = 'RIGHT'
    label_params.FONT_HEIGHT    = 10
    label_params.TRANSPARENT_BACKGROUND    = 1

    local l_id = AddLabel(tag, label_params)
    sleep(1000)

    while isRun do
        label_params = GetLabelParams(tag, l_id)
        if label_params then
            _G.message(tostring(label_params.yvalue))
        end
        sleep(100)
    end
end
Время сервера, время последней сделки., Разное время передаваемое с сервера.
 
Прямо сейчас наблюдаю такую картину. Время сервера отстает на минуту от текущего времени (оно синхронизировано и корректно).
При  этом время последней сделки на минуту впереди времени сервера и близко к  правильному текущему времени, т.е. тоже опережает время сервера.

Я  могу понять, что это проблема брокера (Сбербанк), но с какой стати  время сделки в будущем относительно времени сервера брокера и времени  пакета?
Т.е. я понимаю, что время сделки просто транслирует биржа, но  серверная часть должна же не просто транслировать, но и как-то  контролировать, что она транслирует.
Демо счет.
 
Добрый день.

Не удается второй день подключится к демо серверу
SERVER: Информационно-торговая система ARQA, IPCOMMENT: JUNIOR 1

Ни в 8-ой, ни в 9-ой версии терминала. Пароль принимает нормально. Пишет, что до истечения пароля осталось столько-то, далее: Соединение установить не удалось.
Версия 9.* isDarkTheme в индикаторах
 
В описании доступных функций глобального контекста  индикатора для версии терминала 9.* есть isDarkTheme.
Однако, если присутствует ее вызов в теле индикатора, то он не показывается в списке выбора.
Если же убрать вызов, то индикатор становится доступен для добавления на график.

В 8-ой версии работает корректно.
На демо счете прошла кросс заявка.
 
Демо счет, Quik 8.13.0.106

Установлен лимитный ордер. Совершена ручная сделка, исполнившая этот ордер. В таблице сделок номер сделки задублирован.
Странная дата сервера
 
Что это за формат времени в поле Дата торгов? Как, спрашивается, понять, что здесь что?


getFuturesHolding
 
На версии 8.х столкнулся на реальных счетах разных брокеров, что функции получения текущих позиций как getFuturesHolding,
getDepoEx работают нестабильно. Чаще всего это происходит с getFuturesHolding на едином счете.
В течении сессии часто (обычно перед клирингом) функция не возвращает ничего. При этом если перебрать строки прямым итератором, то все нормально находится.

Приходится отказываться от использования функций. Но перебор - это существенный расход памяти и просто медленней.
Утечка памяти
 
Недавно началось очень странное поведение системы при работе Квика. Версия 8.3.1.38. При этом он был установлен еще в мае.

Памяти на рабочем месте 32 гб. Свободной полно. Но явно идет утечка памяти. Виртуальная память выделена > 80 ГБ.

То ли это Windows 10 так балуется, то ли у Квика лыжи не едут... Но, еще раз, полтора месяца с момента обновления, не было проблем.

https://funkyimg.com/i/3683s.png
Параметр STARTTIME, ENDTIME, Вечерняя сессия на фондовой секции
 
Начались торги в вечернюю сессию на фондовой секции. Я уже задавал вопрос про трансляцию времени сессии, но вот сейчас она идет и можно посмотреть на реальный поток данных.

Что мы видим:

Вот утро. Начало торгов. По фьючерсу все ожидаемо и понятно. Есть и времена и статус.
По акции я вижу только статус, а время заполнилось только утренним аукционом.


[INFO  2020-06-23 09:16:58] : SRU0 STATUS {param_image = "приостановлена", param_type = "4", param_value = "2.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 CLSTATE {param_image = "Назначен пр.", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 MONSTARTTIME {param_image = "7:00:00", param_type = "5", param_value = "70000.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 MONENDTIME {param_image = "8:40:00", param_type = "5", param_value = "84000.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 STARTTIME {param_image = "10:00:00", param_type = "5", param_value = "100000.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 ENDTIME {param_image = "18:45:00", param_type = "5", param_value = "184500.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 EVNSTARTTIME {param_image = "19:00:00", param_type = "5", param_value = "190000.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SRU0 EVNENDTIME {param_image = "23:50:00", param_type = "5", param_value = "235000.000000", result = "1"}

[INFO  2020-06-23 09:16:58] : SBER STATUS {param_image = "торгуется", param_type = "4", param_value = "1.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SBER CLSTATE {param_image = "", param_type = "0", param_value = "0.000000", result = "0"}
[INFO  2020-06-23 09:16:58] : SBER TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SBER MONSTARTTIME {param_image = "", param_type = "0", param_value = "0.000000", result = "0"}
[INFO  2020-06-23 09:16:58] : SBER MONENDTIME {param_image = "", param_type = "0", param_value = "0.000000", result = "0"}
[INFO  2020-06-23 09:16:58] : SBER STARTTIME {param_image = "", param_type = "5", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SBER ENDTIME {param_image = "", param_type = "5", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:16:58] : SBER EVNSTARTTIME {param_image = "", param_type = "0", param_value = "0.000000", result = "0"}
[INFO  2020-06-23 09:16:58] : SBER EVNENDTIME {param_image = "", param_type = "0", param_value = "0.000000", result = "0"}

[INFO  2020-06-23 09:50:00] : SBER TRADINGSTATUS {param_image = "открытие", param_type = "4", param_value = "3.000000", result = "1"}
[INFO  2020-06-23 09:50:02] : SBER STARTTIME {param_image = "9:50:00", param_type = "5", param_value = "95000.000000", result = "1"}
[INFO  2020-06-23 09:59:33] : SBER TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 09:59:33] : SBER ENDTIME {param_image = "9:59:34", param_type = "5", param_value = "95934.000000", result = "1"}
[INFO  2020-06-23 10:00:00] : SRU0 STATUS {param_image = "торгуется", param_type = "4", param_value = "1.000000", result = "1"}
[INFO  2020-06-23 10:00:00] : SRU0 TRADINGSTATUS {param_image = "открыта", param_type = "4", param_value = "1.000000", result = "1"}
[INFO  2020-06-23 10:00:00] : SBER TRADINGSTATUS {param_image = "открыта", param_type = "4", param_value = "1.000000", result = "1"}

Вот данные пор акции внутри дня. Время утреннего акциона. Это как понимать? Уже сессия к концу идет, а время старое.
[INFO  2020-06-23 17:33:32] : SBER TRADINGSTATUS {param_image = "открыта", param_type = "4", param_value = "1.000000", result = "1"}
[INFO  2020-06-23 17:33:32] : SBER STARTTIME {param_image = "9:50:00", param_type = "5", param_value = "95000.000000", result = "1"}
[INFO  2020-06-23 17:33:32] : SBER ENDTIME {param_image = "9:59:34", param_type = "5", param_value = "95934.000000", result = "1"}


Вечер. По фьючерсам все адекватно, а вот по акциям:

[INFO  2020-06-23 18:40:00] : SBER TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 18:40:05] : SBER TRADINGSTATUS {param_image = "аукцион", param_type = "4", param_value = "4.000000", result = "1"}
[INFO  2020-06-23 18:40:16] : SBER STARTTIME {param_image = "18:40:01", param_type = "5", param_value = "184001.000000", result = "1"}
[INFO  2020-06-23 18:40:16] : SBER ENDTIME {param_image = "", param_type = "5", param_value = "0.000000", result = "1"}

[INFO  2020-06-23 18:45:15] : SBER TRADINGSTATUS {param_image = "ЦАЗ", param_type = "4", param_value = "5.000000", result = "1"}
[INFO  2020-06-23 18:45:16] : SBER STARTTIME {param_image = "18:45:14", param_type = "5", param_value = "184514.000000", result = "1"}

[INFO  2020-06-23 18:50:02] : SBER TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 18:50:04] : SBER ENDTIME {param_image = "18:50:00", param_type = "5", param_value = "185000.000000", result = "1"}
[INFO  2020-06-23 19:00:12] : SBER TRADINGSTATUS {param_image = "открытие", param_type = "4", param_value = "3.000000", result = "1"}
[INFO  2020-06-23 19:00:13] : SBER STARTTIME {param_image = "19:00:01", param_type = "5", param_value = "190001.000000", result = "1"}
[INFO  2020-06-23 19:00:13] : SBER ENDTIME {param_image = "", param_type = "5", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 19:04:54] : SBER TRADINGSTATUS {param_image = "закрыта", param_type = "4", param_value = "0.000000", result = "1"}
[INFO  2020-06-23 19:04:54] : SBER ENDTIME {param_image = "19:04:54", param_type = "5", param_value = "190454.000000", result = "1"}
[INFO  2020-06-23 19:05:00] : SBER TRADINGSTATUS {param_image = "открыта", param_type = "4", param_value = "1.000000", result = "1"}

[INFO  2020-06-23 19:21:34] : SBER STARTTIME {param_image = "19:00:01", param_type = "5", param_value = "190001.000000", result = "1"}
[INFO  2020-06-23 19:21:34] : SBER ENDTIME {param_image = "19:04:54", param_type = "5", param_value = "190454.000000", result = "1"}

Времена аукциона я еще могу понять. А вот что это такое при старте вечерней сессии уже с трудом. И опять - времена то где?
Почему нельзя заполнить времена прямо при подключению к серверу, как это делается для фьючерсов и менять их, если они меняются внутри дня? Поля же есть.

Часть акций торгуется, часть нет. А информации о времени сессии нет. Раньше можно было хотя бы определить константы, когда времена были фиксированными (хоть это было и спорное решение), но сейчас то как.
Вечерняя сессия на фондовом рынке., Вечерняя сессия на фондовом рынке.
 
В связи с началом торгов в вечернюю сессию на фондовом рынке, возникает вопрос: какие параметры будут транслироваться для списка бумаг допущенных к торгам?
В частности: TRADINGSTSTUS, ENDTIME, EVNSTARTTIME, EVNENDTIME.
Будут ли числовые значения статуса отличаться меджду основной сессией и вечерней?
Недельные опционы на демо счете
 
Добрый день.

Не могу найти в демо версии недельные опционы. Поток данных на демо контуре по ним вообще есть? Или это я не могу найти.
strict lua
 
Добрый день.

Если qlua это lua 5.1, то разве не должна быть поддержка библиотеки strict?
Динамическое количество линий индикатора
 
Добрый день.

Т.к. в индикаторе необходимо при инициализации указывать количество возвращаемых линий, то написана такая конструкция в функции init:
Код
for i = 1, lines do
        Settings.line[i] = {}
        Settings.line[i] = {Color = RGB(185, 185, 185), Type = TYPE_LINE, Width = 2}
    end
Алгоритм вводит линии по мере наполнения массива линий. Сначала их может быть 20, потом уже 100 и т.д. Для оптимизации линии выводятся только с не пустым значением.

Все бы хорошо, но заметил такую особенность (версия 7.19), если не вывести хотя бы один раз все линиий с не пустым значением, то потом они не отображаются на графике, хотя функция GetValue возвращает значение. Я долго не мог понять почему у меня линии не показываются с течением времени, а если заново инициализировать индикатор (через параметры графика), то все на месте.

Пришлось сделать такой странный костыль:
Код
if index == 1 then
    tmpOutlines = {}
    for i=1,lines do --необходимо вывести все линии хотя бы один раз, чтобы потом они отображались без проблем                  
       tmpOutlines[i] = O(Size())
    end
    return unpack(tmpOutlines)
end
if index == 2 then
    for i=1,lines do                  
        SetValue(1,i,nil)
    end
    return nil
end
Индекс бара
 
Добрый день.

Есть пожелание по вводу индекса бара (свечи) в контекстной подсказке при наведении на бар.
Сейчас выводится только дата, время и торговые параметры бара, но при отладе скриптов, да и просто для удобства задания диапазона,
хотелось бы видеть индекс без костылей в виде доп. индикаторов.
Высота метки в шагах цены
 
Добрый день.

Возникла проблема. Выводятся текстовые метки друг над другом. Задется высота шрифта 10.
А как перевести эту высоту в шаг цены? Сейчас приходится подбирать дельту цены, чтобы метки не накладывались.

Собственно очень не хватает процедур пересчета абсолютных координат окна (идеально еще бы иметь событие - "изменение масштаба") в ценовую и временную шкалы. Сразу бы решились многие проблемы. Сейчас просто невозможно рассчитать линию под определенным углом, или, наоборот, рассчитать угол линии.
Установка данных индикатора из скрипта
 
Добрый день.

Получение данных индикатора из скрипта возможно. А обратно?

У меня скрипт считает даные, хранит в таблице. Я хотел бы вывести их как значения индикатора. Т.е. сам индикатор будет пустой, возвращающий nil. А вот скриптом хотелось поставить значения, по примеру функции SetValue.
Обращение к внешним сервисам
 
Добрый день.

Кто-нибудь пробовал обращаться к внешним сервисам типа Twitter из qlua?
Есть у меня желание добавить себе в скрипт чтение ленты по ключевым словам.
Я нашел библиотеки Lua для подключения к тому же Twitter, вопрос только - заработет ли из Квика?
Может проще написать того же бота на питоне.
Возвращаемые данные для отрисовки индикатора
 
Добрый день.

Пишется индикатор с динамическим количеством линий.
Можно ли вместо данных типа ruturn out1, out2, out3 вернуть массив {}. Соответственно, данные линий - это индексные данные массива.

Уж больно некрасиво приходится делать большое количество переменных с запасом.

Есть еще вариант динамического описания кода. Есть ли в интерпретаторе qlua execute("Текст выполняемого кода")?
Вилы Эндрюса, уровни Фибоначчи, веер Ганна.
 
Добрый день.

Очень бы хотелось иметь достаточной простой интрумент как вилы Эндрюса.
Также очень хочется существующие уровни Фибоначчи строить не только горизонтально, но и под любым углом. Тем самым получая наклонные уровни.
А уж для полноты картины - веер Ганна был бы очень кстати.

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