<?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-функций в QLua]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=100</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=100&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Исследование порядка вызовов Callback-функций в QLua».]]></description>
		<lastBuildDate>Tue, 09 Feb 2016 07:27:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1968#p1968</link>
			<description><![CDATA[<p><strong>CyberTrader</strong>, если наберете и выложите короткий код с указанным проблемным участком, приводящий к таким падениям терминала, попробуем разобраться вместе.</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Tue, 09 Feb 2016 07:27:06 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1968#p1968</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1957#p1957</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><p>2) qvcl v.0.5.0 rev.2 при многократных запусках часто падает. [url=https://quik2dde.ru/viewtopic.php?pid=929#p929]Решение[/url] не сильно помогает: падения происходят на mainForm:Show(), особенно если выдержать паузу между запусками скрипта.</p></blockquote></div><p>Как я отмечал, при повторных запусках падения происходят на mainForm:Show(). Всегда. Т.е., если скрипт падает, то только на mainForm:Show(). Если этот этап пройден, то до дальнейшего перезапуска скрипт будет работать.<br />Причём это не зависит от метода остановки скрипта: я сделал вызов формы только по требованию, когда форма более не нужна, то уничтожается mainForm:Release(). Т.е., форма уничтожается задолго до остановки скрипта.<br />Видимо, при остановке скрипта происходит кривая выгрузка QVCLua, но не из-за закрытия формы.</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Mon, 08 Feb 2016 16:41:15 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1957#p1957</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1840#p1840</link>
			<description><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Неправильное обращение с библиотекой.</p></blockquote></div><p>может вы и правы...<br />А вы можете показать функции OnClose формы, OnStop и main, что касается закрытия окна?</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Fri, 04 Dec 2015 19:50:02 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1840#p1840</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1839#p1839</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><p>2) qvcl v.0.5.0 rev.2 при многократных запусках часто падает.</p></blockquote></div><p>Неправильное обращение с библиотекой. У меня всё стабильно на куче скриптов. Win7 64</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Thu, 03 Dec 2015 12:57:20 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1839#p1839</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1837#p1837</link>
			<description><![CDATA[<p>Как я не пытался &quot;оптимизировать&quot; код под vcl результаты такие:</p><p>1) Оригинальная vclua v.0.3.5 ведёт себя крайне нестабильно: падает в любое время и в любом месте.<br />Смотрел скрипты других авторов: хоть QUIK и не крашит, но бывают зависания.</p><p>2) qvcl v.0.5.0 rev.2 при многократных запусках часто падает. [url=https://quik2dde.ru/viewtopic.php?pid=929#p929]Решение[/url] не сильно помогает: падения происходят на mainForm:Show(), особенно если выдержать паузу между запусками скрипта.</p><div class="quotebox"><cite>mbul пишет:</cite><blockquote><p>Можно предусмотреть в VCLua какой-нибудь финализатор?</p></blockquote></div><p>Может, действительно предусмотреть какую-то финализирующую функцию vcl:Close(), которая передавала бы управление другому оператору, только когда все действия с окнами vcl завершены?</p><p>3) &quot;Хакнутая&quot; qvcl от [url=https://quik2dde.ru/profile.php?id=89]Михаила[/url] работает более-менее стабильно. Падает иногда при работе с DateEdit.</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Wed, 02 Dec 2015 09:21:40 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1837#p1837</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1823#p1823</link>
			<description><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Нет, в этом случае самогенерируются уникальные имена.</p></blockquote></div><p>Уточню, это &quot;ноу-хау&quot; 5-й версии vcl<br />В 3.х версии имена обязательно требовалось задавать.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Sun, 29 Nov 2015 19:35:51 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1823#p1823</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1821#p1821</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><p>Может ли скрипт падать из-за того, что для контролов не указывается параметр Name?</p></blockquote></div><p>Нет, в этом случае самогенерируются уникальные имена. Запустите несколько раз:</p><div class="codebox"><pre><code>vcl = require &quot;qvcl&quot;
Form=vcl.Form({})
message(Form.Name)
Form:Release()</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Fri, 27 Nov 2015 21:48:06 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1821#p1821</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1819#p1819</link>
			<description><![CDATA[<p>Может ли скрипт падать из-за того, что для контролов не указывается параметр Name?</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Fri, 27 Nov 2015 20:14:16 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1819#p1819</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1811#p1811</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Посмотрел, да, действительно, номер ловлю в OnTransReply()</p></blockquote></div><p><img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" />&nbsp; А вы не думали, как поведёт себя ваш робот, если OnTrade получит раньше, чем OnTransReply? Или в OnTransReply не будет номера заявки (на форуме QUIK, вроде, такая информация проскакивала)?</p></blockquote></div><p>После всех подобных ситуаций боты останавливаются и переходят в emergensy секцию, звучит сигнал, привлекающий внимание.</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Wed, 25 Nov 2015 18:15:19 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1811#p1811</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1810#p1810</link>
			<description><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Посмотрел, да, действительно, номер ловлю в OnTransReply()</p></blockquote></div><p><img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" />&nbsp; А вы не думали, как поведёт себя ваш робот, если OnTrade получит раньше, чем OnTransReply? Или в OnTransReply не будет номера заявки (на форуме QUIK, вроде, такая информация проскакивала)?</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Mon, 23 Nov 2015 14:24:41 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1810#p1810</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1809#p1809</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>1. отправляю транзакцию, сразу получаю ответ в переменную<br /></p><div class="codebox"><pre><code>res = sendTransaction(transact)</code></pre></div><p>res парсю на наличие серверного номера заявки</p></blockquote></div><p>sendTransaction ведь не даёт номер заявки. При успешной отправке транзакции в sendTransaction будет пустая строка.</p></blockquote></div><p>Посмотрел, да, действительно, номер ловлю в OnTransReply()</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Mon, 23 Nov 2015 14:19:33 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1809#p1809</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1808#p1808</link>
			<description><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>1. отправляю транзакцию, сразу получаю ответ в переменную<br /></p><div class="codebox"><pre><code>res = sendTransaction(transact)</code></pre></div><p>res парсю на наличие серверного номера заявки</p></blockquote></div><p>sendTransaction ведь не даёт номер заявки. При успешной отправке транзакции в sendTransaction будет пустая строка.</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Mon, 23 Nov 2015 12:45:18 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1808#p1808</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1807#p1807</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><p>В main идёт анализ<br /></p><div class="codebox"><pre><code>if OnTradeDo(ontrades[1]) ~= false then</code></pre></div><p>была ли обработана сделка функцией OnTradeDo<br /></p><div class="codebox"><pre><code>if &lt;условие&gt; then
    return false  -- Если нужных данных в терминале ещё нет, то идём на штрафной круг
end</code></pre></div><p>Если не была, то идём на следующий круг с этой сделкой, пока не обработаем её.<br />Т.к. информация в терминал поступает не синхронно, то возможна ситуация, когда не получена вся необходимая информация из других колбэков для анализа сделки.</p></blockquote></div><p>Про несинхронность в курсе, поэтому, как уже писал выше, я использую после транзакции только один колбэк - OnTrade. Там всё и обрабатываю. Только событийность, никаких &quot;кругов&quot;.<br />Для встречи сделок уже упакованы данные о транзакции ещё на этапе её отправки из<br /></p><div class="codebox"><pre><code>res = sendTransaction(transact)</code></pre></div><p>Пока упаковка не завершится, никакой колбэк в код не придет, это ж все в одном потоке.</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Mon, 23 Nov 2015 12:37:53 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1807#p1807</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1806#p1806</link>
			<description><![CDATA[<p><strong>GREEN_X5</strong>,<br />спасибо, уже добавил. Погоняю, посмотрю.</p>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Mon, 23 Nov 2015 12:34:45 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1806#p1806</guid>
		</item>
		<item>
			<title><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1805#p1805</link>
			<description><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Периодичные несобытийные расчеты вместо main можно перенести в таймер из библиотеки.</p></blockquote></div><p>Чё за таймер? Как использовать?</p></blockquote></div><div class="codebox"><pre><code>function Timer()
-- периодическая работа
end

tmr    = vcl.Timer(Form,{Interval=1000, Enabled=&quot;True&quot;, OnTimer=Timer})  --Interval в милисекундах</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Mon, 23 Nov 2015 12:33:31 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1805#p1805</guid>
		</item>
	</channel>
</rss>
