37 lines
1.5 KiB
C#
37 lines
1.5 KiB
C#
namespace Buyer
|
|
{
|
|
/// <summary>
|
|
/// Bitget 선물 포지션 정보.
|
|
/// BitgetPositionClient가 API 응답을 이 모델로 변환합니다.
|
|
/// </summary>
|
|
public class PositionInfo
|
|
{
|
|
/// <summary>심볼 (예: XRPUSDT)</summary>
|
|
public string Symbol { get; set; } = "";
|
|
|
|
/// <summary>포지션 방향: "long" 또는 "short"</summary>
|
|
public string HoldSide { get; set; } = "";
|
|
|
|
/// <summary>보유 수량 (0이면 포지션 없음)</summary>
|
|
public decimal Total { get; set; }
|
|
|
|
/// <summary>평균 진입가</summary>
|
|
public decimal OpenPriceAvg { get; set; }
|
|
|
|
/// <summary>마진 모드: "crossed" 또는 "isolated"</summary>
|
|
public string MarginMode { get; set; } = "crossed";
|
|
|
|
/// <summary>포지션 생성(진입) 시각</summary>
|
|
public DateTimeOffset CTime { get; set; }
|
|
|
|
// ── 편의 속성 ─────────────────────────────────────────────────
|
|
public bool IsEmpty => Total == 0;
|
|
public bool IsLong => HoldSide.Equals("long", StringComparison.OrdinalIgnoreCase);
|
|
public bool IsShort => HoldSide.Equals("short", StringComparison.OrdinalIgnoreCase);
|
|
|
|
public override string ToString()
|
|
=> $"{Symbol} {HoldSide.ToUpper()} {Total} @ {OpenPriceAvg:F4} " +
|
|
$"진입:{CTime.ToLocalTime():yyyy-MM-dd HH:mm} 마진:{MarginMode}";
|
|
}
|
|
}
|