2013年12月2日 星期一

K線是多空爭戰的痕跡




  向上拉動的力量




AccumationDistributionOscillator
公式:
variable:BP(0), SP(0), ADO(0);
BP = High - Open;
SP = Close - Low;
if High <> low then
    ADO = (BP + SP)/(2*(High - Low))*100
else
    ADO = 50;
AccumationDistributionOscillator = ado;
說明
BP+SP代表的是向上拉動的力量

    ADI



  我們在前面談到了如何計算一天之中的多空戰場大小(TR),也計算了多頭,空頭今天攻佔的新領地(+DM-DM),今天我們來計算一下多頭及空頭雙方反撲的實力,我們可以定義,從今天的最低點到今天的收盤價是多頭在被空頭一路追殺後的反撲力量,同樣的,從今天的最高點到今天收盤價的距離則是空頭反攻力量的展現,所以我們可以用兩個數據來記錄這樣的交戰痕跡
例如AI=close-lowDI=High-close
如果我們用bar chart來看會更清楚,AI是下半截,DI
是上半截
我們可以自己來建構一個指標,用來偵測多頭與空頭反撲的力量
以下是我寫的簡單的腳本
var:ai(0),di(0),ads(0),aads(0);
input:length(5);
ai=close-low;
di=high-close;
ads=ai-di;
aads=aads[1]*(length-1)/length+ads/length;
這邊的ads就是每一根K線多空反撲勢力的消張,這個值愈高,代表多頭的力量愈大,如果是負的,代表多頭的力量不如空頭的力量
Aads
是我拿ads來作簡單的移動平均
我這邊取的是五天,要不要取更長,看股性而定
各位可以參考一下附圖,雖然只是個簡單的概念,但還是可以拿來當買進訊號喔

介紹到今天,我們知道一天的多空戰場有多大,知道多空新佔的領地大小,也知道多空反撲的力量,下一次,我們再來介紹新的數據,這些數據都是很簡單的計算,就像身體健康檢查會去量血壓,血糖,心跳,我們就是透過這些簡單計算的數據,去了解一個商品的多空態勢,我們會從血壓等數據去預測一個人的身體狀況,我們也是從這些計算過的數據去從不同角度了解多空結構的變化,這些數據的背後,代表的是多空不同面向的能量,把這些基礎的數據搞懂,後面我們在寫腳本的時候,就會更得心應手了


公式
if BarNumber = 1 then
    ADI = 0
else
begin
    if Close > Close[1] then
        ADI = ADI [1] + (Close - minlist(low, close[1]))
    else
    if Close < Close[1] then
        ADI = ADI[1] - (maxlist(high, close[1]) - close)
    else
        ADI = ADI[1];
end;
說明
上漲時,加上
從昨日收盤或今天最低點之其中一點推昇到今天收盤價的距離
下跌時,扣減今天最高價或昨天收盤價砍到今天收盤價的距離
是一個單純累計多空交戰地盤消漲的指標



    +DM -DM






   上次我們介紹了真實波動區間(TR),今天我們來介紹一下運用這個概念,配合+DM-DM兩個數據,所發展出來的技術指標:DMI,以及怎麼同時運用這個兩個指標來尋找買進訊號

我們昨天介紹了真實波動區間(truerange,簡稱TR)的計算方式,這代表的意義應該就是在這個時間內,多空爭戰的總戰場,那打完仗之後,到底是多方贏? 還是空方贏? 是大贏? 還是小贏呢?


技術分析大師用+DM-DM來作為計算的標準
其算法如下:(+DM=pdm, -DM=ndm)
pdm= maxlist(High - High[1], 0);
ndm = maxlist(Low[1] - Low, 0);
if pdm < ndm then
pdm = 0
else
 
begin
if pdm > ndm then
ndm = 0
else
begin
pdm = 0;
ndm = 0;
end;
end;

