Tổng Quan Thiết Kế Visual
Cách chọn đúng lớp visual và giữ build_visuals chỉ để render — khai báo tĩnh, ctx object namespace, và ATK bridge.
Cách Chọn Đúng Lớp Visual và Giữ Đúng Giai Đoạn#
Tài liệu này giải thích mô hình tư duy đằng sau ATK PyneScript visual: khi nào nên dùng khai báo tĩnh,
khi nào chuyển sang object namespace, khi nào dùng ATK bridge, và cách giữ build_visuals(...)
chỉ để render thay vì biến nó thành giai đoạn tính toán thứ hai.
| Quyết định đầu tiên | Tĩnh vs object vs bridge |
|---|---|
| Rủi ro chính | Tính toán bị rò rỉ vào giai đoạn render |
| Rào chắn tốt nhất | Frame đã chuẩn bị sẵn, visual chỉ render |
| Trang liên quan | Cookbook kèm copybook |
Chọn Lớp Visual Trước Khi Viết Code#
Do you have one value or marker per row?
|- Yes -> use static declarations: plot, hline, plotshape, plotchar, plotarrow, fill, linefill.new
|- No -> use an object-like visual path
|- Simple chart object? -> ctx.line, ctx.label, ctx.box, ctx.polyline, ctx.table
|- ATK-native grouped or composite renderer? -> ctx.atk.plot_line, ctx.atk.fill_between, ctx.atk.table, ctx.atk.rectangles, ctx.atk.volume_profile
Already drawing your lines with ctx.atk.plot_line?
|- Yes -> ctx.atk.fill_between
|- No -> fill or linefill.newKhai báo tĩnh#
Tốt nhất khi visual có thể mô tả bằng các column đã có sẵn trong frame. Đây là cách sạch nhất cho hầu hết các indicator.
ctx object namespace#
Tốt nhất khi visual là một đối tượng có tọa độ, văn bản, hình học, hoặc các điểm cuối thay đổi thay vì một series đơn giản theo từng hàng.
ATK bridge#
Tốt nhất khi visual phong phú hơn một đối tượng đơn lẻ hoặc khi repo đã cung cấp sẵn helper cấp cao hơn như profile, nhóm hình chữ nhật, table, hoặc bridge line fill.