<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Мелкие утилиты и индикаторы]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Мелкие утилиты и индикаторы форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 08 May 2026 19:24:20 +0300</pubDate>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message58142/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_9EYUplVI" href="/user/456/" bx-tooltip-user-id="456">Jouriм66</a> написал:<br />Скрипт рисующий границы:<br /><br /> 
====code====
<pre>&nbsp;&nbsp; -- ******************************************************************** 
 -- Trades graphs 
 -----------------------//--------------------------------------
 end 

&nbsp;&nbsp; </pre>
=============
 <br />=============<br />Доброго времени Jourim66, пытался запустить данный индикатор на RIZ1, результат получился нулевой.<br />Возможно ли его использовать на фьючах или акциях?<br />И ещё такой вопрос, как можно изменить этот индикатор, что бы он отрисовывал верхнюю и нижнюю границы 68% (70%) объёмного профиля рынка за час, ежечасно.?<br />Что бы получилось нечто похожее на вот это:<br /><img src="https://c.radikal.ru/c07/2109/59/bc51b972f5d2.jpg" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>23.09.2021 15:08:21, Rami.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message58142/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message58142/topic118/</guid>
			<pubDate>Thu, 23 Sep 2021 15:08:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35051/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4s5xLcVp" href="/user/199/" bx-tooltip-user-id="199">RayIntraday</a> написал:<br />Подскажите, а есть возможность настраивать время отображения индикатора.?Скажем нужно отметить новости в 15:30, 16:30, 21:00. как это сделать что бы прописать сразу?<br />=============<br />Добавьте внутри кода индикатора анализ времени свечи, чтобы он рисовался только на свечах с заданным временем, а в остальных случаях возвращал значение nil <br />
			<i>27.11.2018 15:29:57, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35051/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35051/topic118/</guid>
			<pubDate>Tue, 27 Nov 2018 15:29:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35047/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6DYWzkqj" href="/user/114/" bx-tooltip-user-id="114">Дмитрий</a> написал:<br />Если вас устроит вертикальная линия, идущая от самого низа графика до уровня, заданного определенным значением цены, то можно обойтись без меток и нарисовать ее с помощью индикатора, пример которого приведен ниже:<br /><br /> 
====code====
<pre>&nbsp;&nbsp;Settings&nbsp;&nbsp;= 
{
&nbsp;&nbsp;Name&nbsp;&nbsp;=&nbsp;&nbsp; "v_line" ,
&nbsp;&nbsp;line&nbsp;&nbsp;= 
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name&nbsp;&nbsp;=&nbsp;&nbsp; "vertical_line" ,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;&nbsp;=&nbsp;&nbsp; RGB ( 0 ,&nbsp;&nbsp;255 ,&nbsp;&nbsp;255 ),&nbsp;&nbsp; --&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;=&nbsp;&nbsp;TYPE_HISTOGRAM&nbsp;&nbsp; -- важно задать тип "гистограмма", тогда получатся вертикальные линии 
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
}

 function&nbsp;&nbsp; Init ()
&nbsp;&nbsp; return&nbsp;&nbsp; 1 
 end 

 function&nbsp;&nbsp; OnCalculate (index)
&nbsp;&nbsp; if&nbsp;&nbsp;(T(index).hour&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; 10 )&nbsp;&nbsp;and&nbsp;&nbsp;(T(index).min&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; 0 )&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp;H(index)&nbsp;&nbsp;+&nbsp;&nbsp;(H(index)&nbsp;&nbsp;-&nbsp;&nbsp;L(index))&nbsp;&nbsp; -- линия идет от самого низа графика и оканчивается немного выше нужной нам свечи 
&nbsp;&nbsp; end 
 end 
