---
title: "Keyword arguments"
description: "In Indicators this is the options object on param, input, output, box, and segment: every optional setting of a declaration is a named field of its last…"
order: 26
section: "core-concepts"
---

<!-- source: docs/indicators/core-concepts/keyword-arguments.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->

# Keyword arguments

In Indicators this is the options object on `param`, `input`, `output`, `box`, and `segment`: every optional setting of a declaration is a named field of its last argument (`param("period", 20, { min: 1, max: 200, description: "Lookback" })`, `input("btc", ohlcv.close, { symbol: "BTCUSDT", exchange: "BINANCE_FUTURES" })`, `box("zone", { top: hi, bottom: lo, when: gate, opacity: 0.15 })`), in any order, self-documenting, with an unknown field refused by name at build time.

The nearest form for calls is positional: TA classes and your own functions take arguments in declared order, and a function with many settings takes a class instance instead of a keyword list.

The full option list per declaration is in [Script definition](../functions/script-definition.md).

What stays on kScript (legacy): keyword calls on builtins and user functions (`sma(source=closeTs, period=20)`), and mixing positional and keyword arguments in one call.
