Запуск скриптов QLUA с использованием сторонних DLL

5 ноября, 2014

Если Вы берете какие либо сторонние модули  для LUA и используете их в скриптах для терминала QUIK,

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

В этом случае , при запуске скрипта терминал может просто падать без сообщений.

Решать  эту проблему нужно следующем образом.

Установите программу для просмотра DLL, например, эту   depends22.

Просмотрите все библиотеки с помощью данной программы.

Например, выкладываемые мною скрипты используют модуль nkcom.dll и nklib.dll.

После установки depends22 надо кликнуть по соответствующей DLL.

В открывшейся таблице будут отображены все используемые внешние библиотеки и отмечены те,

которые не удалось найти на Вашем компе.

После этого необходимо установить недостающие библиотеки.

Для этого достаточно их поместить в  каталог с проверяемой DLL.

Если найти библиотеки не можете, пишите пришлю.

Lua Сравнение таблиц

4 ноября, 2014

Несколько дней назад, на форуме QUIK появился пост о функции сравнения таблиц.

В качестве прототипа было предложено следующее решение из интернета:

function areTablesEqual(t1, t2)
for k, v in pairs(t1) do
if t2[k] ~= v then return false end
end
for k, v in pairs(t2) do
if t1[k] ~= v then return false end
end
return true
end

Я собственно не смог придумать ситуации при создании торговых роботов,  в которой возникает такая необходимость.

Однако, решил написать подобную функцию на API C , чтобы сравнить быстродействие.

Мое решение с тестом на LUA можно взять здесь nklib_t(v2)

На моем компе, мое решение  примерно в 3 раза быстрее прототипа.