&nbsp;&nbsp;</pre>
=============
 <br />Этот индикатор будет рисовать вертикальную линию на свече, которая была в 10:00.<br /><br />Чтобы вертикальная линия не перекрывала тени свечи, можно после наложения на график индикатора поменять &quot;Порядок графиков (индикаторов)&quot; с помощью пункта контекстное меню &quot;Параметры текущего окна&quot;.<br />=============<br />Доброго дня.<br />Подскажите, а есть возможность настраивать время отображения индикатора.?<br />Скажем нужно отметить новости в 15:30, 16:30, 21:00. как это сделать что бы прописать сразу? <br />
			<i>27.11.2018 14:27:58, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35047/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35047/topic118/</guid>
			<pubDate>Tue, 27 Nov 2018 14:27:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11621/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_iSIltUNY" href="/user/199/" bx-tooltip-user-id="199">AndrejNaMillion</a> пишет: <br />А возможно ли на Lua нарисовать динамический POC, который будет <br />отрисовывать максимальный объём. <br />Например на 1,3240 прошёл объём 300, индикатор рисует линию и рисует её до тех пор пока на определенном уровне не появиться больший объём, например 1,3250 400.<br />Вот пример. И не будет ли после добавления индикатора тормозить график...?<br /><br /><br />=============<br />Можно. Тормозить не будет. <br />
			<i>20.01.2016 21:19:37, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11621/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11621/topic118/</guid>
			<pubDate>Wed, 20 Jan 2016 21:19:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11620/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			А возможно ли на Lua нарисовать динамический POC, который будет <br />отрисовывать максимальный объём. <br />Например на 1,3240 прошёл объём 300, индикатор рисует линию и рисует её до тех пор пока на определенном уровне не появиться больший объём, например 1,3250 &nbsp; 400.<br />Вот пример. И не будет ли после добавления индикатора тормозить график...?<br /><br /><img src="http://c.mql4.com/forum/2012/08/dpoc_small.png" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>20.01.2016 20:50:46, AndrejNaMillion.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11620/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11620/topic118/</guid>
			<pubDate>Wed, 20 Jan 2016 20:50:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11604/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			вопрос тако<br />с помощью данного решения я допустим реализую индикатор который будет рисовать аналоги баз из 4-5 баров<br />и это все на 35 графиках - будет ли все это тормозить или нормально работать<br />почему спрашиваю - сделал просто поиск баз с выводом в текстовое окно в атф транзак - когда 1-4 графика обсчитывает вроде еще ничего - но как 10-15 жуткие тормоза! <br />
			<i>20.01.2016 12:52:01, Алексей Шафиков.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11604/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11604/topic118/</guid>
			<pubDate>Wed, 20 Jan 2016 12:52:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11592/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Чтобы не рисовалась переходы с горизонтальных участков надо в самом квике установить тип графика то ли в гистограму то ли еще что-то подобное<br />Не помню уже <br />
			<i>19.01.2016 20:11:21, Jouriм66.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11592/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11592/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 20:11:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11591/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			это штриховая линия, тип 4 .<br />толщину можно менять. <br />
			<i>19.01.2016 20:07:32, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11591/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11591/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 20:07:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11590/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Скрипт рисующий границы:<br /><br />
====code====
<pre>-- ********************************************************************
-- Trades graphs
-- Display bounds for every trade you made with profit and loss bounds.
-- Automatically calculate balanced $$ cost

-- Graph has 3 lines:
-- 1. Green line - 'profit' value.
--&nbsp;&nbsp;&nbsp;&nbsp;If you overcome of this line you balance increases
-- 2. Blue line - 'zero' value.
--&nbsp;&nbsp;&nbsp;&nbsp;At this value you trade will have zero balance
--&nbsp;&nbsp;&nbsp;&nbsp;Note: Blue line exists only if you $$ balance nonzero.
-- 3. Red line - 'possible loss' value
--&nbsp;&nbsp;&nbsp;&nbsp;Indicates value of acceptable loss.
--&nbsp;&nbsp;&nbsp;&nbsp;If you overcome this line you must make a dessision to close the deal in MINUS or hope price will grows back...
-- ********************************************************************

-- ********************************************************************
-- Stupid QUIK: dofile() doesnt work in Indicators :-/
-- So we must declare all utils in a single file.
-- !!NOTES!!:
--&nbsp;&nbsp; For use logging you must set "LOG_FILE" to correct log file name
--&nbsp;&nbsp; For enable global logging decomment "_log" call in "log()" function below
-- ********************************************************************
LOG_FILE = "..&#92;&#92;quick_lua.log";

function log(fmt, ... )
-- Decomment next line to allow global logging
--&nbsp;&nbsp;_log( fmt, ... )
end

