Забыл поставить условие возврата к торговле 1 лотом при превышении лимита убытков подряд.
Исправил.
Заодно сделал вариант линейного приращения лотов (а не экспоненциального, как в ТЗ автора и как должно бы быть по классике Мартингала).
В варианте линейного приращения можно управлять количеством позиций через портфель. При этом несложно посчитать количество лотов для возврата в минимум. В варианте, задуманном автором, такой расчёт, привязанный к портфелю сделать сложнее (и я не стал заморачиваться)
P.S. Программа считает не убыточные сделки, а убыточные лоты, что вполне логично, так как вход может случиться как одной, так и несколькими сделками. Т.е. если вход трёмя лотами убыточен, то блок "убытков подряд" покажет три убытка.