آواتار محمدرضا فلاحتی توسط: تاریخ انتشار: 5 بهمن 1403 0 دیدگاه

اکنون کوانت‌ها می‌توانند از ماتریس‌ها در اسکریپت‌های خود استفاده کنند! این ویژگی به عنوان یک شیء جدید با فضای نام مخصوص به خود و مجموعه‌ای کامل از 49 تابع همراه که به شما امکان می‌دهد ماتریس‌ها را ایجاد و ویرایش کنید و عملیات معمول جبر ماتریس را انجام دهید، پیاده‌سازی شده است.

توابع مرتبط با ماتریس در فضای نام matrix.* قرار دارند. برای ایجاد یک ماتریس ساده می‌توانید از تابع matrix.new(rows, columns, initial_value) استفاده کنید، به عنوان مثال:

// یک ماتریس "int" 2x3 (2 ردیف و 3 ستون) با مقادیر صفر ایجاد می‌کند.
m = matrix.new(2, 3, 0)

شما می‌توانید یک ماتریس را با استفاده از تابع matrix.set() برای تعیین ارزش عناصر خاص یا با استفاده از تابع matrix.fill() برای پر کردن کل ماتریس با یک مقدار، پر کنید. ماتریس‌ها همه نوع‌های Pine را پشتیبانی می‌کنند. تمام عناصر در ماتریس باید از یک نوع باشند که با استفاده از الگوهای نوع جدید (یک نام نوع در براکت‌های “<>”) در تماس matrix.new() مشخص می‌شود. توابع جبر ماتریس تنها برای نوع‌های عددی “int” و “float” در دسترس هستند؛ سایر عملیات بر روی تمام نوع‌های ماتریس مجاز است.

توابع ماتریس

matrix.new یک شیء ماتریس جدید ایجاد می‌کند. ماتریس یک ساختار داده دوه بعدی است که شامل ردیف‌ها و ستون‌ها می‌باشد. تمام عناصر در ماتریس باید از نوع مشخص شده در الگوی نوع (“”) باشند.
matrix.row() یک آرایه یک‌بعدی از عناصر یک ردیف ماتریس ایجاد می‌کند.
matrix.col() یک آرایه یک‌بعدی از عناصر یک ستون ماتریس ایجاد می‌کند.
matrix.get() عنصری را که دارای شاخص مشخص شده در ماتریس است، برمی‌گرداند.
matrix.set() به عنصر در شاخص ستون و ردیف ماتریس مقدار value را اختصاص می‌دهد.
matrix.rows() تعداد ردیف‌های موجود در ماتریس را بازمی‌گرداند.
matrix.columns() تعداد ستون‌های موجود در ماتریس را بازمی‌گرداند.
matrix.elements_count() تعداد کل عناصر ماتریس را بازمی‌گرداند.
matrix.add_row() یک ردیف به ماتریس اضافه می‌کند. این ردیف می‌تواند شامل

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