function _log( fmt, ... )
&nbsp;&nbsp;local f = io.open( LOG_FILE, "a+" );
&nbsp;&nbsp;if not f then
&nbsp;&nbsp;&nbsp;&nbsp;f = io.open( LOG_FILE, "w" );
&nbsp;&nbsp;end
&nbsp;&nbsp;if not f then
&nbsp;&nbsp;&nbsp;&nbsp;out( "Error write log file: %s", LOG_FILE );
&nbsp;&nbsp;&nbsp;&nbsp;abort();
&nbsp;&nbsp;end
&nbsp;&nbsp;f:write( strtime(os.date("*t")) .. " " .. string.format( fmt, ... ) .. "&#92;n" );
&nbsp;&nbsp;f:close();
end

function out( fmt, ... )&nbsp;&nbsp;message( string.format( fmt, ... ), 3) end
function abort(fmt, ... ) out( fmt, ... ); PROGRAMM_ABORT(); end
function iif( cond, y, n ) if cond then return y; else return n; end end
function strtime( tm ) return string.format("%4d-%02d-%02d %02d:%02d:%02d", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.sec) end

function cmptime( e, b )
&nbsp;&nbsp;if e.year &#62; b.year then return 1; end
&nbsp;&nbsp;if e.year &#60; b.year then return -1; end
&nbsp;&nbsp;if e.month &#62; b.month then return 1; end
&nbsp;&nbsp;if e.month &#60; b.month then return -1; end
&nbsp;&nbsp;if e.day &#62; b.day then return 1; end
&nbsp;&nbsp;if e.day &#60; b.day then return -1; end
&nbsp;&nbsp;if e.hour &#62; b.hour then return 1; end
&nbsp;&nbsp;if e.hour &#60; b.hour then return -1; end
&nbsp;&nbsp;if e.min &#62; b.min then return 1; end
&nbsp;&nbsp;if e.min &#60; b.min then return -1; end
&nbsp;&nbsp;if e.sec &#62; b.sec then return 1; end
&nbsp;&nbsp;if e.sec &#60; b.sec then return -1; end
&nbsp;&nbsp;return 0;
end

-- ********************************************************************
-- Settings
-- ********************************************************************

Settings = {
 Name = "!__Trades",
 line = {
&nbsp;&nbsp;{ Name = "Balans",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB( 4,53,106 ),&nbsp;&nbsp;Type = 4, Width = 1 },
&nbsp;&nbsp;{ Name = "BalPositive",&nbsp;&nbsp;Color = RGB( 47,143,7 ),&nbsp;&nbsp;Type = 4, Width = 1 },
&nbsp;&nbsp;{ Name = "BalProtect",&nbsp;&nbsp; Color = RGB( 244,72,70 ), Type = 4, Width = 1 },
 },

 Add_Positive&nbsp;&nbsp; = 0.05,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Value addon to indicate positive balans including all trade comissions
 Add_Protect&nbsp;&nbsp;&nbsp;&nbsp;= 0.15,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Possible loss value

 EmptyValue&nbsp;&nbsp;&nbsp;&nbsp; = -1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Value will be used to set in graph if you do not have open trades.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Value of -1 indicates what value will not be stored.
 UseGraphClass&nbsp;&nbsp;= 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- If nonzero trades will use sec_code attached to graph
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- If zero the USD_TOM and USD_TOD will be used simultaneous
 USD_TOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "USD000UTSTOM",&nbsp;&nbsp; -- Money codes used if "UseGraphClass=0" (sec_code&nbsp;&nbsp;STRING&nbsp;&nbsp;Код бумаги заявки)
 USD_TOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "USD000000TOD",
 CLASS_CODE&nbsp;&nbsp;&nbsp;&nbsp; = "CETS",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Class code used to access money code (class_code&nbsp;&nbsp;STRING&nbsp;&nbsp;Код класса)

 Day_StartValue = 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Starting day value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Amount of $$ you have already at your account at start of trading day
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- If zero, Trades will use first trade made as starting point.
 Day_StartPrice = 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Balance price of account $$. Useless if "Day_StartValue = 0"

 Day_LastOnly&nbsp;&nbsp; = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Calculate whole trades or the current day only
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- If "Day_LastOnly=1" all trades in days before "Day_xxx" will be ignored

 Day_year&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 2015,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Current trades day (year)
 Day_mon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Current trades day (month)
 Day_day&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 30,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Current trades day (day)
}

-- ********************************************************************
-- Local data
-- ********************************************************************
TradeTable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {}
TradeTableLength = 0
LastTableLength&nbsp;&nbsp;= 0
GraphCC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "";
GraphSC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "";
CalcStartTime&nbsp;&nbsp;&nbsp;&nbsp;= nil

