<?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"
	>

<channel>
	<title>AmiBroker Knowledge Base</title>
	<atom:link href="http://www.amibroker.com/kb/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>
	<pubDate>Thu, 24 Apr 2008 08:46:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<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><font color="#0000BB">GfxSetOverlayMode</font><font color="#000000">(</font><font color="#0000BB">1</font><font color="#000000">);<br />
</font><font color="#0000BB">GfxSelectFont</font><font color="#000000">(</font><font color="#DD0000">&quot;Tahoma&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxheight&quot;</font><font color="#000000">)/</font><font color="#0000BB">2&nbsp;</font><font color="#000000">);<br />
</font><font color="#0000BB">GfxSetTextAlign</font><font color="#000000">(&nbsp;</font><font color="#0000BB">6&nbsp;</font><font color="#000000">);</font><font color="#007000">//&nbsp;center&nbsp;alignment<br />
</font><font color="#0000BB">GfxSetTextColor</font><font color="#000000">(&nbsp;</font><font color="#0000BB">ColorRGB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">200</font><font color="#000000">,&nbsp;</font><font color="#0000BB">200</font><font color="#000000">,&nbsp;</font><font color="#0000BB">200&nbsp;</font><font color="#000000">)&nbsp;);<br />
</font><font color="#0000BB">GfxSetBkMode</font><font color="#000000">(</font><font color="#0000BB">1</font><font color="#000000">);&nbsp;</font><font color="#007000">//&nbsp;transparent<br />
</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Name</font><font color="#000000">(),&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxwidth&quot;</font><font color="#000000">)/</font><font color="#0000BB">2</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxheight&quot;</font><font color="#000000">)/</font><font color="#0000BB">12&nbsp;</font><font color="#000000">);<br />
</font></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>
		</item>
		<item>
		<title>Getting started with automatic Walk-Forward optimization</title>
		<link>http://www.amibroker.com/kb/2008/02/12/getting-started-with-automatic-walk-forward-optimization/</link>
		<comments>http://www.amibroker.com/kb/2008/02/12/getting-started-with-automatic-walk-forward-optimization/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 12:54:31 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
		
		<category><![CDATA[AFL]]></category>

		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2008/02/12/getting-started-with-automatic-walk-forward-optimization/</guid>
		<description><![CDATA[Recently released AmiBroker 5.05 BETA features the automatic Walk-Forward Optimization mode.
The automatic Walk forward optimization is a system design and validation technique in which you optimize the parameter values on a past segment of market data (&#8221;in-sample&#8221;), then test the system forward in time on data following the optimization segment (&#8221;out-of-sample&#8221;). You evaluate the system [...]]]></description>
			<content:encoded><![CDATA[<p>Recently released AmiBroker 5.05 BETA features the automatic Walk-Forward Optimization mode.</p>
<p>The automatic Walk forward optimization is a system design and validation technique in which you optimize the parameter values on a past segment of market data (&#8221;in-sample&#8221;), then test the system forward in time on data following the optimization segment (&#8221;out-of-sample&#8221;). You evaluate the system based on how well it performs on the test data (&#8221;out-of-sample&#8221;), not the data it was optimized on. </p>
<p>To use Walk-Forward optimization please follow these steps:
<ol>
<li>Goto Tools->Automatic Analysis
<li>Click Settings button, then switch to &#8220;Walk-Forward tab&#8221;
<li>Here you can see Walk forward settings for In-sample optimization, out-of-sample backtest<br />
&#8220;Start&#8221; and &#8220;End&#8221; dates mark initial period begin / end<br />
This period will be moved forward by &#8220;Step&#8221; until the &#8220;End&#8221; reaches the &#8220;Last&#8221; date.<br />
The &#8220;Start&#8221; date can move forward by &#8220;step&#8221; too, or can be anchored (constant) if &#8220;Anchored&#8221; check is on.<br />
If you mark &#8220;Use today&#8221; then &#8220;Last&#8221; date entered will be ignored and TODAY (current date) will be used instead</p>
<p>By default an &#8220;EASY MODE&#8221; is selected which simplifies the process of setting up WF parameters.<br />
It assumes that:<br />
a) Out-of-sample segment immediatelly follows in-sample segment<br />
b) the length of out-of-sample segment equals to the walk-forward step</p>
<p>Based on these two assumptions the &#8220;EASY&#8221; mode takes in-sample END date and sets<br />
out-of-sample START date to the following day. Then adds in-sample STEP and this becomes out-of-sample END date.<br />
In-sample and Out-of-sample step values are set to the same values.</p>
<p>The &#8220;EASY&#8221; mode guarantees correctness of WF procedure settings.</p>
<p>In the &#8220;ADVANCED&#8221; mode, the user has complete control over all values, to the extent that<br />
they may not constitute valid WF procedure.<br />
The interface allows to selectivelly disable in-sample and out-of-sample phases using checkboxes at top<br />
(for special things like runnign sequential backtests without optimization). </p>
<p>All settings are immediatelly reflected in the PREVIEW list that shows all generated IS/OOS segments and their dates.</p>
<p>The &#8220;Optimization target&#8221; field defines the optimization raport COLUMN NAME that<br />
will be used for sorting results and finding the BEST one. Any built-in column can be used<br />
(as appears in the optimization output), or you can use any custom metric that you define<br />
in custom backtester. The default is CAR/MDD, you can however select any other built-in metric from the combo.<br />
You can also TYPE-IN any custom metric that you have added via custom backtester interface.</p>
<li>Once you defined Walk-Forward settings, please go to Automatic Analysis and
<li>press the dropdown ARROW on the Optimize button and select &#8220;Walk Forward Optimization&#8221;
</ol>
<p>This will run sequence of optimizaitons and backtest and the results will be displayed in the &#8220;Walk Forward&#8221; document that is open in the main application frame.<br />
When optimization is running you can click &#8220;MINIMIZE&#8221; button on the Progress dialog to minimize it - this allows to see the Walk Forward output during the optimization steps.</p>
<p><b>IN-SAMPLE and OUT-OF-SAMPLE combined equity</b></p>
<p>Combined in-sample and out-sample equities are available by<br />
~~~ISEQUITY and ~~~OSEQUITY composite tickers (consecutive periods of IS and OOS are concatenated and scaled to<br />
maintain continuity of equity line - this approach assumes that you generally speaking are compounding profits)<br />
To display IS and OOS equity you may use for example this:</p>
<p><code><font color="#0000BB">PlotForeign</font><font color="#000000">(</font><font color="#DD0000">&quot;~~~ISEQUITY&quot;</font><font color="#000000">,</font><font color="#DD0000">&quot;In-Sample&nbsp;Equity&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorRed</font><font color="#000000">,&nbsp;</font><font color="#0000BB">styleLine</font><font color="#000000">);&nbsp;<br />
</font><font color="#0000BB">PlotForeign</font><font color="#000000">(</font><font color="#DD0000">&quot;~~~OSEQUITY&quot;</font><font color="#000000">,</font><font color="#DD0000">&quot;Out-Of-Sample&nbsp;Equity&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorGreen</font><font color="#000000">,&nbsp;</font><font color="#0000BB">styleLine</font><font color="#000000">);&nbsp;<br />
</font><font color="#0000BB">Title&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#DD0000">&quot;{{NAME}}&nbsp;-&nbsp;{{INTERVAL}}&nbsp;{{DATE}}&nbsp;{{VALUES}}&quot;</font><font color="#000000">;&nbsp;<br />
</font></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2008/02/12/getting-started-with-automatic-walk-forward-optimization/feed/</wfw:commentRss>
		</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 - 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 - portfolio equity symbol (so it only produces output if you run backtest before using it). </p>
<p><code><font color="#0000BB"></p>
<p>SetBarsRequired</font><font color="#000000">(</font><font color="#0000BB">1000000</font><font color="#000000">,</font><font color="#0000BB">1000000</font><font color="#000000">);<br />
</font><font color="#0000BB">eq&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Foreign</font><font color="#000000">(</font><font color="#DD0000">&quot;~~~EQUITY&quot;</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;C&quot;&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">yr&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Year</font><font color="#000000">();<br />
</font><font color="#0000BB">mo&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Month</font><font color="#000000">();</p>
<p></font><font color="#0000BB">YearChange&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">yr&nbsp;</font><font color="#000000">!=&nbsp;</font><font color="#0000BB">Ref</font><font color="#000000">(&nbsp;</font><font color="#0000BB">yr</font><font color="#000000">,&nbsp;-</font><font color="#0000BB">1&nbsp;</font><font color="#000000">);<br />
</font><font color="#0000BB">MonChange&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">mo&nbsp;</font><font color="#000000">!=&nbsp;</font><font color="#0000BB">Ref</font><font color="#000000">(&nbsp;</font><font color="#0000BB">mo</font><font color="#000000">,&nbsp;-</font><font color="#0000BB">1&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">FirstYr&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
</font><font color="#0000BB">LastYr&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;</p>
<p></font><font color="#0000BB">startbar&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;</p>
<p></font><font color="#007000">////////////////////////////<br />
//&nbsp;SKIP&nbsp;non-trading&nbsp;bars<br />
////////////////////////////<br />
</font><font color="#000000">for(&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">BarCount</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i</font><font color="#000000">++&nbsp;)<br />
{<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">startbar&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">i</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}&nbsp;<br />
}</p>
<p></font><font 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></font><font color="#0000BB">LastYrValue&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">startbar&nbsp;&nbsp;</font><font color="#000000">];<br />
</font><font color="#0000BB">LastMoValue&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">startbar&nbsp;&nbsp;</font><font color="#000000">];</p>
<p></font><font color="#0000BB">MaxYrProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">MinYrProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
</font><font color="#0000BB">MaxMoProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">MinMoProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;</p>
<p>for(&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">startbar&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">BarCount</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i</font><font color="#000000">++&nbsp;)<br />
{<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">YearChange</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;||&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">BarCount&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">100&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;-</font><font color="#0000BB">1&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;/&nbsp;</font><font color="#0000BB">LastYrValue&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">VarSet</font><font color="#000000">(</font><font color="#DD0000">&quot;ChgYear&quot;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">yr</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">],&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MaxYrProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Max</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MaxYrProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MinYrProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Min</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MinYrProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">FirstYr&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">FirstYr&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">yr</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">LastYr&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">yr</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">LastYrValue&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">];<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">MonChange&nbsp;</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;||&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">BarCount&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">mon&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">mo</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">100&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;-</font><font color="#0000BB">1&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;/&nbsp;</font><font color="#0000BB">LastMoValue&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">VarSet</font><font color="#000000">(</font><font color="#DD0000">&quot;ChgMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">yr</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">]&nbsp;+&nbsp;</font><font color="#DD0000">&quot;-&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">mon</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">VarSet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumChgMon&quot;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">mon</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">Nz</font><font color="#000000">(&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumChgMon&quot;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">mon&nbsp;</font><font color="#000000">)&nbsp;)&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">VarSet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">mon</font><font color="#000000">,&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">Nz</font><font color="#000000">(&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumMon&quot;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">mon&nbsp;</font><font color="#000000">)&nbsp;)&nbsp;);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MaxMoProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Max</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MaxMoProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MinMoProfit&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Min</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MinMoProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">LastMoValue&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">eq</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">];<br />
&nbsp;&nbsp;}<br />
}</p>
<p></font><font color="#007000">/////////////////////////////////////////////////<br />
//&nbsp;Drawing&nbsp;code&nbsp;&amp;&nbsp;helper&nbsp;functions<br />
////////////////////////////////////////////////</p>
<p></font><font color="#0000BB">GfxSetOverlayMode</font><font color="#000000">(&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">CellHeight&nbsp;</font><font color="#000000">=&nbsp;(</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxheight&quot;</font><font color="#000000">)-</font><font color="#0000BB">1</font><font color="#000000">)/(</font><font color="#0000BB">LastYr&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">FirstYr&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">3&nbsp;</font><font color="#000000">);&nbsp;<br />
</font><font color="#0000BB">CellWidth&nbsp;</font><font color="#000000">=&nbsp;(</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxwidth&quot;</font><font color="#000000">)-</font><font color="#0000BB">1</font><font color="#000000">)/</font><font color="#0000BB">14</font><font color="#000000">;&nbsp;<br />
</font><font color="#0000BB">GfxSelectFont</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;Tahoma&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">8.5&nbsp;</font><font color="#000000">);&nbsp;</p>
<p></font><font color="#0000BB">GfxSetBkMode</font><font color="#000000">(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">);</p>
<p>function&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">string</font><font color="#000000">,&nbsp;</font><font color="#0000BB">row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">)&nbsp;<br />
{<br />
&nbsp;</font><font color="#0000BB">Color&nbsp;</font><font color="#000000">=&nbsp;&nbsp;</font><font color="#0000BB">ColorRGB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">IIf</font><font color="#000000">(&nbsp;</font><font color="#0000BB">row&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">||&nbsp;</font><font color="#0000BB">col&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">||&nbsp;</font><font color="#0000BB">col&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">13</font><font color="#000000">,&nbsp;</font><font color="#0000BB">220</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">255</font><font color="#000000">,&nbsp;</font><font color="#0000BB">IIf</font><font color="#000000">(&nbsp;</font><font color="#0000BB">row&nbsp;</font><font color="#000000">%&nbsp;</font><font color="#0000BB">2</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255</font><font color="#000000">,&nbsp;</font><font color="#0000BB">220&nbsp;</font><font color="#000000">)&nbsp;);<br />
&nbsp;</font><font color="#0000BB">GfxSelectSolidBrush</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Color&nbsp;&nbsp;&nbsp;</font><font color="#000000">);<br />
&nbsp;</font><font color="#0000BB">GfxRectangle</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">CellWidth</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">row&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">CellHeight</font><font color="#000000">,&nbsp;(</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">CellWidth&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</font><font color="#0000BB">row&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">CellHeight&nbsp;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1</font><font color="#000000">);&nbsp;<br />
&nbsp;</font><font color="#0000BB">GfxDrawText</font><font color="#000000">(&nbsp;</font><font color="#0000BB">string</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">CellWidth&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">row&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">CellHeight&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">CellWidth</font><font color="#000000">,&nbsp;(</font><font color="#0000BB">row&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">CellHeight</font><font color="#000000">,&nbsp;</font><font color="#0000BB">32</font><font color="#000000">+</font><font color="#0000BB">5&nbsp;</font><font color="#000000">);&nbsp;<br />
}&nbsp;</p>
<p></font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">25</font><font color="#000000">;<br />
</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">15</font><font color="#000000">;</p>
<p>function&nbsp;</font><font color="#0000BB">DrawBar</font><font color="#000000">(&nbsp;</font><font color="#0000BB">text</font><font color="#000000">,&nbsp;</font><font color="#0000BB">bar</font><font color="#000000">,&nbsp;</font><font color="#0000BB">numbars</font><font color="#000000">,&nbsp;</font><font color="#0000BB">y</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Miny</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">)<br />
{<br />
&nbsp;</font><font color="#0000BB">BarWidth&nbsp;</font><font color="#000000">=&nbsp;(</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxwidth&quot;</font><font color="#000000">)&nbsp;-&nbsp;</font><font color="#0000BB">4&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">)/(&nbsp;</font><font color="#0000BB">numbars&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">);&nbsp;<br />
&nbsp;</font><font color="#0000BB">BarHeight&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxheight&quot;</font><font color="#000000">)&nbsp;-&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">YOffset</font><font color="#000000">;<br />
&nbsp;</font><font color="#0000BB">relpos&nbsp;</font><font color="#000000">=&nbsp;(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Miny&nbsp;</font><font color="#000000">)&nbsp;/&nbsp;(</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Miny&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;</font><font color="#0000BB">xp&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;(&nbsp;</font><font color="#0000BB">bar&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">0.5&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">BarWidth</font><font color="#000000">;<br />
&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">BarHeight&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">relpos&nbsp;</font><font color="#000000">);<br />
&nbsp;</font><font color="#0000BB">xe&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;(&nbsp;</font><font color="#0000BB">bar&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;</font><font color="#0000BB">BarWidth</font><font color="#000000">;<br />
&nbsp;</font><font color="#0000BB">ye&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">BarHeight&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;(&nbsp;-</font><font color="#0000BB">miny&nbsp;</font><font color="#000000">)/(&nbsp;</font><font color="#0000BB">maxy&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">miny&nbsp;</font><font color="#000000">)&nbsp;);<br />
&nbsp;&nbsp;<br />
&nbsp;if(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&gt;&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">)<br />
&nbsp;{<br />
&nbsp;</font><font color="#0000BB">GfxGradientRect</font><font color="#000000">(&nbsp;</font><font color="#0000BB">xp</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">xe&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">ye</font><font color="#000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">ColorHSB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">70</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">relpos</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">ColorHSB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">70</font><font color="#000000">,&nbsp;</font><font color="#0000BB">20</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">)&nbsp;);&nbsp;<br />
&nbsp;}<br />
&nbsp;else<br />
&nbsp;{<br />
&nbsp;</font><font color="#0000BB">GfxGradientRect</font><font color="#000000">(&nbsp;</font><font color="#0000BB">xp</font><font color="#000000">,&nbsp;</font><font color="#0000BB">ye</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">xe&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp</font><font color="#000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">ColorHSB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">0</font><font color="#000000">,&nbsp;</font><font color="#0000BB">20</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">ColorHSB</font><font color="#000000">(&nbsp;</font><font color="#0000BB">0</font><font color="#000000">,&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">relpos&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">255&nbsp;</font><font color="#000000">)&nbsp;);&nbsp;<br />
&nbsp;}<br />
&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(&nbsp;</font><font color="#0000BB">text</font><font color="#000000">,&nbsp;</font><font color="#0000BB">xp</font><font color="#000000">,&nbsp;</font><font color="#0000BB">ye&nbsp;</font><font color="#000000">);<br />
&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrFormat</font><font color="#000000">(</font><font color="#DD0000">&quot;%.2f&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">xp</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">);<br />
}&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>function&nbsp;</font><font color="#0000BB">DrawLevels</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Miny</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">)<br />
{<br />
&nbsp;&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Miny</font><font color="#000000">;</p>
<p>&nbsp;&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">100</font><font color="#000000">;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">20&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">2</font><font color="#000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">50&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">5</font><font color="#000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">100&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">10</font><font color="#000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">200&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">20</font><font color="#000000">;<br />
&nbsp;&nbsp;else&nbsp;<br />
&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">range&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">500&nbsp;</font><font color="#000000">)&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">50</font><font color="#000000">;</p>
<p>&nbsp;&nbsp;</font><font color="#0000BB">_TRACE</font><font color="#000000">(</font><font color="#DD0000">&quot;grid&nbsp;=&nbsp;&quot;</font><font color="#000000">+</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">+</font><font color="#DD0000">&quot;&nbsp;range&nbsp;&quot;</font><font color="#000000">+</font><font color="#0000BB">range&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</font><font color="#0000BB">width&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxwidth&quot;</font><font color="#000000">)&nbsp;-&nbsp;</font><font color="#0000BB">4&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">XOffset</font><font color="#000000">;<br />
&nbsp;&nbsp;</font><font color="#0000BB">height&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Status</font><font color="#000000">(</font><font color="#DD0000">&quot;pxheight&quot;</font><font color="#000000">)&nbsp;-&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">YOffset</font><font color="#000000">;</p>
<p>&nbsp;&nbsp;</font><font color="#0000BB">GfxSelectPen</font><font color="#000000">(&nbsp;</font><font color="#0000BB">colorBlack</font><font color="#000000">,&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;for(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">ceil</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Miny&nbsp;</font><font color="#000000">/&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">);&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">floor</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">/&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">);&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">+=&nbsp;</font><font color="#0000BB">grid&nbsp;</font><font color="#000000">)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">=&nbsp;&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">Height&nbsp;</font><font color="#000000">*&nbsp;(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;&nbsp;(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Miny&nbsp;</font><font color="#000000">)&nbsp;/&nbsp;(</font><font color="#0000BB">Maxy&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Miny&nbsp;</font><font color="#000000">)&nbsp;);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">GfxMoveTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">GfxLineTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">width&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;&quot;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y</font><font color="#000000">,&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">width</font><font color="#000000">,&nbsp;</font><font color="#0000BB">yp&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;</font><font color="#0000BB">GfxSelectPen</font><font color="#000000">(&nbsp;</font><font color="#0000BB">colorBlack</font><font color="#000000">,&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxMoveTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset</font><font color="#000000">,&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxLineTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">width</font><font color="#000000">,&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxLineTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">width</font><font color="#000000">,&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">Height&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxLineTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">Height&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxLineTo</font><font color="#000000">(&nbsp;</font><font color="#0000BB">XOffset&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">YOffset&nbsp;</font><font color="#000000">);<br />
}</p>
<p></font><font color="#0000BB">MonthNames&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#DD0000">&quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec&quot;</font><font color="#000000">;</p>
<p>function&nbsp;</font><font color="#0000BB">DisplayProfitTable</font><font color="#000000">(&nbsp;)<br />
{<br />
&nbsp;</font><font color="#0000BB">Header&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#DD0000">&quot;Year,&quot;</font><font color="#000000">+</font><font color="#0000BB">MonthNames</font><font color="#000000">+</font><font color="#DD0000">&quot;,Yr&nbsp;Profit%&quot;</font><font color="#000000">;<br />
&nbsp;for(&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;&nbsp;(</font><font color="#0000BB">Colname&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">StrExtract</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Header</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">)&nbsp;)&nbsp;!=&nbsp;</font><font color="#DD0000">&quot;&quot;</font><font color="#000000">;&nbsp;</font><font color="#0000BB">Col</font><font color="#000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">ColName</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Col&nbsp;</font><font color="#000000">);<br />
&nbsp;}</p>
<p>&nbsp;</font><font color="#0000BB">Row&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;<br />
&nbsp;for(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">FirstYr</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">LastYr</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y</font><font color="#000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrFormat</font><font color="#000000">(</font><font color="#DD0000">&quot;%g&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">);&nbsp;<br />
&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrFormat</font><font color="#000000">(</font><font color="#DD0000">&quot;%.1f%%&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;ChgYear&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">)&nbsp;),&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">13&nbsp;</font><font color="#000000">);&nbsp;<br />
&nbsp;&nbsp;for(&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">12</font><font color="#000000">;&nbsp;</font><font color="#0000BB">m</font><font color="#000000">++&nbsp;)<br />
&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;ChgMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#DD0000">&quot;-&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">m</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrFormat</font><font color="#000000">(</font><font color="#DD0000">&quot;%.1f%%&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;N/A&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">++;<br />
&nbsp;}&nbsp;</p>
<p>&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(</font><font color="#DD0000">&quot;Mon.&nbsp;Avg&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">);<br />
&nbsp;for(&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">12</font><font color="#000000">;&nbsp;</font><font color="#0000BB">m</font><font color="#000000">++&nbsp;)<br />
&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">PrintInCell</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrFormat</font><font color="#000000">(</font><font color="#DD0000">&quot;%.1f%%&quot;</font><font color="#000000">,&nbsp;&nbsp;</font><font color="#0000BB">Nz</font><font color="#000000">(&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumChgMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">m</font><font color="#000000">)/</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">)&nbsp;)&nbsp;),&nbsp;</font><font color="#0000BB">Row</font><font color="#000000">,&nbsp;</font><font color="#0000BB">m&nbsp;</font><font color="#000000">);<br />
&nbsp;}</p>
<p>}</p>
<p>function&nbsp;</font><font color="#0000BB">DisplayYearlyProfits</font><font color="#000000">()<br />
{<br />
&nbsp;</font><font color="#0000BB">Bar&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
&nbsp;for(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">FirstYr</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">LastYr</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y</font><font color="#000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;ChgYear&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">DrawBar</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;&quot;</font><font color="#000000">+</font><font color="#0000BB">y</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Bar</font><font color="#000000">++,&nbsp;(&nbsp;</font><font color="#0000BB">LastYr&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">FirstYr&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">Chg</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MinYrProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MaxYrProfit&nbsp;</font><font color="#000000">);<br />
&nbsp;}<br />
&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(</font><font color="#DD0000">&quot;Yearly&nbsp;%&nbsp;Profit&nbsp;chart&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;</font><font color="#0000BB">DrawLevels</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MinYrProfit</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MaxYrProfit&nbsp;</font><font color="#000000">);&nbsp;<br />
}</p>
<p>function&nbsp;</font><font color="#0000BB">DisplayMonthlyProfits</font><font color="#000000">()<br />
{<br />
&nbsp;</font><font color="#0000BB">Bar&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
&nbsp;<br />
&nbsp;</font><font color="#0000BB">MinAvgProf&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">MaxAvgProf&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
&nbsp;for(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">12</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y</font><font color="#000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumChgMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">)&nbsp;/&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MinAvgProf&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Min</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MinAvgProf</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">MaxAvgProf&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Max</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MaxAvgProf</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">);<br />
&nbsp;}</p>
<p>&nbsp;for(&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">&lt;=&nbsp;</font><font color="#0000BB">12</font><font color="#000000">;&nbsp;</font><font color="#0000BB">y</font><font color="#000000">++&nbsp;)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Chg&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumChgMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">)&nbsp;/&nbsp;</font><font color="#0000BB">VarGet</font><font color="#000000">(</font><font color="#DD0000">&quot;SumMon&quot;&nbsp;</font><font color="#000000">+&nbsp;</font><font color="#0000BB">y&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">DrawBar</font><font color="#000000">(&nbsp;</font><font color="#0000BB">StrExtract</font><font color="#000000">(</font><font color="#0000BB">MonthNames</font><font color="#000000">,&nbsp;</font><font color="#0000BB">y</font><font color="#000000">-</font><font color="#0000BB">1&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">Bar</font><font color="#000000">++,&nbsp;</font><font color="#0000BB">13</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Chg</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MinAvgProf&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MaxAvgProf&nbsp;</font><font color="#000000">);<br />
&nbsp;}<br />
&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(</font><font color="#DD0000">&quot;Avg.&nbsp;Monthly&nbsp;%&nbsp;Profit&nbsp;chart&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">);</p>
<p>&nbsp;</font><font color="#0000BB">DrawLevels</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MinAvgProf&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">MaxAvgProf&nbsp;</font><font color="#000000">);&nbsp;<br />
}</p>
<p></font><font 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 />
</font><font color="#000000">function&nbsp;</font><font color="#0000BB">CheckSymbol</font><font color="#000000">()<br />
{<br />
&nbsp;if(&nbsp;</font><font color="#0000BB">Name</font><font color="#000000">()&nbsp;!=&nbsp;</font><font color="#DD0000">&quot;~~~EQUITY&quot;&nbsp;</font><font color="#000000">)<br />
&nbsp;{<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxSelectFont</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;Tahoma&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">20&nbsp;</font><font color="#000000">);&nbsp;<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxSetBkMode</font><font color="#000000">(&nbsp;</font><font color="#0000BB">2&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;</font><font color="#0000BB">GfxTextOut</font><font color="#000000">(</font><font color="#DD0000">&quot;For&nbsp;accurate&nbsp;results&nbsp;switch&nbsp;to&nbsp;~~~EQUITY&nbsp;symbol&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">);<br />
&nbsp;}<br />
}</p>
<p></font><font color="#007000">////////////////////////////<br />
//&nbsp;Main&nbsp;program&nbsp;-&nbsp;chart&nbsp;type&nbsp;switch<br />
////////////////////////////<br />
</font><font color="#0000BB">type&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">ParamList</font><font color="#000000">(</font><font color="#DD0000">&quot;Chart&nbsp;Type&quot;</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;Profit&nbsp;Table|Yearly&nbsp;Profits|Avg.&nbsp;Monthly&nbsp;Profits&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">);</p>
<p>switch(&nbsp;</font><font color="#0000BB">type&nbsp;</font><font color="#000000">)<br />
{<br />
&nbsp;case&nbsp;</font><font color="#DD0000">&quot;Profit&nbsp;Table&quot;</font><font color="#000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">DisplayProfitTable</font><font color="#000000">();&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;case&nbsp;</font><font color="#DD0000">&quot;Yearly&nbsp;Profits&quot;</font><font color="#000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">DisplayYearlyProfits</font><font color="#000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;case&nbsp;</font><font color="#DD0000">&quot;Avg.&nbsp;Monthly&nbsp;Profits&quot;</font><font color="#000000">:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">DisplayMonthlyProfits</font><font color="#000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
}</p>
<p></font><font color="#0000BB">CheckSymbol</font><font color="#000000">();</p>
<p></font></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>
		</item>
		<item>
		<title>AmiQuote and free data from Yahoo</title>
		<link>http://www.amibroker.com/kb/2007/08/04/amiquote-and-free-data-from-yahoo/</link>
		<comments>http://www.amibroker.com/kb/2007/08/04/amiquote-and-free-data-from-yahoo/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 19:19:35 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
		
		<category><![CDATA[AmiQuote]]></category>

		<category><![CDATA[Data]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/08/04/amiquote-and-free-data-from-yahoo/</guid>
		<description><![CDATA[There are a couple of things you need to know about Yahoo Finance pages that AmiQuote uses to download &#8220;historical&#8221; and &#8220;current&#8221; quotes.
Current quotes are quotes for current day (or previous day if there is no trading session today). For example MSFT current quote page is here:
http://finance.yahoo.com/q?s=MSFT
AmiQuote uses rather &#8220;download data&#8221; link which is: http://download.finance.yahoo.com/d/quotes.csv?s=MSFT&#038;f=sl1d1t1c1ohgv&#038;e=.csv
But [...]]]></description>
			<content:encoded><![CDATA[<p>There are a couple of things you need to know about Yahoo Finance pages that AmiQuote uses to download &#8220;historical&#8221; and &#8220;current&#8221; quotes.</p>
<p>Current quotes are quotes for current day (or previous day if there is no trading session today). For example MSFT current quote page is here:<br />
<a href="http://finance.yahoo.com/q?s=MSFT">http://finance.yahoo.com/q?s=MSFT</a><br />
AmiQuote uses rather &#8220;download data&#8221; link which is: <a href="http://download.finance.yahoo.com/d/quotes.csv?s=MSFT&#038;f=sl1d1t1c1ohgv&#038;e=.csv">http://download.finance.yahoo.com/d/quotes.csv?s=MSFT&#038;f=sl1d1t1c1ohgv&#038;e=.csv</a><br />
But it is not relevant because both show same current quote.</p>
<p>Now there is a second source. Historical quotes are downloaded from Historical Prices page. For example MSFT historical page is here: <a href="http://finance.yahoo.com/q/hp?s=MSFT">http://finance.yahoo.com/q/hp?s=MSFT</a> (again AmiQuote uses rather plain text link: <a href="http://ichart.finance.yahoo.com/table.csv?s=MSFT&#038;d=7&#038;e=4&#038;f=2007&#038;g=d&#038;a=2&#038;b=13&#038;c=1986&#038;ignore=.csv">http://ichart.finance.yahoo.com/table.csv?s=MSFT&#038;d=7&#038;e=4&#038;f=2007&#038;g=d&#038;a=2&#038;b=13&#038;c=1986&#038;ignore=.csv</a> )</p>
<p>Why using two sources? That&#8217;s simple: current mode gives data during trading session, while historical is only updated many hours after markets close so both compliment each other. Current mode is also much faster as it downloads as many as 200 symbols at once, while historical must download one by one. So recommended usage is to use Yahoo Current mode everyday, and Yahoo Historical once a week.<br />
Of course you may use historical everyday as well if you have time and fast internet connection.</p>
<p>It is important to understand that AmiQuote is just the downloader (like Internet Explorer) and it does nothing except downloading the data, so if you belive that there is a bad quote - it is not AmiQuote, but rather Yahoo problem. To verify always go to relevant page (see links above) and check the quote on Yahoo Finance site directly.</p>
<p>It may happen that quotes on Yahoo Current page and Yahoo Historical pages differ. It is so because Yahoo gets them from different data vendors. If this happens the only solution is to report data error to Yahoo.</p>
<p>There are however 2 things you need to know about importing of data:
<ol>
<li>AmiBroker by default imports <strong>split and dividend adjusted data </strong>(&#8221;Adj. Close&#8221; on Yahoo Historical page). For more information on how data are adjusted see Yahoo Help page at: <a href="http://help.yahoo.com/l/us/yahoo/finance/quotes/quote-12.html">http://help.yahoo.com/l/us/yahoo/finance/quotes/quote-12.html</a></p>
<li>AmiBroker by default imports volume in HUNDREDS of shares (so if volume is 183,200 shares, the volume chart will show 1832)
</ol>
<p>These things are adjustable, so if you don&#8217;t like them, you can change them.<br />
The import process of historical quotes is controlled using <strong>aqh.format</strong> file that you will find inside &#8220;Formats&#8221; subfolder. By default it looks as follows (you can open it with Windows Notepad).</p>
<p><code># AmiQuote historical quotes download format (.AQH extension)<br />
<strong>$FORMAT Date_DMY,Open,High,Low,Close,Volume,AdjClose</strong><br />
$SKIPLINES 0<br />
$BREAKONERR 0<br />
$SEPARATOR ,<br />
$DEBUG 1<br />
$AUTOADD 1<br />
$CONT 1<br />
$GROUP 254<br />
<strong>$VOLFACTOR 0.01</strong><br />
</code></p>
<p>Lines marked with bold mark important areas.</p>
<p>$FORMAT line controls the import format. AdjClose field says that AmiBroker should use adjusted price. If you don&#8217;t want adjusted prices simply replace $FORMAT line with:</p>
<p><code>$FORMAT Date_DMY,Open,High,Low,Close,Volume</code><br />
(note no AdjClose field)</p>
<p>$VOLFACTOR line controls the volume multiplier. If you want volume to be expressed in single shares instead of hundreds of shares replace $VOLFACTOR line with:</p>
<p><code>$VOLFACTOR 1</code></p>
<p>The same $VOLFACTOR change should be applied to <strong>aqd.format</strong> file that is responsible for importing data in Yahoo CURRENT mode (if you are using it).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/08/04/amiquote-and-free-data-from-yahoo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to display the indicators based on Advances/Declines</title>
		<link>http://www.amibroker.com/kb/2007/07/30/how-to-display-the-indicators-based-on-advancesdeclines/</link>
		<comments>http://www.amibroker.com/kb/2007/07/30/how-to-display-the-indicators-based-on-advancesdeclines/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 12:01:59 +0000</pubDate>
		<dc:creator>support</dc:creator>
		
		<category><![CDATA[Charting]]></category>

		<category><![CDATA[Data]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/07/30/how-to-display-the-indicators-based-on-advancesdeclines/</guid>
		<description><![CDATA[In order to display indicators based on Advances/Declines first of all it&#8217;s necessary to calculate composities in the database:

Open Categories window using Symbol-&#62;Categories menu item.
Select base index for given market in Markets tab and Base indexes for - Composites combo.
For example if you are following NYSE this can by ^DIJ (Dow Jones Average)
(certain symbol must [...]]]></description>
			<content:encoded><![CDATA[<p>In order to display indicators based on Advances/Declines first of all it&#8217;s necessary to calculate composities in the database:
<ol>
<li>Open Categories window using <strong>Symbol-&gt;Categories</strong> menu item.</li>
<li>Select base index for given market in <strong>Markets</strong> tab and <strong>Base indexes for - Composites </strong>combo.<br />
For example if you are following NYSE this can by ^DIJ (Dow Jones Average)<br />
(certain symbol must be marked as index in <strong>Symbol -&gt; Information</strong> and must belong to the same market)
<li>Choose <strong>Symbol -&gt;Calculate composites</strong>  menu item to open the window shown below and mark:<br />
- Number of advancing/declining issues and<br />
- Apply to: all quotes, All markets
<li>Click <strong>Calculate </strong>. From now on ADLine, AdvVolume() and TRIN indicators will be visible.
</ol>
<p><strong>Q: Why does AB need &#8220;base index&#8221;?</strong><br />
A: Just because it may happen that not all stocks are quoted every businness day and AB needs must calculate number of advancing/declining issues per market. So it checks the &#8220;base index&#8221; quotations dates and tries to find corresponding quotes of all stocks belonging to that market to find out how many issues advanced, declined and not changed at all.</p>
<p><strong>Q: What are &#8220;Volume for base index&#8221; and &#8220;Copy volume to all indexes&#8221; checkboxes for?</strong><br />
A: &#8220;Volume for base index&#8221; and &#8220;Copy volume to all indexes&#8221; are provided in case you DON&#8217;T have real volume data for index quotes. In that case AmiBroker can calculate volume for index as a sum of volumes of all stocks belonging to given market. First option assigns calculated volume only to &#8220;base index&#8221;, the second copies the volume figure to all indexes belonging to given market.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/07/30/how-to-display-the-indicators-based-on-advancesdeclines/feed/</wfw:commentRss>
		</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>support</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><font color="#0000BB"></font><font color="#007000">//&nbsp;5&nbsp;day&nbsp;rate&nbsp;of&nbsp;change&nbsp;of&nbsp;close<br />
</font><font color="#0000BB">PriceUp&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">ROC</font><font color="#000000">(&nbsp;</font><font color="#0000BB">C</font><font color="#000000">,&nbsp;</font><font color="#0000BB">5&nbsp;</font><font color="#000000">)&nbsp;&gt;&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">;&nbsp;<br />
</font><font color="#007000">//&nbsp;5&nbsp;day&nbsp;rate&nbsp;of&nbsp;change&nbsp;of&nbsp;MACD&nbsp;histogram<br />
</font><font color="#0000BB">MacdUP&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">ROC</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MACD</font><font color="#000000">()&nbsp;-&nbsp;</font><font color="#0000BB">Signal</font><font color="#000000">(),&nbsp;</font><font color="#0000BB">5&nbsp;</font><font color="#000000">)&nbsp;&gt;&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;&nbsp;<br />
</font><font color="#0000BB">BullishDiv&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">NOT&nbsp;PriceUP&nbsp;</font><font color="#000000">AND&nbsp;</font><font color="#0000BB">MACDUp</font><font color="#000000">;<br />
</font><font color="#0000BB">BearishDiv&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">PriceUP&nbsp;</font><font color="#000000">AND&nbsp;</font><font color="#0000BB">NOT&nbsp;MACDUp</font><font color="#000000">;<br />
</font><font color="#0000BB">Filter&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">BullishDiv&nbsp;</font><font color="#000000">OR&nbsp;</font><font color="#0000BB">BearishDiv</font><font color="#000000">;<br />
</font><font color="#0000BB">AddColumn</font><font color="#000000">(&nbsp;</font><font color="#0000BB">BullishDiv</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;Bullish&nbsp;Divergence&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">1.0</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">colorDefault</font><font color="#000000">,&nbsp;</font><font color="#0000BB">IIf</font><font color="#000000">(</font><font color="#0000BB">BullishDiv</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorGreen</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorDefault&nbsp;</font><font color="#000000">)&nbsp;);</font><font color="#0000BB"> <br />
AddColumn</font><font color="#000000">(&nbsp;</font><font color="#0000BB">BearishDiv&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;Bearish&nbsp;Divergence&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">1.0</font><font color="#000000">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">colorDefault</font><font color="#000000">,&nbsp;</font><font color="#0000BB">IIf</font><font color="#000000">(</font><font color="#0000BB">BearishDiv&nbsp;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorRed</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorDefault</font><font color="#000000">)&nbsp;);</p>
<p></font></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><font color="#0000BB"></font><font color="#007000">//&nbsp;10&nbsp;day&nbsp;linear&nbsp;regression&nbsp;slope&nbsp;of&nbsp;close<br />
</font><font color="#0000BB">PriceUp&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">LinRegSlope</font><font color="#000000">(&nbsp;</font><font color="#0000BB">C</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">)&nbsp;&gt;&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">;&nbsp;<br />
</font><font color="#007000">//&nbsp;10&nbsp;day&nbsp;linear&nbsp;regression&nbsp;slope&nbsp;of&nbsp;MACD&nbsp;histogram<br />
</font><font color="#0000BB">MacdUP&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">LinRegSlope</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MACD</font><font color="#000000">()&nbsp;-&nbsp;</font><font color="#0000BB">Signal</font><font color="#000000">(),&nbsp;</font><font color="#0000BB">10&nbsp;</font><font color="#000000">);&nbsp;</p>
<p></font></code></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/07/17/how-to-detect-the-divergences/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to detect the study crossover for multiple symbols with use of SCAN</title>
		<link>http://www.amibroker.com/kb/2007/05/14/how-to-detect-the-study-crossover-for-multiple-symbols-with-use-of-scan/</link>
		<comments>http://www.amibroker.com/kb/2007/05/14/how-to-detect-the-study-crossover-for-multiple-symbols-with-use-of-scan/#comments</comments>
		<pubDate>Mon, 14 May 2007 07:35:41 +0000</pubDate>
		<dc:creator>support</dc:creator>
		
		<category><![CDATA[AFL]]></category>

		<category><![CDATA[Explorations]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/05/14/how-to-detect-the-study-crossover-for-multiple-symbols-with-use-of-scan/</guid>
		<description><![CDATA[It&#8217;s possible to use Automatic Analysis window to search for trendline (or other study) crossovers for multiple symbols at once. It&#8217;s necessary to do the following:
1. Draw trendlines on the chart and assidn them a STUDY ID - two letter code that allows to recognise the particular study. To do this, go to study properties [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s possible to use Automatic Analysis window to search for trendline (or other study) crossovers for multiple symbols at once. It&#8217;s necessary to do the following:</p>
<p>1. Draw trendlines on the chart and assidn them a STUDY ID - two letter code that allows to recognise the particular study. To do this, go to study properties (<strong>Alt+Enter</strong>) after you draw the line (in this example - StudyID = &#8220;RE&#8221;).</p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/05/study1.gif' title='study1.gif'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/05/study1.gif' alt='study1.gif' /></a></p>
<p>2. Repeat the process for other symbols (remember to draw the trendlines in the same chart pane).</p>
<p>3. Check the CHART ID (in order to call this particular chart pane from the SCAN). To check the ChartID - click on the chart with right mouse button, go to: <strong>PARAMETERS -&gt; Axes&amp;Grid</strong> (in this example - CHARTID = 1023).</p>
<p><a href='http://www.amibroker.com/kb/wp-content/uploads/2007/05/study2.gif' title='study2.gif'><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/05/study2.gif' alt='study2.gif' /></a></p>
<p>4. Now we can write the formula:<br />
- Analysis -&gt; Formula Editor<br />
- enter:</p>
<p><strong><em>Buy = Cross( Close, Study(&#8221;RE&#8221;, 1023) );</em></strong></p>
<p>(note that we use the same <strong>StudyID</strong> and <strong>ChartID</strong> in the formula)<br />
- Tools -&gt; Send to analysis.<br />
- Apply To: All Symbols, All Quotations<br />
- press SCAN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/05/14/how-to-detect-the-study-crossover-for-multiple-symbols-with-use-of-scan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New keywords in AFL and possible conflict with user-defined variables</title>
		<link>http://www.amibroker.com/kb/2007/04/05/new-keywords-in-afl-and-possible-conflict-with-user-defined-variables/</link>
		<comments>http://www.amibroker.com/kb/2007/04/05/new-keywords-in-afl-and-possible-conflict-with-user-defined-variables/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 10:27:22 +0000</pubDate>
		<dc:creator>Tomasz Janeczko</dc:creator>
		
		<category><![CDATA[AFL]]></category>

		<guid isPermaLink="false">http://www.amibroker.com/kb/2007/04/05/new-keywords-in-afl-and-possible-conflict-with-user-defined-variables/</guid>
		<description><![CDATA[AmiBroker 4.91.0 BETA introduced the following new keywords:
switch, case, break, continue, default
You have to make sure that your formulas do not use them as variable names. The above words are now reserved AFL keywords and if you use them for your own variables you need to replace this identifiers with names that do not conflict [...]]]></description>
			<content:encoded><![CDATA[<p>AmiBroker 4.91.0 BETA introduced the following new keywords:</p>
<p><strong>switch, case, break, continue, default</strong></p>
<p>You have to make sure that your formulas do not use them as variable names. The above words are now reserved AFL keywords and if you use them for your own variables you need to replace this identifiers with names that do not conflict with the reserved keywords.</p>
<p>This article shows how to perform multiple-file text replace very quickly. <span id="more-61"></span></p>
<p>To quickly update all your AFL files you can use this freeware tool:</p>
<p>TextRep 2.0 from:</p>
<p><a href="http://www.no-nonsense-software.com/cgi-bin/redirect/cgirdir.exe?texrep">http://www.no-nonsense-software.com/cgi-bin/redirect/cgirdir.exe?texrep</a></p>
<p>More info:<br />
<a href="http://www.no-nonsense-software.com/freeware">http://www.no-nonsense-software.com/freeware</a>/</p>
<p>Instructions:</p>
<p>1. Download from <a href="http://www.no-nonsense-software.com/cgi-bin/redirect/cgirdir.exe?texrep">http://www.no-nonsense-software.com/cgi-bin/redirect/cgirdir.exe?texrep</a><br />
and unzip</p>
<p>2. Run setup program (from inside zipped folder) </p>
<p>3. Run <strong>TextRep 2.0</strong> program</p>
<p>4. Switch to &#8220;Scan folder(s)&#8221; page</p>
<p>5. Enter AmiBroker Formulas folder (by default it is C:Program FilesAmiBrokerFormulas),<br />
mark &#8220;Include subfolders&#8221; and enter *.afl into &#8220;File types&#8221; as shown in the picture</p>
<p>6. Enter &#8220;switch&#8221; in the &#8220;Text to find&#8221; box and &#8220;switchvar&#8221; in the &#8220;Replace with&#8221; field.<br />
&#8220;Case sensitive&#8221; should remain UNchecked. (Texts should be entered without quotation marks)</p>
<p><img src='http://www.amibroker.com/kb/wp-content/uploads/2007/04/capture2.gif' alt='Text Rep 2.0 screen' /> </p>
<p>7. Press Start to go on with replacing</p>
<p>8. Repeat steps 6 and 7 with the following word pairs:<br />
&#8220;case&#8221; -> &#8220;casevar&#8221;<br />
&#8220;break&#8221; -> &#8220;breakvar&#8221;<br />
&#8220;continue&#8221; -> &#8220;continuevar&#8221;<br />
&#8220;default&#8221; -> &#8220;defaultvar&#8221;</p>
<p>9. Run AmiBroker 4.91 and check if everything works fine. If so, you may delete .bak (backup) files created during replace process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amibroker.com/kb/2007/04/05/new-keywords-in-afl-and-possible-conflict-with-user-defined-variables/feed/</wfw:commentRss>
		</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>support</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><font color="#0000BB"></p>
<p>spread&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Foreign</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;ticker1&quot;</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;C&quot;</font><font color="#000000">)&nbsp;-&nbsp;</font><font color="#0000BB">Foreign</font><font color="#000000">(&nbsp;</font><font color="#DD0000">&quot;ticker2&quot;</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;C&quot;</font><font color="#000000">);<br />
</font><font color="#0000BB">Plot</font><font color="#000000">(&nbsp;</font><font color="#0000BB">spread</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;spread&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorRed</font><font color="#000000">);&nbsp;</p>
<p></font></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>
		</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>support</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 - 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 - it only triggers them in backtest mode. The stop % level can be adjusted via PARAMETERS dalog.</p>
<p><code><font color="#0000BB"></p>
<p>StopLevel&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">Param</font><font color="#000000">(</font><font color="#DD0000">&quot;trailing&nbsp;stop&nbsp;%&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">3</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0.1</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0.1</font><font color="#000000">)/</font><font color="#0000BB">100</font><font color="#000000">;</p>
<p></font><font color="#0000BB">Buy&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Cross</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MACD</font><font color="#000000">(),&nbsp;</font><font color="#0000BB">Signal</font><font color="#000000">()&nbsp;);<br />
</font><font color="#0000BB">Sell&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
</font><font color="#0000BB">trailARRAY&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Null</font><font color="#000000">;<br />
</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;</p>
<p>for(&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">&lt;&nbsp;</font><font color="#0000BB">BarCount</font><font color="#000000">;&nbsp;</font><font color="#0000BB">i</font><font color="#000000">++&nbsp;)<br />
{</p>
<p>&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">==&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">AND&nbsp;</font><font color="#0000BB">Buy</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;)&nbsp;<br />
&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">High</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;*&nbsp;</font><font color="#0000BB">stoplevel</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;</font><font color="#0000BB">Buy</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;&nbsp;</font><font color="#007000">//&nbsp;remove&nbsp;excess&nbsp;buy&nbsp;signals</p>
<p>&nbsp;&nbsp;&nbsp;</font><font color="#000000">if(&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">&gt;&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">AND&nbsp;</font><font color="#0000BB">Low</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;&lt;&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">Sell</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;=&nbsp;</font><font color="#0000BB">1</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">SellPrice</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;=&nbsp;</font><font color="#0000BB">trailstop</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">&gt;&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">)<br />
&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Max</font><font color="#000000">(&nbsp;</font><font color="#0000BB">High</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;*&nbsp;</font><font color="#0000BB">stoplevel</font><font color="#000000">,&nbsp;</font><font color="#0000BB">trailstop&nbsp;</font><font color="#000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">trailARRAY</font><font color="#000000">[&nbsp;</font><font color="#0000BB">i&nbsp;</font><font color="#000000">]&nbsp;=&nbsp;</font><font color="#0000BB">trailstop</font><font color="#000000">;<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>}</p>
<p></font><font color="#0000BB">PlotShapes</font><font color="#000000">(</font><font color="#0000BB">Buy</font><font color="#000000">*</font><font color="#0000BB">shapeUpArrow</font><font color="#000000">,</font><font color="#0000BB">colorGreen</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">Low</font><font color="#000000">);<br />
</font><font color="#0000BB">PlotShapes</font><font color="#000000">(</font><font color="#0000BB">Sell</font><font color="#000000">*</font><font color="#0000BB">shapeDownArrow</font><font color="#000000">,</font><font color="#0000BB">colorRed</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">High</font><font color="#000000">);</p>
<p></font><font color="#0000BB">Plot</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Close</font><font color="#000000">,</font><font color="#DD0000">&quot;Price&quot;</font><font color="#000000">,</font><font color="#0000BB">colorBlack</font><font color="#000000">,</font><font color="#0000BB">styleBar</font><font color="#000000">);<br />
</font><font color="#0000BB">Plot</font><font color="#000000">(&nbsp;</font><font color="#0000BB">trailARRAY</font><font color="#000000">,</font><font color="#DD0000">&quot;trailing&nbsp;stop&nbsp;level&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorRed&nbsp;</font><font color="#000000">);</p>
<p></font></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><font color="#0000BB"></p>
<p>StopLevel&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Param</font><font color="#000000">(</font><font color="#DD0000">&quot;trailing&nbsp;stop&nbsp;%&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">3</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0.1</font><font color="#000000">,&nbsp;</font><font color="#0000BB">10</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0.1&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">SetTradeDelays</font><font color="#000000">(</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">);</p>
<p></font><font color="#0000BB">Buy&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Cross</font><font color="#000000">(&nbsp;</font><font color="#0000BB">MACD</font><font color="#000000">(),&nbsp;</font><font color="#0000BB">Signal</font><font color="#000000">()&nbsp;);<br />
</font><font color="#0000BB">Sell&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">0</font><font color="#000000">;<br />
</font><font color="#0000BB">ApplyStop</font><font color="#000000">(&nbsp;</font><font color="#0000BB">stopTypeTrailing</font><font color="#000000">,&nbsp;</font><font color="#0000BB">stopModePercent</font><font color="#000000">,&nbsp;</font><font color="#0000BB">StopLevel</font><font color="#000000">,&nbsp;</font><font color="#0000BB">True&nbsp;</font><font color="#000000">);<br />
&nbsp;<br />
</font><font color="#0000BB">Equity</font><font color="#000000">(&nbsp;</font><font color="#0000BB">1</font><font color="#000000">,&nbsp;</font><font color="#0000BB">0&nbsp;</font><font color="#000000">);&nbsp;</font><font color="#007000">//&nbsp;evaluate&nbsp;stops,&nbsp;all&nbsp;quotes</p>
<p></font><font color="#0000BB">InTrade&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">Flip</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Buy</font><font color="#000000">,&nbsp;</font><font color="#0000BB">Sell&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">SetOption</font><font color="#000000">(</font><font color="#DD0000">&quot;EveryBarNullCheck&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">True&nbsp;</font><font color="#000000">);<br />
</font><font color="#0000BB">stopline&nbsp;</font><font color="#000000">=&nbsp;</font><font color="#0000BB">IIf</font><font color="#000000">(&nbsp;</font><font color="#0000BB">InTrade</font><font color="#000000">,&nbsp;</font><font color="#0000BB">HighestSince</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Buy</font><font color="#000000">,&nbsp;</font><font color="#0000BB">High&nbsp;</font><font color="#000000">)&nbsp;*&nbsp;(&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#000000">-&nbsp;</font><font color="#0000BB">0.01&nbsp;</font><font color="#000000">*&nbsp;</font><font color="#0000BB">StopLevel&nbsp;</font><font color="#000000">),&nbsp;</font><font color="#0000BB">Null&nbsp;</font><font color="#000000">);</p>
<p></font><font color="#0000BB">PlotShapes</font><font color="#000000">(</font><font color="#0000BB">Buy</font><font color="#000000">*</font><font color="#0000BB">shapeUpArrow</font><font color="#000000">,</font><font color="#0000BB">colorGreen</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">Low</font><font color="#000000">);<br />
</font><font color="#0000BB">PlotShapes</font><font color="#000000">(</font><font color="#0000BB">Sell</font><font color="#000000">*</font><font color="#0000BB">shapeDownArrow</font><font color="#000000">,</font><font color="#0000BB">colorRed</font><font color="#000000">,</font><font color="#0000BB">0</font><font color="#000000">,</font><font color="#0000BB">High</font><font color="#000000">);</p>
<p></font><font color="#0000BB">Plot</font><font color="#000000">(&nbsp;</font><font color="#0000BB">Close</font><font color="#000000">,</font><font color="#DD0000">&quot;Price&quot;</font><font color="#000000">,</font><font color="#0000BB">colorBlack</font><font color="#000000">,</font><font color="#0000BB">styleBar</font><font color="#000000">);<br />
</font><font color="#0000BB">Plot</font><font color="#000000">(&nbsp;</font><font color="#0000BB">stopline</font><font color="#000000">,&nbsp;</font><font color="#DD0000">&quot;trailing&nbsp;stop&nbsp;line&quot;</font><font color="#000000">,&nbsp;</font><font color="#0000BB">colorRed&nbsp;</font><font color="#000000">);</p>
<p></font></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>
		</item>
	</channel>
</rss>
