參數

介紹了函數的概念後,接下來我們來學習參數的概念。
以移動平均這個函數為例,average(close,5)代表的是五日移動平均,average(close,3)代表3日的移動平均,在這邊3跟5就是average這個函數的參數
我們在實際運用語法時,可能用了不只一個函數,所以也會給定不只一個參數,如果我們直接把參數寫死在腳本中時,一旦要調整參數時,要到腳本中一個一個改,如果改漏了腳本就出錯了,這時候我們可以用宣告參數的語法來改善這樣的問題,參數的宣告,用的語法如下:
input: length(5)
這代表我們在腳本上宣告了一個叫length的參數,這個參數系統內建的初始值為5
所以這時候我們就可以寫出像下面這樣的腳本
input: length(5);
if close cross above average(close,length)
then ret=1;
如果我們這麼寫,當我們想把5日改成10日時,我們只要在參數值這地方把5改成10就行了。
又例如,我們要找跳空上漲1%的股票,原本我們會寫成
If open/high[1]>1/100
Then ret=1;

但很可能改天我們會希望跳空上漲2%才通知我們,這時候怎麼辦呢我們可以把跳空上漲的百分比設成一個可以快速調整的參數,使用者需要調整百分比時,只要更改這個數字即可,不必再進到腳本去修改數據。

例如上面的例子,就可以改寫成
Input:percent(1); 這是宣告一個叫percent的參數,它的預設值為1
If open/high[1]>percent/100
Then ret=1;
腳本如果改成這樣,當你要把跳空下跌超過1%改成2%時,只要調整參數值就行了。
又例如我們如果要寫一個收盤突破二十日均線的腳本,我們會這麼寫
input: length(20);
if close cross above average(close,length)   
then ret=1;
如果我們這麼寫,當我們想把20日改成10日時,我們只要在參數值這地方把20改成10就行了。
在宣告參數時,也不一定要有初始值,我們也可以只宣告參數的型態即可
例如
input: length(numersimple)代表這個參數是個簡單的數值

在設定參數時,我們用Input這樣的語法,不過如果我們參數設多了,就可能不記得那個參數是對應那個函數或那個指標,這時候我們可以透過setinputname的語法,為每一個參數加上一段說明文字,它的語法如下:
Setinputname(n,”說明文字”);
setinputname之後用小括號來包括兩個部份,n的部份代表的是第幾個參數,它的順序是按input語法在腳本中的先後順序而定,要設定第一個input參數的說明文字時就填1,要說明第二個input就填2,以此類推。
n的後面用逗點隔開說明文字,文字前後用雙引號來標示。
請看以下的例子


透過setinputname的方式來設定參數名稱,當參數多的時候,就可以很清楚的看到每一個參數的名稱及其對應的內建值了,這時候要修改參數時就不會搞混了。