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

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

Страницы: 1
Quik 8.6 Critical error ACCESS_VIOLATION
 
Еще немного потестировал.
Падает не только при полной прокачке тиков, но и при получении новых тиков тоже.
Запустил квик, дождался когда прокачаются тики и начнут новые тики приходить, запускаю скрипт, через некоторое время падает с этой же ошибкой.

Еще пытался понять на каком i падает, нет зависимости, на разном i падает, в начале, в середине, в конце.
Quik 8.6 Critical error ACCESS_VIOLATION
 
Цитата
Anton написал:
Ну еще SetEmptyCallback надо дернуть
Это не помогло.
Quik 8.6 Critical error ACCESS_VIOLATION
 
Цитата
Anton написал:
for i = 0, size - 1 do
Справедливо, но тоже падает (Critical error ACCESS_VIOLATION).  
Quik 8.6 Critical error ACCESS_VIOLATION
 
Это был тестовый пример для воспроизведения, рабочий код другой, и там вызывается намного реже код подсчета, но при этом падает.
Можно и один раз создать DataSource и все равно падает.
Код
is_run = true

function main()
    message("start", 1)
    local ds, errorDescr = CreateDataSource("SPBFUT", "RIM0", 0)
    while is_run do
        TestDS(ds)
        sleep(10)
    end;
end

function OnStop()
    message("stop", 1)
    is_run = false
end

function TestDS(ds)
    local size = ds:Size()
    for i = 0, size do
        local time = ds:T(i)
    end
    message("DS " .. size, 0)
end
Quik 8.6 Critical error ACCESS_VIOLATION
 
Столкнулся с проблемой при работе с тиками через CreateDataSource.

Запускаешь квик, таблица обезличенных сделок пока пустая (удалить alltrade.dat для воспроизведения), квик начинает быстро грузить сделки.
В это время работает мой скрипт, который берет данные тиков, например ds:T(i), ds:V(i).
Скрипт падает в ошибку: Critical error ACCESS_VIOLATION in script C:\LuaScripts\TestQuikLua\test_ds5.lua
Ошибка возникает во второй половине дня, когда новых тиков много и квик долго их прокачивает.
Т.е. проблема когда квик активно закачивает сделки и скрипт работает с DataSource.
Воспроизводится в 8.5.2 и 8.6. До версии 8.5 данной проблемы не было.

Код скрипта для воспроизведения:
Код
is_run = true

function main()
    message("start", 1)
    while is_run do
        TestDS("RIM0")
        sleep(10)
    end;
end

function OnStop()
    message("stop", 1)
    is_run = false
end

function TestDS(tiker)
    local ds, errorDescr = CreateDataSource("SPBFUT", tiker, 0)
    local size = ds:Size()
    for i = 0, size do
        local time = ds:T(i)
    end
    message("DS " .. tiker .. " " .. size, 0)
end
Очистить таблицу all_trades
 
Хочу чтобы таблица очистилась и квик начал заново загружать данные.
Как будто нажать в квике кнопу "Получить заново данные по обезличенным сделкам".
Очистить таблицу all_trades
 
Можно ли очистить таблицу обезличенных сделок (all_trades) программным способом через луа?
Страницы: 1
Наверх