본문으로 건너뛰기

포지션

포지션 목록 조회

필터링 및 검색 옵션이 포함된 페이지네이션된 포지션 목록을 조회합니다.

OpenAPI xmarket-openapi

포지션 상태

포지션은 다음과 같은 상태를 가질 수 있습니다:

상태설명
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}`);

일반적인 사용 사례

포트폴리오 대시보드

대시보드에 현재 보유량, 가치 및 미실현 손익을 표시하기 위해 모든 미체결 포지션을 조회합니다.

포지션 모니터링

포지션 엔드포인트를 정기적으로 폴링하여 미실현 손익 임계값에 따른 알림을 설정합니다.

성과 분석

과거 성과 지표 및 승률을 계산하기 위해 청산된 포지션을 분석합니다.

마켓 노출

포지션 가치를 집계하여 다양한 마켓 카테고리에 대한 노출을 계산합니다.

관련 문서