پیامهای موتور
پیامهایی که موتور هنگام اجرای اسکریپت یا از سقفهای پلتفرم میدهد. یک جدول، با معنای هر پیام و اینکه چه باید کرد.
تشخیصها چیزهایی را پوشش میدهد که ویرایشگر با خواندن اسکریپت شما پیدا میکند. این صفحه چیزهایی را پوشش میدهد که موتور هنگام اجرای اسکریپت گزارش میکند، و سقفهایی را که پلتفرم میگذارد. عددها در سقفها و بودجهٔ اجرا آمدهاند.
دو واژه توضیح لازم دارند. sandbox (محیط ایزولهٔ اجرا) پردازهٔ محافظشدهای است که پلتفرم اسکریپت را برای یک هشدار در آن اجرا میکند، با زمان و حافظهٔ ثابت. ساعت نگهبان (watchdog) ساعتی است که اجرایی را که بیش از حد طول بکشد متوقف میکند. کتابخانه در اینجا یک ماژول است، همان چیزی که ایمپورت وارد میکند (نگاه کنید به ماژولها و کتابخانهها).
پیام زمان اجرا کندلی را که در آن رخ داده و خط اسکریپت را نام میبرد. اگر اسکریپتی روی تاریخچه درست اجرا شد و روی یک کندل جدید متوقف شد، تفاوت در دادههای همان کندل است: مقدارها را روی کندلی که پیام نام میبرد ببینید.
جدول جملههای خود موتور را، به انگلیسی و همانطور که ویرایشگر نشان میدهد، فهرست میکند. بخشی که عوض میشود داخل آکولاد است ({n})؛ بخشی که داخل کروشه است فقط وقتی اضافه میشود که به آن مورد مربوط باشد. بعضی کدها بیش از یک جمله دارند، برای علتهای متفاوت: هرکدام ردیف خودش را دارد، و ردیفهای بعد از اولی با ↳ و همان کد شروع میشوند. کدهای E5101 تا E5142 خطاهاییاند که هنگام کامپایل اسکریپت پیدا میشوند، E5601 تا E5640 خطاهاییاند که اسکریپت را هنگام اجرا متوقف میکنند، و کدهای W- اخطارهاییاند که اجازه میدهند اسکریپت اجرا شود.
| کد | پیام | چه باید کرد |
|---|---|---|
E-COMPILE-REPEAT | Calls of a function with several versions (by parameter type) or of a method name that several types share are nested too deep here: the chart compiles their arguments again for every version. Put the inner call in a variable first | کامپایلر باید تعداد بسیار زیادی کپی از همین فراخوانیها بسازد. به فراخوانی داخلی با let یک نام بدهید و از همان نام استفاده کنید. |
↳ E-COMPILE-REPEAT | This script defines too many functions of one name for the calls it makes of them: the chart compiles every call once for each of them. Give them different names | به تابعهایی که نام یکسان دارند، نامهای متفاوت بدهید. |
E-IMPORT-COUNT | This script imports too many libraries: {max} is the most[ (every import counts, the ones inside libraries too)] | ماژول کمتری وارد کنید، یا ماژولهای کوچک را در یکی ادغام کنید. |
E-IMPORT-CYCLE | This import is a circle: {chain}. A library cannot import itself, directly or through other libraries (or, for a bundle, through others) | ایمپورتی را که دایره را میبندد حذف کنید. پیام زنجیرهٔ ماژولها را نام میبرد. |
E-IMPORT-DEPTH | Libraries import each other more than {max} levels deep ({chain})[. Import fewer levels of libraries] | ماژولها را مسطحتر کنید تا زنجیرهٔ ایمپورتها کوتاهتر شود. |
E-IMPORT-SIZE | The libraries this script imports are too large together: {max} characters is the most[ (counted once per import)] | ماژولها را تقسیم کنید، یا فقط همانهایی را وارد کنید که این اسکریپت لازم دارد. |
↳ E-IMPORT-SIZE | Too large to keep: the script may have {entry} characters, the whole {total}, and {modules} modules | اسکریپت همراه با ماژولهایش آنقدر بزرگ است که ذخیره نمیشود. اسکریپت یا ماژولها را کوتاهتر کنید. |
E-LIMIT-DEPTH | "{name}" is called more than {max} calls deep: a chain that long should be a loop | تابعهای شما در یک کندل بیش از 64 سطح تودرتو یکدیگر را صدا زدند. تابعی که خودش را صدا بزند پیش از اجرا رد میشود (E3310)؛ این پیام از زنجیرهای میآید که از بررسیکننده گذشته است، مثلاً متدهایی که نام مشترک دارند. زنجیره را به حلقه تبدیل کنید، یا کمعمقترش کنید. |
E-LIMIT-DRAW | A polyline has at most {max} points (this one has {length}) | در یک پلیلاین نقطهٔ کمتری رسم کنید، یا آن را به چند پلیلاین تقسیم کنید. |
↳ E-LIMIT-DRAW | The polylines of the script hold {held} points together; the limit is {limit} | پلیلاین کمتر نگه دارید، یا نقطهٔ کمتر در آنها؛ آنهایی را که دیگر نشان نمیدهید حذف کنید. |
E-LIMIT-HISTORY | On bar {bar} the script reads {k} bars back; this series keeps {depth} (the most is {cap}). | خواندنی با [] از آنچه سری نگه میدارد دورتر رفته است. هر سری به همان اندازه کندل نگه میدارد که متن اسکریپت میگوید میخواند (یک عدد نوشتهشده، ورودیای با max، یا حساب روی اینها) و هیچوقت بیشتر از 8,192. به ورودی max کوچکتری بدهید یا کمتر به عقب بخوانید. na فقط برای مقداری است که نمودار ندارد؛ خواندن فراتر از سقف خطاست، نه na. |
↳ E-LIMIT-HISTORY | On bar {bar} {fn} is given a window of {window} bars; the most is {cap}. | پنجرهٔ تابعی مثل tech.sma بلندتر از چیزی است که هر سری نگه میدارد (8,192). پنجرهٔ کوتاهتری بدهید، یا به ورودی max کوچکتری بدهید. |
E-LIMIT-HISTORY-STATIC | {what} is {k} bars; no series or window keeps more than {cap}. Use a smaller number | یک آفست یا طول پنجره که در اسکریپت نوشته شده از 8,192 بیشتر است. این پیش از اجرای اسکریپت پیدا میشود. عدد کوچکتری بنویسید. |
E-LIMIT-ITEMS | The {what} is too large: {n} elements (at most {max}) | بهجای نگه داشتن همهٔ آیتمها، فقط پنجرهای از جدیدترینها را نگه دارید: همانطور که اضافه میکنید (push)، از ابتدا با .shift() حذف کنید. |
↳ E-LIMIT-ITEMS | The {what} is too large: at least {n} elements (at most {max}) | همان سقف است. شمارش در اولین عضوی که از سقف گذشت متوقف شد، پس اندازهٔ واقعی معلوم نیست؛ دستکم {n} است. |
↳ E-LIMIT-ITEMS | The map is too large: {pairs} pairs (at most {maxPairs}) | در نگاشت کلید کمتر نگه دارید؛ کلیدهایی را که دیگر لازم ندارید حذف کنید. |
↳ E-LIMIT-ITEMS | The matrix is too large: {cells} elements (at most {maxCells}) | ماتریس را کوچکتر کنید، یا چند ماتریس کوچکتر نگه دارید. |
↳ E-LIMIT-ITEMS | The matrix is too large: {rows} rows by {cols} columns (at most {maxSide} of either) | هیچکدام از دو ضلع ماتریس نباید از سقف بلندتر باشد؛ ماتریس را کوتاهتر یا باریکتر کنید. |
E-LIMIT-MEMORY | The script holds too much memory on bar {bar}: about {held} bytes; a run may hold {heldCap}. | آرایهها، نقشهها (map)، متنها، شیءها، ترسیمها و تاریخچهٔ اسکریپت روی هم، در یک لحظه از 134,217,728 بایت بیشترند. بایتها روی هر دستگاه یکسان شمرده میشوند و از مرورگر گرفته نمیشوند. یک پنجره از تازهترین آیتمها نگه دارید، آنچه دیگر لازم ندارید حذف کنید، یا مجموعهٔ کمتر و کوچکتر بسازید. |
↳ E-LIMIT-MEMORY | The script builds too much on bar {bar}: {built} bytes over the run; a run may build {builtCap}. | مجموع آنچه اسکریپت در کل اجرا ساخته، حتی آنچه را که رها کرده، از 2,147,483,648 بایت بیشتر است. معمولاً علت حلقهای است که در هر کندل آرایه یا متن بزرگی میسازد: آن را یک بار بسازید، یا کمتر بسازید. |
E-LIMIT-OPS | The script takes too long on bar {bar}[ ({at} UTC)]: this bar used more than {barCap} steps (a loop that runs too long, or a very long list or window); one bar may use {barCap} | اسکریپت در یک کندل کار زیادی کرده است. دنبال حلقهای بگردید که خیلی طولانی است یا هیچوقت تمام نمیشود، و دنبال کاری که میشود یک بار انجام داد، نه در هر کندل. |
↳ E-LIMIT-OPS | The script takes too long on this chart: {steps} steps over {bars} bars; one run may use {runCap}. Make the work of each bar smaller | کل اجرا کار زیادی کرده است. در هر کندل کار کمتری بکنید، یا پنجرهٔ کوتاهتری نگه دارید. |
↳ E-LIMIT-OPS | The script takes too long: its function calls branch into too many separate copies of each function | فراخوانیهایی که به نسخههای جدا از یک تابع شاخه میشوند، کامپایل را خیلی بزرگ میکنند. تابع را یک بار صدا بزنید و نتیجه را در یک متغیر نگه دارید. |
E-LIMIT-REGEX | The pattern of text.match is too big: the limit is 256 characters and 2048 instructions | یک الگو میتواند 256 نویسه داشته باشد، و پس از اینکه تکرارهایش کامل نوشته شدند (a{3} همان aaa است) حداکثر 2,048 دستور؛ شمارندهٔ یک تکرار حداکثر 1,000 است. الگوی کوتاهتر یا شمارندههای کوچکتر بنویسید، یا کار را به دو تطبیق تقسیم کنید. |
E-LIMIT-TABLE | The tables of the script hold {held} cells together; the limit is {maxLive}. Delete a table the script no longer shows (table.delete) before it makes another | جدولی را که دیگر نشان نمیدهید با table.delete حذف کنید و بعد جدول تازه بسازید، یا جدول را فقط یک بار در آخرین کندل بسازید. |
↳ E-LIMIT-TABLE | A table has at most {maxCols} columns and {maxRows} rows (this one asks for {cols} × {rows}) | جدول را کوچکتر کنید. |
↳ E-LIMIT-TABLE | A table has at most {maxCells} cells (this one asks for {cols} × {rows} = {cells}) | جدول را کوچکتر کنید. |
↳ E-LIMIT-TABLE | Cell ({c}, {r}) is outside the table ({cols} columns × {rows} rows) | فقط خانههای داخل جدول را بنویسید: ستونها و ردیفها از 0 شمرده میشوند. |
E-LIMIT-TEXT | {fn} would build a text longer than {textLimit} characters | متنهای کوتاهتر بسازید؛ متنی که در هر کندل بزرگتر میشود سقف لازم دارد. |
↳ E-LIMIT-TEXT | "{fn}": a map key is at most {keyLimit} characters (this one has {keyLength}) | کلید کوتاهتری به کار ببرید. |
↳ E-LIMIT-TEXT | {fn} reads a text of at most {readLimit} characters (this one has {readLength}) | به تابع متن کوتاهتری بدهید. |
E-LIMIT-TIME | The script ran longer than the time a run may take | اسکریپت برای زمانی که یک اجرا میگیرد بیش از حد کند است. در هر کندل کار کمتری بکنید، یا ترسیمهای کمتری بسازید. |
E-SANDBOX-BUSY | the sandbox queue is full | پلتفرم مشغول اجرای اسکریپتهای دیگر است. چند لحظهٔ بعد دوباره امتحان کنید. |
E-SANDBOX-CRASH | the sandbox is closed | پلتفرم دارد دوباره راهاندازی میشود. چند لحظهٔ بعد دوباره امتحان کنید. |
↳ E-SANDBOX-CRASH | a worker could not be started | دوباره امتحان کنید. اگر هر بار پیش میآید، اسکریپت را برای پشتیبانی بفرستید. |
↳ E-SANDBOX-CRASH | the worker died while running the script | دوباره امتحان کنید. اگر با همین اسکریپت هر بار پیش میآید، اسکریپت را برای پشتیبانی بفرستید. |
↳ E-SANDBOX-CRASH | the worker exited while running the script | دوباره امتحان کنید. اگر با همین اسکریپت هر بار پیش میآید، اسکریپت را برای پشتیبانی بفرستید. |
E-SANDBOX-JOB | a job is an object | ایراد از پلتفرم است، نه از اسکریپت شما. دوباره امتحان کنید و اگر باز هم شکست خورد، اسکریپت را برای پشتیبانی بفرستید. |
↳ E-SANDBOX-JOB | the job could not be sent: {reason} | ایراد از پلتفرم است، نه از اسکریپت شما. دوباره امتحان کنید و اگر باز هم شکست خورد، اسکریپت را برای پشتیبانی بفرستید. |
↳ E-SANDBOX-JOB | unknown job kind "{kind}" | ایراد از پلتفرم است، نه از اسکریپت شما. اسکریپت را برای پشتیبانی بفرستید. |
↳ E-SANDBOX-JOB | {text} | sandbox خرابی را با کلمات خودش گزارش میکند. دوباره امتحان کنید و اگر باز هم شکست خورد، اسکریپت را برای پشتیبانی بفرستید. |
E-SANDBOX-OOM | the script used more memory than a job may (heap limit) | اسکریپت بیش از حد در حافظه نگه میدارد. آیتم کمتر در آرایه و نگاشت، متن کوتاهتر و ترسیم کمتر نگه دارید. |
↳ E-SANDBOX-OOM | the process passed {mb} MB of memory | اسکریپت بیش از حد در حافظه نگه میدارد. آیتم کمتر در آرایه و نگاشت، متن کوتاهتر و ترسیم کمتر نگه دارید. |
E-SANDBOX-TIMEOUT | the script ran longer than {ms} ms | اجرای اسکریپت برای هشدار بیش از حد طول کشید. در هر کندل کار کمتری بکنید. |
E-SCRIPT | {message} | پردازهٔ محافظشدهای که اسکریپتها را برای هشدارها اجرا میکند، اسکریپت شما را اجرا کرد و اسکریپت با خطای خودش متوقف شد. پیام همان خطا را دارد: آن را در تشخیصها یا در همین صفحه پیدا کنید. |
E5000 | {message} | موتور اسکریپت را با پیامی متوقف کرده که هنوز کد مخصوص خودش را ندارد. متن، جملهٔ خود موتور است؛ خط را نام میبرد و میگوید چه چیزی را عوض کنید. |
E5001 | Internal error of the formatter: {message} | قالببند نتوانست متن را دوباره بنویسد. ایراد از پلتفرم است، نه از اسکریپت شما. اسکریپت را برای پشتیبانی بفرستید. |
E5101 | A session must be declared at the top of the script (not inside if, for or a function) | فراخوانی session.define(…) را به بالاترین سطح فایل ببرید، قبل از هر if، حلقه یا تابع. شکل session NAME = … راه ساده برای تعریف یک سشن است. |
E5102 | alert.send({what} = …) must be written in the script (a text or a number), not computed or read from an input | مقدار را در خود اسکریپت به صورت متن یا عدد بنویسید (key = "breakout"، cooldown = 3). نه میشود آن را محاسبه کرد و نه از یک ورودی خواند. |
E5103 | alert.send(cooldown = …) is a number of bars, 0 or more | به cooldown تعداد کندل بدهید، 0 یا بیشتر. |
E5104 | id must be a name written in the script, as a text: letters, digits and _, starting with a letter or _ | بنویسید id = "my_plot": نامی داخل گیومه، از حرف، رقم و _، که با حرف یا _ شروع شود. نگاه کنید به شناسهها. |
E5105 | was must be a text written in the script: the earlier id, or several separated by spaces | was = "old_id" را به صورت متن در اسکریپت بنویسید. برای چند شناسهٔ قبلی، آنها را با فاصله از هم جدا کنید. |
E5106 | was: "{w}" is not a name | هر شناسهٔ قبلی در was باید یک نام باشد: حرف، رقم و _، که با حرف یا _ شروع شود. |
E5107 | was: "{w}" is the id itself | was نام شناسهای را میگوید که خط قبلاً داشت. شناسهای را که همین حالا شناسهٔ خط است از آن حذف کنید. |
E5108 | The id "{written}" is already used by {holder} | دو چیز در اسکریپت نمیتوانند شناسهٔ یکسان داشته باشند. به یکی از آنها شناسهٔ دیگری بدهید. |
E5109 | An input's default value must be a constant | پیشفرض یک ورودی باید ثابت باشد: عدد، متن، true، false یا رنگ؛ نه مقداری که به کندلها بستگی دارد. |
E5110 | The options of an input are a list in brackets: [a, b, c] | گزینههای یک ورودی را به صورت فهرستی داخل کروشه بنویسید: ["a", "b", "c"]. |
E5111 | Every option of an input must be a constant | هر گزینهٔ ورودی را به صورت ثابت بنویسید، نه مقداری که به کندلها بستگی دارد. |
E5112 | {name}(…) must be called on the top level of the script (not inside if, for or a function) | فراخوانی را به بالاترین سطح فایل ببرید، بیرون از هر if، حلقه یا تابع. اگر میخواهید فقط گاهی رسم شود، در بقیهٔ مواقع مقدارش را na کنید. |
E5113 | level(…) must be called on the top level of the script | hline(…) را به بالاترین سطح فایل ببرید. |
E5114 | level(…) needs a constant price (a number or an input) | به hline قیمت ثابت بدهید: یک عدد، یا یک ورودی. |
E5115 | shade(…) must be called on the top level of the script | fill(…) را به بالاترین سطح فایل ببرید. |
E5116 | shade(…) takes two plots or two levels (the values plot(…) / level(…) returned) | به fill دو چیزی را که بینشان رنگ میریزد بدهید: نتیجهٔ هر plot(…) یا hline(…) را در یک نام نگه دارید و همان نامها را بدهید. |
E5117 | alert.when(…) must be called on the top level of the script (not inside if, for or a function) | alert.when(…) را به بالاترین سطح فایل ببرید، بیرون از هر if، حلقه یا تابع. |
E5118 | alert.when(…, on = …) must be the text "rises" or "level", written in the script | on = "rises" یا on = "level" را به صورت متن در اسکریپت بنویسید. |
E5119 | data.series needs an expression to read | آرگومان سوم data.series را بدهید: عبارتی که باید در تایمفریم دیگر خوانده شود. |
E5120 | "{name}" is already declared here; give it a new value with := | نام فقط یک بار تعریف میشود. برای مقدار تازه دادن به یک متغیر بنویسید name := value؛ برای ساختن متغیر دوم، نام دیگری به آن بدهید. |
E5121 | A return is only valid inside a function | return جایش داخل fn است. آن را بردارید، یا کد را به یک تابع ببرید. |
E5122 | "{name}" is not declared; declare it with = first | متغیر را قبل از تغییر دادنش تعریف کنید: mut name = value و بعد name := value. |
E5123 | Only a variable or a field can be given a new value | فقط یک متغیر (mut) یا یک فیلد را میشود با := مقدار تازه داد. |
E5124 | Functions are defined at the top level of a script | fn را در بالاترین سطح فایل بنویسید، نه داخل if، حلقه یا تابع دیگر. |
E5125 | Parameter "{name}" is listed twice | به هر پارامتر تابع نام جداگانهٔ خودش را بدهید. |
E5126 | The library "{path}" is not in your scripts. Add it under My scripts (as a library) and try again | کتابخانه را زیر اسکریپتهای من (بهعنوان کتابخانه) اضافه کنید و دوباره امتحان کنید. |
E5127 | "{name}" is a function: call it with ( ) | تابع با فراخوانی به کار میرود: پرانتزها را اضافه کنید، name(). |
E5128 | "{name}" is not declared | املای نام را بررسی کنید و آن را بالاتر از اولین استفاده تعریف کنید. |
E5129 | "{member}" is not a member of {owner} | نام بعد از نقطه را بررسی کنید. فهرست تابعها نامهایی را که موتور دارد میآورد. |
E5130 | "{d}" is a function: call it with ( ) | تابع با فراخوانی به کار میرود: پرانتزها را اضافه کنید. |
E5131 | "{d}" is not a built-in variable this chart knows | نام را با فهرست تابعها مقایسه کنید. این نمودار آن متغیر داخلی را ندارد. |
E5132 | {what} takes at most {length} argument(s) | آرگومانهای اضافه را بردارید. |
E5133 | {what} has no argument "{name}" | نام آرگومان را با تابع مقایسه کنید. فهرست تابعها پارامترها را میآورد. |
E5134 | Create a {name} with {name}.new(…) | شیء را با تابع .new(…) خودش بسازید، برای نمونه line.new(…). |
E5135 | "{name}" is not a function this chart knows | نام را با فهرست تابعها مقایسه کنید. |
E5136 | The library "{lib}" has no function "{fn}" | نام تابع را با آنچه کتابخانه عرضه میکند مقایسه کنید. |
E5137 | "{d}" is not supported on this chart yet | این قابلیت هنوز روی نمودار در دسترس نیست. نگاه کنید به سقفها و بودجهٔ اجرا. |
E5138 | Only names can be called | فقط یک نام را میشود صدا زد. مقدار را در یک let بگذارید و آن را صدا بزنید. |
E5139 | {name}.copy takes the object to copy | به .copy شیئی را که باید کپی شود بدهید. |
E5140 | "{name}" is not a method this chart knows | نام متد را با فهرست تابعها مقایسه کنید. |
E5141 | This constant is built from other constants too many times over (each one is used twice or more by the next). Put a value in a variable once and use that | ثابتی که در هر مرحله دو بار یا بیشتر از ثابتهای دیگر استفاده میکند، وقتی موتور آن را یکجا حساب میکند خیلی بزرگ میشود. مقدار را یک بار در یک متغیر بگذارید و از متغیر استفاده کنید. |
E5142 | This is a library: other scripts import it; it does not draw on its own | کتابخانه را اسکریپتهای دیگر وارد میکنند و خودش چیزی رسم نمیکند. آن را از یک اندیکاتور یا یک استراتژی وارد کنید. |
E5601 | "{fn}": the {what} is na | تابعی جایی که مقدار لازم دارد na گرفته است. مقدار را در کندلی که پیام نام میبرد ببینید (یک سری تا وقتی کندل کافی نداشته باشد na است) و با nz() یا ?? جلوی na را بگیرید. |
E5602 | Index {i} is out of bounds (array size is {n}) | قبل از خواندن، اندیس را با اندازهٔ آرایه مقایسه کنید. |
E5603 | "{fn}": the size cannot be negative ({n}) | اندازه عددی از 0 به بالاست. |
E5604 | Cannot call "array.pop" on an empty array | قبل از pop بررسی کنید که آرایه خالی نباشد. |
E5605 | Cannot call "array.shift" on an empty array | قبل از shift بررسی کنید که آرایه خالی نباشد. |
E5606 | "array.slice": from ({i}) is after to ({j}) | index_from نباید بعد از index_to باشد. |
E5607 | "array.covariance" needs two arrays of the same size ({lengthX} and {lengthY}) | به covariance دو آرایه با اندازهٔ یکسان بدهید. |
E5608 | "map.set": the key is na (a map key must have a value) | کلید نگاشت باید مقدار داشته باشد: جلوی کلیدی را که ممکن است na شود بگیرید. |
E5609 | Row {i} is out of bounds (the matrix has {rows} rows) | شمارهٔ ردیف را با تعداد ردیفهای ماتریس مقایسه کنید. ردیفها از 0 شمرده میشوند. |
E5610 | Column {j} is out of bounds (the matrix has {cols} columns) | شمارهٔ ستون را با تعداد ستونهای ماتریس مقایسه کنید. ستونها از 0 شمرده میشوند. |
E5611 | {what} {i} is out of bounds (the matrix has {size} {unit}) | شماره را با اندازهٔ ماتریس مقایسه کنید. شمارش از 0 شروع میشود. |
E5612 | {what} {j} is out of bounds (the matrix has {size} {unit}) | شماره را با اندازهٔ ماتریس مقایسه کنید. شمارش از 0 شروع میشود. |
E5613 | "{fn}": from_{what} ({i}) is after to_{what} ({j}) | شروع نباید بعد از پایان باشد. |
E5614 | "{fn}" needs a square matrix (this one is {rows}x{cols}) | این تابع روی ماتریسی کار میکند که تعداد ردیفهایش با تعداد ستونهایش برابر است. |
E5615 | "matrix.new": the size cannot be negative ({rows}x{cols}) | اندازه عددی از 0 به بالاست. |
E5616 | "{fn}": the array has {elements} elements but the matrix has {cols} columns | آرایه باید به اندازهٔ تعداد ستونهای ماتریس عضو داشته باشد. |
E5617 | "{fn}": the array has {elements} elements but the matrix has {rows} rows | آرایه باید به اندازهٔ تعداد ردیفهای ماتریس عضو داشته باشد. |
E5618 | "{fn}": the matrix has no rows | ماتریس خالی است: قبل از صدا زدن این تابع ردیف اضافه کنید. |
E5619 | "{fn}": the matrix has no columns | ماتریس خالی است: قبل از صدا زدن این تابع ستون اضافه کنید. |
E5620 | "{fn}": a {rowsOld}x{colsOld} matrix ({elements} elements) cannot become {rowsNew}x{colsNew} | شکل تازه باید به اندازهٔ ماتریس فعلی عضو داشته باشد. |
E5621 | "{fn}": the matrices have {colsA} and {colsB} columns | ماتریسها باید تعداد ستون برابر داشته باشند. |
E5622 | "{fn}" needs two matrices of the same size ({rowsA}x{colsA} and {rowsB}x{colsB}) | دو ماتریس باید هماندازه باشند. |
E5623 | "{fn}": the first matrix has {cols} columns but the second has {rows} rows | ماتریس اول باید به اندازهٔ تعداد ردیفهای ماتریس دوم ستون داشته باشد. |
E5624 | "{fn}": the matrix has {cols} columns but the array has {elements} elements | آرایه باید به اندازهٔ تعداد ستونهای ماتریس عضو داشته باشد. |
E5625 | "{fn}": the power cannot be negative ({p}) | توان عددی از 0 به بالاست. |
E5626 | A table needs a number of columns and rows | به جدول تعداد ستونها و ردیفها را بدهید. |
E5627 | Unknown pivot point type "{type}" (Traditional, Fibonacci, Woodie, Classic, DM or Camarilla) | نوع یکی از اینهاست: Traditional، Fibonacci، Woodie، Classic، DM یا Camarilla. |
E5628 | tech.pivot_levels: "developing" cannot be true with the Woodie type | با نوع Woodie از developing = false استفاده کنید، یا نوع دیگری انتخاب کنید. |
E5629 | Cannot set "{name}" of na | ترسیم هیچوقت ساخته نشده، یا در این کندل na است. اول آن را بسازید، و جلوی نامی را که هنوز ممکن است na باشد بگیرید. |
E5630 | "{name}" cannot be set here | این ویژگی را با تابعی که صدا زدید نمیشود تغییر داد. |
E5631 | "{name}" is not a field of this value | نام فیلد را با نوع مقدار مقایسه کنید. |
E5632 | Cannot call "{name}" on na | مقدار در این کندل na است (شیء هیچوقت ساخته نشده). قبل از صدا زدن متد روی آن، شیء را بسازید. |
E5633 | A {tn} has no method "{name}" | نام متد را با نوع مقدار مقایسه کنید. |
E5634 | This script is an indicator: only a strategy (a strategy header at the top) places orders to test | سفارشها را استراتژی ثبت میکند. خط اول اسکریپت را به strategy(…) تغییر دهید، یا دستورهای سفارش را بردارید. |
E5635 | Cannot call "{fn}" on na (the {what} was never created) | شیء هیچوقت ساخته نشده. قبل از صدا زدن تابع روی آن، شیء را بسازید. |
E5636 | "{fn}" needs {expected}, not a {found} | به تابع مقداری از نوعی که لازم دارد بدهید. |
E5637 | {message} | اسکریپت log.abort(…) را با این متن صدا زد و عمداً متوقف شد. شرطی را که به این فراخوانی میرسد بررسی کنید. |
E5638 | The script stopped (log.abort) | اسکریپت log.abort(…) را صدا زد و عمداً متوقف شد. شرطی را که به این فراخوانی میرسد بررسی کنید. |
E5639 | The script calls itself too deeply | اسکریپت بیش از آن تودرتو است که موتور بتواند دنبالش کند. تابعی که خودش را صدا بزند پیش از اجرای اسکریپت رد میشود (E3310)، و زنجیرهٔ بیش از حد بلندی از تابعهای شما E-LIMIT-DEPTH است؛ پس این پیام کم پیش میآید. تودرتویی را کم کنید: بخشهایی از یک عبارت بلند را در خطهای let بگذارید، یا از حلقه استفاده کنید. |
E5640 | {message} | خطایی که موتور انتظارش را نداشت. پیام با کلمات خودش میآید. اگر با همین اسکریپت دوباره پیش آمد، اسکریپت را برای پشتیبانی بفرستید. |
W-ENGINE-ALERT-CUT | The message of an alert is cut to {ALERT_TEXT_MAX} characters | پیام هشدار را کوتاهتر کنید. |
W-ENGINE-CONST-ARG | {fn} {name} must be a constant written in the script; it stays at its default value | مقدار را در اسکریپت به صورت ثابت بنویسید. تا آن موقع گزینه روی مقدار پیشفرضش میماند. |
W-ENGINE-CURRENCY-RATE | A currency rate is not available on this chart; it reads 1 | نمودار نرخ ارز ندارد، پس فراخوانی 1 میخواند. به مقدار تبدیلشده تکیه نکنید. |
W-ENGINE-HISTORY-OPEN | Dynamic lookback has no declared upper bound; execution is limited to {cap} bars. Give the input a max | هشدار برای خواندنی مثل x[n] که هیچ چیز در متن اسکریپت n را محدود نمیکند (ورودی بدون max، پارامتر یک تابع، یک شمارنده). اسکریپت اجرا میشود، ولی سریای که اینطور خوانده شود تا 8,192 کندل نگه میدارد، و خواندن دورتر از آن اجرا را با E-LIMIT-HISTORY متوقف میکند. این هشدار برای هر اسکریپت یک بار گفته میشود. به ورودی max بدهید تا اسکریپت فقط کندلهایی را نگه دارد که به آنها میرسد. |
W-ENGINE-HTF-NOT-LOADED | The {period} bars are not available yet; data.series reads na | کندلهای آن تایمفریم هنوز روی نمودار نیستند، پس درخواست na میدهد. نمودار آنها را میخواهد و اسکریپت را دوباره اجرا میکند. |
W-ENGINE-HTF-RESAMPLED | The {period} bars are built from the chart's own bars (the market server sent none): they reach only as far back as the chart does | سرور بازار کندلی در آن تایمفریم نداشت، پس موتور آنها را از کندلهای خود نمودار ساخت؛ این کندلها فقط تا همانجایی به عقب میرسند که نمودار میرسد. |
W-ENGINE-INDICATOR-TIMEFRAME | indicator(timeframe=…) is not supported yet: the script runs on the chart's timeframe | timeframe را از indicator(…) بردارید و برای تایمفریم دیگر از data.series استفاده کنید. |
W-ENGINE-LIBRARY-CHANGED | The library "{path}" changed since this script was last saved ({was} -> {now}); the script may behave differently | کتابخانه بعد از ذخیرهٔ اسکریپت ویرایش شده است. ببینید اسکریپت چه میکند، و بعد دوباره ذخیرهاش کنید. |
W-ENGINE-LIST-INPUT | The list of the input "{name}" cannot be read as a list: it is empty here | تنظیمات یک ورودی فهرستی را بهصورت متن نگه میدارند و این متن فهرست نیست (خراب شده یا با دست عوض شده). اسکریپت یک فهرست خالی میگیرد. تنظیمات را باز کنید، فهرست را دوباره وارد کنید و ذخیره کنید. |
W-ENGINE-LOG-DROPPED | {n} log lines were dropped: a bar keeps {perBar} lines and a run {perRun} | در هر کندل خط لاگ کمتری بنویسید، یا فقط در کندلهایی که برایتان مهماند. |
W-ENGINE-LOWER-TF | data.series of a lower timeframe reads the chart's own bars here | تایمفریمی کوتاهتر از تایمفریم نمودار بارگذاری نمیشود. تایمفریمی بلندتر از تایمفریم نمودار بخوانید، یا اسکریپت را روی نموداری با تایمفریم کوتاهتر اجرا کنید. |
W-ENGINE-LOWER-TF-FORM | data.intrabars reads the chart's own bar here (lower timeframes are not loaded) | تایمفریمهای کوتاهتر اینجا بارگذاری نمیشوند: فراخوانی کندل خود نمودار را میدهد. |
W-ENGINE-OTHER-SYMBOL | data.series can only read this chart's symbol here; another symbol reads na | دادههای نماد دیگر در این انتشار در دسترس نیست. نگاه کنید به تایمفریمها و نمادهای دیگر. |
W-ENGINE-RANDOM-SEED | math.random draws from the run seed {seed} (script {script}, inputs {inputs}) | یادداشت است، نه نقص. فراخوانی math.random که seed خودش را ندارد از همان seed اجرا که اینجا نشان داده شده عدد میکشد؛ پس همان اسکریپت (با همان شناسه، یا برای اسکریپت ذخیرهنشده با همان نام) و همان ورودیها روی هر دستگاه همان عددها را میدهد؛ اگر یک ورودی، یا شناسه یا نام عوض شود عددها هم عوض میشوند، ولی بازنویسی یا قالببندی دوبارهٔ اسکریپت آنها را جابهجا نمیکند. به فراخوانی یک seed بدهید تا عددهایش فقط به همان عدد بستگی داشته باشد. عددهای تصادفی را ببینید. |
W-ENGINE-REQUEST-NA | {name} is not available on this chart; it reads na | نمودار این داده را ندارد، پس na میخواند. با nz() یا ?? جلوی na را بگیرید. |
W-ENGINE-SOURCE-DEFAULT | A source input can only default to a price (open, high, low, close, hl2 …) here | پیشفرض ورودی source را یک قیمت بگذارید: open، high، low، close، hl2 و مانند آنها. |
W-ENGINE-STRATEGY-NOT-SIMULATED | Strategy orders are not simulated on the chart: open the Strategy tester to test it | نمودار سفارشهای استراتژی را شبیهسازی نمیکند. در ویرایشگر روی تست بزنید تا در Strategy Lab اجرا شود. |
W-ENGINE-TEXT-CUT | A text of a label, box or table cell is cut to {DRAW_TEXT_MAX} characters | در برچسب، باکس یا خانه متن کوتاهتری بنویسید. |
W-ENGINE-TICKER-KIND | The chart kind "{kind}" is not applied here; data.series reads the ordinary candles | اسکریپت اینجا نمیتواند نوع کندلی را که درخواست میخواند عوض کند: درخواست کندلهای معمولی را میخواند. |
W-ENGINE-VWAP-NO-VOLUME | tech.vwap reads na: the bars of this chart have no volume | کندلهای این نماد حجم ندارند، پس tech.vwap را نمیشود حساب کرد. |
W-ENGINE-ZONE-UNKNOWN | The time zone "{tz}" is not known; it is read as UTC | نام منطقهٔ زمانیای بنویسید که نمودار میشناسد، مثل "Europe/London" یا "America/New_York". |
W-OBJECT-LIMIT | {n} {kind} were dropped: the script keeps the newest {keep} ({param}).[ The oldest dropped was made on bar {at}.][ Raise {param} in the indicator() line (this chart allows up to {allowed})] | نمودار جدیدترین خطها، برچسبها، باکسها یا پلیلاینها را نگه میدارد. تنظیمی را که پیام نام برده در خط indicator() بالا ببرید، تا هر قدر که نمودار اجازه میدهد، یا ترسیم کمتری بکشید. |
↳ W-OBJECT-LIMIT | {sloped} sloped fills (linefill between two lines that are not level) are not drawn on this chart yet | linefill بین دو خط غیرافقی هنوز رسم نمیشود. بهجایش از یک fill بین دو خط استفاده کنید. |
↳ W-OBJECT-LIMIT | {tables} tables were dropped: the chart keeps the newest 40 tables. Delete a table the script no longer shows (table.delete) before it makes another | جدولی را که دیگر نشان نمیدهید با table.delete حذف کنید و بعد جدول تازه بسازید. |
↳ W-OBJECT-LIMIT | {setting} {asked} is cut to {cap} on this chart | بیشتر از آنچه نمودار اجازه میدهد نخواهید. |
W-UNMODELLED | {fn}: {param} {why} | موتور این گزینهٔ تابع را مدل نمیکند: گزینه را میخواند ولی به آن عمل نمیکند. پیام میگوید کدام گزینه و چرا. |
↳ W-UNMODELLED | {fn} {whyWhole} | موتور این تابع را مدل نمیکند: اسکریپت اجرا میشود، اما تابع کاری را که اسمش میگوید نمیکند. پیام میگوید چرا. |
بخشهایی از موتور که در صورت نیاز بارگذاری میشوند#
موتور وقتی صفحه باز میشود دانلود نمیشود: چند بخش است که فقط وقتی اسکریپتی لازمشان داشته باشد بارگذاری میشوند؛ خودِ موتور اسکریپت (اولین اسکریپتِ یک بازدید)، اجراکنندهٔ استراتژی (استراتژی) و «ریاضیات قطعی» (math.log، math.exp، math.pow و تابعهای مثلثاتی؛ نگاه کنید به عددها). اسکریپتی که به یک بخش نیاز دارد فقط روی بخشی اجرا میشود که بارگذاری و بررسی شده باشد (نسخه و اثر انگشتش، و اینکه با صفحه از یک ساخت است)؛ وگرنه از همان ابتدا، پیش از اولین کندل، اصلاً اجرا نمیشود و هیچ چیزی با عددهای دیگر حساب نمیشود. برای این وضع چهار پیام داریم که همه در تشخیصها شرح داده شدهاند و هیچکدام تقصیر اسکریپت شما نیست: E-ENGINE-PART-UNAVAILABLE (آن بخش در دسترس نبود)، E-ENGINE-PART-VERSION (همان نیست که این موتور با آن منتشر شده)، E-CHUNK-SKEW (از ساخت دیگری از سایت است) و E-CHUNK-LATE (بعد از شروع اجرا خواسته شد).
برای هشدارها: تا وقتی بخشی در دسترس نیست، با موتور جور نیست یا از ساخت دیگری است، پلتفرم هشدارهای وابسته به آن را ارزیابی نمیکند، ارسال نمیکند و نسخهٔ دیگری از آن بخش را امتحان نمیکند. رویداد را ثبت میکند تا تیم ببیند و هشدار شما را «خراب» علامتگذاری نمیکند: با برگشتن آن بخش، هشدار خودش دوباره شروع میشود. پلتفرم یک بررسیِ جاافتاده را گزارش میکند و بررسی را با عددهای غلط انجام نمیدهد.
خواندن پیامهای سقف#
پیام سقف میگوید چه چیزی و به چه اندازه از حد گذشته است. برای مثال، اجرایی که بیش از حد طول بکشد اینطور خوانده میشود: The script takes too long on bar 0 (2026-09-07 12:10 UTC): this bar used more than the steps one bar may use … (line 3) کندل و خط، جایی است که بودجه تمام شد؛ علت ممکن است زودتر باشد، چون حلقهای که با هر کندل بزرگتر میشود دیر به سقف میرسد. سقفها و بودجهٔ اجرا همهٔ عددها را فهرست میکند.
نگاه کنید به: تشخیصها، سقفها و بودجهٔ اجرا، ویرایشگر.