<?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; Lua. Выгрузить свечи в файл.]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=149</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=149&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Lua. Выгрузить свечи в файл.».]]></description>
		<lastBuildDate>Wed, 29 Apr 2015 15:46:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1280#p1280</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>А какой формат у этой таблицы? Т.е как обратиться например к Hight свечи?</p></blockquote></div><p>а вот выше посмотрите ))<br />local bar = t[20]--20 свеча в таблице по счету,<br />key = datetime, open, high, low, close, volume<br />local high = bar.high</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Wed, 29 Apr 2015 15:46:37 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1280#p1280</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1279#p1279</link>
			<description><![CDATA[<div class="quotebox"><cite>kalikazandr пишет:</cite><blockquote><div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Хотя бы как из Quik в LUA забрать значения свечек минуток сразу?</p></blockquote></div><p>local n = getNumCandles(ind)--кол-во свечек, где ind = идентификатор графика<br />local t, res, _ = getCandlesByIndex (ind, 0, 0, n)--получаем все свечи<br />или так:<br />local t, res, _ = getCandlesByIndex (ind, 0, n - 500, 500)--получить последние 500 свечей (для справки)</p><p>--t - таблица со свечками, res - длина таблицы, _ - легенда (подпись) графика<br />--t[0] - первая свеча<br />--t[res-1] - последняя свеча<br />если проделать такой трюк: <br />t[0] = nil, <br />то получим обычный массив Lua и скорость работы с таблицей чуть увеличится, но вы этого не заметите ))</p></blockquote></div><br /><p>А какой формат у этой таблицы? Т.е как обратиться например к Hight свечи?</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 29 Apr 2015 15:42:07 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1279#p1279</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1278#p1278</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Следующим шагом понять, как сделать чтобы робот дозаписывал в файл только новые данные. Два раза в сутки например.</p></blockquote></div><p>нзч.<br />а зачем? если не лень, откройте все интересующие вас графики, пропишите идентификатор (пару часов убъете, если много инструментов и разные тайм фреймы)<br />и что-то вроде этого:<br /></p><div class="codebox"><pre><code>local table_remove, string_len = table.remove, string.len
local FTEXT = function (V)
    V=tostring (V)
    if string_len (V) == 1 then V = &quot;0&quot;.. V end
    return V  
end
---------------------------------------
local path = getScriptPath ()
s_list = {SBER,GAZP,GMKN}
ind_list = {SBER = ind1, GAZP = ind2, GMKN = ind3}
---------------------------------------
local findStartDayBar =  function (ind)
  local t, res, _ = getCandlesByIndex (ind, 0, getNumCandles(ind) - 500, 500)--500 свечей достаточно
  t[0] = nil--делаю массив из t
  local tt = t
  for i = 1, #tt do
    local bar = tt[i]
    local datetime = bar.datetime
    if datetime.hour + 0 = 10 then break end
    table_remove (t,i)--удаляю свечи вчерашнего дня
  end
  return t--возвращаю с 100000 -вым баром в качестве первого
end

for i = 1, #s_list do
  local sec = s_list[i]
  local ind = ind_list[sec]
  local tab = findStartDayBar (ind)
  local file = path..&quot;\\&quot; .. sec .. &quot;.CSV&quot;
  local f = io.open(file, &quot;a+&quot;)--в режиме до записи
  for j = 1, #tab do
    local bar = tab[j]
    local datetime = bar.datetime
    local DATE = datetime.year .. FTEXT (datetime.month) .. FTEXT (datetime.day)
    local TIME = datetime.hour .. FTEXT (datetime.min) .. &quot;00&quot; --минутки - секунды не обязательны?
    local wr = DATE .. &quot;;&quot; .. TIME .. &quot;;&quot; .. bar.open .. &quot;;&quot; .. bar.high .. &quot;;&quot; .. bar.low .. &quot;;&quot; .. bar.close
    f:write(wr)
  end
  f:flush()
