การอัปเดต 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 ตอนนี้เรามีชุดฟังก์ชันและค่าคงที่เกี่ยวกับคณิตศาสตร์ใหม่ทั้งหมด:
- ค่าคงที่ใหม่ pi, math.phi, math.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”