Author Archives: 發財橘子

第一時間抓住反轉契機

tr1當股價下跌是一個持續性的行為時,我們看做是空方走勢! 而在股價一路下跌的這段期間,實際上反彈能量會一直不斷在累積,直到有一個事件觸發了這個反彈的能量包,反彈才會正式開始!

我們找到這樣的一個行為,當股價呈現下降趨勢,一但價格開始出現止跌反轉,那很明顯就有可能出現一個短波段,根據過去三年來的統計,這樣的反轉有6成7的機會能自低點彈升16%! 可以做為一個搶短多的獲利機會! 若反彈超過16%,還有可能發展出一波短多!

下圖可以看得出來禾伸堂(3026)在一段期間的下跌持續性相當高,幾乎就是只往下,我們從這段期間算出一個相當負的斜率! 同時我們以最近幾天的高點來算可能的反轉上升坡度,一但這個反轉的速度讓股價的型態看起來像是個V型反轉,那很可能就是一個跌勢的終點了!

當然要注意的是這樣的操作方式一定要以之前的低點當做最後停損點! 畢竟搶反彈雖然獲利快速,風險也相對會高些!

利用警示腳本我們可以把買進和停損訊號寫在一起!

input:Length(20); setinputname(1,"下降趨勢計算期數");
input:Rate(150); setinputname(2,"反轉率%");
variable: Factor(0),xStopLossPoint(0);

if currentbar= 1 then Factor = 100/Close; {先標準化股價}

if close > open and close < close[length] then
begin
value1 = linearregslope(high*Factor,Length);
value2 = linearregslope(high*Factor,3);
if value1 < 0 and value2-value1 > Rate*0.01 then begin
retmsg="搶反彈進場點"; {加上策略觸發時提示的訊息}
ret=1;
xStopLossPoint = Lowest(L,Length); {記下當時的V底低點}
end;
end;

if C < xStopLossPoint and C[1] > xStopLossPoint then
begin
retmsg="搶反彈最後停損點跌破"; {加上策略觸發時提示的訊息:這裡是多單賣出的提示!}
ret=1;
end;

tr2

糾結均線突破

mat1當股價收斂到一個程度,所有的均線都會相當靠近並且落在一個小範圍內!
這就是均線糾結: 換句話說,可以是多空不明的收斂狀態! 當股價只要有一些事件引起的風吹草動! 股價就會立即表態,往阻力最小的那邊跑去!!
這個現象可以被應用在多方, 也可以被應用在空方. 一但股價發生均線糾結的時候,就主動監控! 當股價往上發動穿越時,立刻以多方訊號通知!!
在警示腳本裡 我們需要算出短中長期的均線價格,依照慣用的原則,是只要收盤價穿過這三條線就可以發出多方訊號,不過在這邊我們加了一個安全門坎,用來濾掉一些可能的雜訊! 讓操作更有效率!

input: shortlength(5); setinputname(1,"短期均線期數");
input: midlength(10); setinputname(2,"中期均線期數");
input: Longlength(20); setinputname(3,"長期均線期數");
input: Percent(2); setinputname(4,"均線糾結區間%");
input: Volpercent(25); setinputname(5,"放量幅度%");//帶量突破的量是超過最長期的均量多少%
variable: shortaverage(0);
variable: midaverage(0);
variable: Longaverage(0);
variable:Kprice(0);
if volume > average(volume,Longlength) * (1 + volpercent * 0.01) then
begin
shortaverage = average(close,shortlength);
midaverage = average(close,midlength);
Longaverage = average(close,Longlength);
if Close crosses over maxlist(shortaverage,midaverage,Longaverage) then
begin
value1= absvalue(shortaverage -midaverage);
value2= absvalue(midaverage -Longaverage);
value3= absvalue(Longaverage -shortaverage);
if maxlist(value1,value2,value3)*100 < Percent*Close then Kprice=H;
end;
end;
ret= C crosses above Kprice;

mat2

大漲後的天量收黑

vb

成交量一向是最為常用的人氣指標,沒有量等於沒人氣,而超大量呢? 當然就是人氣匯集之時,而主力大戶當然就是要趁這個人最多的時候來出貨賣股票了! 此時不賣,更待何時呢? 當然這也有可能是個超級換手大量,從一個主力換成另一個看好的主力! 為了要判斷這兩種不同情況,我們要在個股創天量的時候記錄這時產生的高低關鍵價,只要盯住這個價格我們就知道背後大戶的動作是什麼了!

