พบกับเวอร์ชั่นใหม่ของ ไพน์สคริปต์เวอร์ชั่น 4! ที่รวบรวมฟีเจอร์ใหม่มากมาย เราปรับปรุงโครงสร้างของภาษาและแก้ไขปัญหาหลายประการ แต่อย่างไรก็ตาม ฟีเจอร์ที่สำคัญและมีการรอคอยมาอย่างยาวนานนั้นคือ การสนับสนุนการใช้งานด้านการวาดภาพ วัตถุ
เราจะทำการพูดถึงฟีเจอร์ใหม่โดยสังเขปในบล็อกของเรานี้ และโปรดอ่าน เอกสาร และ คู่มืออ้างอิง ถ้าคุณต้องการเรียนรู้มากขึ้นรายละเอียด (โปรดทราบว่าคุณสามารถตรงไปยังส่วนของ คำอธิบายการวาดภาพวัตถุ ได้เช่นเดียวกัน)
ป้ายชื่อ
ฟังก์ชัน label.new ทำให้คุณสามารถเขียนป้ายชื่อลงบนชาร์ตได้ที่รวมถึงอันที่ประกอบไปด้วยข้อความแบบ arbitrary นี่เป็นตัวอย่างของสคริปต์ที่ทำการเขียนป้ายชื่อที่ประกอบไปด้วยราคาปิดของแท่งกราฟแท่งสุดท้าย
//@version=4 study("Last Bar Price", overlay=true) l = label.new(bar_index, na, 'last price is '+tostring(close), color=close >= open ? color.green : color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar) label.delete(l[1])
คุณสามารถ แก้ไข หรือ ลบ วัตถุป้ายชื่อได้หลังขากที่สร้างมันขึ้นมาโดยใช้ ฟังก์ชันในตระกูล label.* นี่เป็นตัวอย่างสคริปต์ที่ซับซ้อนมากขึ้นในการใช้ป้ายชื่อ — Pivot Points High/Low
เส้นตรง
ฟังก์ชัน line.new ทำให้คุณสามารถลากเส้นตรงลงบนชาร์ตได้ นี่เป็นตัวอย่างของสคริปต์ที่ทำการลากเส้นตรงที่เชื่อมระหว่างจุดสูงสุดของแท่งกราฟปัจจุบันและจุดต่ำสุดของแท่งกราฟในอดีตย้อนหลังไป 10 แท่ง
//@version=4 study("Line", overlay=true) l = line.new(bar_index, high, bar_index[10], low[10], width = 4) line.delete(l[1])
เส้นตรงสามารถ แก้ไข หรือ ลบ ได้โดยใช้ฟังก์ชันที่เกี่ยวข้องเหมาะสมในตระกูล line.* นี่เป็นตัวอย่างสคริปต์ที่ซับซ้อนมากขึ้นในการใช้งานเส้นตรง — Zig Zag
โปรดทราบว่าปัจจุบันนี้เราสามารถแสดงผลวัตถุต่าง ๆ ได้ประมาณ 50 – 55 อันบนชาร์ตของวัตถุประเภทเดียวกัน (ป้ายชื่อ หรือ เส้นตรง) ต่อหนึ่งสคริปต์ นี่เป็นการออกแบบให้ มีข้อจำกัดอย่างจงใจ เพื่อป้องกันการใช้งานเซิร์ฟเวอร์อย่างเกินความจำเป็น
ประเภทข้อมูลใหม่แบบเส้นตรงและป้ายชื่อเสริมความสามารถและความเป็นไปได้ของไพน์สคริปต์เป็นอย่างยิ่ง ที่ทำให้คุณพัฒนาเงื่อนไขที่สลับซับซ้อนภายใต้อินดิเคเตอร์ที่เป็นที่นิยมในสคริปต์ของผู้ใช้งาน ตัวอย่างนั้นสามารถดูได้ที่ เอกสาร
ชุดข้อความ
ตอนนี้เราสนับสนนการใช้งานตัวแปรของประเภทข้อมูลแบบ ชุดข้อความ นี่เป็นตัวอย่างของการใช้งานชุดข้อความในป้ายชื่อ
//@version=4 study("Series string", overlay = true) draw_label(title) => label.new(bar_index, high, text=title) t = close >= open ? "green" : "red" draw_label(t)
Var คีย์เวิร์ด
ตัวแปรที่ถูกประกาศไว้ในทางปกติทั่วไปนั้นจะถูกเริ่มต้นใหม่ในแต่ละครั้งของการคำนวณของสคริปต์ ซึ่งทำให้สคริปต์จำเป็นต้องมีการถ่ายทอดตัวแปรจากค่าก่อนหน้าต่างหากแยกออกไป การประกาศตัวแปร Var คีย์เวิร์ด จะทำให้มีการเริ่มต้นใหม่เพียงแค่ครั้งเดียวเท่านั้น นี่ทำให้ค่าของตัวแปรถูกบันทึกโดยอัตโนมัติระหว่างแท่งกราฟจาก ณ. เวลาที่มีการเริ่มต้นใหม่หรือการกำหนดค่าให้ครั้งสุดท้าย นี่เป็นตัวอย่างของสคริปต์ที่นับจำนวนของแท่งกราฟสีเขียวบนชาร์ต:
//@version=4 study("My Script") var s = 0.0 if close >= open s := s + 1 plot(s)
ในแต่ละครั้งเมื่อเงื่อนไข close >= open เป็นจริง ค่าของตัวแปร s จะเพิ่มทีละ 1 ค่าของการกำหนดค่าเริ่มต้นใหม่สามารถเป็น expression ทางคณิตศาสตร์อะไรก็ได้
Syntax ของการประกาศตัวแปรด้วย คีย์เวิร์ด var หลีกเลี่ยงการใช้งานโค้ดเหล่านี้ : s := nz(s[1], s) การประกาศตัวแปรด้วย var modifier จะเป็นประโยชน์อย่างยิ่งเมื่อใช้งานกับภาพวาด drawing ใดๆ
การเปลี่ยนชื่อของ ค่าคงที่ ตัวแปร และฟังก์ชัน บิวท์-อิน
ในไพน์สคริปต์เวอร์ชั่น 4 ค่าคงที่ ตัวแปร และฟังก์ชันบิวท์อินต่อไปนี้ถูกเปลี่ยนชื่อ:
- ค่าคงที่ Color (ตัวอย่าง red) ถูกเปลี่ยนไปเป็น color.* namespace (ตัวอย่างเช่น color.red)
- ฟังก์ชัน colorได้เปลี่ยนชื่อเป็น color.new
- ค่าคงที่สำหรับประเภทของ input (ตัวอย่าง integer) ถูกเปลี่ยนไปเป็น input.*namespace (ตัวอย่างเช่น input.integer)
- ค่าคงที่ สไตล์การพล็อต (ตัวอย่าง histogram) ถูกเปลี่ยนไปเป็น plot.style_*namespace (ตัวอย่างเช่น plot.style_histogram)
- ค่าคงที่สไตล์สำหรับฟังก์ชัน hline(ตัวอย่าง dotted สไตล์) ถูกเปลี่ยนไปเป็น hline.style_* namespace (ตัวอย่างเช่น hline.style_dotted)
- ค่าคงที่วันของสัปดาห์ (ตัวอย่าง sunday) ถูกเปลี่ยนไปเป็น dayofweek.* namespace (ตัวอย่างเช่น dayofweek.sunday)
- ตัวแปรของกรอบเวลาของชาร์ตปัจจุบัน (ตัวอย่าง period, isintraday) ถูกเปลี่ยนไปเป็น timeframe.*namespace (ตัวอย่างเช่น timeframe.period, timeframe.isintraday)
- ตัวแปร intervalถูกเปลี่ยนไปเป็น timeframe.multiplier
- ตัวแปร tickerและ tickerid ถูกเปลี่ยนไปเป็น syminfo.ticker และ syminfo.tickerid ตามลำดับ
- ตัวแปร n ที่ประกอบไปด้วยค่าดัชนีของแท่งกราฟ ถูกเปลี่ยนไปเป็น bar_index
สาเหตุเบื้องหลังการเปลี่ยนชื่อของรายการด้านบนนั้นเพื่อปรับโครงสร้างภาษาให้เข้ากับเครื่องมือภาษาโปรแกรมมาตรฐานและทำให้การทำงานกับโค๊ดนั้นง่ายขึ้นกว่าเดิม ชื่อใหม่ถูกรวมกันตามคำนำหน้าร่วมอันเดียวกัน ตัวอย่างเช่น คุณจะเห็นรายการของค่าคงที่ของสีทั้งหมด ถ้าคุณพิมพ์คำว่า ‘color’ ในช่องการเขียนโค๊ดและกดปุ่ม Ctrl + Space
การประกาศประเภทของตัวแปรอย่างชัดเจน
ในไพน์สคริปต์เวอร์ชั่น 4 นั้นคุณจะไม่สามารถสร้างตัวแปรที่เป็นประเภทแบบ unknown ณ. เวลาที่ทำการประกาศตัวแปรได้อีกต่อไป (ดู na value) ทั้งนี้เพื่อหลีกเลี่ยงปัญหานานัปการที่จะเกิดขึ้นเมื่อประเภทตัวแปรมีการเปลี่ยนแปลงในตอนที่มีการเริ่มต้นค่าใหม่ด้วยค่า na จากนี้ไป คุณจำเป็นต้องระบุประเภทตัวแปรอย่างเฉพาะเจาะจงเมื่อใช้คีย์เวิร์ดหรือฟังก์ชัน type (ตัวอย่างเช่น float) เมื่อประกาศตัวแปรด้วยค่า na
//@version=4 study("NA", overlay=true) float a = na a := if close >= open high else low plot(a)
ลองใช้งานไพน์สคริปต์ใหม่เวอร์ชั่น 4! ผู้ใช้งานของเราบางท่านได้ทดสอบฟีเจอร์ใหม่แล้วและได้เขียนความประทับใจในการใช้งานสคริปต์การวาดภาพ
ตัวอย่างเช่น Ricardo Santos ได้เขียนสคริปต์หลาย ๆ อันที่คุณสามารถดูได้ด้านล่างนี้
Joris Duyck ได้เขียนสคริปต์ เส้นแนวโน้ม แสดงความน่าจะเป็นของวัตถุเส้นตรง
เราหวังเป็นอย่างยิ่งว่าตัวอย่างเหล่านี้จะจุดประกายและไฟในตัวของคุณ! คุณสามารถสอบถามคำถาม พูดคุยสนทนาประเด็นต่าง ๆ และแชร์ข้อคิดเห็นคำแนะนำใน แชทของเรา เราต้องการแสดงคำขอบคุณไปยัง สมาชิกของสังคมนักเขียน Pinescripters ผู้ซึ่งเป็นส่วนหนึ่งในการทดสอบเบต้าและช่วยเหลือเราเป็นอย่างมาก! คุณสามารถสอบถามคำถามเกี่ยวกันโค๊ดการเขียนโปรแกรมของคุณได้ที่ หน้า Stack Overflow ของเรา
ไม่พลาดข่าวสารอัพเดท ไอเดียเด็ด ติดตามเทรดดิ้งวิวประเทศไทย ได้ที่ Line ID: @tradingview_th
คลิ๊กลิ้งค์ 👉 https://line.me/R/ti/p/@tradingview_th
และทวิตเตอร์ (Twitter) ค้นหา “TradingView Thailand” หรือ “@th_tradingview”