Author Archives: 發財橘子

加速指標

加速指標的作法有幾個步驟

1.計算一段期間裡,上漲天數的平均上漲幅度

2.計算一段時間裡,下跌天數的平均下跌幅度

3.拿平均上漲幅度減去平均下跌幅度

4.取上述值的九日平均線

腳本

variable:aspeed(0),dspeed(0),a1(0),d1(0),p1(0),ap1(0);
if close>close[1]
then
aspeed=(close-close[1])/close*100
else
aspeed=0;
if close<close[1]
then
dspeed=(close[1]-close)/close*100
else
dspeed=0;

a1=average(aspeed,5);
d1=average(dspeed,5);


p1=a1-d1;
ap1=average(p1,9);

plot1(p1,"加速度");
plot2(ap1,"移動平均");

參考的圖形

加速指標

平均波幅通道STARC

STARC (Stoller 平均波幅通道) 顯示圍繞一般移動平均由三條線建立的通道。這三條線是 :

  1. 有 n–期間的簡單移動平均 (SMA)。
  2. 一條較高的曲線,來自 n 期間的 SMA 加上 m 期間的平均真實波幅 (ATR) 乘上常數 K。
  3. 一條較低的曲線,來自 n 期間的 SMA 減去 m 期間的 ATR 乘上常數 K。
  1. 類似於布林通道 (Bollinger Bands),斯塔克帶在穩定的市場中會緊縮,並在波動的市場中放鬆。不過,與布林通道以收盤價為基礎不同, 斯塔克帶的計算依據是平均真實波幅 (ATR),因此對市場波動率提供更深入的快照。
  2. 當價格曲線穿透布林通道時,這可能代表價格持續變更,相較下斯塔克帶傾向於定義一般價格行動的上下限 。因此, 部分交易者在進入市場之前使用斯塔克帶來決定風險水準

指標的腳本如下

input : length(5); setinputname(1, "天期");
input : atrlength(15); setinputname(2, "ATR天期");
input : k(1.35); setinputname(3, "通道常數");
 
variable : hband(0),lband(0); 
 
hband = average(close,length)+average(truerange,atrlength)*k; 
lband = average(close,length)-average(truerange,atrlength)*k; 
 
plot1(hband, "通道上限"); 
plot2(lband, "通道下限");

參考的圖如下圖

平均波幅通道

力度指標(Force Index)

力度指標的思考邏輯是

1.把當天收盤價減去前一日收盤價的值乘以成交量當作當日的上漲下跌力度

2.分別計算短期與長期的上漲下跌力度的移動平均

3.畫出短期與長期力度的差

對應的腳本如下

input:length(10),length1(30);
variable:fis(0),fil(0);
fis=average(volume*(close-close[1]),length);
fil=average(volume*(close-close[1]),length1);
plot1(fis);
plot2(fil);
plot3(fis-fil);

參考的圖形如下

力度指標

1、以長週期Force Index 判斷長期趨勢,若長週期Force Index 在 0 軸以下,則趨勢是持續向下,若遇短週期Force Index 向上穿越0 軸 ,則為空頭信號。

2、以長週期Force Index 判斷長期趨勢,若長週期Force Index 在 0 軸以上,則趨勢是持續向上,若遇短週期Force Index 向下穿越0 軸 ,則為多頭信號。

3、Force Index 也不易觀察出發散狀態,但若出現發散( 頭背離或底背離 ),亦是很好的趨勢反轉信號。

choppy market index

這個指標的作法是以最新收盤價減去N日前的收盤價取絕對值當分子,以區間最高價減去區間最低價當分母,然後乘以100,取百分比值。

這個指標如果絕對值愈高,要嘛是分母很小,也就是區間最高價跟最低價相去不遠,這自然是盤整盤,要嘛是分子很小,那代表收盤價差距不大,也是盤整盤盤無誤,但這個指標最悶的地方在於,如果收盤價變動很小但最高最低價變動也很大時,數字可能很小,但實際上可能是尖頭反轉後的大漲。

如果是在一個原有趨勢裡,這個數字開始從高點往下走,的確是一個從趨勢走向盤整的訊號。

我把這指標改良了一下,用在加權指數上

input:period(10,"計算區間");

value1=(close-close[period-1])/(highest(high,period)-lowest(low,period))*100;

value2=absvalue(value1)-30;

value3=average(value2,3);

plot1(value3,"市場波動指標");

用它畫成的圖如下

07032701

從這張圖可以看出,

1.當這個指標從50以上下滑時,代表一個趨勢的休息

2.這指標踫到尖頭反轉會失真

主力長期收集的股票

當股價跌到一定程度,但基本面其實不錯,往往會讓長期持股者起心動念,開始增加持股,這裡說的長期持股者,往往就是大股東。 那麼我們要如何知悉有那些長期持股者在開始買股票呢?今天跟大家來介紹一個基於這種思維而設計的選股策略。

首先,我想找的股票要符合以下的特徵

