Fred Piard SA article featuring P123 screen

I have a sim for this - take a look… it is public. ‘Priard test’

custom formulas:
$shortint eval(sma(52,0,getseries(“SP500ShortIntAvg”)) > sma(104,0,getseries(“SP500ShortIntAvg”)),1,0)
$smabench eval(SMA(50,0,#BENCH) < SMA(200,0,#BENCH),1,0)
$spepsny eval(Close(0,#SPEPSNY) < Close(13,#SPEPSNY),1,0)
$unemp eval(Close(0,#UNEMP) > Close(3,#UNEMP),1,0)

Debbie - it is easier all around if you copy/paste a link so people don’t have to search for it.
Thanks
Steve

Geov - he is using an ETF screen. It looks like something must be wrong with his custom formula.
Steve

sorry about that… here is link

[url=http://www.portfolio123.com/port_summary.jsp?portid=1434160]http://www.portfolio123.com/port_summary.jsp?portid=1434160[/url]

Andreas

Custom formula $MTS4
Eval(Close(0,getseries(“#UNEMP”))>Close(3,getseries(“#UNEMP”)),1,0) + Eval(Close(0,#SPEPSCNY)<Close(20,#SPEPSCNY),1,0) + Eval(SMA(50,0,getseries(“$sp500”))<SMA(200,0,getseries(“$sp500”)),1,0) + Eval(sma(13,0,getseries(“SP500ShortIntAvg”))<sma(104,0,getseries(“SP500ShortIntAvg”)),1,0)

Rule in screener or in simulation:
Eval($MTS4=4,Ticker(“SHY,IEI,IEF”),Eval($MTS4=3,Ticker(“MDY,IEI,IEF”),Eval($MTS4=2,Ticker(“MDY,QQQ,IEF”),Eval($MTS4=0,Ticker(“MDY,QQQ,IWM”),na) or Eval($MTS4=1,Ticker(“MDY,QQQ,IWM”),na))))

Then experiment with various different ETFs to get better returns. Obviously one can have more than 4 conditions as well.

I used the formulas which Georg just posted, but only get 11% AR running the screen from Jan 2000 with weekly rebalance and next avg high/low as price (see attachment) and link: https://www.portfolio123.com/app/screen/summary/166035?st=3&mt=1

When I run a ETF simulation, the result is even worse with only 9.5% return: https://www.portfolio123.com/port_summary.jsp?portid=1434174
Here I used as sell rule Rank<101 but activated “Allow sold holdings to be re-bought at current rebalance” to Yes.

Has anyone an idea why the results aren’t better?

PS: I also used to try MTS as market timer, but when I use $MTS=4 or MTS=4, I get the following error message:
Error near ‘$MTS’: Invalid command ‘$MTS’



Florian,
These are not the best ETFs to use. Also you have a huge D/D. Slippage of 0.1% is ok for ETFs.
Also play with the conditions in the custom formula.

Fred, in his article, states he is ignoring trading costs for his 12% return from 2001 onward.

Hi together,

Just copied the formulae 1 to 1 from Georgs post. Still get a flat line for each screener I run. Then I went on to Florians screener and tried re-running it myself. Also get a flat line. Funny thing is, if I run my or Florians screener to get recommendations instead of running a back test, I do get the proper set of recommendations (IWM, MDY, QQQ).
https://www.portfolio123.com/app/screen/summary/166022?st=1&mt=9

I’m officially perplexed now.

Andreas,
What is your P123 membership level?

Georg,
I have designer level. should work, no?

Andreas - if you want to get this solved then you really need to make your custom formula public and post a link to it. It doesn’t matter what you think you copied, the problem can’t be reproduced unless we have everything that you are using. You gave a link to the screen but not the custom formula.

Thanks
Steve

Hi Steve,

thanks a lot for your help. The custom formula is here: https://www.portfolio123.com/user_formula_edit.jsp?formulaid=53497&s=1

here is link to Piard screen… 13.13% return, -23.97 DD, custom formulas,etc. all public

[url=http://]https://www.portfolio123.com/app/screen/summary/166041?st=1&mt=9[/url]

-debbie

Andreas - here is what I see for the formula:

Eval(Close(0,getseries(“#UNEMP”))>Close(3,getseries(“#UNEMP”)),1,0) + Eval(Close(0,#SPEPSCNY)

And when I try to copy it I get the following:

ERROR: Please enter a formula in the ‘Formula’ field

So it looks like there is a problem in your formula. Did you delete the carriage returns before pasting the formula?

Steve

Thanks Debbie - I think the problem lies with Andreas’ screen/custom formula.
Steve

Hi Steve,

that is very strange. I did delete the carriage returns. and when I go in the formula field I do get the full formula: Eval(Close(0,getseries(“#UNEMP”))>Close(3,getseries(“#UNEMP”)),1,0) + Eval(Close(0,#SPEPSCNY)<Close(20,#SPEPSCNY),1,0) + Eval(SMA(50,0,getseries(“$sp500”))<SMA(200,0,getseries(“$sp500”)),1,0) + Eval(sma(13,0,getseries(“SP500ShortIntAvg”))<sma(104,0,getseries(“SP500ShortIntAvg”)),1,0)

The funny thing is also, that when I take other peoples screens and formulas (e.g. Florians) I am not able to run them either. This seems to be a deeper problem somwhere in the algo of P123?

I suggest raising this as a bug with P123 then. (Separate post in the errors forum.)
Steve

I guess thats the only thing that comes to mind now. Thanks a lot for your help and lets see what the P123 team can find out about this!

Thanks for reading my article and sorry for the late answer. I don’t come often on this forum. MTS4 in a screen rule:
showVar(@MTS4,(close(0, #UNEMP)>close(3, #UNEMP))+(close(0,#SPEPSCNY)<close(13,#SPEPSCNY))+(sma(50,0,$sp500)<sma(200,0,$sp500))+(sma(52,0,getseries(“SPSI%Avg”))>sma(104,0,getseries(“SPSI%Avg”))))
With SPSI%Avg defined as a custom series in the S&P 500 Universe with weekly frequency:
UnivAvg(“1”,“SI%float”)
MTS4 components are timing indicators backed by research and common sense. Backtests a are just clues, especially when testing market timing on 2 recessions. Optimizing MTS4 makes little sense. This article was written with an open-source mindset. If you use or improve this concept and write about it, a reference to the original would be appreciated.

Right to the point, Fred!

A pity the data is limited to 1999. It would at least be helpful if P123 could make point in time data available further back in time - at least for the S&P500 stocks.
Cheers,
Florian