Для расчета данных скрипта можно задействовать стандартный алгоритм, используя класс Perfomance.
Ниже приведен пример скрипта который, считает основные метрики и выводит их в лог. Для сокращения кода сам торговый алгоритм не приводится, вместо него поставьте любой свой или из примеров.
В блок Внешний скрипт надо добавить TSLab.ScriptEngine.dll.
usingSystem.Text;usingTSLab.Script;usingTSLab.Script.Handlers;usingTSLab.Script.Helpers;usingTSLab.Script.Optimization;usingTSLab.ScriptEngine;namespaceMyLib{publicclassTestPerfomance:IExternalScript {publicvirtualvoidExecute(IContext ctx,ISecurity sec) { // Торговый алгоритм // .... // Расчет статистики выполняется в конце скрипта, после торгового алгоритма. // Не забыть добавить TSLab.ScriptEngine.dll в блок Внешний скриптvar list =new [] { (ISecurity2)sec };var perfomance =newPerfomance(list, ((IRuntime2)ctx.Runtime).InitDeposit);perfomance.UpdateDataFromRuntime(); // Вывод в логvar sb =newStringBuilder();sb.AppendLine($"AllTrades: {perfomance.AllTrades}");sb.AppendLine($"WinTrades: {perfomance.WinTrades}");sb.AppendLine($"LossTrades: {perfomance.LossTrades}");sb.AppendLine($"MaxDrawdown: {perfomance.MaxDrawdown}");sb.AppendLine($"MaxDrawdownPct: {perfomance.MaxDrawdownPct}");sb.AppendLine($"ProfitFactor: {perfomance.ProfitFactor}");sb.AppendLine($"RecoveryFactor: {perfomance.RecoveryFactor}");ctx.Log(sb.ToString(),MessageType.Info,true); }}