มีอะไรใหม่ใน Pine?

Apr 9, 2021

การอัปเดต Pine ทั้งหมดอาจไม่มีการโพสต์บล็อกแยกต่างหาก แต่คุณไม่มีทางรู้เลยว่าเมื่อไรที่คุณลักษณะใหม่อาจมีประโยชน์สำหรับการเขียนโค้ดสคริปต์ของคุณ โพสต์นี้นำเสนอการปรับปรุงล่าสุดที่อาจหลุดรอดไปจากเรดาร์ของคุณ

คีย์เวิร์ด varip มีประโยชน์เมื่อคุณต้องการติดตามข้อมูลบางอย่างและการเปลี่ยนแปลงภายในแถบเรียลไทม์ ตัวแปร Pine แบบปกติทั้งหมดจะขึ้นอยู่กับสิ่งที่เรียกว่า rollback ซึ่งในแต่ละ tick ของข้อมูลใหม่แต่ละครั้งสถานะของตัวแปรจะถูกรีเซ็ตกลับไปเป็นค่าของแท่งกราฟก่อนหน้า ก่อนที่จะมีการประเมินข้อมูลใหม่ คีย์เวิร์ด varip จะหลีกเลี่ยงสิ่งนี้และช่วยให้คุณสามารถเปรียบเทียบค่าปัจจุบันของตัวแปรกับค่าใน tick ก่อนหน้า (ซึ่งตรงข้ามกับแท่งกราฟก่อนหน้า) ซึ่งจะเปิดโลกใหม่แห่งความเป็นไปได้ ดูแผนภูมิ tick ที่สร้างขึ้นโดยหนึ่งใน Pine Wizards ของเรา LonesomeTheBlue :

https://www.tradingview.com/script/ygNO2G1V-Tick-Chart/

หากต้องการเรียนรู้เพิ่มเติมโปรดอ่านบทแนะนำเชิงลึกเกี่ยวกับ varip โดย PineCoders:

https://www.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

สำหรับท่านที่มีความต้องการทางคณิตศาสตร์เพิ่มเติมใน Pine ตอนนี้เรามีชุดฟังก์ชันและค่าคงที่เกี่ยวกับคณิตศาสตร์ใหม่ทั้งหมด:

  • ค่าคงที่ใหม่ pimath.phimath.rphi และ math.e
  • ฟังก์ชัน round()ใหม่ – ฟังก์ชันนี้ช่วยให้คุณสามารถระบุความแม่นยำของการปัดเศษแทนที่จะปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุดเสมอ
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

นี่คือกลยุทธ์สำหรับผู้ที่ชอบใช้ชีวิตอย่างโลดโผน: การเข้าและการออกทั้งหมดจะมีการสุ่มตามเปอร์เซ็นต์ที่ระบุไว้ในส่วนอินพุตทั้งหมดนี้ต้องขอบคุณฟังก์ชัน random():

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

ในการพัฒนาด้านอื่น ตัวดำเนินการ := ได้ถูกรวมเข้ากับตัวดำเนินการทางคณิตศาสตร์เพื่อสร้างตัวดำเนินการกำหนดใหม่ +=, -=, *=, /= และ %= สิ่งเหล่านี้ช่วยให้คุณจัดระเบียบและย่อสคริปต์ของคุณ: แทนที่จะใช้ a := a+1 คุณสามารถเขียน a += 1 การปรับปรุงเพียงเล็กน้อย แต่ค่อนข้างสะดวกยิ่งขึ้น

หากคุณเคยพบว่าตัวเองจำเป็นต้องแปลงสตริงเป็นตัวเลขฟังก์ชัน tonumber() ใหม่ จะช่วยให้คุณทำสิ่งนั้นได้ ตัวอย่างเช่นในสคริปต์ด้านล่าง tonumber() ร่วมกับฟังก์ชันที่เกี่ยวข้องกับสตริงอื่นๆ เช่น str.split() และ str.replace_all() อนุญาตให้ฟิลด์อินพุตสตริงเดียวส่งคืนค่าจำนวนเต็มหลายค่าที่ใช้เป็นความยาว สำหรับการคำนวณ SMA ไม่มีเหตุผลที่น่าสนใจที่จะทำด้วยวิธีนี้ แทนที่จะใช้ “อินพุตแยกต่างหากสำหรับ SMA แต่ละวิธี” ที่ถูกต้องและสะดวกสบาย … แต่ถ้าคุณต้องการก็อยู่ที่นี่:

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