end
f:close()
do message(&quot;запись завершена&quot;,2) end</code></pre></div><p>не проверял, писал прямо тут, но должно работать можно запускать в конце дня, можно добавить фильтр цены закрытия сессии. В экселе разделитель целой и дробной части поставьте &quot;точку&quot;.<br />Да, в качестве идентификатора графика удобно использовать sec_code инструмента:<br />SBER -дневной график;<br />SBERm1 - минуточный<br />тогда ind = sec .. &quot;m1&quot;</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Wed, 29 Apr 2015 15:39:06 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1278#p1278</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1274#p1274</link>
			<description><![CDATA[<p>Следующим шагом понять, как сделать чтобы робот дозаписывал в файл только новые данные. Два раза в сутки например.</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 29 Apr 2015 14:55:02 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1274#p1274</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1273#p1273</link>
			<description><![CDATA[<p>Спасибо огромное!</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 29 Apr 2015 14:53:00 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1273#p1273</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1272#p1272</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>И пока не понимаю как &quot;суммировать год, месяц, день&nbsp; и часы, минуты и секунды, чтобы представить их в двух столбцах таблицы.</p></blockquote></div><p>local FTEXT = function (V)<br />&nbsp; &nbsp; V=tostring (V)<br />&nbsp; &nbsp; if string.len (V) == 1 then V = &quot;0&quot;.. V end<br />&nbsp; &nbsp; return V&nbsp; <br />end</p><p>local bar = t[1]<br />local datetime = bar.datetime<br />local DATE = (datetime.year .. FTEXT (datetime.month) .. FTEXT (datetime.day)) + 0 --число (ГГГГММДД)<br />local DATE = datetime.year .. &quot;.&quot; .. FTEXT (datetime.month) .. &quot;.&quot; ..&nbsp; FTEXT (datetime.day) --строка (ГГГГ.ММ.ДД)<br />local TIME = (datetime.hour .. FTEXT (datetime.min) .. FTEXT (datetime.sec)) + 0 --число HHMMSS<br />local TIME = datetime.hour .. &quot;:&quot; .. FTEXT (datetime.min) .. &quot;:&quot; .. FTEXT (datetime.sec) --строка HH:MM:SS</p><p>в вашем примере аналогично, FTEXT у меня локальная, поставьте выше строк с ее использованием</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Wed, 29 Apr 2015 14:49:45 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1272#p1272</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1270#p1270</link>
			<description><![CDATA[<div class="quotebox"><cite>kalikazandr пишет:</cite><blockquote><div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Хотя бы как из Quik в LUA забрать значения свечек минуток сразу?</p></blockquote></div><p>local n = getNumCandles(ind)--кол-во свечек, где ind = идентификатор графика<br />local t, res, _ = getCandlesByIndex (ind, 0, 0, n)--получаем все свечи<br />или так:<br />local t, res, _ = getCandlesByIndex (ind, 0, n - 500, 500)--получить последние 500 свечей (для справки)</p><p>--t - таблица со свечками, res - длина таблицы, _ - легенда (подпись) графика<br />--t[0] - первая свеча<br />--t[res-1] - последняя свеча<br />если проделать такой трюк: <br />t[0] = nil, <br />то получим обычный массив Lua и скорость работы с таблицей чуть увеличится, но вы этого не заметите ))</p></blockquote></div><br /><p>Спасибо большое. А какой формат этой таблицы свечек?</p><p>Я на данный момент реализовал вот таким способом:<br />function BazToGrZap()<br />&nbsp; &nbsp; Baz = CreateDataSource(CLASS, SEC, INTERVAL_M1)<br />&nbsp; &nbsp; Raz=Baz:Size()<br />&nbsp; &nbsp; for is=1, Raz do<br />&nbsp; &nbsp; Open=Baz:O(is)<br />&nbsp; &nbsp; Hight=Baz:H(is)<br />&nbsp; &nbsp; Close=Baz:C(is)<br />&nbsp; &nbsp; Low=Baz:L(is)<br />&nbsp; &nbsp; Day=Baz:T(is).day<br />&nbsp; &nbsp; Month=Baz:T(is).month<br />&nbsp; &nbsp; Year=Baz:T(is).year<br />&nbsp; &nbsp; DateTime=<br />&nbsp; &nbsp; gridBaza:SetCell(2,is,SEC)<br />&nbsp; &nbsp; gridBaza:SetCell(3,is,Open)<br />&nbsp; &nbsp; gridBaza:SetCell(4,is,Hight)<br />&nbsp; &nbsp; gridBaza:SetCell(5,is,Low)<br />&nbsp; &nbsp; gridBaza:SetCell(6,is,Close)<br />&nbsp; &nbsp; gridBaza:SetCell(0,is,Day)<br />&nbsp; &nbsp; end&nbsp; &nbsp; </p><br /><p>И пока не понимаю как &quot;суммировать год, месяц, день&nbsp; и часы, минуты и секунды, чтобы представить их в двух столбцах таблицы.</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 29 Apr 2015 14:28:52 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1270#p1270</guid>
		</item>
		<item>
			<title><![CDATA[Re: Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1269#p1269</link>
			<description><![CDATA[<div class="quotebox"><cite>slkumax пишет:</cite><blockquote><p>Хотя бы как из Quik в LUA забрать значения свечек минуток сразу?</p></blockquote></div><p>local n = getNumCandles(ind)--кол-во свечек, где ind = идентификатор графика<br />local t, res, _ = getCandlesByIndex (ind, 0, 0, n)--получаем все свечи<br />или так:<br />local t, res, _ = getCandlesByIndex (ind, 0, n - 500, 500)--получить последние 500 свечей (для справки)</p><p>--t - таблица со свечками, res - длина таблицы, _ - легенда (подпись) графика<br />--t[0] - первая свеча<br />--t[res-1] - последняя свеча<br />если проделать такой трюк: <br />t[0] = nil, <br />то получим обычный массив Lua и скорость работы с таблицей чуть увеличится, но вы этого не заметите ))</p>]]></description>
			<author><![CDATA[null@example.com (kalikazandr)]]></author>
			<pubDate>Wed, 29 Apr 2015 14:16:12 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1269#p1269</guid>
		</item>
		<item>
			<title><![CDATA[Lua. Выгрузить свечи в файл.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1262#p1262</link>
			<description><![CDATA[<p>Суть проста- я хотел бы чтобы LUA скрипт каждый день мне выгружал свечи минутки по нужному инструменту в файл. И &quot;дозаписывал&quot; этот файл.<br />Идеально было бы например в Excel или базу данных.<br />Но для начала хотя бы в txt файл.</p><p>Плюс к этому было бы хорошо, чтобы он и внутри себя имел массив свечей минуток. Ну т.е нажал кнопку &quot;загрузить&quot;, и дальше можно внутри скрипта увидеть таблицу минуток и с ней работать.<br />Пока не могу понять с какой стороны подойти к этому вопросу.<br />Хотя бы как из Quik в LUA забрать значения свечек минуток сразу?</p>]]></description>
			<author><![CDATA[null@example.com (slkumax)]]></author>
			<pubDate>Wed, 29 Apr 2015 10:07:54 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1262#p1262</guid>
		</item>
	</channel>
</rss>
