<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; Вызов CreateDataSource только для изменения цены]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=397&amp;type=atom" />
	<updated>2022-10-07T06:27:56Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=397</id>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3792#p3792" />
			<content type="html"><![CDATA[<p>Если в процессе торговли произошел дисконект, до данные в ds поступать не будут<br />Нужно закрыть ds и запросить заново</p>]]></content>
			<author>
				<name><![CDATA[kalikazandr]]></name>
				<uri>https://quik2dde.ru/profile.php?id=208</uri>
			</author>
			<updated>2022-10-07T06:27:56Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3792#p3792</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3761#p3761" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-05T07:06:41Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3761#p3761</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3760#p3760" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[dark184]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3309</uri>
			</author>
			<updated>2022-10-05T06:54:15Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3760#p3760</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3759#p3759" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-05T06:41:34Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3759#p3759</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3758#p3758" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[dark184]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3309</uri>
			</author>
			<updated>2022-10-05T06:25:55Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3758#p3758</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3754#p3754" />
			<content type="html"><![CDATA[<p>1. Если данные в терминале уже есть (например, открыт точно такой же график) - оттуда данные и возьмутся. Если данных нет - будут запрошены с сервера брокера.<br />2. Да, насколько я понимаю. Так же еще см. SetUpdateCallback<br />3. Нет. Только все.<br />4. Это не понял.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-05T06:04:44Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3754#p3754</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3752#p3752" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[dark184]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3309</uri>
			</author>
			<updated>2022-10-05T05:55:26Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3752#p3752</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3744#p3744" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-04T17:56:46Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3744#p3744</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3695#p3695" />
			<content type="html"><![CDATA[<p>А как взять текущее ?<br />Как я понял, в callback при ходит таблица сначала заполенная только исторчиескими свечами и только&nbsp; после того, как callback вызовется столько раз - сколько размер у этой таблице, то только после этого в таблицу добавляются - уже измененные/текущие данные.</p>]]></content>
			<author>
				<name><![CDATA[Serg_]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3371</uri>
			</author>
			<updated>2022-10-01T16:28:43Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3695#p3695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3694#p3694" />
			<content type="html"><![CDATA[<p>Можно взять текущее (или другое нужное время) и не обрабатывать свечки до этого момента внутри callback-функции.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-01T16:11:22Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3694#p3694</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Вызов CreateDataSource только для изменения цены]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3693#p3693" />
			<content type="html"><![CDATA[<p>Подскажите, я правильно понимаю, что вызвать CreateDataSource - только для получения данных при изменении цены - не получится ?</p><p>Просто есть проблемка, если я вызываю CreateDataSource и SetUpdateCallback - и если запрашиваемые данные не подгружены в quik, то прежде, чем в callback начнут приходить измененные данные, сначала этот callback вызовется пару тысяч раз для исторических свечей и как их отделять от реальной текущей цены, что то не понятно.</p>]]></content>
			<author>
				<name><![CDATA[Serg_]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3371</uri>
			</author>
			<updated>2022-09-30T16:07:46Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3693#p3693</id>
		</entry>
</feed>
