<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AmiBroker Knowledge Base &#187; Indicators</title>
	<atom:link href="http://www.amibroker.com/kb/category/afl/indicators/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amibroker.com/kb</link>
	<description>Providing you with tips &#038; tricks for everyday AmiBroker use</description>
	<lastBuildDate>Sat, 17 Dec 2011 10:18:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Study() function in logarithmic scale</title>
		<link>http://www.amibroker.com/kb/2009/04/22/study-function-in-logarithmic-scale/</link>
		<comments>http://www.amibroker.com/kb/2009/04/22/study-function-in-logarithmic-scale/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 13:14:35 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/?p=84</guid>
		<description><![CDATA[IMPORTANT: This article applies ONLY to AmiBroker version 5.24 and earlier. Version 5.25 includes native support for log scale in Study() function and this workaround is no longer needed.
Some of you may have tried using Study() function in logarithmic scale charts and noticed that the output of Study() function becomes curved line (not straight) as [...]]]></description>
			<content:encoded><![CDATA[<p><font color='#ff0000'>IMPORTANT: This article applies ONLY to AmiBroker version 5.24 and earlier. Version 5.25 includes native support for log scale in Study() function and this workaround is no longer needed.</font></p>
<p>Some of you may have tried using Study() function in logarithmic scale charts and noticed that the output of Study() function becomes curved line (not straight) as soon as logarithmic scale is used.</p>
<p>Before giving you solution, I would like to state some obvious things:<br />
A straight line in log scale is NOT straight line in linear scale and vice versa. Trendlines drawn in log scale do NOT cross at the same points (except beginning and ending) as same trendline drawn in linear scale. This is pretty much the same in all charting programs.</p>
<p>As for the Study() function &#8211; it always uses LINEAR equation <em>y = a*x + b</em> regardless of particular chart scale. So, Study() always produces straight line in the linear price domain, so &#8220;<em>a</em>&#8221; coefficient is constant and represents the slope in price terms (dollar per bar)</p>
<p>This is done so, because Automatic Analysis does not have a concept of &#8220;scale&#8221; (linear vs logarithmic), therefore if Study() function was dependent on given pane setting it would not produce the same result, if the same formula was used in automatic analysis.</p>
<p>If you want to have &#8220;straight&#8221; line in the logarithmic price domain you need to convert to log domain in the formula, as shown in the code below</p>
<p><code><span><br />
</span><span style="color: #000000">function&nbsp;</span><span style="color: #0000BB">StudyInLogScale</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Studyid</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chartid&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">Version</span><span style="color: #000000">()&nbsp;&lt;&nbsp;</span><span style="color: #0000BB">5.25&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SetBarsRequired</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">sbrAll</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">sbrAll&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">temp&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Study</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Studyid</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chartid&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bi&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BarIndex</span><span style="color: #000000">();</p>
<p>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">beg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">LastValue</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ValueWhen</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ExRem</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">temp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">bi&nbsp;</span><span style="color: #000000">)&nbsp;);&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">LastValue</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ValueWhen</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">temp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">bi&nbsp;</span><span style="color: #000000">)&nbsp;);</p>
<p>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">result&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Null</span><span style="color: #000000">;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">beg&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">end&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begval&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">temp</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">beg&nbsp;</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">endval&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">temp</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">end&nbsp;</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">factor&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">endval</span><span style="color: #000000">/</span><span style="color: #0000BB">begval</span><span style="color: #000000">;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">beg</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">result</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #0000BB">begval&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">factor&nbsp;</span><span style="color: #000000">^&nbsp;(&nbsp;(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">beg&nbsp;</span><span style="color: #000000">)/(&nbsp;</span><span style="color: #0000BB">end&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">beg&nbsp;</span><span style="color: #000000">)&nbsp;);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">result&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Study</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Studyid</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chartid&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">result</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
}</p>
<p></span><span style="color: #0000BB">logscale&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ParamToggle</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Log&nbsp;Scale&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Off|On&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">SetChartOptions</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">logScale</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">3&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">chartLogarithmic&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Price&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">styleCandle&nbsp;</span><span style="color: #000000">);</p>
<p>if(&nbsp;</span><span style="color: #0000BB">logscale&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">Version</span><span style="color: #000000">()&nbsp;&lt;=&nbsp;</span><span style="color: #0000BB">5.24&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;</span><span style="color: #0000BB">ss&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">StudyInLogScale</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;RE&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">GetChartID</span><span style="color: #000000">()&nbsp;);<br />
}<br />
else<br />
{<br />
&nbsp;</span><span style="color: #0000BB">ss&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Study</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;RE&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">GetChartID</span><span style="color: #000000">()&nbsp;);<br />
}</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ss</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Study&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2009/04/22/study-function-in-logarithmic-scale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to convert from bar-value to pixel co-ordinates</title>
		<link>http://www.amibroker.com/kb/2009/03/30/how-to-convert-from-bar-value-to-pixel-co-ordinates/</link>
		<comments>http://www.amibroker.com/kb/2009/03/30/how-to-convert-from-bar-value-to-pixel-co-ordinates/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 09:45:12 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/?p=78</guid>
		<description><![CDATA[Sometimes when using low-level graphics functions it is needed to convert from bar number to pixel X co-ordinate and from price level to pixel Y co-ordinate. Converting between them needs knowing visible bar range, Y-axis value range and pixel dimensions of drawing area. Once these params are known it is just a matter of performing [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes when using <a href="http://www.amibroker.com/guide/a_lowlevelgfx.html">low-level graphics functions</a> it is needed to convert from bar number to pixel X co-ordinate and from price level to pixel Y co-ordinate. Converting between them needs knowing visible bar range, Y-axis value range and pixel dimensions of drawing area. Once these params are known it is just a matter of performing simple scale transformation. The code example below shows how to do that.</p>
<p><code><span></span><span style="color: #000000">function&nbsp;</span><span style="color: #0000BB">GetVisibleBarCount</span><span style="color: #000000">()&nbsp;<br />
{&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">lvb&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;lastvisiblebar&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;firstvisiblebar&quot;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">Min</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Lvb&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">fvb</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;</p>
<p>function&nbsp;</span><span style="color: #0000BB">GfxConvertBarToPixelX</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">bar&nbsp;</span><span style="color: #000000">)&nbsp;<br />
{&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">lvb&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;lastvisiblebar&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;firstvisiblebar&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">pxchartleft&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxchartleft&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">pxchartwidth&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxchartwidth&quot;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">pxchartleft&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">bar&nbsp;&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">pxchartwidth&nbsp;</span><span style="color: #000000">/&nbsp;(&nbsp;</span><span style="color: #0000BB">Lvb&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;</p>
<p>function&nbsp;</span><span style="color: #0000BB">GfxConvertValueToPixelY</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Value&nbsp;</span><span style="color: #000000">)&nbsp;<br />
{&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">local&nbsp;Miny</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Maxy</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">pxchartbottom</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">pxchartheight</span><span style="color: #000000">;&nbsp;</p>
<p>&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;axisminy&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;axismaxy&quot;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;</span><span style="color: #0000BB">pxchartbottom&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxchartbottom&quot;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">pxchartheight&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxchartheight&quot;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">pxchartbottom&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">floor</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">0.5&nbsp;</span><span style="color: #000000">+&nbsp;(&nbsp;</span><span style="color: #0000BB">Value&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">pxchartheight</span><span style="color: #000000">/&nbsp;(&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">)&nbsp;);&nbsp;<br />
}&nbsp;</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Price&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">styleHistogram&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p></span><span style="color: #0000BB">GfxSetOverlayMode</span><span style="color: #000000">(</span><span style="color: #0000BB">0</span><span style="color: #000000">);&nbsp;<br />
</span><span style="color: #0000BB">GfxSelectSolidBrush</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);&nbsp;<br />
</span><span style="color: #0000BB">GfxSelectPen</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p></span><span style="color: #0000BB">AllVisibleBars&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">GetVisibleBarCount</span><span style="color: #000000">();&nbsp;<br />
</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;firstvisiblebar&quot;</span><span style="color: #000000">);&nbsp;</p>
<p>for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">AllVisibleBars&nbsp;</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">++&nbsp;)&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">x&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">GfxConvertBarToPixelX</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">GfxConvertValueToPixelY</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">fvb&nbsp;</span><span style="color: #000000">]&nbsp;);&nbsp;</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">GfxRectangle</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">x</span><span style="color: #000000">-</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">-</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">x&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">+</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;</p>
<p></span><span style="color: #0000BB">RequestTimedRefresh</span><span style="color: #000000">(</span><span style="color: #0000BB">1</span><span style="color: #000000">);&nbsp;</span><span style="color: #007000">//&nbsp;ensure&nbsp;1&nbsp;sec&nbsp;refresh</span></code></p>
<p>Note that when chart scale changes, it will usually require one extra refresh to get low-level graphics alignment to new scale. That&#8217;s why we added RequestTimedRefresh call at the end.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2009/03/30/how-to-convert-from-bar-value-to-pixel-co-ordinates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickAFL facts</title>
		<link>http://www.amibroker.com/kb/2008/07/03/quickafl/</link>
		<comments>http://www.amibroker.com/kb/2008/07/03/quickafl/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 10:33:15 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Custom Backtest]]></category>
		<category><![CDATA[Explorations]]></category>
		<category><![CDATA[Indicators]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/?p=74</guid>
		<description><![CDATA[QuickAFL(tm) is a feature that allows faster AFL calculation under certain conditions. Initially (since 2003) it was available for indicators only, as of version 5.14+ it is available in Automatic Analysis too.
Initially the idea was to allow faster chart redraws through calculating AFL formula only for that part which is visible on the chart. In [...]]]></description>
			<content:encoded><![CDATA[<p>QuickAFL(tm) is a feature that allows faster AFL calculation under certain conditions. Initially (since 2003) it was available for indicators only, as of version 5.14+ it is available in Automatic Analysis too.</p>
<p>Initially the idea was to allow faster chart redraws through calculating AFL formula only for that part which is visible on the chart. In a similar manner, automatic analysis window can use subset of available quotations to calculate AFL, if selected &#8220;range&#8221; parameter is less than &#8220;All quotations&#8221;.</p>
<p>So, in short QuickAFL works so it calculates only part of the array that is currently visible (indicator) or within selected range (Automatic Analysis).</p>
<p>Your formulas, under QuickAFL, may or may NOT use all data bars available, but only visible (or &#8220;in-range&#8221;) bars (plus some extra to ensure calculation of used indicators), so when you are using Close[ 0 ] it represents not first bar in entire data set but first bar in array currently used (which is just a bit longer than visible, or &#8216;in-range&#8217; area).</p>
<p>The QuickAFL is designed to be transparent, i.e. do not require any changes to the formulas you are using. To achieve this goal, AmiBroker in the first execution of given formula &#8220;learns&#8221; how many bars are really needed to calculate it correctly.</p>
<p>To find out the number of bars required to calculate formula AmiBroker internally uses two variables &#8216;backward ref&#8217; and &#8216;forward ref&#8217;.</p>
<p>&#8216;backward ref&#8217; describes how many PREVIOUS bars are needed to calculate the value for today, and &#8216;forward ref&#8217; tells how many FUTURE bars are needed to calculate value for today.</p>
<p>If these numbers are known, during execution of given formula AmiBroker takes FIRST visible (or in-range) bar and subtracts &#8216;backward ref&#8221; and takes LAST visible (or in-range) bar and adds &#8216;forward ref&#8217; to calculate first and last bar needed for calculation of the formula.</p>
<p>Now, how does AmiBroker know a correct &#8220;backward ref&#8221; and &#8220;forward ref&#8221; for the entire formula?<br />
Well, every AmiBroker&#8217;s built-in function is written so that it knows its own requirements and adds them to global &#8220;backward ref&#8221; and &#8220;forward ref&#8221; each time given function is called from your formula.</p>
<p>The whole process starts with setting initial BackwardRef to 30 and ForwardRef to zero. These initial values are used to give &#8220;safety margin&#8221; for simple loops/scripts.</p>
<p>Next, when parser scans the formula like this:</p>
<p><code><span>Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">C&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">Ref&nbsp;</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MA</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">40&nbsp;</span><span style="color: #000000">),&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>it analyses it and &#8220;sees&#8221; the MA with parameter 40. It knows that simple moving average of period 40 requires 40 past bars and zero future bars to calculate correctly so it does the following (all internally):</p>
<p><code><span>BackwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BackwardRef&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">40</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">ForwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ForwardRef&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</span></code></p>
<p>So now, the value of BackwardRef will be 70 (40+30(initial)), and ForwardRef will be zero.</p>
<p>Next the parser sees Ref( .., -1 );</p>
<p>It knows that Ref with shift of -1 requires 1 past bar and zero future bars so it &#8220;accumulates&#8221; requirements this way:</p>
<p><code><span>BackwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BackwardRef&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">ForwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ForwardRef&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</span></code></p>
<p>So it ends up with:</p>
<p><code><span>BackwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">71</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">ForwardRef&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</span></code></p>
<p>The BackwardRef  and ForwardRef numbers are displayed by AFL Editor&#8217;s Tools->Check and Profile as well as on charts when &#8220;Display chart timing&#8221; is selected in the preferences.</p>
<p>If you use Check and Profile tool, it will tell you that the formula</p>
<p><code><span>Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">C&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">Ref&nbsp;</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MA</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">40&nbsp;</span><span style="color: #000000">),&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>requires 71 past bars and 0 future bars.</p>
<p>You can modify it to</p>
<p><code><span>Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">C&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">Ref&nbsp;</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MA</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">50&nbsp;</span><span style="color: #000000">),&nbsp;-</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>and it will tell you that it requires 82 past bars (30+50+2) and zero future bars.</p>
<p>If you modify it to</p>
<p><code><span>Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">C&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">Ref&nbsp;</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MA</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">50&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>It will tell you that it needs 80 past bars (30+50) and ONE future bar (from Ref).</p>
<p>Thanks to that your formula will use 80 bars prior to first visible (or in-range) bar leading to correct calculation result, while improving the speed of execution by not using bars preceding required ones.</p>
<p><strong>IMPORTANT NOTES</strong></p>
<p>It is very important to understand, that the above estimate requirements while fairly conservative,<br />
and working fine in majority of cases, may NOT give you identical results with QuickAFL enabled, if your formulas use:<br />
a) JScript/VBScript scripting<br />
b) for/while/do loops using more than 30 past bars<br />
c) any functions from external indicator DLLs<br />
d) certain functions that use recursive calculation such as very long exponential averages or TimeFrame functions with much higher intervals than base interval</p>
<p>In these cases, you may need to use SetBarsRequired() function to set initial requirements to value higher than default 30. For example, by placing</p>
<p><code><span>SetBarsRequired</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">1000</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>at the <strong>TOP</strong> of your formula you are telling AmiBroker to add 1000 bars PRIOR to first visible (or in-range) bar to ensure more data to stabilise indicators.</p>
<p>You can also effectively turn OFF QuickAFL by adding:</p>
<p><code><span>SetBarsRequired</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">sbrAll</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">sbrAll&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>at the top of your formula. It tells AmiBroker to use ALL bars all the time.</p>
<p>It is also worth noting that certain functions like cumulative sum (Cum()) by default request ALL past bars to guarantee the same results when QuickAFL is enabled. But when using such a function, you may or may NOT want to use all bars. So SetBarsRequired() gives you also ability to DECREASE the requirements of formula. This is done by placing SetBarsRequired at the <strong>END</strong> of your formula, as any call to SetBarsRequired effectively overwrites previously calculated estimate. So<br />
if you write</p>
<p><code><span>x&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Cum</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">SetBarsRequired</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">1000</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);&nbsp;</span><span style="color: #007000">//&nbsp;use&nbsp;1000&nbsp;past&nbsp;bars&nbsp;DESPITE&nbsp;using&nbsp;Cum()</span></code></p>
<p>You may force AmiBroker to use only 1000 bars prior first visible even though Cum() by itself would require all bars.</p>
<p>It is also worth noting that when QuickAFL is used, BarIndex() function does NOT represent elements of the AFL array, but rather the indexes of ENTIRE quotation array. With QuickAFL turned on, an AFL array is usually shorter than quotation array, as illustrated in this picture:</p>
<p><img border=0 src="http://www.amibroker.com/gifs/barindex_small.gif" alt="QuickAFL, BarIndex and BarCount" /></p>
<p><strong>SPECIAL CASE: AddToComposite function</strong></p>
<p>Since AddToComposite creates artificial stock data it is desirable that it works the same regardless of how many &#8216;visible&#8217; bars there are or how many bars are needed by other parts of the formula.</p>
<p>For this reason internally AddToComposite does this:</p>
<p><code><span>SetBarsRequired</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">sbrAll</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">sbrAll&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>which effectivelly means &#8220;use all available bars&#8221; for the formula. AddToComposite function simply tells the AFL engine to use all available bars (from the very first to the very last) regardless of how formula looks like. This is to ensure that AddToComposite updates ALL bars of the composite</p>
<p>The side-effect is that &#8220;Check And Profile&#8221; feature will see that it needs to reference future bars and display a warning even though this is false alert because AddToComposite itself has no impact on trading system at all.</p>
<p>Now why this shows only when flag atcFlagEnableInBacktest is on ??<br />
It is simple: this is so because it means that AddToComposite is ACTIVE in BACKTEST.<br />
<a href="http://www.amibroker.com/guide/afl/afl_view.php?name=ADDTOCOMPOSITE">http://www.amibroker.com/guide/afl/afl_view.php?name=ADDTOCOMPOSITE</a></p>
<p>Since &#8220;Check And Profile&#8221; uses &#8220;BACKTEST&#8221; state you get such result.</p>
<p>If atcFlagEnableInBacktest is not specified AddToComposite is not enabled in Backtest and hence does not affect calculation of BackwardRef and ForwardRef during &#8220;Check And Profile&#8221;.</p>
<p><strong>BACKWARD COMPATIBILITY NOTES</strong></p>
<p>a) QuickAFL is available in Automatic Analysis in version 5.14.0 or higher<br />
b) sbrAll constant is available in Automatic Analysis in version 5.14.0 or higher. If you are using older versions you should use numeric constant of: 1000000 instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2008/07/03/quickafl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Big symbol text in the background</title>
		<link>http://www.amibroker.com/kb/2008/04/21/big-symbol-text-in-the-background/</link>
		<comments>http://www.amibroker.com/kb/2008/04/21/big-symbol-text-in-the-background/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 09:41:19 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/?p=72</guid>
		<description><![CDATA[Recently I heard the suggestion to add a security symbol written in big letters in the chart background. Well, actually it is pretty simple to do using low-level gfx. Just add this code sniplet anywhere in your chart formula.
GfxSetOverlayMode(1);
GfxSelectFont(&#34;Tahoma&#34;,&#160;Status(&#34;pxheight&#34;)/2&#160;);
GfxSetTextAlign(&#160;6&#160;);//&#160;center&#160;alignment
GfxSetTextColor(&#160;ColorRGB(&#160;200,&#160;200,&#160;200&#160;)&#160;);
GfxSetBkMode(1);&#160;//&#160;transparent
GfxTextOut(&#160;Name(),&#160;Status(&#34;pxwidth&#34;)/2,&#160;Status(&#34;pxheight&#34;)/12&#160;);
UPDATE: I have added transparent mode, so it works fine on non-white backgrounds too.
]]></description>
			<content:encoded><![CDATA[<p>Recently I heard the suggestion to add a security symbol written in big letters in the chart background. Well, actually it is pretty simple to do using low-level gfx. Just add this code sniplet anywhere in your chart formula.</p>
<p><code><span>GfxSetOverlayMode</span><span style="color: #000000">(</span><span style="color: #0000BB">1</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">GfxSelectFont</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Tahoma&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxheight&quot;</span><span style="color: #000000">)/</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">GfxSetTextAlign</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">6&nbsp;</span><span style="color: #000000">);</span><span style="color: #007000">//&nbsp;center&nbsp;alignment<br />
</span><span style="color: #0000BB">GfxSetTextColor</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ColorRGB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">200</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">200&nbsp;</span><span style="color: #000000">)&nbsp;);<br />
</span><span style="color: #0000BB">GfxSetBkMode</span><span style="color: #000000">(</span><span style="color: #0000BB">1</span><span style="color: #000000">);&nbsp;</span><span style="color: #007000">//&nbsp;transparent<br />
</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Name</span><span style="color: #000000">(),&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxwidth&quot;</span><span style="color: #000000">)/</span><span style="color: #0000BB">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxheight&quot;</span><span style="color: #000000">)/</span><span style="color: #0000BB">12&nbsp;</span><span style="color: #000000">);</span></code></p>
<p>UPDATE: I have added transparent mode, so it works fine on non-white backgrounds too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2008/04/21/big-symbol-text-in-the-background/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Low-level gfx example: Yearly/monthly profit chart</title>
		<link>http://www.amibroker.com/kb/2007/10/11/low-level-gfx-example-yearlymonthly-profit-chart/</link>
		<comments>http://www.amibroker.com/kb/2007/10/11/low-level-gfx-example-yearlymonthly-profit-chart/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 23:34:43 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/10/11/low-level-gfx-example-yearlymonthly-profit-chart/</guid>
		<description><![CDATA[The code below is an little bit more complex example of Low Level Graphics functions (see http://www.amibroker.com/guide/a_lowlevelgfx.html)
It allows to display three kinds of charts:

yearly/monthly profit table
yearly profit bar chart
average monthly profit bar chart

The type of chart is switchable from Parameters dialog.
It should be applied to ~~~EQUITY &#8211; portfolio equity symbol (so it only produces output [...]]]></description>
			<content:encoded><![CDATA[<p>The code below is an little bit more complex example of Low Level Graphics functions (see http://www.amibroker.com/guide/a_lowlevelgfx.html)</p>
<p>It allows to display three kinds of charts:</p>
<ol>
<li>yearly/monthly profit table
<li>yearly profit bar chart
<li>average monthly profit bar chart
</ol>
<p>The type of chart is switchable from Parameters dialog.</p>
<p>It should be applied to ~~~EQUITY &#8211; portfolio equity symbol (so it only produces output if you run backtest before using it). </p>
<p><code><span></p>
<p>SetBarsRequired</span><span style="color: #000000">(</span><span style="color: #0000BB">1000000</span><span style="color: #000000">,</span><span style="color: #0000BB">1000000</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">eq&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Foreign</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;~~~EQUITY&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;C&quot;&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">yr&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Year</span><span style="color: #000000">();<br />
</span><span style="color: #0000BB">mo&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Month</span><span style="color: #000000">();</p>
<p></span><span style="color: #0000BB">YearChange&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">yr&nbsp;</span><span style="color: #000000">!=&nbsp;</span><span style="color: #0000BB">Ref</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">yr</span><span style="color: #000000">,&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">MonChange&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">mo&nbsp;</span><span style="color: #000000">!=&nbsp;</span><span style="color: #0000BB">Ref</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">mo</span><span style="color: #000000">,&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">FirstYr&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">LastYr&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</p>
<p></span><span style="color: #0000BB">startbar&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</p>
<p></span><span style="color: #007000">////////////////////////////<br />
//&nbsp;SKIP&nbsp;non-trading&nbsp;bars<br />
////////////////////////////<br />
</span><span style="color: #000000">for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">BarCount</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">++&nbsp;)<br />
{<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">startbar&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}&nbsp;<br />
}</p>
<p></span><span style="color: #007000">////////////////////////////<br />
//&nbsp;collect&nbsp;yearly&nbsp;/&nbsp;monthly&nbsp;changes&nbsp;in&nbsp;equity<br />
//&nbsp;into&nbsp;dynamic&nbsp;variables<br />
////////////////////////////</p>
<p></span><span style="color: #0000BB">LastYrValue&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">startbar&nbsp;&nbsp;</span><span style="color: #000000">];<br />
</span><span style="color: #0000BB">LastMoValue&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">startbar&nbsp;&nbsp;</span><span style="color: #000000">];</p>
<p></span><span style="color: #0000BB">MaxYrProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">MinYrProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">MaxMoProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">MinMoProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</p>
<p>for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">startbar&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">BarCount</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">++&nbsp;)<br />
{<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">YearChange</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;||&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">100&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;/&nbsp;</span><span style="color: #0000BB">LastYrValue&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VarSet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;ChgYear&quot;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">yr</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">],&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MaxYrProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Max</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MaxYrProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MinYrProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Min</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MinYrProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">FirstYr&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">FirstYr&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">yr</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">LastYr&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">yr</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">LastYrValue&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">];<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">MonChange&nbsp;</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;||&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">mon&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">mo</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">100&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;/&nbsp;</span><span style="color: #0000BB">LastMoValue&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VarSet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;ChgMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">yr</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">]&nbsp;+&nbsp;</span><span style="color: #DD0000">&quot;-&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">mon</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VarSet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumChgMon&quot;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">mon</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">Nz</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumChgMon&quot;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">mon&nbsp;</span><span style="color: #000000">)&nbsp;)&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VarSet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">mon</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">Nz</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumMon&quot;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">mon&nbsp;</span><span style="color: #000000">)&nbsp;)&nbsp;);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MaxMoProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Max</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MaxMoProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MinMoProfit&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Min</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MinMoProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">LastMoValue&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">eq</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">];<br />
&nbsp;&nbsp;}<br />
}</p>
<p></span><span style="color: #007000">/////////////////////////////////////////////////<br />
//&nbsp;Drawing&nbsp;code&nbsp;&amp;&nbsp;helper&nbsp;functions<br />
////////////////////////////////////////////////</p>
<p></span><span style="color: #0000BB">GfxSetOverlayMode</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">CellHeight&nbsp;</span><span style="color: #000000">=&nbsp;(</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxheight&quot;</span><span style="color: #000000">)-</span><span style="color: #0000BB">1</span><span style="color: #000000">)/(</span><span style="color: #0000BB">LastYr&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">FirstYr&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">3&nbsp;</span><span style="color: #000000">);&nbsp;<br />
</span><span style="color: #0000BB">CellWidth&nbsp;</span><span style="color: #000000">=&nbsp;(</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxwidth&quot;</span><span style="color: #000000">)-</span><span style="color: #0000BB">1</span><span style="color: #000000">)/</span><span style="color: #0000BB">14</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #0000BB">GfxSelectFont</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;Tahoma&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">8.5&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p></span><span style="color: #0000BB">GfxSetBkMode</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);</p>
<p>function&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">string</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">)&nbsp;<br />
{<br />
&nbsp;</span><span style="color: #0000BB">Color&nbsp;</span><span style="color: #000000">=&nbsp;&nbsp;</span><span style="color: #0000BB">ColorRGB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">||&nbsp;</span><span style="color: #0000BB">col&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">||&nbsp;</span><span style="color: #0000BB">col&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">13</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">220</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">255</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">%&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">220&nbsp;</span><span style="color: #000000">)&nbsp;);<br />
&nbsp;</span><span style="color: #0000BB">GfxSelectSolidBrush</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Color&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">);<br />
&nbsp;</span><span style="color: #0000BB">GfxRectangle</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">CellWidth</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">CellHeight</span><span style="color: #000000">,&nbsp;(</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">CellWidth&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">CellHeight&nbsp;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">GfxDrawText</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">string</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">CellWidth&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">CellHeight&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">CellWidth</span><span style="color: #000000">,&nbsp;(</span><span style="color: #0000BB">row&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">CellHeight</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">32</span><span style="color: #000000">+</span><span style="color: #0000BB">5&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;</p>
<p></span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">25</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">15</span><span style="color: #000000">;</p>
<p>function&nbsp;</span><span style="color: #0000BB">DrawBar</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">text</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">bar</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">numbars</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Miny</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;</span><span style="color: #0000BB">BarWidth&nbsp;</span><span style="color: #000000">=&nbsp;(</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxwidth&quot;</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">)/(&nbsp;</span><span style="color: #0000BB">numbars&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">BarHeight&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxheight&quot;</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">YOffset</span><span style="color: #000000">;<br />
&nbsp;</span><span style="color: #0000BB">relpos&nbsp;</span><span style="color: #000000">=&nbsp;(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">)&nbsp;/&nbsp;(</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;</span><span style="color: #0000BB">xp&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;(&nbsp;</span><span style="color: #0000BB">bar&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">0.5&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">BarWidth</span><span style="color: #000000">;<br />
&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">BarHeight&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">relpos&nbsp;</span><span style="color: #000000">);<br />
&nbsp;</span><span style="color: #0000BB">xe&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;(&nbsp;</span><span style="color: #0000BB">bar&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;</span><span style="color: #0000BB">BarWidth</span><span style="color: #000000">;<br />
&nbsp;</span><span style="color: #0000BB">ye&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">BarHeight&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;(&nbsp;-</span><span style="color: #0000BB">miny&nbsp;</span><span style="color: #000000">)/(&nbsp;</span><span style="color: #0000BB">maxy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">miny&nbsp;</span><span style="color: #000000">)&nbsp;);<br />
&nbsp;&nbsp;<br />
&nbsp;if(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">)<br />
&nbsp;{<br />
&nbsp;</span><span style="color: #0000BB">GfxGradientRect</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">xp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">xe&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">ye</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ColorHSB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">70</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">relpos</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">ColorHSB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">70</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">20</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">)&nbsp;);&nbsp;<br />
&nbsp;}<br />
&nbsp;else<br />
&nbsp;{<br />
&nbsp;</span><span style="color: #0000BB">GfxGradientRect</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">xp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">ye</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">xe&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ColorHSB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">20</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">ColorHSB</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">relpos&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">255&nbsp;</span><span style="color: #000000">)&nbsp;);&nbsp;<br />
&nbsp;}<br />
&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">text</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">xp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">ye&nbsp;</span><span style="color: #000000">);<br />
&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrFormat</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;%.2f&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">xp</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">);<br />
}&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>function&nbsp;</span><span style="color: #0000BB">DrawLevels</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Miny</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny</span><span style="color: #000000">;</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #000000">;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">20&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">50&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">5</span><span style="color: #000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">100&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">200&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">20</span><span style="color: #000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">500&nbsp;</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">50</span><span style="color: #000000">;</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">_TRACE</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;grid&nbsp;=&nbsp;&quot;</span><span style="color: #000000">+</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">+</span><span style="color: #DD0000">&quot;&nbsp;range&nbsp;&quot;</span><span style="color: #000000">+</span><span style="color: #0000BB">range&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">width&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxwidth&quot;</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">XOffset</span><span style="color: #000000">;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">height&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Status</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;pxheight&quot;</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">YOffset</span><span style="color: #000000">;</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">GfxSelectPen</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;for(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">ceil</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">/&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">);&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">floor</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">/&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">);&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">+=&nbsp;</span><span style="color: #0000BB">grid&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">=&nbsp;&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">Height&nbsp;</span><span style="color: #000000">*&nbsp;(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;&nbsp;(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">)&nbsp;/&nbsp;(</span><span style="color: #0000BB">Maxy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Miny&nbsp;</span><span style="color: #000000">)&nbsp;);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">GfxMoveTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">GfxLineTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">width&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;&quot;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">width</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">yp&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">GfxSelectPen</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxMoveTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxLineTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">width</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxLineTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">width</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">Height&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxLineTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">Height&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxLineTo</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">XOffset&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">YOffset&nbsp;</span><span style="color: #000000">);<br />
}</p>
<p></span><span style="color: #0000BB">MonthNames&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #DD0000">&quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec&quot;</span><span style="color: #000000">;</p>
<p>function&nbsp;</span><span style="color: #0000BB">DisplayProfitTable</span><span style="color: #000000">(&nbsp;)<br />
{<br />
&nbsp;</span><span style="color: #0000BB">Header&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #DD0000">&quot;Year,&quot;</span><span style="color: #000000">+</span><span style="color: #0000BB">MonthNames</span><span style="color: #000000">+</span><span style="color: #DD0000">&quot;,Yr&nbsp;Profit%&quot;</span><span style="color: #000000">;<br />
&nbsp;for(&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;(</span><span style="color: #0000BB">Colname&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">StrExtract</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Header</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">)&nbsp;)&nbsp;!=&nbsp;</span><span style="color: #DD0000">&quot;&quot;</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">Col</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">ColName</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Col&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}</p>
<p>&nbsp;</span><span style="color: #0000BB">Row&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;<br />
&nbsp;for(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">FirstYr</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">LastYr</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrFormat</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;%g&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrFormat</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;%.1f%%&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;ChgYear&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">)&nbsp;),&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">13&nbsp;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;for(&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;ChgMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #DD0000">&quot;-&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrFormat</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;%.1f%%&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;N/A&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">++;<br />
&nbsp;}&nbsp;</p>
<p>&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Mon.&nbsp;Avg&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);<br />
&nbsp;for(&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">PrintInCell</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrFormat</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;%.1f%%&quot;</span><span style="color: #000000">,&nbsp;&nbsp;</span><span style="color: #0000BB">Nz</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumChgMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #000000">)/</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">)&nbsp;)&nbsp;),&nbsp;</span><span style="color: #0000BB">Row</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">m&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}</p>
<p>}</p>
<p>function&nbsp;</span><span style="color: #0000BB">DisplayYearlyProfits</span><span style="color: #000000">()<br />
{<br />
&nbsp;</span><span style="color: #0000BB">Bar&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
&nbsp;for(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">FirstYr</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">LastYr</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;ChgYear&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DrawBar</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;&quot;</span><span style="color: #000000">+</span><span style="color: #0000BB">y</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Bar</span><span style="color: #000000">++,&nbsp;(&nbsp;</span><span style="color: #0000BB">LastYr&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">FirstYr&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">Chg</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MinYrProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MaxYrProfit&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}<br />
&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Yearly&nbsp;%&nbsp;Profit&nbsp;chart&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;</span><span style="color: #0000BB">DrawLevels</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MinYrProfit</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MaxYrProfit&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}</p>
<p>function&nbsp;</span><span style="color: #0000BB">DisplayMonthlyProfits</span><span style="color: #000000">()<br />
{<br />
&nbsp;</span><span style="color: #0000BB">Bar&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
&nbsp;<br />
&nbsp;</span><span style="color: #0000BB">MinAvgProf&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">MaxAvgProf&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
&nbsp;for(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumChgMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">)&nbsp;/&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MinAvgProf&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Min</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MinAvgProf</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MaxAvgProf&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Max</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MaxAvgProf</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}</p>
<p>&nbsp;for(&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">&lt;=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Chg&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumChgMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">)&nbsp;/&nbsp;</span><span style="color: #0000BB">VarGet</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;SumMon&quot;&nbsp;</span><span style="color: #000000">+&nbsp;</span><span style="color: #0000BB">y&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DrawBar</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">StrExtract</span><span style="color: #000000">(</span><span style="color: #0000BB">MonthNames</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">y</span><span style="color: #000000">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">Bar</span><span style="color: #000000">++,&nbsp;</span><span style="color: #0000BB">13</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Chg</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MinAvgProf&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MaxAvgProf&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}<br />
&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Avg.&nbsp;Monthly&nbsp;%&nbsp;Profit&nbsp;chart&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">);</p>
<p>&nbsp;</span><span style="color: #0000BB">DrawLevels</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MinAvgProf&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">MaxAvgProf&nbsp;</span><span style="color: #000000">);&nbsp;<br />
}</p>
<p></span><span style="color: #007000">///////////////////////////<br />
//&nbsp;This&nbsp;function&nbsp;checks&nbsp;if&nbsp;currently&nbsp;selected&nbsp;symbol<br />
//&nbsp;is&nbsp;portfolio&nbsp;equity<br />
//////////////////////////<br />
</span><span style="color: #000000">function&nbsp;</span><span style="color: #0000BB">CheckSymbol</span><span style="color: #000000">()<br />
{<br />
&nbsp;if(&nbsp;</span><span style="color: #0000BB">Name</span><span style="color: #000000">()&nbsp;!=&nbsp;</span><span style="color: #DD0000">&quot;~~~EQUITY&quot;&nbsp;</span><span style="color: #000000">)<br />
&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxSelectFont</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;Tahoma&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">20&nbsp;</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxSetBkMode</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">2&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">GfxTextOut</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;For&nbsp;accurate&nbsp;results&nbsp;switch&nbsp;to&nbsp;~~~EQUITY&nbsp;symbol&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">);<br />
&nbsp;}<br />
}</p>
<p></span><span style="color: #007000">////////////////////////////<br />
//&nbsp;Main&nbsp;program&nbsp;-&nbsp;chart&nbsp;type&nbsp;switch<br />
////////////////////////////<br />
</span><span style="color: #0000BB">type&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ParamList</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;Chart&nbsp;Type&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Profit&nbsp;Table|Yearly&nbsp;Profits|Avg.&nbsp;Monthly&nbsp;Profits&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);</p>
<p>switch(&nbsp;</span><span style="color: #0000BB">type&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;case&nbsp;</span><span style="color: #DD0000">&quot;Profit&nbsp;Table&quot;</span><span style="color: #000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DisplayProfitTable</span><span style="color: #000000">();&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;case&nbsp;</span><span style="color: #DD0000">&quot;Yearly&nbsp;Profits&quot;</span><span style="color: #000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DisplayYearlyProfits</span><span style="color: #000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;case&nbsp;</span><span style="color: #DD0000">&quot;Avg.&nbsp;Monthly&nbsp;Profits&quot;</span><span style="color: #000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DisplayMonthlyProfits</span><span style="color: #000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
}</p>
<p></span><span style="color: #0000BB">CheckSymbol</span><span style="color: #000000">();</p>
<p></span></code></p>
<p>Figure 1. Profit chart in table mode</p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits2.gif' title='Profit chart example 2'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits2.gif' alt='Profit chart example 2' /></a></p>
<p>Figure 2. Profit chart in yearly mode</p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits3.gif' title='Profit chart example 3'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits3.gif' alt='Profit chart example 3' /></a></p>
<p>Figure 3. Profit chart in monthly mode</p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits4.gif' title='Profit chart example 4'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/10/profits4.gif' alt='Profit chart example 4' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/10/11/low-level-gfx-example-yearlymonthly-profit-chart/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to detect the divergences</title>
		<link>http://www.amibroker.com/kb/2007/07/17/how-to-detect-the-divergences/</link>
		<comments>http://www.amibroker.com/kb/2007/07/17/how-to-detect-the-divergences/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 23:54:44 +0000</pubDate>
		<dc:creator>Marcin Gorzynski</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/07/17/how-to-detect-the-divergences/</guid>
		<description><![CDATA[There are many different ways to check for divergences. One of the simplest is to use Rate of change indicator and EXPLORATION feature of Automatic Analysis window:
- Analysis -&#62; Formula Editor
- enter:
 
//&#160;5&#160;day&#160;rate&#160;of&#160;change&#160;of&#160;close
PriceUp&#160;=&#160;ROC(&#160;C,&#160;5&#160;)&#160;&#62;&#160;0&#160;;&#160;
//&#160;5&#160;day&#160;rate&#160;of&#160;change&#160;of&#160;MACD&#160;histogram
MacdUP&#160;=&#160;ROC(&#160;MACD()&#160;-&#160;Signal(),&#160;5&#160;)&#160;&#62;&#160;0;&#160;
BullishDiv&#160;=&#160;NOT&#160;PriceUP&#160;AND&#160;MACDUp;
BearishDiv&#160;=&#160;PriceUP&#160;AND&#160;NOT&#160;MACDUp;
Filter&#160;=&#160;BullishDiv&#160;OR&#160;BearishDiv;
AddColumn(&#160;BullishDiv,&#160;&#34;Bullish&#160;Divergence&#34;,&#160;1.0,&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;colorDefault,&#160;IIf(BullishDiv,&#160;colorGreen,&#160;colorDefault&#160;)&#160;); 
AddColumn(&#160;BearishDiv&#160;,&#160;&#34;Bearish&#160;Divergence&#34;,&#160;1.0,&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;colorDefault,&#160;IIf(BearishDiv&#160;,&#160;colorRed,&#160;colorDefault)&#160;);

- Tools -&#62; Send to Auto-analysis
- Apply to: All Symbols, N last quotations = 1
- press EXPLORE
Tools -&#62; Send to Auto-analysis- Apply to: All [...]]]></description>
			<content:encoded><![CDATA[<p>There are many different ways to check for divergences. One of the simplest is to use <strong>Rate of change</strong> indicator and <strong>EXPLORATION</strong> feature of Automatic Analysis window:</p>
<p>- Analysis -&gt; Formula Editor<br />
- enter:<br />
 <br />
<code><span></span><span style="color: #007000">//&nbsp;5&nbsp;day&nbsp;rate&nbsp;of&nbsp;change&nbsp;of&nbsp;close<br />
</span><span style="color: #0000BB">PriceUp&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ROC</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">5&nbsp;</span><span style="color: #000000">)&nbsp;&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #007000">//&nbsp;5&nbsp;day&nbsp;rate&nbsp;of&nbsp;change&nbsp;of&nbsp;MACD&nbsp;histogram<br />
</span><span style="color: #0000BB">MacdUP&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">ROC</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MACD</span><span style="color: #000000">()&nbsp;-&nbsp;</span><span style="color: #0000BB">Signal</span><span style="color: #000000">(),&nbsp;</span><span style="color: #0000BB">5&nbsp;</span><span style="color: #000000">)&nbsp;&gt;&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #0000BB">BullishDiv&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">NOT&nbsp;PriceUP&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">MACDUp</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">BearishDiv&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">PriceUP&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">NOT&nbsp;MACDUp</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">Filter&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BullishDiv&nbsp;</span><span style="color: #000000">OR&nbsp;</span><span style="color: #0000BB">BearishDiv</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">AddColumn</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">BullishDiv</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Bullish&nbsp;Divergence&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">1.0</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">colorDefault</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(</span><span style="color: #0000BB">BullishDiv</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorGreen</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorDefault&nbsp;</span><span style="color: #000000">)&nbsp;);</span><span style="color: #0000BB"> <br />
AddColumn</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">BearishDiv&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Bearish&nbsp;Divergence&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">1.0</span><span style="color: #000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">colorDefault</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(</span><span style="color: #0000BB">BearishDiv&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorDefault</span><span style="color: #000000">)&nbsp;);<br />
</span></code></p>
<p>- Tools -&gt; Send to Auto-analysis<br />
- Apply to: All Symbols, N last quotations = 1<br />
- press EXPLORE</p>
<p>Tools -&gt; Send to Auto-analysis- Apply to: All Symbols, N last quotations = 1- press EXPLORE</p>
<p>A different approach can use linear regression instead:<br />
 <br />
<code><span></span><span style="color: #007000">//&nbsp;10&nbsp;day&nbsp;linear&nbsp;regression&nbsp;slope&nbsp;of&nbsp;close<br />
</span><span style="color: #0000BB">PriceUp&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">LinRegSlope</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">)&nbsp;&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #007000">//&nbsp;10&nbsp;day&nbsp;linear&nbsp;regression&nbsp;slope&nbsp;of&nbsp;MACD&nbsp;histogram<br />
</span><span style="color: #0000BB">MacdUP&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">LinRegSlope</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MACD</span><span style="color: #000000">()&nbsp;-&nbsp;</span><span style="color: #0000BB">Signal</span><span style="color: #000000">(),&nbsp;</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #000000">);&nbsp;<br />
</span></code></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/07/17/how-to-detect-the-divergences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to chart spreads?</title>
		<link>http://www.amibroker.com/kb/2007/03/26/how-to-chart-spreads/</link>
		<comments>http://www.amibroker.com/kb/2007/03/26/how-to-chart-spreads/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 12:58:33 +0000</pubDate>
		<dc:creator>Marcin Gorzynski</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/03/26/how-to-chart-spreads/</guid>
		<description><![CDATA[To create a spread chart (and other multi-security indicators / statistics etc.) one can use FOREIGN function which allows to refer to other symbols than currently selected:
It&#8217;s necessary to do the following:
- Analysis -&#62; Formula Editor
- enter the formula:

spread&#160;=&#160;Foreign(&#160;&#34;ticker1&#34;,&#160;&#34;C&#34;)&#160;-&#160;Foreign(&#160;&#34;ticker2&#34;,&#160;&#34;C&#34;);
Plot(&#160;spread,&#160;&#34;spread&#34;,&#160;colorRed);&#160;

- Tools -&#62; Apply Indicator
(replace ticker1, ticker2 with actual symbol names)
]]></description>
			<content:encoded><![CDATA[<p>To create a spread chart (and other multi-security indicators / statistics etc.) one can use <a title="FOREIGN" href="http://www.amibroker.com/f?foreign">FOREIGN</a> function which allows to refer to other symbols than currently selected:</p>
<p>It&#8217;s necessary to do the following:<br />
- Analysis -&gt; Formula Editor<br />
- enter the formula:</p>
<p><code><span></p>
<p>spread&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Foreign</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;ticker1&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;C&quot;</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">Foreign</span><span style="color: #000000">(&nbsp;</span><span style="color: #DD0000">&quot;ticker2&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;C&quot;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">spread</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;spread&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed</span><span style="color: #000000">);&nbsp;<br />
</span></code></p>
<p>- Tools -&gt; Apply Indicator<br />
(replace ticker1, ticker2 with actual symbol names)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/03/26/how-to-chart-spreads/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to plot a trailing stop in the Price chart</title>
		<link>http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/</link>
		<comments>http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 16:06:34 +0000</pubDate>
		<dc:creator>Marcin Gorzynski</dc:creator>
				<category><![CDATA[Indicators]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/</guid>
		<description><![CDATA[In this short article we will show how to calculate and plot trailing stop using two different methods. 
First method uses looping and it does not use ApplyStop() function as it does not plot stops &#8211; it only triggers them in backtest mode. The stop % level can be adjusted via PARAMETERS dalog.

StopLevel&#160;=&#160;1&#160;-&#160;Param(&#34;trailing&#160;stop&#160;%&#34;,&#160;3,&#160;0.1,&#160;10,&#160;0.1)/100;
Buy&#160;=&#160;Cross(&#160;MACD(),&#160;Signal()&#160;);
Sell&#160;=&#160;0;
trailARRAY&#160;=&#160;Null;
trailstop&#160;=&#160;0;
for(&#160;i&#160;=&#160;1;&#160;i&#160;&#60;&#160;BarCount;&#160;i++&#160;)
{
&#160;&#160;&#160;if(&#160;trailstop&#160;==&#160;0&#160;AND&#160;Buy[&#160;i&#160;]&#160;)&#160;
&#160;&#160;&#160;{&#160;
&#160;&#160;&#160;&#160;&#160;&#160;trailstop&#160;=&#160;High[&#160;i&#160;]&#160;*&#160;stoplevel;
&#160;&#160;&#160;}
&#160;&#160;&#160;else&#160;Buy[&#160;i&#160;]&#160;=&#160;0;&#160;//&#160;remove&#160;excess&#160;buy&#160;signals
&#160;&#160;&#160;if(&#160;trailstop&#160;&#62;&#160;0&#160;AND&#160;Low[&#160;i&#160;]&#160;&#60;&#160;trailstop&#160;)
&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;Sell[&#160;i&#160;]&#160;=&#160;1;
&#160;&#160;&#160;&#160;&#160;&#160;SellPrice[&#160;i&#160;]&#160;=&#160;trailstop;
&#160;&#160;&#160;&#160;&#160;&#160;trailstop&#160;=&#160;0;
&#160;&#160;&#160;}
&#160;&#160;&#160;if(&#160;trailstop&#160;&#62;&#160;0&#160;)
&#160;&#160;&#160;{&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;trailstop&#160;=&#160;Max(&#160;High[&#160;i&#160;]&#160;*&#160;stoplevel,&#160;trailstop&#160;);
&#160;&#160;&#160;&#160;&#160;&#160;trailARRAY[&#160;i&#160;]&#160;=&#160;trailstop;
&#160;&#160;&#160;}
}
PlotShapes(Buy*shapeUpArrow,colorGreen,0,Low);
PlotShapes(Sell*shapeDownArrow,colorRed,0,High);
Plot(&#160;Close,&#34;Price&#34;,colorBlack,styleBar);
Plot(&#160;trailARRAY,&#34;trailing&#160;stop&#160;level&#34;,&#160;colorRed&#160;);

 

Alternatively you can [...]]]></description>
			<content:encoded><![CDATA[<p>In this short article we will show how to calculate and plot trailing stop using two different methods. <span id="more-52"></span></p>
<p>First method uses looping and it does not use ApplyStop() function as it does not plot stops &#8211; it only triggers them in backtest mode. The stop % level can be adjusted via PARAMETERS dalog.</p>
<p><code><span></p>
<p>StopLevel&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">Param</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;trailing&nbsp;stop&nbsp;%&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #000000">)/</span><span style="color: #0000BB">100</span><span style="color: #000000">;</p>
<p></span><span style="color: #0000BB">Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Cross</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MACD</span><span style="color: #000000">(),&nbsp;</span><span style="color: #0000BB">Signal</span><span style="color: #000000">()&nbsp;);<br />
</span><span style="color: #0000BB">Sell&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">trailARRAY&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Null</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;</p>
<p>for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">BarCount</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">++&nbsp;)<br />
{</p>
<p>&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">Buy</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;)&nbsp;<br />
&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">High</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;*&nbsp;</span><span style="color: #0000BB">stoplevel</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;</span><span style="color: #0000BB">Buy</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;</span><span style="color: #007000">//&nbsp;remove&nbsp;excess&nbsp;buy&nbsp;signals</p>
<p>&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">if(&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">Low</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;&lt;&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Sell</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SellPrice</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #0000BB">trailstop</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Max</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">High</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;*&nbsp;</span><span style="color: #0000BB">stoplevel</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">trailstop&nbsp;</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">trailARRAY</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #0000BB">trailstop</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>}</p>
<p></span><span style="color: #0000BB">PlotShapes</span><span style="color: #000000">(</span><span style="color: #0000BB">Buy</span><span style="color: #000000">*</span><span style="color: #0000BB">shapeUpArrow</span><span style="color: #000000">,</span><span style="color: #0000BB">colorGreen</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">Low</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">PlotShapes</span><span style="color: #000000">(</span><span style="color: #0000BB">Sell</span><span style="color: #000000">*</span><span style="color: #0000BB">shapeDownArrow</span><span style="color: #000000">,</span><span style="color: #0000BB">colorRed</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">High</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Close</span><span style="color: #000000">,</span><span style="color: #DD0000">&quot;Price&quot;</span><span style="color: #000000">,</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,</span><span style="color: #0000BB">styleBar</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">trailARRAY</span><span style="color: #000000">,</span><span style="color: #DD0000">&quot;trailing&nbsp;stop&nbsp;level&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);</p>
<p></span></code><br />
 </p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/03/trailing.gif' title='Trailing stop plot'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/03/trailing.gif' alt='Trailing stop plot' /></a></p>
<p>Alternatively you can use code without looping, but then it requires Equity(1) to evaluate stops as shown in the example code below. Equity( 1 ) is the backtester-in-a-box that runs actual single-security backtest and when parameter 1 is passed it writes back signals (removing excessive ones and writing out all stops to Buy/Sell/Short/Cover arrays). </p>
<p><code><span></p>
<p>StopLevel&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Param</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;trailing&nbsp;stop&nbsp;%&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0.1&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">SetTradeDelays</span><span style="color: #000000">(</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">Buy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Cross</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">MACD</span><span style="color: #000000">(),&nbsp;</span><span style="color: #0000BB">Signal</span><span style="color: #000000">()&nbsp;);<br />
</span><span style="color: #0000BB">Sell&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;<br />
</span><span style="color: #0000BB">ApplyStop</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">stopTypeTrailing</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">stopModePercent</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">StopLevel</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">True&nbsp;</span><span style="color: #000000">);<br />
&nbsp;<br />
</span><span style="color: #0000BB">Equity</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">);&nbsp;</span><span style="color: #007000">//&nbsp;evaluate&nbsp;stops,&nbsp;all&nbsp;quotes</p>
<p></span><span style="color: #0000BB">InTrade&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Flip</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Buy</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">Sell&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">SetOption</span><span style="color: #000000">(</span><span style="color: #DD0000">&quot;EveryBarNullCheck&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">True&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">stopline&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">InTrade</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">HighestSince</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Buy</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">High&nbsp;</span><span style="color: #000000">)&nbsp;*&nbsp;(&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">0.01&nbsp;</span><span style="color: #000000">*&nbsp;</span><span style="color: #0000BB">StopLevel&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000BB">Null&nbsp;</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">PlotShapes</span><span style="color: #000000">(</span><span style="color: #0000BB">Buy</span><span style="color: #000000">*</span><span style="color: #0000BB">shapeUpArrow</span><span style="color: #000000">,</span><span style="color: #0000BB">colorGreen</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">Low</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">PlotShapes</span><span style="color: #000000">(</span><span style="color: #0000BB">Sell</span><span style="color: #000000">*</span><span style="color: #0000BB">shapeDownArrow</span><span style="color: #000000">,</span><span style="color: #0000BB">colorRed</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">,</span><span style="color: #0000BB">High</span><span style="color: #000000">);</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Close</span><span style="color: #000000">,</span><span style="color: #DD0000">&quot;Price&quot;</span><span style="color: #000000">,</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,</span><span style="color: #0000BB">styleBar</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">stopline</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;trailing&nbsp;stop&nbsp;line&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);<br />
</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to fill the area between two lines with a solid color</title>
		<link>http://www.amibroker.com/kb/2007/03/17/how-to-fill-the-area-between-two-lines-with-a-solid-color/</link>
		<comments>http://www.amibroker.com/kb/2007/03/17/how-to-fill-the-area-between-two-lines-with-a-solid-color/#comments</comments>
		<pubDate>Sun, 18 Mar 2007 02:01:15 +0000</pubDate>
		<dc:creator>Marcin Gorzynski</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/03/17/how-to-fill-the-area-between-two-lines-with-a-solid-color/</guid>
		<description><![CDATA[This example shows how to fill the area between Bollinger Bands with a solid color. 
To plot areas filled with solid color it is necessary to use styleCloud style:
To display a new indicator &#8211; do the following:
- Analysis -&#62; Formula Editor
- enter:
 

Plot(&#160;Close,&#160;&#34;Price&#34;,&#160;colorBlack,&#160;styleCandle);&#160;
btop&#160;=&#160;BBandTop(Close);
bbot&#160;=&#160;BBandBot(Close);
Plot(&#160;bbot&#160;,&#160;&#34;BBot&#34;,&#160;colorGreen,&#160;styleThick);
Plot(&#160;btop&#160;,&#160;&#34;BTop&#34;,&#160;colorGreen,&#160;styleThick);&#160;
PlotOHLC(&#160;btop,&#160;btop,&#160;bbot,&#160;bbot,&#160;&#34;&#34;,&#160;colorYellow,styleCloud&#160;);

 
 
- Tools -&#62; Apply Indicator
]]></description>
			<content:encoded><![CDATA[<p>This example shows how to fill the area between Bollinger Bands with a solid color. <span id="more-39"></span></p>
<p>To plot areas filled with solid color it is necessary to use <strong>styleCloud</strong> style:</p>
<p>To display a new indicator &#8211; do the following:<br />
- Analysis -&gt; Formula Editor<br />
- enter:<br />
 <br />
<code><span><br />
Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Close</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;Price&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorBlack</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">styleCandle</span><span style="color: #000000">);&nbsp;</p>
<p></span><span style="color: #0000BB">btop&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BBandTop</span><span style="color: #000000">(</span><span style="color: #0000BB">Close</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">bbot&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BBandBot</span><span style="color: #000000">(</span><span style="color: #0000BB">Close</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">bbot&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;BBot&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorGreen</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">styleThick</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">btop&nbsp;</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;BTop&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorGreen</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">styleThick</span><span style="color: #000000">);&nbsp;</p>
<p></span><span style="color: #0000BB">PlotOHLC</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">btop</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">btop</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">bbot</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">bbot</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorYellow</span><span style="color: #000000">,</span><span style="color: #0000BB">styleCloud&nbsp;</span><span style="color: #000000">);<br />
</span></code><br />
 <br />
 <br />
- Tools -&gt; Apply Indicator</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/03/17/how-to-fill-the-area-between-two-lines-with-a-solid-color/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Calendar day index</title>
		<link>http://www.amibroker.com/kb/2007/03/15/calendar-day-index/</link>
		<comments>http://www.amibroker.com/kb/2007/03/15/calendar-day-index/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 20:15:06 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
				<category><![CDATA[AFL]]></category>
		<category><![CDATA[Indicators]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/03/15/calendar-day-index/</guid>
		<description><![CDATA[Someone asked me recently how to count calendar days (not bars) that passed since first available quote. Here is a sample formula that shows how to do that. 

SetBarsRequired(1000000,0);
function&#160;TotalDays()
{
&#160;yy&#160;=&#160;Year();
&#160;dy&#160;=&#160;DayOfYear();
&#160;leapyear&#160;=&#160;(&#160;yy&#160;%&#160;4&#160;)&#160;==&#160;0&#160;AND&#160;yy&#160;!=&#160;2000;
&#160;yearlen&#160;=&#160;IIf(&#160;leapyear,&#160;366,&#160;365&#160;);&#160;
&#160;return&#160;yearlen&#160;*&#160;(yy&#160;-&#160;yy[&#160;0&#160;])&#160;+&#160;(dy&#160;-&#160;dy[0]);&#160;
}
td&#160;=&#160;TotalDays();
Plot(&#160;td,&#160;&#34;TotalDays&#34;,&#160;colorRed&#160;);&#160;

This function can be used to create some new interesting functions, for example the function that returns the value of array X calendar  days back. I [...]]]></description>
			<content:encoded><![CDATA[<p>Someone asked me recently how to count <strong>calendar days</strong> (not bars) that passed since first available quote. Here is a sample formula that shows how to do that. <span id="more-59"></span></p>
<p><code><span></p>
<p>SetBarsRequired</span><span style="color: #000000">(</span><span style="color: #0000BB">1000000</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">);</p>
<p>function&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">()<br />
{<br />
&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Year</span><span style="color: #000000">();<br />
&nbsp;</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">DayOfYear</span><span style="color: #000000">();</p>
<p>&nbsp;</span><span style="color: #0000BB">leapyear&nbsp;</span><span style="color: #000000">=&nbsp;(&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">%&nbsp;</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #000000">)&nbsp;==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">!=&nbsp;</span><span style="color: #0000BB">2000</span><span style="color: #000000">;</p>
<p>&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">leapyear</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">366</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">365&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">*&nbsp;(</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">yy</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">])&nbsp;+&nbsp;(</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">dy</span><span style="color: #000000">[</span><span style="color: #0000BB">0</span><span style="color: #000000">]);&nbsp;<br />
}</p>
<p></span><span style="color: #0000BB">td&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">();</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">td</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;TotalDays&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);&nbsp;<br />
</span></code></p>
<p>This function can be used to create some new interesting functions, for example the function that returns the value of array X <strong>calendar </strong> days back. I call it RefDays() because the syntax is almost the same as Ref() but it just uses calendar DAYS instead of bars.<br />
Note that the function for simplicity handles only PAST references (&#8217;days&#8217; parameter is negative).</p>
<p><code><span></p>
<p>SetBarsRequired</span><span style="color: #000000">(</span><span style="color: #0000BB">1000000</span><span style="color: #000000">,</span><span style="color: #0000BB">0</span><span style="color: #000000">);</p>
<p>function&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">()<br />
{<br />
&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Year</span><span style="color: #000000">();<br />
&nbsp;</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">DayOfYear</span><span style="color: #000000">();</p>
<p>&nbsp;</span><span style="color: #0000BB">leapyear&nbsp;</span><span style="color: #000000">=&nbsp;(&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">%&nbsp;</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #000000">)&nbsp;==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">!=&nbsp;</span><span style="color: #0000BB">2000</span><span style="color: #000000">;</p>
<p>&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">leapyear</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">366</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">365&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">*&nbsp;(</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">yy</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">])&nbsp;+&nbsp;(</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">dy</span><span style="color: #000000">[</span><span style="color: #0000BB">0</span><span style="color: #000000">]);&nbsp;<br />
}</p>
<p>function&nbsp;</span><span style="color: #0000BB">RefDays</span><span style="color: #000000">(&nbsp;Array,&nbsp;</span><span style="color: #0000BB">Days&nbsp;</span><span style="color: #000000">)<br />
{<br />
&nbsp;&nbsp;</span><span style="color: #0000BB">td&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">();</p>
<p>&nbsp;&nbsp;</span><span style="color: #0000BB">result&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Null</span><span style="color: #000000">;</p>
<p>&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">Days&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">BarCount&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000BB">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">&gt;=&nbsp;-</span><span style="color: #0000BB">Days</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;</span><span style="color: #0000BB">j&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">j&nbsp;</span><span style="color: #000000">&lt;&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000BB">j</span><span style="color: #000000">++&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">td</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">j&nbsp;</span><span style="color: #000000">]&nbsp;&lt;=&nbsp;</span><span style="color: #0000BB">td</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;+&nbsp;</span><span style="color: #0000BB">Days&nbsp;</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">result</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">]&nbsp;=&nbsp;Array[&nbsp;</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">j&nbsp;</span><span style="color: #000000">];&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">j&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">i</span><span style="color: #000000">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">result</span><span style="color: #000000">;<br />
}</p>
<p></span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;</span><span style="color: #DD0000">&quot;C&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorRed&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">Ref</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;-</span><span style="color: #0000BB">252&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #DD0000">&quot;Close&nbsp;252&nbsp;bars&nbsp;back&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorBlue&nbsp;</span><span style="color: #000000">);<br />
</span><span style="color: #0000BB">Plot</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">RefDays</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">C</span><span style="color: #000000">,&nbsp;-</span><span style="color: #0000BB">365&nbsp;</span><span style="color: #000000">),&nbsp;</span><span style="color: #DD0000">&quot;Close&nbsp;365&nbsp;days&nbsp;back&quot;</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">colorGreen&nbsp;</span><span style="color: #000000">);<br />
</span></code></p>
<p>As above example shows referencing 365 calendar days back is not very different from referencing 252 trading EOD bars back, so for most applications it seems not worth the effort of using exact calendar day differences.</p>
<p>In the last example I want to show how to calculate number of calendar days in a range selected using begin/end markers (double click to mark begin and double click again to mark end).</p>
<p><code><span></p>
<p></span><span style="color: #000000">function&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">()<br />
{<br />
&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">Year</span><span style="color: #000000">();<br />
&nbsp;</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">DayOfYear</span><span style="color: #000000">();</p>
<p>&nbsp;</span><span style="color: #0000BB">leapyear&nbsp;</span><span style="color: #000000">=&nbsp;(&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">%&nbsp;</span><span style="color: #0000BB">4&nbsp;</span><span style="color: #000000">)&nbsp;==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">AND&nbsp;</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">!=&nbsp;</span><span style="color: #0000BB">2000</span><span style="color: #000000">;</p>
<p>&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">IIf</span><span style="color: #000000">(&nbsp;</span><span style="color: #0000BB">leapyear</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">366</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000BB">365&nbsp;</span><span style="color: #000000">);&nbsp;</p>
<p>&nbsp;return&nbsp;</span><span style="color: #0000BB">yearlen&nbsp;</span><span style="color: #000000">*&nbsp;(</span><span style="color: #0000BB">yy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">yy</span><span style="color: #000000">[&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #000000">])&nbsp;+&nbsp;(</span><span style="color: #0000BB">dy&nbsp;</span><span style="color: #000000">-&nbsp;</span><span style="color: #0000BB">dy</span><span style="color: #000000">[</span><span style="color: #0000BB">0</span><span style="color: #000000">]);&nbsp;<br />
}</p>
<p></span><span style="color: #0000BB">td&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #0000BB">TotalDays</span><span style="color: #000000">();</p>
<p></span><span style="color: #0000BB">Title&nbsp;</span><span style="color: #000000">=&nbsp;</span><span style="color: #DD0000">&quot;Number&nbsp;of&nbsp;days&nbsp;in&nbsp;selected&nbsp;range&nbsp;=&nbsp;&quot;&nbsp;</span><span style="color: #000000">+&nbsp;(&nbsp;</span><span style="color: #0000BB">EndValue</span><span style="color: #000000">(</span><span style="color: #0000BB">td</span><span style="color: #000000">)&nbsp;-&nbsp;</span><span style="color: #0000BB">BeginValue</span><span style="color: #000000">(</span><span style="color: #0000BB">td</span><span style="color: #000000">)&nbsp;);<br />
</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/03/15/calendar-day-index/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

