技術分析分成很多派別,背後各有其思想基礎,近來用XS想要發展一些自訂指標,來建構自己的技術分析體系,所以作了不少的嚐試,這系列是來跟大家分享我的心路歷程
今天先來跟大家介紹的,是技術指標發明者 ,如何透過單根K棒裡,開高低收的四個相對位置,來偵測多空雙方的力道拉扯。
就像下面這張圖
我們可以把當根K線的開高低收四個點位,配合前一根的開高低收,定義出各式各樣的多空數據
例如,累積/派發線這個技術指標,就認為
一,收盤價-最低價: 當根K棒裡,多頭的淨力道
二,最高價-收價盤:當根K棒裡,空頭的淨力道
三,最高價-最低價:當根K棒裡,多空爭戰的整個戰場區域
所以當天的淨多空力道比例是((收盤價-最低價)-(最高價-收盤價))/(最高價-最低價)
所以累積/派發線指標的腳本就可以撰寫如下
VAR:ADL(0); if currentbar=1 then adl=((close-low)-(high-close))/(high-low)*volume else if high<>low then adl=adl[1]+((close-low)-(high-close))/(high-low)*volume else adl=adl[1]+((close/close[1])-1)*volume; plot1(adl,"累積派發線");
用這個指標畫成的圖就如下圖
類似的作法,也出現在大家常用的DMI指標上。
如上圖,DMI指標的計算,是先定義了三個數值
一,Truerange真實波動區間,如上圖右邊的概念,代表了當根K棒跟前一根之間最大的波動區間。
二,+DM : 如上圖左邊,如果最新一根BAR的高點比前一天的高點更高,那+DM就是最新一根K棒的高點減前一根的高點,否則就是零,這意思是+DM代表了最近一根K棒多頭所新攻克的區域
三,-DM: 同理 ,就代表最近一根K棒空頭所新攻下的區域。
在計算DMI時,要先比較+DM與-DM的值,那個數字大,另一個數字就=0
+DMI這數據就是+DM的移動平均/真實波動區間的移動平均
-DMI則是-DM的移動平均/真實波動區間的移動平均
從計算公式來看,就了解DMI指標是來計算每一根K棒多頭新攻下的城池VS空頭新攻下的城池的對應數據。
這種拿最新一根K棒的開高低收與前一根K棒的開高低收等八個數字對應關係所衍生的技術指標非常非常的多,大家在自訂指標時,可以參考前人的思維邏輯再來加以衍生。
接下來就跟大家分享兩個這類的指標
一,錢德動能震盪指標
Input:length(10, "天期"); variable: SU(0),SD(0); if close >= close[1] then SU = CLOSE - CLOSE[1] //上漲值 else SU = 0; if close < close[1] then SD = CLOSE[1] - CLOSE //下跌值 else SD = 0; value1 = summation(SU,length); //區間上漲值的總合 value2 = summation(SD,length); //區間下跌值的總合 value3 = (value1-value2)/(value1+value2)*100; //區間上漲值總合減下跌值總合的結果當分子 //兩者的總合當分母 plot1(value3, "CMO");
這裡用的就只是最近兩期的收盤價
二,相對強度(RS)
類似把一段區間上漲與下跌值相加總之後再作運算的,最普遍被應用的是RSI這個指標,這個指標是由RS相對強度這個概念而來,以下是相對強度的腳本
SetBarMode(1); //指定為simple函數 input: price(numericseries), length(numericsimple); variable: sumUp(0), sumDown(0), up(0), down(0); if CurrentBar = 1 then begin sumUp = Average(maxlist(price - price[1], 0), length); //第一根的sumUP是過去一段期間內上漲點數合的平均值 sumDown = Average(maxlist(price[1] - price, 0), length); //第一個的sumDown是過去一段期間內下跌點數合的平均值 end else begin up = maxlist(price - price[1], 0); // up是如果當天上漲時的上漲值 down = maxlist(price[1] - price, 0); //down是如果當日下跌時的下跌值 sumUp = sumUp[1] + (up - sumUp[1]) / length; //sumUp是前一期的sumUP+最近一期上漲值(如果上漲的話) sumDown = sumDown[1] + (down - sumDown[1]) / length; //sumDown是前一期的sumDown+最近一期下跌值(如果下跌的話) end; if sumDown = 0 then RS = 0 else RS = sumUp /sumDown;
這是個函數腳本,用這個函數,RSI的計算公司如下
所以基本上,RSI這個指標也是K棒開高低收四點所衍生出來的技術指標,它用的是當根收盤價與前一根收盤價的差值。
從上面這些例子,我們可以了解到,有一派的技術指標,是根據K棒開高低收的相對位置,來研判多空勢力的變化,大家可以根據這樣的思維,自己定義多空的不同力量,發展出自己的自訂指標。