수식
수식을 사용하면 차트 지표로부터 사용자 정의 계산 시리즈를 만들 수 있습니다. 산술 연산자와 내장 함수를 사용하여 지표를 결합하고, 변환하고, 분석하세요.
수식 추가하기
- 편집 모드에서 차트를 엽니다
- + 추가 버튼을 클릭한 다음 수식 추가를 선택합니다
- 레이블을 입력합니다 (예: "가격의 7일 SMA")
- 표현식을 입력합니다 (예:
sma(m1, 7)) - 수식 추가를 클릭합니다
수식 결과는 고유한 색상과 스타일을 가진 새로운 시리즈로 차트에 표시됩니다.
구문
지표 및 수식 참조
m1,m2, ... 는 위치에 따라 차트 지표를 참조합니다 (첫 번째 지표 = m1)f1,f2, ... 는 위치에 따라 이전 수식을 참조합니다 (첫 번째 수식 = f1)
수식은 순서대로 평가되므로 f2는 f1을 참조할 수 있지만 그 반대는 불가능합니다.
산술 연산자
일반적인 우선순위를 따르는 표준 연산자입니다 (*와 /가 +와 -보다 먼저 계산됨):
m1 + m2 # Addition
m1 - m2 # Subtraction
m1 * m2 # Multiplication
m1 / m2 # Division (returns null if divisor is 0)
(m1 + m2) * m3 # Parentheses for grouping
숫자 및 수평선
상수 값을 표현식에 사용할 수 있습니다. 단독으로 사용된 숫자는 해당 값에 수평선을 그립니다:
42000 # Horizontal line at 42,000
m1 * 100 # Scale a metric
m1 / 1000000 # Convert to millions
0.5 # Horizontal line at 0.5 (useful as threshold)
함수
이동 평균 및 롤링 통계
| 함수 | 구문 | 설명 |
|---|---|---|
sma | sma(series, period) | 단순 이동 평균 — 직전 N개 데이터 포인트에 대한 산술 평균 |
ema | ema(series, period) | 지수 이동 평균 — EMA_t = value_t × k + EMA_(t-1) × (1 - k), 여기서 k = 2 / (period + 1). 최근 값에 더 큰 가중치를 부여합니다 |
median | median(series, period) | N개 기간에 대한 롤링 중앙값 (중간 값) |
sum | sum(series, period) | 직전 N개 기간에 대한 롤링 합계 |
std | std(series, period) | N개 기간에 대한 롤링 표준편차 |
누적 함수
데이터 시작점부터 각 지점까지 모든 데이터를 사용하는 확장 윈도우 함수입니다:
| 함수 | 구문 | 설명 |
|---|---|---|
cumsum | cumsum(series) | 데이터 시작점부터의 확장 누적 합계 |
cummean | cummean(series) | 데이터 시작점부터의 확장 누적 평균 |
cummedian | cummedian(series) | 데이터 시작점부터의 확장 누적 중앙값 |
cumstd | cumstd(series) | 데이터 시작점부터의 확장 누적 표준편차 |
cummax | cummax(series) | 각 지점까지의 누적 최고값 (역대 최대) |
cummin | cummin(series) | 각 지점까지의 누적 최저값 (역대 최소) |
변화 함수
| 함수 | 구문 | 설명 |
|---|---|---|
percent_change | percent_change(series, period) | N개 기간에 대한 백분율 변화. 값은 소수로 반환됩니다 (예: 0.20 = +20% 증가) |
diff | diff(series, period) | N개 기간에 대한 절대값 변화: value_t - value_(t-N) |
수학 함수
| 함수 | 구문 | 설명 |
|---|---|---|
abs | abs(series) | 모든 데이터 포인트의 절대값 |
pow | pow(series, n) | 모든 데이터 포인트를 n 제곱 |
log | log(series) | 밑이 10인 로그 (0 이하의 값에 대해서는 null 반환) |
round | round(series, digits) | 값을 소수점 N자리로 반올림 |
max | max(a, b, ...) | 점별 최대값 — 각 데이터 포인트에서 모든 인수 중 가장 높은 값을 반환합니다. 인수는 시리즈 또는 상수일 수 있습니다 (예: max(m1, m2, 0)) |
min | min(a, b, ...) | 점별 최소값 — 각 데이터 포인트에서 모든 인수 중 가장 낮은 값을 반환합니다. 인수는 시리즈 또는 상수일 수 있습니다 (예: min(m1, m2, 100)) |
기술적 지표
| 함수 | 구문 | 설명 |
|---|---|---|
rsi | rsi(series, period) | N개 기간에 걸쳐 Wilder의 평활화 방법을 사용한 상대강도지수 (0–100) |
corr | corr(series1, series2, period) | 직전 N개 기간 윈도우에 대한 두 시리즈 간 피어슨 상관계수. -1 (역상관)에서 +1 (완전 상관) 사이의 값을 반환합니다 |
drawdown | drawdown(series) | 역대 최고가 대비 상대적 낙폭. 음수 소수를 반환합니다 (예: -0.30 = ATH 대비 30% 하락) |
위험 및 수익
| 함수 | 구문 | 설명 |
|---|---|---|
mean_return | mean_return(series, period) | N개 기간에 대한 연율화된 롤링 평균 수익 (일간 로그 수익률 × 365 기준) |
realized_vol | realized_vol(series, period) | N개 기간에 대한 연율화된 실현 변동성 (일간 로그 수익률 표준편차 × √365) |
sharpe_ratio_arithmetic | sharpe_ratio_arithmetic(series, period) | N개 기간에 대한 수익률의 산술 평균을 사용한 연율화된 샤프 비율 |
sharpe_ratio_geometric | sharpe_ratio_geometric(series, period) | N개 기간에 대한 수익률의 기하 평균을 사용한 연율화된 샤프 비율 |
시리즈 조작
| 함수 | 구문 | 설명 |
|---|---|---|
shift | shift(series, period) | 시리즈를 N개 기간만큼 오른쪽으로 이동합니다. 양수 period는 현재 위치에 과거 값을 표시합니다 (즉, 각 데이터 포인트가 N개 기간 이전의 값을 표시). 음수 period는 왼쪽으로 이동합니다 (미래 값 표시) |
if | if(a, "op", b, then, else) | 조건문: 각 데이터 포인트에서 비교 a op b를 평가하여 참이면 then, 거짓이면 else를 반환합니다. op 인수는 따옴표로 묶인 문자열로 전달되는 비교 연산자입니다: "=", "!=", ">", ">=", "<", "<=" |
예시
이동 평균
sma(m1, 7) # 7-day simple moving average of first metric
sma(m1, 30) # 30-day SMA
ema(m1, 21) # 21-day exponential moving average
median(m1, 14) # 14-day rolling median
SMA 교차 감지
f1: sma(m1, 7) # Short-term SMA
f2: sma(m1, 30) # Long-term SMA
f3: f1 - f2 # Difference (positive = short above long)
비율 분석
m1 / m2 # Ratio between two metrics
역대 최고가 대비 낙폭
drawdown(m1) # Drawdown as negative decimal (-0.30 = 30% below ATH)
볼린저 밴드
f1: sma(m1, 20) # Middle band
f2: f1 + 2 * std(m1, 20) # Upper band (+2 standard deviations)
f3: f1 - 2 * std(m1, 20) # Lower band (-2 standard deviations)
기간 대비 변화
percent_change(m1, 7) # 7-day percentage change (decimal)
diff(m1, 30) # 30-day absolute change
RSI
rsi(m1, 14) # 14-period RSI
30 # Oversold threshold line
70 # Overbought threshold line
값 제한
max(m1, 0) # Floor at zero (remove negative values)
min(m1, 100) # Cap at 100
max(m1, m2) # Higher of two metrics at each point
상관관계
corr(m1, m2, 30) # 30-day rolling correlation between two metrics
변동성 및 위험
realized_vol(m1, 30) # 30-day annualized volatility
sharpe_ratio_arithmetic(m1, 90) # 90-day annualized Sharpe ratio
스타일링
수식을 추가한 후, (편집 모드에서) 범례에서 해당 수식을 클릭하여 다음을 설정합니다:
- 차트 스타일: 선, 영역 또는 막대
- 색상: 프리셋 또는 사용자 지정에서 선택
- Y축: 임의의 축에 할당
- 선 두께 및 채우기 불투명도
- 표시 여부: 표시/숨김 토글
지속성
수식은 차트 구성과 함께 저장됩니다. 차트를 "내 차트"에 저장하면 모든 수식이 보존되고 차트를 다시 불러올 때 복원됩니다.
내보내기
수식 값은 CSV 및 JSON 내보내기에 포함됩니다. 각 수식 열은 수식 레이블을 헤더로 사용합니다.