<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[QUIK -> DDE &mdash; Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=414</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=414&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы».]]></description>
		<lastBuildDate>Thu, 20 Oct 2022 17:44:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3874#p3874</link>
			<description><![CDATA[<p>Все удалось победить, вот итоговый код:</p><div class="codebox"><pre><code>----------------------------------------------------------------------------------------------------
function my_callback_CreateDataSource_HISTORY_1(my_table_data_history_candle_, code_class_, code_paper_, interval_, interval_string_)

message(&quot;SIZE_TABLE:&quot; ..tostring(my_table_data_history_candle_:Size()) .. &quot;\n&quot; .. &quot;:&quot; ..  code_paper_ ..&quot;:&quot; .. interval_string_ ..&quot;:&quot; ..my_int_1)

    if code_paper_ == &quot;SBER&quot; then

    message(&quot;SBER_CLOSE&quot;)
    my_table_data_history_candle_:Close()     --Сразу отпусываемся от callback`а SBER. //callback Газпрома продолжает приходить. 

     end



end
----------------------------------------------------------------------------------------------------





------------------------------------------------int main:---------------------------------------------------

function main()


local code_class_1= &quot;TQBR&quot;          
local code_paper_1= &quot;GAZP&quot;           
local intervakla_1= INTERVAL_MN1
local intervakla_string_1 = &quot;INTERVAL_MN1&quot;



local my_table_1, error_desc_1 = CreateDataSource(code_class_1, code_paper_1, intervakla_1)  


------------------------Проверка на ошибки:-------------------
if error_desc_1 ~= nil then 
message(&quot;1:&quot; .. error_desc_1)
end
--------------------------------------------------------------

my_table_1:SetUpdateCallback(function(idx)my_callback_CreateDataSource_HISTORY_1(my_table_1, code_class_1, code_paper_1, intervakla_1, intervakla_string_1) end)






local code_class_1= &quot;TQBR&quot;          
local code_paper_1= &quot;SBER&quot;           
local intervakla_1= INTERVAL_W1
local intervakla_string_1 = &quot;INTERVAL_W1&quot;


local my_table_2, error_desc_2 = CreateDataSource(code_class_1, code_paper_1, intervakla_1) 

------------------------Проверка на ошибки:-------------------
if error_desc_2 ~= nil then 
message(&quot;2:&quot; .. error_desc_2)
end
--------------------------------------------------------------


my_table_2:SetUpdateCallback(function(idx)my_callback_CreateDataSource_HISTORY_1(my_table_2, code_class_1, code_paper_1, intervakla_1, intervakla_string_1) end)





-------------------------
while not stopped do 
sleep(1)
end 
-------------------------



end -- end main()</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 17:44:07 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3874#p3874</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3873#p3873</link>
			<description><![CDATA[<p>Так в чем беда-то была?</p><p>Одну callback-функцию удается использовать на много заказов?<br />Отписка все равно происходит по одному инструменту везде, если с разными интервалами его заказывать? или это тоже удалось победить?</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 17:16:54 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3873#p3873</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3872#p3872</link>
			<description><![CDATA[<p>Все, путем подбора разобрался.<br />Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 17:09:29 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3872#p3872</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3871#p3871</link>
			<description><![CDATA[<div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>Если для двух разных инструментов в&nbsp; SetUpdateCallbackcallback - указываю одну и ту же callback-функию, она перезаписывает предыдущий заказ.</p></blockquote></div><p>Как-то сомнительно это звучит. Либо замыкания не замыкания.</p><p>Надо воспроизводить, разбираться. Будет как-нибудь время - попробую. Теоретизировать бесполезно.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 16:36:08 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3871#p3871</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3870#p3870</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Так когда проблема починилась?<br />Когда от замыкания отказались или когда на разные инструменты подписка оформлена?</p></blockquote></div><p>Замыкание оставил, когда два разных инструмента заказал с двумя разными колбек-функиями.<br />Если для двух разных инструментов в&nbsp; SetUpdateCallbackcallback - указываю одну и ту же callback-функию, она перезаписывает предыдущий заказ.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 15:07:46 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3870#p3870</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3869#p3869</link>
			<description><![CDATA[<p>Так когда проблема починилась?<br />Когда от замыкания отказались или когда на разные инструменты подписка оформлена?</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 15:06:02 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3869#p3869</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3868#p3868</link>
			<description><![CDATA[<p>Заработало, видимо действительно было связано с тем, что для одного и того же инструмент хоть и для разных интервалов - вызов Close - отписывает сразу весь инструмент целиков в не зависимости от интервалов.</p><p>Но, теперь появилась другая проблема. Если я хочу заказать callback`и по 100 разным акциям - мне, что нужно писать имена для 100 разных callback`ов ? Потому что если указать для всех вызовов SetUpdateCallbackcallback&nbsp; - одну и туже callback-функцию, то идет &quot;перезапись&quot; акции.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 13:44:06 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3868#p3868</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3867#p3867</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Я к тому, что может тут что-то с замыканиями путается не туда.</p></blockquote></div><p>Да, но, как я тогда узнаю, для какого объекта CreateDataSource вызвался колбек, в колбек по умолчанию приходит только номер свечи.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 13:02:57 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3867#p3867</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3866#p3866</link>
			<description><![CDATA[<p>Попробуйте сделать отписку за пределами callback&#039;а. Может в этом беда?</p><p>И еще.<br />Перепишете этот тестовый код проще. Вот этот модельный код. Так, чтобы я нем не было вот этих вот замыканий. Просто назначьте нормальную функцию в качестве callback&#039;а. Вам для именно данного эксперимента замыкания совершенно не требуются, можно вызывать :close()&nbsp; прямо на нужном dataset&#039;е, все равно у вас две разные функции для&nbsp; callback&#039;ов в данном примере.<br />Я к тому, что может тут что-то с замыканиями путается не туда.</p><p>Еще вариант: в приведенном примере вы подписываетесь на разные интервалы одного инструмента. Может именно в таком стечении обстоятельств в терминале баг? попробуйте сделать подписку на 2 разных инструмента и повторите эксперимент.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 12:16:33 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3866#p3866</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3865#p3865</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>НО отписка осуществляется и для таблицы my_table_1</p></blockquote></div><p>А как вы это определили?<br />А если <strong>убрать</strong> вызовы :<strong>close </strong> из callbac&#039;ов - точно оба callbac&#039;а будут вызываться? (возможно много раз, но главное оба или нет)</p><p>Практического смысла задачи я не понимаю совсем.<br />Получить параметры одной единственной какой-то самой старой свечи - и все? зачем?</p></blockquote></div><p>Если я убираю Close - то вызываются оба callback`а.<br />Практические применение банальное: предположим я заказал колбеки на изменение цены для 100 акций, и в какой то момент - мне больше не нужно получать изменение цены к примеру по Газпрому. Я вызываю Close для обьекта Газпрома - но происходит отписка и от остальных 99 акций.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:49:04 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3865#p3865</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3864#p3864</link>
			<description><![CDATA[<div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>НО отписка осуществляется и для таблицы my_table_1</p></blockquote></div><p>А как вы это определили?<br />А если <strong>убрать</strong> вызовы :<strong>close </strong> из callbac&#039;ов - точно оба callbac&#039;а будут вызываться? (возможно много раз, но главное оба или нет)</p><p>Практического смысла задачи я не понимаю совсем.<br />Получить параметры одной единственной какой-то самой старой свечи - и все? зачем?</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:38:46 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3864#p3864</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3863#p3863</link>
			<description><![CDATA[<p>Сорри, что-то я уже совсем специфически всё читаю <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:22:43 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3863#p3863</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3862#p3862</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>При этом вашу идею, которую вы хотите реализовать, на основании этого С++ кода я лично никак не могу понять. Смотрел тему уже несколько раз, но увы. Потому и ответов нет.</p></blockquote></div><p>Разве там есть С++ код ? <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:20:58 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3862#p3862</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3861#p3861</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Предлагаю обсуждать эту общую проблему на примере Lua-кода, демонстрирующего такую же проблему.<br />Если у вас есть Lua-код, где происходит тоже самое - приведите его. Возможно окажется, что это просто ошибка терминала.<br />.</p></blockquote></div><p>Этот код в самом пером сообщении. Это чисто Lua код - без с++.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:19:54 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3861#p3861</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отписка callback`а SetUpdateCallbackcallback - отписывает ВСЕ заказы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3860#p3860</link>
			<description><![CDATA[<p>Предлагаю обсуждать эту общую проблему на примере Lua-кода, демонстрирующего такую же проблему.<br />Если у вас есть Lua-код, где происходит тоже самое - приведите его. Возможно окажется, что это просто ошибка терминала.</p><p>Объясню. Возможны два варианта:<br />1) Ошибка в Lua API терминала<br />2) Ошибка в переложении кода Lua на С++.</p><p>Если первое - то тут уже ничем не поможешь, только ждать исправления от разработчиков либо модифицировать код так, чтобы он работал.<br />Если второе - то имея перед глазами корректно работающий Lua-код проще будет найти ошибку в переложении.</p><p>Копаться в С++ коде, тем более в котором вы весьма творчески используете вызовы Lua-API - слишком бесперспективное занятие.<br />При этом вашу идею, которую вы хотите реализовать, на основании этого С++ кода я лично никак не могу понять. Смотрел тему уже несколько раз, но увы. Потому и ответов нет.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 20 Oct 2022 08:00:44 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3860#p3860</guid>
		</item>
	</channel>
</rss>