-- ********************************************************************
function Filter( cc, sc, fl )
&nbsp;&nbsp;if Settings.UseGraphClass &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;if cc ~= GraphSC then return false; end
&nbsp;&nbsp;&nbsp;&nbsp;if sc ~= GraphCC then return false; end
&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;if cc ~= Settings.CLASS_CODE then return false; end
&nbsp;&nbsp;&nbsp;&nbsp;if sc ~= Settings.USD_TOM and sc ~= Settings.USD_TOD then return false; end
&nbsp;&nbsp;end;

&nbsp;&nbsp;-- бит 0 (0x1)&nbsp;&nbsp;Заявка активна, иначе - не активна
&nbsp;&nbsp;-- бит 1 (0x2)&nbsp;&nbsp;Заявка снята. Если флаг не установлен и значение бита &#60;0&#62; равно &#60;0&#62;, то заявка исполнена
&nbsp;&nbsp;-- бит 2 (0x4)&nbsp;&nbsp;Заявка на продажу, иначе - на покупку. Данный флаг для сделок и сделок для исполнения определяет направление сделки (BUY/SELL)
&nbsp;&nbsp;if bit.band(fl,0x1) == 0x1 then return false; end
&nbsp;&nbsp;if bit.band(fl,0x2) == 0x2 then return false; end

&nbsp;&nbsp;return true;
end

function FillTradeTable()
&nbsp;&nbsp;local num = getNumberOf("trades")
&nbsp;&nbsp;if num == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;TradeTable = {};
&nbsp;&nbsp;&nbsp;&nbsp;TradeTableLength = 0;
&nbsp;&nbsp;&nbsp;&nbsp;LastTableLength = 0;
&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;end
&nbsp;&nbsp;if num &#60;= LastTableLength then
&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;end
log( "FillTradeTable %d-&#62;%d", LastTableLength, num );

&nbsp;&nbsp;it = {}
&nbsp;&nbsp;while LastTableLength &#60; num do
&nbsp;&nbsp;&nbsp;&nbsp;it = getItem( "trades", LastTableLength );
&nbsp;&nbsp;&nbsp;&nbsp;if Filter( it.class_code, it.sec_code, it.flags ) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log( "add&#91;%d&#93;: %2d) qty: %3d, price: %3.4f, bs: %s, tm: %s",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TradeTableLength, LastTableLength,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it.qty,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it.price,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iif( bit.band(it.flags,0x04) == 0x04, "SELL", "BUY " ),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strtime(it.datetime),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nil );

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TradeTable&#91; TradeTableLength &#93; = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Count = it.qty,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Price = it.price,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sell&nbsp;&nbsp;= iif( bit.band(it.flags,0x04) == 0x04, true, false ),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time&nbsp;&nbsp;= it.datetime,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TradeTableLength = TradeTableLength + 1;
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;LastTableLength = LastTableLength+1;
&nbsp;&nbsp;end

log( "Added %d items (%d)", TradeTableLength, LastTableLength );
end

function CalcValue( tm )
&nbsp;&nbsp;if cmptime( CalcStartTime, tm ) &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;return 0,0;
&nbsp;&nbsp;end

&nbsp;&nbsp;local n
&nbsp;&nbsp;local hdr = false
&nbsp;&nbsp;local vol&nbsp;&nbsp; = Settings.Day_StartValue
&nbsp;&nbsp;local price = Settings.Day_StartPrice

&nbsp;&nbsp;for n=0,TradeTableLength-1 do
&nbsp;&nbsp;&nbsp;&nbsp;it = TradeTable&#91;n&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;if it == nil then return 0,0; end;
&nbsp;&nbsp;&nbsp;&nbsp;if cmptime( it.Time, tm ) &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;end;

--&nbsp;&nbsp;if not hdr then log( "CalcValue&#91;%s&#93;", strtime(tm) ); hdr = true; end

&nbsp;&nbsp;&nbsp;&nbsp;cn = iif( it.Sell, -it.Count, it.Count );
&nbsp;&nbsp;&nbsp;&nbsp;oldv = vol

