<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Помогите написать скрипт на актуальном языке Lua]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Помогите написать скрипт на актуальном языке Lua форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 08:57:45 +0300</pubDate>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67006/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			определить торговый или не торговый день,<br />а также есть ли догружаемые записи (это для тех кого волнует все или не все в таблицах свечей и обезличенных сделок)<br />можно по параметрам информационного окна. <br />
			<i>21.11.2022 10:46:24, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67006/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67006/topic7741/</guid>
			<pubDate>Mon, 21 Nov 2022 10:46:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66999/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_uKouEB2d" href="/user/15531/" bx-tooltip-user-id="15531">Forbius</a> написал:<br />На сколько помню, в течении года бывает исключение когда биржа работает в субботу. Могу ошибаться но черная суббота вроде как бывает. Как бы не получить сюрприз от скрипла в такой день когда ожидаешь не напряжный рабочий график и бац скрипт пишет &quot;выходной&quot;. А если совпало с отпуском когда за терминалом кто то из младших помощников тогда совмес беда....<br />=============<br />Нужно тогда как у сервера quik в конфиге предусмотреть параметр <br />типо WorkDay= 29022023 <br />
			<i>20.11.2022 22:36:20, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66999/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66999/topic7741/</guid>
			<pubDate>Sun, 20 Nov 2022 22:36:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66998/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			На сколько помню, в течении года бывает исключение когда биржа работает в субботу. Могу ошибаться но черная суббота вроде как бывает. Как бы не получить сюрприз от скрипла в такой день когда ожидаешь не напряжный рабочий график и бац скрипт пишет &quot;выходной&quot;. А если совпало с отпуском когда за терминалом кто то из младших помощников тогда совмес беда.... <br />
			<i>20.11.2022 22:32:10, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66998/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66998/topic7741/</guid>
			<pubDate>Sun, 20 Nov 2022 22:32:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66925/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Наконец, можно ещё учесть, что скрипт должен работать только по будням в какой-то промежуток времени. Для этого написать в конце конфига:<br />
====code====
<pre>filename = "D:/last_quotes.txt"
pauseDurationMillis = 10000
sleepDurationMillis = 250
startExportHHMM = 0900
stopExportHHMM = 2300

dofile(getScriptPath() .. "/ParamExportCode.lua")

</pre>
=============
и изменить код, начиная с OnStop(), в файле с кодом:<br />
====code====
<pre>local function isExportTime()
&nbsp;&nbsp;&nbsp;&nbsp;local dt = os.sysdate()
&nbsp;&nbsp;&nbsp;&nbsp;local hhmm = dt.hour * 100 + dt.min
&nbsp;&nbsp;&nbsp;&nbsp;return startExportHHMM &#60;= hhmm and hhmm &#60; stopExportHHMM and 1 &#60;= dt.week_day and dt.week_day &#60;= 5
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;message("Export started.", 1)
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if isExportTime() then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;message("Export stopped.", 1)
end
</pre>
============= <br />
			<i>18.11.2022 17:33:14, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66925/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66925/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 17:33:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66923/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			С учётом высказанных пожеланий.<br /><br />1) Создаём два файла. В одном описываются настройки и вызывается второй файл, содержащий код. Оба файла должны лежать в одной папке. Запускать надо ParamExportConfig.lua.<br /><br />Файл ParamExportConfig.lua:<br />
====code====
<pre>--- Функция для условного форматирования: до момента hhmm используется format1, после -- format2
local function formatHHMM(hhmm, format1, format2)
&nbsp;&nbsp;&nbsp;&nbsp;return function()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local dt = os.sysdate()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dt.hour * 100 + dt.min &#60; hhmm then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return format1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return format2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

-- Настройки для вывода котировок
securities = {
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = "GAZ ----&#92;n", -- в конце перевод строки
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "BRF3",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "BRENT %.2f ", }, -- в конце пробел-разделитель
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "lastChange", format = "OIL %.1f&#92;n", }, -- в конце перевод строки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GDZ2",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GOLD %.1f ", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "lastChange", format = "%.2f&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GAZP",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GAZP %.2f ", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "SBER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "SBER %.2f&#92;n", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "AFLT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "AFLT %.2f ", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GMKN",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GMKN %.0f&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "MGNT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = formatHHMM(1837, "MGNT --&#92;n", "MGNT %.1f&#92;n"), }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "MOEX",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = formatHHMM(1837, "", "MOEX %.2f&#92;n"), }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
}

