Pine Script™-מטריצות מגיעות ל

Apr 5, 2022

קוונטים יכולים כעת להשתמש במטריצות בסקריפטים שלהם! הם מיושמים כאובייקט חדש עם מרחב השמות הייעודי שלו וקבוצה
.שלמה של 49 פונקציות נלוות המאפשרות לך ליצור ולשנות אותן ולבצע אלגברה מטריצת משותפת

פונקציות הקשורות למטריצה חיות במטריצה.* מרחב השמות. ניתן ליצור מטריצה פשוטה על ידי קריאה לפונקציה
:למשל matrix.new<type>(rows, columns, initial_value)

// Creates a 2x3 (2 rows x 3 columns) "int" matrix with values zero.
m = matrix.new<int>(2, 3, 0)

כדי להגדיר את הערך של אלמנטים ספציפיים, או באמצעות matrix.set() אתה יכול למלא מטריצה על ידי קריאה לפונקציה
כדי למלא את המטריצה כולה בערך. מטריצות תומכות בכל סוגי הפיין. כל האלמנטים במטריצה חייבים להיות מאותו .matrix.fill()
פונקציות אלגברה matrix.new<type>() סוג, אשר מצוין באמצעות תבניות הסוג החדשות (שם סוג בסוגריים “<>”) בקריאה
.פעולות אחרות מותרות בכל סוגי המטריצות .”int” ו-“float”; מטריצה זמינות רק עבור סוגים מספריים

פונקציות מטריקס

matrix.new<type> יוצר אובייקט מטריצה חדש. מטריצה היא מבנה נתונים דו מימדי המכיל שורות ועמודות. כל הרכיבים במטריצה חייבים להיות מהסוג שצוין בתבנית הסוג (“<type>”).
matrix.row() יוצר מערך חד מימדי מהאלמנטים של שורת מטריצה.
matrix.col() יוצר מערך חד מימדי מהאלמנטים של עמודת מטריצה.
matrix.get() מחזירה את האלמנט עם האינדקס שצוין של המטריצה.
matrix.set() מקצה value לרכיב באינדקס column ו row של המטריצה.
matrix.rows() מחזירה את מספר השורות במטריצה.
matrix.columns() מחזירה את מספר העמודות במטריצה.
matrix.elements_count() מחזירה את המספר הכולל של רכיבי מטריצה.
matrix.add_row() מוסיף שורה למטריצה. השורה יכולה להיות מורכבת יותר, או להשתמש במערך כדי לספק ערכים.
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() בונה מחדש את המטריצה לממדים של שורות x cols.
matrix.concat() הוסף מטריצה אחת לאחרת.
matrix.sum() מחזירה מטריצה חדשה הנובעת מסכום של שתי מטריצות, או של מטריצה וסקלרית (ערך מספרי).
matrix.diff() מחזירה מטריצה חדשה הנובעת מהחיסור בין מטריצות, או של מטריצה וסקלרית (ערך מספרי).
matrix.mult() מחזירה מטריצה חדשה הנובעת מהמכפלה בין המטריצות, או בין מטריצה לסקלרית (ערך מספרי), או בין מטריצה לוקטור (מערך של ערכים).
matrix.sort() מסדר מחדש את השורות במטריצת המזהה לפי הסדר הממוין של הערכים ב column.
matrix.avg() מחשב את הממוצע של כל האלמנטים במטריצה.
matrix.max() מחזירה את הערך הגדול ביותר ממרכיבי המטריצה.
matrix.min() מחזירה את הערך הקטן ביותר ממרכיבי המטריצה.
matrix.median() מחשב את החציון (“הערך האמצעי”) של רכיבי מטריצה.
matrix.mode() מחשב את מצב המטריצה, שהוא הערך השכיח ביותר ממרכיבי המטריצה. כאשר ישנם מספר ערכים המתרחשים בתדירות שווה, הפונקציה מחזירה את הקטן מבין הערכים הללו.
matrix.pow() מחשב את מכפלת המטריצה בעצמו זמני הספק.
matrix.det() החזרת הקובע של מטריצה מרובעת.
matrix.transpose() יוצר גרסה חדשה שעברה טרנספוזיציה של המטריצה על ידי החלפת אינדקס השורה והעמודה של כל רכיב.
matrix.pinv() מחזירה את הפסאודו-היפוך של מטריצה.
matrix.inv() מחזירה את היפוך של מטריצה מרובעת.
matrix.rank() מחשב את דרגת המטריצה.
matrix.trace() מחשב את עקבות המטריצה (סכום האלמנטים של האלכסון הראשי).
matrix.eigenvalues() מחזירה מערך המכיל את הערכים העצמיים של מטריצה מרובעת.
matrix.eigenvectors() מחזירה מטריצה של וקטורים עצמיים, שבה כל עמודה היא וקטור עצמי של המטריצה.
matrix.kron() מחזירה את המוצר Kronecker עבור שתי המטריצות.
matrix.is_zero() קובע אם כל הרכיבים של המטריצה הם אפס.
matrix.is_identity() קובע אם מטריצה היא מטריצת זהות (אלמנטים עם אלה באלכסון הראשי ואפסים במקום אחר).
matrix.is_binary() קובע אם המטריצה היא בינארית (כאשר כל האלמנטים של המטריצה הם 0 או 1).
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("Matrix Example", overlay = true)

