buy & hold

I am trying to design a screen with the only rule of “buy and hold”. This screen comes from Fred Piard’s book, in which he compares a purchase of 5 etf’s with a weighting of 20% for each against the SPY only.
But I don’t know how to make a rule that only does “buy and hold”

Can anyone tell me how to do it?

I’m pretty sure that under the simulations you can create a buy rule and not specify any sell rule and the only transactions that will be created will be the initial 5 etf buy transactions. I think the longest holding period for a screen is 52 wks before a rebalance.

You can use the following sell rule:

NoBars>=1250 and Rank>101

“nobars” being the number of bars (days) until you sell. Roughly 50x5 = 250 bars/year x 5 = 1250 bars.

I’ve used this for 2 year holding periods as well.

thanks for your answer. To get a comparison in “SCREEN” between a “buy and hold” of 5 ETF’s and a Benchmark, SPY in this case, it is enough to put an adjustment of 5 in “Max # ETFs (0 for all)” and not put any rule!

Is there a way to do this buy and hold except continually add new positions over time as they meet the criteria?

How are you picking the 5 ETFs? If it is from a set list of ETFs you have then it is simple enough. To specify the 5 ETFs and have them held during the entire backtest in the screener, just use a rule like Ticker(“XLE,QQQ,IWM,VEU,XLU”). Set the benchmark to SPY, set slippage to 0% and Rebalance frequency to 52 weeks and run the backtest in the screener. 52 weeks is the longest available rebalance period, so no way around that. The affect of the rebalance will be that the amount of money in each ETFs will be balanced out at that time which is probably something you would want to do in real life anyway.

If that is not what you are looking for, please provide some more details.

I want to do this with stocks (not ETF) in a simulation. They would be picked by the ranking system.
Say I want to pick five new stocks every year and add them to my existing portfolio, in a simulation.
Is that possible?

Hi Anthony. My reply above was for the original question in this thread. I believe you are saying that you want to buy 5 stocks, hold those forever, buy 5 more the following year and repeat this every year. The main problem is that there is know of any way to add cash at set intervals during a simulation. So the sim would have to be started with enough cash to buy additional stocks in each of the years. This will make the performance data inaccurate since the sim will be holding a lot of cash in the early years.

In the sim, set “Ideal Size of a New Position” to 2 so the “Ideal Number of Positions to 50”. This should work if you run a 10 year sim (5 stocks per year for 10 years = 50). I set the Buy Constraint to 10%. When I ran this, I still end up with a lot of cash left over at the end because I believe that if any of the current holdings is also in the top 5 the following year, then only 4 (or less) are bought that year. In 2014, my sim only bought 2 stocks. I dont see any way to have the RankPos function filter out the current sim holdings when picking the 5 stocks. (Edit:I found a way to increase the # of stocks bought in 2014 to 3. I had to change ‘Allow Mergers’ to Yes because this was filtering out one of the stocks with the top 5 ranks)

The Transactions will show that some are sold if there is ‘No rank’ on rebalance day. You could turn on the “Force Positions into Universe” option on the Universe & Ranking tab if you wanted it to continue to hold these.

I created a public sim called “Buy 5 stocks each year”. https://www.portfolio123.com/port_summary.jsp?portid=1628544

Because of the limitation mentioned above, it doesn’t do exactly what you are asking for but it was as close as I can come.

Dan is 100% correct. But there IS a way to figure out the total return of your equity alone, ignoring all the cash that you have in the simulation, using Excel.

When you look at the simulation, click on the little arrow under the chart. Now open the Excel file. In cell N5, enter =c3/g3 and copy that all the way down the column. This is the precise leverage. In cell O4 enter 100. In cell O5 enter =O4*((G5/G4-1)/N5+1) and in cell O6 enter =O5*((G6/G5-1)/N5+1). Then copy that formula all the way down the column. In this column you’ll now have the $100 return of the equity alone, ignoring the cash.

Here’s a simulation that buys and hold 5 positions annually, utilizing all available cash.
Note that this is not exactly the same as a buy-and-hold strategy because it is rebalancing position to equal weight every time new positions are bought.
https://www.portfolio123.com/port_summary.jsp?portid=1512003