<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; Исследование порядка вызовов Callback-функций в QLua]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=100&amp;type=atom" />
	<updated>2016-02-09T07:27:06Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=100</id>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1968#p1968" />
			<content type="html"><![CDATA[<p><strong>CyberTrader</strong>, если наберете и выложите короткий код с указанным проблемным участком, приводящий к таким падениям терминала, попробуем разобраться вместе.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2016-02-09T07:27:06Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1968#p1968</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1957#p1957" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2016-02-08T16:41:15Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1957#p1957</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1840#p1840" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Неправильное обращение с библиотекой.</p></blockquote></div><p>может вы и правы...<br />А вы можете показать функции OnClose формы, OnStop и main, что касается закрытия окна?</p>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-12-04T19:50:02Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1840#p1840</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1839#p1839" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>CyberTrader пишет:</cite><blockquote><p>2) qvcl v.0.5.0 rev.2 при многократных запусках часто падает.</p></blockquote></div><p>Неправильное обращение с библиотекой. У меня всё стабильно на куче скриптов. Win7 64</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-12-03T12:57:20Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1839#p1839</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1837#p1837" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-12-02T09:21:40Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1837#p1837</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1823#p1823" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Нет, в этом случае самогенерируются уникальные имена.</p></blockquote></div><p>Уточню, это &quot;ноу-хау&quot; 5-й версии vcl<br />В 3.х версии имена обязательно требовалось задавать.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-11-29T19:35:51Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1823#p1823</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1821#p1821" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-11-27T21:48:06Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1821#p1821</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1819#p1819" />
			<content type="html"><![CDATA[<p>Может ли скрипт падать из-за того, что для контролов не указывается параметр Name?</p>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-11-27T20:14:16Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1819#p1819</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1811#p1811" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-11-25T18:15:19Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1811#p1811</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1810#p1810" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-11-23T14:24:41Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1810#p1810</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1809#p1809" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-11-23T14:19:33Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1809#p1809</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1808#p1808" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-11-23T12:45:18Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1808#p1808</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1807#p1807" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-11-23T12:37:53Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1807#p1807</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1806#p1806" />
			<content type="html"><![CDATA[<p><strong>GREEN_X5</strong>,<br />спасибо, уже добавил. Погоняю, посмотрю.</p>]]></content>
			<author>
				<name><![CDATA[CyberTrader]]></name>
				<uri>https://quik2dde.ru/profile.php?id=248</uri>
			</author>
			<updated>2015-11-23T12:34:45Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1806#p1806</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Исследование порядка вызовов Callback-функций в QLua]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1805#p1805" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-11-23T12:33:31Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1805#p1805</id>
		</entry>
</feed>
