public FilterResult Exec() { FilterResult res = FilterResult.N; //скользящая средняя для пятиминуток SimpleMovingAverage ma = new SimpleMovingAverage(_data["5"], 30); ICandle prev = _data["5"][_data["5"].Count - 2]; //свеча вышла за сколящую среднюю вверх bool crossUp = prev.close > ma.Last() * 1.003m; //свеча вышла за сколящую среднюю вниз bool crossDown = prev.close < ma.Last() * 0.997m; if (crossUp) { res = FilterResult.L; } if (crossDown) { res = FilterResult.S; } return(res); }