Search

BasketEgg

목차

개요

BasketEggBasket에 담긴 종목 한 건을 나타내는 객체입니다.
Account.getEggs()가 반환하는 Egg 객체가 계좌의 실제 보유 잔고를 나타내는 것과 달리, BasketEggBasket목표 포트폴리오에 담긴 종목을 나타냅니다. Basket.getCurrentEggs()를 통해 배열로 가져올 수 있습니다.
var eggs = stock_port.getCurrentEggs(); for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; logger.debug(egg.stock.name + ' | 수량: ' + egg.quantity + ' | 편입비율: ' + (egg.ratio * 100).toFixed(1) + '%'); }
JavaScript
복사

속성 (Properties)

속성
타입
설명
stock
Stock
해당 종목의 Stock 객체
quantity
number
목표 보유 수량 (주)
ratio
number
바스켓 편입 시점의 비율 (0~1). 이후 다른 종목이 추가되어도 이 값은 갱신되지 않으므로 전체 비중 계산이 필요하면 별도 계산 필요.

stock

해당 종목의 Stock 객체입니다. Stock의 모든 속성과 메서드에 접근할 수 있습니다.
var eggs = stock_port.getCurrentEggs(); for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; logger.debug('종목코드: ' + egg.stock.code + ', 종목명: ' + egg.stock.name); logger.debug('당일 종가: ' + egg.stock.getClose()); }
JavaScript
복사

quantity

해당 종목의 목표 보유 수량입니다.
Basket.buildPortfolio() 또는 Basket.enter() 호출 시 예산(budget / targetSize)과 당일 종가를 기준으로 계산되어 설정됩니다.
var eggs = stock_port.getCurrentEggs(); for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; logger.debug(egg.stock.name + ': 목표수량 ' + egg.quantity + '주'); }
JavaScript
복사

ratio

바스켓 편입 시점의 해당 종목 비율입니다.
주의: 이 값은 종목이 바스켓에 추가되는 시점에 고정되며, 이후 다른 종목이 추가·제거되어도 자동으로 갱신되지 않습니다. 현재 시점의 실제 비중이 필요하다면 getEquityOpenValue()와 개별 종목 평가액을 이용해 직접 계산해야 합니다.
var eggs = stock_port.getCurrentEggs(); for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; logger.debug(egg.stock.name + ' 편입비율: ' + (egg.ratio * 100).toFixed(2) + '%'); }
JavaScript
복사

활용 패턴

패턴 1: 바스켓 구성 종목 현황 출력

function onDayClose(now) { if (!IQDate.isRebalancingDay(now)) return; stock_port.buildPortfolio(); var eggs = stock_port.getCurrentEggs(); logger.debug('=== 목표 포트폴리오 (' + eggs.length + '종목) ==='); for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; var evalAmount = egg.stock.getClose() * egg.quantity; logger.debug((i + 1) + '. ' + egg.stock.name + ' | 목표수량: ' + egg.quantity + '주' + ' | 평가액: ' + IQUtil.getNumberWithCommas(evalAmount.toFixed(0))); } }
JavaScript
복사

패턴 2: 실제 비중 계산

ratio는 편입 시점에 고정되므로, 현재 시점 비중은 직접 계산합니다.
function printCurrentWeights(basket) { var eggs = basket.getCurrentEggs(); var totalValue = basket.getEquityOpenValue(); if (totalValue <= 0) return; for (var i = 0; i < eggs.length; i++) { var egg = eggs[i]; var evalValue = egg.stock.getClose() * egg.quantity; var currentWeight = evalValue / totalValue * 100; logger.debug(egg.stock.name + ' | 현재비중: ' + currentWeight.toFixed(2) + '%' + ' | 평가액: ' + IQUtil.getNumberWithCommas(evalValue.toFixed(0))); } }
JavaScript
복사

Egg vs BasketEgg 비교

구분
Egg (Account.getEggs())
BasketEgg (Basket.getCurrentEggs())
의미
계좌의 실제 보유 잔고
바스켓의 목표 포트폴리오 구성
stock 속성
없음 (code로 접근)
Stock 객체 직접 접근
quantity
실제 보유 수량
목표 보유 수량
mean
평균 매수가
없음
ratio
없음
편입 시점 비율

관련 API

Basket 객체 — 포트폴리오 바스켓. getCurrentEggs() 등 전체 바스켓 관리
Stock 객체 — BasketEgg.stock으로 접근하는 개별 종목 객체
Account 객체 — getEggs()로 실제 보유 잔고 조회