ตารางคือออบเจ็กต์ที่สามารถใช้เพื่อจัดตำแหน่งข้อมูลในตำแหน่งเฉพาะและตำแหน่งคงที่ในพื้นที่ภาพของสคริปต์ ตรงกันข้ามกับพล๊อตหรือวัตถุอื่นๆ ทั้งหมดที่วาดใน Pine ตารางจะไม่ยึดกับแท่งใดแท่งหนึ่ง: ตารางจะลอยอยู่ในพื้นที่ของสคริปต์ ไม่ว่าจะอยู่ในโหมดโอเวอร์เลย์หรือโหมดหน้าต่าง ในการศึกษาหรือกลยุทธ์ โดยไม่ขึ้นอยู่กับการดูแถบแผนภูมิหรือปัจจัยการซูมที่ใช้
ฟังก์ชันใหม่นี้ช่วยให้คุณสามารถนำเสนอข้อมูลในแบบที่ไม่เคยทำได้มาก่อน คุณสามารถสร้างแผงแสดงผลที่สร้างขึ้นโดยอัตโนมัติพร้อมข้อมูลที่เกี่ยวข้องสำหรับสัญลักษณ์ปัจจุบันและปักหมุดไว้ที่ด้านข้างของหน้าจอของคุณ หรือสร้างแผนที่ฮีทแมพแบบไดนามิก หรือให้การเข้าถึงอย่างรวดเร็วไปยังข้อมูลใดๆ ที่มีอยู่ใน Pine — ความเป็นไปได้ไม่มีที่สิ้นสุด และไม่จำเป็นต้องพูด ตารางสามารถใช้ร่วมกับคุณสมบัติ PineScript อื่นๆ ทั้งหมด เพื่อปรับปรุงอินดิเคเตอร์ที่มีอยู่ของคุณต่อไป
ไปที่หน้า คู่มือผู้ใช้ Pine สำหรับตาราง เพื่อเข้าสู่และเริ่มสร้างตาราง
ตารางประสิทธิภาพนี้ได้รับแรงบันดาลใจจากส่วน “ประสิทธิภาพ” ของแถบด้านข้างของเรา ช่วยให้คุณติดตามประสิทธิภาพของสัญลักษณ์แผนภูมิ:
//@version=4 study("Performance", overlay=true) var table perfTable = table.new(position.top_right, 3, 2, border_width = 3) LIGHTTRANSP = 90 AVGTRANSP = 80 HEAVYTRANSP = 70 i_posColor = input(color.rgb(38, 166, 154), title="Positive Color") i_negColor = input(color.rgb(240, 83, 80), title="Negative Color") f_rateOfreturn(_v1, _v2) => (_v1 - _v2) * 100 / abs(_v2) f_performance(_barsBack) => _performance = security(syminfo.tickerid, "1D", f_rateOfreturn(close, close[_barsBack])) _performance lastYearClose = security(syminfo.tickerid, "12M", close[1], lookahead=barmerge.lookahead_on) f_fillCell(_table, _column, _row, _value, _timeframe) => _c_color = _value >= 0 ? i_posColor : i_negColor _transp = abs(_value) > 10 ? HEAVYTRANSP : abs(_value) > 5 ? AVGTRANSP : LIGHTTRANSP _cellText = tostring(_value, "#.##") + "%\n" + _timeframe table.cell(_table, _column, _row, _cellText, bgcolor = color.new(_c_color, _transp), text_color = _c_color, width = 6) if barstate.islast f_fillCell(perfTable, 0, 0, f_performance(5), "1W") f_fillCell(perfTable, 1, 0, f_performance(21), "1M") f_fillCell(perfTable, 2, 0, f_performance(63), "3M") f_fillCell(perfTable, 0, 1, f_performance(126), "6M") f_fillCell(perfTable, 1, 1, f_rateOfreturn(close, lastYearClose), "YTD") f_fillCell(perfTable, 2, 1, f_performance(251), "1Y")
ตัวอย่างต่อไปนี้แสดงตารางที่ใช้ในสคริปต์โดย PineCoders ที่ช่วยเราทดสอบคุณสมบัติ Pine ใหม่:
แผงอินดิเคเตอร์โดย LonesomeTheBlue
แผงข้อมูล Technical Analysis โดย RicardoSantos:
Heatmap เมทริกซ์สหสัมพันธ์ โดย RicardoSantos:
และหากคุณต้องการหยุดพักจากการซื้อขาย คุณสามารถใช้ตาราง Pine เพื่อเล่นหมากรุกกับเพื่อน ๆ ของคุณได้:
//@version=4 study("Chess", overlay=true) // Coordinate conversion system var a_xString = array.from(na, "a", "b", "c", "d", "e", "f", "g", "h") var a_yString = array.from(na, "8", "7", "6", "5", "4", "3", "2", "1") // Creating base table f_even(_num) => _isEven = true if _num % 2 == 0 _isEven := false _isEven f_cellColor(_column, _row) => color _cellColor = color.white if f_even(_column) if not f_even(_row) _cellColor := color.gray else if f_even(_row) _cellColor := color.gray _cellColor PADDING = "◯" var table chessBoard = table.new(position.middle_right, 10, 10, frame_color = color.black, border_color = color.black, frame_width = 3, border_width = 1, bgcolor = color.black) if barstate.isfirst for _column = 1 to 8 for _row = 1 to 8 table.cell(chessBoard, _column, _row, text = PADDING, bgcolor = f_cellColor(_column, _row), text_size = size.huge, text_color = #00ff0000) for _row = 1 to 8 table.cell(chessBoard, 0, int(abs(9 - _row)), text = tostring(_row), text_size = size.small, text_color = color.white) table.cell(chessBoard, 9, int(abs(9 - _row)), text = tostring(_row), text_size = size.small, text_color = color.white) for _column = 1 to 8 table.cell(chessBoard, _column, 0, text = array.get(a_xString, _column), text_size = size.small, text_color = color.white) table.cell(chessBoard, _column, 9, text = array.get(a_xString, _column), text_size = size.small, text_color = color.white) // Two letters before the input signify the piece color/type // White pieces var i_whitePawn1 = "wp" + input("a2", "", group="White Pawns", inline="White Pawns #1") var i_whitePawn2 = "wp" + input("b2", "", group="White Pawns", inline="White Pawns #1") var i_whitePawn3 = "wp" + input("c2", "", group="White Pawns", inline="White Pawns #1") var i_whitePawn4 = "wp" + input("d2", "", group="White Pawns", inline="White Pawns #1") var i_whitePawn5 = "wp" + input("e2", "", group="White Pawns", inline="White Pawns #2") var i_whitePawn6 = "wp" + input("f2", "", group="White Pawns", inline="White Pawns #2") var i_whitePawn7 = "wp" + input("g2", "", group="White Pawns", inline="White Pawns #2") var i_whitePawn8 = "wp" + input("h2", "", group="White Pawns", inline="White Pawns #2") var i_whiteRook1 = "wr" + input("a1", inline="White Rooks" , group="White Pieces", title="Rooks ") var i_whiteRook2 = "wr" + input("h1", inline="White Rooks" , group="White Pieces", title="") var i_whiteKnight1 = "wn" + input("b1", inline="White Knights", group="White Pieces", title="Knights") var i_whiteKnight2 = "wn" + input("g1", inline="White Knights", group="White Pieces", title="") var i_whiteBishop1 = "wb" + input("c1", inline="White Bishops", group="White Pieces", title="Bishops") var i_whiteBishop2 = "wb" + input("f1", inline="White Bishops", group="White Pieces", title="") var i_whiteQueen = "wq" + input("d1", inline="White Queen" , group="White Pieces", title="Queen ") var i_whiteKing = "wk" + input("e1", inline="White King" , group="White Pieces", title="King ") var a_whitePieces = array.from(i_whitePawn1, i_whitePawn2, i_whitePawn3, i_whitePawn4, i_whitePawn5, i_whitePawn6, i_whitePawn7, i_whitePawn8, i_whiteRook1, i_whiteRook2, i_whiteKnight1, i_whiteKnight2, i_whiteBishop1, i_whiteBishop2, i_whiteQueen, i_whiteKing) // Black pieces var i_blackPawn1 = "bp" + input("a7", "", group="Black Pawns", inline="Black Pawns #1") var i_blackPawn2 = "bp" + input("b7", "", group="Black Pawns", inline="Black Pawns #1") var i_blackPawn3 = "bp" + input("c7", "", group="Black Pawns", inline="Black Pawns #1") var i_blackPawn4 = "bp" + input("d7", "", group="Black Pawns", inline="Black Pawns #1") var i_blackPawn5 = "bp" + input("e7", "", group="Black Pawns", inline="Black Pawns #2") var i_blackPawn6 = "bp" + input("f7", "", group="Black Pawns", inline="Black Pawns #2") var i_blackPawn7 = "bp" + input("g7", "", group="Black Pawns", inline="Black Pawns #2") var i_blackPawn8 = "bp" + input("h7", "", group="Black Pawns", inline="Black Pawns #2") var i_blackRook1 = "br" + input("a8", inline="Black Rooks" , group="Black Pieces", title="Rooks ") var i_blackRook2 = "br" + input("h8", inline="Black Rooks" , group="Black Pieces", title="") var i_blackKnight1 = "bn" + input("b8", inline="Black Knights", group="Black Pieces", title="Knights") var i_blackKnight2 = "bn" + input("g8", inline="Black Knights", group="Black Pieces", title="") var i_blackBishop1 = "bb" + input("c8", inline="Black Bishops", group="Black Pieces", title="Bishops") var i_blackBishop2 = "bb" + input("f8", inline="Black Bishops", group="Black Pieces", title="") var i_blackQueen = "bq" + input("d8", inline="Black Queen" , group="Black Pieces", title="Queen ") var i_blackKing = "bk" + input("e8", inline="Black King" , group="Black Pieces", title="King ") var a_blackPieces = array.from(i_blackPawn1, i_blackPawn2, i_blackPawn3, i_blackPawn4, i_blackPawn5, i_blackPawn6, i_blackPawn7, i_blackPawn8, i_blackRook1, i_blackRook2, i_blackKnight1, i_blackKnight2, i_blackBishop1, i_blackBishop2, i_blackQueen, i_blackKing) f_getIcon(_str) => var _pieces = array.from( "k", "♔", "♚", "q", "♕", "♛", "r", "♖", "♜", "b", "♗", "♝", "n", "♘", "♞", "p", "♙", "♟") _split = str.split(_str, "") if array.size(_split) == 4 _color = array.get(_split, 0) _piece = array.get(_split, 1) _piece_offset = _color == "w" ? 1 : _color == "b" ? 2 : na array.get(_pieces, array.indexof(_pieces, _piece) + _piece_offset) f_placePiece(_piece_input) => _split = str.split(_piece_input, "") if array.size(_split) == 4 _icon = f_getIcon(_piece_input) _x = array.indexof(a_xString, array.get(_split, 2)) _y = array.indexof(a_yString, array.get(_split, 3)) table.cell_set_text(chessBoard, _x, _y, _icon) table.cell_set_text_color(chessBoard, _x, _y, color.black) if barstate.islast for i = 0 to array.size(a_whitePieces) - 1 f_placePiece(array.get(a_whitePieces, i)) for i = 0 to array.size(a_blackPieces) - 1 f_placePiece(array.get(a_blackPieces, i))
เราหวังว่าคุณลักษณะใหม่นี้ที่คุณร้องขอจะเป็นประโยชน์ โปรดส่งข้อเสนอแนะของคุณเพื่อการปรับปรุงต่อไป เราสร้าง TradingView สำหรับคุณและชอบที่จะรับข้อเสนอแนะของคุณ
ติดตาม TradingView ประเทศไทย ได้ทาง Line ID: @tradingview_th และทวิตเตอร์ (Twitter) ค้นหา “TradingView Thailand”