<?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; Вызов CreateDataSource только для изменения цены]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=397</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=397&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вызов CreateDataSource только для изменения цены».]]></description>
		<lastBuildDate>Fri, 07 Oct 2022 06:27:56 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3792#p3792</link>
			<description><![CDATA[<p>Если в процессе торговли произошел дисконект, до данные в ds поступать не будут<br />Нужно закрыть ds и запросить заново</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Fri, 07 Oct 2022 06:27:56 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3792#p3792</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3761#p3761</link>
			<description><![CDATA[<p>Дело даже не в оптимизации.<br />А в том, что в вашем коде есть, судя по коду, как минимум 2 разных места формирования имени индикатора. Захотите поменять - придётся править 2 места (или одно забудется). В поддержке надёжнее, в общем, такой код <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><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>Wed, 05 Oct 2022 07:06:41 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3761#p3761</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3760#p3760</link>
			<description><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><div class="codebox"><pre><code>message(&quot;Добавь индикатор RSI и присвой ему идентификатор &quot; .. Ident_RSI, 3)</code></pre></div></blockquote></div><p>Согласен, в качестве оптимизации надо принять к сведению <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> А так записи идентичны, только ваша более читабельна и чуть чуть быстрее выполняется <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />Спасибо, значит будем пробовать и оптимизировать.</p>]]></description>
			<author><![CDATA[null@example.com (dark184)]]></author>
			<pubDate>Wed, 05 Oct 2022 06:54:15 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3760#p3760</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3759#p3759</link>
			<description><![CDATA[<div class="quotebox"><cite>dark184 пишет:</cite><blockquote><p>message(&quot;Добавь индикатор RSI и присвой ему идентификатор &quot; .. SEC .. &quot;_RSI.&quot;,3)</p></blockquote></div><div class="codebox"><pre><code>message(&quot;Добавь индикатор RSI и присвой ему идентификатор &quot; .. Ident_RSI, 3)</code></pre></div><div class="quotebox"><cite>dark184 пишет:</cite><blockquote><p>Мне интересно, прокатит ли этот фокус с графиком цены? Это не так удобно как с CreateDataSource, но все же...</p></blockquote></div><p>Не важно с какого графика получать данные, принципы работы одинаковы.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Wed, 05 Oct 2022 06:41:34 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3759#p3759</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3758#p3758</link>
			<description><![CDATA[<p>2. SetUpdateCallback с этим мозг вывихнул <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Вроде и понятно, но судя по этой теме, колбэк будет вызываться 3000 раз при первом запуске скрипта, перед тем как я получу нужную мне свечу <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />4. Как пример, с индикатором RSI я работаю так<br /></p><div class="codebox"><pre><code>    local count = getLinesCount(Ident_RSI)
    local num   = getNumCandles(Ident_RSI)
    line_RSI, num_RSI, l_RSI = getCandlesByIndex (Ident_RSI, 0, num-2, 2) 

    if (num_RSI == 0) then
        message(&quot;Добавь индикатор RSI и присвой ему идентификатор &quot; .. SEC .. &quot;_RSI.&quot;,3)
    else
        RSI = line_RSI[num_RSI-1].open
    end</code></pre></div><p>Т.е. первой строкой получаю количество линий на графике, но это скорее артефакт, так и не придумал где это знание задействовать <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Вобщем не использую.<br />Потом получаю количество свечей и исходя из этого получаю только две последние. Ну и напоминание, если индикатор не открыт, то месседж, иначе присваиваю значение для вывода в пользовательскую таблицу. Со второй свечей работаю напрямую в if then... Мне интересно, прокатит ли этот фокус с графиком цены? Это не так удобно как с CreateDataSource, но все же...</p>]]></description>
			<author><![CDATA[null@example.com (dark184)]]></author>
			<pubDate>Wed, 05 Oct 2022 06:25:55 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3758#p3758</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3754#p3754</link>
			<description><![CDATA[<p>1. Если данные в терминале уже есть (например, открыт точно такой же график) - оттуда данные и возьмутся. Если данных нет - будут запрошены с сервера брокера.<br />2. Да, насколько я понимаю. Так же еще см. SetUpdateCallback<br />3. Нет. Только все.<br />4. Это не понял.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Wed, 05 Oct 2022 06:04:44 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3754#p3754</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3752#p3752</link>
			<description><![CDATA[<p>Не стал создавать новую тему, т.к. лично у меня вопрос хоть и не совсем по теме, но очень близок.<br />Есть недопонимание работы вот этого кода:<br /></p><div class="codebox"><pre><code>    ds, Error = CreateDataSource (CLASS, SEC, INTERVAL_M5);                -- Куда запихнуть пока под вопросом.
    numPrice = ds:Size()                                                -- Получаем размер массива графика цены.

    Open    = ds:O(numPrice)
    High        = ds:H(numPrice)
    Low        = ds:L(numPrice)
    Close    = ds:C(numPrice)
    Volume    = ds:V(numPrice)</code></pre></div><p>В принципе сам код абсолютно понятен, создаем источник данных, получаем размер таблицы и пишем в переменные текущие значения. Но есть вопросы, на которые я не нашел ответа самостоятельно.<br />1. Я создаю источник данных и получаю его в ds. Лично я не уверен, но насколько я понял из справки, этой строкой я запрашиваю данные у брокера, а не беру их из графика &quot;Price&quot;?<br />2. Достаточно ли один раз создать источник данных, например в OnInit(), и далее ds будет обновляться сам или надо каждый раз ds, Error = CreateDataSource (CLASS, SEC, INTERVAL_M5)?<br />3. Могу ли я получить только нужные мне свечи, а не сразу все 3 тысячи штук? Вопрос не в том, как выбрать из ds их, именно так я и делаю сейчас, а именно в ds получить только, например, текущую и предыдущую ей свечи? Это просто вопрос оптимизации, чтобы не забивать память компа.<br />4. Честно говоря еще не испытывал, но есть мысль присвоить &quot;Price&quot; идентификатор и работать с ним как с индикаторами, но это честно говоря такой себе вариант, который имеет право на жизнь в случае невозможности реализовать это другими способами. Т.е. такой крайний вариант.</p>]]></description>
			<author><![CDATA[null@example.com (dark184)]]></author>
			<pubDate>Wed, 05 Oct 2022 05:55:26 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3752#p3752</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3744#p3744</link>
			<description><![CDATA[<div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>А как взять текущее ?</p></blockquote></div><p>Понятие несколько расплывчатое что есть &quot;текущее&quot;.<br />Но можно посмотреть, повыбирать</p><p>Из QUIK:<br />sysdate - возвращает системные дату и время <br />getInfoParam - позволяет получить параметры для информационного окна (Система / О программе / Информационное окно…) </p><p>Из стандарта Lua:<br />os.time()</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Tue, 04 Oct 2022 17:56:46 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3744#p3744</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3695#p3695</link>
			<description><![CDATA[<p>А как взять текущее ?<br />Как я понял, в callback при ходит таблица сначала заполенная только исторчиескими свечами и только&nbsp; после того, как callback вызовется столько раз - сколько размер у этой таблице, то только после этого в таблицу добавляются - уже измененные/текущие данные.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Sat, 01 Oct 2022 16:28:43 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3695#p3695</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3694#p3694</link>
			<description><![CDATA[<p>Можно взять текущее (или другое нужное время) и не обрабатывать свечки до этого момента внутри callback-функции.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Sat, 01 Oct 2022 16:11:22 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3694#p3694</guid>
		</item>
		<item>
			<title><![CDATA[Вызов CreateDataSource только для изменения цены]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3693#p3693</link>
			<description><![CDATA[<p>Подскажите, я правильно понимаю, что вызвать CreateDataSource - только для получения данных при изменении цены - не получится ?</p><p>Просто есть проблемка, если я вызываю CreateDataSource и SetUpdateCallback - и если запрашиваемые данные не подгружены в quik, то прежде, чем в callback начнут приходить измененные данные, сначала этот callback вызовется пару тысяч раз для исторических свечей и как их отделять от реальной текущей цены, что то не понятно.</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Fri, 30 Sep 2022 16:07:46 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3693#p3693</guid>
		</item>
	</channel>
</rss>