เราได้เพิ่มตัวแปร time_tradingday ซึ่งจะส่งคืนเวลาแบบ UNIX ของวันเริ่มต้นของวันซื้อขาย สิ่งนี้จะมีประโยชน์เมื่อวิเคราะห์สัญลักษณ์ที่มีการซื้อขายข้ามคืนเช่น EURUSD ซึ่งการซื้อขายจะเริ่มในวันอาทิตย์ในขณะที่ในทางเทคนิคแล้ววันซื้อขายคือวันจันทร์

ฟังก์ชัน time_close() ใหม่ ช่วยให้คุณได้รับเวลาปิดของแท่งเทียนจากกรอบเวลาและเซสชันที่ระบุ (ตรงกันข้ามกับตัวแปร time_close ที่มีอยู่ก่อนหน้านี้ ซึ่งใช้กับกรอบเวลา/เซสชันของแผนภูมิเท่านั้น) สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการวาดภาพทำให้คุณสามารถวาดเส้นและป้ายกำกับในอนาคตได้แม่นยำยิ่งขึ้น หากต้องการดูการใช้งานจริงให้ตรวจสอบสิ่งที่ JayRogers ใช้กับอินดิเคเตอร์ Pivot Points:

https://www.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

ด้วยพารามิเตอร์ format.percent ใหม่ ของ study() ผลลัพธ์ของสคริปต์ของคุณสามารถจัดรูปแบบเป็นเปอร์เซ็นต์โดยอัตโนมัติได้แล้ว ดูการใช้งานจริงด้วยบิวท์อินอินดิเคเตอร์ Aroon:

//@version=4
study(title="Aroon", shorttitle="Aroon", overlay=false, format=format.percent, precision=2, resolution="")
length = input(14, minval=1)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
plot(upper, "Aroon Up", color=#FF6A00)
plot(lower, "Aroon Down", color=#0094FF)

ตัวแปรใหม่ 3 ตัว ได้แก่ session.ismarket, session.ispremarket และ session.ispostmarket ช่วยให้คุณตรวจสอบ ส่วนของเซสชันระหว่างวันที่เกี่ยวข้องกับแท่งเทียนปัจจุบันได้ โปรดทราบว่าชั่วโมงที่ขยายจะแสดงเฉพาะในแผนภูมิระหว่างวันและเฉพาะเมื่อเปิดใช้งานตัวเลือกนี้อย่างชัดเจนผ่านการตั้งค่าเท่านั้น

หากคุณต้องการเรียนรู้เกี่ยวกับการอัปเดต Pine ทันทีที่เกิดขึ้นโปรดตรวจสอบ Release Notes ในคู่มือผู้ใช้ของเรา PineCoders ยังเผยแพร่ข่าวสารเกี่ยวกับการอัปเดตในช่อง Squawk Box Telegram ของพวกเขาบน Twitter และในแชทสาธารณะของ Pine Script บน TradingView

เราหวังว่าคุณจะพบว่าการปรับปรุงเหล่านี้มีประโยชน์ โปรดส่งข้อเสนอแนะของคุณต่อไป เราสร้าง TradingView สำหรับผู้ใช้ของเราและเรายินดีรับฟังความคิดเห็นจากคุณ


ติดตาม TradingView ประเทศไทย ได้ทาง Line ID: @tradingview_th และทวิตเตอร์ (Twitter) ค้นหา “TradingView Thailand

Look first Then leap

TradingView is built for you, so make sure you're getting the most of our awesome features
เปิดชาร์ต