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

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

Страницы: 1
Какой ИИ адекватно пишет
 
Исправлено через DeepSeek с изначальной подгрузкой в него документации по языку QLua
Код
-- Скрипт для вывода параметров срочного рынка для конкретного счета
-- (горизонтальная таблица с датой и временем)

local FIRM_ID = "MC02500"               -- ID фирмы
local TRADE_ACCOUNT = "12345I"           -- Торговый счет
local table_id = nil                     -- ID таблицы
local is_running = true                   -- Флаг работы

function main()
    -- Создаем таблицу
    table_id = AllocTable()
    if table_id == -1 or table_id == nil then
        message("Ошибка создания таблицы!", 3)
        return
    end
    
    -- Добавляем колонки (индексы с 1)
    AddColumn(table_id, 1, "Дата и время", true, QTABLE_STRING_TYPE, 20)
    AddColumn(table_id, 2, "Лимит, RUB", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(table_id, 3, "Вар. маржа, RUB", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(table_id, 4, "Доход, RUB", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(table_id, 5, "Итого, RUB", true, QTABLE_DOUBLE_TYPE, 15)
    
    -- Создаем окно таблицы
    CreateWindow(table_id)
    SetWindowCaption(table_id, "Счет: " .. TRADE_ACCOUNT)
    
    -- Добавляем одну строку (будем обновлять её)
    InsertRow(table_id, -1)
    
    message("Скрипт запущен для счета: " .. TRADE_ACCOUNT, 1)
    
    -- Основной цикл
    while is_running do
        -- Получаем данные для конкретного счета
        -- limit_type = 0 (денежные средства), currcode = "" (все валюты)
        local limit = getFuturesLimit(FIRM_ID, TRADE_ACCOUNT, 0, "")
        
        if limit then
            -- Получаем текущую дату и время
            local datetime = os.date("%d.%m.%Y %H:%M:%S")
            
            -- Обновляем значения в первой строке (row = 1)
            SetCell(table_id, 1, 1, datetime, 0)
            
            -- Получаем значения (проверяем возможные имена полей)
            local limit_value = limit.cbplimit or limit.buylimit or 0
            local var_margin = limit.varmargin or 0
            local accrued = limit.accruedint or 0
            
            SetCell(table_id, 1, 2, formatMoney(limit_value), limit_value)
            SetCell(table_id, 1, 3, formatMoney(var_margin), var_margin)
            SetCell(table_id, 1, 4, formatMoney(accrued), accrued)
            
            -- Итого (сумма трех параметров)
            local total = limit_value + var_margin + accrued
            SetCell(table_id, 1, 5, formatMoney(total), total)
            
            -- Обновляем заголовок с временем последнего обновления
            SetWindowCaption(table_id, string.format("Счет: %s | %s", 
                TRADE_ACCOUNT, datetime))
        else
            -- Если данных нет, показываем прочерки
            local datetime = os.date("%d.%m.%Y %H:%M:%S")
            SetCell(table_id, 1, 1, datetime, 0)
            SetCell(table_id, 1, 2, "--", 0)
            SetCell(table_id, 1, 3, "--", 0)
            SetCell(table_id, 1, 4, "--", 0)
            SetCell(table_id, 1, 5, "--", 0)
        end
        
        -- Ждем 3 секунды
        sleep(3000)
    end
    
    message("Скрипт остановлен", 1)
end

function formatMoney(amount)
    if amount == nil then return "0.00" end
    return string.format("%.2f", amount)
end

function OnStop()
    is_running = false
    if table_id then
        DestroyTable(table_id)
    end
    return 1000
end
Таблица обезличенных сделок и параметр "ALL_TRADES", Количество сделок через ALL_TRADES не соответствует сделкам в таблице
 
Удивительное рядом...))) Все время описанное работало т.к. я это описал и тут мне поступает ответ что сравнивать не корректно...))) На следующий день все стало работать корректно, но в определенный день после замены состава отображаемых бумаг и даже после перезаказа данных возникла описанная ранее ситуация.
Прошу со стороны поддержки не давать не корректных комментариев о возникших проблемах.
Отображение таблицы на всех Вкладках Quik
 
Цитата
NoneB написал:
можно скопировать окно на все вкладки
Благодарю. Почему то решил что если так со скриптом сделать, то он размножится на все окна и будет на каждом сам по себе рассчитываться.
Отображение таблицы на всех Вкладках Quik
 
Цитата
NoneB написал:
можно скопировать окно на все вкладки
Мне нужно что бы таблица со скриптом на всех вкладках была, а не таблица из имеющихся.
Отображение таблицы на всех Вкладках Quik
 
Добрый день! Существует ли возможность в Quik отображать конкретную таблицу/график на всех существующих вкладках?
Таблица обезличенных сделок и параметр "ALL_TRADES", Количество сделок через ALL_TRADES не соответствует сделкам в таблице
 
Через "ALL_TRADES" получаю количество сделок из "Таблица обезличенных сделок". Получаемое количество отличается от крайней сделки в таблице. Полученное количество больше. Кроме того попробовал получить по указанному номеру "Номер сделки в торговой системе (NUMBER)" и "Время совершения (TIME)", далее нашел данную сделку в Таблице обезличенных сделок и время сделки расходится с тем что было получено скриптом по номеру сделки.
Прошу подсказать что делать, что бы привести в соответствие. Столкнулся с таким впервые.
Страницы: 1
Наверх