關於背離…簡單的來說,背離的條件就是在價格創新高的情況下,指標沒有創新高;或是價格創新低時,指標沒有跟著創新低。這樣的條件說來簡單…自己看圖也可以很簡單的指出哪邊背離哪邊又背離的…可是當要寫成程式就不這麼簡單了。

用了很多的方法想寫出背離的程式…連 Array 都差點拿來用了,結果都不太正確…一直到最近跟某個高手討論才寫出了下面的判斷方法…

這個程式只算是一半,只有寫出背離的判斷…至於判斷產生背離後要怎麼去做,那就讓大家自行發揮了。

首先看一下這一段判斷高點背離的程式碼:

if high > highest(high[1], 70) then begin
value1 = barnumber;
value2 = highest(high[21], 50);
for value3 = 21 to 70 begin
if high[value3] = value2 then begin
value4 = value3;
end;
end;
if high > value2 and KD < KD[value4] then begin
LongDC = 1;
end;
end;

if LongDC = 1 and KD > KD[barnumber - value1 + value4] then
LongDC = 0;


看完了程式碼應該很多人頭昏了…解釋一下這段程式碼在作什麼。

首先,如果目前的高點是最近 70 根 k 線的高點的話…就把目前的 barnumber 記錄下來,並且抓出次高點。在這邊我所抓的次高點是離新高的 20 根 k 線之前的 50 根 k 線。接著再用一個 for 迴圈把次高點出現的距離算出來。

到這邊可以知道目前有的資料就是當根為新高,另外也知道了次高點所在的位置,就開始判斷一下兩者的指標是不是也有跟著創新高,或是有背離的產生。

LongDC 為一個變數…用來記錄目前是不是有背離的產生…

最後一部份就是什麼時候這個背離是失效的。這邊寫入了…目前如果 LongDC = 1 (也就是背離的情況) 之後指標又創新高了…那當然這個背離就是失效了。就跟著把 LongDC 的值改回為 0 囉。

程式說明就到這邊…低點背離的情況就反著寫就行了…有興趣就自行玩玩看囉。
http://ssdkchang.blogspot.com/2009/07/blog-post.html

 
arrow
arrow
    全站熱搜

    QQ 發表在 痞客邦 留言(0) 人氣()