목차
개요
Index는 시장 지수 하나를 나타내는 객체입니다.
KOSPI, KOSDAQ 등 한국 지수와 S&P 500, NASDAQ 등 미국 지수를 동일한 인터페이스로 다룹니다.
Index 객체는 IQIndex.getIndex(code)를 통해 가져옵니다.
var kospi = IQIndex.getIndex('001');
logger.debug('code: ' + kospi.code + ', name: ' + kospi.name);
JavaScript
복사
주의: 코드 내 변수명으로 index를 사용하는 샘플이 많지만, 파라미터 index(과거 데이터 참조 인덱스)와 혼동하지 않도록 변수명을 kospi, sp500 등으로 명시하는 것이 권장됩니다.
index 파라미터 공통 설명
가격 데이터 함수(getClose, getOpen, getHigh, getLow, getDate)는 index 파라미터를 받습니다.
index 값 | 의미 |
0 (기본값, 생략 가능) | 당일 데이터 |
1 | 1 거래일 전 (어제) |
2 | 2 거래일 전 |
N | N 거래일 전 |
중요: 시뮬레이션 시작일 이전 데이터가 필요하면 loadPrevData(year, month, day) 함수로 미리 데이터를 불러와야 합니다.
1. 속성 (Properties)
code
지수 코드입니다.
한국 — 3자리 숫자 코드
코드 | 지수명 |
001 | KOSPI |
101 | KOSPI 200 |
002 | KOSPI 대형주 |
003 | KOSPI 중형주 |
004 | KOSPI 소형주 |
301 | KOSDAQ |
미국 — ^로 시작하는 심볼
심볼 | 지수명 |
^DJI | Dow Jones Industrial Average |
^GSPC | S&P 500 Index |
^IXIC | NASDAQ Composite |
^VIX | Volatility Index |
name
지수 이름입니다.
var kospi = IQIndex.getIndex('001');
logger.debug('code: ' + kospi.code + ', name: ' + kospi.name);
// 출력: code: 001, name: KOSPI
JavaScript
복사
2. 가격 데이터
getDate(index)
index 만큼의 과거 거래일에 해당하는 날짜를 가져오는 함수입니다.
파라미터
파라미터 | 타입 | 설명 |
index | number | 거래일 기준 과거 일수. 기본값 0 (당일). index 파라미터 공통 설명 참고 |
반환값
string — index에 해당하는 거래일의 날짜 문자열
var kospi = IQIndex.getIndex('001');
logger.debug('yesterday date: ' + kospi.getDate(1)); // 거래일 기준 전일을 가져옵니다.
JavaScript
복사
가격 함수 요약
함수 | 설명 | 반환값 |
getClose(index) | 종가 | index에 해당하는 일의 종가 |
getOpen(index) | 시가 | index에 해당하는 일의 시가 |
getHigh(index) | 고가 | index에 해당하는 일의 고가 |
getLow(index) | 저가 | index에 해당하는 일의 저가 |
var kospi = IQIndex.getIndex('001');
logger.debug('today close price: ' + kospi.getClose()); // 당일 종가
logger.debug('yesterday close price: ' + kospi.getClose(1)); // 하루전 종가
JavaScript
복사
3. 기술적 지표 (Technical Indicators)
모든 기술적 지표는 당일 기준으로 계산됩니다.
오류 발생 시 -99999999.0 반환.
단순 지표
함수 | 설명 | 파라미터 |
getMA(period) | 이동평균 (MA) | period: 기간 (일) |
getEMA(period) | 지수이동평균 (EMA) | period: 기간 (일) |
getWMA(period) | 가중이동평균 (WMA) | period: 기간 (일) |
getATR(period) | Average True Range (ATR) | period: 기간 (일) |
getADX(period) | Average Directional Index (ADX) | period: 기간 (일) |
getCCI(period) | Commodity Channel Index (CCI) | period: 기간 (일) |
getRSI(period) | Relative Strength Index (RSI) | period: 기간 (일) |
getWilliamsR(period) | Williams %R | period: 기간 (일) |
getTrueRange() | True Range | 없음 |
getOBV() | On Balance Volume (OBV) | 없음 |
var kospi = IQIndex.getIndex('001');
logger.debug('MA(20): ' + kospi.getMA(20));
logger.debug('RSI(14): ' + kospi.getRSI(14));
logger.debug('ADX(10): ' + kospi.getADX(10));
JavaScript
복사
복합 지표 (JSON 반환)
getBollingerBand(period, devUp, devDown)
볼린저 밴드 값을 JSON 형태로 반환합니다.
파라미터
파라미터 | 타입 | 설명 |
period | number | 기간 (일) |
devUp | number | 상위 밴드 표준편차 배수 (K배) |
devDown | number | 하위 밴드 표준편차 배수 (K배) |
반환값 object — { upper: number, middle: number, lower: number } / 오류 시 -99999999.0
var kospi = IQIndex.getIndex('001');
var bb = kospi.getBollingerBand(10, 2, 2);
logger.debug('Bollinger: ' + JSON.stringify(bb));
// 예: {"upper": 27719.57, "middle": 27468.5, "lower": 27217.47}
JavaScript
복사
getMACD(fast, slow, signal)
MACD 값을 JSON 형태로 반환합니다.
파라미터
파라미터 | 타입 | 설명 |
fast | number | 단기 이동평균일 |
slow | number | 장기 이동평균일 |
signal | number | 시그널 이동평균일 |
반환값 object — { macd: number, signal: number, hist: number } / 오류 시 -99999999.0
var kospi = IQIndex.getIndex('001');
var macd = kospi.getMACD(12, 26, 9);
logger.debug('MACD: ' + JSON.stringify(macd));
// 예: {"macd": 117.3, "signal": 128.1, "hist": -10.8}
JavaScript
복사
getStochastic(fastK, slowK, slowD)
스토캐스틱 값을 JSON 형태로 반환합니다.
파라미터
파라미터 | 타입 | 설명 |
fastK | number | fastK 이동평균일 |
slowK | number | slowK 이동평균일 |
slowD | number | slowD 이동평균일 |
반환값 object — { slowK: number, slowD: number } / 오류 시 -99999999.0
var kospi = IQIndex.getIndex('001');
var stoch = kospi.getStochastic(5, 3, 3);
logger.debug('Stochastic: ' + JSON.stringify(stoch));
// 예: {"slowK": 71.75, "slowD": 56.58}
JavaScript
복사
getParabolic(acc, max)
Parabolic SAR 값을 반환합니다.
파라미터
파라미터 | 타입 | 설명 |
acc | number | 가속변수 |
max | number | 가속변수의 최대값 |
반환값 number — 당일 Parabolic SAR 값 / 오류 시 -99999999.0
var kospi = IQIndex.getIndex('001');
logger.debug('Parabolic SAR: ' + kospi.getParabolic(0.02, 0.2));
JavaScript
복사
4. 유틸리티 함수
loadPrevData(year, month, day)
시뮬레이션 시작일자 이전 기간(년, 월, 일)의 해당 지수 데이터를 로드합니다.
기본적으로 시뮬레이션 시작일~종료일 범위의 데이터만 로드되므로, 이전 일자의 데이터가 필요한 경우 이 함수를 사용합니다.
파라미터
파라미터 | 타입 | 설명 |
year | number | 연 단위 (예: 1 = 1년 전) |
month | number | 월 단위 (예: 0 = 0개월) |
day | number | 일 단위 (예: 60 = 60일 전) |
var kospi = IQIndex.getIndex('001');
// 10일 전 데이터 로드
kospi.loadPrevData(0, 0, 10);
// 1년 전 데이터 로드 (예: 250일 MA 계산을 위해)
kospi.loadPrevData(1, 0, 0);
JavaScript
복사
Index vs Stock 주요 차이점
항목 | Index | Stock |
객체 취득 | IQIndex.getIndex(code) | IQStock.getStock(code) |
코드 형식 (한국) | '001' (3자리 숫자) | 'A005930' (A+6자리) |
코드 형식 (미국) | '^GSPC' (^ 접두사) | 'AAPL' (티커) |
재무 데이터 | ||
투자자별 매매 | ||
기술적 지표 | ||
getBollingerBand 함수명 | getBollingerBand | getBollingerBand |
오류 처리 규칙
상황 | 반환값 |
기술적 지표 계산 오류 | -99999999.0 |
관련 API
•
IQIndex 객체 — 지수 목록 조회 및 특정 지수 취득
•
Stock 객체 — 개별 주식 종목 데이터 조회