以虹光(2380)這檔股票為例,突然爆出了超級天量!當天振幅超大,把這種情況就要把低點列為空方關鍵價位!
這樣的策略就是需要觀察記錄過去一段時間的量變化,當量突增到一個極端值,價格也到達高點,就把該天的低點記下,當做是空方關鍵價! 一有穿價就提示空方訊號!

警示腳本的寫法如下,資料讀取設250,表示是一年來最大量,設成750就會去抓3年來的最大量,最大引用1即可!

variable:Maxv(0); MaxV= maxlist(Maxv,V);
variable:MaxH(0); MaxH= maxlist(MaxH,H);
variable:Kprice(0);
if Maxv = V and MaxH = H then Kprice = L;
ret= C crosses below KPrice ;

vb1

價量背離很難救!

pv股價需要漲升很重要的一點就是量要跟得上來,如果在多方走勢中,量一直沒辦法和價一樣同步上升,這就表示市場上沒有太多人有追價意願! 這時候想要再拉抬的主力有可能就會放棄這檔股票而開始把之前吃下的籌碼賣出!

不管是多大多小的股票,沒有了人氣都是一件很危險的警訊,當出現了價上升而量沒有同步放大的情況時,真的就必需非常注意,有鑑於此,我們把這樣的型態寫成一個訊號,當價量背離發生時,記錄下當時的低點當做關鍵價,當股價跌破時,可以視為空方訊號,

在XS裡寫起來不用太複雜

variable:count(0),KPrice(0),hDate(0); //設變數

count = CountIf(close > close[1] and volume < volume[1], 5);
//計算5期內價量背離的次數

if count > 3 then begin //如果發升三次以上
hDate=Date; //記錄日期
Kprice = lowest(l,length);//記錄關鍵價格
end;

ret= Close crosses below Kprice and DateDiff(Date,hdate) < 5 ;
//最後如果在價量背離發生的5天內價格跌破關鍵價時,發出訊號

我們可以看到股票大如仁寶在發生這樣的背離時,一跌破就賞了一跟跌停!這是屬於可以做超大放空部位的個股! 所以人氣的重要度真的可想一般!!

從開盤看關鍵轉折點

open rev開盤一直以來都是一個關鍵點,但光看開盤價可能還不是那麼足夠,需要搭配上一點過濾,才能把開盤這件事分析的更精確!

在XQ裡有統計一筆資料:開盤委買賣,裡面包寒了開盤委買張數和開盤委賣張數,我們今天要從這裡面挖寶!

每檔股票所統計的張數會因為股價和熱絡度不同會有很大的差異,但當我們把兩個數值相除後就可以標準化這事了!!

variable:IORatio(0),z(1);
IORatio=GetField("開盤委買")[z]/GetField("開盤委賣")[z]-1;

variable:iHigh(0),iLow(10000);

if IORatio > 0.5 and GetField("開盤委買")[z] = highest(GetField("開盤委買")[z],20) then
begin
iHigh = H;
end
else if IORatio < -0.5 and GetField("開盤委賣")[z] = highest(GetField("開盤委賣")[z],20) then
begin
iLow = L;
end;
if LS>0 and H > iHigh and C[1] if LSiLow then ret=1;

只要用這樣的方法就可以掌握開盤時,是誰真正在動作!

合併多重訊號到單一警示retmsg的應用

今天我們要介紹一個新功能,可以把多樣不同的訊號放在同個一腳本裡,只要透過設定回傳的訊息,就可以知道這個商品是多或空的觸發,而只要使用同一個進階警示就能完成!!

以台指期貨為例,在多數的情況下,如果股票有強力的多頭攻勢,第一個會需要突破的關卡就是昨日的高點!! 當指數期貨價格能衝過昨日高點,就代表著多頭勢力有一定程度的信心要作出一番攻擊,透過這樣的關鍵價監控,除了有助於對盤勢的掌握,更能再期指中有較強的獲力信心程度!

空方發動攻擊時,第一個目標價就是昨日低點!許多看盤者或交易程式都會把這個價格當做是多方留守的防線,一但價格被擊破,不少多方停損單會出籠,走出一段下跌走勢的機會也大大提升!!

我們把多空合併後,腳本可以這樣寫 {資料讀取400 最大引用10,適用1MIN}

variable:Xhigh(0),XLow(100000);

if Date xHigh =maxlist(H,xHigh);
xLow = minlist(L,XLow);
end;