na مقادیر، یا یک آرایه می‌تواند برای ارائه مقادیر استفاده شود.
matrix.add_col()
این تابع یک ستون به ماتریس اضافه می‌کند. این ستون می‌تواند شامل na مقادیر باشد، یا یک آرایه برای ارائه مقادیر می‌تواند استفاده شود.
matrix.remove_row()
این تابع ردیف ماتریس را حذف کرده و آرایه‌ای شامل مقادیر ردیف حذف شده را برمی‌گرداند.
matrix.remove_col()
این تابع ستون ماتریس را حذف کرده و آرایه‌ای شامل مقادیر ستون حذف شده را برمی‌گرداند.
matrix.swap_rows()
این تابع ردیف‌های داخل ماتریس را جابجا می‌کند.
matrix.swap_columns()
این تابع ستون‌های داخل ماتریس را جابجا می‌کند.
matrix.fill()
این تابع یک ناحیه مستطیلی از ماتریس را که توسط ایندکس‌های from_column تا to_column (شامل نمی‌شود) و from_row تا to_row (شامل نمی‌شود) تعریف شده است، با مقدار value پر می‌کند.
matrix.copy()
یک ماتریس جدید که کپی ماتریس اصلی است، ایجاد می‌کند.
matrix.submatrix()
یک زیرماتریس را درون ایندکس‌های مشخص شده استخراج می‌کند.
matrix.reverse()
ترتیب ردیف‌ها و ستون‌ها در ماتریس را معکوس می‌کند. ردیف و ستون اول به آخرین و آخرین به اول تبدیل می‌شوند.
matrix.reshape()
ماتریس را به ابعاد rows x cols بازسازی می‌کند.
matrix.concat()
یک ماتریس را به دیگری اضافه می‌کند.
matrix.sum()
یک ماتریس جدید که نتیجه جمع دو ماتریس، یا یک ماتریس و یک عدد (مقدار عددی) است را برمی‌گرداند.
matrix.diff()
یک ماتریس جدید که نتیجه تفریق بین ماتریس‌ها، یا یک ماتریس و یک عدد (مقدار عددی) است را برمی‌گرداند.
matrix.mult()
یک ماتریس جدید که نتیجه ضرب

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنیدمحصول بین ماتریس‌ها، یا بین یک ماتریس و یک عدد اسکالر (یک مقدار عددی)، یا بین یک ماتریس و یک وکتور (یک آرایه از مقادیر) محاسبه می‌شود.
matrix.sort() سطرها را در ماتریس id بر اساس ترتیب مرتب‌سازی مقادیر در ستون تنظیم می‌کند. matrix.avg() میانگین همه عناصر ماتریس را محاسبه می‌کند. matrix.max() بزرگ‌ترین مقدار را از عناصر ماتریس برمی‌گرداند. matrix.min() کوچک‌ترین مقدار را از عناصر ماتریس برمی‌گرداند. matrix.median() میانه (“مقدار وسط”) عناصر ماتریس را محاسبه می‌کند. matrix.mode() مد (mode) ماتریس که رایج‌ترین مقدار را از عناصر ماتریس محاسبه می‌کند. اگر چندین مقدار به‌طور مساوی رایج باشند، تابع کوچک‌ترین آن‌ها را برمی‌گرداند. matrix.pow() محصول ماتریس را با خود به اندازه توان محاسبه می‌کند. matrix.det() مقدار دترمینان یک ماتریس مربعی را برمی‌گرداند. matrix.transpose() نسخه‌ای جدید و ترانهاده از ماتریس ایجاد می‌کند و اندیس سطر و ستون هر عنصر را جابه‌جا می‌کند. matrix.pinv() مقدار پسو اینور ماتریس را برمی‌گرداند. matrix.inv() مقدار اینور یک ماتریس مربعی را برمی‌گرداند. matrix.rank() مقدار رتبه ماتریس را محاسبه می‌کند. matrix.trace() جمع نوار اصلی ماتریس را محاسبه می‌کند.

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید.ردیف یک ماتریس (مجموع عناصر بر روی قطر اصلی).

