參數

By | 2015-05-26

我們在寫交易語法時,會用到一些常數, 如果我們直接把常數寫死在腳本中時,一旦要調整時, 要到腳本中去修改,這樣有時候不太方便,例如我如果寫了一個腳本想要找出收盤比前一天上漲5%以上的股票,但現在發現市場情況有些改變,想要改成上漲4%就出訊號,如果我必須進到編輯器裡去改,這時候如果程式寫的很長,要找到對的地方來改會很麻煩,改錯了,腳本就出錯了,這時候就可以用宣告參數的語法來處理,,讓我們直接在操作介面上就可以修改這個值,這個。

參數的宣告,用的語法如下:

input: length(5)

這代表我們在腳本上宣告了一個叫length的參數,這個參數系統內建的初始值為5

例如,我們要找跳空上漲1%的股票,原本我們會寫成 :
If Open/High[1]> 1+1/100
then ret=1;

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

input:no1(1);
If Open/Close[1]> 1+no1/100
then ret=1;

腳本如果改成這樣,當你要把跳空下跌超過1%改成2%時,只要調整參數值就行了。

我們也可以只宣告參數的型態,不需要一開始就給預設值,例如 :

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

input2

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

如果大家不想要這麼麻煩,也可以在input指令的預設值後面直接用雙引號來註明參數的名稱

例如 : input:priod(20,”計算期間”);

宣告參數是我們在撰寫腳本時,很常用的語法,大家務必要好好學會使用它。

回應