Fix run time
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Orleans;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Application.Abstractions.Models;
|
||||
@@ -5,98 +6,117 @@ namespace Managing.Application.Abstractions.Models;
|
||||
/// <summary>
|
||||
/// Platform-wide statistics without individual agent details
|
||||
/// </summary>
|
||||
[GenerateSerializer]
|
||||
public class PlatformSummaryViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Total number of agents on the platform
|
||||
/// </summary>
|
||||
[Id(0)]
|
||||
public required int TotalAgents { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total number of active strategies across all agents
|
||||
/// </summary>
|
||||
[Id(1)]
|
||||
public required int TotalActiveStrategies { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total platform-wide profit and loss in USD
|
||||
/// </summary>
|
||||
[Id(2)]
|
||||
public required decimal TotalPlatformPnL { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total volume traded across all agents in USD
|
||||
/// </summary>
|
||||
[Id(3)]
|
||||
public required decimal TotalPlatformVolume { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total volume traded across all agents in the last 24 hours in USD
|
||||
/// </summary>
|
||||
[Id(4)]
|
||||
public required decimal TotalPlatformVolumeLast24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total open interest across all positions in USD
|
||||
/// </summary>
|
||||
[Id(5)]
|
||||
public required decimal TotalOpenInterest { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total number of open positions across all strategies
|
||||
/// </summary>
|
||||
[Id(6)]
|
||||
public required int TotalPositionCount { get; set; }
|
||||
|
||||
// 24-hour changes
|
||||
/// <summary>
|
||||
/// Change in agent count over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(7)]
|
||||
public required int AgentsChange24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change in strategy count over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(8)]
|
||||
public required int StrategiesChange24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change in PnL over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(9)]
|
||||
public required decimal PnLChange24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change in volume over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(10)]
|
||||
public required decimal VolumeChange24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change in open interest over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(11)]
|
||||
public required decimal OpenInterestChange24h { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change in position count over the last 24 hours
|
||||
/// </summary>
|
||||
[Id(12)]
|
||||
public required int PositionCountChange24h { get; set; }
|
||||
|
||||
// Breakdowns
|
||||
/// <summary>
|
||||
/// Volume breakdown by asset/ticker
|
||||
/// </summary>
|
||||
[Id(13)]
|
||||
public required Dictionary<string, decimal> VolumeByAsset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Position count breakdown by asset/ticker
|
||||
/// </summary>
|
||||
[Id(14)]
|
||||
public required Dictionary<string, int> PositionCountByAsset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Position count breakdown by direction (Long/Short)
|
||||
/// </summary>
|
||||
[Id(15)]
|
||||
public required Dictionary<TradeDirection, int> PositionCountByDirection { get; set; }
|
||||
|
||||
// Metadata
|
||||
/// <summary>
|
||||
/// When the data was last updated
|
||||
/// </summary>
|
||||
[Id(16)]
|
||||
public required DateTime LastUpdated { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When the last 24-hour snapshot was taken
|
||||
/// </summary>
|
||||
[Id(17)]
|
||||
public required DateTime Last24HourSnapshot { get; set; }
|
||||
}
|
||||
|
||||
@@ -148,6 +148,11 @@ public static class ApiBootstrap
|
||||
options.ConnectionString = postgreSqlConnectionString;
|
||||
options.Invariant = "Npgsql";
|
||||
})
|
||||
.AddAdoNetGrainStorage("platform-summary-store", options =>
|
||||
{
|
||||
options.ConnectionString = postgreSqlConnectionString;
|
||||
options.Invariant = "Npgsql";
|
||||
})
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
// Register existing services for Orleans DI
|
||||
@@ -173,7 +178,7 @@ public static class ApiBootstrap
|
||||
services.AddScoped<ISettingsService, SettingsService>();
|
||||
services.AddScoped<IUserService, UserService>();
|
||||
services.AddScoped<IGeneticService, GeneticService>();
|
||||
services.AddSingleton<IBotService, BotService>();
|
||||
services.AddScoped<IBotService, BotService>();
|
||||
services.AddScoped<IWorkerService, WorkerService>();
|
||||
services.AddScoped<ISynthPredictionService, SynthPredictionService>();
|
||||
services.AddScoped<ISynthApiClient, SynthApiClient>();
|
||||
|
||||
@@ -58,7 +58,7 @@ public static class WorkersBootstrap
|
||||
services.AddScoped<ISettingsService, SettingsService>();
|
||||
services.AddScoped<IUserService, UserService>();
|
||||
services.AddScoped<IGeneticService, GeneticService>();
|
||||
services.AddSingleton<IBotService, BotService>();
|
||||
services.AddScoped<IBotService, BotService>();
|
||||
services.AddScoped<IWorkerService, WorkerService>();
|
||||
services.AddScoped<ISynthPredictionService, SynthPredictionService>();
|
||||
services.AddScoped<ISynthApiClient, SynthApiClient>();
|
||||
|
||||
Reference in New Issue
Block a user