پرش به مطلب اصلی

فرمول‌ها

فرمول‌ها به شما امکان می‌دهند سری‌های محاسبه‌شدهٔ سفارشی از متریک‌های نمودار بسازید. متریک‌ها را با استفاده از عملگرهای حسابی و توابع داخلی ترکیب، تبدیل و تحلیل کنید.

افزودن یک فرمول

  1. یک نمودار را در حالت ویرایش (Edit mode) باز کنید
  2. روی دکمهٔ + Add کلیک کنید، سپس Add Formula را انتخاب کنید
  3. یک برچسب وارد کنید (برای مثال، «SMA هفت‌روزهٔ قیمت»)
  4. یک عبارت وارد کنید (برای مثال، sma(m1, 7))
  5. روی Add Formula کلیک کنید

نتیجهٔ فرمول به‌صورت یک سری جدید با رنگ و سبک اختصاصی خود روی نمودار ظاهر می‌شود.

نحو (Syntax)

ارجاع به متریک‌ها و فرمول‌ها

  • 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)

توابع

میانگین‌های متحرک و آمارهای غلتان

تابعنحوتوضیح
smasma(series, period)میانگین متحرک ساده — میانگین حسابی روی N نقطهٔ دادهٔ قبلی
emaema(series, period)میانگین متحرک نمایی — EMA_t = value_t × k + EMA_(t-1) × (1 - k)، که در آن k = 2 / (period + 1). وزن بیشتری به مقادیر اخیر می‌دهد
medianmedian(series, period)میانهٔ غلتان (مقدار میانی) روی N دوره
sumsum(series, period)جمع غلتان روی N دورهٔ قبلی
stdstd(series, period)انحراف معیار غلتان روی N دوره

توابع تجمعی

توابع پنجره‌گستر که از همهٔ داده‌ها از ابتدا تا هر نقطه استفاده می‌کنند:

تابعنحوتوضیح
cumsumcumsum(series)جمع تجمعی پنجره‌گستر از ابتدای داده‌ها
cummeancummean(series)میانگین تجمعی پنجره‌گستر از ابتدای داده‌ها
cummediancummedian(series)میانهٔ تجمعی پنجره‌گستر از ابتدای داده‌ها
cumstdcumstd(series)انحراف معیار تجمعی پنجره‌گستر از ابتدای داده‌ها
cummaxcummax(series)بیشینهٔ تجمعی همهٔ زمان‌ها تا هر نقطه
cummincummin(series)کمینهٔ تجمعی همهٔ زمان‌ها تا هر نقطه

توابع تغییر

تابعنحوتوضیح
percent_changepercent_change(series, period)تغییر درصدی روی N دوره. مقادیر به‌صورت اعشاری بازگردانده می‌شوند (برای مثال، 0.20 معادل رشد ‎+20%‎)
diffdiff(series, period)تغییر مقدار مطلق روی N دوره: value_t - value_(t-N)

توابع ریاضی

تابعنحوتوضیح
absabs(series)قدر مطلق همهٔ نقاط داده
powpow(series, n)رساندن همهٔ نقاط داده به توان n
loglog(series)لگاریتم پایهٔ 10 (برای مقادیر نامثبت null بازمی‌گرداند)
roundround(series, digits)گرد کردن مقادیر به N رقم اعشار
maxmax(a, b, ...)بیشینهٔ نقطه‌به‌نقطه — در هر نقطهٔ داده بالاترین مقدار را میان همهٔ آرگومان‌ها بازمی‌گرداند. آرگومان‌ها می‌توانند سری یا ثابت باشند، برای مثال max(m1, m2, 0)
minmin(a, b, ...)کمینهٔ نقطه‌به‌نقطه — در هر نقطهٔ داده پایین‌ترین مقدار را میان همهٔ آرگومان‌ها بازمی‌گرداند. آرگومان‌ها می‌توانند سری یا ثابت باشند، برای مثال min(m1, m2, 100)

اندیکاتورهای تکنیکال

تابعنحوتوضیح
rsirsi(series, period)شاخص قدرت نسبی (0–100) با استفاده از روش هموارسازی وایلدر روی N دوره
corrcorr(series1, series2, period)ضریب همبستگی پیرسون میان دو سری روی یک پنجرهٔ قبلی N دوره‌ای. مقادیری از ‎-1‎ (معکوس) تا ‎+1‎ (همبستگی کامل) بازمی‌گرداند
drawdowndrawdown(series)افت نسبی از بالاترین قیمت همهٔ زمان‌ها. اعشار منفی بازمی‌گرداند (برای مثال، ‎-0.30‎ یعنی 30% پایین‌تر از ATH)

ریسک و بازده

تابعنحوتوضیح
mean_returnmean_return(series, period)میانگین بازدهٔ غلتانِ سالانه‌شده روی N دوره (بر اساس بازده‌های لگاریتمی روزانه × 365)
realized_volrealized_vol(series, period)نوسان محقق‌شدهٔ سالانه‌شده روی N دوره (انحراف معیار بازده لگاریتمی روزانه × ‎√365‎)
sharpe_ratio_arithmeticsharpe_ratio_arithmetic(series, period)نسبت شارپ سالانه‌شده با استفاده از میانگین حسابی بازده‌ها روی N دوره
sharpe_ratio_geometricsharpe_ratio_geometric(series, period)نسبت شارپ سالانه‌شده با استفاده از میانگین هندسی بازده‌ها روی N دوره

دستکاری سری

تابعنحوتوضیح
shiftshift(series, period)جابه‌جایی سری به‌اندازهٔ N دوره به راست. دورهٔ مثبت مقادیر گذشته را در موقعیت کنونی نشان می‌دهد (یعنی هر نقطهٔ داده مقدار N دوره پیش‌تر را نمایش می‌دهد). دورهٔ منفی به چپ جابه‌جا می‌کند (مقادیر آینده را نشان می‌دهد)
ifif(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

سبک‌دهی

پس از افزودن یک فرمول، در حالت ویرایش روی آن در راهنمای نمودار (legend) کلیک کنید تا موارد زیر را پیکربندی کنید:

  • سبک نمودار: خطی، ناحیه‌ای یا میله‌ای
  • رنگ: انتخاب از پیش‌تنظیم‌ها یا سفارشی
  • محور Y: تخصیص به هر محور
  • ضخامت خط و شفافیت پُرشدگی
  • مرئی‌بودن: کلید نمایش/پنهان‌سازی

پایداری

فرمول‌ها همراه با پیکربندی نمودار ذخیره می‌شوند. هنگامی که نموداری را در «My Charts» ذخیره می‌کنید، همهٔ فرمول‌ها حفظ شده و هنگام بارگذاری مجدد نمودار بازیابی می‌شوند.

برون‌بری (Export)

مقادیر فرمول در برون‌بری‌های CSV و JSON گنجانده می‌شوند. هر ستون فرمول از برچسب فرمول به‌عنوان سرستون خود استفاده می‌کند.