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

2010年2月13日 星期六

移動平均線的交叉

上一篇文章最後希望大家能動手計算一下 20 日的移動平均線資料…並給了一個簡單的提示…就是用上 Average 的函數。當然…如果你使用一開始介紹的 Summation 函數並自行去作運算其實也是可以的。

首先先來看看 Average 這個函數的內容:

Inputs: Price(NumericSeries), Length(NumericSimple);
Variables: Sum(0), Counter(0);

Sum = 0;

For counter = 0 To Length - 1 Begin
Sum = Sum + Price[counter];
End;

If Length > 0 Then
Average = Sum / Length
Else
Average = 0;


以上為 TradeStation 在 Average 函數的程式碼。基本上如果對 For 迴圈和 If 判斷都了解的話,這個程式其實沒什麼難度的。首先一開始先把 Sum 這個變數歸零,接著利用一個 For 迴圈來計算出總和,最後再除以個數就得到我們需要的平均價了。

那一開始的 Input 代表什麼呢,我們在呼叫 Average 這個函數的時候會這樣子用:

var = Average(close, 20);

可以看到在 Average 後面我輸入了 (close, 20) 這樣子的程式碼,這代表著我傳了二個參數,分別是收盤價(close)和我所需要計算的週期(20)到 Average 這個函數裡面。

而 Average 就用 Input 來接收這二個參數。

函數的運算過程會如下面的方式:


而最後的回傳方式則會類似 Average 函數程式碼最後的那部份,也就是它把函數的名字直接套用進來,並給他一個數值。

簡單的介紹完了 Average 這個函數後,接著要怎麼計算上一篇文章提到的例題呢,其實很簡單,一點難度都沒有:

var = Average(close, 20);


這樣就搞定了…其它的事情都在 Average 這個函數內完成了。

再來要介紹一下大家常用到的交叉,所謂的交叉又分為黃金交叉和死亡交叉,通常所謂的黃金交叉代表著短均線向上穿越長均線,而死亡交叉代表著短均線向下穿越長均線。

所以這邊要介紹二個指令,分別是:cross over 和 cross under。

其實這個從字面上來解釋就行了…所謂的 cross over 就是往上穿越的意思,而 cross under 就是往下穿越了。

在這兩個指令的前面你必需放上兩個數值…因為必需要有兩個數值的比較才會有所謂的穿越情況產生…所以如果我們簡單以 20均線往上穿越 60均線的話…應該會是這樣子:

Average(close, 20) cross over Average(close, 60);


在穿越的這個比較方式…是以前一根的數值和目前這根 k 線的數值來作比較的…所以如果你要複雜一點的寫法的話…可以寫成下面這樣:

Average(close, 20)[1] < Average(close, 60)[1] And Average(close, 20) > Average(close, 60);


簡單的說就是前一根的 20 均小於 前一根的 60 均,而目前這根的 20均 大於 目前這根的 60 均。

練習時間又到了:請寫出一個 20 日均線和 60 日均線的程式…黃金交叉則買進,死亡交叉則賣出。

2 則留言:

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

Related Posts Plugin for WordPress, Blogger...