using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.TechnicalAnalysis; /// /// Major category of a chart pattern. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum PatternCategory { Candlestick, Chart, SmartMoney } /// /// Directional bias indicated by a pattern or technical setup. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum PatternBias { Bullish, Bearish, Neutral } /// /// Specific pattern type recognized by pattern detection engines. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum PatternType { // Candlestick Patterns Hammer, ShootingStar, BullishEngulfing, BearishEngulfing, MorningStar, EveningStar, Doji, // Classical Chart Patterns DoubleBottom, DoubleTop, HeadAndShoulders, InverseHeadAndShoulders, AscendingTriangle, DescendingTriangle, // Smart Money Concepts (SMC) FairValueGapBullish, FairValueGapBearish, LiquiditySweepHigh, LiquiditySweepLow, BreakOfStructure, ChangeOfCharacter, OrderBlock } /// /// Strategy exit model defining how positions are closed or trailed. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum ExitStrategyType { StagedScaleOutWithBreakEven, PureTrailingStop, DynamicBandTouch, FixedSingleTarget, IndicatorReversal } /// /// Type of trailing stop mechanic. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum TrailingStopType { AtrMultiplier, SuperTrendLine, SwingPoints } /// /// Direction of a technical trading setup signal. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum SignalDirection { Buy, Sell, Neutral } /// /// Overall market or asset technical regime. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum MarketRegime { BullishTrending, BearishTrending, HighVolatilityChoppy, LowVolatilityRangebound } /// /// Which recurring FinlyticTechnicals selection mechanism added an ISIN to the continuously-scanned universe /// (TechnicalUniverseManager in FinlyticTechnicals). Defined here rather than in FinlyticTechnicals /// because it is carried on across the MQTT boundary into /// FinlyticEngine's evaluation snapshot, so more than one service needs it (Rules.md ยง3). /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum UniverseSource { /// Promoted temporarily because FinlyticSentiment reported a strong/shifting sentiment reading. SentimentSpike = 1, /// Favorited by at least one user, aggregated across all users via FinlyticBackend. UserFavorite = 2, /// Part of FinlyticAssets' curated discovery/watchlist asset set. Discovery = 3 }