feat(Core): update DTOs and shared models
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record CandleDto(
|
||||
[property: JsonPropertyName("timestamp")] DateTime Timestamp,
|
||||
[property: JsonPropertyName("open")] decimal Open,
|
||||
[property: JsonPropertyName("high")] decimal High,
|
||||
[property: JsonPropertyName("low")] decimal Low,
|
||||
[property: JsonPropertyName("close")] decimal Close,
|
||||
[property: JsonPropertyName("volume")] long Volume,
|
||||
[property: JsonPropertyName("bid")] decimal? Bid = null,
|
||||
[property: JsonPropertyName("ask")] decimal? Ask = null
|
||||
);
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record PatternPointDto(
|
||||
[property: JsonPropertyName("time")] DateTime Time,
|
||||
[property: JsonPropertyName("price")] decimal Price
|
||||
);
|
||||
|
||||
public record BreakoutSignalDto(
|
||||
[property: JsonPropertyName("time")] DateTime Time,
|
||||
[property: JsonPropertyName("direction")] string Direction, // "BUY" or "SELL"
|
||||
[property: JsonPropertyName("triggerPrice")] decimal TriggerPrice,
|
||||
[property: JsonPropertyName("targetPrice")] decimal TargetPrice,
|
||||
[property: JsonPropertyName("potentialPercent")] decimal? PotentialPercent = null
|
||||
);
|
||||
|
||||
public record ChartPatternDto(
|
||||
[property: JsonPropertyName("type")] string Type, // "AscendingTriangle", "DescendingTriangle", "SymmetricalTriangle", "DoubleBottom", "DoubleTop", "HeadAndShoulders"
|
||||
[property: JsonPropertyName("description")] string? Description,
|
||||
[property: JsonPropertyName("upperLine")] List<PatternPointDto> UpperLine,
|
||||
[property: JsonPropertyName("lowerLine")] List<PatternPointDto> LowerLine,
|
||||
[property: JsonPropertyName("apexTime")] DateTime? ApexTime,
|
||||
[property: JsonPropertyName("breakoutSignal")] BreakoutSignalDto? BreakoutSignal,
|
||||
[property: JsonPropertyName("confidencePercent")] decimal? ConfidencePercent = null
|
||||
);
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record IndicatorValuesDto(
|
||||
[property: JsonPropertyName("timestamp")] DateTime Timestamp,
|
||||
[property: JsonPropertyName("ema20")] decimal? Ema20,
|
||||
[property: JsonPropertyName("sma50")] decimal? Sma50,
|
||||
[property: JsonPropertyName("sma200")] decimal? Sma200,
|
||||
[property: JsonPropertyName("rsi14")] decimal? Rsi14,
|
||||
[property: JsonPropertyName("macdLine")] decimal? MacdLine,
|
||||
[property: JsonPropertyName("macdSignal")] decimal? MacdSignal,
|
||||
[property: JsonPropertyName("macdHistogram")] decimal? MacdHistogram,
|
||||
[property: JsonPropertyName("atr14")] decimal? Atr14,
|
||||
[property: JsonPropertyName("vwap")] decimal? Vwap,
|
||||
[property: JsonPropertyName("supertrendUpper")] decimal? SupertrendUpper,
|
||||
[property: JsonPropertyName("supertrendLower")] decimal? SupertrendLower,
|
||||
[property: JsonPropertyName("supertrendDirection")] string? SupertrendDirection,
|
||||
[property: JsonPropertyName("recommendedStopLoss")] decimal? RecommendedStopLoss
|
||||
);
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record LivePriceDto(
|
||||
[property: JsonPropertyName("isin")]
|
||||
string Isin,
|
||||
[property: JsonPropertyName("currentPrice")]
|
||||
decimal CurrentPrice,
|
||||
[property: JsonPropertyName("dailyChangePercent")]
|
||||
decimal DailyChangePercent,
|
||||
[property: JsonPropertyName("bid")]
|
||||
decimal? Bid,
|
||||
[property: JsonPropertyName("ask")]
|
||||
decimal? Ask
|
||||
);
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record MarketRegimeDto(
|
||||
[property: JsonPropertyName("vixValue")] decimal VixValue,
|
||||
[property: JsonPropertyName("vixRegime")] string VixRegime, // "LowVolatility", "Moderate", "HighVolatility" (>25)
|
||||
[property: JsonPropertyName("marketTrend")] string MarketTrend, // "Bullish", "Bearish"
|
||||
[property: JsonPropertyName("dxyValue")] decimal DxyValue,
|
||||
[property: JsonPropertyName("dxyState")] string DxyState, // "DollarStrengthening", "DollarWeakening"
|
||||
[property: JsonPropertyName("summaryText")] string SummaryText
|
||||
);
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record StrategySignalDto(
|
||||
[property: JsonPropertyName("type")] string Type, // "GoldenCross", "DeathCross", "RsiDivergenceBullish", "RsiDivergenceBearish", "Breakout"
|
||||
[property: JsonPropertyName("timestamp")] DateTime Timestamp,
|
||||
[property: JsonPropertyName("direction")] string Direction, // "BUY", "SELL", "NEUTRAL"
|
||||
[property: JsonPropertyName("price")] decimal Price,
|
||||
[property: JsonPropertyName("description")] string Description
|
||||
);
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
|
||||
public record TechnicalAnalysisDto(
|
||||
[property: JsonPropertyName("isin")] string Isin,
|
||||
[property: JsonPropertyName("ticker")] string Ticker,
|
||||
[property: JsonPropertyName("companyName")] string CompanyName,
|
||||
[property: JsonPropertyName("lastUpdated")] DateTime LastUpdated,
|
||||
[property: JsonPropertyName("candles")] List<CandleDto> Candles,
|
||||
[property: JsonPropertyName("indicators")] List<IndicatorValuesDto> Indicators,
|
||||
[property: JsonPropertyName("patterns")] List<ChartPatternDto> Patterns,
|
||||
[property: JsonPropertyName("signals")] List<StrategySignalDto> Signals,
|
||||
[property: JsonPropertyName("marketRegime")] MarketRegimeDto MarketRegime,
|
||||
[property: JsonPropertyName("currency")] string Currency = "EUR"
|
||||
);
|
||||
Reference in New Issue
Block a user