<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: How can Walk-Forward testing keep your system a step ahead?</title>
	<atom:link href="http://www.automated-trading-system.com/walk-forward-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.automated-trading-system.com/walk-forward-testing/</link>
	<description>Systematic Trading research and development, with a flavour of Trend Following</description>
	<lastBuildDate>Wed, 08 Sep 2010 20:20:21 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: dew</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-1331</link>
		<dc:creator>dew</dc:creator>
		<pubDate>Thu, 29 Jul 2010 00:26:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-1331</guid>
		<description>This blog entry helped me finally understand Walk Forward Testing.  The picture alone is worth a thousand words.

Much appreciated.

Also, I referenced this blog post on the NinjaTrader forum</description>
		<content:encoded><![CDATA[<p>This blog entry helped me finally understand Walk Forward Testing.  The picture alone is worth a thousand words.</p>
<p>Much appreciated.</p>
<p>Also, I referenced this blog post on the NinjaTrader forum</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jez</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-500</link>
		<dc:creator>Jez</dc:creator>
		<pubDate>Thu, 12 Nov 2009 17:37:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-500</guid>
		<description>That sounds definitely interesting as I&#039;ll probably move into shorter timeframes at some point. And its always good to hear about problems and solutions to learn the platform..</description>
		<content:encoded><![CDATA[<p>That sounds definitely interesting as I&#8217;ll probably move into shorter timeframes at some point. And its always good to hear about problems and solutions to learn the platform..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-497</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Thu, 12 Nov 2009 14:16:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-497</guid>
		<description>Jez, This is a point in Amibroker that may make one work a little harder in CBT. In regular backtester, Tomasz closes all trades at end of OOS period. There is no carryover. For longer EOD runs this may not be critical. But it plays havoc with shorter periods. Bruce Robinson has work around started using &quot;state&quot; function...but it requires some manipulation.  I may be able to dig up Bruces AFL if you&#039;re interested.</description>
		<content:encoded><![CDATA[<p>Jez, This is a point in Amibroker that may make one work a little harder in CBT. In regular backtester, Tomasz closes all trades at end of OOS period. There is no carryover. For longer EOD runs this may not be critical. But it plays havoc with shorter periods. Bruce Robinson has work around started using &#8220;state&#8221; function&#8230;but it requires some manipulation.  I may be able to dig up Bruces AFL if you&#8217;re interested.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jez</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-474</link>
		<dc:creator>Jez</dc:creator>
		<pubDate>Fri, 06 Nov 2009 17:05:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-474</guid>
		<description>Milk,
I think there are an infinite number of bliss functions... 
The bliss function serves the purpose of quantify your trading Nirvana (bliss, nirvana: I am staying in the same theme here...).

The bliss function is your OWN way to rank how well or bad the performance of a system has done - based on your own personal parameters. For example, profit might be proportinally more important to you than drawdowns.. Why not use 
(net profit)^2 / Max DD (or 2 * ln(CAR) - ln(MaxDD) ) - ie you put more emphasis on profit
but then you could be more fancy adding more parameters in the equation and possibly some logic:
if CAR &gt; 15% then 2 * ln(CAR) - ln(MaxDD) - ln(Pct. time in market) - 3 * ln(average portfolio heat)
if CAR &lt; 15% then 2 * ln(CAR) - 3 * ln(MaxDD) - ln(Pct. time in market) - 5 * ln(average portfolio heat)
etc.

I find Ed Seykota&#039;s website pretty good (I&#039;ll probably add it to my blogroll) and you could check that link:
http://seykota.com/tribe/faq/2004_Oct/Oct_11/index.htm
look for bliss function - it raises other questions too (ie net profit/Max DD can give you a value of 8 with 4% profit and .5% DD. Is that better than 40% profit and 10% DD?)

But in any case, I am not sure how you could add a predictive element to it - that does not seem to fit its purpose (which is to quantify with one single number how good the back-test results are). Now I think it might be possible to define a robust approach which allows to pick the parameter set that might perform best in the future (ie compare all optimisation runs and their bliss functions but do not necessarily pick the highest number - potentially a spike - but rather a local stable maximum).</description>
		<content:encoded><![CDATA[<p>Milk,<br />
I think there are an infinite number of bliss functions&#8230;<br />
The bliss function serves the purpose of quantify your trading Nirvana (bliss, nirvana: I am staying in the same theme here&#8230;).</p>
<p>The bliss function is your OWN way to rank how well or bad the performance of a system has done &#8211; based on your own personal parameters. For example, profit might be proportinally more important to you than drawdowns.. Why not use<br />
(net profit)^2 / Max DD (or 2 * ln(CAR) &#8211; ln(MaxDD) ) &#8211; ie you put more emphasis on profit<br />
but then you could be more fancy adding more parameters in the equation and possibly some logic:<br />
if CAR &gt; 15% then 2 * ln(CAR) &#8211; ln(MaxDD) &#8211; ln(Pct. time in market) &#8211; 3 * ln(average portfolio heat)<br />
if CAR &lt; 15% then 2 * ln(CAR) &#8211; 3 * ln(MaxDD) &#8211; ln(Pct. time in market) &#8211; 5 * ln(average portfolio heat)<br />
etc.</p>
<p>I find Ed Seykota&#039;s website pretty good (I&#039;ll probably add it to my blogroll) and you could check that link:<br />
<a href="http://seykota.com/tribe/faq/2004_Oct/Oct_11/index.htm" rel="nofollow">http://seykota.com/tribe/faq/2004_Oct/Oct_11/index.htm</a><br />
look for bliss function &#8211; it raises other questions too (ie net profit/Max DD can give you a value of 8 with 4% profit and .5% DD. Is that better than 40% profit and 10% DD?)</p>
<p>But in any case, I am not sure how you could add a predictive element to it &#8211; that does not seem to fit its purpose (which is to quantify with one single number how good the back-test results are). Now I think it might be possible to define a robust approach which allows to pick the parameter set that might perform best in the future (ie compare all optimisation runs and their bliss functions but do not necessarily pick the highest number &#8211; potentially a spike &#8211; but rather a local stable maximum).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Milktrader</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-473</link>
		<dc:creator>Milktrader</dc:creator>
		<pubDate>Fri, 06 Nov 2009 16:03:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-473</guid>
		<description>Yes, objective = fitness = bliss function. It is the arbiter of best parameters. And I would suggest they are predictive of the robustness of a system. We probably would doubt the value of Net Profit as a good judge of best parameters. Net Profit/ Max Drawdown is better. What is better than that?


Perhaps, and this is just a thought, there is a way to measure how well a fitness function picks the best parameter set.
Perhaps th</description>
		<content:encoded><![CDATA[<p>Yes, objective = fitness = bliss function. It is the arbiter of best parameters. And I would suggest they are predictive of the robustness of a system. We probably would doubt the value of Net Profit as a good judge of best parameters. Net Profit/ Max Drawdown is better. What is better than that?</p>
<p>Perhaps, and this is just a thought, there is a way to measure how well a fitness function picks the best parameter set.<br />
Perhaps th</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jez</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-472</link>
		<dc:creator>Jez</dc:creator>
		<pubDate>Fri, 06 Nov 2009 09:50:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-472</guid>
		<description>That point about comparing perfect profit with the system performance (equity) would be one interesting way of answering the question &quot;Is the system not performing any more or are the markets not offering any opportunities?&quot; (ie if performance is not good but perfect profit stays good, the system might have an issue)

Regarding the metric for the effectiveness of a fitness function (I take it you mean objective/bliss function) - I am not convinced this is a valid approach as I dont see the objective function&#039;s role to have any &quot;predictive&quot; power (i.e. it should just be a way to express the overall performance of a system under your ideal criteria). Although I see your point that this is the input used to select which parameter set are carried forward (and therefore some sort of predictability value might be useful)...

Or maybe I mis-understood your point: would you have an objective function as the output metric and a fitness function trained (by neural nets) to determine the best predictability between the optimisation and verification test (ie the fitness function would be used to work out the best/most robust parameter set between optimisation and walk-forward back-test, ie where the ratio of objective functions are most constant and ideally fairly high). This sounds a bit complicated.

I am not so keen on neural networks anyway (black-box approach vs KISS, etc.)</description>
		<content:encoded><![CDATA[<p>That point about comparing perfect profit with the system performance (equity) would be one interesting way of answering the question &#8220;Is the system not performing any more or are the markets not offering any opportunities?&#8221; (ie if performance is not good but perfect profit stays good, the system might have an issue)</p>
<p>Regarding the metric for the effectiveness of a fitness function (I take it you mean objective/bliss function) &#8211; I am not convinced this is a valid approach as I dont see the objective function&#8217;s role to have any &#8220;predictive&#8221; power (i.e. it should just be a way to express the overall performance of a system under your ideal criteria). Although I see your point that this is the input used to select which parameter set are carried forward (and therefore some sort of predictability value might be useful)&#8230;</p>
<p>Or maybe I mis-understood your point: would you have an objective function as the output metric and a fitness function trained (by neural nets) to determine the best predictability between the optimisation and verification test (ie the fitness function would be used to work out the best/most robust parameter set between optimisation and walk-forward back-test, ie where the ratio of objective functions are most constant and ideally fairly high). This sounds a bit complicated.</p>
<p>I am not so keen on neural networks anyway (black-box approach vs KISS, etc.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Milktrader</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-471</link>
		<dc:creator>Milktrader</dc:creator>
		<pubDate>Thu, 05 Nov 2009 21:08:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-471</guid>
		<description>How about we formulate a metric for the effectiveness of a fitness function. Maybe something logarithmic with values between zero and 1. Each fitness function can be treated as its own neural network and graded on its ability to guess the right answer.

Not sure how to do this though.</description>
		<content:encoded><![CDATA[<p>How about we formulate a metric for the effectiveness of a fitness function. Maybe something logarithmic with values between zero and 1. Each fitness function can be treated as its own neural network and graded on its ability to guess the right answer.</p>
<p>Not sure how to do this though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Milktrader</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-470</link>
		<dc:creator>Milktrader</dc:creator>
		<pubDate>Thu, 05 Nov 2009 21:01:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-470</guid>
		<description>Yes, that is the essence of Pardo&#039;s formula. Another cool idea he has is equity correlation with perfect profit. It shows that a system makes money when the market offers it and may make less when the perfect profit is less. 

Instead of creating a composite fitness function, how about we run walk forward under a group of them to determine which illuminates the best about future profitability. That would be quite an undertaking, but an interesting exercise.</description>
		<content:encoded><![CDATA[<p>Yes, that is the essence of Pardo&#8217;s formula. Another cool idea he has is equity correlation with perfect profit. It shows that a system makes money when the market offers it and may make less when the perfect profit is less. </p>
<p>Instead of creating a composite fitness function, how about we run walk forward under a group of them to determine which illuminates the best about future profitability. That would be quite an undertaking, but an interesting exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jez</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-469</link>
		<dc:creator>Jez</dc:creator>
		<pubDate>Thu, 05 Nov 2009 20:42:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-469</guid>
		<description>Hi Milk - for some reason your last comment was &quot;caught&quot; in my &quot;spam nets&quot;...

I assume the above PROM formula (from Pardo I believe) would be your objective function to optimise a trading system?

I have not given much thought to an objective function yet but I have always imagined having a &quot;big&quot; formula trying to compromise the good and bads of the trading system, ie you would want to maximise:
- Profit (MAR, CAGR)
- Sharpe ratio
etc.
while you want to maximise:
- average portfolio heat
-margin-to-equity ratio
- drawdowns (ie maximise Ed Seykota lake ratio).
- time in market
etc.

One thing I would like to try is to formulate all these aspects and prioritise them in one formula.

The idea of reducing the good aspects of the trading system (# of wins) and increasing the bad ones (# of losses) in the PROM formula above is quite interesting also - Thanks!</description>
		<content:encoded><![CDATA[<p>Hi Milk &#8211; for some reason your last comment was &#8220;caught&#8221; in my &#8220;spam nets&#8221;&#8230;</p>
<p>I assume the above PROM formula (from Pardo I believe) would be your objective function to optimise a trading system?</p>
<p>I have not given much thought to an objective function yet but I have always imagined having a &#8220;big&#8221; formula trying to compromise the good and bads of the trading system, ie you would want to maximise:<br />
- Profit (MAR, CAGR)<br />
- Sharpe ratio<br />
etc.<br />
while you want to maximise:<br />
- average portfolio heat<br />
-margin-to-equity ratio<br />
- drawdowns (ie maximise Ed Seykota lake ratio).<br />
- time in market<br />
etc.</p>
<p>One thing I would like to try is to formulate all these aspects and prioritise them in one formula.</p>
<p>The idea of reducing the good aspects of the trading system (# of wins) and increasing the bad ones (# of losses) in the PROM formula above is quite interesting also &#8211; Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Milktrader</title>
		<link>http://www.automated-trading-system.com/walk-forward-testing/comment-page-1/#comment-468</link>
		<dc:creator>Milktrader</dc:creator>
		<pubDate>Thu, 05 Nov 2009 20:31:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.automated-trading-system.com/?p=671#comment-468</guid>
		<description>Pessimistic Return on Margin (PROM)

Function FF_PROM2 (MarginRequired As Integer)

Dim AdjWin As Double
Dim AdjLoss As Double
Dim MarginValue As Integer
Dim PROM As Double

Dim SlowAve As BarArray
Dim FastAve As BarArray

AdjWin = wins - Sqr(wins)
AdjLoss = losses + Sqr(losses)

MarginValue = MarginRequired

If SlowAve &lt; FastAve Then

PROM = 0

End If


PROM = ((AdjWin * AvgWin) + (AdjLoss * AvgLoss))/MarginValue 

&#039;this next relationship is what allows the factor to be passed into report

FF_PROM2 = PROM


End Function</description>
		<content:encoded><![CDATA[<p>Pessimistic Return on Margin (PROM)</p>
<p>Function FF_PROM2 (MarginRequired As Integer)</p>
<p>Dim AdjWin As Double<br />
Dim AdjLoss As Double<br />
Dim MarginValue As Integer<br />
Dim PROM As Double</p>
<p>Dim SlowAve As BarArray<br />
Dim FastAve As BarArray</p>
<p>AdjWin = wins &#8211; Sqr(wins)<br />
AdjLoss = losses + Sqr(losses)</p>
<p>MarginValue = MarginRequired</p>
<p>If SlowAve &lt; FastAve Then</p>
<p>PROM = 0</p>
<p>End If</p>
<p>PROM = ((AdjWin * AvgWin) + (AdjLoss * AvgLoss))/MarginValue </p>
<p>&#039;this next relationship is what allows the factor to be passed into report</p>
<p>FF_PROM2 = PROM</p>
<p>End Function</p>
]]></content:encoded>
	</item>
</channel>
</rss>
