Since we're on Quantopian, how about determining that a re-balance is needed algorithmically rather than on pre-determined time periods? For the above algorithm, for example, there are 10 securities rebalanced monthly at $8.95 a trade. That's $1,074 year in trading fees, which is significant even for a $100k portfolio.
Why not only rebalance when the security percentage gets out of whack with it's target? I've attached a version that does that. I've defined "out of whack" as the average being more than 1.5% away from it's target percent, which in this algo is 10%. But you can configure this.
Ideally, the definition of "out of whack" would depend on portfolio size, since trading is proportionately more costly for smaller portfolios than larger portfolios. Also, this could be improved by implementing a partial rebalance -- only rebalancing the securities that need it, rather than rebalancing all of them. I'll do another version that does that, though it's a little complicated because if one security needs rebalancing, you can't do it without touching others to turn up funds or reinvest them.