콘텐츠로 이동

첫 번째 전략 작성

이 가이드에서는 QuantiqDSL로 간단한 이동평균 크로스오버 전략을 작성하고 실행하는 과정을 안내합니다.

1단계: 스튜디오 열기

Quantiq 웹 인터페이스에 접속한 후, 전략 스튜디오를 엽니다.

2단계: 메타데이터 선언

모든 QuantiqDSL 스크립트는 메타데이터 선언으로 시작합니다.

version("1.0")
description("SMA 크로스오버 전략 - 나의 첫 전략")
  • version() — 스크립트 버전을 지정합니다.
  • description() — 전략에 대한 설명을 작성합니다.

3단계: 데이터 소스 설정

차트 데이터에 접근하려면 chart() 함수로 타임프레임을 지정합니다.

c = chart("1D")  # 일봉 데이터

이제 c 객체를 통해 OHLCV 데이터에 접근할 수 있습니다.

속성 설명
c.open 시가 시계열
c.high 고가 시계열
c.low 저가 시계열
c.close 종가 시계열
c.volume 거래량 시계열

4단계: 지표 계산

기술 지표는 ta.* 네임스페이스에서 호출합니다.

fast_ma = ta.sma(c.close, 5)    # 5일 단순이동평균
slow_ma = ta.sma(c.close, 20)   # 20일 단순이동평균

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단계: 차트에 지표 표시

작성한 지표를 차트 위에 오버레이로 표시할 수 있습니다.

c.line("Fast MA", fast_ma, color="orange")
c.line("Slow MA", slow_ma, color="blue")

완성된 전략 코드

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단계: 실행 및 확인

  1. 스튜디오 상단의 저장 버튼을 클릭합니다.
  2. 저장된 항목은 먼저 내 계정의 private draft로 보관됩니다. 커뮤니티에 공개되지는 않습니다.
  3. 종목을 선택하고 실행을 누릅니다.
  4. 차트에 이동평균선이 오버레이되고, 크로스 지점에서 매매 시그널이 표시됩니다.

파라미터 활용

param()은 스크립트 안에 실행 파라미터 기본값을 선언할 때 사용합니다. 스튜디오에서 기본값을 바꾸려면 코드를 직접 수정해야 합니다.

실행 시점에 다른 값을 시험하고 싶다면 거래 탭의 전략 편집 패널에서 조정합니다. 이 값은 cloud에 저장되지 않습니다.

param("fast_period", "빠른 이동평균 기간", 5)
param("slow_period", "느린 이동평균 기간", 20)

fast_ma = ta.sma(c.close, script_params["fast_period"])
slow_ma = ta.sma(c.close, script_params["slow_period"])

다음 단계

  • 실행 모델 — 전략이 언제, 어떻게 실행되는지 이해하기
  • 언어 개요 — QuantiqDSL 문법 전체 살펴보기
  • 기술 지표 — 사용 가능한 40개 이상의 지표 알아보기