My algorithm for buying a new car is:
1) Spend about a year deciding what I want and/or need.
2) Simultaneously, start saving the cash.
It's not like you can't tell when a car is nearing the end of time, relative to whatever your own level of love for car maintenance is.
When the time comes, you know what you want and you've got the cash, which makes the bargaining rather trivial.