[TS懶人包] [保險服務]

2010年2月4日 星期四

變數的宣告

在每一個交易程式的最上方…通常就是宣告變數的程式碼。大部份交易策略用到的宣告有三種:

input
var
array

在程式內所有用到的非保留字變數…都需要事先宣告過後才能使用。除非你是使用像 Value1 、 Value2 等系統預先幫你宣告的變數。

強烈建議大家在寫策略的時候不要使用 Value1、Value2 等的變數,請花點時間幫這些變數取一個你很容易懂的名字。

例如以抓三根 k 線高點的程式語法來說:

Value1 = highest(high, 3);



highOfThreeBars = highest(high, 3);


也許第二種寫法會讓你多花很多時間在打字上面…不過請相信我…除非你寫出來的策略讓你覺得是垃圾,以後不會再打開他出來看,不然多花點時間打字對你以後修改程式會有很大的幫助。

三種變數的宣告語法如下:

inputs: length(10);
vars: highOfThreeBars(0);
array: lowOfThreeBars[3](0);


首先, input 和 var 的宣告都是: 變數的名字(預設值),input 和 var 的差別就是 input 的預設值是不能在程式碼內去修改的,也就是如果你宣告了一個 input: length(10); 接著又在程式碼內寫下了:

length = 11;

這樣是會有錯誤的。

使用 input 的好處是你可以不用進到 PowerEditor 內去修改這個變數的值,而可以直接在套用該策略的 k 線圖上直接修改他的值。如下圖:


你可以直接在些修改 input 的值,當然,input 這個值也可以拿來跑最佳化。
關於這部份可以參考之前寫過的文章:

TradeStation 參數的更改方式
TradeStation 最佳化過程教學


接下來是 vars 和 array,把變數宣告成 vars 則可以自由的在程式內運用。尤其是寫策略寫到後期後…變數的用處將會愈來愈多。變數不再只是存個數值等著運算,它還可以用來存狀態、存條件等。

array 則是陣列…array 的宣告會包含一組中括號[],中括號內的數值代表著 array 的長度,也就是宣告了一個 array[3](0) 代表著你可以使用的變數有:
array[0], array[1], array[2] 等三個變數。

通常不太有人會用到 array,那什麼情況下會用到 array 呢?我在第一篇文章中提到過,程式是每一個 tick 都會整個執行過一次…所以假如你寫到了這樣的程式:

length = length + 1;


程式在執行的時候就會每一根 k 線都把 length + 1,但是有時候你又不希望程式自動的幫你這個變數的數值一直修改。例如我在:程式交易 - HTS RSI 多週期計算方式 內寫的程式。我運用了 array 存下了每隔 15 分鐘的收盤價,在這邊如果要運用 vars 來達到我想要的目的…可能就不太容易了。


在這邊順便提一下變數的用法。當你宣告了一個變數後,每根 k 這個變數都會有一個值,所以如果你想得到 10 根 k 線前這個變數的值的話,就可以用:var[10] 來得到 10 根 k 前這個變數的數值是多少。

最後…這篇似乎沒什麼可以讓大家練習的題目…那就隨便宣告幾個變數後檢查看能不能通過吧..:p

1 則留言:

請留下您的大名…匿名者恕不回應…

Related Posts Plugin for WordPress, Blogger...