Author Archives: 發財橘子

MA再平均指標

自從計算大盤多空對策分數之後,我就拿它來制定期指選擇權的交易策略,當指數從谷底翻揚,我就買價外的call,反之則是買價外的put。

這麼做之後,也就更專心的發展跟大盤相關的指標。
這兩天,試了一個不算複雜的算法,有點意思,就提出來跟大家報告一下。

我觀察到,如果把指數五日移動平均當做一個數值,把它拿來再做一次五日平均,再把這兩個數字最近十天的差額加總起來,這數字有點意思。

我把這個數字當成一個自訂指標,腳本如下:

value1=average(close,5);
value2=average(value1,5);
value3=value1-value2;
value4=summation(value3,10);
plot1(value4);

這個自訂指標在XQ上畫成的圖有如附圖。
這指標很有意思的地方有幾點
1.它是領先指標。500點以上作頭後,指數也作頭。負500點左右見底後指數也見底。
2.它大部份的時間都在正 500跟負500之間震盪。
3.當它由正轉負或由負轉正時,代表了一個趨勢的被確認。
4.當數字在零到250附近游走,代表的是一個整理格局。

拿這個指標來看現在的台股指數,我會覺得多頭趨勢才不過被確認多幾天,指數並未過熱到出現反轉訊號,所以雖然指數接近8400的今年高峰區,但我倒沒有像前幾次那麼的偏向空方。

這指標對我而言,有意思的是正負五百點的上下區間,加權指數代表的是整體台灣股市多空雙方的總意見,它出現這麼規律的震盪極限,倒是蠻出乎我意料之外。

XS平台上線以來,透過這樣的運算,我愈來愈能理解為何主要市場,量化交易佔總體成交量的比例會超過五成,連我這個數學爛到爆的傢伙,都可以隨時透過一些簡單的語法,尋找市場波動的韻律,以及對應的交易策略。

adaptive price zone

adaptive price zone

我們在操作上,最怕拉上來不敢追,一追就愛到最高點,也怕套牢時不願殺,砍完就反彈

針對這個症狀,今天來介紹一個指標叫adaptive price zone

這個指標是用來估算出股票合理的波動區間

我們見到股價接近上限就莫再追
見到股價接近下限就等反彈再砍

這指標的公式如下:

input: Length(14), BandPct(2.0);
variable: DSEMA(0), UpBand(0), DownBand(0), RangeEMA(0), period(0), var0(0);

period = squareroot(Length);

DSEMA = xaverage(xaverage(close, period), period);

RangeEMA = xaverage(xaverage(high-low, period), period);

UpBand = DSEMA + BandPct*RangeEMA;

DownBand = DSEMA - BandPct*RangeEMA;

Plot1(UpBand, "Upperband");
Plot2(close, "Close");
Plot3(DownBand, "BottomBand");

這邊用了兩個比較不常見的函數
一個是squareroot 這是開根號的意思
另一個是xaverage,這是指數平滑式的移動平均
也就是當期被重計算
其公式是當期值 = (2/(n+1))*當期價格 + (n-1)/(n+1)*前期值
函數的語法是xaverage(數值,計算期別)

附圖是用英業達作例子,來看看過去一段時間英業達在這個zone之間的波動情況。

Arron oscillator

arron oc

台股大盤膠在這邊,要往那邊走,多空勢均力敵,如果常用的分析方法下不了決定,那就來用點比較冷門的方法分析看看。
arron oscillator就是這種方法。

這個方法其實還算容易懂,公式如下:

這個技術指標中包括兩根線:Aroon-up和Aroon-down。
以計算週期為14日為例:
Aroon-up=((14-14天來最高價發生日到今天的天數)/14)*100
Aroon-down= ((14-14天來最低價發生日到今天的天數)/25)*100
所以如果最近一個交易日創14天來最高價,那arron-up就是100

發明這個指標的Tushar Chande,認為這個指標有三大用法。
1.發現趨勢的反轉。arron-up向上穿越arron-down就是由空翻多,反之就是多翻空。
2.確認趨勢的方向。70是個標準點,arron-up或arron-down只要上70,就是該趨勢很清楚。
3.判斷趨勢的強度。arron-up 與arron-down離的愈開,表示趨勢強度愈強 ,離的愈近,表示是沒有方向的盤整。

