如何找出幾天前黃金交叉的商品:探討變數序列的觀念
2016-03-09 22:02:04
2有朋友問到,系統內有提供很多找出均線黃金交叉,MACD黃金交叉的腳本,可是這些腳本好像都是要找現在黃金交叉的商品。那如果我想要找的是幾天前黃金交叉的商品,那XS辦得到嗎? 今天就在這一篇文章內跟大家介紹如何做到這樣子的功能。

首先我們來看一下均線黃金交叉的腳本:

input: Shortlength(5, "短期均線期數");
input: Longlength(20, "長期均線期數");

Value1 = Average(Close,Shortlength);
Value2 = Average(Close,Longlength);

If Value1 cross over Value2 then ret = 1;

在這個腳本我們先計算短期的均線數字,把他存在Value1裡面,再計算長期的均線數字,把他存在Value2裡面,然後判斷Value1是否向上穿越(cross over)Value2,如果是的話則觸發。

從這段腳本內,我們只有看到Value1, Value2這兩個數字,他們代表的就是最新的短期均線跟長期均線的數值。可是,大家應該也知道,XS腳本在執行時是從左往右一根一根執行的,而這裡最重要的觀念是,在執行的過程內,每一根K棒執行時所計算過的數值,都是有存下來的。

ValueSeries

要存取這些在之前K棒所算過的數值的方式,就跟存取前一根K棒的價格的方式一樣,是採用[1]的方式來取得。所以,如果要找到前一期黃金交叉的商品的話,只需要把判斷向上穿越的程式碼從Value1改成Value1[1]就可以了。

input: Shortlength(5, "短期均線期數");
input: Longlength(20, "長期均線期數");

Value1 = Average(Close,Shortlength);
Value2 = Average(Close,Longlength);

If Value1[1] cross over Value2[1] then ret = 1;

這樣子是不是很簡單呢?

最後跟大家做個整理:在腳本內的每一個計算後的數值,例如Value1, Value2,或是其他你自己命名的變數,

其實都是像Open,High,Low,Close一樣是一個時間序列。而這個變數的前一筆的數值,就是腳本在上一根K棒執行時所產生的數值。

再來看一個例子:

Value1 = Close - Close[1];
if Value1 > 0 And Value1[1] > 0 And Value1[2] > 0 then ret=1;

大家可以看得出這個腳本要找的是什麼商品了嗎?就祝大家作多的股票都跟這個腳本一樣,連續上漲三天喔!!