<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Не срабатывает колбек OnTrade]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Не срабатывает колбек OnTrade форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 23 Apr 2026 19:49:06 +0300</pubDate>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40199/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_suCZjs23" href="/user/54/" bx-tooltip-user-id="54">Старатель</a>, вроде заработало, спасибо)<br />Вначале думал обнулять абсолютно все переменные после выставления стопа и ухода в спячку, но набросал код и всё вроде работало как надо по алгоритму, возникла только эта проблема с запаздывающей на 1 цикл ценой сделки. Думал тут проблема сложнее... В общем мне ещё экспериментировать и экспериментировать)) <br />
			<i>17.10.2019 13:07:16, AAlex.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40199/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40199/topic2821/</guid>
			<pubDate>Thu, 17 Oct 2019 13:07:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40197/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Значения глобальных переменных, таких как, Status_Order, State_Order, Num_Order, удалять надо перед началом нового цикла. <br />
			<i>17.10.2019 12:02:35, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40197/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40197/topic2821/</guid>
			<pubDate>Thu, 17 Oct 2019 12:02:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40193/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Тоже напоролся на некоторое непонимание работы OnTrade. Требуется совет) Не работает колбек.<br /><br />В моём роботе в OnTrade в переменную записывается цена рыночной покупки из main.<br />В main идёт покупка по рынку и выставление стопа (цена совершенной сделки из переменной в онтрейд минус 0,5, к примеру), далее sleep пока текущая чистая позиция не = 0.<br /> <br />В итоге первый цикл получается как и задумано (покупка по рынку-&gt;срабатывает онтрейд и фиксирует цену сделки-&gt;выставляется стоп с учётом этой цены), а каждый следующий цикл main для выставления стопа берётся не текущая цена из онтрейд, а цена из предыдущего цикла. Будто ontrade перестаёт работать как колбек, а начинается работать последовательно после цикла main. <br />Хотя вставлял сообщение при вызове онтрейд и там в середине цикла в переменную записывается текущая цена, т.е. всё ОК. А вот в мейне почему-то отображается цена из предыдущего цикла.<br /><br />Причем переменные, хранящие цену делал и локальными и глобальными, разницы нет.<br /><br />
====code====
<pre>local ID_Order = 1001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--id ордера
local Status_Order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--id статуса ордера
local Num_Order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--номер ордера
local State_Order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--id проверки статуса заявки для OnOrder

Price_Stop = 0
Trade_Price = 0
&nbsp;&nbsp;&nbsp;
local classcod = ".."
local seccod = ".."
local Depo = "..."

is_run = true

function OnStop()
&nbsp;&nbsp;is_run = false
&nbsp;&nbsp;return 500
end



function OnTransReply(order)
&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;order.trans_id == ID_Order then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status_Order = order.status
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Num_Order = order.order_num
&nbsp;&nbsp;&nbsp;end
end



function OnOrder(order)
&nbsp;&nbsp;&nbsp;if Num_Order == order.order_num then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if bit.band(order.flags, 0x1) == 0 and bit.band(order.flags, 0x2) == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;State_Order = "Исполнена"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
end



function OnTrade(trade)
&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;trade.order_num == Num_Order then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Trade_Price = trade.price
&nbsp;&nbsp;&nbsp;end
end



function main()
&nbsp;&nbsp;&nbsp;while is_run do&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if getItem("FUTURES_CLIENT_HOLDING",0).totalnet == 0&nbsp;&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--покупка по рынку, если позиция пуста
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local MarketOrderBuy = {&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"ACTION"&#93; = "NEW_ORDER",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"ACCOUNT"&#93; = Depo,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"OPERATION"&#93; = "B",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"CLASSCODE"&#93; = classcod,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"SECCODE"&#93; = seccod,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"PRICE"&#93; = "0",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"QUANTITY"&#93; = "1",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"TRANS_ID"&#93; = tostring(ID_Order),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;"TYPE"&#93; = "M",
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Err_Order = sendTransaction(MarketOrderBuy)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while Status_Order == nil and Err_Order == "" do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Status_Order == 3 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while State_Order ~= "Исполнена" do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&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;message("Покупка по рынку исполнена")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Price_Stop = Trade_Price - 0.5
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- здесь высталвение стопа с учетом Price_Stop
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(5000)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ID_Order = ID_Order + 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--смена id ордера для следующей сделки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(5000)
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;sleep(10)
end
</pre>
============= <br />
			<i>17.10.2019 11:01:39, AAlex.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40193/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40193/topic2821/</guid>
			<pubDate>Thu, 17 Oct 2019 11:01:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24790/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_57X8lK1v" href="/user/4695/" bx-tooltip-user-id="4695">Дмитрий Косолапов</a> написал:<br />
====code====
<pre> -- выводим сообщение 
 function&nbsp;&nbsp; OnTrade (trade_data)
&nbsp;&nbsp;&nbsp;&nbsp; message ( 'da' )
 end 
&nbsp;&nbsp;</pre>
=============
Нет сообщение при тике.<br />=============<br />message( 'da', 1 or 2 or 3 ) <br />
			<i>22.05.2017 14:43:05, vgi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24790/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24790/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 14:43:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24788/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_QXQ6Ko3T" href="/user/4695/" bx-tooltip-user-id="4695">Дмитрий Косолапов</a>, <br /><br />Откройте таблицу обезличенных сделок и данные появятся. <br />
			<i>22.05.2017 14:03:07, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24788/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24788/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 14:03:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24787/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			И при использовании OnAllTrade то же сообщений нет, ошибок при работе скрипта то же нет. Функция message работает в калбеке OnAllTrade? <br />
			<i>22.05.2017 13:56:45, Дмитрий Косолапов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24787/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24787/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 13:56:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24786/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_z5yu6xg9" href="/user/4695/" bx-tooltip-user-id="4695">Дмитрий Косолапов</a>, <br />OnTrade срабатывает тогда когда происходит Ваша сделка.<br />Если требуется смотреть тики, это OnAllTrade <br />
			<i>22.05.2017 13:53:29, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24786/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24786/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 13:53:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24785/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я ведь правильно понимаю, что OnTrade калбек срабатывает тогда, когда создается новый тик? <br />
			<i>22.05.2017 13:51:00, Дмитрий Косолапов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24785/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24785/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 13:51:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не срабатывает колбек OnTrade</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message24784/topic2821/">Не срабатывает колбек OnTrade</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Исходный код:<br />
====code====
<pre>is_run = true

-- вызывается при нажатии кнопки "остановить" в диалоге
function OnStop(signal)
&nbsp;&nbsp;&nbsp;stopped = true
end

-- крутится в отдельном потоке, ничего не делает
function main()
&nbsp;&nbsp;&nbsp;while not stopped do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;end
end

-- выводим сообщение
function OnTrade(trade_data)
&nbsp;&nbsp;&nbsp;&nbsp;message('da')
end
</pre>
=============
<br /><br />Нет сообщение при тике. Вот окно терминала: <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=2102&" width="1819" height="1079" /><br /><i>22.05.2017 13:49:47, Дмитрий Косолапов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message24784/topic2821/</link>
			<guid>http://forum.quik.ru/messages/forum10/message24784/topic2821/</guid>
			<pubDate>Mon, 22 May 2017 13:49:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
