자주 묻는 질문¶
시작하기¶
서비스 도메인이 바뀌었나요?¶
Quantiq Cloud 서비스 도메인이 quantiq.kr에서 quantiq.me로 변경되었습니다. 기존 quantiq.kr 주소는 자동으로 quantiq.me로 리다이렉트됩니다.
데스크톱 앱은 최신 버전에서 자동으로 api.quantiq.me로 연결됩니다.
베타테스트는 어떻게 신청하나요?¶
Google 계정으로 신청할 수 있습니다. 홈페이지의 베타테스트 신청 버튼을 클릭하면 됩니다. 별도 인증 없이 바로 진행됩니다.
로그인했는데 다운로드 탭이 안 보입니다¶
다운로드 탭은 베타 런타임 allowlist 대상 계정에만 노출됩니다.
- 로그인하지 않은 경우: 로그인 후 다시 확인하세요.
- 로그인했지만 탭이 없는 경우: 현재 계정이 allowlist 대상이 아닐 수 있습니다.
- 직접 링크(
/download)로 접근하면 현재 상태(로그인 필요/권한 없음/다운로드 가능)가 안내됩니다.
어떤 증권사를 지원하나요?¶
현재 한국투자증권 KIS Open API만 지원합니다. KIS Developers에서 API 키를 발급받아야 합니다.
KIS API를 신규 신청했는데 앱이 느립니다¶
한국투자증권 Open API 신규 신청 후 3일간 호출이 제한됩니다. 이 기간에는 차트 로딩, 계좌 조회 등이 느려질 수 있습니다. 3일이 지나면 자동으로 해제됩니다.
서비스 해지 후 재등록해도 3일 제한이 다시 적용됩니다.
DSL 문법¶
[0], [1]은 무엇인가요?¶
ta.sma(), ta.rsi() 등의 지표 함수는 TSeries라는 시계열 객체를 반환합니다. [0]은 현재(가장 최근) 값, [1]은 1봉 전 값, [2]는 2봉 전 값입니다.
if rsi > 70: 처럼 직접 비교할 때는 자동으로 rsi[0]이 사용됩니다.
c.close[0]와 price는 무엇이 다른가요?¶
c.close[0] |
price |
|
|---|---|---|
| 값 | 현재 봉의 종가 (봉 마감 전까지는 변동 가능) | 현재 이벤트 시점의 실시간 가격 |
| 언제 유용한가 | 봉 마감 기준 판단 | 실시간 가격 조건 판단 |
실행 간 상태를 유지하려면 어떻게 하나요?¶
var 네임스페이스를 사용합니다. 일반 변수는 이벤트마다 초기화되지만, var는 실행 간 값이 유지됩니다.
자세한 내용: var 네임스페이스
ta.crossover()와 series.cross_up()의 차이가 뭔가요?¶
두 방법 모두 bool을 반환하며 결과가 동일합니다.
# 메서드 형식 — 읽기 쉽고 권장
if sma5.cross_up(sma20):
buy()
# 함수 형식 — 동일하게 동작
if ta.crossover(sma5, sma20):
buy()
취향에 따라 선택하세요. cross_up() / cross_down()이 코드 가독성이 더 좋아 권장합니다.
math.pi는 어떻게 쓰나요?¶
속성이 아니라 함수입니다. math.pi()로 호출하세요.
import를 쓸 수 없는데 어떻게 하나요?¶
QuantiqDSL은 샌드박스 환경이라 import가 금지됩니다. 대신 내장 네임스페이스를 사용하세요.
- 수학 함수:
math.mean(),math.abs(),math.max(),math.sqrt()등 - 기술 지표:
ta.sma(),ta.rsi(),ta.macd()등
데이터와 차트¶
차트 데이터가 계속 로딩 실패합니다¶
자동으로 최대 3회 재시도합니다. 계속 실패하면 다시 불러오기 버튼으로 수동 재시도하세요.
거래량이 0인 봉이 보입니다. 데이터 오류인가요?¶
꼭 그렇지는 않습니다. 실제로 해당 시간에 체결이 없었던 경우 거래량 0 봉이 생성될 수 있습니다. 이런 봉에서는 백테스트 시 시장가 주문이 체결되지 않습니다.
분봉 백테스트는 몇 개월치까지 가능한가요?¶
KIS API는 약 12개월 이전의 분봉 데이터를 제공하지 않습니다. 더 긴 기간을 테스트하려면 일봉(1D) 이상 타임프레임을 사용하세요.
실시간 틱이 없는데도 candle_close 이벤트가 들어옵니다¶
정상 동작입니다. 틱이 없는 구간에도 봉 마감 시간이 되면 이벤트가 발생합니다. 이 봉은 이전 종가를 유지하고 거래량은 0입니다. 전략의 봉 마감 판단(barstate().is_confirmed)과 주문 실행 타이밍이 정확하게 동작하도록 하기 위해 필요합니다.
백테스트¶
백테스트 결과를 믿을 수 있나요?¶
백테스트는 실거래와 동일한 주문 판단 로직을 사용합니다. 단, 과거 결과가 미래 수익을 보장하지 않습니다. 백테스트는 전략 논리의 타당성을 확인하는 도구이며, 슬리피지, 유동성 제한, 시장 상황 변화 등 실거래 변수는 반영되지 않습니다.
손절/익절 리스크는 종가 기준으로만 판단하나요?¶
아닙니다. 백테스트/시뮬레이션에서는 각 봉 내부를 시가→고가→저가→종가 경로로 평가해 리스크 트리거 여부를 확인합니다.
트리거가 발생하면 해당 틱 가격이 expected_price로 기록되며, 실제 체결 가격(fill_price)은 체결 모델(close 또는 next_open)을 따릅니다.
멀티 타임프레임 전략 백테스트에서 오류가 납니다¶
전략이 참조하는 모든 타임프레임의 데이터가 준비되어야 합니다. 특정 기간/종목에서 일부 타임프레임 데이터가 없으면 오류가 발생합니다. 백테스트 기간을 줄이거나 타임프레임을 조정해보세요.
백테스트 마지막 구간에서 자주 실패합니다¶
가장 최근 거래일 데이터 공급이 지연될 수 있습니다. 백테스트 종료일을 어제 또는 그 이전으로 설정해보세요.
운영¶
Quantiq 프로그램을 재시작하면 예전 알림이 다시 뜨나요?¶
재시작 전 30분 이상 지난 알림은 다시 표시되지 않습니다. 30분 이내 알림은 재시작 후에도 표시될 수 있습니다.
장 중에 PC가 꺼지면 어떻게 되나요?¶
새 주문이 실행되지 않습니다. 재시작 시 보유 포지션과 미체결 주문이 자동으로 복원됩니다. 장중 PC 연결이 중단되지 않도록 유의하세요.
손절 설정을 했는데도 예상보다 낮은 가격에 체결됩니다¶
갭하락 등 장 시작 시 가격이 급격히 변하면 손절가보다 불리한 가격에 체결될 수 있습니다. 시스템의 한계이며 100% 방어는 보장되지 않습니다.
또한 백테스트 결과에서 expected_price(리스크 트리거 가격)와 fill_price(실제 체결가)는 다를 수 있습니다. 특히 next_open 체결 모델에서는 다음 봉 시가로 체결될 수 있습니다. 백테스트 마지막 캔들에서 리스크가 트리거될 경우 다음 봉이 없으므로 트리거 시점 종가로 강제 체결됩니다.
손절/익절 값은 어떤 단위로 입력하나요?¶
퍼센트(%) 단위로 입력합니다. 3을 입력하면 3%를 의미합니다. 0.03처럼 소수 형태로 입력하면 0.03%로 처리됩니다.
LLM 사용 중 beta_llm_daily_limit_exceeded가 나옵니다¶
베타 계정의 런타임 LLM 일일 호출 한도에 도달했다는 의미입니다.
- HTTP 상태코드:
429 - 에러 코드:
beta_llm_daily_limit_exceeded - 조치: UTC 기준 다음 날까지 대기하거나, 운영팀에 계정 한도 조정을 요청하세요.
회사 문의¶
운영사는 누구인가요?¶
quantiq는 세컨드스테이지(SecondStage)가 운영합니다. 회사 소개 및 연락처는 quantiq.me/about 페이지에서 확인할 수 있습니다.
문의는 어디로 하나요?¶
이메일로 문의해 주세요: contact@quantiq.me