<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Интерактивная работа с QLua]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Интерактивная работа с QLua форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 02:09:02 +0300</pubDate>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35258/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В догонку: я так понимаю, Quik не закрывает консольные потоки ввода/вывода (иначе и под Linux/Wine бы не работало без их переоткрытия). &nbsp;Возможно проблема в <B>cmd</B>/<B>command</B>, и быть может поможет установка под Windows нормальной оболочки типа Bash. &nbsp;А может и нет... <br />
			<i>09.12.2018 15:52:58, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35258/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35258/topic3301/</guid>
			<pubDate>Sun, 09 Dec 2018 15:52:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35256/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_J1skrZTC" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />QUIK 7.23.1.4<br />Скрипт-то запускается, но сразу же останавливается.<br /> cwrite &nbsp;ничего не кажет.<br />Выходит по условию 
====code====
<pre>&nbsp;&nbsp; if&nbsp;&nbsp;stop&nbsp;&nbsp;or&nbsp;&nbsp;c&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; nil&nbsp;&nbsp; or&nbsp;&nbsp;string_match(c,&nbsp;&nbsp;"^%s*quit%s*$" )&nbsp;&nbsp;then&nbsp;&nbsp; </pre>
=============
 <br />=============<br /><br />Да, вы правы. &nbsp;Под Wine под Linux все работает (пробовал 7.14, 7.16, 7.23), но сейчас попробовал под настоящей виндой в VirtualBox - под Windows в QLua не работает даже такой простой скрипт:<br />
====code====
<pre>assert(io.write("io.write()&#92;n"))
local r = io.read()
error("io.read() returned "..tostring(r))
</pre>
=============
<B>io.write()</B> ничего не выводит (хотя и не выдает ошибку), <B>io.read()</B> ничего не читает и возвращает <B>nil</B> (пробовал и под <B>cmd</B>, и под <B>command</B>). &nbsp;Ну, как тут помочь я не знаю... <br />
			<i>09.12.2018 15:40:20, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35256/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35256/topic3301/</guid>
			<pubDate>Sun, 09 Dec 2018 15:40:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35245/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			QUIK 7.23.1.4<br />Скрипт-то запускается, но сразу же останавливается.<br /><B>cwrite</B> ничего не кажет.<br />Выходит по условию
====code====
<pre>if stop or c == nil or string_match(c, "^%s*quit%s*$") then</pre>
============= <br />
			<i>09.12.2018 02:49:35, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35245/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35245/topic3301/</guid>
			<pubDate>Sun, 09 Dec 2018 02:49:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35220/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Dr3I5tjZ" href="/user/12260/" bx-tooltip-user-id="12260">qt</a> написал:<br />Не запускался в старой версии, обновился до 7.19.0.51, все равно не запускается. Нажимаю на Запустить и остается остановленным, в логе &nbsp;пусто.<br />Проверил кодировку, запустил консоль от админа.<br />Что то доставить надо?<br /><br />=============<br />Доставлять ничего не нужно. &nbsp;У меня Quik 7.16.3.14, скрипт работает. &nbsp;Сам Quik нужно запускать из командной строки, если вы так и сделали, то в чем может быть проблема я не знаю... <br />
			<i>06.12.2018 14:55:20, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35220/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35220/topic3301/</guid>
			<pubDate>Thu, 06 Dec 2018 14:55:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35215/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не запускался в старой версии, обновился до 7.19.0.51, все равно не запускается. Нажимаю на Запустить и остается остановленным, в логе &nbsp;пусто.<br />Проверил кодировку, запустил консоль от админа.<br />Что то доставить надо?<br /><br />PS и эту тему если вариант рабочий возможно стоит прикрепить вверху, как важную. Также неплохо бы разработчикам сделать консоль штатно - это сэкономит время не только пользователям, но и техподдержке. <br />
			<i>06.12.2018 12:12:26, qt.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35215/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35215/topic3301/</guid>
			<pubDate>Thu, 06 Dec 2018 12:12:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28543/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Спасибо, ценный скрипт. <br />
			<i>06.01.2018 21:26:04, Илья.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28543/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28543/topic3301/</guid>
			<pubDate>Sat, 06 Jan 2018 21:26:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28515/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_Y4yTUU0v" href="/user/9815/" bx-tooltip-user-id="9815">kroki</a>, <br />Действительно появляется пробел.<br />Спасибо за обращение<br />Будем разбираться. <br />
			<i>29.12.2017 04:41:16, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28515/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28515/topic3301/</guid>
			<pubDate>Fri, 29 Dec 2017 04:41:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28514/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>
qlua&#62; OnPa ram = nil
qlua&#62;
</pre>
============= <br />
			<i>29.12.2017 04:40:26, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28514/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28514/topic3301/</guid>
			<pubDate>Fri, 29 Dec 2017 04:40:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28513/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_C9rY73MK" href="/user/9815/" bx-tooltip-user-id="9815">kroki</a> написал:<br />
