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

<channel>
	<title>ExcelTrader &#187; Free Excel/VBA based Indicators</title>
	<atom:link href="http://exceltrader.net/category/excel-how-to/indicators/feed/" rel="self" type="application/rss+xml" />
	<link>http://exceltrader.net</link>
	<description>Excel Based Stock and Futures Trading tools.</description>
	<lastBuildDate>Wed, 11 Aug 2010 15:37:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Stochastics Indicator &#8211; Excel VBA and Formula versions</title>
		<link>http://exceltrader.net/506/stochastics-indicator-vba-and-formula-versions/</link>
		<comments>http://exceltrader.net/506/stochastics-indicator-vba-and-formula-versions/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 22:32:32 +0000</pubDate>
		<dc:creator>ExcelTrader</dc:creator>
				<category><![CDATA[Excel How to]]></category>
		<category><![CDATA[Free Excel/VBA based Indicators]]></category>
		<category><![CDATA[%D]]></category>
		<category><![CDATA[%K]]></category>
		<category><![CDATA[automated]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[filetype]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[stochastic]]></category>
		<category><![CDATA[stochastics]]></category>
		<category><![CDATA[stocks]]></category>
		<category><![CDATA[trading]]></category>
		<category><![CDATA[vba]]></category>

		<guid isPermaLink="false">http://www.exceltrader.net/?p=506</guid>
		<description><![CDATA[<p>This post includes  two example excel files that show both VBA and Formula based calculations for the indicator "Stochastics".</p>
<p>Both files contain the exact same set of Open High Low Close data. The formula based version should be easier to understand and serves as a way to verify that the VBA code that I wrote is <p>Continue reading <a href="http://exceltrader.net/506/stochastics-indicator-vba-and-formula-versions/">Stochastics Indicator &#8211; Excel VBA and Formula versions</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.exceltrader.net/wp-content/uploads/StochasticFormula.xls"></a>This post includes  two example excel files that show both VBA and Formula based calculations for the indicator "Stochastics".</p>
<p>Both files contain the exact same set of Open High Low Close data. The formula based version should be easier to understand and serves as a way to verify that the VBA code that I wrote is correct. Both methods give the same result for both %k and %D.  The major benefit of using VBA is that the parameters for Stochastics can be easily changed from the input boxes. In addition the VBA method shows only the final result rather than take up five columns.</p>
<p>The VBA based version can be downloaded <a href="http://www.exceltrader.net/wp-content/uploads/StochasticVBA.xls">here</a>.</p>
<p>The formula version can be downloaded <a href="http://www.exceltrader.net/wp-content/uploads/StochasticFormula.xls">here</a>. Below is an image of the formulas used in the formula based version.</p>
<p><a href="http://www.exceltrader.net/wp-content/uploads/StochasticFormula.gif"><img class="alignnone size-full wp-image-514" title="StochasticFormula" src="http://www.exceltrader.net/wp-content/uploads/StochasticFormula.gif" alt="StochasticFormula" width="1120" height="632" /></a></p>
<p>Below is the code that I wrote for the VBA based version.</p>
<p><font face=Courier New><SPAN style="color:#00007F">Sub</SPAN> ETstochastic() <SPAN style="color:#007F00">'written by Exceltrader www.exceltrader.net</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> StochSetting <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, Ksetting <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, Dsetting <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> A() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, B() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, C() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, D() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, E() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> Count <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> Xcounter <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, Xavg <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> Zcounter <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, Zavg <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> x <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, y <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, z <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN><br /><SPAN style="color:#007F00">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN><br /><SPAN style="color:#007F00">''&#160;&#160;The below three lines are the Stochastic settings.</SPAN><br /><SPAN style="color:#007F00">''&#160;&#160;The Values can either be changed here or uncomment the inputbox lines to be prompted.</SPAN><br /><SPAN style="color:#007F00">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN><br />StochSetting = 14 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Stoch settings Number of Periods.", Title:="Stochastic Period", Default:="13")</SPAN><br />Ksetting = 2 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Moving Average For %K", Title:="%K Setting", Default:="5")</SPAN><br />Dsetting = 3 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Moving Average For %D", Title:="%D Setting", Default:="6")</SPAN><br />Set ws = ThisWorkbook.Worksheets("Svba")<br />&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">With</SPAN> ws<br />&#160;&#160;&#160;&#160;LR = .Cells(Rows.Count, "A").End(xlUp).Row<br /><SPAN style="color:#007F00">'does the same as formula =E15-(MIN(D1:D15))</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> DataRange <SPAN style="color:#00007F">In</SPAN> ws.Range(.Cells(2, "A"), .Cells(LR, "A"))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Count = DataRange.Row<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> A(1 <SPAN style="color:#00007F">To</SPAN> Count)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">If</SPAN> Count >= StochSetting + 1 <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; A(Count) = .Cells(Count, "E") - Application.Min(ws.Range(.Cells(Count - StochSetting, "D") _<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; , .Cells(Count, "D")))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> DataRange<br />&#160;&#160;&#160;&#160; <SPAN style="color:#007F00">'does the same as formula&#160;&#160; =MAX(C36:C50)-MIN(D36:D50)</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> DataRange <SPAN style="color:#00007F">In</SPAN> ws.Range(.Cells(2, "A"), .Cells(LR, "A"))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Count = DataRange.Row<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> B(1 <SPAN style="color:#00007F">To</SPAN> Count)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">If</SPAN> Count >= StochSetting + 1 <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; B(Count) = Application.Max(ws.Range(.Cells(Count - StochSetting, "C"), .Cells(Count, "C"))) _<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - Application.Min(ws.Range(.Cells(Count - StochSetting, "D"), .Cells(Count, "D")))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> DataRange<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'=100*(I50/J50)</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> C(StochSetting + 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> Count = StochSetting + 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; C(Count) = (A(Count) / B(Count)) * 100<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> Count<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'=AVERAGE(K49:K50)</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> D(StochSetting + Ksetting <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> Count = StochSetting + Ksetting <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> Xcounter = Count - Ksetting + 1 <SPAN style="color:#00007F">To</SPAN> Count <SPAN style="color:#007F00">'just go back and get the first C and go forward to current</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Xavg = C(Xcounter) + Xavg<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> Xcounter<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;D(Count) = Xavg / Ksetting<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Xavg = <SPAN style="color:#00007F">Empty</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> Count<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> E(StochSetting + Ksetting + Dsetting - 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> Count = StochSetting + Ksetting + Dsetting - 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(B)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> Zcounter = Count - Dsetting + 1 <SPAN style="color:#00007F">To</SPAN> Count <SPAN style="color:#007F00">'just go back and get the first C and go forward to current</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Zavg = D(Zcounter) + Zavg<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> Zcounter<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;E(Count) = Zavg / Dsetting<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Zavg = <SPAN style="color:#00007F">Empty</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> Count<br />&#160;&#160;x = Empty: y = Empty: z = Empty<br />&#160;&#160;x = <SPAN style="color:#00007F">LBound</SPAN>(E)<br />&#160;&#160;y = <SPAN style="color:#00007F">UBound</SPAN>(E)<br />&#160;&#160;<SPAN style="color:#007F00">'put the stochastics on the workbook. Change column Letter as needed</SPAN><br />&#160;&#160;.Cells(x - 1, "J") = "%D"<br />&#160;&#160;.Cells(x - 1, "I") = "%K"<br />&#160;&#160;<SPAN style="color:#00007F">For</SPAN> z = x <SPAN style="color:#00007F">To</SPAN> y<br />&#160;&#160;.Cells(z, "J") = E(z)<br />&#160;&#160;.Cells(z, "I") = D(z)<br />&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> z<br /> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN><br /><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br /></FONT>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=@Exceltrader+Stochastics+Indicator+%E2%80%93+Excel+VBA+and+Formula+versions+http://tinyurl.com/3xejcq2" title="Post to Twitter"><img class="nothumb" src="http://exceltrader.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://exceltrader.net/506/stochastics-indicator-vba-and-formula-versions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MACD VBA</title>
		<link>http://exceltrader.net/470/macd-vba/</link>
		<comments>http://exceltrader.net/470/macd-vba/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:08:35 +0000</pubDate>
		<dc:creator>ExcelTrader</dc:creator>
				<category><![CDATA[Automated trading Systems]]></category>
		<category><![CDATA[Equities]]></category>
		<category><![CDATA[Excel as a Trading Platform]]></category>
		<category><![CDATA[Free Excel/VBA based Indicators]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Excel How to: Indicators]]></category>
		<category><![CDATA[MACD]]></category>
		<category><![CDATA[OHLC]]></category>
		<category><![CDATA[stocks]]></category>
		<category><![CDATA[trading]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[xls]]></category>

		<guid isPermaLink="false">http://www.exceltrader.net/?p=470</guid>
		<description><![CDATA[This post includes links to two example xls files that show both VBA and Formula based calculations for the indicator MACD or Moving Average Convergence <p>Continue reading <a href="http://exceltrader.net/470/macd-vba/">MACD VBA</a></p>]]></description>
			<content:encoded><![CDATA[<p>This post includes links to two example xls files that show both VBA and Formula based calculations for the indicator MACD or Moving Average Convergence Divergence.</p>
<p>Both files contain the exact same set of Open High Low Close data. The formula based version is easier to understand and serves as a way to verify that the VBA code that I wrote is correct. Both methods give the same result.  The major benefit of using VBA is that the parameters for MACD can be easy changed from the input boxes. In addition the VBA method shows only the final result rather than take up five columns.</p>
<p>The VBA based version can be downloaded <a href="/wp-content/uploads/macdVBA.xls">here</a>.</p>
<p>The formula version can be downloaded <a href="/wp-content/uploads/MACDformulas.xls">here</a>. Below is the code from the VBA based version.</p>
<p><font face=Times New Roman><SPAN style="color:#00007F">Sub</SPAN> ETmacd() <SPAN style="color:#007F00">'written by Exceltrader www.exceltrader.net</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> EMAslow As <SPAN style="color:#00007F">Double</SPAN>, EMAf<SPAN style="color:#00007F">As</SPAN>t <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, ws <SPAN style="color:#00007F">As</SPAN> Worksheet, LR <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> eMaF() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, eMaS() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, EMAdif(), emaPer() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, MacDper <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN>, coUnt <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> DataRange <SPAN style="color:#00007F">As</SPAN> Range<br /><SPAN style="color:#00007F">Dim</SPAN> ExPSlowWeight <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> ExPFastWeight As <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#00007F">Dim</SPAN> PerWeight As <SPAN style="color:#00007F">Double</SPAN><br /><SPAN style="color:#007F00">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN><br /><SPAN style="color:#007F00">''&#160;&#160;The below three lines are the MACD settings.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ''</SPAN><br /><SPAN style="color:#007F00">''&#160;&#160;The Values can either be changed here or uncomment the inputbox lines to be prompted.''</SPAN><br /><SPAN style="color:#007F00">'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN><br />EMAslow = 13 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Macd Slow settings.", Title:="MACD SLOW", Default:="13")</SPAN><br />EMAfAst = 5 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Macd Fast settings.", Title:="MACD Fast", Default:="5")</SPAN><br />MacDper = 6 <SPAN style="color:#007F00">'InputBox(Prompt:="Enter Macd Period settings.", Title:="MACD Period", Default:="6")</SPAN><br />ExPSlowWeight = 2 / (EMAslow + 1)<br />PerWeight = 2 / (MacDper + 1)<br />ExPFastWeight = 2 / (EMAfAst + 1)<br /><SPAN style="color:#00007F">Set</SPAN> ws = ThisWorkbook.Worksheets("VBA") <SPAN style="color:#007F00">'or use exact sheet name for example ThisWorkbook.worksheet("Sheet1")</SPAN><br /><SPAN style="color:#007F00">'slow</SPAN><br />&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">With</SPAN> ws<br />&#160;&#160;&#160;&#160;LR = .Cells(Rows.coUnt, "A").End(xlUp).Row<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> DataRange <SPAN style="color:#00007F">In</SPAN> ws.Range(.Cells(2, "A"), .Cells(LR, "A"))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;coUnt = DataRange.Row + 1<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'fill the eMA slow Array</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> eMaS(1 <SPAN style="color:#00007F">To</SPAN> coUnt)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">If</SPAN> coUnt = EMAslow + 1 <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'get the first value which is the Simple Moving average</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; eMaS(coUnt) = Application.Average(ws.Range(.Cells(2, "E"), .Cells(coUnt, "E")))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ElseIf</SPAN> coUnt > EMAslow <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;eMaS(coUnt) = (.Cells(coUnt, "E") * ExPSlowWeight) + (eMaS(coUnt - 1) * (1 - ExPSlowWeight))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> DataRange<br /> <SPAN style="color:#007F00">'fast</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> DataRange <SPAN style="color:#00007F">In</SPAN> ws.Range(.Cells(2, "A"), .Cells(LR, "A"))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;coUnt = DataRange.Row + 1<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'fill the eMA slow Array</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> eMaF(1 <SPAN style="color:#00007F">To</SPAN> coUnt)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">If</SPAN> coUnt = EMAfAst + 1 <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'get the first value which is the Simple Moving average</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; eMaF(coUnt) = Application.Average(ws.Range(.Cells(2, "E"), .Cells(coUnt, "E")))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ElseIf</SPAN> coUnt > EMAfAst <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;eMaF(coUnt) = (.Cells(coUnt, "E") * ExPFastWeight) + (eMaF(coUnt - 1) * (1 - ExPFastWeight))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> DataRange<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> EMAdif(EM<SPAN style="color:#00007F">As</SPAN>low <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(eMaF))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> coUnt = EM<SPAN style="color:#00007F">As</SPAN>low + 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(eMaF)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;EMAdif(coUnt) = eMaF(coUnt) - eMaS(coUnt)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> coUnt<br /><SPAN style="color:#007F00">'MacD Period</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Dim</SPAN> x <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, y <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, z As <SPAN style="color:#00007F">Integer</SPAN>, Avee As <SPAN style="color:#00007F">Double</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;y = EMAslow + MacDper - 1<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> x = y <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(EMAdif) - 2<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#007F00">'get the SMA for first value</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">If</SPAN> x = y <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">For</SPAN> z = EMAslow + 1 <SPAN style="color:#00007F">To</SPAN> EMAslow + MacDper&#160;&#160;<SPAN style="color:#007F00">'(EMAslow + MacDper - 1)</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Ave = Ave + EMAdif(z)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> z<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ReDim</SPAN> emaPer(x <SPAN style="color:#00007F">To</SPAN> LR)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;emaPer(x) = Ave / MacDper<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">ElseIf</SPAN> x > y <SPAN style="color:#00007F">Then</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;emaPer(x) = (EMAdif(x + 1) * PerWeight) + (emaPer(x - 1) * (1 - PerWeight))<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> x<br />&#160;&#160;x = Empty: y = Empty: z = Empty<br />&#160;&#160;x = <SPAN style="color:#00007F">LBound</SPAN>(emaPer)<br />&#160;&#160;y = <SPAN style="color:#00007F">UBound</SPAN>(emaPer)<br />&#160;&#160;<SPAN style="color:#00007F">For</SPAN> z = x <SPAN style="color:#00007F">To</SPAN> y - 1<br />&#160;&#160;.Cells(z + 1, "J") = EMAdif(z + 1) - emaPer(z)<br />&#160;&#160;<SPAN style="color:#00007F">Next</SPAN> z<br /> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN><br /><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN> <SPAN style="color:#007F00">'written by Exceltrader www.exceltrader.net</SPAN><br /></FONT>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=@Exceltrader+MACD+VBA+http://tinyurl.com/34pclsf" title="Post to Twitter"><img class="nothumb" src="http://exceltrader.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://exceltrader.net/470/macd-vba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MACD</title>
		<link>http://exceltrader.net/212/macd/</link>
		<comments>http://exceltrader.net/212/macd/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:31:10 +0000</pubDate>
		<dc:creator>ExcelTrader</dc:creator>
				<category><![CDATA[Free Excel/VBA based Indicators]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[filetype]]></category>
		<category><![CDATA[indicator]]></category>
		<category><![CDATA[MACD]]></category>
		<category><![CDATA[stocks]]></category>
		<category><![CDATA[trading]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[xls]]></category>

		<guid isPermaLink="false">http://www.exceltrader.net/?p=212</guid>
		<description><![CDATA[<p>The following excel file is an example of how to calculate the MACD indicator. This example shows the 5, 13, 6, setting. the MACD is in column N.  Over time I may add more excel indicator examples. As I do they will be most easily found in the right sidebar under the &#8220;How to&#8221; &#8211; <p>Continue reading <a href="http://exceltrader.net/212/macd/">MACD</a></p>]]></description>
			<content:encoded><![CDATA[<p>The following excel file is an example of how to calculate the MACD indicator. This example shows the 5, 13, 6, setting. the MACD is in column N.  Over time I may add more excel indicator examples. As I do they will be most easily found in the right sidebar under the &#8220;How to&#8221; &#8211; &#8220;Indicators&#8221; category.</p>
<p><a title="MACD" href="http://www.exceltrader.net/wp-content/uploads/exampleind.xls">MACD example in excel. </a>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=@Exceltrader+MACD+http://tinyurl.com/23wbrq7" title="Post to Twitter"><img class="nothumb" src="http://exceltrader.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://exceltrader.net/212/macd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
