Когда не хватает памяти, то упасть может где угодно, где выделяется память. Хоть 1 байт. Может проблема в тиках? Фильтр на этой таблице стоит?
В терминале стоит фильтр "все фьючерсы". Но ведь в коде я только один раз подписываюсь на тики по инструменту RIU2: ```csharp
_trader.RegisterMarketDepth(sec);
Разве может быть в тиках?
> Оптимизируйте приложение по памяти, 1.5 гига - как-то мягко говоря много.
Так у меня там всего 4 индикатора и один candleManager из переменных, которые именно накапливают данные. Это точно не где-то в переменных самой библиотеки копится?
В алгоритме я использую подписку на изменение свечки:
```csharp
_candleManager.Processing -= (seria, candle) => CandlesChanged(seria, candle);
Это событие срабатывает очень часто - несколько раз в секунду. А внутри него:
```csharp
private void CandlesChanged(CandleSeries seria, Candle thisCandle)
{
foreach (var candle in seria.GetCandles<Candle>().Where(candle => _lastCandle == null || candle.OpenTime >= _lastCandle.OpenTime))
{
sar.Process((CandleIndicatorValue)candle);
adx.Process((CandleIndicatorValue)candle);
if (_lastCandle != null && candle.OpenTime > _lastCandle.OpenTime)
{
lastAdx = adx.MovingAverage.LastValue;
_lastCandle = candle;
this.AddInfoLog("Перешли на следующую свечку со временем открытия {0}.", _lastCandle.OpenTime);
sma3.Process((DecimalIndicatorValue)candle.ClosePrice);
sma12.Process((DecimalIndicatorValue)candle.ClosePrice);
}
if (candle.OpenTime != _timeFrame.GetCandleBounds(Trader.MarketTime, Security.Exchange).Min && !Allloaded)
continue;
if (_candleManager.Container.GetCandles(_candleManager.Series.First()).Count() < 18)
continue;
Allloaded = true;
var order = AlterantiveSignal(candle, _candleManager);
if (AlterantiveSignal == null || order == null) return;
var child = new MarketQuotingStrategy(order, Security.MinStepPrice, lastMarketDepth.BestPair.SpreadPrice);
ChildStrategies.Add(child);
currentQuoting = child;
child.Start();
}
}
То есть из серии выбирается последняя свечка (условие Where), по ней несколько раз в секунду срабатывает Process у индикаторов. Но я смотрел исходный код индикаторов (adx смотрел). Ведь если время свечки то же, что у прошлой добавленной, то они просто обновляются, они не копят в себе слишком большой буфер? Или все-таки накапливают?