腳本
// XQ: CV指標 // Variable: _cv(0); If CurrentBar = 1 then _cv = Close * Volume else _cv = _cv[1] + (Close - Close[1]) * Volume; Plot1(_cv, "CV");
參考圖表
這兩天台郡的股價蠻強的,原因是法說會裡提到了軟板局5G天線有成,雖然第一季受手機市場清淡影響表現一般,但今年全年仍會成長(如以下的新聞)
14日法說會結束,15日股價漲停,昨日股價繼續上漲。
但由於之前幾個月營收衰退,所以XS選股平台系統內建的“即將召開法說會”策略沒有出碧台郡這檔股票。
小弟回家後自我檢討,了解到原有的策略較合適過去一季表現不錯的公司,但不合適過去不好,股價修正,但未來會不錯的公司。
於是我想了一下,公司近一季表現不好,即將召開法說會,但公佈的內容足以激勵人心,事先會不會有什麼徵兆? 後來我想到春江水暖鴨先知,如果法說會要公佈的消息是正向的,那麼法說會前幾天的主力買超的機率應該是比較大的。
於是我把即將召開法說會的條件加上主力買超的條件,合寫成以下的策略
然後回頭去檢視過往幾天挑出來的股票,結果11日台郡就出現了
我們回頭去檢視台郡的K線圖
當時台郡的股價還不到80元。
不過我拿這個策略回測時發現,勝率其實不突出,代表這些挑出來的股票還需要再過濾
後來我加上了推估本益比低於一定水平等其他條件,回測的數據顯示,這樣的策略在多頭市場是管用的
至於怎麼強化這個策略,就交給大家自行增加選股條件囉。
PVI ( Positive Volume Index ) 正量指標 及 NVI ( Negative Volume Index ) 負量指標
這兩個指標必須放在一起看,才能對股票量價的變動有整體的瞭解.基本上這兩個指標是用來體現所謂的「量價關係」,從指標的變動方向與股價的變動方向來綜合研判價格未來可能的變化方向.
假如 今日成交量「大於」昨日成交量,則
今日PVI = 昨日 PVI + 今日股價漲跌幅
否則
今日PVI = 昨日 PVI + 0
假如 今日成交量「小於」昨日成交量,則
今日NVI = 昨日 NVI + 今日股價漲跌幅
否則
今日NVI = 昨日 NVI + 0
腳本
// XQ: NVI指標 // Variable: _nvi(1); if CurrentBar = 1 then _nvi = 1 else begin if Volume < Volume[1] then _nvi = _nvi[1] + (Close - Close[1]) / Close[1] else _nvi = _nvi[1]; end; Plot1(_nvi, "NVI");
參考圖形
函數腳本
SetBarMode(2);
{
XQ: WA/D 指標
}
variable: wadt(0), adt(0);
if CurrentBar = 1 then
wadt = 0
else
begin
if close = close[1] then
adt = 0
else
begin
if close < close[1] then
adt = close - TrueHigh
else
adt = close - TrueLow;
end;
wadt = adt + wadt[1];
end;
WAD = wadt;
指標腳本
// XQ: WA/D 指標
//
variable: wad(0), _ad(0);
if CurrentBar = 1 then
wad = 0
else
begin
if close = close[1] then
_ad = 0
else
begin
if close < close[1] then
_ad = close - TrueHigh
else { close > close[1] }
_ad = close - TrueLow;
end;
wad = _ad + wad[1];
end;
Plot1(wad, "WA/D");
參考圖
公式
(簡單)n日移動平均 MA_t = (P_t + P_[t-1] + P_[t-2] +…+ P_[t-n+1] ) / n
即把最近n個資料作平均即得,這種方式中各天的價格權數均相等.
另一種指數平滑移動平均則為
E_t = E_[t-1] + a * (P_t + E_[t-1] )
即離目前越近的資料, 在計算平均時其給的權數越高.
意義
移動平均的概念是由統計學領域應用而來,在技術分析上,移動平均的作用可以引伸成四層意義:平滑作用、趨勢線、成本線及支撐壓力
在另一方面,當外在環境惡劣,使得均線的支撐力道不足而使股價跌破均線時,則此發生套牢現象–股價低於買進成本,而造成投資人發生帳面虧損,使其不願在此虧損階段賣股票。在這個時候,投資人會產生一個心態,便是等股價回本便趕快賣股票以解套。所以當股價由下方往上觸至均線時,便會產生賣壓而造成股價再往下壓,因此這時均線反而成為一壓力線。
應用時機
缺點
移動平均線為一落後指標,因此單純效果有限
補救措施
配合其他指標使用.
函數腳本
SetBarMode(1); input:thePrice(numericseries); //"價格序列" input:Length(numericsimple); //"計算期間" if Length > 0 then Average = Summation(thePrice, Length) / Length else Average =0;
今天跟大家介紹一個很阿殺利的指標,就是江湖人稱動量指標的MTM
MTM的算法很爽快,就是今天收盤價減n日前的收盤價,一行搞定。
我們用xs語法來把MTM寫成一個函數
input: price(numericseries), length(numericsimple); Momentum = price - price[length];
指標就這麼簡單
這個很簡單的算術算出來的指標,它代表的意義是什麼呢? 如果股價每天都漲1塊錢,MTM會是怎麼呈現? 答案是在0以上走平,每天都跌一元呢? MTM會在0以下,也走平,不漲不跌呢?每天價格都一樣, MTM當然會等於0 所以我們可以把MTM的不同形態整理成一個表格如下: MTM走勢 意義 在0附近走平 股價不漲不跌 在0以上走平 股價每天漲,價差一樣,或是上漲的速度跟n日前一樣 在0以下走平 股價每天跌,價差一樣,或是下跌的速度跟n日前一樣 在0以上呈上升趨勢 股價以比原先更陡的方式上漲,或是股價止跌回升 在0以下呈下降趨勢 股價以比原先更快的速度下跌,或是股價作頭下跌 在0以上呈下降趨勢 跟n日前比起來漲速變緩 在0以下呈上升趨勢 跟n日前比起來跌速變緩
MACD的英文原名為 Moving Average Convergnece & Divergence,也就是收斂發散移動平均線的意思,所以顧名思義它是移動平均線的一種。這個指標在技術分析各指標當中,算是極普遍又有名的一個。以下是MACD的計算步驟,附表1即為MACD的計算範例:
1. 計算出真實成本:
Pt=Ct ´ 1/2 + Ht ´ ¼ + Lt ´ ¼ 其中 Ct為收盤價, Ht為最高價, Lt為最低價
2. 計算兩條平滑平均線 12EMA與26EMA
Et = Et-1 + α ´ ( Pt – Et-1 )
其中 Et為當日平滑平均值, Et-1為前一日平滑平均值, Pt為當日真實成本,
α= 2 / ( 1+ MA) ; MA = 平均天數 (即=12或26 )
3. 計算正負差線
DIF = 12EMA – 26EMA
4. 計算MACD線(或稱EDA線)
將DIF線取九天EMA平均值即得
5.柱線 = DIF線–MACD線
一般說來,MACD指標可以說是一個非常優秀的指標,也正因為如此,所以它才會那麼廣受歡迎。
MACD的函數
SetBarMode(1); // MACD function // Input: Price序列, FastLength, SlowLength, MACDLength // Output: DifValue, MACDValue, OscValue // Input: Price(numericseries), FastLength(numericsimple), SlowLength(numericsimple), MACDLength(numericsimple); Input: DifValue(numericref), MACDValue(numericref), OscValue(numericref); DifValue = XAverage(price, FastLength) - XAverage(price, SlowLength); MACDValue = XAverage(DifValue, MACDLength) ; OscValue = DifValue - MACDValue;
指標腳本
// XQ: MACD指標 // input: FastLength(12), SlowLength(26), MACDLength(9); variable: price(0); SetInputName(1, "DIF短天數"); SetInputName(2, "DIF長天數"); SetInputName(3, "MACD天數"); price = WeightedClose(); Value1 = XAverage(price, FastLength) - XAverage(price, SlowLength); Value2 = XAverage(Value1, MACDLength) ; Value3 = Value1 - Value2 ; // 前面區段資料變動較大, 先不繪出 // if CurrentBar <= SlowLength then begin Value1 = 0; Value2 = 0; Value3 = 0; end; Plot1(Value1, "DIF"); Plot2(Value2, "MACD"); Plot3(Value3, "Osc");
參考的圖
MAO指標的原文是Moving Average Oscillator,稱為移動平均線擺盪指標。它的計算方式非常簡單,將兩條不同天期的簡單移動平均線相減即得,注意前面的MA1值需小於後面的MA2值。
MAO = MA1 - MA2
通常我們很少直接稱這個指標為MAO指標,而是稱為它為「MA1減MA2乖離指標」,特別注意這個指標並非乖離率,很多人誤稱它為乖離率,我們都知道乖離率必須要除以一個成本(分母),但這公式沒有,所以它顯然不是乖離率。
腳本
// XQ: MA-Osc // input: Length1(5), Length2(10); SetInputName(1, "天數一"); SetInputName(2, "天數二"); value1 = Average(close, Length1); value2 = Average(close, Length2); value3 = (value1 - value2); Plot1(value3, "MA-Osc");
參考圖
除了利用MAO指標線與零軸的交叉點來作為買賣點的確認之外,我們也要注意該指標值在零軸以上或以下的「反轉點」,它會比跟零軸形成的交叉點更早出現,就在股價開始轉折時就讓我們抓到,而不必等漲了或跌了一段才出現的黃金交叉或死亡交叉。特別注意如果反轉點是呈現尖銳的形狀而不是平緩的圖頭狀時,則該買賣訊號的確認會更準確。
最後要補充說明的是,這個指標除了上述的特殊性之外,還有一個重要性。因為它是MACD指標的簡易版,如果將這兩條均線採用EMA式的平滑平均來計算的話,那麼兩者相減之後的MAO指標,其實就是MACD指標中的DIF線,兩者是一模一樣,毫無區別的。所以我們可以說從均線架構的理論,到MAO指標,以迄MACD指標,是「吾道一以貫之」的。