Author Archives: 發財橘子

即將召開法說會且主力買超的股票

這兩天台郡的股價蠻強的,原因是法說會裡提到了軟板局5G天線有成,雖然第一季受手機市場清淡影響表現一般,但今年全年仍會成長(如以下的新聞)

2019021904

14日法說會結束,15日股價漲停,昨日股價繼續上漲。

但由於之前幾個月營收衰退,所以XS選股平台系統內建的“即將召開法說會”策略沒有出碧台郡這檔股票。

小弟回家後自我檢討,了解到原有的策略較合適過去一季表現不錯的公司,但不合適過去不好,股價修正,但未來會不錯的公司。

於是我想了一下,公司近一季表現不好,即將召開法說會,但公佈的內容足以激勵人心,事先會不會有什麼徵兆? 後來我想到春江水暖鴨先知,如果法說會要公佈的消息是正向的,那麼法說會前幾天的主力買超的機率應該是比較大的。

於是我把即將召開法說會的條件加上主力買超的條件,合寫成以下的策略

2019021903

然後回頭去檢視過往幾天挑出來的股票,結果11日台郡就出現了

2019021902

我們回頭去檢視台郡的K線圖

2019021901

當時台郡的股價還不到80元。

不過我拿這個策略回測時發現,勝率其實不突出,代表這些挑出來的股票還需要再過濾

後來我加上了推估本益比低於一定水平等其他條件,回測的數據顯示,這樣的策略在多頭市場是管用的

至於怎麼強化這個策略,就交給大家自行增加選股條件囉。

NVI指標

 

PVI ( Positive Volume Index ) 正量指標 及  NVI ( Negative Volume Index ) 負量指標

 這兩個指標必須放在一起看,才能對股票量價的變動有整體的瞭解.基本上這兩個指標是用來體現所謂的「量價關係」,從指標的變動方向與股價的變動方向來綜合研判價格未來可能的變化方向.

  1. PVI的計算公式如下:

假如 今日成交量「大於」昨日成交量,則

   今日PVI = 昨日 PVI + 今日股價漲跌幅

否則

      今日PVI = 昨日 PVI + 0

  1. NVI的計算公式如下:

假如 今日成交量「小於」昨日成交量,則

   今日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");

參考圖形

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");

參考圖

 

MA移動平均線

公式

(簡單)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] )
即離目前越近的資料, 在計算平均時其給的權數越高.

意義

移動平均的概念是由統計學領域應用而來,在技術分析上,移動平均的作用可以引伸成四層意義:平滑作用、趨勢線、成本線及支撐壓力

  1. 平滑作用–由於價格資料具波動,因此單純觀察每日價格通常會因為價格的波動大而受干擾,無法看穿本質。因此將價格作移動平均後,將可使價格在呈現上具平滑功能,以便利觀察。
  2. 趨勢線–平滑後的價格會較具明確的方向性,亦即以較多的觀察樣本較能顯現出股價較長期的的趨勢性,因此移動平均線可視為一趨勢線。
  3. 成本線–由於移動平均線的計算參考了最近n個交易收盤價的資料,因此大致上來說,移動平均是最近n日市場的買賣平均價格。也就是說,最近市場交易買方的成本會落在移動平均的附近,因此移動平均可視為近期市場買進者的成本。
  4. 支撐壓力–由心理面來說,移動平均落在某一價位,代表該價位為目前股票擁有者的成本區,並且對該群人而言,這個價位是一個值得買進的價位(所以才會擁有部位),因此當股價由上而下跌至均線附近時,便會再度落到該群人認為值得買進的價位區,因此再引發買進的動作,這樣便會使得當股價跌至均線附近時便會引發止跌的買盤,因此移動平均線可視為一支撐線。

    在另一方面,當外在環境惡劣,使得均線的支撐力道不足而使股價跌破均線時,則此發生套牢現象–股價低於買進成本,而造成投資人發生帳面虧損,使其不願在此虧損階段賣股票。在這個時候,投資人會產生一個心態,便是等股價回本便趕快賣股票以解套。所以當股價由下方往上觸至均線時,便會產生賣壓而造成股價再往下壓,因此這時均線反而成為一壓力線。

應用時機

  • 一般可將移動平均線視為支撐或壓力線。短線看6日(週)或12日均線,更長期則有24日(月)、72日(季)、144日(半年均線)及288日(年均線)等等。長天期的移動平均線其支撐或壓力較短天期來得強,因此股價跌破長天期均線時通常代表著行情反轉的表徵。
  • 由於移動平均線代表著一趨勢線,因此利用長短天期不同的移動平均線來檢視趨勢的改變與否。長天期的移動平均線代表原來趨勢,而當短天期移動平均線與長天期發生交叉時,可能代表趨勢開始轉變,為買賣訊號;當短天期移動平均線由下往上向長天期移動平均線交叉時,為買進訊號。
  • 當股價均線呈現越短天期的均線排列在越上方時,則稱為多頭排列,為有大行情的前兆;相反的,若越長天期均線蓋在越上面,則為空頭排列,為空頭行情表徵。
  • 年均線通常代表多頭及空頭的分界線,為一重要指標。而在過去幾次的大空頭中,當股價跌至10年均線時均為長線的大底部,為重要買點。

