為什麼輸入重要
硬編常數在學習時可以,但真正的指標會把可調整的東西曝露出來。輸入會變成任何使用你腳本的人所看到的設定面板。對的輸入型別給你對的控制項——滑桿、下拉選單、顏色選擇器、勾選框。
輸入型別
input.int——整數,可選 min/max/step。input.float——同上但有小數。input.bool——開關用的勾選框。input.string——自由文字或下拉選單。input.source——讓使用者挑一條序列(close、high、low、hl2、ohlc4 等等)。input.timeframe——時間週期選擇器。
字串下拉選單
input.string 可以帶一串選項:
maType = input.string("SMA", "Type", options=["SMA", "EMA", "WMA"])
設定面板會顯示一個下拉選單。你讀到的選擇值就是一個普通字串。
來源輸入
src = input.source(close, "Source") 讓使用者挑哪一條序列要餵進你的指標——close、high、hl2、ohlc4,或圖上任何其他圖。光是這一行,就讓一個移動平均指標能跨不同圖表類型與自訂資料源使用。
提示與分組
輸入接受 tooltip 與 group 參數。tooltip="Period over which the average is calculated" 會在設定面板顯示一個問號圖示。group="Visuals" 把相關的輸入聚在一起。當你的輸入超過一手之數時就用它們。
預設值與驗證
挑一個對最常見使用情境合理的預設值。如果使用者有可能自己打自己的腳(負的長度、零除數),用 minval 或在腳本最上面用 if 防住。
一個實作範例
//@version=5
indicator("Configurable MA", overlay=true)
src = input.source(close, "Source")
length = input.int(20, "Length", minval=1, maxval=500)
maType = input.string("EMA", "Type", options=["SMA", "EMA", "WMA"])
show200 = input.bool(false, "Show 200 reference")
ma = switch maType
"SMA" => ta.sma(src, length)
"EMA" => ta.ema(src, length)
"WMA" => ta.wma(src, length)
plot(ma, color=color.orange, linewidth=2)
plot(show200 ? ta.ema(src, 200) : na, color=color.gray)
該從這裡帶走什麼
輸入是你把一支腳本變成一個工具的方式。花時間用合理的預設值與驗證去曝露出對的可調參數——當你回到即時市場上要調整那個指標時,未來的你會感謝你。