첫 번째 전략 작성¶
이 가이드에서는 QuantiqDSL로 간단한 이동평균 크로스오버 전략을 작성하고 실행하는 과정을 안내합니다.
1단계: 스튜디오 열기¶
Quantiq 웹 인터페이스에 접속한 후, 전략 스튜디오를 엽니다.
2단계: 메타데이터 선언¶
모든 QuantiqDSL 스크립트는 메타데이터 선언으로 시작합니다.
version()— 스크립트 버전을 지정합니다.description()— 전략에 대한 설명을 작성합니다.
3단계: 데이터 소스 설정¶
차트 데이터에 접근하려면 chart() 함수로 타임프레임을 지정합니다.
이제 c 객체를 통해 OHLCV 데이터에 접근할 수 있습니다.
| 속성 | 설명 |
|---|---|
c.open |
시가 시계열 |
c.high |
고가 시계열 |
c.low |
저가 시계열 |
c.close |
종가 시계열 |
c.volume |
거래량 시계열 |
4단계: 지표 계산¶
기술 지표는 ta.* 네임스페이스에서 호출합니다.
ta.sma()는 TSeries를 반환하므로 이후 비교와 인덱싱이 가능합니다.
5단계: 매매 로직 작성¶
if fast_ma.cross_up(slow_ma):
buy(tag="골든크로스: 5일선이 20일선 상향 돌파")
elif fast_ma.cross_down(slow_ma):
sell(tag="데드크로스: 5일선이 20일선 하향 돌파")
else:
hold(tag="크로스 없음, 포지션 유지")
cross_up()— 이전 바에서는 아래에 있다가 현재 바에서 위로 교차했는지 감지합니다.cross_down()— 그 반대 방향을 감지합니다.buy(),sell(),hold()— 의사결정 함수입니다.
6단계: 차트에 지표 표시¶
작성한 지표를 차트 위에 오버레이로 표시할 수 있습니다.
완성된 전략 코드¶
version("1.0")
description("SMA 크로스오버 전략 - 나의 첫 전략")
# 데이터 소스
c = chart("1D")
# 지표 계산
fast_ma = ta.sma(c.close, 5)
slow_ma = ta.sma(c.close, 20)
# 차트 표시
c.line("Fast MA", fast_ma, color="orange")
c.line("Slow MA", slow_ma, color="blue")
# 매매 로직
if fast_ma.cross_up(slow_ma):
buy(tag="골든크로스")
elif fast_ma.cross_down(slow_ma):
sell(tag="데드크로스")
else:
hold()
7단계: 실행 및 확인¶
- 스튜디오 상단의 저장 버튼을 클릭합니다.
- 저장된 항목은 먼저 내 계정의 private draft로 보관됩니다. 커뮤니티에 공개되지는 않습니다.
- 종목을 선택하고 실행을 누릅니다.
- 차트에 이동평균선이 오버레이되고, 크로스 지점에서 매매 시그널이 표시됩니다.
파라미터 활용
param()은 스크립트 안에 실행 파라미터 기본값을 선언할 때 사용합니다. 스튜디오에서 기본값을 바꾸려면 코드를 직접 수정해야 합니다.
실행 시점에 다른 값을 시험하고 싶다면 거래 탭의 전략 편집 패널에서 조정합니다. 이 값은 cloud에 저장되지 않습니다.