filename = "D:/last_quotes.txt"
pauseDurationMillis = 10000
sleepDurationMillis = 250

dofile(getScriptPath() .. "/ParamExportCode.lua")

</pre>
=============
<br />Файл ParamExportCode.lua:<br />
====code====
<pre>local isInterrupted = false
local file

local function valueOf(x)
&nbsp;&nbsp;&nbsp;&nbsp;return type(x) == "function" and x() or x
end

local function requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if type(security.params) == "table" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not ParamRequest(security.classCode, security.secCode, securityParams.param) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Cannot request: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;if type(security.line) == "string" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(tostring(security.line))
&nbsp;&nbsp;&nbsp;&nbsp;elseif type(security.params) == "table" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(security.classCode, security.secCode, securityParams.param)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(string.format(valueOf(securityParams.format), paramEx.param_value))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Cannot export: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;message("Export started.", 1)
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;message("Export stopped.", 1)
end

</pre>
=============
<br />2) Добавлена функция для реализации форматирования в зависимости от времени formatHHMM. В примере конфига для MGNT выводим прочерк до указанного момента времени и цену в остальное время, для MOEX не выводим ничего (пустая строка) до указанного момента и цену в остальное время. Возможно, придётся доработать эту функцию, чтобы указать время перехода с format2 на format1 (сейчас это полночь). В os.sysdate() используется локальное время компа.<br /><br />3) По-моему, этого кода должно быть достаточно для реализации всех пожеланий. Пробуйте. <br />
			<i>18.11.2022 15:48:40, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66923/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66923/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 15:48:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66916/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_tx5V5lV6" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Я бы вообще бы вынес описание инструментов в текстовый файл,<br /> чтобы можно было менять набор не зная луа и не редактируя скрипт.<br />=============<br />К этому уже всё идёт. :) <br />
			<i>18.11.2022 15:14:24, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66916/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66916/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 15:14:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66913/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			У меня на компе в итоговый файл русские буквы пишутся норм без проблем.<br />А сообщения из скрипта типо &quot;Скрипт экспорта котировок запущен.&quot; &nbsp;кракозябрами, но это мелочи, переписал сообщения на английском. <br /><br />Загляните в вхоядище ЛК сообщения. Нужно уточнить одну деталь. <br />
			<i>18.11.2022 15:01:09, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66913/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66913/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 15:01:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66912/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я бы вообще бы вынес описание инструментов в текстовый файл,<br /> чтобы можно было менять набор не зная луа и не редактируя скрипт. <br />
			<i>18.11.2022 14:57:31, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66912/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66912/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 14:57:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66911/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В предыдущем скрипте можно упростить описание массива инструментов: префиксы, суффиксы, разделители, переводы строки и название инструмента поместить в строку format. Так получается компактнее. Функционал не должен пострадать. Неудобство может возникнуть только если придётся экранировать какие-либо символы в названии инструмента (скажем, если в названии присутствует знак процента или ещё что-то в этом рода).<br /><br />
====code====
<pre>local securities = {
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "BRF3",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "BRENT %.2f ", }, -- название пишем прямо в строке format, в конце добавляем пробел
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "lastChange", format = "OIL %.1f&#92;n", }, -- тут в конце строки format добавляем перевод строки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GDZ2",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GOLD %.1f ", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "lastChange", format = "%.2f&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GAZP",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GAZP %.2f ", }, -- в конце пробел, чтобы отделить от следующего инструмента 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "SBER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "SBER %.2f&#92;n", }, -- в конце перевод строки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "AFLT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "AFLT %.2f ", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GMKN",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ param = "last", format = "GMKN %.0f&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
}

local filename = "D:/last_quotes.txt"
local pauseDurationMillis = 10000
local sleepDurationMillis = 250
local isInterrupted = false
local file

local function requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not ParamRequest(security.classCode, security.secCode, securityParams.param) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Не удалось заказать: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;for i, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(security.classCode, security.secCode, securityParams.param)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(string.format(securityParams.format, paramEx.param_value))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Не удалось экспортировать: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;message("Скрипт экспорта котировок запущен.", 1)
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;message("Скрипт экспорта котировок остановлен.", 1)
end