缺點

移動平均線為一落後指標,因此單純效果有限

補救措施

配合其他指標使用.

 

函數腳本

SetBarMode(1);

input:thePrice(numericseries); //"價格序列"
input:Length(numericsimple); //"計算期間"
 
if Length > 0 then
 Average = Summation(thePrice, Length) / Length
else 
 Average =0;

 

 

 

Momentum指標

今天跟大家介紹一個很阿殺利的指標,就是江湖人稱動量指標的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

MACD的英文原名為 Moving Average Convergnece & Divergence,也就是收斂發散移動平均線的意思,所以顧名思義它是移動平均線的一種。這個指標在技術分析各指標當中,算是極普遍又有名的一個。以下是MACD的計算步驟,附表1即為MACD的計算範例:

1.      計算出真實成本:

 

 Pt=Ct ´ 1/2 + Ht ´ ¼ + Lt  ´ ¼    其中 Ct為收盤價, Ht為最高價, Lt為最低價

 

2.      計算兩條平滑平均線 12EMA26EMA


Et =  Et-1  +  α  
´  (  Pt  –  Et-1  )

其中 Et為當日平滑平均值, Et-1為前一日平滑平均值,  Pt為當日真實成本,         

α= 2 / ( 1+ MA)   MA = 平均天數 (=1226 )

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");

參考的圖

MACD

MA-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");

參考圖

ma-osc

除了利用MAO指標線與零軸的交叉點來作為買賣點的確認之外,我們也要注意該指標值在零軸以上或以下的「反轉點」,它會比跟零軸形成的交叉點更早出現,就在股價開始轉折時就讓我們抓到,而不必等漲了或跌了一段才出現的黃金交叉或死亡交叉。特別注意如果反轉點是呈現尖銳的形狀而不是平緩的圖頭狀時,則該買賣訊號的確認會更準確。

最後要補充說明的是,這個指標除了上述的特殊性之外,還有一個重要性。因為它是MACD指標的簡易版,如果將這兩條均線採用EMA式的平滑平均來計算的話,那麼兩者相減之後的MAO指標,其實就是MACD指標中的DIF線,兩者是一模一樣,毫無區別的。所以我們可以說從均線架構的理論,到MAO指標,以迄MACD指標,是「吾道一以貫之」的。

HMA改良式移動平均

HMA的精神是在計算移動平均時,給予後面的幾根比較高的權重

腳本

inputs:Length(20) ; 
vars:MA(0),HMA(0);

MA=2*Xaverage(close,IntPortion(Length*0.5))-xaverage(close,Length);

HMA=xAverage(MA,IntPortion(SquareRoot(Length)));

Plot1(HMA,"HMA") ;

參考的圖

HMA

指數移動平均

指數移動平均英語:exponential moving averageEMAEXMA)是以指數式遞減加權的移動平均。各數值的加權影響力隨時間而指數式遞減,越近期的數據加權影響力越重,但較舊的數據也給予一定的加權值。

在XS中把這個移動平均寫成一個叫XAverage的函數,腳本如下

SetBarMode(2);

input:thePrice(numericseries); //"價格序列"
input:Length(Numeric); //"計算期間"

variable: Factor(0);

if length + 1 = 0 then Factor = 1 else Factor = 2 / (Length + 1);

if CurrentBar = 1 then
 XAverage = thePrice
else
 XAverage = XAverage[1] + Factor * (thePrice - XAverage[1]);

 

Elder Ray 指標

計算方法

一個衡量市場上買賣數額壓力的指標。這個指標由兩個獨立的指標“牛市能量”和“熊市能量”組成。這兩個指標能夠説明交易人確定價格相對於一定的指數移動平均(EMA )的位置。

牛市能量 = 日高 – n區間EMA熊市能量 = 日低 – n區間EMA

使用牛市和熊市能量的值以及差異來説明做出交易決策。當熊市能量的值低於零,但增加時且牛市能量的最後高峰高於上一個時,考慮開倉買進。當牛市能量的值為正但下降時,且熊市能量的最近低點低於之前的任何低點,考慮賣空。EMA傾斜也可以被用來上述兩種情形來幫助確認趨勢的方向。

腳本

// Elder 多頭力道指標
//
input: Length(13);

SetInputName(1, "天數");
Value1 = High - XAverage(Close, Length);

Plot1(Value1, "多頭");

另一個腳本

//Elder 空頭力道指標
//
input: Length(13);

SetInputName(1, "天數");

Value1 = Low - XAverage(Close, Length);

Plot1(Value1, "空頭");

參考圖形

ELDER