Namespace input.*
Tất cả các function đăng ký input — int, float, bool, string, source, timeframe, color, enum và nhiều hơn nữa — kèm hướng dẫn khi nào nên dùng từng loại.
Namespace input.*#
Mỗi lần đăng ký input sẽ thêm metadata vào script context và trả về giá trị mặc định ngay lập tức, nên module của bạn có thể sử dụng nó như một giá trị Python thông thường.
Tham chiếu phương thức#
| Phương thức | Kiểu trả về | Đối số thường dùng | Trường hợp sử dụng |
|---|---|---|---|
input.int(defval=0, title="", key=None, **kwargs) | int | minval, maxval, step | Độ dài, lookback, số đếm. |
input.float(defval=0.0, ...) | float | minval, maxval, step | Hệ số nhân, ngưỡng, kích thước. |
input.bool(defval=False, ...) | bool | — | Cờ tính năng và điều khiển hiển thị. |
input.string(defval="", ...) | str | Văn bản thuần | Chế độ, khóa nguồn, nhãn. |
input.text_area(defval="", ...) | str | Văn bản dài | Ghi chú hoặc input dạng text payload. |
input.time(defval=0, ...) | int | Giá trị mặc định timestamp | Mốc thời gian. |
input.price(defval=0.0, ...) | float | Giá trị mặc định mức giá | Tham chiếu giá cố định. |
input.source(defval="close", ...) | str | Tên trường nguồn | Chọn cột nguồn thị trường. |
input.symbol(defval="", ...) | str | Bộ chọn symbol | Input symbol bên ngoài. |
input.session(defval="", ...) | str | Chuỗi session | Lọc session. |
input.timeframe(defval="", ...) | str | Chuỗi timeframe như 15m | Xác nhận MTF. |
input.color(defval="#00c853", ...) | str | Chuỗi hex hoặc color | Input kiểu dáng trực quan. |
input.enum(defval=None, title="", key=None, options=None, **kwargs) | Any | options | Lựa chọn có giới hạn. |
Các khái niệm chính#
Cách defval hoạt động — defval là giá trị được trả về ngay lập tức tại thời điểm import và là giá trị được sử dụng khi runtime chưa cung cấp giá trị ghi đè. Hãy coi nó như cấu hình khởi động an toàn của script.
Tại sao key quan trọng — key là định danh ổn định cho cài đặt trong runtime. Giữ nó ngắn gọn, tường minh và bền vững. Thay đổi key sau này sẽ phá vỡ tính liên tục giữa cài đặt đã lưu và hợp đồng script.
Cách hợp nhất params — Sử dụng input làm giá trị mặc định có kiểu, sau đó hợp nhất params lên trên chúng bên trong frame builder. Điều này giữ cho script chạy được như Python thuần đồng thời vẫn tôn trọng các giá trị ghi đè từ runtime.
Chọn đúng họ input#
| Họ input | Chọn khi... | Hướng dẫn thực tế |
|---|---|---|
input.int | Giá trị là số đếm rời rạc, lookback hoặc khoảng cách bar. | Thêm minval=1 khi giá trị bằng không hoặc âm sẽ làm indicator không hợp lệ. |
input.float | Giá trị là liên tục: hệ số nhân, ngưỡng, các nút điều chỉnh dạng phần trăm. | Sử dụng step để kiểm soát độ chi tiết của UI. |
input.bool | Cài đặt bật/tắt một tính năng. | Tốt cho việc hiển thị marker, bật filter, hoặc chuyển đổi lớp đầu ra. |
input.string | Người dùng chọn nhãn chế độ hoặc tên nguồn dạng tự do nhỏ. | Cho các lựa chọn bị ràng buộc chặt, ưu tiên input.enum. |
input.source | Người dùng nên chọn một nguồn thị trường dạng cột. | Luôn triển khai dự phòng khi nguồn được chọn không tồn tại. |
input.timeframe | Người dùng chọn timeframe thay thế để xác nhận. | Chỉ sử dụng khi script thực sự gọi request.security. Không thêm làm trang trí. |
input.price | Cài đặt là một mức cố định trên chart. | Sử dụng cho ngưỡng, vùng và mốc neo thủ công. |
input.time | Người dùng phải chọn một timestamp cụ thể. | Hữu ích cho các nghiên cứu phạm vi cố định và đối tượng neo theo thời gian. |
input.color | Người dùng kiểm soát kiểu dáng mà không thay đổi logic. | Giữ input color ở mức thẩm mỹ. Không nạp chồng với quyết định ngữ nghĩa. |
input.enum | Lựa chọn phải giới hạn trong các giá trị hợp lệ đã biết. | Tốt nhất cho các chế độ như sma vs ema, hoặc các biến thể logic có tên. |
Mẫu hợp nhất input#
length = input.int(20, title="Length", key="length", minval=1)
multiplier = input.float(2.0, title="StdDev Mult", key="multiplier", minval=0.1, step=0.1)
source_type = input.source("close", title="Source", key="source_type")
def build_indicator_frame(df, params=None):
frame = df.copy().reset_index(drop=True)
p = {
"length": int(length),
"multiplier": float(multiplier),
"source_type": str(source_type),
} | dict(params or {})
source_name = str(p.get("source_type", "close") or "close")
source_series = frame[source_name] if source_name in frame.columns else frame["close"]
...Ví dụ kết hợp nhiều họ input#
# input.int for discrete lookbacks
length = input.int(20, title="Length", key="length", minval=1)
# input.float for continuous knobs such as multipliers
multiplier = input.float(2.0, title="StdDev Mult", key="multiplier", minval=0.1, step=0.1)
# input.source when the user chooses a market source column
source_type = input.source("close", title="Source", key="source_type")
# input.timeframe only when the script really does MTF work
confirm_tf = input.timeframe("15m", title="Confirm TF", key="confirm_tf")
# input.color for cosmetic styling, not logic decisions
line_color = input.color("#00c853", title="Line Color", key="line_color")
# input.enum for bounded named choices
ma_mode = input.enum("ema", title="MA Mode", key="ma_mode", options=["sma", "ema", "rma"])