</pre>
============= <br />
			<i>18.11.2022 14:43:49, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66911/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66911/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 14:43:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66899/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При использовании скрипта надо обращать внимание, что в файле с кодом используется кодировка CP1251, иначе вместо русских букв будут кракозябры. Либо всё по-английски писать:<br />Cannot request parameter:<br />Cannot export:<br />Script started.<br />Script stopped. <br />
			<i>18.11.2022 11:16:37, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66899/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66899/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 11:16:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66897/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Наблюдаем в прямом эфире рождение чёткого ТЗ от заказчика :)<br /><br /><br />====quote====<br />Как переформатировать вывод что бы бумаги с доп секцией lastchange &nbsp;оставить на отдельной строке, а &quot;обычные&quot; акции сделать по две на строку &nbsp;как в примере ниже:<br />=============<br /><br />Примерно так:<br /><br />
====code====
<pre>local securities = {
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "BRF3",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "BRENT", delimiter = " ", param = "last", format = "%.2f", suffix = " ", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "OIL", delimiter = " ", param = "lastChange", format = "%.1f", suffix = "&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GDZ2",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "на всякий случай :) ", name = "GOLD", delimiter = " ", param = "last", format = "%.1f", suffix = " ", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "золото", delimiter = " ", param = "lastChange", format = "%.2f", suffix = "&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GAZP",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "GAZP", delimiter = " ", param = "last", format = "%.2f", suffix = " ", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "SBER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "SBER", delimiter = " ", param = "last", format = "%.2f", suffix = "&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "AFLT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "AFLT", delimiter = " ", param = "last", format = "%.2f", suffix = " ", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GMKN",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ prefix = "", name = "GMKN", delimiter = " ", param = "last", format = "%.0f", suffix = "&#92;n", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
}

local filename = "D:/last_quotes.txt"
local pauseDurationMillis = 10000
local sleepDurationMillis = 250
local isInterrupted = false
local file

local function requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not ParamRequest(security.classCode, security.secCode, securityParams.param) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Не удалось заказать: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;for i, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(security.classCode, security.secCode, securityParams.param)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;securityParams.prefix or "",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;securityParams.name or "",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;securityParams.delimiter or " ",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string.format(securityParams.format, paramEx.param_value), 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;securityParams.suffix or "")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Не удалось экспортировать: "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.classCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(security.secCode) .. ", "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.. tostring(securityParams.param), 2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;message("Скрипт экспорта котировок запущен.", 1)
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;message("Скрипт экспорта котировок остановлен.", 1)
end

</pre>
============= <br />
			<i>18.11.2022 11:12:32, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66897/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66897/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 11:12:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66896/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			nikolz - за ссылку спасибо за ссылку на книжку по программированию, изучаю.<br /><br />_sk_ &nbsp;в 3-ю версию скрипта добавил все нужные мне инструменты, настроил округление (от 1 до 3 знаков после запятой) выгружается все моментально.<br />получился большой вертикальный столбик.<br />Как переформатировать вывод что бы бумаги с доп секцией lastchange оставить на отдельной строке, а &quot;обычные&quot; акции сделать по две на строку как в примере ниже:<br /><br />BRENT 92.60 -0.3<br />GAZP 169.2 SBER 139.2<br />AFLT 25.1 GMKN 15072 <br />
			<i>18.11.2022 09:54:41, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66896/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66896/topic7741/</guid>
			<pubDate>Fri, 18 Nov 2022 09:54:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66865/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ZD3to8f2" href="/user/15531/" bx-tooltip-user-id="15531">Forbius</a> написал:<br />интуитивно &nbsp;обычной логикой тоже наскоком его не понять<br />=============<br />насмешил )), наверное нет более простого и интуитивно понятного языка упрощающего жизнь любому программисту самоучке, абсолютно не знающему никакого языка программирования <br />
			<i>17.11.2022 13:20:52, Евгений.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66865/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66865/topic7741/</guid>
			<pubDate>Thu, 17 Nov 2022 13:20:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66863/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Уважаемый _SK_<br /><br />Третья версия отлично работает! &nbsp;<br /><br />Сейчас добавлю все свои интрументы, посмотрю что получается в итоге. <br />
			<i>17.11.2022 12:57:18, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66863/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66863/topic7741/</guid>
			<pubDate>Thu, 17 Nov 2022 12:57:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66858/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_nHSj1vdA" href="/user/15531/" bx-tooltip-user-id="15531">Forbius</a> написал:<br /><br />Не такой популярный язык LUA, обзвонил всех знакомых кто в IT, ни кто этот язык не знает... интуитивно &nbsp;обычной логикой тоже наскоком его не понять.<br /><br /><br />=============<br /><noindex><a href="https://eligovision.ru/media/upload/lua.pdf" target="_blank" rel="nofollow">https://eligovision.ru/media/upload/lua.pdf</a></noindex> <br />
			<i>17.11.2022 12:36:00, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66858/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66858/topic7741/</guid>
			<pubDate>Thu, 17 Nov 2022 12:36:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66854/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br />Скрипт в второй редакции просто отличный, компактный. Работает очень быстро.<br />=============<br /><br />С чего бы ему медленно работать, тут же все очень быстро происходит.<br /><br /><br />====quote====<br />Не такой популярный язык LUA, обзвонил всех знакомых кто в IT, ни кто &nbsp;этот язык не знает... интуитивно &nbsp;обычной логикой тоже наскоком его не &nbsp;понять.<br /><br />=============<br /><br />По-хорошему, конечно, надо бы почитать книгу какую-то по этому языку. Жаль, что с IT окружением не задалось.<br /><br />