if V > TimeDiff(currenttime,time,"S")*25 then begin
if L < XLow then begin retmsg ="破昨低觸空"; ret=1; end;
if H < xHigh then begin retmsg ="過昨高觸多"; ret=1; end;
end;

快來試試吧!

尋找少康中興的股票

朋友抱怨我給他的腳本跑出來的股票有的會漲,有的不漲反跌,我請他舉例,他舉完後,我就知道,我這朋友犯了一個開始做程式交易時大家都會犯的錯~拿單一策略去套用在所有的商品上。

以我朋友抱怨的這個腳本為例,這個腳本是去尋找過去橫向盤整超過二十天以上的股票,然後在今天盤中股價突破二十天來高點且出現長紅棒的時候進場。

電腦要挑出這樣的股票,它必須符合幾個條件
1.過去二十天以來最高價跟最低價差距小於6%
2.今天到目前是長紅棒(現在股價超過開盤價2.5%
3.現在的股價突破過去二十天高點
4.成交量到目前為止超過一千張

除了上述條件之外,這樣的股票必須是大家會追的下手的。

什麼叫大家追的下手的呢?

那就是股票要可能有些題材的?

反過來說,就是當電腦跑出一些符合上述條件股票,而這些股票毫無讓大家追得下手的題材時,就必須濾掉。

那些是屬於這種股票呢?

前些日子我曾分享一張企業生命週期的圖給大家。

我提到當一家企業,因為時勢而起,但同業有比它更強大的對手,營運開始進入惡性循環,長期下來毫無起色,最後走上英雄末路。

這樣的公司,我用XQ選股中心,設了兩個條件來篩選

1.連續六年EPS小於0.5元
2.近六年EPS合計小於1元或資本支出小於近三年平均

這些股票連續六年EPS少於0.5元,代表不管景氣如何,它有自己的問題,在問題解決前,這種股票缺乏題材,就算整理後稍有突破,大家也沒有什麼追價的動力。

但反過來說,這樣的公司如果連續幾個月營收數字都明顯優於過往,那就是少康中興的股票了。
要挑這樣的公司,就是在前面三個條件之後,再加上兩個條件
1.連續三個月月營收年增率都大於5%
2.月營收創13個月新高

等待少康的過程是漫長且可能等不到的,這樣的公司,平常根本不要拿來使用策略雷達,但如果等到少康中興時,就要納入每天的觀察名單中了,因為,歷史告訴我們,少康中興的投資報酬率很高,如果只以年報酬率來算,甚至會高過大金剛。

Larry Williams 短線交易秘訣

r1

Larry Williams的著名著作”短線交易密訣”中提到一個非常重要的概念:當收盤上漲時,價格若處於強勢波動率收斂,當股價再創短其新高時,就是非常理想的進場點, 反之則為空點!
這樣的概念可能有點抽象,讓我們來情境試想:有一檔股票正在漲,昨天的波動率假設是2,今天又上漲了,而且今天收盤價和最低價的距離只有不到1,這表示往下去的力道已經收斂掉了,當這樣的情況出現,如果股價突然衝過這兩天的高點,那就是多方要出擊了,這是個一決勝點!! 當然,這時後最好是記下這天的低點,用來當作停損使用!
我們來看一下腳本:

vars: _MarketPosition(0);
Condition1 = Close > Close[1] and (Close-Low) <= 0.5*(High[1]-Low[1]);
Condition2 = Close < Close[1] and (High-Close) <= 0.5*(High[1]-Low[1]);
{整個策略非常單純,上面兩行僅判斷波動率,下面則是部位判斷與停損點的設定}
if _MarketPosition < 1 then begin if condition1[1] and C > maxlist(H[1],H[2]) then
begin
plot4(C*1.01 ,"作多");
plot5(C*1.02);plot6(C*1.03);plot7(C*1.04);
plot8(C*1.05);plot9(C*1.06);plot10(C*1.07);
_MarketPosition=1;
value1 =minlist(L[1],L[2]);
end;
if C cross over value2 and _MarketPosition=-1 then
begin
plot4(C*1.01 ,"回補");
_MarketPosition=0;
end;
end
else if _MarketPosition >-1 then
begin
if condition2[1] and C < minlist(L[1],L[2]) then
begin
plot11(C*0.99 ,"作空");
plot12(C*0.98);plot13(C*0.97);plot14(C*0.96);
plot15(C*0.95);plot16(C*0.94);plot17(C*0.93);
_MarketPosition=-1;
value2 = maxlist(H[1],H[2]) ;
end;
if C cross under value1 and _MarketPosition=1 then
begin
plot3(C*1.01 ,"出場");
_MarketPosition=0;
end;
end;

可以從圖裡面看得到這個點容易成為決勝點!!
改成警示的話腳本會變成下面,跑出來的結果各位可以參考對照是不是有這樣的現象!!

vars: _MarketPosition(0);
Condition1 = Close > Close[1] and (Close-Low) <= 0.5*(High[1]-Low[1]);
Condition2 = Close < Close[1] and (High-Close) <= 0.5*(High[1]-Low[1]);
if _MarketPosition < 1 then
begin
if condition1[1] and C > maxlist(H[1],H[2]) then
begin
ret=1;
value1 =minlist(L[1],L[2]);
end;
if C cross over value2 and _MarketPosition=-1 then
begin
_MarketPosition=0;
end;
end
else if _MarketPosition >-1 then
begin
if condition2[1] and C < minlist(L[1],L[2]) then
begin
_MarketPosition=-1;
value2 = maxlist(H[1],H[2]) ;
end;
if C cross under value1 and _MarketPosition=1 then
begin
_MarketPosition=0;
end;
end;

r2

先進指標Zero Lag HeikinAshi

zha
這個指標為Zero Lag Heikin-Ashi,為利用Heikin-Ashi Price計算之TEMA。Heikin-Ashi為2004年由Dan Valcu所提出的新理論,藉由對原本的「開高低收」做些調整,而期望能在各種指標的操作上有更好的表現。Heikin-Ashi有著反應比EMA快,同時又比TEMA平滑之特性。利用這些特性再搭配月均線,我們可以得到更好的反應市場趨勢。 在這樣的情況下,我們就能第一時間掌握反轉的關鍵點!!

我們看一下腳本:

 

input: Length(14);
variable: price(0), haO(0), haC(0), haMax(0), haMin(0), TEMA1(0), TEMA2(0), EMA(0), ZeroLagHA(0);

price = (close+open+high+low)/4;
haO = (haO[1]+price)/2;

haMax = maxlist(high, haO);
hamin = minlist(low, haO);

haC = (price+haO+haMax+haMin)/4;

EMA = xaverage(haC, Length);
TEMA1 = 3*EMA-3*xaverage(EMA, Length)+xaverage(xaverage(EMA, Length), Length);
EMA = xaverage(TEMA1, Length);
TEMA2 = 3*EMA-3*xaverage(EMA, Length)+xaverage(xaverage(EMA, Length), Length);

ZeroLagHA = 2*TEMA1-TEMA2;

plot1(ZeroLagHA, "Zero Lag HeikinAshi");
plot2(average(C,20),"Average");

Mass index

anne_0901_001
Mass Index,這是一個由Donald Dorsey所研發的指標,這指標使用高低範圍的波動性來判斷趨勢是否逆轉! 就這樣的定義來說,Mass Index是一個不包含方向性的波動率指標,而是利用特定波動率範圍的穿越與跌破來預測價格可能反轉的折點!!

這個Mass Index的公式是使用高低範圍的兩次加權平均來平滑高低範圍的變化,然後去累計一段時間的的範圍加權平均變化率,當我們取得這個值以後,還要在圖上標上兩段水平線,用來做為波動率擴張的上限與下限,這兩條線代表的意義有點像當股票緩漲後開始噴出,噴到一定”波動率”的時後,表示反轉風險上升,這是第一條線,而股價噴發後,股票盤整活性降低,波動率會下降,而降到一定程度下,看做是高檔盤整收殮,一則可能失去了動力而造成股價高檔盤整跌破,二則亦可休息完畢再次攻堅,這是第二條線!

當然這兩條線對於每檔股票可能值不儘相同,我們可以用常見的值先設定,再看股性調整!

腳本如下:

inputs: SLength( 9 ), SigmaLen( 25 ), vThreshold( 27 ),InverseThre( 26.5 ) ;
variables: MI1(0),MI2(0),MIR(0),MIV(0);

MI1 = XAverage( Range, SLength ) ;
MI2 = XAverage( MI1, SLength ) ;
if MI2 > 0 then MIR =MI1/MI2 else MIR=0;
if SigmaLen > CurrentBar then MIV += MIR else MIV = MIV + MIR -MIR[SigmaLen];

Plot1( MIV, "Mass Index" ) ;
Plot2( vThreshold, "擴張警戒" ) ;
Plot3( InverseThre, "盤整反轉" ) ;

anne_0901_002