我用xs的自設指標根據這個公司寫了一個腳本

input:length(25);
variable: arron_up(0),arron_down(0),arron_oscillator(0);
arron_up=(length-nthhighestbar(1,high,length))/length*100;
arron_down=(length-nthlowestbar(1,low,length))/length*100;
arron_oscillator=arron_up-arron_down;
plot1(arron_up,"arron_up");
plot2(arron_down,"arron_down");
plot3(arron_oscillator,"arron_oscillator");

然後把這個指標用在加權指數上

(請參考附圖)

築底指標


在選股的過程中,怕追高套牢,我們總是傾向挑選那些才從谷底翻揚的股票。

但這樣的股票,是反彈? 還是即將展開長期的多頭走勢,很難辨別。

往往挑錯了股票,愛在反轉最高點,或是挑對了股票,卻在初升段就獲利了結。

今天跟大家介紹的這個指標,叫做築底指標,這個指標,就是用來針對上述的症頭,對症下藥。

築底指標的算法很簡單,以過去125天上漲的天數當分子,下跌的天數當分母,算出來的數字再取不同天期的移動平均。
其腳本如下:

input:period(125),length1(5),length2(20);
variable:zd(0),zdma1(0),zdma2(0);

zd=countif(close>=close[1],period)/countif(close<close[1],period);
zdma1=average(zd,length1);
zdma2=average(zd,length2);

plot1(zdma1,"短天期築底指標");
plot2(zdma2,"長天期築底指標");

漲多跌少就是多頭,漲少跌多就是空頭,這指標在1以下就是漲少跌多,在1以上就是漲多跌少。

透過這樣的概念,就能從比較長的日子裡去理解目前的波動,是在什麼樣的趨勢中,抑或原來的趨勢,反轉了沒有。

這是一個可以拿來輔助我們分辨是在搶反彈還是在波段操作的指標。

BBand width

XQ裡有一個技術指標叫BBand width 這是BBand的一個衍生指標。
我們先來看一下bband的公式

Input: price(numericseries), length(numericsimple), _band(numericsimple);
BollingerBand = Average(price, length) + _band * StandardDev(price, length, 1);

根據這個公式我們可以理解,bband就是均線加上n個標準差
,在統計學上,如果股價與均線之間的差距長期以來是維持一個常態分態的情況,而且我們把n個標準差那個n設為2時,那麼,個股的股價有95.44%的機率是落在上下兩條bband的中間,如果設成3,那股價落在在這兩條bband中間的機率就提高到99.72。(如附圖一)


這就是為何技術分析上會建議股價頂到上方bband時要賣出,跌到下方bband時要買進,因為就機率上看,這麼做贏的機率大很多。

理解了bband的概念後,我們再來看bband width的概念是什麼? 根據公式

up = bollingerband(Close, Length, UpperBand);
down = bollingerband(Close, Length, -1 * LowerBand);
mid = (up + down) / 2;

bbandwidth = 100 * (up - down) / mid;

意思是上面那條bband與下面那條bband的距離除以均價
這個值愈小代表那條線的距離愈小,愈大代表那條線的距離愈大。

由於這兩條線一個是加兩個標準差,一個是減兩個標準差,所以就是標準差愈大,bbandwidth愈大,標準差愈小,bbandwidth愈小。

標準差是變異數開根號,所以標準差的大小基本上取決於變異數的大小。

而變異數是股價與均價間的距離。

所以當bbandwidth從谷底上拉,其實代表的就是股價與均價間的距離從極小開始放大。

這其實代表的是股價開始脫離原先盤整的區域。

各位可以參考副圖二,如果你用這方法交易台積電,進場點都會很不錯。
bbandwith
但這樣的理論是建立在股價與均線的差距長期是處於常態分配的基礎上。

如果出現黑天鵝,這招就不管用了。

這也是我建議用這方法儘量用在量大的權值股上。

以上是補充我對這個指標的一些使用心得。

DMI

我個人頗喜歡用DMI這個指標,因為他代表的是多空雙方角力的痕跡。用久了,有兩個心得

