جدولها
جدولی از عددها را در یک گوشهٔ نمودار رسم کنید. چطور آن را یک بار روی آخرین کندل بسازید، خانههایش را پر و رنگ کنید، و محدودیتهای اندازه.
جدول شبکهای از خانههای متنی است که به یک گوشهٔ نمودار چسبیده. راه معمول نمایش یک داشبورد همین است: چند عدد، وضعیت یک سیگنال، نتیجهٔ یک محاسبه.
آن را روی آخرین کندل بسازید#
جدول با کندلها جابهجا نمیشود، پس یک بار و روی جدیدترین کندل ساخته میشود. table.new(position, columns, rows) شبکه را میسازد و table.cell(table, column, row, text) یک خانه را مینویسد. ستونها و ردیفها از 0 شمرده میشوند.
indicator "Dashboard"
edition = 1
display = price
input length: int = 20, name = "Length", min = 2
let average = tech.sma(close, length)
let strength = tech.rsi(close, 14)
if bar.is_last
let t = table.new(
top_right,
2,
3,
background = color.fade(color.black, 70),
border_color = color.gray,
border_width = 1,
)
let names = ["Close", "Average", "RSI"]
let values = [close, average, strength]
for i in 0 to 2
table.cell(t, 0, i, names.at(i), text_color = color.silver, h_align = left)
table.cell(t, 1, i, f"{values.at(i):.2f?'n/a'}", text_color = color.white)
plot(average, name = "Average")حلقه به ازای هر نام یک ردیف مینویسد. در ستون دوم {...:.2f?'n/a'} عدد را با دو رقم اعشار مینویسد، یا تا وقتی مقداری وجود ندارد n/a را. قالبها در قالببندی متن و عدد آمدهاند.
position یکی از top_left، top_center، top_right، middle_left، middle_center، middle_right، bottom_left، bottom_center یا bottom_right است.
رنگ و اندازه#
هر خانه text_color، background، text_size (auto، tiny، small، normal، large، huge)، h_align (left، center، right) و v_align (top، bottom) میگیرد. رنگ میتواند به یک مقدار بستگی داشته باشد:
indicator "Signal cell"
edition = 1
display = price
if bar.is_last
let t = table.new(bottom_left, 1, 1)
table.cell(
t,
0,
0,
if close > open then "Up bar" else "Down bar",
text_color = color.white,
background = if close > open then color.green else color.red,
text_size = large,
)
plot(close)سقفها#
- یک جدول حداکثر 100 ستون، 500 ردیف و 10,000 خانه دارد. همهٔ جدولهای زندهٔ یک اسکریپت روی هم حداکثر 20,000 خانه نگه میدارند.
- نمودار جدیدترین 40 جدول یک اسکریپت را نگه میدارد. اگر اسکریپت روی هر کندل یک جدول تازه بسازد، جدولهای قدیمیتر کنار گذاشته میشوند و موتور میگوید چند تا؛ جدول را یک بار و روی
bar.is_lastبسازید، یا پیش از ساختن جدول بعدی قبلی را حذف کنید. - خانهای بیرون از جدول اسکریپت را با پیامی متوقف میکند که نام خانه و خط را میگوید.
- متن داخل خانه در 2,000 نویسه بریده میشود.
indicator "A cell outside the table"
edition = 1
display = price
if bar.is_last
let t = table.new(top_right, 2, 2)
table.cell(t, 5, 0, "x")
plot(close)نگاه کنید به: خطها و ترسیمها، قالببندی متن و عدد، سقفها و بودجهٔ اجرا.