OPEN BETA: 'Formula Weight' Position Sizing Method

Would someone please provide a description of what a Rebalance Minimum value in percent is? Is it a % of current holding, or a drift % from ideal, or…? I am tinkering with it but would like to understand the basis of the impact. Thanks!

Just like the other settings expressed as percent, Rebalance Minimum (%) is relative to portfolio value. The same is also true for ‘Hedge Tolerance’ when using this sizing method.
Related: I’m currently working out a few bugs with Total Drift Tolerance at the moment which could eliminate some errant transactions.

Thanks Aaron. Would it be correct then to say (for a port with equal weighting) that a position’s total value is compared to the port’s average position value, then if it is more or less than the Rebalance Minimum % from the average, it is rebalanced (assuming other constraints are also met)? Or am I looking at this wrong?

Apparent error - this beta sim: [url=https://beta1.portfolio123.com/port_summary.jsp?portid=1499392]https://beta1.portfolio123.com/port_summary.jsp?portid=1499392[/url]
experiences a large negative cash balance over time. Hedging/Market timing is turned off.

Rebalance Minimum % is essentially a per-position drift tolerance. As such, we’re considering splitting it off into a separate option.

As for your simulation:
Due to your high value for ‘Rebalance Minimum %’, positions can only rebalance after being 25% away from equal weight, which is very hard to achieve with 30 positions. Since you have ‘Transaction Scaling’ set to ‘Leave in Cash or Margin’, trades are allowed to have a high percentage of cash (+/-).

Aaron -

I’m SO happy that you told us how rebalance minimum and transaction scaling work!!! Thank you!!! Now I can use this exactly as I want to, and it’s working perfectly.

Here is my conclusion. If you want to scale your buys but don’t want to rebalance every time you buy and sell a stock, you can set rebalance minimum to 200% and put transaction scaling in cash or margin. Then your sim will buy precisely the amount that your ideal percentage requires.

If you set rebalance minimum to 200% and scale for available funds, then your sim will buy wildly different amounts than your ideal percentage. Which makes perfect sense when you think about it.

Marc’s initial PDF gave me a very different impression of what transaction scaling was doing. Now I get it, and I couldn’t be more pleased.

  • Yuval

To whomever is having issues:
I’m currently working on debugging the ‘Error rebalancing position’ issue in the current build.

Thank you Aaron for the clarifications and your efforts! I had “Use Margin” set to No on the General tab and didn’t think about the margin effect of setting “Transaction Scaling” to Leave in Cash or Margin. It would be helpful to either prevent that combination of settings or provide an alert, or should the Leave in Cash be honored but not margin?

The flexibility of the new position sizing method is really astonishing. Here’s something I tried, with excellent results.

Set the number of positions to 45, weight them inversely to rankpos (e.g. “8 - ln(rankpos)”), add the buy rule “rankpos <= 25,” and the sell rule “rankpos > 65.” Then set the total drift tolerance to 10%, the minimum transaction to 100%, and transaction scaling to “leave in cash or margin.” What you get is a variable number of holdings ranging from about 36 to 45, averaging around 40, with the percentage of cash invested pretty variable, but almost always within 10% or 12% of 100%. You’re now able to almost always hold the top-25 ranked stocks, but you’ll never have to buy anything ranked lower than those. This offers some distinct advantages to the old way of doing things. The old simulations were not able to be this flexible.

There is something wrong with the rebalancing module.
This model shorts SDS during upmarkets and otherwise shorts PST.
Buy: Eval($COMP>=50,ticker(“SDS”),ticker(“PST”))
Sell: 1

Number of Positions= 1
Reconstitution Period= 1 week
Rebalance Period= 1 year

When rebalancing beginning 2001, 2002,…2009 the model covers the ETF it holds, goes to cash for one week and then shorts the same ETF again. The model should not be in cash for one week, but should cover and short the ETF on the same day.

62 01/08/01 SHORT PST
61 01/02/01 COVER PST

115 01/07/02 SHORT PST
114 12/31/01 COVER PST

If there was an option “Rebalance Period= never” then one would not have this problem.
https://beta1.portfolio123.com/performance.jsp?portid=1501425



The latest revamping of the “formula weight” position sizing method has removed the option to leave transaction scaling in cash or margin. It is EXTREMELY IMPORTANT to have this option, for me at least. Please put it back. Without it, when I sell a large position and my maximum position drift is high the sim will buy a very large position no matter what the proper weight should be. Thank you.

P123 and all,

I would recommend that you consider adding the option of % (percent) for “Min Rebalance Transaction” under Micro Adjustments.

$ and shares will have no use and no meaning for a sim because of compounding. $5,000 will be useful for a port. But, with compounding of a sim, $5,000 may lead to almost no rebalances in the year 2000 but a rebalance for every single transaction in 2017. % would make each year behave in a similar manner. P123 has been on the forefront of this with its % option for commissions and slippage.

More generally, I think you are clearly on the right track when you make it possible to have separate parameters for new positions and for rebalancing positions that are already held. Adding % should keep a broad range of possible settings for ports and sims. Perhaps this will—preemptively–address a few feature requests that would otherwise be posted in the future. The buy/sell difference feature requests that we have already seen are enough for me.

-Jim

100% AGREE! The addition of a percentage setting under ‘Micro adjustments’ would be a very quick and easy way to eliminate 99% of the ubiquitous and pernicious “Buy-Sell Difference” transactions that occur when we set “Allow sold holdings to be rebought at current reconstitution” to Yes.

The two settings that are now offered ($ and Shares) do not accommodate the wide range of stock prices in the market today, resulting from the popular trend of management not splitting shares when prices get high (popularized by Buffett and embraced by management wanna-be’s).

Please add? …ty in advance.

Chris

Jim and Chris -

The “Max Position Drift” addresses this. It is the difference between a position’s actual weight and its ideal weight, measured in percentage points. Try fiddling with a few percentages to see how it works. Look at the transaction records and you’ll see the difference.

Unfortunately, unless you have a huge number of stocks and/or your max position drift is set to zero, the transaction records show large differences from week to week depending on how many stocks are available to buy and how many stocks you sell. This would be eliminated if the masters of the universe here were to add back the option to leave transaction scaling in cash or margin. Please.

  • Yuval

Yuval,

Thanks. Max Position Drift does address rebalance but also new positions. I believe this remains true in this iteration: it was your post that made me aware that there were some changes.

If you want to set the new position size but do not want to rebalance then you will be using both “Min Rebalance Transactions” and “Max Position Drift.” And they will have different settings, I think. But I have not done much with this iteration and I could be mistaken.

In any case, if P123 keeps “Min Rebalance Transaction” and any members find a use for it then it will not work well for a sim unless it has %. Just as a commission of $7.95 will not work well for a commission setting even if that is what your broker charges. You would approximate $7.95 as a percent.

If your sim starts at $100,000 and ends at $100,000,000 there is a big difference in the percent paid for commissions if a flat fee is used (like about 3 orders of magnitude). So one would get a false impression of the effect of commissions in the recent years of a sim. In the extreme, one could naively fund a port that loses money because the sim gave a false impression of the effect of commissions—except that P123 already knows this and has addressed it with commissions (Thank you P123). I suspect this was just an oversight with rebalances.

-Jim

I have posted that there are a lot of good things that can be done with this with large portfolios.

For now–for a 5 stock portfolio–I would like to look at one thing:

For liquidity reasons I want to limit the purchases to 20% of the portfolio value. But I want to go ahead and purchase the recommended stock(s) if less that 20% (40% with 2 recommendations) of the portfolio value is made available from sales of equities. I will buy a recommended stock(s) with whatever cash I have available up to 20% per stock of the portfolio value (but pay no more).

Can I do this simple thing? I am probably missing something but this is pretty simple and not being able to do so (if that is indeed the case) would reflect poor user control of scaling and of weight limits with this iteration. Which, ultimately, I am okay with—I am already doing this manually with some of my ports and it isn’t that hard.

I could go through what does not work but the image is one of my sad attempts and it says it all. And again, I am sure I am missing something.

Recommendation? Be able to set a hard weight limit at the end that is not later scaled—assuming it is not already possible to do this. Even when I move to ports with 50 stocks I will be doing so for liquidity reasons and will want a hard limit. No doubt, professional money managers who are closet indexers of the SP500 will have no use for this and, as I said, I am good with that. The sims are close enough and it is easy to control the dollar amount of a purchase for the port.

-Jim


For those of you following the changes:
‘%’ is an option again for ‘Min Rebalance Transaction’. It’s a little redundant alongside ‘Max Position Drift’ but is somewhat different in how it’s enforced. If, rather, you all are satisfied with the behavior of ‘Max Position Drift’, it will be removed once again.
The ‘Transaction Scaling’ option is back, named ‘Transaction Control’ under ‘Micro Adjustments’ (the naming and options are still likely to change).
I had worked on revising the scaling logic on Friday’s release, and have simplified its implementation for robustness and correctness (also trying to address ‘Encountered unrecoverable error while rebalancing’).

James:
No such mechanism for constraining the transaction adjustment/scaling is planned for this iteration, so you’ll have to wait until the production release before we can work out the details on that one. The workaround until that point is to set ‘Transaction Control’ back to ‘Allow Excess Cash & Margin’ to disable any such adjustment.

Aaron -

Thanks a million for putting back the transaction scaling option.

I don’t see a difference in the min rebalance transaction–it’s still just dollars or shares. But maybe that’ll show up in a few minutes.

Here’s the difference as I see it between min rebalance transaction and max position drift, but I may be completely wrong. I’d love a little clarity.

Let’s say you have a stock that should be 10% of your portfolio but right now it’s 20%. If you set min rebalance transaction to 100%, you’ll sell half your position. If the stock then goes down to only 5% and it should be 10%, you buy more to double your position.

On the other hand, if you don’t set a min rebalance transaction and if your max position drift is 10%, the first transaction would occur, but the second wouldn’t. And if the max position drift is 5%, both transactions would occur, but the first would occur a lot sooner, when the position is at 15%.

Do I have that right?

As it stands, all percentage settings are defined as relative to the portfolio value. There’s currently no way to control relative percent change, but I’d any appreciate input on this design decision.

Aaron,
Thank you.
-Jim