ขณะนี้ผู้เขียนโค้ด Pine สามารถใช้ความยาวที่คำนวณแบบไดนามิกในฟังก์ชันต่อไปนี้:
alma()
change()
highest()
highestbars()
linreg()
lowest()
lowestbars()
mom()
sma()
sum()
vwma()
wma()
ความยาวของซีรี่ส์จะทำให้ง่ายต่อการสร้างอินดิเคเตอร์ไพน์แบบปรับได้ โดยใช้การคำนวณตามช่วงเวลาที่ผันแปร ดูตัวอย่างที่นี่ เช่นวิธีที่เราใช้ความผันผวนเพื่อลดระยะเวลา ALMA ให้สั้นลงหรือยาวขึ้นบนเส้นหนาและเปรียบเทียบกับ ALMA แบบคงที่ที่แสดงด้วยเส้นบาง ๆ :
//@version=4
study("Adaptive ALMA", "AALMA", true)
i_minLen = input(10, minval = 1)
i_maxLen = input(60, minval = 1)
i_adaptPct = input(3., minval = 0, maxval = 100) / 100.0
startingLen = avg(i_minLen, i_maxLen)
var float dynamicLen = startingLen
highVolatility = atr(10) > atr(40)
if highVolatility
dynamicLen := max(i_minLen, dynamicLen * (1 - i_adaptPct))
else
dynamicLen := min(i_maxLen, dynamicLen * (1 + i_adaptPct))
dynamicAlma = alma(close, int(dynamicLen), 0.85, 6)
staticAlma = alma(close, int(startingLen), 0.85, 6)
maColor(_ma) => close > _ma ? highVolatility ? #40FF00ff : #40FF0060 : highVolatility ? #FF0080ff : #FF008060
plot(dynamicAlma, "Dynamic Alma", maColor(dynamicAlma), 3)
plot(staticAlma, "Static Alma", maColor(staticAlma), 1)
// Follow the calculated Length in the Data Window.
plotchar(dynamicLen, "dynamicLength", "")

แม้ว่าการใช้การลอยตัวเพื่อคำนวณความยาวแบบไดนามิกอาจสะดวก แต่โปรดอย่าลืมโยนให้เป็น “int” ก่อนที่จะใช้ในการเรียกฟังก์ชันดังที่เราทำในตัวอย่างของเรา นอกจากนี้โปรดทราบว่าตามปกติฟังก์ชันเหล่านี้ต้องการการประเมินผลในทุกแถบดังนั้นควรใช้นอก `for` ลูปและบล็อก `if` จะไม่ดำเนินการในทุกแถบ
เราหวังว่าคุณลักษณะใหม่ที่คุณร้องขอจะเป็นประโยชน์ โปรดส่งข้อเสนอแนะของคุณต่อไปเพื่อการปรับปรุง เราสร้าง TradingView สำหรับคุณและชอบที่จะได้ยินสิ่งที่คุณคิดเกี่ยวกับการอัปเดตที่ร้องขออย่างสูงเหล่านี้ในแพลตฟอร์มของเรา
ติดตาม TradingView ประเทศไทย ได้ทาง Line ID: @tradingview_th
