⚡ 퀀트 v5
전략 하나를 정의해 스크리닝(지금) · 백테스트(과거) · 모의주문 으로. 조건·대화는 페이지를 옮겨도 유지됩니다. (로그인 필요)
📁 내 전략
필드 변수명 — 필터·점수·Python(
row['키'])에 사용
🤖 AI로 만들기
필터 조건 (AND)
점수 (횡단면 백분위)
❓ Python / SQL 사용 가이드 — 점수식·필터·리서치·DB
🐍 점수식 —
def score(row): 가 종목별 숫자를 반환(클수록 상위). 필드는 row['키'](키는 위 ? 버튼). print() 출력은 결과표 아래 디버그에 표시.
def score(row):
return (row.get('return@60') or 0)*0.7 + (row.get('return_on_equity') or 0)*0.3🐍 필터 —
def include(row): 가 True/False 반환(True만 통과). 룰로 어려운 복합조건용.
def include(row):
return (row.get('avg_value@20') or 0) > 1e9 and (row.get('trailing_pe') or 99) < 15🔬 리서치 — 자유 분석.
query(sql)로 DB read-only 조회(행 목록), mean·median·stdev·math 사용. result=… 또는 print 출력.
rows = query("SELECT close FROM bars WHERE market='KR' AND resolution='daily' LIMIT 1000")
v = [r['close'] for r in rows if r['close']]
result = {'mean': round(mean(v),1), 'n': len(v)}🗄 DB — 직접
SELECT/WITH. 테이블: bars(market·ticker·resolution='daily'·ts·open·high·low·close·volume) · fundamentals · supply. 좌측 테이블 클릭=자동 SELECT.⚠️ 안전: import·파일·네트워크 금지(샌드박스·자원/시간 한도). DB는 read-only. 시장값
'KR'/'US', 봉 resolution='daily'. 오류는 편집기에 밑줄/디버그로 표시.score(row)→숫자. import·파일·네트워크 금지(격리·한도, 위반 시 차단·관리자 알림).
include(row)→True/False. 룰로 표현 어려운 조건을 Python 으로. print 출력은 결과 하단에 표시.
결과 표시 컬럼
① 아래 칩을 탭하면 해당 DB 필드(PER/PBR/ROE·기간수익률·수급 등)가 표 컬럼으로 추가/제거됩니다. 종목·점수·종가, (목표가 설정 시)목표가·손절은 항상 표시.
② 커스텀 수식으로 필드를 조합한 컬럼을 만들 수 있습니다. 필드는
[필드키] 로 참조 — 예: [return@20]-[return@60](최근20·60일 수익률 차), [close]*[volume](거래대금), [market_cap]/[net_income](PER 근사). 사칙연산·괄호·Math.* 사용 가능.⚠ 0으로 나누면 NaN 으로 표시됩니다(빈값도 0 취급). 필드키는 아래 칩의 이름에 마우스를 올리면 확인되며, 전체 목록은 좌측 ‘필드 도움말’ 버튼 참고.
파이썬으로 임의 조사·전략 프로토타이핑을 합니다(스크리너=목록·백테스트=검정과 별개).
결과는 qk.show(표)·qk.plot(차트) 로 아래에 렌더됩니다.
📖 리서치 API — 데이터·지표·출력 (import 없이 바로 사용)
데이터(패널) — 시계열·횡단면을 그대로 받습니다.
px = get_prices(field="close", market="KR", start="2025-01-01") # index=날짜, columns=종목
val = get_prices(field="value", ...) # 거래대금(=종가×거래량)
df = get_ohlcv("005930", start="2024-01-01") # 단일종목 OHLCV(+value)
sup = get_supply(field="foreign_net", start="2025-01-01") # KR 수급(외국인/기관 순매수·보유율)
fu = get_fundamentals(market="KR", fields=["price_to_book","return_on_equity"])
uni = universe(market="KR") # index=종목, name·sector·industry·market_cap
rows = query("SELECT ... FROM bars ...") # read-only SQL(행 목록)지표(6패밀리, 룩어헤드 없음) —
trend·momentum·volatility·volume·price_position·stats
trend.sma(close,20) · trend.ema · trend.macd · trend.adx(high,low,close) · trend.supertrend · trend.disparity momentum.rsi(close,14) · momentum.stochastic · momentum.cci · momentum.roc volatility.atr(high,low,close) · volatility.bollinger · volatility.donchian · volatility.keltner volume.obv · volume.mfi · volume.cmf · volume.value_zscore(value,20) price_position.high_ratio(close,252) · price_position.new_high · price_position.drawdown stats.returns · stats.rolling_volatility · stats.rolling_sharpe · stats.rolling_beta · stats.zscore
출력·도구 —
qk.show(df,"제목") 표 · qk.plot(series|df,"제목") 선차트 · print() · result=… · pd/np/math/mean·median·stdev⚠️ 한도·안전: 패널은 셀 200만 상한(초과 시 기간·종목을 좁히라는 안내). 실행 30초·메모리 제한.
import·파일쓰기(
to_csv·np.save 등)·네트워크 금지 — 결과는 qk 로만 내보냅니다. DB는 read-only.출력 (print)
result
매매 규칙이란? 백테스트가 종목을 언제·어떻게 사고팔지를 정합니다. 미설정 시 기본값은 월 리밸런스·신호일 종가 매수·동일가중·목표가/손절가/보유상한 청산입니다.
리밸런스 주기 종목을 다시 고르는 간격(월/주/분기) · 진입 체결가 매수 시점(신호 당일 종가 vs 다음날 시가) · 사이징 비중(동일/점수가중/역변동성).
청산(선언형) — 숫자만 넣으면 적용(0=미사용):
트레일링=고점대비 N% 하락 시 매도, 본전 스톱=평가익 N% 도달하면 손절선을 매수가로 올림, 부분익절=트리거% 도달 시 비중%만 익절, 시간 청산=N영업일 경과 시 매도.
청산(Python·고급) — 위로 안 되는 규칙은
def exit_signal(ctx): return True/False 로. True 인 봉에서 종가 청산. 선언형과 같이 쓰면 먼저 닿는 것으로 청산. AI 대화/생성에 "고점대비 8% 빠지면 팔아" 처럼 말해도 자동 작성됩니다.ctx 필드: entry(진입가)·target·stop·open·high·low·close·volume·days_held(보유일)·ret(종가수익률)·peak_ret(고점수익률)·mae(최대낙폭,음수). 예: if ctx['days_held']>=40: return True (40일 시간청산). import·파일·네트워크 금지, 0으로 나누기 주의.
0 = 미사용
True 반환 시 그 봉 종가 청산. 선언형 규칙과 함께 쓰면 먼저 닿는 것으로 청산. ctx: entry·target·stop·open·high·low·close·volume·days_held·ret(종가수익률)·peak_ret(고점수익률)·mae(최대낙폭). import·파일·네트워크 금지.
📈 누적 수익 (전략 vs 벤치 EW) · 드로다운
🧮 미래 순자산 투영
튜닝할 파라미터를 추가하고 후보값을 쉼표로 입력 → 모든 조합을 백테스트해 정렬합니다. 스코어 가중치·필터 임계값·매매 파라미터 모두 가능.
예)
손절×ATR=2,3 · 트레일링%=0,8,12 · 가중:return@60=1,2,3 · 필터:avg_value@20=5e8,1e9. OOS(검증구간) 기준 robust_best를 권장값으로 제시합니다.※ 점수가중·필터·종목수·리밸런스는 픽이 바뀌어 조합마다 재스크린(느림), 청산/매매 파라미터는 빠릅니다. 스윕은 백그라운드 실행이라 페이지를 떠나도 됩니다.
| 파라미터 | Sharpe | CAGR | MDD | 승률 | IS | OOS |
|---|
트레이드(최대 100)
| 종목 | 진입일 | 결과 | 수익% |
|---|
백테스트·스윕 실행 기록 — 자동 저장(핀 안 한 건은 종류별 최근 30개 유지). 열기=설정·결과 복원.
위 전략 상위 종목을 모의계좌로 시장가 매수(실계좌 차단). 먼저 미리보기로 확인. (설정에서 KIS 모의계좌 키 등록 필요)
최근 모의 체결 로그
테이블 (클릭=조회)
불러오는 중…
read-only(SELECT/WITH) · 최대 2000행