以移動平均這個函數為例,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的方式來設定參數名稱,當參數多的時候,就可以很清楚的看到每一個參數的名稱及其對應的內建值了,這時候要修改參數時就不會搞混了。