메타데이터¶
메타데이터 함수는 전략의 버전, 설명, 사용자 정의 파라미터를 선언합니다. 스크립트 상단에 배치하는 것이 관례입니다.
version()¶
전략 스크립트의 버전을 지정합니다.
파라미터:
| 이름 | 타입 | 설명 |
|---|---|---|
ver |
str |
버전 문자열 |
지원 버전
현재 지원 버전은 "1.0"입니다. 향후 DSL 문법이 변경될 경우 버전 기반으로 호환성을 관리합니다.
description()¶
전략에 대한 설명 텍스트를 지정합니다. 전략 목록에서 표시됩니다.
파라미터:
| 이름 | 타입 | 설명 |
|---|---|---|
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()