<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; Почему не полностью отрабатывает onTrade()?]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=294&amp;type=atom" />
	<updated>2019-07-17T11:34:22Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=294</id>
		<entry>
			<title type="html"><![CDATA[Re: Почему не полностью отрабатывает onTrade()?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=2389#p2389" />
			<content type="html"><![CDATA[<p>Если внутри колбека у вас ошибка, синтаксиса, например, то исключения не будет, просто на ошибке будет завершена работа функции. Проверьте свои 50 строк кода. И вообще нужно убрать весь код из колбека в main. Тогда вы и поймаете исключение, посмотрите №строки и поправите ошибку.<br />Вот эту строку измените:<br />if tostring(trade[&quot;order_num&quot;])==tostring(idOrder) then<br />на:<br />if trade.order_num == idOrder then</p><p>без надобности не нужно применять функции преобразования типов, это долгие функции. idOrder если вы получили в OnOrder, то это число и в OnTrade тоже число, вот и сравнивайте 2 числа.</p>]]></content>
			<author>
				<name><![CDATA[kalikazandr]]></name>
				<uri>https://quik2dde.ru/profile.php?id=208</uri>
			</author>
			<updated>2019-07-17T11:34:22Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=2389#p2389</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Почему не полностью отрабатывает onTrade()?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=2388#p2388" />
			<content type="html"><![CDATA[<p>Не могу понять, почему то код внутри onTrade иногда прерывается во время исполнения, а иногда исполняется полностью.<br />Я думал может потому что 50 строк кода многовато для колбэка onTrade() и следующий ответы прерывают функцию, но непонятно почему тогда самый последний, из 3, ответов не обрабатывается полностью.</p><br /><p>Вот код:<br /></p><div class="codebox"><pre><code>function OnTrade(trade)
    techLog(&quot;=====================OnTrade(): started&quot;)
    
    toLog(&quot;OnTrade(): recieved:&quot;..tostring(trade)..&quot; trade[order_num]=&quot;..tostring(trade[&quot;order_num&quot;])..&quot; idOrder=&quot;..tostring(idOrder))
    techLog(&quot;OnTrade(): recieved:&quot;..tostring(trade)..&quot; trade[order_num]=&quot;..tostring(trade[&quot;order_num&quot;])..&quot; idOrder=&quot;..tostring(idOrder))
    if tostring(trade[&quot;order_num&quot;])==tostring(idOrder) then --Это пришел трейд по нашему ордеру?
        techLog(&quot;OnTrade(tradeByRegistredOrder): started&quot;)
        --50 строк вырезанного кода
    end
    techLog(&quot;=====================OnTrade(): finish&quot;)    
end</code></pre></div><br /><p>Вот лог:<br /></p><div class="codebox"><pre><code>07/12/19 15:30:20 =====================OnTrade(): started
07/12/19 15:30:20 OnTrade(): recieved:table: 0701EBE8 trade[order_num]=36210678172 idOrder=36210678172
07/12/19 15:30:20 OnTrade(tradeByRegistredOrder): started
07/12/19 15:30:20 =====================OnTrade(): started
07/12/19 15:30:20 OnTrade(): recieved:table: 0701E878 trade[order_num]=36210678172 idOrder=36210678172
07/12/19 15:30:20 OnTrade(tradeByRegistredOrder): started
07/12/19 15:30:20 =====================OnTrade(): started
07/12/19 15:30:20 OnTrade(): recieved:table: 07012938 trade[order_num]=36210678172 idOrder=36210678172
07/12/19 15:30:20 OnTrade(tradeByRegistredOrder): started</code></pre></div><p>Причем на некоторых трейдах код работает норм и доходит до<br /></p><div class="codebox"><pre><code>=====================OnTrade(): finish</code></pre></div><p>, а на некоторых нет.</p>]]></content>
			<author>
				<name><![CDATA[SAMOKILLER]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3146</uri>
			</author>
			<updated>2019-07-17T10:21:12Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=2388#p2388</id>
		</entry>
</feed>
