תכונות חדשות בפיין סקריפט- str.format () ו- array.from ()

May 21, 2021

.עדכון זה של שפת הפיין סקריפט מוסיף פונקציות לעבודה עם מחרוזות ומערכים

:מאפשרת להמיר את הארגומנטים שהועברו אליה למחרוזת עם פורמט מוגדר str.format () הפונקציה

str.format(formatString, arg0, arg1, ...) -> string

 “{}” כולל תת-סוגריים בסוגריים N  FormatString ה
וכמה מהדפוסים שנדונו arg0, arg1..argN כדי להחליף את הארגומנטים המעוצבים המתאימים
(שהם מחרוזות או מספרים) להלן
str.replace_all () לכן, לצורך ניתוח מחרוזות, אינך צריך יותר להשתמש בבנייה באמצעות הפונקציה

txt := "Time to {0} some {1}!"

txt := str.replace_all(txt, "{0}", close > open ? "buy" : "sell")

txt := str.replace_all(txt, "{1}", syminfo.ticker)

:אבל אתה יכול לעשות את זה בדרך חדשה, נוחה וקצרה יותר

txt = str.format("Time to {0} some {1}!", close > open ? "buy" : "sell", syminfo.ticker)


:סקריפטי המשנה {0} ו- {1} הכלולים בסוגריים מוחלפים בארגומנטים המקובלים המתאימים
מוחזרת בהתאם לאי שוויון  “buy” or “sell” התוצאה של ביצוע המפעיל השלישי, המחרוזת -{0}
,{1} – syminfo.ticker המחירים. סגירה ופתיחה
:הסימול הנוכחי בגרף

.ניתן להמיר את המספר שהומר למחרוזת לייצוג אחר number באמצעות תבנית
למשל, כדי להגביל את מספר המקומות העשרוניים

str.format("{0,number,#.#}", 1.34) // returns: 1.3

:למחוק את חלק השבר של המספר

str.format("{0,number,integer}", 1.34) // returns: 1

:לקבל מידע פיננסי

str.format("The cash turnover amounted to {0,number,currency}", 1340000) 

// “The cash turnover amounted to $1,340,000.00”.

:לקבל אחוזים

str.format("Expected return is {0,number,percent} - {1,number,percent}", 0.1, 0.2)  

// returns: Expected return is 10% - 20%.

.תומכת בתבנית התאריך לעיצוב תאריך / שעה str.format () הפונקציה
:סקריפט זה מציג את מספר החודשים, השבועות והימים מתחילת השנה

//@version=4
study("str_format_date")

//formatting string with date pattern
txt = str.format("Current bar date: {0,date, Y-MM-d'.' \n M 'months \n' F 'weeks \n' D 'days \n from the beginning of the year' }", timenow)

//printing label
var l1 = label.new(na, na, color = #FFFFFF00)
label.set_x(l1, bar_index)
label.set_yloc(l1, yloc.belowbar)
label.set_text(l1, txt)

plot(close)

 

 :UNIX המכילה את ייצוג הזמן של ,str.format () מועבר לפונקציה  timenow רק משתנה אחד
התאריך הנוכחי, השעה ואזור הזמן להחלפת סימול בגרף. המחרוזת מעוצבת באמצעות התווים
.(שנה, חודש, יום, שבוע בחודש) Y, M, D, F
.עבור מעברי שורות ומרכאות בודדות ”להכנסת טקסט בין תווים \n ,התו המיוחד

str.format () סקריפט זה מפיק מחרוזות מעוצבות לתווית והתוצאה המתאימה לפונקציה
:עם תווים שונים

//@version=4
study("str_format_date_time")

// creating date-time variable: 2021.05.04. 14:30:59
t = timestamp("GMT+0", 2021, 05, 04, 14, 30, 59)

// function for left side of the label
f_print_left(_text)  => var _label = label.new(bar_index, na, _text, xloc.bar_index, yloc.price, color(na), label.style_label_right, color.green, size.large, text.align_right), label.set_xy(_label, bar_index, 0), label.set_text(_label, _text)

// function for right side of the label
f_print_right(_text) => var _label = label.new(bar_index, na, _text, xloc.bar_index, yloc.price, color(na), label.style_label_left, color.red, size.large, text.align_left), label.set_xy(_label, bar_index, 0), label.set_text(_label, _text)

var string format = 
  "{0,date,y.MM.dd hh:mm:ss}\n" +
  "{1,date,short}\n" +
  "{2,date,medium}\n" +
  "{3,date,long}\n" +
  "{4,date,full}\n" +
  "{5,date,h a z (zzzz)}\n" +
  "{6,time,short}\n" +
  "{7,time,medium}\n" +
  "{8,time,long}\n" +
  "{9,time,full}\n" + 
  "{10,time,hh:mm:ss}\n" +
  "{11,time,HH:mm:ss}\n"

// printing format string 
f_print_left(format)
//printing formatted string
f_print_right(str.format(format, t, t, t, t, t, t, t, t, t, t, t, t))

העמודה השמאלית של התווית מכילה את התווים הכלולים ב- {}, הימנית היא תוצאה של פונקציית
str.format

:UNIX המכילה את ייצוג הזמן של str.format () מועבר לפונקציה t המשתנה
שלוקח מספר משתנה של  array.from () התאריך, השעה ואזור הזמן הנוכחי. החידוש הבא הוא הפונקציה
,float, int, bool, string, label, line, color :ארגומנטים קלט מאחד מהסוגים הבאים
ומחזיר מערך מהסוג המתאים. הפונקציה מאפשרת לך להכריז על מערך, להקצות לו ערכים ראשוניים
.ולהקצות את התוצאה לכל משתנה בשורת קוד אחת בלבד

array.new () בעבר, כדי ליצור מערך ולמלא אותו בערכים ראשוניים, היית צריך להשתמש בפונקציה
:array.push () או array.set ()  ובפונקציות

color[] plotColors = array.new_color(size=0)
array.push(plotColors, color.red)
array.push(plotColors, color.green)
array.push(plotColors, #0000FF)

:כעת, כדי ליצור מערך שיכיל את צבעי הגרפים, תוכלו להסתדר בשורה אחת בלבד

plotColors = array.from(color.red, color.green, #0000FF)

בהתבסס על הארגומנטים color[] לסוג plotColors הפונקציה תטיל באופן אוטומטי את מערך
:שהתקבלו

//@version=4
study(title="array_from")

f_arr (series1, series2, color1, color2) =>
    [ array.from(series1, series2), array.from(color1, color2) ]

[lines, colors] = f_arr(close, open, color.red, color.green)    

plot ( array.get(lines, 0), color = array.get(colors, 0))
plot ( array.get(lines, 1), color = array.get(colors, 1))

.זמין תמיד במדריך ההתייחסות שלנו array.from () ו  str.format () מידע אודות פונקציות
משדר PineCoders  אם תרצה לדעת על עדכוני סקריפט פיין, עיין בסעיף הערות עדכון. חשבון
.TradingView- ב Pine Script  בטוויטר ובצ’אט הציבורי  Squawk Box עדכונים גם בערוץ הטלגרם של

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

Look first Then leap

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