<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=190&amp;type=atom" />
	<updated>2016-02-20T00:35:38Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=190</id>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=2011#p2011" />
			<content type="html"><![CDATA[<p>GREEN_X5, мне нужно мой шаблон робота, привести в рабочее состояние! Вы могли бы это сделать и сколько это может стоить?</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-02-20T00:35:38Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=2011#p2011</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1922#p1922" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>diksan пишет:</cite><blockquote><p>GREEN_X5, можете посмотреть где тут у меня ошибка в обновлении таблицы?<br />...<br />Заранее благодарен! извините, я только учусь программированию...</p></blockquote></div><p>Квик показывает номер строки и &quot;диагноз&quot; ошибки, в случае моего запуска я вижу - значение элемента [4].close=nil, а значит PRICE_T0 не заполнена нужными данными. Я добавляю вывод в окно Квика флаг-перехватчик проблемы, читаю после запуска, это поможет найти и исправить ошибку.</p><div class="codebox"><pre><code>...
function EditGrid()
-- PRICE
    local class_code, sec_code = CLASS_CODE, SEC_CODE
    local PRICE_tag = PRICE_ID
    local PRICE_line = getLinesCount(PRICE_tag)
    local PRICE_count = getNumCandles (PRICE_tag)
    local PRICE_T0, PRICE_N0, PRICE_L0 = getCandlesByIndex (PRICE_tag, 0, PRICE_count - 5, 5)
    
   message(&quot;type=&quot;..type(PRICE_T0)..&quot; qty=&quot;..tostring(#PRICE_T0))   --вывод в Оно сообщений Квик состояния таблицы

    if PRICE_line &gt;= 0 then
        gridTableIndicator:SetCell(1, 1, PRICE_L0)
        gridTableIndicator:SetCell(2, 1, PRICE_T0[4].close)   --Здесь Квик нашел пустое значение таблицы, nil
        ...</code></pre></div><br /><p>Я привел Вам возможный алгоритм поиска ошибок. Это не последняя Ваша ошибка (описка) в программировании, и Вам придется научиться искать их самому.<br />Что касается использования библиотеки QVCLua, мы без проблем поможем в этой теме.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2016-02-02T19:07:57Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1922#p1922</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1921#p1921" />
			<content type="html"><![CDATA[<p>GREEN_X5, можете посмотреть где тут у меня ошибка в обновлении таблицы?<br />вот код таблицы который я планирую применить:<br /></p><div class="codebox"><pre><code>require &quot;qvcl&quot;

function OnStop()
  mainForm:Release()
  is_run=false
end

is_run=true

PRICE_ID = &quot;PRICE&quot;;
INDICATOR_ID = &quot;ICHMK&quot;;
qtycandle=0

function main()
  while is_run do sleep(50) end
end

mainForm  = vcl.Form({borderStyle = &quot;bsSingle&quot;, Height = 400, Width = 1000, Caption = &quot;test&quot;, OnClose = OnStop})
gridTableIndicator = vcl.StringGrid(mainForm,{Top = 18, Left = 5, Width=950, Height = 200, ColCount = 10, RowCount = 10, FixedCols = 1, FixedRows = 1})
x={{160,100,100,100,100,100,100,100},{&quot;taleftJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;},{&quot;Индикатор&quot;,&quot;Значение (0)&quot;,&quot;Значение (-1)&quot;,&quot;Значение (-2)&quot;,&quot;Значение (-3)&quot;,&quot;Значение (-4)&quot;,&quot;№ линии&quot;,&quot;№ индикатора&quot;}}
for i=1, #x[1] do gridTableIndicator:AddCol({Width=x[1][i], Alignment=x[2][i], Title={Caption=x[3][i], Alignment=&quot;taCenter&quot;}}) end x=nil
mainForm:Show()


function EditGrid()
-- PRICE
local class_code, sec_code = CLASS_CODE, SEC_CODE
local PRICE_tag = PRICE_ID
local PRICE_line = getLinesCount(PRICE_tag)
local PRICE_count = getNumCandles (PRICE_tag)
local PRICE_T0, PRICE_N0, PRICE_L0 = getCandlesByIndex (PRICE_tag, 0, PRICE_count - 5, 5)

if PRICE_line &gt;= 0 then
gridTableIndicator:SetCell(1, 1, PRICE_L0)
gridTableIndicator:SetCell(2, 1, PRICE_T0[4].close)
gridTableIndicator:SetCell(3, 1, PRICE_T0[3].close)
gridTableIndicator:SetCell(4, 1, PRICE_T0[2].close)
gridTableIndicator:SetCell(5, 1, PRICE_T0[1].close)
gridTableIndicator:SetCell(6, 1, PRICE_T0[0].close)
gridTableIndicator:SetCell(7, 1, PRICE_line - PRICE_line + 1)
gridTableIndicator:SetCell(8, 1, 0)
end

-- INDICATOR
local class_code, sec_code = CLASS_CODE, SEC_CODE
local INDICATOR_tag = INDICATOR_ID
local INDICATOR_line = getLinesCount(INDICATOR_tag)
local INDICATOR_count = getNumCandles (INDICATOR_tag)
local INDICATOR_T0, INDICATOR_N0, INDICATOR_L0 = getCandlesByIndex (INDICATOR_tag, 0, INDICATOR_count - 5, 5)
local INDICATOR_T1, INDICATOR_N1, INDICATOR_L1 = getCandlesByIndex (INDICATOR_tag, 1, INDICATOR_count - 5, 5)
local INDICATOR_T2, INDICATOR_N2, INDICATOR_L2 = getCandlesByIndex (INDICATOR_tag, 2, INDICATOR_count - 5, 5)
local INDICATOR_T3, INDICATOR_N3, INDICATOR_L3 = getCandlesByIndex (INDICATOR_tag, 3, INDICATOR_count - 5, 5)
local INDICATOR_T4, INDICATOR_N4, INDICATOR_L4 = getCandlesByIndex (INDICATOR_tag, 4, INDICATOR_count - 5, 5)

if INDICATOR_line - 1 &gt;= 0 then
gridTableIndicator:SetCell(1, PRICE_line + 1, INDICATOR_L0)
gridTableIndicator:SetCell(2, PRICE_line + 1, INDICATOR_T0[4].close)
gridTableIndicator:SetCell(3, PRICE_line + 1, INDICATOR_T0[3].close)
gridTableIndicator:SetCell(4, PRICE_line + 1, INDICATOR_T0[2].close)
gridTableIndicator:SetCell(5, PRICE_line + 1, INDICATOR_T0[1].close)
gridTableIndicator:SetCell(6, PRICE_line + 1, INDICATOR_T0[0].close)
gridTableIndicator:SetCell(7, PRICE_line + 1, INDICATOR_line - INDICATOR_line + 1)
gridTableIndicator:SetCell(8, PRICE_line + 1, 1)
end
if INDICATOR_line - 2 &gt;= 0 then
gridTableIndicator:SetCell(1, PRICE_line + 2, INDICATOR_L1)
gridTableIndicator:SetCell(2, PRICE_line + 2, INDICATOR_T1[4].close)
gridTableIndicator:SetCell(3, PRICE_line + 2, INDICATOR_T1[3].close)
gridTableIndicator:SetCell(4, PRICE_line + 2, INDICATOR_T1[2].close)
gridTableIndicator:SetCell(5, PRICE_line + 2, INDICATOR_T1[1].close)
gridTableIndicator:SetCell(6, PRICE_line + 2, INDICATOR_T1[0].close)
gridTableIndicator:SetCell(7, PRICE_line + 2, INDICATOR_line - INDICATOR_line + 2)
gridTableIndicator:SetCell(8, PRICE_line + 2, 1)
end
if INDICATOR_line - 3 &gt;= 0 then
gridTableIndicator:SetCell(1, PRICE_line + 3, INDICATOR_L2)
gridTableIndicator:SetCell(2, PRICE_line + 3, INDICATOR_T2[4].close)
gridTableIndicator:SetCell(3, PRICE_line + 3, INDICATOR_T2[3].close)
gridTableIndicator:SetCell(4, PRICE_line + 3, INDICATOR_T2[2].close)
gridTableIndicator:SetCell(5, PRICE_line + 3, INDICATOR_T2[1].close)
gridTableIndicator:SetCell(6, PRICE_line + 3, INDICATOR_T2[0].close)
gridTableIndicator:SetCell(7, PRICE_line + 3, INDICATOR_line - INDICATOR_line + 3)
gridTableIndicator:SetCell(8, PRICE_line + 3, 1)
end
if INDICATOR_line - 4 &gt;= 0 then
gridTableIndicator:SetCell(1, PRICE_line + 4, INDICATOR_L3)
gridTableIndicator:SetCell(2, PRICE_line + 4, INDICATOR_T3[4].close)
gridTableIndicator:SetCell(3, PRICE_line + 4, INDICATOR_T3[3].close)
gridTableIndicator:SetCell(4, PRICE_line + 4, INDICATOR_T3[2].close)
gridTableIndicator:SetCell(5, PRICE_line + 4, INDICATOR_T3[1].close)
gridTableIndicator:SetCell(6, PRICE_line + 4, INDICATOR_T3[0].close)
gridTableIndicator:SetCell(7, PRICE_line + 4, INDICATOR_line - INDICATOR_line + 4)
gridTableIndicator:SetCell(8, PRICE_line + 4, 1)
end
if INDICATOR_line - 5 &gt;= 0 then
gridTableIndicator:SetCell(1, PRICE_line + 5, INDICATOR_L4)
gridTableIndicator:SetCell(2, PRICE_line + 5, INDICATOR_T4[4].close)
gridTableIndicator:SetCell(3, PRICE_line + 5, INDICATOR_T4[3].close)
gridTableIndicator:SetCell(4, PRICE_line + 5, INDICATOR_T4[2].close)
gridTableIndicator:SetCell(5, PRICE_line + 5, INDICATOR_T4[1].close)
gridTableIndicator:SetCell(6, PRICE_line + 5, INDICATOR_T4[0].close)
gridTableIndicator:SetCell(7, PRICE_line + 5, INDICATOR_line - INDICATOR_line + 5)
gridTableIndicator:SetCell(8, PRICE_line + 5, 1)
end
end

function OnParam(c,s)
    local PRICE_count = getNumCandles (PRICE_tag)
    if qtycandle~=PRICE_count then qtycandle=PRICE_count; EditGrid(); end
    local INDICATOR_count = getNumCandles (INDICATOR_tag)
    if qtycandle~=INDICATOR_count then qtycandle=INDICATOR_count; EditGrid(); end
end

OnParam()</code></pre></div><p>Заранее благодарен! извините, я только учусь программированию...</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-02-02T12:28:35Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1921#p1921</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1915#p1915" />
			<content type="html"><![CDATA[<p>Ок, спасибо, буду пробовать.</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-02-01T10:11:52Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1915#p1915</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1913#p1913" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>diksan пишет:</cite><blockquote><p>GREEN_X5, проверил работоспособность таблицы. Все работает, за исключением того, что в графе &quot;текущее значение&quot; данные в он-лайн режиме не изменяются, а стоят значения закрытия прошлой свечи. Но это одно! Главное, что хотел спросить, а можно прописать этот код, по моему образцу кода, мне нужно чтобы я смог потом обращаться к каждой линии индикатора, т.е к L0 L1 L2 L3 L4, также к T0 T1 T2 T3 T4 с временными интервалами закрытия?</p></blockquote></div><p>Да можно конечно. ) Только не знаю зачем. Мой код заполняет таблицу так же по пунктам (ячейкам), только использует цикл, этот блок стал в несколько раз короче. Если всё-таки хотите в своем варианте, просто замените цикл в функции EditGrid(id,count) своей портянкой, будет то же самое.<br />Я написал пример колбэка для новой свечи. Если нужна онлайн реакция на изменение каждого параметра Ишимоку, допишите проверку на изменение каждого параметра, это вроде несложно на данном выше примере. Если разрешите, я не буду полностью писать за Вас весь робот. ) Слишком много оплачиваемой работы. )</p><p>Начните например с модификации таблицы памяти последних значений<br />qtycandle={0,0,0,0,0,0}<br />где 5 последних ячеек запоминают последние значения линий Ишимоку для выявления изменений.</p><p>И насчет галочки &quot;Не строить в будущее&quot;, Ишимоку так работает не как задумал автор. Попробуйте считывать параметры настроек Ишимоку и эти значения подставлять в рассматриваемые номера свечек, таблица будет заполняться корректными данными последних значений для каждой линии индикатора, включая оборвавшиеся в прошлом и протянутые в будущее.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2016-02-01T09:40:01Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1913#p1913</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1912#p1912" />
			<content type="html"><![CDATA[<p>GREEN_X5, проверил работоспособность таблицы. Все работает, за исключением того, что в графе &quot;текущее значение&quot; данные в он-лайн режиме не изменяются, а стоят значения закрытия прошлой свечи. Но это одно! Главное, что хотел спросить, а можно прописать этот код, по моему образцу кода, мне нужно чтобы я смог потом обращаться к каждой линии индикатора, т.е к L0 L1 L2 L3 L4, также к T0 T1 T2 T3 T4 с временными интервалами закрытия?<br />Ко всем этим значениям точнее:<br />gridIchimoku:SetCell(1, 1, L0)<br />gridIchimoku:SetCell(2, 1, T0[2].close)<br />gridIchimoku:SetCell(3, 1, T0[1].close)<br />gridIchimoku:SetCell(4, 1, T0[0].close)<br />gridIchimoku:SetCell(1, 2, L1)<br />gridIchimoku:SetCell(2, 2, T1[2].close)<br />gridIchimoku:SetCell(3, 2, T1[1].close)<br />gridIchimoku:SetCell(4, 2, T1[0].close)<br />gridIchimoku:SetCell(1, 3, L2)<br />gridIchimoku:SetCell(2, 3, T2[2].close)<br />gridIchimoku:SetCell(3, 3, T2[1].close)<br />gridIchimoku:SetCell(4, 3, T2[0].close)<br />gridIchimoku:SetCell(1, 4, L3)<br />gridIchimoku:SetCell(2, 4, T3[2].close)<br />gridIchimoku:SetCell(3, 4, T3[1].close)<br />gridIchimoku:SetCell(4, 4, T3[0].close)<br />gridIchimoku:SetCell(1, 5, L4)<br />gridIchimoku:SetCell(2, 5, T4[2].close)<br />gridIchimoku:SetCell(3, 5, T4[1].close)<br />gridIchimoku:SetCell(4, 5, T4[0].close)</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-02-01T08:17:37Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1912#p1912</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1911#p1911" />
			<content type="html"><![CDATA[<p>GREEN_X5, спасибо еще раз за помощь</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-01-31T21:33:04Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1911#p1911</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1910#p1910" />
			<content type="html"><![CDATA[<p>GREEN_X5, спасибо, я разобрался сам, просто прокомментировал!</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-01-31T21:28:31Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1910#p1910</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1906#p1906" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>diksan пишет:</cite><blockquote><p>GREEN_X5, похоже ошибка в коде у вас вышла?<br />&quot;Текущее значение&quot; в таблице вписывает как &quot;Предпоследнее&quot;!</p></blockquote></div><p>Так лучше?<br /></p><div class="codebox"><pre><code>require &quot;qvcl&quot;

function OnStop()
  mainForm:Release()
  is_run=false
end

is_run=true

function main()   
  while is_run do sleep(50) end 
end

mainForm  = vcl.Form({borderStyle = &quot;bsSingle&quot;, Height = 400, Width = 900, Caption = &quot;test&quot;, OnClose = OnStop})
gridIchimoku = vcl.StringGrid(mainForm,{Top = 18, Left = 5, Width=800, Height = 200, ColCount = 10, RowCount = 6, FixedCols = 1, FixedRows = 1})
x={{160,160,160,160},{&quot;taleftJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;},{&quot;Индикатор&quot;,&quot;Текущее значение&quot;,&quot;Последнее значение&quot;,&quot;Предпоследнее значение&quot;}}
for i=1, #x[1] do gridIchimoku:AddCol({Width=x[1][i], Alignment=x[2][i], Title={Caption=x[3][i], Alignment=&quot;taCenter&quot;}}) end x=nil
mainForm:Show()

tag = &quot;ICHMK&quot;
qtycandle=0

function EditGrid(id,count)
    for i=0,4 do
        local t, n, l = getCandlesByIndex (id, i, count - 3, 3)
        gridIchimoku:SetCell(1, i+1, l)        
        for y=0,2 do
            gridIchimoku:SetCell( y+2, i+1, t[2-y].close )
        end   
    end
end

function OnParam(c,s)
    local count = getNumCandles (tag)
    if qtycandle~=count then qtycandle=count; EditGrid(tag,count); end
end

OnParam()</code></pre></div>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2016-01-31T13:41:57Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1906#p1906</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1905#p1905" />
			<content type="html"><![CDATA[<p>GREEN_X5, похоже ошибка в коде у вас вышла?<br />&quot;Текущее значение&quot; в таблице вписывает как &quot;Предпоследнее&quot;!</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-01-30T08:44:19Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1905#p1905</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1904#p1904" />
			<content type="html"><![CDATA[<p>Спасибо, GREEN_X5, буду разбираться!</p>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-01-30T08:34:24Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1904#p1904</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1902#p1902" />
			<content type="html"><![CDATA[<p>Например вот так таблица будет обновляться при появлении новой свечи<br />Запустите этот код</p><div class="codebox"><pre><code>require &quot;qvcl&quot;

function OnStop()
  mainForm:Release()
  is_run=false
end

is_run=true

function main()   
  while is_run do sleep(50) end 
end

mainForm  = vcl.Form({borderStyle = &quot;bsSingle&quot;, Height = 400, Width = 900, Caption = &quot;test&quot;, OnClose = OnStop})
gridIchimoku = vcl.StringGrid(mainForm,{Top = 18, Left = 5, Width=800, Height = 200, ColCount = 10, RowCount = 6, FixedCols = 1, FixedRows = 1})
x={{160,160,160,160},{&quot;taleftJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;,&quot;taRightJustify&quot;},{&quot;Индикатор&quot;,&quot;Текущее значение&quot;,&quot;Последнее значение&quot;,&quot;Предпоследнее значение&quot;}}
for i=1, #x[1] do gridIchimoku:AddCol({Width=x[1][i], Alignment=x[2][i], Title={Caption=x[3][i], Alignment=&quot;taCenter&quot;}}) end x=nil
mainForm:Show()

tag = &quot;ICHMK&quot;
qtycandle=0

function EditGrid(id,count)
    for i=0,4 do
        local t, n, l = getCandlesByIndex (id, i, count - 3, 3)
        gridIchimoku:SetCell(1, i+1, l)        
        for y=0,2 do
            gridIchimoku:SetCell( y+2, i+1, t[y].close )
        end   
    end
end

function OnParam(c,s)
    local count = getNumCandles (tag)
    if qtycandle~=count then qtycandle=count; EditGrid(tag,count); end
end

OnParam()</code></pre></div>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2016-01-30T01:18:57Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1902#p1902</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1901#p1901" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><div class="quotebox"><cite>diksan пишет:</cite><blockquote><p>GREEN_X5, а пример есть, для использования в таблице?</p></blockquote></div><p>Вы дали пример кода который не запускается, соотв. не создает никаких таблиц и ничего заполняет. Допишите его до запускаемого и я добавлю туда колбэк.</p></blockquote></div><p>GREEN_X5, вот даю рабочий код! Только вам надо индикатор Ишимоку открыть на графике и дать ему Идентификатор: ICHMK&nbsp; &nbsp;Да и чтобы отображались данные, уберите галочку в параметрах диаграммы &quot;Отображать интервалы в будущее&quot;.<br /></p><div class="codebox"><pre><code>local VCL=require &quot;qvcl&quot;

local stopped
function OnStop()
    if mainForm then mainForm:Release(); mainForm = nil; VCL = nil end
    stopped = true
end

--================================== Интерфейс =================================

mainForm = VCL.Form({Name = &quot;mainForm&quot;, Height = 764, Width = 1330, Caption = &quot;&quot;,
Position = &quot;&quot;, OnClose = OnStop})  --вызываем OnStop()

gridIchimoku = VCL.StringGrid(mainForm,&quot;gridIchimoku&quot;)
gridIchimoku._ = { Top = 20, left = 20, Width=710, ColCount = 10, RowCount = 6, Height = 140, AutoEdit = False, FixedCols = 1, FixedRows = 1, Flat = True }
gridIchimoku:SetColParams({
  {Width= 160, Alignment=&quot;taleftJustify&quot;, Title={Caption=&quot;Индикатор&quot;, Alignment=&quot;taCenter&quot;}},
  {Width= 160, Alignment=&quot;taRightJustify&quot;, Title={Caption=&quot;Текущее значение&quot;, Alignment=&quot;taCenter&quot;}},
  {Width= 160, Alignment=&quot;taRightJustify&quot;, Title={Caption=&quot;Последнее начение&quot;, Alignment=&quot;taCenter&quot;}},
  {Width= 160, Alignment=&quot;taRightJustify&quot;, Title={Caption=&quot;Предпоследнее значение&quot;, Alignment=&quot;taCenter&quot;}},
})

local class_code, sec_code = CLASS_CODE, SEC_CODE
local tag = &quot;ICHMK&quot;
local count = getNumCandles (tag)
local T0, N0, L0 = getCandlesByIndex (tag, 0, count - 3, 3)  --получаем таблицу с последними значениями Tenkan-sen
local T1, N1, L1 = getCandlesByIndex (tag, 1, count - 3, 3)  --получаем таблицу с последними значениями Kijun-sen
local T2, N2, L2 = getCandlesByIndex (tag, 2, count - 3, 3)  --получаем таблицу с последними значениями Senkou Span 1
local T3, N3, L3 = getCandlesByIndex (tag, 3, count - 3, 3)  --получаем таблицу с последними значениями Senkou Span 2
local T4, N4, L4 = getCandlesByIndex (tag, 4, count - 3, 3)  --получаем таблицу с последними значениями Chinkou Span

gridIchimoku:SetCell(1, 1, L0)
gridIchimoku:SetCell(2, 1, T0[2].close)
gridIchimoku:SetCell(3, 1, T0[1].close)
gridIchimoku:SetCell(4, 1, T0[0].close)
gridIchimoku:SetCell(1, 2, L1)
gridIchimoku:SetCell(2, 2, T1[2].close)
gridIchimoku:SetCell(3, 2, T1[1].close)
gridIchimoku:SetCell(4, 2, T1[0].close)
gridIchimoku:SetCell(1, 3, L2)
gridIchimoku:SetCell(2, 3, T2[2].close)
gridIchimoku:SetCell(3, 3, T2[1].close)
gridIchimoku:SetCell(4, 3, T2[0].close)
gridIchimoku:SetCell(1, 4, L3)
gridIchimoku:SetCell(2, 4, T3[2].close)
gridIchimoku:SetCell(3, 4, T3[1].close)
gridIchimoku:SetCell(4, 4, T3[0].close)
gridIchimoku:SetCell(1, 5, L4)
gridIchimoku:SetCell(2, 5, T4[2].close)
gridIchimoku:SetCell(3, 5, T4[1].close)
gridIchimoku:SetCell(4, 5, T4[0].close)

mainForm:Show()   -- Конец скрипта интерфейса


--================================ Основной блок ===============================
function OnInit()
  mainForm:Show()
  is_run = true
end



function main()
    while not stopped do
       sleep (1)
    end
    sleep(300)
end</code></pre></div>]]></content>
			<author>
				<name><![CDATA[diksan]]></name>
				<uri>https://quik2dde.ru/profile.php?id=227</uri>
			</author>
			<updated>2016-01-28T21:34:45Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1901#p1901</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1900#p1900" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>korovin пишет:</cite><blockquote><p>Да.</p></blockquote></div><p>Нет. Новая свеча не может быть начата без сделки, которая попадет в текущий таймфрейм и станет ценой открытия свечи.<br />Ничего занятного в этом нет.</p>]]></content>
			<author>
				<name><![CDATA[kalikazandr]]></name>
				<uri>https://quik2dde.ru/profile.php?id=208</uri>
			</author>
			<updated>2016-01-28T14:52:50Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1900#p1900</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: Как заставить обновляться таблицу по новым свечам графика?]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1899#p1899" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>kalikazandr пишет:</cite><blockquote><div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><p>Новая свечка может быть построена без изменения last, если не было сделок.</p></blockquote></div><p>Нет</p></blockquote></div><p>Да.<br />Свечка закрывается по времени её окончания, а не по сделке.<br />Последняя сделка, попавшая во временной интервал свечки, становится последней сделкой для свечки. При этом не важно, произошла сделка в последние микросекунды свечи несколько часов назад (для дневных свечей, например, если сделки по инструменту очень редки).</p><p>Другое дело, что для целей именно отображения параметров свечей, как в вопросе автора, нас в общем-то как раз устроят моменты именно сделок, потому что на момент каждой сделки можно считать, что она и есть последняя в свече.<br />При этом без очередной сделки новая свеча фактически не возникнет, т.е. опять же без возникновения сделок нет смысла перечитывать&nbsp; параметры свечей на графике.<br />Хм, занятно, неожиданно&nbsp; )</p>]]></content>
			<author>
				<name><![CDATA[korovin]]></name>
				<uri>https://quik2dde.ru/profile.php?id=140</uri>
			</author>
			<updated>2016-01-28T12:25:43Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1899#p1899</id>
		</entry>
</feed>