====code====
<pre>local securities = {
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "SBER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ name = "SBER", param = "last", format = "%.2f", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ name = "Сбер", param = "lastChange", format = "%.1f", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{ 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "TQBR",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "GAZP",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ name = "GAZP", param = "last", format = "%.2f", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classCode = "SPBFUT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secCode = "BRF3",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ name = "BR", param = "last", format = "%.2f", },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ name = "OIL", param = "lastChange", format = "%.2f", }, 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;},
}

local filename = "D:/last_quotes.txt"
local pauseDurationMillis = 10000
local sleepDurationMillis = 100
local isInterrupted = false
local file

local function requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(security.classCode, security.secCode, securityParams.param)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;for i, securityParams in ipairs(security.params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(security.classCode, security.secCode, securityParams.param)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i &#62; 1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(" ")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(securityParams.name, " ", string.format(securityParams.format, paramEx.param_value))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;file:write("&#92;n")
end

local function exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotesForSecurity(security)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

</pre>
============= <br />
			<i>17.11.2022 11:57:12, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66854/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66854/topic7741/</guid>
			<pubDate>Thu, 17 Nov 2022 11:57:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66852/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Скрипт в второй редакции просто отличный, компактный. Работает очень быстро.<br /><br />Не такой популярный язык LUA, обзвонил всех знакомых кто в IT, ни кто этот язык не знает... интуитивно &nbsp;обычной логикой тоже наскоком его не понять.<br />Сейчас проблема в следующем.<br /><br />Актуальный по экспирации фьючерс по нефти BRENT внутри квика имеет код &nbsp;BRENT0123 в классе FEG но его выгрузке нужно показать как просто BRENT без месяца и года.<br />И следом указать как OIL с значением % изменения от закрытия &quot;LASTCHANGE&quot;<br /><br />В выгрузке вот в таком виде с округлением:<br /><br />BRENT 92.58 OIL -0.3 <br />
			<i>17.11.2022 11:18:40, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66852/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66852/topic7741/</guid>
			<pubDate>Thu, 17 Nov 2022 11:18:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66832/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br />Пробовал сам так сделать, но пока не работает...<br />=============<br /><br />Беда...<br /><br />
====code====
<pre>local securities = {
&nbsp;&nbsp;{ classCode = "TQBR", secCode = "SBER", },
&nbsp;&nbsp;{ classCode = "TQBR", secCode = "GAZP", },
&nbsp;&nbsp;{ classCode = "SPBFUT", secCode = "LKZ2", }
}

local param = "last"
local filename = "D:/last_quotes.txt"
local pauseDurationMillis = 10000
local sleepDurationMillis = 100
local isInterrupted = false
local file

local function requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(security.classCode, security.secCode, param)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuote(security)
&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(security.classCode, security.secCode, param)
&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(security.secCode, " ", tostring(paramEx.param_value), "&#92;n")
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, security in ipairs(securities) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuote(security)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;requestParams()
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportQuotes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

</pre>
============= <br />
			<i>16.11.2022 08:37:11, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66832/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66832/topic7741/</guid>
			<pubDate>Wed, 16 Nov 2022 08:37:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66821/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			У меня будут &nbsp;биржевые инструменты (котировки все в одном файле), это как снимок текущей обстановки на бирже по нескольким бумагам. <br />выходной файл я сделал статичным 
====code====
<pre>local filename = "!outs.txt"
</pre>
=============
И перед значением нужно добавить название бумаги.<br /><br />На выходе &nbsp;будет название бумаги (пробел) котировка с округлением до десятой доли.<br />Следующая строка другой инструмент.<br /><br />GAZP 169.9<br />SBER 127.3<br /><br />Пробовал сам так сделать, но пока не работает... <br />
			<i>15.11.2022 16:53:38, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66821/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66821/topic7741/</guid>
			<pubDate>Tue, 15 Nov 2022 16:53:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66816/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Без разницы, я использую 5.4.1. <br />
			<i>15.11.2022 14:52:54, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66816/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66816/topic7741/</guid>
			<pubDate>Tue, 15 Nov 2022 14:52:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66815/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Спасибо _sk_, скрипт работает!<br /><br />Сейчас начну подгонять под свои хотелки.<br /><br />По ходу уточню, запускать лучше в 5.4.1 или 5.3.5? <br />
			<i>15.11.2022 14:25:44, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66815/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66815/topic7741/</guid>
			<pubDate>Tue, 15 Nov 2022 14:25:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66813/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Можно начать вот с этого примера, который сохраняет цену last для GAZP в файл в корне диска D:<br /><br />
====code====
<pre>local classCode = "TQBR"
local secCode = "GAZP"
local param = "last"
local filename = "D:/" .. classCode .. "_" .. secCode .. ".txt"
local pauseDurationMillis = 10000
local sleepDurationMillis = 100
local isInterrupted = false

local function printValue(value)
&nbsp;&nbsp;&nbsp;&nbsp;local file = io.open(filename, "w+")
&nbsp;&nbsp;&nbsp;&nbsp;if file then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write(tostring(value))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close()
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function exportParam()
&nbsp;&nbsp;&nbsp;&nbsp;local paramEx = getParamEx(classCode, secCode, param)
&nbsp;&nbsp;&nbsp;&nbsp;if paramEx.result == "1" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printValue(paramEx.param_value)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local function pause(durationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;while durationMillis &#62; 0 and not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(math.min(durationMillis, sleepDurationMillis))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durationMillis = durationMillis - sleepDurationMillis
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isInterrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(classCode, secCode, param)
&nbsp;&nbsp;&nbsp;&nbsp;while not isInterrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exportParam()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pause(pauseDurationMillis)
&nbsp;&nbsp;&nbsp;&nbsp;end
end
</pre>
============= <br />
			<i>15.11.2022 11:43:21, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66813/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66813/topic7741/</guid>
			<pubDate>Tue, 15 Nov 2022 11:43:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66812/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Программисты, Ау, <br />Кто готов помочь?<br />Реально нужно начинать делать новый скрипт уже сегодня, размеры благадарности обсуждаются, пишите в личку. <br />
			<i>15.11.2022 11:09:43, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66812/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66812/topic7741/</guid>
			<pubDate>Tue, 15 Nov 2022 11:09:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите написать скрипт на актуальном языке Lua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66776/topic7741/">Помогите написать скрипт на актуальном языке Lua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Надеюсь на помнимание, задачу ныжно делать прямо сейчас а скрипт на qpile перестал работать.<br />Помогите создать минимальный скрипт в стиле &quot;Привет мир&quot; на Lua<br /><br />Нужно выгрузить из Квика 9.7.1.10 котировку например акции газпрома &nbsp;с округлением до десятой доли после точки.в тектовый файл.<br /><br />В полученном файлу будет одна строка.<br /><br />GAZP 168.1<br /><br />Нужно что бы обновлялось (перезаписывалось раз в 10-30 секунд)<br /><br />Дальше я уже додумаю как дописать и другие интрументы. <br />
			<i>14.11.2022 14:29:32, Forbius.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66776/topic7741/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66776/topic7741/</guid>
			<pubDate>Mon, 14 Nov 2022 14:29:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
