<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Не работает снятие активных стоп-заявок]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Не работает снятие активных стоп-заявок форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 03:24:33 +0300</pubDate>
		<item>
			<title>Не работает снятие активных стоп-заявок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message14608/topic1608/">Не работает снятие активных стоп-заявок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br />Lua - это регистозависимый язык. Большие или маленькие буквы в именах переменных имеют значения.<br />У Вас в коде встречается "transaction" и "Transaction", это разные переменные, хотя и не должны такими быть. <br />
			<i>28.03.2016 10:28:34, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message14608/topic1608/</link>
			<guid>http://forum.quik.ru/messages/forum10/message14608/topic1608/</guid>
			<pubDate>Mon, 28 Mar 2016 10:28:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает снятие активных стоп-заявок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message14587/topic1608/">Не работает снятие активных стоп-заявок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте!<br />Имеется активная стоп-заявка, которую необходимо программно снять из LUA-скрипта.<br />С этой целью была адаптирована найденная на просторах Интернета функция. Поскольку, как тут уже писали представители техподдержки, сразу &nbsp;все активные стоп-заявки из LUA снять нельзя (KILL_ALL_STOP_ORDERS в LUA не поддерживается), приходится перебирать все стоп-заявки, отыскивать из них по флагу активные, получать их номер и по этому номеру уничтожать. Поиск нужных заявок и получение их номера работает, а транзакция их удаления по этому номеру - нет.
====code====
<pre>is_run&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Флаг работы главного цикла программы
TRADE_ACC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "SSSSSSSSSSS";&nbsp;&nbsp;&nbsp;&nbsp; -- Торговый счет
CLASS_CODE_FUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "SPBFUT";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Класс ФЬЮЧЕРСОВ
SEC_CODE_FUT_FOR_OPEN&nbsp;&nbsp; = "SiM6";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Код ФЬЮЧЕРСА для открытия

function main()
&nbsp;&nbsp; while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; killStopOrders(SEC_CODE_FUT_FOR_OPEN);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(5000); 
&nbsp;&nbsp; end;
end;

function killStopOrders( seccode )
&nbsp;&nbsp; local transaction,bs,res={},{},""
&nbsp;&nbsp; for i=0,(tonumber(getNumberOf("stop_orders"))-1) do&nbsp;&nbsp; 
&nbsp;&nbsp; bs=getItem("stop_orders",i)
 if bit.band(bs.flags, 1)~=0&nbsp;&nbsp;and bs.seccode==seccode then
 message("Попытка удалить&nbsp;&nbsp;заявку с номером "..tostring(bs.ordernum));
&nbsp;&nbsp;&nbsp;local transaction={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"TRANS_ID"&#93;=tostring(math.random(1,9999)),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"ACTION"&#93;="KILL_STOP_ORDER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"CLASSCODE"&#93;=CLASS_CODE_FUT,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"SECCODE"&#93;=SEC_CODE_FUT_FOR_OPEN,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"STOP_ORDER_KEY"&#93;=tostring(bs.ordernum),
&nbsp;&nbsp;&nbsp;-- &nbsp;&nbsp;&nbsp;&#91;"ACCOUNT"&#93;&nbsp;&nbsp;&nbsp;&nbsp;= TRADE_ACC,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;-- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; local Result = sendTransaction(Transaction);
&nbsp;&nbsp; if Result ~= "" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Удаление стоп-заявки не удалось!&#92;nОШИБКА: "..tostring(Result));
&nbsp;&nbsp; end; 
&nbsp;&nbsp;end;
&nbsp;&nbsp; end;
end;
</pre>
=============
Подскажите пожалуйста, что еще можно сделать или как вообще еще возможно удалить активные стоп-заявки из LUA? <br />
			<i>25.03.2016 20:46:46, Виталий Крутский.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message14587/topic1608/</link>
			<guid>http://forum.quik.ru/messages/forum10/message14587/topic1608/</guid>
			<pubDate>Fri, 25 Mar 2016 20:46:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
