You are trying to use a pipeline factor to set the rsi_5 value outside of pipeline. I'm not sure, but don't believe that is going to work. Your screen is also exclusive of high RSI values, so as it stands your pipeline isn't going to contain the information you need for when to close out positions. You either need to allow stocks with high RSI values back into the pipeline or use the RSI function from talib to calculate RSIs outside of pipeline to determine when to exit. (check the Classic RSI2 Mean Reversion algorithm to see how to do that)
But I believe you have a bigger problem. Your n_stocks plot shows that your screen hardly ever returns more than 1 or 2 stocks. That doesn't give you a lot of activity to evaluate strategy performance with, or many opportunities to trade for that matter. $2 million is much too low to set as an upper limit.
You're also having problems filling orders, which is understandable because you tested with an account size of 10 million, and a weight per stock of 1/5 account value. That means your algorithm was trying to by $2 million worth of each stock, which equates to trying to buy these companies outright.