درس 3: خطها، رنگها و سطحها
اسکریپت را خوانا کنید: رنگ با نام و با کد، رنگی که با هر کندل عوض میشود، سبکهای رسم، سطحها، ناحیههای سایهدار و پسزمینه.
درس 3 از 18. اسکریپتی که عددهای درست را رسم میکند فقط نیمی از کار را کرده است: خطها باید با یک نگاه هم خوانا باشند. این درس راههایی را نشان میدهد که اسکریپت با آنها به چیزی که رسم میکند رنگ و شکل میدهد.
رنگها#
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 درصد شفافتر میکند. رنگهای کمرنگشده برای ناحیهها و پسزمینهها مناسباند، چون نباید کندلها را بپوشانند.
رنگی که با هر کندل عوض میشود#
رنگ یک خط رسمشده میتواند روی هر کندل مقدار متفاوتی باشد. اینجا خط تا وقتی میانگین بالا میرود سبز است و وقتی پایین میآید قرمز:
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 میگوید یک خط رسمشده چطور کشیده شود. هیستوگرام برای مقداری که دور صفر بالا و پایین میرود مناسب است:
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؛ خطها و ترسیمها نشان میدهد هر کدام چه میکند.
سطحها و یک ناحیهٔ سایهدار#
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, ...) فضای بین آنها را پر کند.
پسزمینه#
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پسزمینه را رنگ کنید.
ببینید هم: خطها و ترسیمها، تنظیماتی که دیگران میتوانند تغییر دهند.