فرمولها
فرمولها به شما امکان میدهند سریهای محاسبهشدهٔ سفارشی از متریکهای نمودار بسازید. متریکها را با استفاده از عملگرهای حسابی و توابع داخلی ترکیب، تبدیل و تحلیل کنید.
افزودن یک فرمول
- یک نمودار را در حالت ویرایش (Edit mode) باز کنید
- روی دکمهٔ + Add کلیک کنید، سپس Add Formula را انتخاب کنید
- یک برچسب وارد کنید (برای مثال، «SMA هفتروزهٔ قیمت»)
- یک عبارت وارد کنید (برای مثال،
sma(m1, 7)) - روی 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)
توابع
میانگینهای متحرک و آمارهای غلتان
| تابع | نحو | توضیح |
|---|---|---|
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 (برای مقادیر نامثبت 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) | شاخص قدرت نسبی (0–100) با استفاده از روش هموارسازی وایلدر روی N دوره |
corr | corr(series1, series2, period) | ضریب همبستگی پیرسون میان دو سری روی یک پنجرهٔ قبلی N دورهای. مقادیری از -1 (معکوس) تا +1 (همبستگی کامل) بازمیگرداند |
drawdown | drawdown(series) | افت نسبی از بالاترین قیمت همهٔ زمانها. اعشار منفی بازمیگرداند (برای مثال، -0.30 یعنی 30% پایینتر از ATH) |
ریسک و بازده
| تابع | نحو | توضیح |
|---|---|---|
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 دوره به راست. دورهٔ مثبت مقادیر گذشته را در موقعیت کنونی نشان میدهد (یعنی هر نقطهٔ داده مقدار N دوره پیشتر را نمایش میدهد). دورهٔ منفی به چپ جابهجا میکند (مقادیر آینده را نشان میدهد) |
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
سبکدهی
پس از افزودن یک فرمول، در حالت ویرایش روی آن در راهنمای نمودار (legend) کلیک کنید تا موارد زیر را پیکربندی کنید:
- سبک نمودار: خطی، ناحیهای یا میلهای
- رنگ: انتخاب از پیشتنظیمها یا سفارشی
- محور Y: تخصیص به هر محور
- ضخامت خط و شفافیت پُرشدگی
- مرئیبودن: کلید نمایش/پنهانسازی
پایداری
فرمولها همراه با پیکربندی نمودار ذخیره میشوند. هنگامی که نموداری را در «My Charts» ذخیره میکنید، همهٔ فرمولها حفظ شده و هنگام بارگذاری مجدد نمودار بازیابی میشوند.
برونبری (Export)
مقادیر فرمول در برونبریهای CSV و JSON گنجانده میشوند. هر ستون فرمول از برچسب فرمول بهعنوان سرستون خود استفاده میکند.