Hi Matteo,
This is very cool! You had two main issues causing problems here.
(1) duplicate orders being placed - your algo had a check based on the current position size, if you had 0 position in a pair, you would evaluate the spread and make a trade. This criteria is evaluated once every minute, and for the less liquid stocks there were minutes where orders were placed, but not filled. So you had multiple open orders building up, effectively duplicating the trade you wanted to make many times over.
The fix for this was to put a guard at the start of handle data that continues the algo without trading on a given pair if there are outstanding open orders. For more details on ordering and checking for open orders check out the relevant help docs here.
(2) because of the duplicate ordering above, your algo was applying massive amounts of leverage (hence the crazy $2 and $3m transaction sizes in your prior version). We are aware that we need to make it harder to wind up with unrealistic leverage - but currently you do have to manage this yourself, the backtester let's you borrow forever.
Then lastly, I created a pairs list structure that was more readable (at least for me) for debugging. Take a look and please especially double check that I have correctly mapped over your SIDs and the right directionality for each pair.
Hope this is helpful! Best wishes,
Jess
Disclaimer
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.