Author Archives: 發財橘子

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;

跌停後一直 沒有鎖住


這種型態很特別,通常開盤沒多久會跌停都是因為突發性利空,或是有人受不了開始大倒貨,正常的情況下這種股票會跌停鎖住,但如果跌停很長時間鎖不住, 代表當日恐慌性賣壓已經被消耗殆盡。
如果出現這種情況,很容易多頭一點火就往上走。
我常說盤下的股票作多當沖是比較有利頭的
這一類型就是很典型的一種。
在找這類股票的過程中,打不下去是很重要的一點,賣壓要愈來愈輕是另一點。
參考的腳本如下:

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

if Date <> CurrentDate then return;{計算日為今天才繼續}

variable: LowCount(0),LowLimit(q_DailyDownlimit);

if TimeDiff(Time,Time[BarNumberOfToday-1],"M") < 30 and {開盤30分鐘內}
Low = q_DailyDownlimit then LowCount+=1; {記錄觸跌停次數}

if BarNumberOfToday > 60 and LowCount >1 and TrueAll(close > LowLimit,60) then ret=1;
{ 開盤60根BAR(分鐘)後,曾跌停,且連續60分鐘未再跌停,觸發}

 

噪音指標

我們常說一個趨勢型指標,在盤整時,容易出現錯誤的訊號,要如何研判現在盤勢是不是陷入整理,有個指標可以跟大家介紹,這個指標叫噪音指標,它的算法是以一段時間的漲幅作分母,以這段時間每天的最高減最低合計值當分子,兩者相除,再把算出來的值作移動平均。

它的腳本如下:

input:n1(5);
input:n2(5);

setinputname(1,"計算區間");
setinputname(2,"短天期移動平均");
value1=absvalue(close-close[n1-1]);
value2=summation(range,n1);
if value1=0
then return
else
value3=value2/value1;
value4=average(value3,n2);

plot1(value4,"短天期噪音指標");

從這個運算的公式,我們可以發現,當股價沿著趨勢走的時候,這個噪音指標的值不會大,但如果陷入盤整時,分母會變小,這數值就會變大。

所以我們可以拿這指標跟趨勢型的指標搭配一起看,一般來說,趨勢反轉前,就像一部高速行駛的汽車要轉彎,一定會發出很大的噪音,如果趨勢指標出現反轉的訊號,而噪音指標也出現上昇的情況,那麼反轉的機率就更高了。

這個指標可以在辨識趨勢是否成形時,拿來作為一個確認的工具,也可以拿來判斷是否進入盤整。

移動平均線再平均指標

mv再平均指標

這兩天,試了一個不算複雜的算法,有點意思,就提出來跟大家報告一下。

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

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

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附近游走,代表的是一個整理格局。

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

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

隨機漫步指標。

我們在觀察一個商品的價格走勢時,會發現,它有時上漲,有時下跌,但最常的是盤整。傳統的趨勢指標如macd,移動平均線等等,在股價陷入盤整時,出現的交易訊號,常常是假訊號,我們在運用趨勢指標作為交易基礎時,最痛苦的就是在盤整時出現的交易訊號,往往會讓我們不斷的停損出場,過度交易。

怎麼解決這個問題? 在統計上,有方法,這個方法叫隨機漫步指標。

這個指標的概念是假設在趨勢形成前,股價是隨機的波動,這時候股價會落在統計上所謂標準差的範圍內,也就是離移動平均線的位置在標準差的範圍內。
但如果股價的波動超過了隨機波動的範圍,那就代表趨勢形成。

所以我們用今天的最高價去減區間最低價如果大於波動範圍乘上標準差(相除大於一) ,代表上升趨勢成形,如果是今天最低價跌的幅度大於波動範圍乘上標準差,代表下跌趨勢成形,我們可以根據這樣的原則,畫出兩條線,內來判斷上漲或是下跌的趨勢是否成形。
畫線的腳本如下:

variable:RWIH(0),RWIL(0);
input:length(10);
value1=standarddev(close,length,1);
value4=average(truerange,length);
RWIH=(high-low[length-1])/value4*value1;
RWIL=(high[length-1]-low)/value4*value1;
plot1(RWIH);
plot2(RWIL);

15分鐘線的突破盤整區

15分鐘線突破盤整區常用15分鐘線做短線進場點的分析工具,開放現股當沖後,也就試著寫了一個腳本試試看
這個腳本是透過15分鐘線,尋找那些突破近期盤整價位區的股票。

腳本如下:

input:bars(100);
input:band(2);
setinputname(1,"計算區間");
setinputname(2,"三高點之高低價差");
value1=nthhighest(1,high[1],bars);
value2=nthhighest(3,high[1],bars);
value3=(value1-value2)/value2;
if value3<=band/100
and close cross over value1
then ret=1;

使用這個腳本,有幾個心得

1.報上有好消息導致開盤跳空上揚的股票,要等拉回不跌回盤整區才是有效突破。
2.突破是最好是帶量。
3.突破時日線最好同步出現繼續型態或反轉型態的多頭買進訊號(長線保護短線)
4.短線漲幅大的股票可能只是震盪作頭。
5.15分鐘線挑出來的股票,只能作短線,除非更長頻率也出現同樣訊號。
附圖是一個符合上述心得的例子。

至於要看多長,我腳本是用100根bar來計算三個高點的位置,太長了我覺得也不見得勝率有比較高