Метод runtime.GetAllAgentRuntimeInfo() возвращает данные по всем агентам. Те же данные что в таблице Агенты.
using System.Linq;
using System.Text;
using TSLab.Script;
using TSLab.Script.Handlers;
namespace MyLib
{
public class TestAgentsInfo : IExternalScript
{
public void Execute(IContext ctx, ISecurity sec)
{
// В переменной agents будут данные по агентам.
var agents = ctx.Runtime.GetAllAgentRuntimeInfo().ToList();
var sb = new StringBuilder();
foreach (var agent in agents)
{
sb.AppendLine($"Агент: {agent.AgentName}");
sb.AppendLine($"Скрипт: {agent.ScriptName}");
sb.AppendLine($"Работает: {agent.IsStarted}");
foreach (var sourceItem in agent.SourceItems)
{
sb.AppendLine($" Поставщик: {sourceItem.ProviderName}");
sb.AppendLine($" Счет: {sourceItem.AccountName}");
sb.AppendLine($" Валюта счета: {sourceItem.CurrencyName}");
sb.AppendLine($" Инструмент: {sourceItem.SecurityName}");
sb.AppendLine($" Позиция (лоты): {sourceItem.PositionInLots}");
sb.AppendLine($" Позиция (деньги): {sourceItem.PositionInMoney}");
sb.AppendLine($" Длинные поз. (лоты): {sourceItem.PositionLong}");
sb.AppendLine($" Короткие поз. (лоты): {sourceItem.PositionShort}");
sb.AppendLine($" Учетная цена: {sourceItem.BalancePrice}");
sb.AppendLine($" П/У: {sourceItem.Profit}");
sb.AppendLine($" П/У (дн): {sourceItem.DailyProfit}");
sb.AppendLine($" НП/У: {sourceItem.ProfitVol}");
sb.AppendLine($" Комиссия: {sourceItem.Commission}");
sb.AppendLine($" Текущая цена: {sourceItem.LastPrice}");
sb.AppendLine($" Оценочная цена: {sourceItem.AssessedPrice}");
sb.AppendLine();
}
}
ctx.Log(sb.ToString(), toMessageWindow: true);
}
}
}