millionchart
English

درس 1: اولین اسکریپت شما

در پنج خط یک میانگین متحرک بنویسید، به آن ورودی بدهید، ظاهرش را همان‌طور که می‌خواهید دربیاورید و آن را روی نمودارتان بگذارید.

درس 1 از 18. در این درس اندیکاتوری می‌نویسید که میانگین متحرک قیمت بسته‌شدن را رسم می‌کند، و بعد سه بار آن را تغییر می‌دهید. هر برنامه کامل است: می‌توانید همان‌طور که هست در ویرایشگر اسکریپت کپی کنید.

یک خط روی نمودار#

Cuprel
// A moving average of the close.
indicator "My first average"
    edition = 1
    display = price

plot(tech.sma(close, 20))

از بالا بخوانید.

  • خطی که با // شروع شود یک توضیح (comment) است. موتور آن را نادیده می‌گیرد.
  • indicator "My first average" سرآیند است. متنی که بعد از indicator می‌آید نام اسکریپت است. خط‌های تورفتهٔ زیر آن تنظیمات سرآیندند: display = price روی نمودار قیمت رسم می‌کند؛ بدون آن، اسکریپت زیر نمودار یک پنل مخصوص خودش می‌گیرد که برای چیزهایی مثل اسیلاتور مناسب است.
  • edition = 1 می‌گوید اسکریپت از کدام نسخهٔ زبان (edition) استفاده می‌کند. آن را در هر سرآیند بگذارید؛ اسکریپتی که edition = 1 دارد، وقتی نسخهٔ بعدی زبان بیاید هم معنای خودش را حفظ می‌کند.
  • close قیمت بسته‌شدن کندل است. هر نام قیمت (open، high، low، close، volume) یک سری است: برای هر کندل یک مقدار. هرجا close بنویسید، منظورتان بسته‌شدن همان کندلی است که اسکریپت الان روی آن اجرا می‌شود.
  • tech.sma(close, 20) میانگین متحرک ساده (simple) 20 قیمت بسته‌شدن آخر است. tech گروه تابع‌های تکنیکال است و sma یکی از آن‌هاست. 19 کندل اول هنوز میانگینی ندارند، برای همین خط از کندل بیستم شروع می‌شود.
  • plot(...) یک عدد را روی هر کندل به شکل خط رسم می‌کند.

اسکریپت برای هر کندل یک بار اجرا می‌شود، از قدیمی‌ترین تا جدیدترین. عدد میانگین روی یک کندل فقط از کندل‌ها تا همان کندل استفاده می‌کند.

ورودی‌ای که می‌توانید عوضش کنید#

عدد ثابت 20 یک حدس است. آن را به یک تنظیم تبدیل کنید:

Cuprel
indicator "My first average"
    edition = 1
    display = price

input length: int = 20, name = "Length", min = 1
plot(tech.sma(close, length))

input length: int = 20 تنظیمی به نام length تعریف می‌کند. نوعش int (عدد صحیح) و مقدار اولش 20 است. name چیزی است که پنل تنظیمات نشان می‌دهد و min = 1 جلوی صفر گذاشتن آن را می‌گیرد. درون اسکریپت، length یک عدد ساده است. وقتی تنظیم را روی نمودار عوض کنید، اسکریپت با مقدار جدید دوباره اجرا می‌شود.

نام length شناسهٔ (id) تنظیم هم هست: نمودار ذخیره‌شده مقدار را با آن پیدا می‌کند، حتی اگر بعداً عنوان را عوض کنید. شناسه‌ها این را توضیح می‌دهد.

نام بدهید و رنگش کنید#

Cuprel
indicator "My first average"
    edition = 1
    display = price

input length: int = 20, name = "Length", min = 1
let average = tech.sma(close, length)
plot(average, name = "Average", color = color.orange, width = 2)

let average = ... به نتیجه یک نام می‌دهد. نامی که با let ساخته شود بعد از تعیین‌شدن هرگز عوض نمی‌شود؛ هر وقت می‌خواهید یک مقدار را بیش از یک بار بخوانید یا به آن معنایی بدهید، از آن استفاده کنید. name، color و width آرگومان‌هایی هستند که با نام نوشته می‌شوند. ترتیب آرگومان‌های نام‌دار مهم نیست.

دو میانگین، یک اسکریپت#

Cuprel
indicator "Two averages"
    edition = 1
    display = price

input fast_length: int = 10, name = "Fast length", min = 1
input slow_length: int = 30, name = "Slow length", min = 2
let fast = tech.ema(close, fast_length)
let slow = tech.ema(close, slow_length)
plot(fast, name = "Fast", color = color.green)
plot(slow, name = "Slow", color = color.red)

tech.ema میانگین متحرک نمایی است. یک اسکریپت می‌تواند هر تعداد ورودی و خط لازم داشته باشد. هر خط در تنظیمات رنگ و ضخامت مخصوص خودش را دارد.

روی نمودار اجرایش کنید#

  1. پنل اندیکاتورها را باز کنید، به زبانهٔ روی نمودار بروید و زیر اسکریپت‌های من اسکریپت جدید را بزنید.
  2. اسکریپت جدید با یک متن نمونهٔ کوچک شروع می‌شود. همهٔ آن را انتخاب کنید و با برنامهٔ خودتان جایگزین کنید (دو سرآیند در یک اسکریپت خطاست). ویرایشگر زیر اشتباه‌ها خط می‌کشد و آن‌ها را زیر مشکلات فهرست می‌کند.
  3. ذخیره و بعد افزودن به نمودار را بزنید. خط ظاهر می‌شود و تنظیمات از نام اندیکاتور باز می‌شود.
  4. تنظیمات اندیکاتور را باز کنید و یک مقدار را عوض کنید. نمودار خط را با مقدار جدید دوباره رسم می‌کند.

امتحان کنید#

  • در برنامهٔ اول، tech.sma را با tech.ema عوض کنید. خط قیمت را نزدیک‌تر دنبال می‌کند، چون میانگین نمایی به کندل‌های تازه‌تر وزن بیشتری می‌دهد.
  • در برنامهٔ دوم، min = 1 را به min = 5 تغییر دهید، ذخیره کنید و در تنظیمات طول را روی 2 بگذارید: فیلد پایین‌تر از 5 نمی‌رود.
  • در «نام بدهید و رنگش کنید»، color.orange را به color.blue و width = 2 را به width = 4 تغییر دهید.
  • در «دو میانگین، یک اسکریپت»، در هر دو میانگین به جای close مقدار hl2 (وسط هر کندل) را بخوانید: tech.ema(hl2, fast_length).
  • خط display = price را از سرآیند پاک کنید و اسکریپت را دوباره اضافه کنید: به یک پنل جدا زیر نمودار می‌رود.

نقطهٔ بررسی#

  • می‌توانید سرآیندی با edition = 1 و display = price بنویسید.
  • می‌توانید یک میانگین داخلی را با plot رسم کنید و به آن نام، رنگ و پهنا بدهید.
  • می‌توانید یک عدد ثابت را به یک input تبدیل کنید.
  • می‌توانید اسکریپت را ذخیره کنید و از اسکریپت‌های من روی نمودار بگذارید.

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

بعدی: درس 2: تنظیماتی که دیگران می‌توانند تغییر دهند