1.基本面表現仍不錯,最好月營收跟去年相比仍能維持成長。

2.最近一個交易日主力還是有買超且買超的張數達一定的比例。

3.殖利率夠高,讓期持股者覺得這價位值得開始進場吸納籌碼。

4.籌碼面有出現持續被收集的跡象。

於是我訂了以下的選股條件

2019021504

其中的主力長期收集是一個選股腳本,腳本內容如下

input:period(60,"計算區間");

settotalbar(120);

condition1=false;
value1=GetField("分公司買進家數","D");
value2=GetField("分公司賣出家數","D");
if countif(value1<value2,period)>period/2
//賣出的分公司家數要比買進分公司家數多代表籌碼從
//各個分公司被收集到特定的分公司
then condition1=true;

value3=GetField("主力買賣超張數","D");
if value3>0
and summation(value3,5)>0
and summation(value3,20)>0
and summation(value3,60)>0
and summation(value3,120)>0
//不同天期主力都買超,代表主力長期一直都站在買方
and close>open*1.03
and condition1
then ret=1;

這個腳本的目的是找到籌碼長期被收納的股票

這樣的選股策略,可以挑到像下面這兩檔的股票

2019021503 2019021502

都是很典型的股價跌到長期持股者願意進場持續吸納的標的

把這個選股策略拿去回測過去三年,出場點設20天之後,回測報告如下

2019021501

從回測報告上來看,這樣的選股策略在空頭末期到多頭初期是很有用的,但在多頭末期及空頭時期則表現很差,這是因為長期持股者通常是在空頭末期到多頭初期才會進場,或者說長期持股者不會逆市拉昇,所以當盤不好時,他們樂得以更便宜的價位來買進,所以這個策略只是找出長期持股者在吸納的股票,至於進場時點,還需要輔以其他的考量。

終極震盪指標

Ultimate Oscillator (Ultimate 或稱 UOS/ULT) 終極指標是由 Larry Williams 所創。 終極指標是計算三個不同週期買賣壓的振盪指標, 利用每個週期間的長短做加權,越靠近當日的數據,權重越大,所以終極指標較一般的均線敏感,能體現股價近期的變化趨勢,加強指標的可靠度。

指標的腳本如下

Var : ruo(0),uo(0),bp(0); 
bp=close-truelow; 
input:l1(7),l2(14),l3(28); 
Value1=summation(bp,l1); 
Value2=summation(bp,l2); 
Value3=summation(bp,l3); 
Value4=summation(truerange,l1); 
Value5=summation(truerange,l2); 
Value6=summation(truerange,l3); 
ruo=(value1/value4)*4+(value2/value5)*2+(value3/value2); 
uo=ruo/7*100; 
plot1(uo);

所畫出來的圖樣如下

uo

Larry Williams 認為現行使用的各種振盪指標,對於週期參數的選擇相當敏感。不同的市況,不同參數設定的振盪指標,產生的結果截然不同。 因此,選擇最佳的參數組含,成為使用振盪指標之前一項重要的環節。

為了將參數週期調和至最佳狀況,Larry Williams 測試後先找出了三個週期不同的振盪指標,再將這些週期參數,按照反比例的方式,製作成常數因數。 然後,依照加權的方式,將三個週期不同的振盪指標,分別乘以不同比例的常數,加以綜合製作成 UOS 終極指標指標。

經過一連串參數順化的過程後,UOS 指標比一般單一參數的振盪指標,更能夠順應各種不同的市況。 UOS 是一種多方位功能的指標,除了趨勢確認及超買超賣方面的作用之外,它的”突破”訊號,不僅可以提供最適當的交易時機之外, 更可以進一步加強指標的可靠度。

恰奇震盪指標

先賢們在運用K棒時,常常會把當日收盤價減去當日最低價,當作是當日多頭的戰功,把最高價減收盤價當作當日空頭的實績。

恰奇震盪指標是應用這樣的想法,把多頭戰功減去空頭實績作為當日多空的淨差距,然後除以最高價減最低價,再乘以當日成交量,這樣就是當日多空的淨能量。

然後再算出近五個交易日的加總淨能量去除以近日加總的成交量,算出近五日淨能量佔成交量的比例。

然後再算出這一比例的10日與20日移動平均

最後把這兩個數字相減就是恰奇震盪指標

根據上述的想法寫出來的指標腳本如下

input:length(5),length1(10),length2(20); 
Value1=((close-low)-(high-close))/(high-low)* volume; 
Value2=summation(Value1,length); 
Value3=summation(volume,length); 
Value4=Value2/value3; 
Value5=average(value4,length1); 
Value6=average(value4,length2); 
Value7=value5-value6; 
plot1(value7);

用在加權指數上,所畫出的圖就如下圖,感覺可以作為一個領先指標。

恰奇震盪指標

估波指標」(Coppock Indicator)

