millionchart
English

درس 3: خط‌ها، رنگ‌ها و سطح‌ها

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

درس 3 از 18. اسکریپتی که عددهای درست را رسم می‌کند فقط نیمی از کار را کرده است: خط‌ها باید با یک نگاه هم خوانا باشند. این درس راه‌هایی را نشان می‌دهد که اسکریپت با آن‌ها به چیزی که رسم می‌کند رنگ و شکل می‌دهد.

رنگ‌ها#

Cuprel
indicator "Three colours"
    edition = 1
    display = price

plot(tech.sma(close, 10), name = "Named colour", color = color.orange)
plot(tech.sma(close, 30), name = "Colour code", color = #2962ff)
plot(tech.sma(close, 60), name = "Faded", color = color.fade(color.purple, 50))
  • color.orange یکی از رنگ‌های نام‌دار است: color.red، color.green، color.blue، color.orange، color.purple، color.gray، color.teal، color.yellow، color.white، color.black و چند رنگ دیگر.
  • #2962ff رنگی است که به شکل کد نوشته شده (قرمز، سبز و آبی در مبنای شانزده)، همان‌طور که انتخابگرهای رنگ نشانش می‌دهند. color.rgb(41, 98, 255) همین رنگ است که با سه عدد از 0 تا 255 نوشته شده.
  • color.fade(c, 50) رنگ را 50 درصد شفاف‌تر می‌کند. رنگ‌های کم‌رنگ‌شده برای ناحیه‌ها و پس‌زمینه‌ها مناسب‌اند، چون نباید کندل‌ها را بپوشانند.

رنگی که با هر کندل عوض می‌شود#

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

Cuprel
indicator "Rising or falling"
    edition = 1
    display = price

input length: int = 20, name = "Length", min = 2
let average = tech.ema(close, length)
let rising = average > average[1]
plot(average, name = "Average", color = if rising then color.green else color.red, width = 2)

average[1] مقدار average در یک کندل قبل است، پس average > average[1] تا وقتی میانگین بالا می‌رود درست است. width = 2 خط ضخیم‌تری می‌کشد.

سبک‌ها#

style می‌گوید یک خط رسم‌شده چطور کشیده شود. هیستوگرام برای مقداری که دور صفر بالا و پایین می‌رود مناسب است:

Cuprel
indicator "Momentum"
    edition = 1
    display = pane

input length: int = 10, name = "Length", min = 1, max = 200
let change = close - close[length]
plot(
    change,
    name = "Change",
    style = histogram,
    color = if change >= 0 then color.green else color.red,
)
level(0, name = "Zero", color = color.gray)

display = pane در سرآیند، اسکریپت را در پنلی مخصوص خودش زیر نمودار می‌گذارد، که برای مقداری که قیمت نیست مناسب است. close[length] به اندازهٔ همان عددی که تنظیم می‌گوید به کندل‌های قبل برمی‌گردد، برای همین ورودی یک max دارد: بدون آن، موتور اخطار می‌دهد که نمی‌تواند بفهمد اسکریپت تا چند کندل عقب را می‌خواند. سبک‌ها عبارت‌اند از line (پیش‌فرض)، line_break، step، step_break، step_diamond، histogram، columns، area، area_break، circles و cross؛ خط‌ها و ترسیم‌ها نشان می‌دهد هر کدام چه می‌کند.

سطح‌ها و یک ناحیهٔ سایه‌دار#

Cuprel
indicator "RSI with a zone"
    edition = 1
    display = pane

input length: int = 14, name = "Length", min = 2
let rsi = tech.rsi(close, length)
let top = level(70, name = "Overbought", color = color.red, style = dashed)
let bottom = level(30, name = "Oversold", color = color.green, style = dashed)
shade(top, bottom, color = color.fade(color.purple, 90), name = "Middle zone")
plot(rsi, name = "RSI", color = color.purple)

level(70, ...) یک خط افقی در یک مقدار ثابت می‌کشد. نتیجهٔ دو سطح (یا دو خط رسم‌شده) را در نام‌هایی نگه دارید تا shade(top, bottom, ...) فضای بین آن‌ها را پر کند.

پس‌زمینه#

Cuprel
indicator "Above or below the average"
    edition = 1
    display = price

input length: int = 50, name = "Length", min = 2
let average = tech.sma(close, length)
let tint = if close > average then color.fade(color.green, 88) else color.fade(color.red, 88)
chart.background(if is_na(average) then na else tint, name = "Side")
plot(average, name = "Average", color = color.gray)

chart.background(...) پس‌زمینهٔ هر کندل را رنگ می‌کند. روی کندل‌های اول، میانگین هنوز مقداری ندارد (is_na(average) درست است)، برای همین پس‌زمینه آنجا خالی می‌ماند.

امتحان کنید#

  • در برنامهٔ «Three colours»، #2962ff را با color.rgb(255, 152, 0) عوض کنید تا خط نارنجی شود.
  • در برنامهٔ «Rising or falling»، میانگینِ صاف را خاکستری کنید: color = if average > average[1] then color.green else if average < average[1] then color.red else color.gray.
  • در برنامهٔ «Momentum»، style = histogram را به style = columns و بعد به style = area تغییر دهید.
  • در برنامهٔ «RSI with a zone»، کم‌رنگیِ ناحیه را از 90 به 70 تغییر دهید: ناحیه پررنگ‌تر می‌شود.
  • در «پس‌زمینه»، هر دو عدد 88 را به 95 تغییر دهید: پس‌زمینه روشن‌تر می‌شود و کندل‌ها بیشتر دیده می‌شوند.

نقطهٔ بررسی#

  • می‌توانید رنگ را با نام، با کد و کم‌رنگ‌شده با color.fade بنویسید.
  • می‌توانید با if ... then ... else برای هر کندل رنگی انتخاب کنید.
  • می‌توانید با style خط را به شکل خط، هیستوگرام یا ستون رسم کنید.
  • می‌توانید با level سطح بکشید، با shade میان آن‌ها سایه بزنید و با chart.background پس‌زمینه را رنگ کنید.

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

بعدی: درس 4: سیگنال‌ها، فلش‌ها و ناحیه‌ها