Files
BitGet_API/Bitget_Server/Api/Dtos/DiagnosticsDtos.cs

71 lines
1.9 KiB
C#

namespace Bitget_Server.Api.Dtos;
/// <summary>
/// /api/diag 엔드포인트 전용 응답 모델.
/// Chart.js financial 플러그인 포맷에 맞춰 {t, o, h, l, c} 가 기본이며,
/// 인디케이터는 선택 필드로 포함된다.
/// </summary>
public record DiagSymbolsResponse(
IEnumerable<string> Symbols,
IEnumerable<string> Intervals);
public record DiagCandleDto(
long t, // epoch millis (Chart.js x-axis)
double o,
double h,
double l,
double c,
double volC,
double volUsdt,
bool wsUpdated,
bool restUpdated,
DiagIchimokuDto ichimoku,
Dictionary<int, DiagMovingAverageDto> ma,
Dictionary<int, DiagImpulseMacdDto> impulseMacd);
public record DiagIchimokuDto(
double 기준선,
double 전환선,
double 후행스팬,
double 선행스팬1,
double 선행스팬2,
double 상한선,
double 하한선,
bool IsLongUp,
bool IsLongDown,
bool IsShortUp,
bool IsShortDown);
public record DiagMovingAverageDto(
double Value,
double Average,
double BolUp,
double BolDown);
public record DiagImpulseMacdDto(double MD, double SH, double SB);
public record DiagCandleResponse(
string Symbol,
string Interval,
int Count,
IEnumerable<DiagCandleDto> Candles);
/// <summary>PriceLevelTracker 의 전고점/전저점 상태 전체 키·값.</summary>
public record DiagPriceLevelsDto(
string Symbol,
string Interval,
string Key,
IReadOnlyDictionary<string, double> Levels);
/// <summary>SignalProcessService 의 현재 신호 요약 (차트 마커용).</summary>
public record DiagSignalMarkerDto(
string direction, // "LongUp" / "ShortDown" / "LongDown" / "ShortUp"
string symbol,
string interval,
long t,
double price,
double rate,
double indicatorPrice,
double indicatorRate,
string description);