1.成交量大的才用

2.長度設多少,看所應用的標的多空力道的一般週期

怎麼說?

我們回顧一下DMI的公式

var:+di(0),-di(0)
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;

//這樣算出來pdm 跟ndm,再算出padm及nadm

padm = padm[1] + (pdm - padm[1]) / length;
nadm = nadm[1] + (ndm - nadm[1]) / length;

+DI=padm/truerange
-DI=nadm/truerange

plot1(+di,"+di");
plot2(-di,"-di");

從這樣的公式裡,我們可以看得出來,+DI就是在一段區間內多頭向上進攻佔整個多空戰場(true range)的比例,-DI就是空頭向下攻佔的領土佔整個戰場的比例,我其實都習慣把這兩個相減,做為是多空何方獲勝。

這樣看,就比較清楚多空雙方那一方較佔上風。

因為DMI的公式是這麼來的,所以拿來運算的標的最好成交量夠大,因為多空參與者愈多,呈現出來的戰場痕跡就愈真實,然後計算的天期最好符合標的之特性,例如加權指數我都習慣用10天(見附圖),因為這是台灣投資人平均的持股天數,同理,短線客常操作的標的,DMI的天期就要設的更短一點,那些長期投資標的,天期就要設長一點。

dmi

散戶作多指標

每次看到張菲買鴻海,宏達電股票的新聞時,我總想找一個指標,看看散戶佔當日交易量比重超過多少時,股價就可能高處不勝寒。

這幾日,正巧XQ在開始測試自設指標這個新功能。我就自己設了一個指標叫散戶作多指標,這指標=(融資買進+融券回補)/成交量,然後再把它做十天的移動平均(如附圖)。以鴻海為例,這指標有領先性,當鴻海多翻空前,這指標通常會從下跌變成上漲,當從空翻多之前,這指標通常會從上漲變下跌。

但這樣的情況,在冷門股並不明顯,對台積電而言,外資大殺,融資買進佔成交比例高時,反而就是底部。

從這樣的例子,我想說的是,每檔股票的股性不一樣,而且會隨著參與份子的變化而轉變,我們很難用一個交易策略放諸四海而皆準,也許我們可以思考,像全身健康檢查一樣,我們用多個不同的指標,去偵測一個商品不同的面向,包括趨勢,動能,量能,震盪,籌碼的發散或收斂等等,然後我們也有一個個股的多空體檢表,經由長期的追蹤,綜合各項的指標,我們才能比較掌握得住商品的多空脈動。

input:period(10);
value1=GetField("融資買進張數");
value2=GetField("融券買進張數");
value3=(value1+value2)/volume;
value4=average(value3,period);
plot1(value4,"散戶作多指標");

 

十二點之後跌破今天多次觸及但未跌破的低檔區

十二點之後跌破今天多次觸及但未跌破的低檔區

尾盤再來當沖是一種風險較高的行為,但由於股價往往這個時候才會有較大幅度的波動,因此,我還是想介紹幾種尾盤發生的變化種類。
今天介紹的這種,是一整天都在盤整,上下震幅不到2%,但十二點之後,突然創下今天以來的最低點。

 這種分時走勢有幾個注意事項
1.在十二點之前,有超過三次破底但立馬反彈。這代表賣壓是有的,但沒有急著殺。
2.反彈走不高,因為上頭有賣壓在放籌碼。
3.就這樣多空堅持到十二點之後。
4.十二點之後再度創下今天第四次以上的新低。這代表空方今天要賣的股票沒賣完,開始把價格往下調,吸引要逢低承接的買盤。
5.如果買盤不夠,最後就會出現殺尾盤。
6.如果日線上也同步是跌破多日來低點,這樣的分時圖殺尾盤的機率就更大。
以下是公司高手寫的參考腳本。

最後囉嗦一句,十二點以後作當沖真的要藝高人膽大的才能做,好處是有前面三小時的走勢資料做參考,這是屬於比較進階的當沖手法,初學者要多看少作, 或是用小小部位先練功夫就好。

