Sell rule ideas

I am in search of tried and true sell rules.

I am currently using things like this, mostly because I don’t know any better:
Rank < 75
Gainpct > 50

I am sure there are better, more sophisticated ways to sell.

Any ideas are appreciated.

Thanks
Tony

I just use

RankPos > XX and StaleStmt = 0 and NoDays > XX.

Sell rules don’t need to be sophisticated to work. Ranking systems, however, do, IMHO.

And I would avoid using GainPct as a sell rule. After all, a stock’s prospects have nothing to do with how much you paid for it.

If you’re worried about being overweight a certain position, you can use Eval (Weight > X, Y, 0), where X is the maximum percentage of the portfolio you want the position to be, and Y is the fraction of that position that you want to sell. So, for example, Eval (Weight > 4, 0.5, 0) would sell 50% of your position if its weight is more than 4% of your portfolio.

Excellent ideas.

Tell me why NoDays is relevant?

Thanks
Tony

Yuval, I must not understand RankPos.
In this screen, sorted by Rank, shouldn’t the RankPos at the top be 1, and the next one be 2, etc…?

My rankpos is all over the place.
I am using this to display RankPos in the screen: ShowVar(@RankPos, RankPos)

***** EDIT ****
OK I figured it out. The RankPos is in ascending order (which is good) and the missing rankpos items are being filtered out by my screen rules.
So how can one accurately use RankPos in a sell rule since many or most of them will be missing?
If I had a sell rule that said to drop tickers with a rankpos > 20, every ticker on this list would go, right?
Do I need to move all my screen rules into the ranking system?


I put all my screening rules into my universe rules. That way all the stocks that I want to buy are ranked against each other instead of being ranked against a whole bunch of stocks that I have no interest in.

NoDays is important to me because I don’t want to sell a stock just a few days after I bought it. That may be a personal preference, but it’s important to me.

Screener rules defining the universe. Now that is a great idea! That should be included in some p123 introductory video.

Yuval, in addition to, RankPos> X and StaleStmt = 0 and NoDays> X, why not use something like:
-NoDays> 250

  • Eval (GainPct> 120, 0.5, 0)

And as a buying criterion, to avoid buying the same stock when selling it:
LastSellDaysLT (40) = FALSE

Are we talking about a taxable account or an IRA/Roth IRA or similar tax-deferred account?

In my taxable margin account I try to avoid selling a profitable position to the extent possible for one simple reason: taxes. Paying CG taxes is throwing money away and puts a drag on your portfolio’s return. Instead I do “tax-loss harvesting” to get rid of non-performers and incur a capital loss for tax purposes. A lot of people do this.

I have a few positions which I consider “tax locked”, .i.e. the unrealized gain is such that I figure I’m better off continuing to hold the stock rather than sell at a taxable gain and paying CG tax. For example, I have shares of GOOGL which have taken off since I’ve held them and I have no plans too sell. Maybe I’ll leave them to my heirs :slight_smile: Another one is GS. I describe this at greater length in another thread entitled “Success Story”. Being a margin account (I’m 1.2x margined) I’m paying margin interest every month to hold those stocks, so if a stock is moving down rather than up, it’s a candidate for tax-loss harvesting.

It’s a different story if we’re talking about an IRA.

Since coming back to P123 after several years of disappointing results, I’m taking more of a “tortoise” approach, as in “tortoise vs. hare”. “Let your profits run” is good advice. Warren Buffett and Charlie Munger have held many of their positions for decades and you don’t see them buying and selling hyperactively.

HTH.

There’s certainly nothing wrong with any of these rules.

NoDays, GainPct, and LastSellDays all depend on your own previous actions, not on the stock’s prospects. What a stock is going to do in the next week, month, or year, has nothing to do with when you bought it, how much it gained since you bought it, or whether you recently sold it. Making investment decisions based on information that is irrelevant to a company’s future prospects is not, in my opinion, the wisest thing to do.

Some of these rules may make sense, however, as part of a portfolio management strategy. NoDays reduces transaction costs, and NoDays > 260, in particular, will certainly reduce your tax burden. And GainPct helps you keep your portfolio diversified.

Why do you use Rankpos> instead of Rank <? (it seems to give mee very low turnover vs rank)

And do you altso use it as a buy criteria (rankpos < x)?

Anyway, as I understand it, you still only use “RankPos> X and StaleStmt = 0 and NoDays> X”?

And the idea is to let the winners run, as long as they meet certain fundamental criteria then keep them?

May I ask, how long do you hold an average share and what do you have in annual turnover?

Thank you for your input. Yes, I agree. Despite the fact that we have a little different tax framework in Norway, I am well aware of the tax. I also aim, as you indicate, to minimize excessive turnover and to hold onto the top stocks for as long as possible.

But I’m still hunting for that little something to boost the portfolio:)

PS: loved reading your “Success Story”. Cudos !!

There’s no real difference between RankPos > and Rank <. I use RankPos > because I use a spreadsheet when making buys and sells, so it’s more intuitive to look down a list of the highest-ranked stocks and say, ah, greater than 37, huh?

Yes, that’s right.

Yes, that’s right.

About two months; about 6X.

Thank you for the kind words.

There comes a time when you have to say “it’s finished” and “I’m done” and just trade your system. No problem with continuing to try to improve your system but don’t make it a full-time obsession. :slight_smile:

Yuval is there a way to avoid selling the same stock twice in a short period via Eval?
Thanks!

Try LastSellDaysLT(days). Returns TRUE or 1 if the stock was sold within the last no. of days, otherwise it returns FALSE or 0 (LT stands for Less Than).

Thank you, but I already tried, it seems that LastSellDaysLT is not a SELL rule, only a BUY one.
I had no idea, there were BUY only rules…