先算出今天多頭有多攻佔過多少土地: high-high[1] 今天高點比昨天高點多出來的部份就是多頭今天的成績單,如果今天的高點沒有突破昨天的高點,那今天多頭的成績單就是考零分
相反的,low-low[1]就是空頭今天的成績單
如果今天多空都沒有佔領新的領土過,那兩邊的成績都是零
(
如果要看圖解,可以從這個網址點DMI進去看:http://www.moneydj.com/z/analyst/analyst_home.htm)

接下來,開始計算+DI-DIADX
先取移動平均,公式上亦有人在前一日的平滑上是乘上(length-1)/length,這邊XS的內建公式中,前一天的值是直接乘以1,其實兩者相差不大
padm = padm[1] + (pdm - padm[1]) / length;
nadm = nadm[1] + (ndm - nadm[1]) / length;
atr = atr[1] + (tr - atr[1]) / length;

+DI= 100 * padm / atr;
 
-DI = 100 * nadm / atr;
這樣的計算方式是在計算多方及空方有沒有愈來愈加速的攻城略地
if dValue0 + dValue1 <> 0 then
dx = AbsValue(100 * (+DI
(-DI) / (+DI +(-DI));
ADX = radx[1] + (dx - radx[1]) / length;
ADX則是不管是多方或空方獲勝,就是單純的陳述有沒有一方的勢力在持續的攻城略地

我們在未來還會介紹更多計算一檔股票多空勢力消張的指標,但從+DI-DI的計算過程中我們可以發現,其實長期觀察一檔股票多方及空方在戰場上的成績,是一個很好的觀察角度,而TR的引入,其目的就是用來表達整個戰場的大小。

當我們把這些數據拿來一起看,然後我們發現戰場愈來愈大,表示新勢力進場,同時是多方勢力不停攻城略地時,我們就可以比較有把握這是一個可信度高的進場信號,因為如果只是+DI回升,但TR數據沒有明顯向上時,代表的,可能只是舊勢力受大盤影響的隨勢拉扯而已,並不足以形成有效的買進訊號

之所以這麼不厭其繁的跟大家交代這些指標的算法,主要是當大家知道指標的計算方式之後,就可以理解一個買進訊號的形成原因及背後的意義,這樣大家才知道這樣的訊號較可能適用在什麼樣的商品及什麼樣的時候,其實有些技術指標如果大家知道其原理,就不會把它拿來作為期指五分鐘線的交易指標,因為開盤及收盤的台期指,其參與者及交易的原因跟本就跟盤中的多空勢力不一樣,有些指標較適用於大型股及指數,反之有些其實拿來找中小型股比較有意義,當大家理解這些指標的計算方式及背後的邏輯,運用就可以存乎一心,不會人云亦云了。

我們至今介紹了TR, +DM, -DM,這三個數據都代表了一根BAR中,多空交戰的一些痕跡,接下來,我們會介紹更多可以拿來衡量一個商品多空氣勢的小計算,然後當大家理解了這些小計算之後,就可以自己實事求是的發展自己的交易系統,也不見得要follow前人留下來,一般人常用的技術指標了。


  今天我們來介紹一下運用這個概念,配合+DM-DM兩個數據,所發展出來的技術指標:DMI,以及怎麼同時運用這個兩個指標來尋找買進訊號

我們昨天介紹了真實波動區間(truerange,簡稱TR)的計算方式,這代表的意義應該就是在這個時間內,多空爭戰的總戰場,那打完仗之後,到底是多方贏? 還是空方贏? 是大贏? 還是小贏呢?

技術分析大師用+DM-DM來作為計算的標準

其算法如下:(+DM=pdm, -DM=ndm)
pdm= maxlist(High - High[1], 0);
ndm = maxlist(Low[1] - Low, 0);
if pdm < ndm then
pdm = 0
else 
begin
if pdm > ndm then
ndm = 0
else
begin
pdm = 0;
ndm = 0;
end;
end;
先算出今天多頭有多攻佔過多少土地: high-high[1] 今天高點比昨天高點多出來的部份就是多頭今天的成績單,如果今天的高點沒有突破昨天的高點,那今天多頭的成績單就是考零分
相反的,low-low[1]就是空頭今天的成績單
如果今天多空都沒有佔領新的領土過,那兩邊的成績都是零
(如果要看圖解,可以從這個網址點DMI進去看:http://www.moneydj.com/z/analyst/analyst_home.htm)
接下來,開始計算+DI-DIADX
先取移動平均,公式上亦有人在前一日的平滑上是乘上(length-1)/length,這邊XS的內建公式中,前一天的值是直接乘以1,其實兩者相差不大
padm = padm[1] + (pdm - padm[1]) / length;
nadm = nadm[1] + (ndm - nadm[1]) / length;
atr = atr[1] + (tr - atr[1]) / length;

+DI= 100 * padm / atr; 
-DI = 100 * nadm / atr;
這樣的計算方式是在計算多方及空方有沒有愈來愈加速的攻城略地

if dValue0 + dValue1 <> 0 then
dx = AbsValue(100 * (+DI – (-DI) / (+DI +(-DI));
ADX = radx[1] + (dx - radx[1]) / length;
ADX則是不管是多方或空方獲勝,就是單純的陳述有沒有一方的勢力在持續的攻城略地。

我們在未來還會介紹更多計算一檔股票多空勢力消張的指標,但從+DI-DI的計算過程中我們可以發現,其實長期觀察一檔股票多方及空方在戰場上的成績,是一個很好的觀察角度,而TR的引入,其目的就是用來表達整個戰場的大小。

當我們把這些數據拿來一起看,然後我們發現戰場愈來愈大,表示新勢力進場,同時是多方勢力不停攻城略地時,我們就可以比較有把握這是一個可信度高的進場信號,因為如果只是+DI回升,但TR數據沒有明顯向上時,代表的,可能只是舊勢力受大盤影響的隨勢拉扯而已,並不足以形成有效的買進訊號

之所以這麼不厭其繁的跟大家交代這些指標的算法,主要是當大家知道指標的計算方式之後,就可以理解一個買進訊號的形成原因及背後的意義,這樣大家才知道這樣的訊號較可能適用在什麼樣的商品及什麼樣的時候,其實有些技術指標如果大家知道其原理,就不會把它拿來作為期指五分鐘線的交易指標,因為開盤及收盤的台期指,其參與者及交易的原因跟本就跟盤中的多空勢力不一樣,有些指標較適用於大型股及指數,反之有些其實拿來找中小型股比較有意義,當大家理解這些指標的計算方式及背後的邏輯,運用就可以存乎一心,不會人云亦云了。

我們至今介紹了TR, +DM, -DM,這三個數據都代表了一根BAR中,多空交戰的一些痕跡,接下來,我們會介紹更多可以拿來衡量一個商品多空氣勢的小計算,然後當大家理解了這些小計算之後,就可以自己實事求是的發展自己的交易系統,也不見得要follow前人留下來,一般人常用的技術指標了。


    TRATR

今天跟大家介紹三個專有名詞,以及用這樣子的概念衍生出來的交易機會

首先跟大家介紹的是truehigh,我們可以翻為真實高點,它的定義如下:
if Close[1] > High then TrueHigh = Close[1]
else TrueHigh = High;
意思是如果今天的高點比昨天的收盤高,那真實高點就是今天的high,但如果今天的最高價還比昨天的收盤價低,那今天的真實高點就是昨天的收盤價。
接下來介紹的是truelow,也就是真實低點,其定義如下:
if Close[1] < Low then TrueLow = Close[1]
else TrueLow = Low;
意思是如果今天的低點比昨天的收盤低,那麼今天的真實低點就是今天的最低價,反之,如果今天的最低點比前一天的收盤價還高,那麼今天的真實低點就是昨天的收盤價。
接下來我們要介紹的是truerange,我們稱之為真實波動區間,其定義就是當天的真實高點減當天的真實低點。
TrueRange = TrueHigh - TrueLow;

我之所以介紹truerange,是因為我觀察到一個現象,那就是個股股價雖然多少會受大盤的影響,但長期的真實波動區間,則幾乎不大受大盤所影響,因為這個數字是每天真正價格的移動區間,這個區間在參與者沒有太大變化時,基本上不會有太大的變化,特別是那種乏人問津的股票,波動區間幾乎被壓縮到極致。
但當開始有新的勢力介入,特別是當有市場人士介入時,波動的區間就會變大,所以如果長期觀察這個數值,可以儘早知道個股可能市場性愈來愈濃,特別是個股在上漲後進入整理型態時,truerange通常也會跟著下跌,要一直等到整理結束時,truerange才會再度回升。
  ATR
XQ
這次新設的指標中有一個就是14天的移動平均真實區間,其公式如下:
input: Length(14);
SetInputName(1, "天數");
value1 = Average(TrueRange, Length);
Plot1(value1, "ATR");

昨天我們介紹了低檔價量創近期新高,今天介紹真實波動區間,這兩個現象可以合在一起看,同時發生時,這樣的買進訊號可信度就更高了





沒有留言:

張貼留言