除了興登堡兇兆之外,市場也有類似的,透過技術指標,捕捉轉角市的指標,其中之一,就是「估波指標」(Coppock Indicator); 與「興登堡兇兆」最大的差別,就在於「估波指標」主要是用作捕捉大市見底(非見頂)的指標。

估波指標是為長線投資者追蹤市場情緒變化,進而預測股市見底訊號的技術指針。這指標是由經濟學家Edwin Coppock所創,並最先應用在每月數據中,計算方法如下 :

Coppock = WMA〔10〕of(ROC〔14〕+ROC〔11〕)

*WMA = 加權平均數;ROC = 變化速率

換言之,「估波指標」是14個月和11個月價格變化兩者加總後的10個月加權平均數。如前介紹,這指標有很高的精準度;自二次大戰以來, 「估波指標」先後在美股發出17次入市訊號,有16次均能準確捕捉標普500指數的周期底部。

Coppock 預計股市下瀉11至14個月後,市場情緒將有所改善,大市也理應可以出現回升。故此,Coppock以這些參數制訂此程序。

至於如何利用「估波指標」,一般是待指數回落至0%以下水平後,並且掉頭回升時,便是最佳的入市訊號。 雖然「估波指標」原先只是用作捕捉股市長線底部,惟也可以利用這指標作「估頂」的參考。Var : coppock(0);

Value1=rateofchange(close,14);

Value2=rateofchange(close,11);

Value3=Value1+Value2;

Value4=xaverage(value3,10);

plot1(value4,”coppock indicator”);

估波指標的樣本

估波指標

迴圈

當同樣的指令需要被重覆執行時,用的是迴圈的相關語法,如果知道同樣的指令要被執行多少次,用的是for這個語法。

語法的流程如下圖

for的流程圖

例如當我們要設計一個加總函數,計算過去N期某數據的加總值時,我們就可以用到這樣的語法,把加總函數設計如下

sum

再例如我們要計算一段時間的K線,然後計算符合某特定條件的K棒數時,也可以用For這樣的語法

計數器

但有的時候我們不知道一共要執行多少次,這時候就可以用while這個語法,當判斷式成立時,While迴圈會重複的執行,一直到判斷式回傳False為止。

while1

如果在迴圈內需要執行多個指令的話,則可以使用Begin/End的方式來包圍。

while2

舉個例子

while例子

上述範例內While的迴圈會一直執行,直到 i 的數值 >= 5時才會停止。每次執行時SumValue會累加前幾期的Close數值,同時變數i 會每次加1。以這個範例而言,SumValue的數值會變成是最近5期收盤價的加總,最後算出AvgValue為最近5期的平均收盤價。

 

 

 

 

當成長股突破久未突破的季線

 

 

大家都愛成長股,但成長股往往在營收數據有所表現之前就有所表現,甚至是營收公佈後反而是短線賣點,我試著先挑出成長股,然後當這些成長股的股價技術指標出現買進訊號時才進場,有些這樣的組合型策略勝率還不錯。

因著自己入行時是先在外商銀行當外匯交易員,所以首先接觸到的是技術分析,後來到了投顧當研究員,才接觸基本面研究,所以要推股票的時候,會用基本面過濾標的,然後用技術面決定進場的時機。今天要跟大家介紹的選股策略,就是基於這樣的概念。

首先跟大家介紹我列出來的成長型股票條件

2019011902

這樣的選股條件是挑出最近一個月營收大漲,而且過去一陣子表現在同業間算是中上,然後營運規模不至於太小的公司。

月營收年增率超過兩成這條件是有點苛,但怕符合條件的股票太多,容易造成過度交易,所以我就先這樣設。

以下是用最近一期營收所挑出來的股票

2019011903

接下來在技術面上我用了XS系統內建的一個交易策略叫作出水芙蓉

這個策略的名稱是大陸用語,概念就是找出有很長一陣子股價在季線之下,現在股價終於站上季線。

其腳本如下

input:period(35,"股價低於季線持續的時間");
if trueall(close[1]<average(close,66),period)
and close crosses over average(close,66)
then ret=1;

這腳本在XS裡是內建的警示策略,我把它拿來改成選股腳本,

把上述的選股條件裡加了上面這個選股腳本,然後拿來作回測,回測的設定是停利設8%或20天後出場,這是因為月營收一個月公佈一次,因此必須在新月營收公佈前就先出場,等新的月營收公佈後再用新的數據來決定標的。

回測的結果如下

2019011901

三年一共38個交易機會,平均一個月差不多一個交易機會,交易次數不多,但勝率不錯,只是輸的時候輸不少,所以平均報酬率被拉了下來,但在這一波下跌之前,績效還算是不錯的。

舉這個例子,是跟大家說明,技術面及基本面綜合考量所組出來的選股策略,還蠻符合我們人腦的思維方式,甚至有些朋友會再加上籌碼面的條件,因為電腦其實協助我們的,是把我們對市場的體驗,用程式或操作介面組出一些規則,再透過回測來驗證這些規則是不是真的禁得起考驗,但這些規則,還是離不開我們對市場的觀察。