а сколько у вас сжирает? Кеш - это память, для насчитываемых индикаторов. Еще память кушается на следующее:
1. Сами данные (свечи). Во время оптимизации их создается несколько копий (зависит от количества потоков).
2. Результаты оптимизации съедают примерно по 0.5кб за каждую строку.
3. Фрагментация памяти. При использовании больших историй может оказать очень критичной (примерно более 20тыщ свечей, т.к. объекты свыше 80кб в NET попадают в отдельную кучу). В частности не рекомендуется использовать списки (List) в самодельных индикаторах, а использовать массивы. Либо нужно сразу выставлять нужный размер списка, что минимизирует операции по "удлинению" списка.
4. Размер кеша - не глобальный. Для каждого скрипта он свой. Т.е. при 2гб и 10 окнах лаборатории программа может съесть в теории до 20гб. Я бы оставил 600-700мб. При больших значениях расходы NET на управление памятью превышают выигрыш от кеширования насчитанных данных.