&nbsp;&nbsp;&nbsp;&nbsp;vol = vol + cn
&nbsp;&nbsp;&nbsp;&nbsp;if vol ~= 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;price = price*oldv/vol + it.Price*cn/vol;
&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;price = it.Price;
&nbsp;&nbsp;&nbsp;&nbsp;end;

--log( "time &#91;%s&#93; %d / %3.4f = %3d / %3.4f", strtime(it.Time), iif(it.Sell,-it.Count,it.Count), it.Price, vol, price );
&nbsp;&nbsp;end

&nbsp;&nbsp;return price, vol;
end

function OnCalculate(idx)

&nbsp;&nbsp;if GraphCC == "" then
&nbsp;&nbsp;&nbsp;&nbsp;ds = getDataSourceInfo();
&nbsp;&nbsp;&nbsp;&nbsp;GraphCC = ds.sec_code;
&nbsp;&nbsp;&nbsp;&nbsp;GraphSC = ds.class_code;
log( "Init codes: cc: %s, sc: %s", ds.class_code, ds.sec_code );
&nbsp;&nbsp;&nbsp;&nbsp;if GraphCC == "" or GraphSC == "" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( string.format("Invalid CC/SC: &#91;%s&#93;/&#91;%s&#93;", GraphCC, GraphSC) );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GraphCC = "-";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return nil;
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;if GraphCC == "" or GraphSC == "" then
&nbsp;&nbsp;&nbsp;&nbsp;return nil;
&nbsp;&nbsp;end

&nbsp;&nbsp;if not CalcStartTime then
&nbsp;&nbsp;&nbsp;&nbsp;if Settings.Day_LastOnly then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CalcStartTime = { year = Settings.Day_year, month = Settings.Day_mon, day = Settings.Day_day, hour = 10, min = 0, sec = 0 };
&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CalcStartTime = T(idx)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end

&nbsp;&nbsp;FillTradeTable();

&nbsp;&nbsp;price, vol = CalcValue( T(idx) );

