Chuyển đến nội dung chính
ATK Pine Script®

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ứcKiểu trả vềĐối số thường dùngTrường hợp sử dụng
input.int(defval=0, title="", key=None, **kwargs)intminval, maxval, stepĐộ dài, lookback, số đếm.
input.float(defval=0.0, ...)floatminval, maxval, stepHệ số nhân, ngưỡng, kích thước.
input.bool(defval=False, ...)boolCờ tính năng và điều khiển hiển thị.
input.string(defval="", ...)strVăn bản thuầnChế độ, khóa nguồn, nhãn.
input.text_area(defval="", ...)strVăn bản dàiGhi chú hoặc input dạng text payload.
input.time(defval=0, ...)intGiá trị mặc định timestampMốc thời gian.
input.price(defval=0.0, ...)floatGiá trị mặc định mức giáTham chiếu giá cố định.
input.source(defval="close", ...)strTên trường nguồnChọn cột nguồn thị trường.
input.symbol(defval="", ...)strBộ chọn symbolInput symbol bên ngoài.
input.session(defval="", ...)strChuỗi sessionLọc session.
input.timeframe(defval="", ...)strChuỗi timeframe như 15mXác nhận MTF.
input.color(defval="#00c853", ...)strChuỗi hex hoặc colorInput kiểu dáng trực quan.
input.enum(defval=None, title="", key=None, options=None, **kwargs)AnyoptionsLựa chọn có giới hạn.

Các khái niệm chính#

Cách defval hoạt độngdefval 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ọngkey 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ọ inputChọn khi...Hướng dẫn thực tế
input.intGiá 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.floatGiá 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.boolCà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.stringNgườ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.sourceNgườ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.timeframeNgườ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.priceCà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.timeNgườ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.colorNgườ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.enumLự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"])