<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Josh Heitzman's Impersonal Blog</title>
	<atom:link href="http://codecrafter.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codecrafter.wordpress.com</link>
	<description></description>
	<pubDate>Thu, 17 Jul 2008 17:00:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Throwing hardware at the problem</title>
		<link>http://codecrafter.wordpress.com/2008/07/17/throwing-hardware-at-the-problem/</link>
		<comments>http://codecrafter.wordpress.com/2008/07/17/throwing-hardware-at-the-problem/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 16:54:56 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

		<category><![CDATA[Protocol Buffers]]></category>

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=62</guid>
		<description><![CDATA[Well, with the results in for 16 out of 22 stocks, 3 metrics are standing out for both the last 2 years and the last 5 years worth of history for those stocks.  It will be sometime tomorrow until the full results are in, as I promptly added more analysis after my optimization work.
As [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, with the results in for 16 out of 22 stocks, 3 metrics are standing out for both the last 2 years and the last 5 years worth of history for those stocks.  It will be sometime tomorrow until the full results are in, as I promptly added more analysis after my optimization work.</p>
<p>As further decreasing runtime via manual optimization is going to be quite development time consuming relative to the runtime saved, I decided to research and purchase the parts to put together a quad core machine.  For $475 and the time it probably would have taken to optimize enough increase throughput another 10%, I&#8217;ll have a machine with twice the throughput and I can free up my primary machine so I can use it exclusively for doing new development work.  The analysis runtimes are getting long enough that I may be able kick off a run, do the development work for the next run after that, and still have time to some work on my game before all of the results are in.</p>
<p>I&#8217;m also thinking about making the analysis tool into a distributed app.  Currently it isn&#8217;t even multi-threaded since the proc can be fully utilized by running analysis on different stocks in parallel, but this requires a bit of manual intervention on my part to keep things fully loaded.  By making it fully distributed I can also still have my primary machine automatically start do analysis work when its idle and I can also then easily added more machines if necessary.  The distributed app infrastructure should also be largely shareable with my game as well and it will give me an excuse to look into Google&#8217;s recently released <a href="http://code.google.com/p/protobuf/">Protocol Buffers</a> data interchange format, which is appealing as it supposed to be simple and its compiler produce code for both C++ and Python (and Java).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/62/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/62/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=62&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/07/17/throwing-hardware-at-the-problem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Easy optimizations resulted in 39% shorter runtime</title>
		<link>http://codecrafter.wordpress.com/2008/07/09/easy-optimizations-resulted-in-39-shorter-runtime/</link>
		<comments>http://codecrafter.wordpress.com/2008/07/09/easy-optimizations-resulted-in-39-shorter-runtime/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 03:00:21 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Programming]]></category>

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

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=60</guid>
		<description><![CDATA[The partial caching of the calculations of the technical indicator resulted in a 35% less runtime and experimentation with the various complier and linker optimizations switches resulted in a little be more of a speed up for in runtime being an overall of 39% shorter.
The analysis code likely has some spots that will benefit from [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The partial caching of the calculations of the technical indicator resulted in a 35% less runtime and experimentation with the various complier and linker optimizations switches resulted in a little be more of a speed up for in runtime being an overall of 39% shorter.</p>
<p>The analysis code likely has some spots that will benefit from optimization; however, that is currently in flux, so it isn&#8217;t worth hand optimizing at present.  So its back to flushing out a useful metric.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/60/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/60/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=60&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/07/09/easy-optimizations-resulted-in-39-shorter-runtime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Faster seperation of the wheat from the chaff</title>
		<link>http://codecrafter.wordpress.com/2008/07/09/faster-seperation-the-wheat-from-the-chaff/</link>
		<comments>http://codecrafter.wordpress.com/2008/07/09/faster-seperation-the-wheat-from-the-chaff/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 19:45:56 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

		<category><![CDATA[Technical Analysis]]></category>

		<category><![CDATA[Personal Stock Streamer]]></category>

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

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=59</guid>
		<description><![CDATA[We&#8217;ll I didn&#8217;t get any further on my plan from last post then implementing the plug-in to PSS to dump daily stock data to CSV flat and a console application to crunch the data.  Rather, then start analyzing intra-day data right away, I decided to see if I could find any metric that would [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We&#8217;ll I didn&#8217;t get any further on my plan from last <a href="http://codecrafter.wordpress.com/2008/06/20/cleanup-code-and-then-on-to-sierra-charts/">post</a> then implementing the plug-in to PSS to dump daily stock data to CSV flat and a console application to crunch the data.  Rather, then start analyzing intra-day data right away, I decided to see if I could find any metric that would have a decent correlation between past performance and short-term future performance (i.e. week, month, quarter, etc.) for a particular set of parameter values for a strategy.  I&#8217;ve been getting some results from monthly data that I can&#8217;t discount yet.  For quarterly analysis I think a minimum of 5 years of data is necessary get a meaningful result and weekly analysis is going significantly slower then monthly.  Either way getting result is going to take a lot more CPU time, and its already running slower then I&#8217;d like it, so I need to stop and do some perf work to try to get it going faster.</p>
<p>The process is using less then 2MB of memory while pegging the CPU so it seems likely some caching will be helpful.  The most straightforward thing to do is write my own version of the technical indicator I&#8217;m currently analyzing so that I can cache part of the work it does.  For stocks with 15 years of data, caching the indicator results directly would consume 220MB of RAM; however, most of the processing work can be cached with just 3.5MB of RAM leaving just a couple of operations to get from the cached values to the full result when needed.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=59&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/07/09/faster-seperation-the-wheat-from-the-chaff/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cleanup code and then on to Sierra Charts</title>
		<link>http://codecrafter.wordpress.com/2008/06/20/cleanup-code-and-then-on-to-sierra-charts/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/20/cleanup-code-and-then-on-to-sierra-charts/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 20:11:32 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

		<category><![CDATA[Personal Stock Streamer]]></category>

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=57</guid>
		<description><![CDATA[At this point what I&#8217;ve developed is a prototype for a strategy curve fitting detector and thus far the technical indicators I&#8217;ve tried all just fit the curve of the price history.  Basically I&#8217;m finding that while a backtest for a strategy utilizing an indicator with a given set of parameters for the indicator [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>At this point what I&#8217;ve developed is a prototype for a strategy curve fitting detector and thus far the technical indicators I&#8217;ve tried all just fit the curve of the price history.  Basically I&#8217;m finding that while a backtest for a strategy utilizing an indicator with a given set of parameters for the indicator may show triple digit annualized returns, if the first year of results are compared to all of the time after the first year, there is very little correlation between the first year&#8217;s results and the following years results, such that if you were actually sitting back at the end of that first year, you would not be able to pick the parameter set for strategy based on the results it produced.  If it couldn&#8217;t be done then, then its reasonable to assume it can&#8217;t be done now either.  So no viable strategy, but at least now I&#8217;ve got a good way to reject strategies quickly (relatively speaking it still may take hours of CPU time per symbol depending on how big the parameter space is for the strategy).</p>
<p>Now I need to clean-up the mess of code I wrote getting to this point.  First I want to create a plug-in to Personal Stock Screener that will dump historical daily and intraday data into a CSV flat file, which can then be used as input for a console app that will load the strategy from a DLL, so I can invalidate strategies in a process different then PSS, although I&#8217;ll still use PSS to update the flat files daily.  I also need to get Sierra Charts as with the right subscription level it provides 6 months of historical intraday data.  If that isn&#8217;t enough, then I&#8217;ll have to buy it from one of the few providers on a per symbol per month basis.</p>
<p>Before discounting technical indicators and moving on to Elliot waves, Fibonacci sequences, fractals, and perhaps neural nets I want to run them over intraday data as I got some very interesting results with an assumption that I couldn&#8217;t validate as correct with daily data, but will be able to validate or invalidate with intraday data.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=57&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/20/cleanup-code-and-then-on-to-sierra-charts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>255 times faster then NinjaTrader strategy optimization</title>
		<link>http://codecrafter.wordpress.com/2008/06/12/255-times-faster-then-ninjatrader-strategy-optimization/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/12/255-times-faster-then-ninjatrader-strategy-optimization/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 05:21:53 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

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

		<category><![CDATA[Personal Stock Streamer]]></category>

		<category><![CDATA[TA-Lib]]></category>

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=56</guid>
		<description><![CDATA[After investigating a number of alternatives (one, two, three) to NinjaTrader, I ended up implementing my strategy as a COM plug-in to DTLink&#8217;s Personal Stock Screener, and found that I can run through the equivalent strategy optimization, as in NinjaTrader, 255 times faster.  A significant part of the speed improvement likely comes from three orders [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After investigating a number of alternatives (<a href="http://codecrafter.wordpress.com/2008/06/08/itrade-xtrader-and-ta-lib/">one</a>, <a href="http://codecrafter.wordpress.com/2008/06/09/opentick-not-accpeting-new-members-at-present/">two</a>, <a href="http://codecrafter.wordpress.com/2008/06/10/cooltrade-quotetracker-personal-stockstreamer-and-sierra-chart/">three</a>) to NinjaTrader, I ended up implementing my strategy as a COM plug-in to DTLink&#8217;s Personal Stock Screener, and found that I can run through the equivalent strategy optimization, as in NinjaTrader, 255 times faster.  A significant part of the speed improvement likely comes from three orders of magnitude less memory usage during the optimization process (comparing each process&#8217;s increase in memory during optimization, not total process memory usage).</p>
<p>TA-Lib proved quite useful for technical analysis functions and apparently Personal Stock Screener <a href="http://www.ta-lib.org/hdr_doc.html">uses TA-Lib as well</a>.</p>
<p><a href="http://www.dtlink.com/company-about.html">Anatoly Ivasyuk</a>, at DTLink, was very responsive to the few questions I had, as well as quickly turning around the fix for a bug I ran into.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=56&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/12/255-times-faster-then-ninjatrader-strategy-optimization/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CoolTrade, QuoteTracker, Personal Stock Streamer, and Sierra Chart</title>
		<link>http://codecrafter.wordpress.com/2008/06/10/cooltrade-quotetracker-personal-stockstreamer-and-sierra-chart/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/10/cooltrade-quotetracker-personal-stockstreamer-and-sierra-chart/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 09:12:28 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

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

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

		<category><![CDATA[Personal Stock Streamer]]></category>

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

		<category><![CDATA[Sierra Chart]]></category>

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=54</guid>
		<description><![CDATA[Since opentick isn&#8217;t currently accepting new users I&#8217;ve been looking into other free and easy ways of getting historical and real-time data to feed a strategy written in C++ against TA-Lib.
CoolTrade

CoolTrade is another trading platform.  This one carries a subscription fee, but it is free to TD Ameritrade client&#8217;s.  It does allow strategy [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Since opentick isn&#8217;t currently accepting new users I&#8217;ve been looking into other free and easy ways of getting historical and real-time data to feed a strategy written in C++ against TA-Lib.</p>
<p><strong>CoolTrade<br />
</strong></p>
<p><a href="http://www.cool-trade.com">CoolTrade</a> is another trading platform.  This one carries a subscription fee, but it is free to TD Ameritrade client&#8217;s.  It does allow strategy creation, but only via a UI.  No coding allowed.  From their forum I gather that backtesting is supported, but only fro TD Ameritrade data feeds and its still in Beta.  Didn&#8217;t get the impression that strategy optimization was supported either, so this isn&#8217;t what I&#8217;m looking for either.  It also didn&#8217;t seem provide charting, but the UI was quite non-standard and I simply have not be able to find the way to get a chart up.</p>
<p><strong>Personal Stock Streamer<br />
</strong></p>
<p>There is also <a href="http://www.personalstockstreamer.com/">Personal Stock Streamer</a> and <a href="http://www.personalstockmonitor.com">Personal Stock Monitor</a>, which, although they have separate web sites, are both <a href="http://www.dtlink.com/">DTLink Software</a> products and there is a least a <a href="http://www.collabinvest.net/">fourth web site</a> run by DTLink.  Personal Stock Streamer is a free download.  The Standard and Gold editions of Personal Stock Monitor costs $30 and $50 respectively (one-time not subscription), with a 40% discount for TD Ameritrade client&#8217;s and there is a 30 day free trial.  The said, it wasn&#8217;t immediately obvious what the difference was between DTLink&#8217;s Streamer and Monitor.  The configuration process, overall UI, and Options-&gt;Preferences appear nearly identical.  They also appear to provide an identical set of indicators.  The set of indicators provided is smaller then TD Ameritrade&#8217;s StrategyDesk, QuoteTracker, and NinjaTrader, but lager then open source iTrade and XTrader.  Like QuoteTracker, neither one shows the value of indicators for the current bar in the data box where price and volume are shown.  The most obvious difference I could find is that Personal Stock Streamer is extensible via OLE/ActiveScript, but, as far as I can tell, Personal Stock Monitor is not extensible in anyway, which is odd considering the former is free and the later is fee based.  At this point in time I can see no reason to go with the fee based Personal Stock Monitor over the free Personal Stock Streamer.</p>
<p>Since the scripting object model is provided via OLE, it is technically callable from C++ even though no header files are provided and it isn&#8217;t officially supported or documented (there is typelib in the SDK though and I know a tool exists to create a header from a TLB).  That said, it looks like extensions must use ActiveScript as extensions have to be installed and they need to be formated as an XML file with the script in the CDATA section, but I&#8217;d imagine the extension script could just instantiate a COM object and delegate everything to it.  I also found a two threads on their <a href="http://www.personalstockstreamer.com/developers/forum.html">developer forum</a> that mentioned an SDK/API that would allow developing a COM plug-in, but the threads were from late 2005 and then it was necessary to e-mail them to get it.  I&#8217;ve done that, so we&#8217;ll see if that plug-in SDK is still available.</p>
<p><strong>Sierra Chart<br />
</strong></p>
<p><a href="http://www.sierrachart.com">Sierra Chart</a> is extensible in C++ and has numerous different subscription levels and discounts.  It looks like it will run me $17.50 a month or $175.35 a year for the cheapest level that supports TD Ameritrade.  They appear to have a 7 day trial, so before trying them out, I&#8217;d want to actually have a strategy written against TA-Lib, so I could get integrated into Sierra Chart right away and determine if its worth it for the long term, so I can sign-up for a longer time period and save some coin if it proves worthy.</p>
<p><strong>QuoteTracker API<br />
</strong></p>
<p>I mentioned <a href="http://www.quotetracker.com/">QuoteTracker</a> <a href="http://codecrafter.wordpress.com/2008/05/31/strategydesk-quotetracker-ninjatrader-and-opentick/">previously</a>, and while I didn&#8217;t look at it very long then, today I discovered that it apparently has an API that may allow me to <a href="http://www.quotetracker.com/help/QTStreamingAPI.shtml">get historical and real-time data</a> from TD Ameritrade and <a href="http://www.quotetracker.com/help/QTTradingAPI.shtml">automate trading</a>.</p>
<p><strong>TD Ameritrade API<br />
</strong></p>
<p>TD Ameritrade actually has their <a href="http://www.tdameritrade.com/tradingtools/partnertools/api_dev.html">own API</a>; however, they don&#8217;t give it out to just everyone, and I don&#8217;t trade any where near close to the necessary frequency to qualify.</p>
<p><strong>NinjaTrader Proxy Strategy<br />
</strong></p>
<p>Another way to get the historical data would be to create a strategy in NinjaTrader that simply dumps the data into a flat file or SQLite DB, which could then be processed any other process.  Real-time data could be had and trading could be automated by creating a strategy that serves as a proxy for other processes to NinjaTrader.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/54/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/54/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=54&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/10/cooltrade-quotetracker-personal-stockstreamer-and-sierra-chart/feed/</wfw:commentRss>
		</item>
		<item>
		<title>opentick not accpeting new members at present</title>
		<link>http://codecrafter.wordpress.com/2008/06/09/opentick-not-accpeting-new-members-at-present/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/09/opentick-not-accpeting-new-members-at-present/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 23:48:02 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=53</guid>
		<description><![CDATA[I just tried to sign-up for opentick and was greeted with &#8220;opentick is upgrading its network infrastructure and temporarily cannot accept new users.&#8221;  Checking their forum I found that they haven&#8217;t been accepting new users for 2 months now and their is no ETA for when they will be accepting new users.  Before [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just tried to sign-up for opentick and was greeted with &#8220;opentick is upgrading its network infrastructure and temporarily cannot accept new users.&#8221;  Checking their forum I found that they haven&#8217;t been accepting new users for 2 months now and their is no ETA for when they will be accepting new users.  Before that I also found that using the opentick Python bindings would require figuring out how to build both the bindings and the SIP project on the Win32 platform, so I had figured on just going with C++ to get something going right away.  But, since I can&#8217;t sign-up that&#8217;s a no go.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/53/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/53/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=53&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/09/opentick-not-accpeting-new-members-at-present/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iTrade, XTrader, and TA-Lib</title>
		<link>http://codecrafter.wordpress.com/2008/06/08/itrade-xtrader-and-ta-lib/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/08/itrade-xtrader-and-ta-lib/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 07:09:35 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

		<category><![CDATA[TA-Lib]]></category>

		<category><![CDATA[Technical Analysis]]></category>

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

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=52</guid>
		<description><![CDATA[iTrade is an open source (GPL) trading platform written in Python.  At present it provides a few indicators on the charts, but these are not configurable (i.e. you can&#8217;t specify the period).  The only data feed provided (for US markets) is from Yahoo.  It also does not presently support the development of [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://itrade.sourceforge.net/">iTrade</a> is an open source (GPL) trading platform written in Python.  At present it provides a few indicators on the charts, but these are not configurable (i.e. you can&#8217;t specify the period).  The only data feed provided (for US markets) is from Yahoo.  It also does not presently support the development of strategies, so no backtestings or optimization either, so this is not what I&#8217;m looking for.</p>
<p><a href="http://dronten.googlepages.com/xtrader">XTrader</a> is also an open source (GPL2) trading platform, but it is written in C++ rather then Python.  This also provides a few configurable indicators and the only data feed provided is from Yahoo.  It also does not presently support the development of strategies either.</p>
<p>I found both of these on the website for <a href="http://ta-lib.org">TA-Lib.org</a>, which is the home for a C++ technical analysis library.  That site has an extensive <a href="http://ta-lib.org/hdr_lnk.html">list</a> of open source projects related to technical analysis, and I did not try them all, just the two above.</p>
<p>At this point I think my best bet will be to write a strategy in C++ that makes use of TA-Lib for common indicators and use opentick as my data feed.  Now I just need to determine if the entire app should written in C++ or just the strategies and indicators, with the rest being written in Python.  The first thing to determine is how straightforward the opentick official C++ API is versus the unofficial Python API.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=52&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/08/itrade-xtrader-and-ta-lib/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NinjaTrader hangs and crashes</title>
		<link>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-hangs-and-crashes/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-hangs-and-crashes/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 01:49:48 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

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

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=50</guid>
		<description><![CDATA[After installing NinjaTrader on my secondary machine, which isn&#8217;t as beefy as my primary machine, the first optimization run hung, and the second two attempts both silently crashed (i.e. NinjaTrader just disappeared).  I had the task manager up for all three runs and it didn&#8217;t even break 300MB of memory usage, so excessive memory [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After installing NinjaTrader on my secondary machine, which isn&#8217;t as beefy as my primary machine, the first optimization run hung, and the second two attempts both silently crashed (i.e. NinjaTrader just disappeared).  I had the task manager up for all three runs and it didn&#8217;t even break 300MB of memory usage, so excessive memory use doesn&#8217;t appear to be the problem, as it was on my primary machine when the trace/log files got to bloated.  On my primary machine I had to uninstall it and reinstall it to get the <a href="http://codecrafter.wordpress.com/2008/06/08/ninjatrader-excessive-memory-usage/">strategy drop down populating again</a> in the backtesting optimization configuration dialog (repair didn&#8217;t work).</p>
<p>So that means I can only run it on my primary machine.  If it builds up giant log/trace files again and starts using up 800MB of RAM just to startup again, then it&#8217;ll will again be necessary to purge these files, but its unclear if this can be done without doing a full uninstall and reinstall.</p>
<p>Anyway, I&#8217;ve started looking at other options even while I continue to run it on my primary machine, and I&#8217;ll switch over to something else as soon as I find it or write it.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=50&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-hangs-and-crashes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NinjaTrader excessive memory usage</title>
		<link>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-excessive-memory-usage/</link>
		<comments>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-excessive-memory-usage/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 21:53:53 +0000</pubDate>
		<dc:creator>Josh Heitzman</dc:creator>
		
		<category><![CDATA[Investment Development]]></category>

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

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

		<category><![CDATA[Technical Analysis]]></category>

		<guid isPermaLink="false">http://codecrafter.wordpress.com/?p=49</guid>
		<description><![CDATA[Yesterday I started running into problems with NinjaTrader not completing optimization runs.  After several tries, including after closing down re-opening the app, I started monitoring the app more closely and the first thing I noticed was that it was consuming large amount of memory and seemed to quit sometime after going over 1GB of [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yesterday I started running into problems with NinjaTrader not completing optimization runs.  After several tries, including after closing down re-opening the app, I started monitoring the app more closely and the first thing I noticed was that it was consuming large amount of memory and seemed to quit sometime after going over 1GB of usage.  Turns out it was consuming over 800MB just starting up.  Tried lightening up what was in the workspace, but that didn&#8217;t help.  Next had a look at what was in its data directory and noticed it has some pretty large files under dirs called log and trace, so I figured it was probably fully loading these into memory and deleted them.  That got the start-up memory back down to about 75MB, which more reasonable for a .Net app.  Everything looked good until I tried to run the optimizer again.  It&#8217;s got a drop down box used to select which strategy to run, but its empty.  Other parts of NinjaTrader show the strategies just fine, but apparently something related to that drop down has a dependency on one of the files, so It looks like I&#8217;ll need to get something restored to make it happy again (didn&#8217;t bother backing up the files).</p>
<p>Oh well, I was going to install it on another machine so I wouldn&#8217;t just let it run optimizations there over the course of days without it interfering with my use of my main machine.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codecrafter.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codecrafter.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codecrafter.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codecrafter.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codecrafter.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codecrafter.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codecrafter.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codecrafter.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codecrafter.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codecrafter.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codecrafter.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codecrafter.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codecrafter.wordpress.com&blog=3240053&post=49&subd=codecrafter&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codecrafter.wordpress.com/2008/06/08/ninjatrader-excessive-memory-usage/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>