&nbsp;&nbsp;if vol == 0 and price == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;if Settings.EmptyValue &#60; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return nil;
&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Settings.EmptyValue,Settings.EmptyValue,Settings.EmptyValue;
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp; elseif vol == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;return nil,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; price-Settings.Add_Positive,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; price+Settings.Add_Protect;
&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;return price,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iif( vol &#62; 0, price+Settings.Add_Positive, price-Settings.Add_Positive ),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iif( vol &#62; 0, price-Settings.Add_Protect, price+Settings.Add_Protect );
&nbsp;&nbsp;end
end

function Init()
&nbsp;&nbsp;return 3
end

-- For test run as std script
function main()
&nbsp;&nbsp;FillTradeTable();
&nbsp;&nbsp;tm = { year = 2015, month = 1, day = 30, hour = 16, min = 0, sec = 0 };
&nbsp;&nbsp;price, vol = CalcValue( tm );
&nbsp;&nbsp;log( "price: %3.4f, vol: %d", price, vol );
end

 </pre>
============= <br />
			<i>19.01.2016 20:01:48, Jouriм66.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11590/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11590/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 20:01:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11589/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_3UQ3NMpA" href="/user/1391/" bx-tooltip-user-id="1391">Алексей Шафиков</a> пишет: <br />то есть вообще кодом qlua горизонтальная линия на определенной цене от бара до бара вообще возможна?<br /><br />=============<br />череззаднепроходно, но да<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_wYkKGqWZ" href="/user/1391/" bx-tooltip-user-id="1391">Алексей Шафиков</a> пишет: <br />приветствую всех<br /><br />подскажите пжл каким кодом сделаны вот эти горизонтальные линии<br /> <noindex><a href="https://s.mail.ru/46gcnwqsabaj/img-2016-01-19-19-32-48.png" target="_blank" rel="nofollow">https://s.mail.ru/46gcnwqsabaj/img-2016-01-19-19-32-48.png</a></noindex> <br /> <br /><br />1) сколько штук их можно сделать на одном графике?<br />2) можно задать тип линии и толщину?<br />спасибо заранее за ответ<br /><br />=============<br />код - ниже<br />1. сколько угодно (константное число)<br />2. толщину - не помню, а тип - да, из набора существующих. их, если правильно помню, штук 5, в доке не описаны, но можно просто перебрать числами от 0 <br />
			<i>19.01.2016 20:00:09, Jouriм66.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11589/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11589/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 20:00:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11584/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			то есть вообще кодом qlua горизонтальная линия на определенной цене от бара до бара вообще возможна? <br />
			<i>19.01.2016 17:44:45, Алексей Шафиков.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11584/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11584/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 17:44:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11583/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			приветствую всех<br /><br />подскажите пжл каким кодом сделаны вот эти горизонтальные линии<br /><noindex><a href="https://s.mail.ru/46gcnwqsabaj/img-2016-01-19-19-32-48.png" target="_blank" rel="nofollow">https://s.mail.ru/46gcnwqsabaj/img-2016-01-19-19-32-48.png</a></noindex><br /><img src="https://s.mail.ru/46gcnwqsabaj/img-2016-01-19-19-32-48.png" alt="Пользователь добавил изображение" border="0" /><br /><br />1) сколько штук их можно сделать на одном графике?<br />2) можно задать тип линии и толщину?<br />спасибо заранее за ответ <br />
			<i>19.01.2016 17:34:57, Алексей Шафиков.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11583/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11583/topic118/</guid>
			<pubDate>Tue, 19 Jan 2016 17:34:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11397/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если вас устроит вертикальная линия, идущая от самого низа графика до уровня, заданного определенным значением цены, то можно обойтись без меток и нарисовать ее с помощью индикатора, пример которого приведен ниже:<br /><br />
====code====
<pre>Settings =
{
&nbsp;&nbsp;Name = "v_line",
&nbsp;&nbsp;line =
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name = "vertical_line",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color = RGB(0, 255, 255),&nbsp;&nbsp;-- 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type = TYPE_HISTOGRAM&nbsp;&nbsp;-- важно задать тип "гистограмма", тогда получатся вертикальные линии
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
}

function Init()
&nbsp;&nbsp;return 1
end

function OnCalculate(index)
&nbsp;&nbsp;if (T(index).hour == 10) and (T(index).min == 0) then
&nbsp;&nbsp;&nbsp;&nbsp;return H(index) + (H(index) - L(index))&nbsp;&nbsp;-- линия идет от самого низа графика и оканчивается немного выше нужной нам свечи
&nbsp;&nbsp;end
end
</pre>
=============
<br />Этот индикатор будет рисовать вертикальную линию на свече, которая была в 10:00.<br /><br />Чтобы вертикальная линия не перекрывала тени свечи, можно после наложения на график индикатора поменять &quot;Порядок графиков (индикаторов)&quot; с помощью пункта контекстное меню &quot;Параметры текущего окна&quot;. <br />
			<i>13.01.2016 19:04:40, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11397/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11397/topic118/</guid>
			<pubDate>Wed, 13 Jan 2016 19:04:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11387/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6j4J7nPR" href="/user/849/" bx-tooltip-user-id="849">Валентин</a> пишет: <br />а как нарисовать с помощью qlua вертикальную линию на определенной свече (которая была в определенное время)?<br /><br />=============<br />Здравствуйте,<br />Через Lua можно рисовать такие линии только через механизм работы с метками <br />
			<i>13.01.2016 15:57:40, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11387/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11387/topic118/</guid>
			<pubDate>Wed, 13 Jan 2016 15:57:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11362/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			а как нарисовать с помощью qlua вертикальную линию на определенной свече (которая была в определенное время)? <br />
			<i>13.01.2016 07:01:04, Валентин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11362/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11362/topic118/</guid>
			<pubDate>Wed, 13 Jan 2016 07:01:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message626/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Блин<br />Картинки порипались, а письма тут исправить походу невозможно.<br /><br /><img src="http://s020.radikal.ru/i709/1502/3d/17d1f53f8d02.png" alt="Пользователь добавил изображение" border="0" /><br /><br /><img src="http://s018.radikal.ru/i520/1502/39/3bb965470ed2.png" alt="Пользователь добавил изображение" border="0" /><br /><br /><img src="http://s010.radikal.ru/i313/1502/a2/a9d90aa9df2a.png" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>09.02.2015 14:43:28, Jouri Mam.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message626/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message626/topic118/</guid>
			<pubDate>Mon, 09 Feb 2015 14:43:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message624/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			за примеры - однозначно, спасибо. но, лучше, если есть возможность, залей их на gitHUB или sourceforge.net, или сделай торрент. так сохранней будет. <br />
			<i>09.02.2015 14:42:12, sam063rus.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message624/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message624/topic118/</guid>
			<pubDate>Mon, 09 Feb 2015 14:42:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Мелкие утилиты и индикаторы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message623/topic118/">Мелкие утилиты и индикаторы</a></b> <i>Может кому пригодится</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В процессе разбирательства с АПИ написал несколько полезных для меня утилит.<br />Скорее всего они примитивные, но возможно кому-то понадобятся.<br />Или пригодятся как примеры.<br /><br />Я не знаю как прицепить к сообщению аттач, поэтому воткну тут самый примитивный из индикаторов<br />Остальное уже большевато для вставки в текст, а как прицепить файл я не нашел.<br />Если кому понадобится что-нить - свистите.<br /><br />Предназначен для показа всех параметров свечи в одном индикаторе, чтобы не добавлять\убирать если что-то надо.<br />&#91;URL=http://radikal.ru/fp/50b20ef2e0af4ae298ceeb4ae6d04b98&#93;&#91;IMG&#93;<noindex><a href="http://s020.radikal.ru/i709/1502/3d/17d1f53f8d02t.jpg[/IMG][/URL&amp;#93" target="_blank" rel="nofollow">http://s020.radikal.ru/i709/1502/3d/17d1f53f8d02t.jpg&#91;/IMG&#93;&#91;/URL&amp;#93</a></noindex>;<br /><br /><br />
====code====
<pre> -- ********************************************************************
-- Can displays every candle field as separate graph (see "Settings" for details)

-- ********************************************************************
-- Stupid QUIK: dofile() doesnt work in Indicators :-/
-- ********************************************************************
LOG_FILE = "..&#92;&#92;quick_lua.log";

function log(fmt, ... )
-- Decomment next line to allow global logging
--&nbsp;&nbsp;_log( fmt, ... )
end

function _log( fmt, ... )
&nbsp;&nbsp;local f = io.open( LOG_FILE, "a+" );
&nbsp;&nbsp;if not f then
&nbsp;&nbsp;&nbsp;&nbsp;f = io.open( LOG_FILE, "w" );
&nbsp;&nbsp;end
&nbsp;&nbsp;if not f then
&nbsp;&nbsp;&nbsp;&nbsp;out( "Error write log file: %s", LOG_FILE );
&nbsp;&nbsp;&nbsp;&nbsp;abort();
&nbsp;&nbsp;end
&nbsp;&nbsp;f:write( strtime(os.date("*t")) .. " " .. string.format( fmt, ... ) .. "&#92;n" );
&nbsp;&nbsp;f:close();
end

function out( fmt, ... )&nbsp;&nbsp;message( string.format( fmt, ... ), 3) end
function abort(fmt, ... ) out( fmt, ... ); PROGRAMM_ABORT(); end
function iif( cond, y, n ) if cond then return y; else return n; end end
function strtime( tm ) return string.format("%4d-%02d-%02d %02d:%02d:%02d", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.sec) end

-- ********************************************************************
-- ********************************************************************
Settings={
 Name = "!__Values",
 line = {
&nbsp;&nbsp;{ Name = "High",&nbsp;&nbsp; Color = RGB( 112,112,112 ), Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Low",&nbsp;&nbsp;&nbsp;&nbsp;Color = RGB( 112,112,112 ), Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Open",&nbsp;&nbsp; Color = RGB( 112,255,255 ), Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Close",&nbsp;&nbsp;Color = RGB( 112,255,255 ), Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Vol",&nbsp;&nbsp;&nbsp;&nbsp;Color = RGB( 128,128,255 ), Width = 6, Type = TYPE_HISTOGRAM },
&nbsp;&nbsp;{ Name = "Median", Color = RGB( 100,215,0 ),&nbsp;&nbsp; Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Triple", Color = RGB( 200,67,22 ),&nbsp;&nbsp; Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;{ Name = "Wide",&nbsp;&nbsp; Color = RGB( 190,30,170 ),&nbsp;&nbsp;Width = 1, Type = TYPE_LINE },
&nbsp;&nbsp;nil
 },

 Open&nbsp;&nbsp;&nbsp;&nbsp; = "n",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display candle.open graph
 Close&nbsp;&nbsp;&nbsp;&nbsp;= "n",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display candle.close graph
 High&nbsp;&nbsp;&nbsp;&nbsp; = "y",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display candle.high graph
 Low&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "y",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display candle.low graph
 Vol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "n",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display candle.volume graph
 Median&nbsp;&nbsp; = "y",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display calculated "median" graph
 Triple&nbsp;&nbsp; = "n",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display calculated "triple" graph
 Wide&nbsp;&nbsp;&nbsp;&nbsp; = "n",&nbsp;&nbsp;&nbsp;&nbsp;-- If set to 'y' will display calculated "wide" graph

 Margin&nbsp;&nbsp; = 0.01,&nbsp;&nbsp; -- Additional bounds added to High, Low, Open and Close fields on display
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Used just for better graph view
 nil
}

function Init()
&nbsp;&nbsp;&nbsp;&nbsp;return 8
end

function OnCalculate(idx)
&nbsp;&nbsp;local h = H(idx)
&nbsp;&nbsp;local l = L(idx)

&nbsp;&nbsp;if not h or h &#60; 10 then
&nbsp;&nbsp;&nbsp;&nbsp;return nil
&nbsp;&nbsp;end

&nbsp;&nbsp;if h &#60; l then h,l = l,h; end

&nbsp;&nbsp;local o = O(idx)
&nbsp;&nbsp;local c = C(idx)
&nbsp;&nbsp;if o &#60; c then o,c = c,o; end

&nbsp;&nbsp;local v = V(idx)
&nbsp;&nbsp;local m = (h+l)/2
&nbsp;&nbsp;local t = (h+l+C(idx))/3
&nbsp;&nbsp;local w = (h+l+C(idx)*2)/4

&nbsp;&nbsp;if Settings.Open&nbsp;&nbsp; ~= "y" then o = nil; else o = o + Settings.Margin; end
&nbsp;&nbsp;if Settings.Close&nbsp;&nbsp;~= "y" then c = nil; else c = c - Settings.Margin; end
&nbsp;&nbsp;if Settings.High&nbsp;&nbsp; ~= "y" then h = nil; else h = h + Settings.Margin; end
&nbsp;&nbsp;if Settings.Low&nbsp;&nbsp;&nbsp;&nbsp;~= "y" then l = nil; else l = l - Settings.Margin; end
&nbsp;&nbsp;if Settings.Vol&nbsp;&nbsp;&nbsp;&nbsp;~= "y" then v = nil; end
&nbsp;&nbsp;if Settings.Median ~= "y" then m = nil; end
&nbsp;&nbsp;if Settings.Triple ~= "y" then t = nil; end
&nbsp;&nbsp;if Settings.Wide&nbsp;&nbsp; ~= "y" then w = nil; end

&nbsp;&nbsp;return h,l, o,c, v,m,t,w;
end

</pre>
=============
Вот еще один, которым постоянно пользуюсь<br />Предназначен за рисованием коридора для средне-взвешенного значения инструмента по всем сделкам.<br />Т.е. после установки сделки начинает рисовать коридор профит\лос (там на графике треугольники сделки и горизонтальные линии границы).<br />&#91;URL=http://radikal.ru/fp/eb4e1ac6826140a5a48423cc46bb1377&#93;&#91;IMG&#93;<noindex><a href="http://s018.radikal.ru/i520/1502/39/3bb965470ed2t.jpg[/IMG][/URL&amp;#93" target="_blank" rel="nofollow">http://s018.radikal.ru/i520/1502/39/3bb965470ed2t.jpg&#91;/IMG&#93;&#91;/URL&amp;#93</a></noindex>;<br /><br />Из утилит сделал экспорт данных свечей с графиков в CSV т.к. не смог найти средство как это сделать штатно.<br />И еще утилитка рассчета суммарной прибыльности по сделкам:<br />&#91;URL=http://radikal.ru/fp/6f660bd4842941e7842e2ddd37026b6f&#93;&#91;IMG&#93;<noindex><a href="http://s010.radikal.ru/i313/1502/a2/a9d90aa9df2at.jpg[/IMG][/URL&amp;#93" target="_blank" rel="nofollow">http://s010.radikal.ru/i313/1502/a2/a9d90aa9df2at.jpg&#91;/IMG&#93;&#91;/URL&amp;#93</a></noindex>; <br />
			<i>09.02.2015 14:36:19, Jouri Mam.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message623/topic118/</link>
			<guid>http://forum.quik.ru/messages/forum10/message623/topic118/</guid>
			<pubDate>Mon, 09 Feb 2015 14:36:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
