<?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>Au.Tra.Sy blog - Automated trading System &#187; tradersstudio</title>
	<atom:link href="http://www.automated-trading-system.com/tag/tradersstudio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.automated-trading-system.com</link>
	<description>Systematic Trading research and development, with a flavour of Trend Following</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:58:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Thinking of buying Trading Blox?</title>
		<link>http://www.automated-trading-system.com/trading-blox-teaser-review/</link>
		<comments>http://www.automated-trading-system.com/trading-blox-teaser-review/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 11:59:29 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amibroker]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[rollover]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[tradersstudio]]></category>
		<category><![CDATA[Trading Blox]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=1422</guid>
		<description><![CDATA[Well, I am&#8230; Regular readers might think that I suffer from backtesting-software-indecision-itis. Having first settled for TradersStudio, I then evaluated (and purchased) AmiBroker and found that it was 25 times faster than TradersStudio (at least for the calculation of the e-ratio). However, AmiBroker is not really geared towards true portfolio allocation testing with Futures and [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I am&#8230;<br />
<a href="http://www.tradingblox.com/" target="_blank" rel="nofollow"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/TradingBloxLogo.jpg" alt="TradingBloxLogo" title="TradingBloxLogo" width="235" height="90" class="aligncenter size-full wp-image-1424" /></a></p>
<p>Regular readers might think that I suffer from <em>backtesting-software-indecision-itis</em>. Having <a href="http://www.automated-trading-system.com/tradersstudio-systems-testing-software/">first settled for TradersStudio</a>, I then evaluated (and purchased) AmiBroker and found that it was <a href="http://www.automated-trading-system.com/amibroker-tradersstudio-speed-comparison/">25 times faster than TradersStudio</a> (at least for the <a href="http://www.automated-trading-system.com/tag/e-ratio/">calculation of the e-ratio</a>). However, AmiBroker is not really geared towards true portfolio allocation testing with Futures and could not just <em>replace</em> TradersStudio &#8211; so I purchased it as a (cheap: $199) complement to it.</p>
<h3>Why TradersStudio in the first place?</h3>
<p>During my first round of evaluation, I did hesitate between TradersStudio and <a href="http://www.tradingblox.com/" target="_blank" rel="nofollow">Trading Blox</a>. At the time, it appeared that there was not a huge difference in functionality but a substantial price difference ($499 for TradersStudio, $3,000 for the full version of Trading Blox Builder). And this is how the choice was made.</p>
<p>However, I never really got past my TraderStudio&#8217;s first (not so good) impressions. Ultimately, I find the platform awkward to work with, documentation rather poor and the user community is very small.</p>
<p>So I decided to give Trading Blox another go and test their latest trial version (v3.3), and give you a <em>teaser</em> review of it.</p>
<h3>Trading Blox: friendly, efficient, fast, professional</h3>
<p>Trading Blox is vastly superior in terms of <span id="more-1422"></span>user interface &#8220;friendliness&#8221; and efficiency (love that script management/edit screen!). This makes the documentation lookup less necessary (and in any case, it is rather better).</p>
<p>The simulation runs are also very fast (300 stepped parameter tests under 7 minutes) and the software comes pre-packed with about a dozen ready-coded systems including the famous Turtle Trading system.</p>
<p>Finally, the numerous backtest options (slippage, commission, rollover slippage, volume, interest, etc.) should simulate trading reality much more closely.</p>
<p>Overall, it feels that the difference between Trading Blox and TradersStudio can be summed up by <em>Pro vs. Amateur</em>: both good at what they do, but playing in different leagues.</p>
<h3>User community</h3>
<p><a href="http://www.tradingblox.com/forum/" target="_blank" rel="nofollow">Trading Blox forum</a> is very good, with top-notch contributors. I joined it a few months ago and the discussion there is top-level, be it on all aspects of trading in general, backtesting, Data problems, Trading Blox questions, etc. It also has a <em>marketplace</em> where users can exchange code/systems, etc. This forum played a big part in my decision to re-consider Trading Blox (TradersStudio&#8217;s own forum and yahoo user group are barely ticking&#8230;).</p>
<h3>In closing: screenshots</h3>
<p>I feel I am about to give in and &#8220;cut my losses short&#8221; with TradersStudio and redeploy my resources towards Trading Blox. In the end, it is a &#8220;time vs dollar trade&#8221; and I feel that the initial outlay will give a great payback (in time savings and progress made). After all, automated trading is a business and one should not shy away from the essential investments.</p>
<p>Tomorrow, I should post a detailed system test using Trading Blox; but for now please find below some screenshots of the software (click to zoom in):<br />
<div id="attachment_1434" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/TradingBloxSampleResults.htm" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/ResultReports-150x150.png" alt="Result Reports" title="ResultReports" width="150" height="150" class="size-thumbnail wp-image-1434" /></a><p class="wp-caption-text">Result Reports</p></div><br />
<div id="attachment_1431" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/GeneralOptions.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/GeneralOptions-150x150.png" alt="rich choice in general options" title="GeneralOptions" width="150" height="150" class="size-thumbnail wp-image-1431" /></a><p class="wp-caption-text">rich choice in general options</p></div><br />
<div id="attachment_1432" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/SystemEditor.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/SystemEditor-150x150.png" alt="System Editor" title="SystemEditor" width="150" height="150" class="size-thumbnail wp-image-1432" /></a><p class="wp-caption-text">System Editor</p></div><br />
<div id="attachment_1433" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/BloxEditor.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/BloxEditor-150x150.png" alt="Blox Editor" title="BloxEditor" width="150" height="150" class="size-thumbnail wp-image-1433" /></a><p class="wp-caption-text">Blox Editor</p></div><br />
<div id="attachment_1435" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/ResultsScatterPlot_P0.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/ResultsScatterPlot_P0-150x150.png" alt="Heat map for stepped parameter" title="ResultsScatterPlot_P0" width="150" height="150" class="size-thumbnail wp-image-1435" /></a><p class="wp-caption-text">Heat map for stepped parameter</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/trading-blox-teaser-review/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>How-To: CSI Data into TradersStudio</title>
		<link>http://www.automated-trading-system.com/csi-data-into-tradersstudio/</link>
		<comments>http://www.automated-trading-system.com/csi-data-into-tradersstudio/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 13:34:09 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CSI]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[tradersstudio]]></category>
		<category><![CDATA[Unfair Advantage]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=1225</guid>
		<description><![CDATA[Dear readers, I hope you enjoyed the holiday break. I wish you a happy New Year &#8211; may it bring you progress and success in your automated trading endeavours! I wanted to start this year with an idea I left off last year, when investigating robustness: Using the median as a more robust tool than [...]]]></description>
			<content:encoded><![CDATA[<p>Dear readers, I hope you enjoyed the holiday break. I wish you a happy New Year &#8211; may it bring you progress and success in your automated trading endeavours!</p>
<p>I wanted to start this year with an idea I left off last year, when <a href="http://www.automated-trading-system.com/robustness-definitions/">investigating robustness</a>: <em>Using the median as a more robust tool than the ubiquitous mean (or average).</em> This will be covered in the next post via a TradersStudio simulation results. To do that, I had to re-import some data from <em>CSI Unfair Advantage</em> to <em>TradersStudio</em>. I thought a &#8220;how-to&#8221; post on this would be useful &#8211; if only as an aide-memoire for next time (note-taking and documentation are important after all&#8230;)</p>
<h3>Extract CSI Data</h3>
<p>The first step is to extract the data from the CSI database into text files<span id="more-1225"></span><br />
(by the way, CSI have a 20% discount running until the end of January &#8211; just check their <a href="http://www.csidata.com/" target="_blank" rel="nofollow">homepage</a>).<br />
This can be done with <a href="http://www.automated-trading-system.com/unfair-advantage-api-code-c-extract-futures-continuous-data/">code using the Unfair Advantage API</a>.</p>
<p>Pick all the instruments to be extracted and create a &#8220;contracts.param&#8221; file containing the CSI number for those instruments in the first column (comma-separated file with other columns being ignored). The CSI numbers can be found on their website (like <a href="http://www.csidata.com/cgi-bin/newspaperwrap.pl?file=/csiweb/ua/FactsheetHtml/CME.htm&#038;fmt=nomenu&#038;title=CME%20-%20Chicago%20Mercantile%20Exchange" rel="nofollow" target="_blank">here for the CME Futures</a>) or in their Unfair Advantage software UI. Running the EXE code will generate one file for each instrument (proportionally back-adjusted contract) in the following format:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #2400d9;">19900403</span>,<span style="color: #2400d9;">199006</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">240</span>,<span style="color: #2400d9;">110</span>,<span style="color: #2400d9;">918</span>,<span style="color: #2400d9;">503</span>,<span style="color: #2400d9;">2</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">1.59</span>,<span style="color: #2400d9;">1.655</span>,<span style="color: #2400d9;">1.58</span>,<span style="color: #2400d9;">1.635</span>,<span style="color: #2400d9;">1.635</span>,<span style="color: #2400d9;">1.635</span>,<span style="color: #2400d9;">1.635</span>
<span style="color: #2400d9;">19900404</span>,<span style="color: #2400d9;">199006</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">84</span>,<span style="color: #2400d9;">127</span>,<span style="color: #2400d9;">656</span>,<span style="color: #2400d9;">721</span>,<span style="color: #2400d9;">3</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">1.6</span>,<span style="color: #2400d9;">1.65</span>,<span style="color: #2400d9;">1.599</span>,<span style="color: #2400d9;">1.62</span>,<span style="color: #2400d9;">1.62</span>,<span style="color: #2400d9;">1.62</span>,<span style="color: #2400d9;">1.62</span>
<span style="color: #2400d9;">19900405</span>,<span style="color: #2400d9;">199006</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">57</span>,<span style="color: #2400d9;">112</span>,<span style="color: #2400d9;">554</span>,<span style="color: #2400d9;">885</span>,<span style="color: #2400d9;">4</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">1.615</span>,<span style="color: #2400d9;">1.635</span>,<span style="color: #2400d9;">1.61</span>,<span style="color: #2400d9;">1.615</span>,<span style="color: #2400d9;">1.615</span>,<span style="color: #2400d9;">1.615</span>,<span style="color: #2400d9;">1.615</span>
<span style="color: #2400d9;">19900406</span>,<span style="color: #2400d9;">199006</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">62</span>,<span style="color: #2400d9;">136</span>,<span style="color: #2400d9;">436</span>,<span style="color: #2400d9;">1092</span>,<span style="color: #2400d9;">5</span>,<span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">1.615</span>,<span style="color: #2400d9;">1.635</span>,<span style="color: #2400d9;">1.61</span>,<span style="color: #2400d9;">1.625</span>,<span style="color: #2400d9;">1.625</span>,<span style="color: #2400d9;">1.625</span>,<span style="color: #2400d9;">1.625</span></pre></div></div>

<h3>Load in TradersStudio</h3>
<p>The second step is to load the files in TradersStudio. Copy all generated text files in a dedicated data directory (you might have to rename them as TradersStudio allowed filename length is fairly short, i.e. 10-15 characters).<br />
Create the relevant mapping file (<a href='http://www.automated-trading-system.com/wp-content/uploads/2010/01/txtinfo.txt' target="_blank">txtinfo.txt</a>) in the data directory. The mapping file should read:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;">delimit<span style="color: #002200;">=</span>,
skip<span style="color: #002200;">=</span><span style="color: #2400d9;">0</span>
dt<span style="color: #002200;">=</span><span style="color: #2400d9;">1</span>
ti<span style="color: #002200;">=</span><span style="color: #2400d9;">0</span>
op<span style="color: #002200;">=</span><span style="color: #2400d9;">10</span>
hi<span style="color: #002200;">=</span><span style="color: #2400d9;">11</span>
lo<span style="color: #002200;">=</span><span style="color: #2400d9;">12</span>
cl<span style="color: #002200;">=</span><span style="color: #2400d9;">13</span>
vol<span style="color: #002200;">=</span><span style="color: #2400d9;">6</span>
oi<span style="color: #002200;">=</span><span style="color: #2400d9;">7</span>
dtformat<span style="color: #002200;">=</span>CCYYMMDD
tiformat<span style="color: #002200;">=</span></pre></div></div>

<p>In TradersStudio, menu Data Manager/Add Data Links, point to the relevant data directory with the following options:</p>
<p><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/DataManager.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/DataManager-300x259.png" alt="DataManager" title="DataManager" width="300" height="259" class="alignnone size-medium wp-image-1226" /></a></p>
<p><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/InstrumentType.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/InstrumentType-300x195.png" alt="InstrumentType" title="InstrumentType" width="300" height="195" class="alignnone size-medium wp-image-1228" /></a></p>
<p>If all goes well, this will load the data in the system (errors I encountered were due to file names being too long).</p>
<h3>Data Universe: Contract meta-data</h3>
<p>The third step is to populate the meta-data (margin, min tick move, etc.) for each instrument in TradersStudio. This is done via the menu Data Manager/Data Universe.</p>
<p><a href="http://www.automated-trading-system.com/wp-content/uploads/2010/01/DataUniverse-MetaData.png" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2010/01/DataUniverse-MetaData-293x300.png" alt="DataUniverse-MetaData" title="DataUniverse-MetaData" width="293" height="300" class="alignnone size-medium wp-image-1227" /></a></p>
<p>Once done, the instruments can be used just by adding them to any session.</p>
<p>As mentioned earlier the next post will be a test comparing moving average and moving median indicators.</p>
<p><strong>Note</strong>: You can receive a <a href="http://www.automated-trading-system.com/csi" target="_blank" rel="nofollow">10% discount on CSI data subscriptions</a> (use coupon code LIBERTY)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/csi-data-into-tradersstudio/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to decide on a Backtesting and Trading Platform</title>
		<link>http://www.automated-trading-system.com/backtesting-trading-platform/</link>
		<comments>http://www.automated-trading-system.com/backtesting-trading-platform/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 11:31:55 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amibroker]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[CSI]]></category>
		<category><![CDATA[eSignal]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[Futures]]></category>
		<category><![CDATA[introducing broker]]></category>
		<category><![CDATA[NinjaTrader]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[tradersstudio]]></category>
		<category><![CDATA[tradestation]]></category>
		<category><![CDATA[Zen Fire]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=760</guid>
		<description><![CDATA[As an automated trader you probably need the following components: Broker Account &#8211; The starting point to trade in the markets Live Market Data &#8211; To feed to your trading robot so that it can generate trading signals. Most brokers provide market data with proprietary or third-party technology- although market data can also be obtained [...]]]></description>
			<content:encoded><![CDATA[<p>As an automated trader you probably need the following components:</p>
<ul>
<li><strong>Broker Account</strong> &#8211; The starting point to trade in the markets</li>
<li><strong>Live Market Data</strong> &#8211; To feed to your trading robot so that it can generate trading signals. Most brokers provide market data with proprietary or third-party technology- although market data can also be obtained from an independent vendor (e.g. eSignal).</li>
<li><strong>Order Routing</strong> &#8211; To transmit your orders to the exchange. These can be proprietary to the executing broker or third-party based (e.g. Zen Fire).</li>
<li><strong>Broker Trading Platform</strong> &#8211; To access your account information, place orders, etc.</li>
<li><strong>Charting Platform</strong> &#8211; Sometimes the broker platform charting capabilities are mediocre and an independent charting platform is required (e.g. eSignal)</li>
<li><strong>Signal Generation Platform</strong> &#8211; The actual trading robot: it analyses market data, account and positions information and implements the automated trading strategies to generate trade management signals (i.e. Buy / Sell / Exit, etc.).</li>
<li><strong>Excecution Platform</strong> &#8211; Receives trade signals and forwards them to the order routing.</li>
<li><strong>Platform Hosting</strong> &#8211; You can host the trading robot on your local machine, host it in a dedicated rented server or entrust a specialised broker to host and run your trading robot.</li>
<li><strong>Historical Market Data</strong> &#8211; Used as source for back-testing trading strategies</li>
<li><strong>Strategy Development Application</strong> &#8211; Allows for coding, optimisation, back-test and result analysis of trading strategies.</li>
<li><strong>Statistical Analysis package</strong> &#8211; for in-depth statistical analysis of back-testing results.</li>
</ul>
<p>Some of these distinctions are physical, some are logical. For example, TradeStation packs many of the points above into one system: a broker account and a trading platform that allows you to:<span id="more-760"></span><br />
Access live market data + Visualise price charts + Automate trading strategies that generate signals + Route the trading signals as orders on the exchange + Access account information + Store historical data + Back-test strategies</p>
<p>Sounds like it fits the bill perfectly, doesn&#8217;t it?<br />
Well let&#8217;s look at the areas you need to consider when deciding on your automated platform.</p>
<h3>Type of broker</h3>
<p>Different issues to consider: is the broker a clearing broker, a non-clearing FCM or an introducing broker? If the latter is it an independent introducing broker or a guaranteed introducing broker (backed by a clearer)? It would seem that the closer to the exchange  you broker is (in terms of relationship), the better/safer it is. See <a href="http://www.automated-trading-system.com/anatomy-futures-transaction/">Anatomy of a Futures transaction</a> for more detail on the different types of brokers.</p>
<h3>Markets supported</h3>
<p>Every broker offers access to different products and different markets. For example Interactive Brokers offers one of most complete coverage (worldwide Futures, Options, Equites and Forex) all &#8220;housed&#8221; under the same Universal Account. Other brokers only offer access to specific products/markets.</p>
<h3>Latency/Speed</h3>
<p>For some type of trading strategy, this can have a large impact and various platforms/feeds offer different levels of performance. This has led to specialist companies such as Zen Fire or Trading Technologies &#8211; which locate their servers very close to the exchange &#8211; achieving speed and reliability for data feed and order routing. They offer their services to brokers who can in turn offer it to their clients.</p>
<h3>Development Language</h3>
<p>This is mostly a matter of personal preference, experience and expertise. TradeStation has been around for longer and a big collection of Easy Language scripts are available for re-use while NinjaTrader, for example, uses C# and CQG Trader their own language.</p>
<h3>Strategy Complexity vs. Platform Functionality</h3>
<p>Most of the automated trading platforms that offer back-testing functionality lack sophistication of dedicated applications such as Mechanica, TraderStudio or Trading Blox. For example portfolio testing is usually not available in the live trading platforms. This might work for some simple strategies but not for more complex Money Management ones.</p>
<h3>Hosting</h3>
<p>You can run the trading robot on your machine, which makes you subject to power and connection failures or you can choose to rent a server to host your robot. Some brokers also offer trading strategy hosting and execution on their own servers.</p>
<h3>Charting</h3>
<p>Some specialised platforms offer better charting capabilities than the standard trading platforms and can be used as a standalone charting application. Some, such as eSignal, also offer a data feed.</p>
<h3>Costs</h3>
<p>An obvious one but between platform costs, execution costs, hardware, etc. there exists a wide range between bottom-end and top-end offerings.</p>
<h3>What/how to choose?</h3>
<p>While researching for this article I have come across <em>many</em> different packages offering different solutions. One of the best ways to help you decide on a solution that makes sense to <em>you</em> is to list <em>your goals</em> and cross-check each platform against them <a href="http://home.comcast.net/~countertrender/AI_for_the_Individual_Trader.pdf" target="_blank" rel="nofollow">in this fashion (PDF doc)</a>.</p>
<p>There are endless possibilities for combining all the differenty packages. Just for fun I tried to &#8220;virtually build&#8221; the opposite of an all-in-one package such as TradeStation (which will probably not address most automated trader goals) &#8211; here is one &#8220;wacky&#8221; implementation.<br />
<div id="attachment_762" class="wp-caption aligncenter" style="width: 460px"><img src="http://www.automated-trading-system.com/wp-content/uploads/2009/10/wacky-architecture.png" alt="wacky ATS architecture" title="wacky-architecture" width="450" height="450" class="size-full wp-image-762" /><p class="wp-caption-text">A trader decides to use TradeStation as a signal generating platform. However she does not want to use TradeStation data feed and instead decides to go for the eSignal package integrating the broker Dorman Trading and the Zen-Fire connection for market data and a charting platform. In order to route the market data to TradeStation, she needs a bridge application - OwnData from TS Support for example. The backup feed solution would be TradeStation data feed. For the execution side of things, our trader decides to send the trading signals generated by TradeStation to NinjaTrader, which can route the orders to the exchange through a broker. The primary route is through Velocity Futures broker using Trading Technologies order routing, while the secondary route is through Interactive Brokers via their TWS trading platform and API! Additionally, the strategy research and testing is performed with Mechanica using CQG tick data while the results are analysed using R.</p></div></p>
<h3>Conclusion</h3>
<p>Sorry to end up on a cliche but there are no silver bullet to making the choice. If you take away one point is that you need to list your own requirements clearly and make the choice for yourself based on them.</p>
<p>Check that <a href="http://www.elitetrader.com/vb/showthread.php?threadid=108534<br />
" target="_blank" rel="nofollow">60-page thread at EliteTrader</a> if you want an endless discussion as to which is the best platform/architecture&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/backtesting-trading-platform/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Amibroker vs TradersStudio: comparison</title>
		<link>http://www.automated-trading-system.com/amibroker-v-tradersstudio-comparison/</link>
		<comments>http://www.automated-trading-system.com/amibroker-v-tradersstudio-comparison/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 10:18:38 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[afl]]></category>
		<category><![CDATA[amibroker]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[tradersstudio]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=981</guid>
		<description><![CDATA[A couple of weeks ago I downloaded Amibroker to see if it could compute the e-ratio much faster than TradersStudio (it did!). The result of the speed comparison is there and the Amibroker code for the e-ratio is there. I thought it might be interesting to do a comparison of how easy it is to [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I downloaded Amibroker to see if it could <a href="http://www.automated-trading-system.com/e-ratio-trading-edge/">compute the e-ratio</a> much faster than TradersStudio (it did!). The result of the speed comparison is <a href="http://www.automated-trading-system.com/amibroker-tradersstudio-speed-comparison/">there</a> and the Amibroker code for the e-ratio is <a href="http://www.automated-trading-system.com/e-ratio-amibroker-code/">there</a>.<br />
I thought it might be interesting to do a comparison of how easy it is to get on with both platforms as a new user.</p>
<h3>Software and manuals</h3>
<p>You can download a fully-functioning Amibroker demo (you cannot with TraderStudio and even when you buy it you have to wait for CDs by post!) which contains some limitations (i.e no more than 5 markets back-tested at a time, etc.).<br />
The manuals are all online and very thorough, complemented with additional articles, presentations and other materials. This makes it very handy (again compared to TradersStudio printed 300 page manual &#8211; yet incomplete) as you can search them electronically to look for exactly what you need.<span id="more-981"></span></p>
<h3>Large Community</h3>
<p>The Amibroker community seems much wider and as a result there is <em>loads</em> of available scripts for re-use. There is actually a whole <a href="http://www.amibroker.com/library/list.php" target="_blank" rel="nofollow">library</a> hosted on amibroker website.<br />
There is also much, much more information available on the internet. As a sample test I googled &#8220;Amibroker Donchian&#8221; vs. &#8220;TradersStudio Donchian&#8221;: 23,200 results vs. 17 (including this blog!).<br />
Finally the <a href="http://finance.groups.yahoo.com/group/amibroker/" target="_blank" rel="nofollow">yahoo group</a> is much more active. There are about 10 times more daily messages (although the TradersStudio one can go days without getting a single message). As an example I posted a question related to the custom backtester and got a useful answer the next day.</p>
<h3>The platform</h3>
<p>It takes a bit of time to get used to the concept and principles of Amibroker. It is quite different from TradersStudio. For example, all afl files are self-contained and might implement indicator, system, back-test procedure, scan and exploration code all at once (although only one part really runs at once &#8211; alightly confusing at first). In TradersStudio you can also define functions to be called in other code files; this does not appear possible in Amibroker (you would have to copy/paste the code over and over again). Both platforms allow you to build COM dlls to code up your functions.</p>
<p>The GUI is different but I would not say better or worse than TradersStudio.The charting forms a more central part of the Amibroker platform and just firing up a chart with several indicators is pretty quick. At first glance the money management/portfolio allocation does not appear very rich in Amibroker (in terms of functionality) but I would have to do more testing to confirm this.<br />
<div id="attachment_987" class="wp-caption alignnone" style="width: 310px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2009/11/amibroker.jpg" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2009/11/amibroker-300x246.jpg" alt="AmiBroker screenshot" title="amibroker screenshot" width="300" height="246" class="size-medium wp-image-987" /></a><p class="wp-caption-text">AmiBroker screenshot</p></div></p>
<p>The language to create your own indicators, systems, etc. (AFL: Amibroker Formula Language) is based on C and not very hard to pick up especially with the very useful in-line help &#8211; it does help to read the tutorials first (!) to get a grasp of the main keywords/built-in functions.</p>
<h3>Data loading</h3>
<p>Loading the <a href="http://www.automated-trading-system.com/unfair-advantage-api-code-c-extract-futures-continuous-data/">data extracted from CSI Unfair Advantage</a> was fairly straight-forward and there seems to be a bunch of ready-made interfaces with other data vendors in addition to the Amiquote utility &#8211; which allows you import quotes in Amibroker. It seems that there is more flexibility in the type of data fields that can be loaded.</p>
<h3>Conclusion</h3>
<p>Overall I was pretty pleased at what I was able to achieve in a short amount of time. For some reason I found it very hard to <em>get into</em> TradersStudio whereas Amibroker was easier to tackle (once you understand its working concept).<br />
Obviously I have not explored all the functionalities of either software and this is definitely not an exhaustive review. As a result of all this I will be buying a copy of Amibroker to complement (or replace?) TradersStudio. I am sure both platforms each have their pros and cons so having both is probably a good idea (and not a very costly one since Amibroker costs only $200!).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/amibroker-v-tradersstudio-comparison/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Amibroker V. TradersStudio: Speed comparison Fight</title>
		<link>http://www.automated-trading-system.com/amibroker-tradersstudio-speed-comparison/</link>
		<comments>http://www.automated-trading-system.com/amibroker-tradersstudio-speed-comparison/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 14:41:15 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[afl]]></category>
		<category><![CDATA[amibroker]]></category>
		<category><![CDATA[CSI]]></category>
		<category><![CDATA[e-ratio]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[tradersstudio]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=930</guid>
		<description><![CDATA[It might not capture the imagination as much as the recent Haye v. Valuev WBA World Heavyweight Championship fight (it probably might for some of you&#8230; ;-) but I decided to organise my own &#8220;fight&#8221;: AmiBroker V. TradersStudio! And similarly to the boxing, speed was of the essence &#8211; with one platform completely out-performing the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.automated-trading-system.com/wp-content/uploads/2009/11/valuevhayeposter.jpg" alt="valuevhayeposter" title="valuevhayeposter" width="235" height="287" class="alignleft size-full wp-image-932" style="margin-right:12px; margin-bottom:26px;"/><br />
It might not capture the imagination as much as the recent Haye v. Valuev WBA World Heavyweight Championship fight (it probably might for some of you&#8230; ;-) but I decided to organise my own &#8220;fight&#8221;: AmiBroker V. TradersStudio!<br />
And similarly to the boxing, speed was of the essence &#8211; with one platform completely out-performing the other one. Let&#8217;s find out which one&#8230;<span id="more-930"></span></p>
<p>In the last few posts I have been exploring the <a href="http://www.automated-trading-system.com/e-ratio-trading-edge/">e-ratio</a> and wrote the <a href="http://www.automated-trading-system.com/e-ratio-tradersstudio-excel/">code in TradersStudio</a>. I also tried to implement it in <a href="http://www.automated-trading-system.com/e-ratio-amibroker-code/">AmiBroker AFL language</a> mostly to check how it performed speed-wise &#8211; as I found TradersStudio quite slow.</p>
<p>While testing AmiBorker, it actually felt so fast that I decided to perform a more formal speed comparison test.</p>
<h3>Conditions of the test</h3>
<p>I exported the <a href="http://www.automated-trading-system.com/unfair-advantage-api-code-c-extract-futures-continuous-data/">CSI data via the API</a> for a proportionally back-adjusted Corn contract going back to 1949. The data was imported in both AmiBroker and TradersStudio via their ASCII Import.</p>
<p>The system tested is a simple 20-day Donchian Channel Breakout (Buy-only) and the ATR used to normalise the MAE/MFE is 20-day also.<br />
The optimiser in both systems were used to generate the e-ratio for <del datetime="2009-11-10T14:34:18+00:00">50 </del>51 different trade durations (from 10 to 50 days).</p>
<p>One of the condition to validate the results of the test was that the trades generated by both systems are similar (to double-check I did not make a coding mistake resulting in simpler/faster process for one of the platforms).</p>
<p>The computer I was running the test on is a quad-core CPU (2.4 GHz) with 3.25 GB of addressable RAM. Only one platform was running at the time it was tested.</p>
<h3>Results are in!</h3>
<p>And they look astoninglishly good for AmiBroker:</p>
<ul>
<li>The <strong>TradersStudio</strong> test was run first and took <strong>4 mins 15 sec</strong> to complete and produce the custom report (which needs to be manipulated in Excel to calculate the e-ratio). Furthermore, it appeared that every incremental run in the optimisation process took slightly longer than the previous one.</li>
<li>The <strong>AmiBroker</strong> test ran in (&#8230;drumrolls&#8230;) <strong>10 sec!</strong> And the e-ratio was readily available from the results grid:<br />
<div id="attachment_956" class="wp-caption alignnone" style="width: 310px"><a href="http://www.automated-trading-system.com/wp-content/uploads/2009/11/amibroker-optimisation-results.jpg" target="_blank"><img src="http://www.automated-trading-system.com/wp-content/uploads/2009/11/amibroker-optimisation-results-300x191.jpg" alt="AmiBroker optimisation results showing the e-ratio. Click to expand" title="amibroker-optimisation-results" width="300" height="191" class="size-medium wp-image-956" /></a><p class="wp-caption-text">AmiBroker optimisation results showing the e-ratio. Click to expand</p></div></li>
</ul>
<p>Both apps maxed out their allocated CPU (i.e. overall CPU usage of 25% = a quarter of the quad-core CPU available).</p>
<p>I then decided to run the AmiBroker code over <strong>5 markets</strong> to get a feel of how long it would take. I added Crude Oil (going back to 1985), Cotton (1968), Gold (1975) and Yen (1972).<br />
AmiBroker ran the same code + optimisation in <strong>2 mins 20 sec</strong>, twice as fast as one market in TradersStudio!</p>
<p>Applying a simple proportional calculation to derive the time it would take in TradersStudio for the same dataset would give us a completion time of 1 hour (59 min 30 sec exactly&#8230;). Since the performance seems to degrade over the course of the optimisation in TradersStudio (i.e. the first back-test is quicker than the last one of the optimisation run) we could assume that it would actually take longer, which is what I experienced when I was testing on similar data in the last few weeks.</p>
<p>So here you have it: <strong>AmiBroker is 25 times faster than TradersStudio</strong> and it gives you the results in a much more friendly format.</p>
<h3>Trade Reconciliation</h3>
<p>As mentioned earlier, to ensure that the test was valid, the set of trades generated by both systems should be compared. I ran one back-test of the system over the Corn data for a single optimisation step (e-ratio for 20 days duration) in both systems.</p>
<p>I could find that 296 trades out of 340 presented a very good match (some matches had one day difference on the Entry date and rounding differences on the prices). But overall the trade comparison was good enough to give assurance that the same systems and results were being tested.</p>
<p>I&#8217;ll keep investigating for myself where these errors are coming from (and post a  further code update if warranted) but we can assume that the differences are trivial with regards to performance comparison.</p>
<p>Did I mention that AmiBroker is 3 times as cheap with a much wider following (many more code samples, better docs, more forums, etc.)?&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/amibroker-tradersstudio-speed-comparison/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amibroker e-ratio code</title>
		<link>http://www.automated-trading-system.com/e-ratio-amibroker-code/</link>
		<comments>http://www.automated-trading-system.com/e-ratio-amibroker-code/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 12:30:53 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[afl]]></category>
		<category><![CDATA[amibroker]]></category>
		<category><![CDATA[e-ratio]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[tradersstudio]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=901</guid>
		<description><![CDATA[I recently posted about the e-ratio as a tool to measure parts of a trading system (the code files to compute the e-ratio in TradersStudio and Excel are also available). The e-ratio is supposed to be a quick tool to check how signals might add some edge to a trading system. However computing the e-ratio [...]]]></description>
			<content:encoded><![CDATA[<p>I recently posted about the <a href="http://www.automated-trading-system.com/e-ratio-trading-edge/">e-ratio</a> as a tool to measure parts of a trading system (the <a href="http://www.automated-trading-system.com/e-ratio-tradersstudio-excel/">code files to compute the e-ratio in TradersStudio and Excel</a> are also available). The e-ratio is supposed to be a quick tool to check how signals might add some edge to a trading system. However computing the e-ratio in TradersStudio is slow (4+ hours for one signal over 100 different durations).</p>
<p>So I decided to give the &#8220;legendary fast&#8221; Amibroker a test to see if it could better TradersStudio&#8217;s performance. After some &#8220;playing and learning&#8221;, I have finalised the code to compute the e-ratio. My big thanks go to the <a href="http://theasxgorilla.blogspot.com/2007/07/how-to-compute-edge-ratio-in-amibroker.html" target="_blank" rel="nofollow">ASX gorilla</a> whose own version forms a large part of my code.<span id="more-901"></span></p>
<p>Below is the code explanation and downloadable <a href="http://www.automated-trading-system.com/wp-content/uploads/2009/11/e-ratio-gorilla.afl" target="_blank">afl file</a>.</p>
<p>Directly from the ASX Gorilla&#8217;s website as a prelude to the code:</p>
<blockquote><p>My implementation of the Edge Ratio involves two profound Amibroker fudges. The first is the use of the AddToComposite function to create a composite ticker symbol in which to hold the ATR array of a given stock for later retrieval within the Custom Back Tester via the Foreign function.</p></blockquote>
<blockquote><p>The second fudge is the use of the VarSet/VarGet function to create a quasi array. This was necessary to overcome the limitation where array elements cannot exceed in number the value of barcount-1.</p></blockquote>
<p>The first part is to actually code up your Buy signal (in our case a Donchian Channel Breakout). The Sell signals are tested separately:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//BUY RULES: implemented with Buy Stop on Upper Donchian Channel(17)</span>
BuyStop <span style="color: #002200;">=</span> Ref<span style="color: #002200;">&#40;</span>HHV<span style="color: #002200;">&#40;</span>High, <span style="color: #2400d9;">17</span><span style="color: #002200;">&#41;</span>,<span style="color: #002200;">-</span><span style="color: #2400d9;">1</span><span style="color: #002200;">&#41;</span>;
Buy <span style="color: #002200;">=</span> Cross<span style="color: #002200;">&#40;</span> High, BuyStop <span style="color: #002200;">&#41;</span>;
BuyPrice <span style="color: #002200;">=</span> Max<span style="color: #002200;">&#40;</span> BuyStop, Low <span style="color: #002200;">&#41;</span>; <span style="color: #11740a; font-style: italic;">// make sure buy price &gt;= Low</span></pre></div></div>

<p>Exiting positions is done on a fixed duration basis:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//Never Sell so that the position is stopped out after N bar instead</span>
Sell <span style="color: #002200;">=</span> <span style="color: #2400d9;">3</span> &gt; <span style="color: #2400d9;">5</span>;
<span style="color: #11740a; font-style: italic;">//Stop the positon and close it after N bars</span>
<span style="color: #11740a; font-style: italic;">//(eratio = N that we step from 1 to 100 in optimisation)</span>
ApplyStop<span style="color: #002200;">&#40;</span> stopTypeNBar, stopModeBars, eratio <span style="color: #002200;">&#41;</span>;</pre></div></div>

<p>The first fudge mentioned above to store the ATR:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;">Normaliser <span style="color: #002200;">=</span> ATR<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">17</span><span style="color: #002200;">&#41;</span>;
AddToComposite<span style="color: #002200;">&#40;</span>Normaliser, <span style="color: #bf1d1a;">&quot;~atr_&quot;</span><span style="color: #002200;">+</span>Name<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>, <span style="color: #bf1d1a;">&quot;C&quot;</span>, <span style="color: #2400d9;">1</span><span style="color: #002200;">+</span><span style="color: #2400d9;">2</span><span style="color: #002200;">+</span><span style="color: #2400d9;">8</span><span style="color: #002200;">&#41;</span>;</pre></div></div>

<p>And the &#8220;meat&#8221; of the code: the chunk that implements the custom back-testing to:</p>
<ol>
<li>Loop through the signals and store the Entry ATR value.</li>
<li>Loop through all trades and retrieve MFE, MAE and ATR.</li>
<li>Compute the e-ratio based on values from all trades.</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;">SetCustomBacktestProc<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;&quot;</span><span style="color: #002200;">&#41;</span>; <span style="color: #11740a; font-style: italic;">//activate the custom backtester</span>
<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>Status<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;action&quot;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">==</span> actionPortfolio<span style="color: #002200;">&#41;</span> <span style="color: #11740a; font-style: italic;">//called when backtesting/optimising</span>
<span style="color: #002200;">&#123;</span>
	bo <span style="color: #002200;">=</span> GetBacktesterObject<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>;
	bo.PreProcess<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>; <span style="color: #11740a; font-style: italic;">// run default backtest procedure</span>
	TradeATR <span style="color: #002200;">=</span> NumTrades <span style="color: #002200;">=</span> ATRArr <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>; <span style="color: #11740a; font-style: italic;">//init variables</span>
	<span style="color: #a61390;">for</span><span style="color: #002200;">&#40;</span> bar<span style="color: #002200;">=</span><span style="color: #2400d9;">0</span>; bar &lt; BarCount<span style="color: #002200;">-</span><span style="color: #2400d9;">1</span>; bar<span style="color: #002200;">++</span><span style="color: #002200;">&#41;</span>
	<span style="color: #002200;">&#123;</span>
		bo.ProcessTradeSignals<span style="color: #002200;">&#40;</span>bar<span style="color: #002200;">&#41;</span>;
&nbsp;
		<span style="color: #a61390;">for</span> <span style="color: #002200;">&#40;</span> sig<span style="color: #002200;">=</span>bo.GetFirstSignal<span style="color: #002200;">&#40;</span>bar<span style="color: #002200;">&#41;</span>; sig; sig<span style="color: #002200;">=</span>bo.GetNextSignal<span style="color: #002200;">&#40;</span>bar<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
			<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>sig.isEntry<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>
			<span style="color: #002200;">&#123;</span>
				NumTrades<span style="color: #002200;">++</span>;
				ATRArr <span style="color: #002200;">=</span> Foreign<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;~atr_&quot;</span><span style="color: #002200;">+</span>sig.Symbol, <span style="color: #bf1d1a;">&quot;C&quot;</span><span style="color: #002200;">&#41;</span>;
				VarSet<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;TradeATR&quot;</span> <span style="color: #002200;">+</span> NumTrades, ATRArr<span style="color: #002200;">&#91;</span>bar<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
				_TRACE<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;Symbol &quot;</span> <span style="color: #002200;">+</span> sig.Symbol <span style="color: #002200;">+</span> <span style="color: #bf1d1a;">&quot; ATR: &quot;</span> <span style="color: #002200;">+</span> VarGet<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;TradeATR&quot;</span> <span style="color: #002200;">+</span> NumTrades<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
			<span style="color: #002200;">&#125;</span>
		<span style="color: #002200;">&#125;</span>
	<span style="color: #002200;">&#125;</span>
&nbsp;
	AvgMAE <span style="color: #002200;">=</span> AccumMAE <span style="color: #002200;">=</span> AvgMFE <span style="color: #002200;">=</span> AccumMFE <span style="color: #002200;">=</span> NumTrades <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
&nbsp;
	<span style="color: #11740a; font-style: italic;">// iterate through closed trades</span>
	<span style="color: #a61390;">for</span><span style="color: #002200;">&#40;</span> trade <span style="color: #002200;">=</span> bo.GetFirstTrade<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>; trade; trade <span style="color: #002200;">=</span> bo.GetNextTrade<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#41;</span>
	<span style="color: #002200;">&#123;</span>
		NumTrades<span style="color: #002200;">++</span>;
		EntryATR <span style="color: #002200;">=</span> VarGet <span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;TradeATR&quot;</span> <span style="color: #002200;">+</span> NumTrades<span style="color: #002200;">&#41;</span>;
		<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> EntryATR <span style="color: #002200;">!=</span> <span style="color: #2400d9;">0</span> <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
			_TRACE<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;EntryATR: &quot;</span> <span style="color: #002200;">+</span> WriteVal<span style="color: #002200;">&#40;</span>EntryATR<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
			_TRACE<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;AccumMAE : &quot;</span> <span style="color: #002200;">+</span> WriteVal<span style="color: #002200;">&#40;</span>AccumMAE<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
			AccumMAE <span style="color: #002200;">=</span> AccumMAE <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span>trade.GetMAE<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span>trade.EntryPrice<span style="color: #002200;">/</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">100</span><span style="color: #002200;">*</span>EntryATR<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
			AccumMFE <span style="color: #002200;">=</span> AccumMFE <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span>trade.GetMFE<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span>trade.EntryPrice<span style="color: #002200;">/</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">100</span><span style="color: #002200;">*</span>EntryATR<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
		<span style="color: #002200;">&#125;</span>
&nbsp;
		trade.AddCustomMetric<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;My MAE&quot;</span>, trade.GetMAE<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span>trade.EntryPrice<span style="color: #002200;">/</span><span style="color: #2400d9;">100</span><span style="color: #002200;">&#41;</span>;
		trade.AddCustomMetric<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;My MFE&quot;</span>, trade.GetMFE<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span>trade.EntryPrice<span style="color: #002200;">/</span><span style="color: #2400d9;">100</span><span style="color: #002200;">&#41;</span>;
		trade.AddCustomMetric<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;Entry ATR&quot;</span>, EntryATR<span style="color: #002200;">*</span><span style="color: #2400d9;">10000</span><span style="color: #002200;">&#41;</span>;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	AvgMAE <span style="color: #002200;">=</span> AccumMAE <span style="color: #002200;">/</span> NumTrades;
	AvgMFE <span style="color: #002200;">=</span> AccumMFE <span style="color: #002200;">/</span> NumTrades;
&nbsp;
	_TRACE<span style="color: #002200;">&#40;</span>WriteVal<span style="color: #002200;">&#40;</span>AccumMAE <span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
	_TRACE<span style="color: #002200;">&#40;</span>WriteVal<span style="color: #002200;">&#40;</span>NumTrades<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
	_TRACE<span style="color: #002200;">&#40;</span>WriteVal<span style="color: #002200;">&#40;</span>AvgMAE<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
	Eratio <span style="color: #002200;">=</span> <span style="color: #a61390;">abs</span><span style="color: #002200;">&#40;</span>AvgMFE<span style="color: #002200;">/</span>AvgMAE<span style="color: #002200;">&#41;</span>;
&nbsp;
	_TRACE<span style="color: #002200;">&#40;</span>WriteVal<span style="color: #002200;">&#40;</span>Eratio<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
	bo.AddCustomMetric<span style="color: #002200;">&#40;</span> <span style="color: #bf1d1a;">&quot;Avg MAE&quot;</span>, AvgMAE <span style="color: #002200;">&#41;</span>;
	bo.AddCustomMetric<span style="color: #002200;">&#40;</span> <span style="color: #bf1d1a;">&quot;Avg MFE&quot;</span>, AvgMFE <span style="color: #002200;">&#41;</span>;
	bo.AddCustomMetric<span style="color: #002200;">&#40;</span> <span style="color: #bf1d1a;">&quot;Eratio&quot;</span>, Eratio<span style="color: #002200;">&#41;</span>;
&nbsp;
	bo.PostProcess<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>If you want to run this code, you can download the <a href="http://www.automated-trading-system.com/wp-content/uploads/2009/11/e-ratio-gorilla.afl" target="_blank">e-ratio &#8220;gorilla&#8221; afl file</a> and simply update the BUY signals to whatever you fancy testing.</p>
<p>The next post will be a direct speed comparison between TradersStudio and Amibroker for computing the e-ratio on the same underlying data and with the same signal. I expect Amibroker to <em>win the fight</em> hands-down as it appeared &#8220;way&#8221; faster!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/e-ratio-amibroker-code/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>How can Walk-Forward testing keep your system a step ahead?</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/</link>
		<comments>http://www.automated-trading-system.com/walk-forward-testing/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 13:08:41 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[tradersstudio]]></category>
		<category><![CDATA[walk-forward]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671</guid>
		<description><![CDATA[Out-of-Sample testing is a necessary practice to avoid curve-fitting during the optimisation of a trading system. Walk-Forward testing improves on the idea of out-of-sample data testing and is designed as an on-going, adaptive approach. Its invention is mostly credited to Robert Pardo (read more about it in his book) The way it works is fairly [...]]]></description>
			<content:encoded><![CDATA[<p>Out-of-Sample testing is a necessary practice to avoid curve-fitting during the optimisation of a trading system. Walk-Forward testing improves on the idea of out-of-sample data testing and is designed as an on-going, adaptive approach. Its invention is mostly credited to Robert Pardo (read more about it in <a href="http://www.amazon.com/exec/obidos/ASIN/0470128011/autotradblog-20" target="_blank" rel="nofollow">his book</a>)</p>
<p>The way it works is fairly simple. It is a combination of multiple cycles of &#8220;in-sample optimisation&#8221; with &#8220;out-of-sample verification&#8221;.</p>
<h3>Background on optimisation and out-of-sample testing</h3>
<p>The reason for performing out-of sample verification tests is to <span id="more-671"></span>check whether the in-sample data optimisation resulted in curve-fitting (over-optimisation) or in a robust system parameters selection.</p>
<p>If the parameters derived from optimisation perform much worse in the out-of-sample verification test, it most likely means that the parameter values were (over-) optimised for the specific in-sample dataset (curve-fitted). If the system performs similarly, it should mean that the system parameters are robust and validate the approach taken for optimisation.</p>
<h3>Walk-Forward Process: how it works</h3>
<p>Walk-Forward testing is an <em>on-going and dynamic process</em> to determine whether parameters optimisation just curve fits the price and noise or produces statistically valid out-of-sample results. Here is how it works:</p>
<p>Let&#8217;s say we have 10 years of data from 1999 to 2009. Optimisation period is three years (in-sample data) and Verification period is one year (out-of-sample data). To begin, you start by optimising your system using only the first three years of data &#8211; in this example, 1999-2001. When the system is optimised, record the optimal parameter values and use them in the test with new data (out-of-sample) starting with 2002.</p>
<div id="attachment_672" class="wp-caption aligncenter" style="width: 471px"><img src="http://www.automated-trading-system.com/wp-content/uploads/2009/10/Walk-Forward.gif" alt="Walk Forward from 1999 to 2009" title="Walk Forward" width="461" height="360" class="size-full wp-image-672" /><p class="wp-caption-text">Walk Forward from 1999 to 2009</p></div>
<p>Slide the three-year window of data forward (2000-2002) and perform the same process. Once you have processed all the data available, you can collate the performance of all out-of-sample tests and compare those to in-sample optimisation runs. If the comparison shows that the system is sufficiently robust to be traded live, you simply continue the walk-forward process in real time by re-optimising every year.</p>
<h3>In Closing</h3>
<p>Walk-Forward is an adaptive process which re-optimises the system on a continuous basis to adapt its parameters to the most recent market conditions.</p>
<p>The premise of performing several optimisation/verification steps over time is that the recent past is a better environment for selecting system parameters than the distant past. This is an assumption you need to consider when choosing whether to use Walk-Forward testing or not but this is a useful tool in your Systems development arsenal.</p>
<p>As discussed <a href="http://www.automated-trading-system.com/trading-chameleon/">earlier</a> changing system parameters based on recent market conditions could result in a system chasing its tail. The next post on this topic will be an actual comparison of a basic system’s performance when optimised in a &#8220;standard way&#8221; and when optimised using &#8220;Walk-Forward&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/walk-forward-testing/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>e-ratio calculation in TradersStudio and Excel</title>
		<link>http://www.automated-trading-system.com/e-ratio-tradersstudio-excel/</link>
		<comments>http://www.automated-trading-system.com/e-ratio-tradersstudio-excel/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 10:31:48 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[e-ratio]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[tradersstudio]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=810</guid>
		<description><![CDATA[Here is one method to implement an e-ratio calculation. As we say in developerspeak, the following is a quick and dirty approach to calculating the e-ratio. But as far as I am concerned, it does the job! It can probably be programmed more elegantly in TradersStudio but I still have to climb some of that [...]]]></description>
			<content:encoded><![CDATA[<p>Here is one method to implement an <a href="http://www.automated-trading-system.com/e-ratio-trading-edge/">e-ratio</a> calculation.<br />
As we say in <em>developerspeak</em>, the following is a <em>quick and dirty</em> approach to calculating the e-ratio. But as far as I am concerned, it does the job! It can probably be programmed more elegantly in TradersStudio but I still have to climb some of that software learning curve&#8230;</p>
<p>I will show you how I calculated the e-ratio for a 17-day Donchian Channel breakout coupled with <span id="more-810"></span>a 108-day moving average filter (the red curve on <a href="http://www.automated-trading-system.com/e-ratio-trading-edge#e-ratio-filter-chart">this chart</a>). All the code referenced is provided at the end of this post.</p>
<p>As we saw in the <a href="http://www.automated-trading-system.com/e-ratio-trading-edge/">last post about the e-ratio</a>, you need to run the same signal over multiple fixed trade durations and record trade data. For this the TradersStudio optimisation and custom reports functionalities fit the bill.</p>
<h3>System Code</h3>
<h4>Step 1: code up the system to test in TraderStudio</h4>
<p>As you can not have simultaneous open Buy and Sell positions, there are actually 2 systems (long-only and short-only). The below will be based on the Buy-only system.<br />
The entry signal is a breakout of the Donchian channel if the MA filter conditions are met (price > MA and MA rising).<br />
In TradersStudio this translates to:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">MA = ScriptAve(<span style="color: #8D38C9; font-weight: bold;">Close</span>, MALength,0)
<span style="color: #8D38C9; font-weight: bold;">If</span> MA &gt; MA[1] <span style="color: #8D38C9; font-weight: bold;">And</span> <span style="color: #8D38C9; font-weight: bold;">Close</span> &gt; MA <span style="color: #8D38C9; font-weight: bold;">Then</span>
    Buy(EntryName,1,donchianHigh+MinMove ,<span style="color: #151B8D; font-weight: bold;">Stop</span>,Day)
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #8D38C9; font-weight: bold;">If</span></pre></div></div>

<p>The exit is simple: close the trade after <em>n</em> days (tradeLength):</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #8D38C9; font-weight: bold;">If</span> BarsSinceEntry=tradeLength <span style="color: #8D38C9; font-weight: bold;">And</span> MarketPosition=1 <span style="color: #8D38C9; font-weight: bold;">Then</span>
    ExitLong(<span style="color: #800000;">&quot;ExitLong&quot;</span>,EntryName,1,0,CloseExit,Day)
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #8D38C9; font-weight: bold;">If</span></pre></div></div>

<h4>Step 2: retrieve trade data in custom report</h4>
<p>As discussed in the e-ratio post we need to get MAE, MFE and ATR for each trade. For this we use a TradersStudio custom report. The report code is executed at the end of the system test and retrieve trade info with the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">GetInfoAboutTrades(Info, i + 1)</pre></div></div>

<p>we are interested in the MAE and MFE which can be derived off the Maximum Profit and Maximum Loss of each trade:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">SetCell(row, 13, 2, 10, Info[16]) <span style="color: #008000;">'Max Pos Profit
</span>SetCell(row, 14, 2, 10, Info[17]) 'Max Pos Loss</pre></div></div>

<p>For the ATR value, we need to use a little trick as it is not directly available. We record it as part of the entry name which can be output to the report.<br />
In the system code we have:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">EntryName = <span style="color: #800000;">&quot;DonchianBreakoutBuy&quot;</span> + <span style="color: #800000;">&quot;|&quot;</span> + indLength + <span style="color: #800000;">&quot;|&quot;</span> + tradeLength  + <span style="color: #800000;">&quot;|&quot;</span> + avgtruerange(indLength)</pre></div></div>

<p>which concatenates the entry name with the ATR value as well as the length of the indicator (Donchian Channel) and trade duration &#8211; this will come in handy when we do the e-ratio calculation.</p>
<h4>Step 3: run the system through the optimizer</h4>
<p>The system is called DonchianChanBrkoutFiltBuy and has 3 parameters:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #E56717; font-weight: bold;">Sub</span> DonchianChanBrkoutFiltBuy(indLength, tradeLength, MALength)</pre></div></div>

<p>In the optimization process, step through all values of trade duration required (e.g from 1 to 100 in increments of 1) &#8211; warning TradersStudio will take a few hours to do this (sic!).<br />
This will generate a custom trade report for all trades containing all the data required.</p>
<h4>Step 4: paste data in Excel</h4>
<p>Once you run the long-only and short-only systems, we are done with TradersStudio. We need to move the data over to Excel for analysis and the e-ratio computation.<br />
Copy the custom trade report from the short-only system run to one sheet and from the long-only run to another sheet (watch out for the number of rows: if you have more than 65,536 and a version of Excel earlier than 2007 you will need to do that in several chunks).</p>
<h4>Step 5: Run e-ratio macro</h4>
<p>Copy the macro code from the text file, create a new VBA module in Excel and paste the code in it.<br />
Go back to both sheets and run the macro. This should manipulate the data and create an aggregation pivot table on a separate sheet.</p>
<h4>Step 6: Compute the e-ratio</h4>
<p>On a brand new sheet, copy both pivot tables (I recommend a paste/special &#8211; values only) side by side so that each trade length values corespond with each other. Sum each Total value (column D and J) together for the same Buy and Sell parameters (in column N in example file). Divide each Sum of MFE by Sum of MAE: this gives you the e-ratio for the given trade length.</p>
<h3>THE CODE</h3>
<p>Please find below code files to support the example below (all txt files except the Excel workbook). This should be easily portable to any system (i.e. just change entry criteria in the system).<br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/DonchianChannel.txt" target="_blank">Donchian Channel Indicator</a><br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/MyCustomTBT.txt" target="_blank">Custom trade Report</a><br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/DonchianChanBrkoutFiltBuy.txt" target="_blank">Buy System</a><br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/DonchianChanBkoutFiltSell.txt" target="_blank">Sell System</a><br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/e-ratio XL macro.txt" target="_blank">Excel e-ratio macro (text file)</a><br />
<a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/Sample e-ratio calc.xls" target="_blank">Excel example workbook</a> (does not contain underlying raw data as it is 60MB!)</p>
<p>Or if you prefer a zipped version of all files &#8211; <a href="http://www.automated-trading-system.com/wp-content/uploads/2009/10/e-ratio/e-ratio.zip" target="_blank">here it is</a>.</p>
<p>Any questions, clarifications, etc. please let me know how I can help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/e-ratio-tradersstudio-excel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TradersStudio: the best Systems testing software?</title>
		<link>http://www.automated-trading-system.com/tradersstudio-systems-testing-software/</link>
		<comments>http://www.automated-trading-system.com/tradersstudio-systems-testing-software/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 09:45:48 +0000</pubDate>
		<dc:creator>Jez Liberty</dc:creator>
				<category><![CDATA[Backtest]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[CSI]]></category>
		<category><![CDATA[tradersstudio]]></category>
		<category><![CDATA[tradestation]]></category>
		<category><![CDATA[Unfair Advantage]]></category>

		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=642</guid>
		<description><![CDATA[I should say &#8220;Yes&#8221; as I decided to purchase, and now own TradersStudio. For the price ($499), it offers a very decent package for developing and testing automated trading systems. Why I chose TradersStudio I did consider a few options before buying TradersStudio (Amibroker, TradeStation, Trading Blox, WealthLab, NinjaTrader) and based on feature analysis, recommendations [...]]]></description>
			<content:encoded><![CDATA[<p>I should say &#8220;Yes&#8221; as I decided to purchase, and now own TradersStudio. For the price ($499), it offers a very decent package for developing and testing automated trading systems.</p>
<h3>Why I chose TradersStudio</h3>
<p>I did consider a few options before buying <a href="http://www.tradersstudio.com/" target="_blank" rel="nofollow">TradersStudio</a> (Amibroker, TradeStation, Trading Blox, WealthLab, NinjaTrader) and based on feature analysis, recommendations and actual testing, I settled on TradersStudio.<br />
My requirements were for a standalone platform that would allow me to test any system, with money management and multiple system interaction.<br />
I did hesitate with Trading Blox, which I enjoyed testing (demo version), but in the end the price sorted the argument (Trading Blox is $3,000 for similar functionality).<br />
For more info on what each product offers, I would definitely recommend heading to <a href="http://www.elitetrader.com/" target="_blank" rel="nofollow">EliteTrader</a> where many platform comparison posts can be found. Please also feel free to ask me questions in the Comments section below.</p>
<h3>First impressions</h3>
<p>Not so good&#8230; There is no<span id="more-642"></span> demo available on the website, you can not download the app from the website once purchased and the manuals you receive after waiting a few days seem quite unprofessional (despite being over 300 pages).<br />
However, the install is quite easy and you can be up and running following examples from the manual in a few minutes.</p>
<h3>Main Features</h3>
<p>The app offers some interesting features which help me take the decision:</p>
<h3>Integrated Systems testing</h3>
<p>TradersStudio uses different hierarchical levels: Instrument, System, Session, Trade Plan. This allows you to test a <em>complete</em> system (i.e. more than simple entry and exit testing). A Trade Plan can contain several sessions, which in turn can contain several systems and instruments with possible interaction between them. Additionally, Money Management options can be tested as part of the Trading Plan. This makes it much more realistic than a collection of independent strategy tests.<br />
There is also to the concept of <em>virtual systems</em> that allow you to run a system in &#8220;monitor&#8221; mode and only use it for decision making on other &#8220;live&#8221; systems (i.e. enter a trade in real system only after virtual system posts 3 losing trades).</p>
<h3>Customisation</h3>
<p>TradersStudio implements its own Macro language, which appears to be a cross between TradeStation EasyLanguage and Visual Basic. Theoritically you can implement whatever extra functionality you require (indicator, software add-in, etc.). Moreover there is an import tool that automatically converts TradeStation EasyLanguage code, which should allow to reuse available code.</p>
<h3>Data-independent</h3>
<p>You can basically load data from whatever source you wish in any supported format (any standard text file format will do). I personally use Unfair Advantage from CSI and getting it loaded to TradersStudio was a breeze (see <a href="http://www.automated-trading-system.com/tag/unfair-advantage/">Unfair Advantage posts</a> for more information on CSI UA -> TradersStudio)</p>
<h3>Walk Forward</h3>
<p>Walk forward is a useful concept to use in back-testing to avoid over-optimization and curve-fitting. TradersStudio implements this functionality and runs it automatically which means less manual workaround for you to deal with.</p>
<h3>Documentation issues</h3>
<p>My main grudge is about the manuals. Despite being over 300 pages it is still missing an essential reference guide for programming using their language (there are a few examples but they do not cover the whole range of functionality and much is left to be guessed by the user). It is a &#8220;Learning by Example&#8221; type of manual which can sound a bit patronising at times.<br />
For that reason I have found it hard to seriously get into TradersStudio&#8230; but I have just signed up for the yahoo group dedicated to it and will be spending many hours in front of it very soon!</p>
<p>I will explore TradersStudio in more details as I start using it and share in a later post if you are interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.automated-trading-system.com/tradersstudio-systems-testing-software/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

