feat(analyzer): dynamic settings, IFinlyticLogger, live log streaming, and EF migration

This commit is contained in:
2026-08-15 21:30:16 +02:00
parent 62e030e2cf
commit 0d370d09e7
13 changed files with 687 additions and 215 deletions
+30
View File
@@ -0,0 +1,30 @@
using FinlyticCore.Models.Settings;
namespace FinlyticAnalyzer.Util;
public static class SettingKeys
{
// --- Logging-Kanäle ---
public static readonly SettingKey<bool> AnalyzerChannel = new("Logging.Channel.Analyzer", true);
public static readonly SettingKey<bool> MqttChannel = new("Logging.Channel.MQTT", true);
public static readonly SettingKey<bool> HealthPingChannel = new("Logging.Channel.Health", true);
// --- Makro & VIX Schwellenwerte ---
public static readonly SettingKey<double> VixPanicThreshold = new("Macro.VixPanicThreshold", 28.0);
public static readonly SettingKey<double> VixElevatedThreshold = new("Macro.VixElevatedThreshold", 20.0);
public static readonly SettingKey<int> VixPollIntervalSeconds = new("Macro.VixPollIntervalSeconds", 60);
// --- Filter & Winrate-Logik ---
public static readonly SettingKey<double> MinWinRateThreshold = new("Filter.MinWinRateThreshold", 60.0);
public static readonly SettingKey<double> WeightMacro = new("Filter.WeightMacro", 0.30);
public static readonly SettingKey<double> WeightFundamental = new("Filter.WeightFundamental", 0.30);
public static readonly SettingKey<double> WeightSentiment = new("Filter.WeightSentiment", 0.20);
public static readonly SettingKey<double> WeightTechnical = new("Filter.WeightTechnical", 0.20);
// --- Trade & Risiko-Parameter ---
public static readonly SettingKey<double> DefaultTakeProfitPercent = new("Trade.DefaultTakeProfitPercent", 15.0);
public static readonly SettingKey<double> DefaultStopLossPercent = new("Trade.DefaultStopLossPercent", 5.0);
public static readonly SettingKey<int> MaxAllowedLeverage = new("Trade.MaxAllowedLeverage", 10);
public static readonly SettingKey<double> MaxRiskPerTradePercent = new("Trade.MaxRiskPerTradePercent", 2.0);
public static readonly SettingKey<int> ProposalValidityHours = new("Trade.ProposalValidityHours", 24);
}