콘텐츠로 이동

메타데이터

메타데이터 함수는 전략의 버전, 설명, 사용자 정의 파라미터를 선언합니다. 스크립트 상단에 배치하는 것이 관례입니다.

version()

전략 스크립트의 버전을 지정합니다.

version("1.0")

파라미터:

이름 타입 설명
ver str 버전 문자열

지원 버전

현재 지원 버전은 "1.0"입니다. 향후 DSL 문법이 변경될 경우 버전 기반으로 호환성을 관리합니다.

description()

전략에 대한 설명 텍스트를 지정합니다. 전략 목록에서 표시됩니다.

description("RSI와 이동평균을 조합한 추세 추종 전략")

파라미터:

이름 타입 설명
desc str 전략 설명 텍스트

param()

사용자 정의 파라미터를 선언합니다. 선언한 기본값이 실행 시 script_params의 기준이 됩니다.

param("rsi_period", "RSI 계산 기간", 14)
param("oversold_level", "과매도 기준선", 30)
param("overbought_level", "과매수 기준선", 70)
param("strategy_name", "전략 표시 이름", "RSI Strategy")

파라미터:

이름 타입 설명
name str 파라미터 이름
description str 파라미터 설명
default int, float, str 기본값

파라미터 사용

선언한 파라미터는 script_params 딕셔너리를 통해 접근합니다.

param("period", "RSI 계산 기간", 14)
param("threshold", "매수 기준값", 30)

c = chart("1D")
rsi = ta.rsi(c.close, script_params["period"])

if rsi[0] < script_params["threshold"]:
    buy(tag="RSI 과매도")

파라미터 활용 이점

  • 파라미터 기본값을 코드에 명시적으로 남길 수 있습니다.
  • 동일한 전략 코드를 여러 실행 컨텍스트에서 재사용할 수 있습니다.
  • 동일한 전략 코드로 다양한 설정을 테스트할 수 있습니다.

파라미터 기본값 변경

파라미터 기본값을 바꾸려면 param()의 세 번째 인자를 직접 수정하세요. 운영 중인 전략의 파라미터 값은 거래 탭의 전략 편집 패널에서 조정할 수 있습니다.

예제: 파라미터화된 볼린저밴드 전략

version("1.0")
description("파라미터화된 볼린저밴드 전략")
param("bb_period", "볼린저밴드 기간", 20)
param("bb_std", "표준편차 배수", 2.0)
param("timeframe", "조회 타임프레임", "1D")

c = chart(script_params["timeframe"])
upper, mid, lower = ta.bbands(c.close, script_params["bb_period"], script_params["bb_std"])

c.line("Upper", upper, color="red")
c.line("Mid", mid, color="gray")
c.line("Lower", lower, color="green")

if c.close[0] < lower[0]:
    buy(tag="하단밴드 이탈 — 반등 기대")
elif c.close[0] > upper[0]:
    sell(tag="상단밴드 이탈 — 과열")
else:
    hold()

다음 단계

관련 문서