콘텐츠로 이동

자주 묻는 질문


시작하기

서비스 도메인이 바뀌었나요?

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봉 전 값입니다.

rsi = ta.rsi(c.close, 14)
rsi[0]   # 현재 봉 RSI
rsi[1]   # 직전 봉 RSI

if rsi > 70: 처럼 직접 비교할 때는 자동으로 rsi[0]이 사용됩니다.

c.close[0]price는 무엇이 다른가요?

c.close[0] price
현재 봉의 종가 (봉 마감 전까지는 변동 가능) 현재 이벤트 시점의 실시간 가격
언제 유용한가 봉 마감 기준 판단 실시간 가격 조건 판단

실행 간 상태를 유지하려면 어떻게 하나요?

var 네임스페이스를 사용합니다. 일반 변수는 이벤트마다 초기화되지만, var는 실행 간 값이 유지됩니다.

var.init(count=0)
var.count += 1   # 이벤트마다 누적

자세한 내용: 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()로 호출하세요.

circumference = 2 * math.pi() * radius

import를 쓸 수 없는데 어떻게 하나요?

QuantiqDSL은 샌드박스 환경이라 import가 금지됩니다. 대신 내장 네임스페이스를 사용하세요.

  • 수학 함수: math.mean(), math.abs(), math.max(), math.sqrt()
  • 기술 지표: ta.sma(), ta.rsi(), ta.macd()

전체 목록: 내장 함수, ta.* 레퍼런스


데이터와 차트

차트 데이터가 계속 로딩 실패합니다

자동으로 최대 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


관련 문서