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
}