Получить результаты скрипта

Для расчета данных скрипта можно задействовать стандартный алгоритм, используя класс Perfomance. Ниже приведен пример скрипта который, считает основные метрики и выводит их в лог. Для сокращения кода сам торговый алгоритм не приводится, вместо него поставьте любой свой или из примеров. В блок Внешний скрипт надо добавить TSLab.ScriptEngine.dll.

using System.Text;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Helpers;
using TSLab.Script.Optimization;
using TSLab.ScriptEngine;

namespace MyLib
{
    public class TestPerfomance : IExternalScript
    {
        public virtual void Execute(IContext ctx, ISecurity sec)
        {
            // Торговый алгоритм
            // ....

            // Расчет статистики выполняется в конце скрипта, после торгового алгоритма.
            // Не забыть добавить TSLab.ScriptEngine.dll в блок Внешний скрипт
            var list = new [] { (ISecurity2)sec };
            var perfomance = new Perfomance(list, ((IRuntime2)ctx.Runtime).InitDeposit);
            perfomance.UpdateDataFromRuntime();

            // Вывод в лог
            var sb = new StringBuilder();
            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);
    }
}

Last updated