// Create a 2x2 matrix with ‘na’ values. 
m1 = matrix.new<float>(2, 2, na)


// Set values to the matrix’s elements. First argument is the matrix object we created before, second is a row index (it starts from 0 for the first row), third is a column index (it starts from 0 for the first column). Last argument is the value to set.
matrix.set(m1, 0, 0, 3)
matrix.set(m1, 0, 1, 4)
matrix.set(m1, 1, 0, 1)
matrix.set(m1, 1, 1, 2)

// Copy the matrix to create a new one.
m2 = matrix.copy(m1)

// Sort rows of the `m2` matrix based on the values of the first column, in ascending order. 
matrix.sort(m2, 0, order.ascending)


// Display the matrix’s elements in the table.
var t = table.new(position.top_right, 2, 2, color.green)
if barstate.islastconfirmedhistory
    table.cell(t, 0, 0, "Original Matrix:")
    table.cell(t, 0, 1, str.tostring(m1))
    table.cell(t, 1, 0, "Sorted Matrix:")
    table.cell(t, 1, 1, str.tostring(m2))

שעוזרים לנו לבדוק תכונות PineCoders  על ידי TradingView הפרסומים הבאים הם דוגמאות לסקריפטים שפורסמו ב
:Pine Script™  של

 “Function Polynomial Fit” library מאת RicardoSantos

מבצע התאמה של רגרסיה פולינומית לנתונים. בסטטיסטיקה, רגרסיה פולינומית היא סוג של ניתוח רגרסיה שבו הקשר בין
.x-ב n מעוצב כפולינום מדרגה y למשתנה התלוי x המשתנה הבלתי תלוי

Ordinary Least Squares” מאת  lejmer

Ordinary Least Squares אחת הדרכים הנפוצות ביותר להעריך את המקדמים עבור רגרסיה ליניארית היא להשתמש בשיטת
ניתן להשתמש ביישום זה כדי להתאים רגרסיה ליניארית של מספר משתנים בלתי תלויים למשתנה תלוי אחד, כל עוד .(OLS)
.מתקיימות OLS ההנחות מאחורי

Discounted Price Probability” מאת HeWhoMustNotBeNamed

 

.הסקריפט משווה את המתאם ההיסטורי של המחיר והפונדמנטל ומגדיר את ההסתברות להיות לא מספיק מוערכת

אנו מקווים שתמצא תכונה מבוקשת זו שימושית. אנא המשיכו לשלוח לנו משוב והצעות לשיפור. אנו בונים עבורך
.ותמיד נשמח לשמוע ממך TradingView

כדי להישאר מעודכן לגבי תכונות חדשות של פיין, עקוב אחר הערות השחרור של מדריך למשתמש של פיין. חשבון
Pine Script -שלו בטלגרם, חשבון הטוויטר וב Squawk Box משדר גם עדכונים מהחשבון PineCoders
.TradingView ב

Look first Then leap

TradingView נבנית עבורך, אז וודא שאתה מפיק את המקסימום מהתכונות המצויינות שלנו
פתח גרף