millionchart
English

شناسه‌ها: چه نام‌هایی ذخیره می‌شوند

ورودی یا خط چطور برای نمودار ذخیره‌شده نام می‌گیرد. نام همان شناسه است، عنوان متن آزاد است، و با was هر مورد تغییر نام‌یافته مقدار ذخیره‌اش را نگه می‌دارد.

وقتی نمودار ذخیره می‌شود، مقدار هر تنظیم و ظاهر هر خط را کنار یک نام نگه می‌دارد: نامِ همان تنظیم یا همان خط. این نام شناسه (id) است. دفعهٔ بعد که اسکریپت اجرا می‌شود، نمودار هر مقدار ذخیره‌شده را با شناسه‌اش پیدا می‌کند. شناسه‌ای که به‌طور اتفاقی عوض شود، بی‌صدا تنظیمات عضو را از دست می‌دهد؛ برای همین قاعده‌های شناسه سخت‌گیرانه و ساده‌اند.

نام همان شناسه است#

شناسهٔ یک ورودی همان نامی است که با آن تعریفش کرده‌اید. عنوان، یعنی متنی که با name = "..." می‌نویسید، فقط چیزی است که پنل تنظیمات نشان می‌دهد و می‌تواند هر متنی به هر زبانی باشد.

Cuprel
indicator "Ids from names"
    edition = 1
    display = price

input length: int = 20, name = "Length of the average"
input src: source = close, name = "Price used"
let average = plot(tech.sma(src, length), name = "Average")
plot(close, name = "Close")

اینجا شناسهٔ ورودی‌ها length و src است؛ خطی که به average وصل شده شناسهٔ average دارد، و خطی که عنوانش "Close" است شناسهٔ close دارد که از عنوانش ساخته شده. اگر بعداً name = "Length of the average" را به متنی به زبان دیگر عوض کنید، مقدار ذخیره‌شدهٔ length همچنان پیدا می‌شود.

یک خط چطور شناسه می‌گیرد#

  1. اگر با let نامی به آن بدهید، همان نام شناسه است: let average = plot(...).
  2. وگرنه key = "name" آن را تعیین می‌کند: plot(x, key = "upper_band"). (برای ورودی، این گزینه id است.)
  3. وگرنه شناسه از عنوان ساخته می‌شود: "Slow average" می‌شود slow_average.
  4. اگر عنوان هیچ حرف لاتینی نداشته باشد (عنوان فارسی، عربی یا چینی)، چیزی از آن نمی‌شود ساخت و شناسه از جای خط گرفته می‌شود. این تا وقتی کار می‌کند که بالای آن خطی اضافه نکنید؛ چون با اضافه شدنِ یک خط، شناسهٔ همهٔ خط‌های پایین‌تر جابه‌جا می‌شود. بررسی‌کننده اخطار می‌دهد:
Cuprel · هشدار W-ID-ANON-NONASCII
indicator "A title in Persian"
    edition = 1

plot(tech.sma(close, 20), name = "میانگین")

به چنین خطی یک نام یا یک key بدهید؛ آن‌وقت عنوانش می‌تواند به هر زبانی بماند:

Cuprel
indicator "A title in Persian, with an id"
    edition = 1

plot(tech.sma(close, 20), key = "average", name = "میانگین")

همین قاعده‌ها برای level، shade، mark.shape و بقیهٔ تابع‌های خروجی، و برای alert.when (شناسه‌اش از عنوانش ساخته می‌شود) هم برقرار است.

هر شناسه یک بار استفاده می‌شود#

اگر دو مورد شناسهٔ یکسان داشته باشند، یک مقدار ذخیره‌شده را با هم شریک می‌شوند؛ برای همین مورد دوم رد می‌شود:

Cuprel · خطا E3120
indicator "The same id twice"
    edition = 1

input length: int = 20, name = "Length"
input length: int = 30, name = "Other length"
plot(length)

اگر عنوان دو خط شناسهٔ یکسانی بدهد، اخطار می‌گیرید (W-ID-COLLISION) و به دومی یک عدد اضافه می‌شود.

تغییر نام بدون از دست رفتن تنظیمات#

می‌توانید نام یک ورودی یا یک خط را عوض کنید. با was بگویید قبلاً چه نامی داشت؛ مقداری که با نام قدیمی ذخیره شده، مقدار مورد جدید خوانده می‌شود:

Cuprel
indicator "Renamed input"
    edition = 1
    display = price

input period: int = 20, name = "Period", was = "length"
plot(tech.sma(close, period), name = "Average")

was می‌تواند چند شناسهٔ قبلی را فهرست کند: was = "length old_length". مقداری که با شناسهٔ جدید ذخیره شده باشد همیشه برنده است.

عنوان آزاد است#

عنوان متنی برای آدم‌هاست. می‌توانید آن را عوض کنید، ترجمه کنید یا حذف کنید، و می‌تواند تکراری باشد. موردی که عنوان ندارد یک برچسب عمومی مثل Plot 3 می‌گیرد.

گزینهٔ ناشناخته چه می‌شود#

id و was دو تا از گزینه‌هایی‌اند که یک ورودی می‌پذیرد. هر نام گزینهٔ دیگری که ورودی نشناسد خطاست (E3130) و نادیده گرفته نمی‌شود؛ پس یک گزینهٔ غلط‌نوشته هرگز نمی‌تواند بی‌صدا هیچ کاری نکند. فهرست گزینه‌ها در ورودی‌ها آمده است.

نگاه کنید به: ورودی‌ها، خط‌ها و ترسیم‌ها، اشتباه‌های رایج.