Files
PineSript/Buyer/PositionInfo.cs
2026-04-26 19:00:54 +09:00

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}";
}
}