參數和變數#

參數(Input)和變數(Variable)可以想像成一個容器(Ex: 瓶子),容器內儲存需要的資料(Ex: 5公升)。 在使用容器之前,需要先 宣告,宣告會告訴編譯器要儲存的資料的型別,型別決定了可以對資料做哪些操作(Ex: 算術運算或文字串接)。

因此,參數和變數分成 宣告使用 兩個階段:

  1. 宣告: 宣告參數或變數的名稱,給予預設值或初始值,同時定義型別,型別可以是數值、字串或真假值。
  2. 使用: 在程式碼中使用參數或變數的名稱,當程式執行到名稱時,就會使用儲存的值。

參數 vs 變數#

參數和變數都是容器,主要差異如下:

參數(Input)變數(Variable)
宣告保留字Input (同義字: Inputs)Variable (同義字: VarVarsVariables)
值的設定方式預設值(DefaultValue)初始值(InitialValue)
能否在腳本中更改值不能能,透過指派
能否從 MultiCharts 修改能,不需重新編譯不能
型別由什麼決定預設值決定型別初始值決定型別

型別#

型別 代表值的意義和操作,分成三類:

型別表示方式範例
數值(Numerical)直接使用數字1 + 1 結果為 2
字串(String)用雙引號("")框住內容"12" + "34" 結果為 "1234"
真假值(TrueFalse)使用保留字 truefalsetrue 表示邏輯的真,false 表示邏輯的假

Simple vs Series#

每種型別又分成 SimpleSeries 兩種:

SimpleSeries
特性常數,在不同的K棒都不會改變會隨著K棒改變
歷史數值沒有有,用 N bars ago[N] 取得前 N 根K棒的值
數值型別NumericSimpleNumericSeries
字串型別StringSimpleStringSeries
真假值型別TrueFalseSimpleTrueFalseSeries

訊號腳本指標腳本 中:

  • 參數 的預設值決定是 Simple 或 Series。
  • 變數 的初始值決定是 Simple 或 Series。

以上 6 個型別名稱(Ex: NumericSimpleNumericSeries)同時也是保留字,在函數腳本中用來宣告參數的型別。

Series 範例#

Close(收盤價)是 NumericSeries 的例子,因為收盤價會隨著K棒改變。

取得前 2 根K棒的收盤價: Close 2 bars agoClose[2]

參數(Input)#

下面是 訊號腳本指標腳本 的宣告語法。函數腳本 的宣告見函數(Function)

宣告語法#

1
Input: InputName1(DefaultValue1), InputName2(DefaultValue2), etc;
語法元素說明
Input表示宣告參數
InputName參數的名稱,不區分大小寫,不能是數字或句點(.)開頭
DefaultValue參數的預設值,預設值決定型別

宣告的結束要加分號(;),沒有加會編譯錯誤。

參數值只能透過預設值設定,在腳本中 無法 透過程式碼更改參數值。

你可以從 MultiCharts 設定訊號腳本指標腳本參數的預設值,如果沒有從 MultiCharts 設定新的預設值,參數會使用腳本中定義的 DefaultValue。從 MultiCharts 設定的新預設值直接執行就能套用,不需要重新編譯。

函數腳本的參數宣告沒有預設值,在使用函數的時候,會同時給予參數值。

範例#

1
Input: Length(20);

宣告參數 Length,預設值為 20(數值型別)。

1
Input: Price(Close), Name("Last Close");

宣告參數 Price,預設值為 Close(數值型別); 參數 Name,預設值為 "Last Close"(字串型別)。

1
Input: Draw_Line(True);

宣告參數 Draw_Line,預設值為 True(真假值型別)。

變數(Variable)#

下面是 訊號腳本指標腳本 的宣告語法。函數腳本 的宣告見函數(Function)

宣告語法#

1
2
Variable: [IntraBarPersist] VariableName1(InitialValue1 [,DataN]),
          [IntraBarPersist] VariableName2(InitialValue2 [,DataN]), etc;
語法元素是否可省略說明
Variable必填表示宣告變數
IntraBarPersist可省略每收到一筆成交就重新計算變數值(update by tick)。預設每一根K棒結束才重新計算(update by bar)
VariableName必填變數的名稱,可由字母、底線、數字、句點(.)組成,不區分大小寫,不可以是數字或句點(.)開頭
InitialValue必填變數的初始值,初始值決定型別
DataN可省略指定變數綁定的 Data,預設綁定預設的 Data

宣告的結束要加分號(;),沒有加會編譯錯誤。

你不能從 MultiCharts 設定變數的初始值。 變數值透過初始值設定後,可以在腳本中透過程式碼更改(指派其他的值)。

範例#

1
Variable: IntraBarPersist Max(100);

宣告變數 Max,初始值為 100(數值型別),使用 IntraBarPersist 逐筆更新。

1
Variable: Min_Price(Close, Data2);

宣告變數 Min_Price,初始值為 Close(數值型別),綁定 Data2

1
Variable: Overnight(False), Name("Intra-Day");

宣告變數 Overnight,初始值為 False(真假值型別); 變數 Name,初始值為 "Intra-Day"(字串型別)。

Reference#

https://www.multicharts.com/trading-software/index.php?title=Input

https://www.multicharts.com/trading-software/index.php?title=Variable

© 2026 CodeReindeer. All rights reserved.