====code====
<pre>qlua&#62; OnPa ram = nil</pre>
=============
<br />=============<br />Ага, вот такие вот пробелы и появляются - почему?! :( <br />
			<i>28.12.2017 19:17:29, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28513/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28513/topic3301/</guid>
			<pubDate>Thu, 28 Dec 2017 19:17:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Интерактивная работа с QLua</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28512/topic3301/">Интерактивная работа с QLua</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Написал себе скрипт для интерактивной работы с QLua, возможно пригодится кому-то еще (иногда бывает нужно что-то быстро попробовать не строча полноценный скрипт). &nbsp;Код лежит на <noindex><a href="https://github.com/kroki/quik-util" target="_blank" rel="nofollow">GitHub</a></noindex> (хотел разместить прямо здесь, но (по крайней мене при нажатии кнопки &quot;Просмотр&quot;) в случайных местах кода появлялись символы пробела - не понял, почему).<br /><br />Для использования запускаем Quik из командной строки. &nbsp;То есть открываем окошко для ввода команд, пишем:<br />
====code====
<pre>C:&#92;Windows&#92;system32&#62; chdir &#92;Path&#92;to&#92;Quik&#92;dir
C:&#92;Path&#92;to&#92;Quik&#92;dir&#62; info.exe</pre>
=============
Далее из Quik запускаем <B>qlua-console.lua</B>, в терминале появляется приглашение для ввода. &nbsp;Можно исполнять любой код Lua, вызывать функции QLua и определять callbacks. &nbsp;Дополнительно доступна функция <B>qluaDump(...)</B> - возвращает строковое представление переданных аргументов. &nbsp;Например:
====code====
<pre>qlua&#62; 2 + 3
5
qlua&#62; getClassesList()
'CROSSRATE,EQOB,RPMA,RPMO,EQDB,SMAL,EQQI,OQQI,INDX,TQBR,TQOB,TQQI,TQDE,SPBFUT,SPBOPT,RTSIDX,CETS,INSTR,EQRP_INFO,TQIF,TQTF,INSTRCETS,'
qlua&#62; getSecurityInfo("TQBR", "GAZP")
{ sec_code='GAZP', face_unit='SUR', class_code='TQBR', code='GAZP', scale=2, face_value=5, short_name='ГАЗПРОМ ао', lot_size=10, name='"Газпром" (ПАО) ао', min_price_step=0.01, isin_code='RU0007661625', class_name='МБ ФР: Т+ Акции и ДР', mat_date=20171220 }
qlua&#62; function OnParam(c, s) 
&nbsp;&nbsp; 2&#62; print(qluaDump(c, s, getParamEx2(c, s, "LAST")))
&nbsp;&nbsp; 3&#62; end
qlua&#62; 
</pre>
=============
и в терминал посыплются строки вида<br />
====code====
<pre>'TQBR', 'TRNFP', { param_type='1', param_value='178600.000000', result='1', param_image='178 600' }
'TQBR', 'VTBR', { param_type='1', param_value='0.046810', result='1', param_image='0,04681' }
'TQOB', 'SU24019RMFS0', { param_type='1', param_value='102.537000', result='1', param_image='102,5370' }
'CETS', 'EURUSD000TOM', { param_type='1', param_value='1.193400', result='1', param_image='1,193400' }
'TQOB', 'SU26219RMFS4', { param_type='1', param_value='102.300000', result='1', param_image='102,3000' }
'TQBR', 'SBER', { param_type='1', param_value='223.330000', result='1', param_image='223,33' }
'TQBR', 'SNGSP', { param_type='1', param_value='28.005000', result='1', param_image='28,005' }
'TQBR', 'RSTI', { param_type='1', param_value='0.820100', result='1', param_image='0,8201' }
'CETS', 'EURUSD000TOM', { param_type='1', param_value='1.193400', result='1', param_image='1,193400' }
'TQBR', 'AFLT', { param_type='1', param_value='138.950000', result='1', param_image='138,95' }
'TQBR', 'GAZP', { param_type='1', param_value='130.300000', result='1', param_image='130,30' }
'TQBR', 'HYDR', { param_type='1', param_value='0.727000', result='1', param_image='0,7270' }
</pre>
=============
<br />Для остановки callback присваиваем ему <B>nil</B> (бесстрашно вводим код пока в терминале продолжается выхлоп от OnParam - в реале, конечно, нужно в файл выводить):
====code====
<pre>qlua&#62; OnPa ram = nil
qlua&#62;
</pre>
=============
(выхлоп прекращается). &nbsp;Ну и т.д.<br /><br />Для завершения работы набираем &quot;quit&quot;:
====code====
<pre>qlua&#62; quit
qlua terminated
</pre>
=============
Если вдруг по привычке нажмете кнопку &quot;Остановить&quot;, то нужно будет в терминале нажать &lt;Enter&gt;, чтобы <B>main()</B> вышла из <B>io.stdin:read()</B> (не нашел изящного способа это побороть, не прибегая к внешним библиотекам).<br /><br />Следует заметить, что локальные переменные видны только до следующего <B>qlua&gt;</B> (они локальны внутри <B>chunk</B>), поэтому
====code====
<pre>qlua&#62; local v = 5
qlua&#62; print(v)
nil
qlua&#62;
</pre>
=============
Но:
====code====
<pre>qlua&#62; local v = 5; print(v)
5
qlua&#62; do
&nbsp;&nbsp; 2&#62; local v = 5
&nbsp;&nbsp; 3&#62; print(v)
&nbsp;&nbsp; 4&#62; end
5
qlua&#62;
</pre>
=============
Все как и в обычном интерпретаторе Lua, запущеном в интерактивном режиме. <br />
			<i>28.12.2017 19:15:00, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28512/topic3301/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28512/topic3301/</guid>
			<pubDate>Thu, 28 Dec 2017 19:15:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
