포지션
포지션 목록 조회
필터링 및 검색 옵션이 포함된 페이지네이션된 포지션 목록을 조회합니다.
포지션 상태
포지션은 다음과 같은 상태를 가질 수 있습니다:
| 상태 | 설명 |
|---|---|
| open | 포지션이 활성 상태이며 미실현 손익이 있음 |
| closed | 포지션이 청산되고 수익이 실현됨 |
| settled | 마켓이 확정되고 포지션이 자동으로 정산됨 |
포지션 이해하기
포지션은 특정 마켓 결과에 대한 보유량을 나타냅니다. 주요 속성은 다음과 같습니다:
- Outcome ID: 거래하고 있는 특정 결과
- Quantity: 보유 주식 수
- Average Price: 평균 진입 가격
- Current Price: 최신 시장 가격
- Unrealized P&L: 현재 손익 (미체결 포지션)
- Realized P&L: 실현 손익 (청산된 포지션)
코드 예제
모든 미체결 포지션 조회
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://engine.xmarket.app/api/v1';
async function getOpenPositions() {
const response = await fetch(
`${BASE_URL}/positions?status=open&pageSize=50`,
{
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
return data.items;
}
// Example usage
const positions = await getOpenPositions();
positions.forEach(position => {
console.log(`Market: ${position.market.name}`);
console.log(`Outcome: ${position.outcome.name}`);
console.log(`Quantity: ${position.quantity}`);
console.log(`Unrealized P&L: ${position.unrealizedPnL}`);
console.log('---');
});
총 포트폴리오 가치 계산
async function getPortfolioSummary() {
const response = await fetch(
`${BASE_URL}/positions?status=open&pageSize=1000`,
{
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
const positions = data.items;
const totalValue = positions.reduce((sum, pos) => {
return sum + (pos.quantity * pos.currentPrice);
}, 0);
const totalUnrealizedPnL = positions.reduce((sum, pos) => {
return sum + pos.unrealizedPnL;
}, 0);
return {
positionCount: positions.length,
totalValue,
totalUnrealizedPnL,
markets: [...new Set(positions.map(p => p.market.id))].length
};
}
// Example usage
const summary = await getPortfolioSummary();
console.log(`Active Positions: ${summary.positionCount}`);
console.log(`Total Value: $${summary.totalValue.toFixed(2)}`);
console.log(`Total Unrealized P&L: $${summary.totalUnrealizedPnL.toFixed(2)}`);
console.log(`Markets: ${summary.markets}`);
일반적인 사용 사례
포트폴리오 대시보드
대시보드에 현재 보유량, 가치 및 미실현 손익을 표시하기 위해 모든 미체결 포지션을 조회합니다.
포지션 모니터링
포지션 엔드포인트를 정기적으로 폴링하여 미실현 손익 임계값에 따른 알림을 설정합니다.
성과 분석
과거 성과 지표 및 승률을 계산하기 위해 청산된 포지션을 분석합니다.
마켓 노출
포지션 가치를 집계하여 다양한 마켓 카테고리에 대한 노출을 계산합니다.
관련 문서
- Orders API - 포지션 구축을 위한 주문 생성 및 관리
- Markets API - 포지션에 대한 마켓 정보 조회
- Orderbook API - 포지션 가치 평가를 위한 현재 가격 확인
- 빠른 시작 - API 시작하기