описанную вами систему я бы охарактеризовал как "торгуем из того что есть" блок доходЗа на очень больших значениях 20000 и выше дал бы нужный эффект но его просчет на таких значениях сильно замедляет общий пересчет.
предложенный мной вариант можно охарактеризовать как "ни шагу назад", значение блока максДоход будет всегда максимально на всем интервале работы скрипта.
в целом, применять по вкусу
Ааа понял, альтернатива! ну это да согласен, даже удобнее.