if Date<> Date[1] then KBarOfDay = 1
else KBarOfDay+=1;
variable:TouchLowCounter(0),HLRatio12(0),tLow(0);
if Time > 93000 and Low = lowest(Low,KBarOfDay-1)
then TouchLowCounter+=1;
{9:30以後觸低次數}
if Time <120000 then
begin
HLRatio12 = ((q_DailyHigh-q_DailyLow)/q_RefPrice)*100;
{12:00以前高低點波幅}
tLow = q_DailyLow;
{記下低點}
end;
if date=currentdate and Time > 120000
and touchLowcounter > 3
{今日 12:00之後多次觸及低點}
and HLRatio12 <2 and tLow > q_RefPrice *0.98
{波幅在2%內且12:00前還沒跌超過2%}
and Low = q_DailyLow {來到今日低點時觸發}
then ret=1;

開高後破平盤,反彈站不回平盤

在諸多先賣後買的當沖策略中,跟人性最有關係的,莫過於是這個策略。我們在股票上漲時通常不會想賣,會有想賣股票的念頭,常常是股票由漲變跌的時候,因為股票漲我們會想賺更多,貪婪主導了我們的決策,股票在跌的時候,恐懼主導了我們的行為,因為我們害怕愈虧愈多。所以當股票開高後跌破平盤時,持股者的心態一下子從貪婪變成恐懼,這時候持股信心最容易動搖。如果這時候反彈時又站不回平盤,那麼賣壓湧現就很合理了,如果這檔股票又不是屬於逢低會有投資性買盤介入的股票,那麼先賣再買的當沖機會就會出現。

開高後破平盤反彈站不回平盤

以下附上公司高手針對這個策略所寫的腳本

if barfreq <> "Tick" then RaiseRuntimeError("請設定頻率為TICK");
variable:BarNumberOfToday(0); if Date <> Date[1] then
BarNumberOfToday=1 else BarNumberOfToday+=1;{記錄今天的Bar數}

if date=currentdate and date[10] =Date and {今日曾經大漲}
Close > Close[10]*1.015 then condition1=true else condition1=false;

if condition1 and close[1] >= q_RefPrice and close < q_RefPrice then
condition2 =true else condition2 =false;
{大漲後曾跌破平盤}

if condition2 and close = q_RefPrice then condition3 =true
else condition3 =false;
{跌破後曾回到平盤}

if q_Last = q_DailyLow and condition3 {來到今低且前面各種狀況皆成立}
then ret=1;

整日價量背離後尾盤開殺


前幾天都是介 先買後賣的當沖型態,主要是因為現股當沖的遊戲規則是如此,但反正盤下可追空的股票都開放到1200檔了,有信用戶的朋友當沖先賣後買也大體都能適用在大部份的股票,再加上指數連三黑,為了應景,就先來介紹先賣後買的型態好了。

先買後賣我喜歡挑早盤在盤下的股票,同樣的,先賣後買時,我喜歡挑開高的股票。
今天跟大家介紹的是當天開高後一整天都價量背離的股票,這種股票代表市場追高的意願很低,反而是賣方變的積極。
附圖就是一個例子
這種股票通常到了尾盤時,就是多空重要分水嶺,有幾個原
1.早上追高的可能要作個了結
2.一整天都逢高在賣的尾盤還有多少要賣?
3.如果已經漲了很多天而追高無量,主力會不會先走一趟,攤低成本?

在我的經驗裡,一檔漲了好一陣子的股票如果開高後是急殺後再緩漲,而且盤中追高無量,那麼殺尾盤的機率就很大。

以下是高手寫的腳本,特別是價量背離這一段,寫的極精采,在其他地方也用得到。

if barfreq <> "Min" then RaiseRuntimeError("請設定頻率為分鐘");
var:PV(0),NV(0);
{計算價量背離定義之正向量與負向量}
if Date <> Date[1] then
if Close > Close[1] then PV=volume else if Close < Close[1] then NV=Volume
else
if Close > Close[1] then PV+=volume else if Close < Close[1] then NV+=Volume;

if currenttime > 123000 and {12:30以後}
q_last < q_DailyHigh *0.98 and Close < q_RefPrice and Close[1] >= q_RefPrice and
{從高點往下跌2%破平盤}
NV > PV *3 {價量背離}
then ret=1;