matrix.eigenvalues() آرایه‌ای از ویژگی‌های ویژه یک ماتریس مربعی را برمی‌گرداند. matrix.eigenvectors() ماتریسی از ویژگی‌های ویژه را برمی‌گرداند که در آن هر ستون یک ویژگی ویژه از ماتریس است. matrix.kron() محصول کرونکر برای دو ماتریس را ارائه می‌دهد. matrix.is_zero() تعیین می‌کند که آیا تمامی عناصر ماتریس صفر هستند. matrix.is_identity() تعیین می‌کند که آیا یک ماتریس هویتی است (عناصر با یک‌های بر روی قطر اصلی و صفر در سایر نقاط). matrix.is_binary() تعیین می‌کند که آیا ماتریس باینری است (زمانی که تمامی عناصر ماتریس ۰ یا ۱ هستند). matrix.is_symmetric() تعیین می‌کند که آیا یک ماتریس مربعی متقارن است (عناصر در نسبت به قطر اصلی متقارن هستند). matrix.is_antisymmetric() تعیین می‌کند که آیا یک ماتریس ضد متقارن است (ترانهاده آن برابر با منفی خود است). matrix.is_diagonal() تعیین می‌کند که آیا ماتریس قطری است (تمام عناصر خارج از قطر اصلی صفر هستند). matrix.is_antidiagonal() تعیین می‌کند که آیا ماتریس ضد قطری است (تمام عناصر خارج از قطر ثانویه صفر هستند). matrix.is_triangular() تعیین می‌کند که آیا ماتریس مثلثی است (اگر تمام عناصر بالای یا زیر…

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید.

matrix.is_stochastic() این تابع بررسی می‌کند که آیا ماتریس تصادفی است یا خیر.
matrix.is_square() این تابع بررسی می‌کند که آیا ماتریس مربع است (یعنی تعداد سطرها و ستون‌های آن برابر است).

برخی از توابع موجود اکنون از ماتریس‌ها نیز پشتیبانی می‌کنند: ساختار for…in به شما امکان می‌دهد که از سطرهای ماتریس عبور کنید و از آنان به عنوان آرایه استفاده کنید. تابع str.tostring() ماتریس را به نمایش رشته‌ای آن تبدیل می‌کند.

در مثال زیر، ما یک ماتریس ایجاد می‌کنیم و عناصر آن را بر اساس مقادیر اولین ستون به صورت صعودی مرتب می‌کنیم. سپس ماتریس را در یک جدول نمایش می‌دهیم:

 //@version=5
indicator("مثال ماتریس", overlay = true)

// ایجاد یک ماتریس ۲ در ۲ با مقادیر ‘na’.
m1 = matrix.new(2, 2, na)

// تنظیم مقادیر برای عناصر ماتریس. آرگومان اول شی ماتریس است که قبلاً ایجاد کردیم، آرگومان دوم شاخص سطر است (از ۰ برای سطر اول شروع می‌شود)، آرگومان سوم شاخص ستون است (از ۰ برای ستون اول شروع می‌شود). آخرین آرگومان مقدار باید تنظیم شود.
matrix.set(m1, 0, 0, 3)
matrix.set(m1, 0, 1, 4)
matrix.set(m1, 1, 0, 1)
matrix.set(m1, 1, 1, 2)

// کپی کردن ماتریس برای ایجاد یک ماتریس جدید.
m2 = matrix.copy(m1)

// مرتب‌سازی سطرهای ماتریس `m2` بر اساس مقادیر اولین ستون به صورت صعودی.
matrix.sort(m2, 0, order.ascending)

// نمایش عناصر ماتریس در جدول.
var t = table.new(position.top_right, 2, 2, color.green)
if barstate.islastconfirmedhistory
    table.cell(t, 0, 0, "ماتریس اصلی:")
    table.cell(t, 0, 1, str.tostring(m1))
    table.cell(t, 1, 0, "ماتریس مرتب‌شده:")
    table.cell(t, 1, 1, str.tostring(m2))

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

آتو تی کریپتو

در زیر نمونه‌هایی از اسکریپت‌هایی که توسط PineCoders در تریدینگ ویو منتشر شده‌اند و به آزمایش ویژگی‌های جدید Pine Script® کمک می‌کنند، ارائه می‌شود:

کتابخانه “Fit چند جمله‌ای” توسط RicardoSantos

آتو تی کریپتو

کتابخانه مذکور به انجام برازش چند جمله‌ای برای داده‌ها می‌پردازد. در آمار، برازش چند جمله‌ای نوعی تحلیل برازش است که در آن رابطه بین متغیر مستقل x و متغیر وابسته y به عنوان یک چند جمله‌ای از درجه n در x مدل‌سازی می‌شود.

کتابخانه “روش حداقل مربعات عادی” توسط lejmer

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

آتو تی کریپتو

یکی از روش‌های رایج برای تخمین ضرایب رگرسیون خطی، استفاده از روش حداقل مربعات معمولی (OLS) است. این مجموعه قابلیت این را دارد که رگرسیون خطی را با چندین متغیر مستقل بر روی یک متغیر وابسته برازش دهد، به شرطی که فرضیات مربوط به OLS برقرار باشد.

احتمال قیمت تنزیل شده” توسط HeWhoMustNotBeNamed

آتو تی کریپتو

این اسکریپت، همبستگی تاریخی قیمت و مبانی را مقایسه کرده و احتمال undervalued بودن را تعریف می‌کند.

امیدواریم این ویژگی که به شدت درخواست شده است برایتان مفید باشد. لطفاً بازخورد و پیشنهادات خود را برای بهبود به ما ارسال کنید. ما تریدینگ ویو را برای شما ساخته‌ایم و همیشه مشتاق دریافت نظرات شما هستیم.

برای آگاهی از ویژگی‌های جدید پاین، به یادداشت‌های انتشار راهنمای کاربر پاین توجه کنید. حساب PineCoders همچنین به‌روزرسانی‌هایی را از Squawk Box خود در تلگرام و همچنین از حساب توییتر خود پخش می‌کند و همچنین از چت عمومی بیت پاین اسکریپت® در تریدینگ ویو.

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

آموزش گزارش جدید آزمایش استراتژی در تریدینگ ویو

دیدگاهتان را بنویسید