Author Archives: 發財橘子

主力法人成本價格的判斷

g1

在外資或是主要控盤者的操作方法裡,有個相當重要的下單法,叫做冰山單!
意思是,雖然你看到了小小一塊,其實隱藏了非常大的一個部位在裡面!
這要怎麼做到呢? 其實就是把單子拆的很散,讓一般人著實看不出來! 如果今天某大券商要買1000張台積電,使用了這個方法,在盤中每10秒都掛2張買進,不僅不容易被發現,如果間隔時間和單量都會小幅變動,那真的是很難猜得出來是不是有大戶在收,特別在這種大單很容易被狙擊的行情下,這種單真的是已經變成必備的工具!

那我們要怎麼知道大戶最終的行為呢?當然可以做的就是在盤後看一下交易所公佈的券商買賣報告書,統計一下特定券商是不是有特別的行為!
其實還有另外一個方法,比較容易被忽略,但是是非常實在,就是價格法! 不論是外資或是大戶,買股票的目的就是為了要賺錢,在這樣的假設下,就有空間可以運作!!

剛剛提到,當外資要買股票時,為了不讓人發現所使用的方法,最後總結出來的部位,還是會有一個成本價!! 如果單子的下法是非常分散在不特定時間,那最後得到的這個成本價,就會非常接近當日均價!!

XS裡提供了每日成交金額的資料,只要使用

var:DayAvgPrice(0);DayAvgPrice = GetField("成交金額")/v/1000;

就可以得到這個價格!!

而又每天的價格都上上下下,怎麼樣的才能看出大戶的動作方向的?
是的,如果是大戶,你可能不會在乎單一天的收盤價是不是比成本進價低了一點點,可是如果你買了一個星期,兩個星期,一個月,最後加起來的成本價,比收盤價還高,那就心情很鬱悶了!!

所以我們把收盤價和日均價的價差算出來,做個幾天的加總,這邊是20日,可視為月成本:

plot1(summation( c-DayAvgPrice,20),"月成本分界");

畫出圖來就一目了然了!!

典型反轉訊號

keyday rev

當指數或股價處在高檔時,跑得快是一個很重要的反射機制,跑得對則是一種藝術!
我們今天把市場上常用的底部V型反轉拉高,看看高檔倒V型反轉要怎麼做?!
如果要成為倒V, 那中間那天的高點勢必要高於左右兩邊,再來就是強度要夠的話,中間那天的高點,至少要比左右低點大上一定幅度,這邊就設定為5%
腳本可以這樣表達

condition1= H[1] > H[2] and H[1] > H and H[1] > L[2]*1.05 and H[1] > L*1.05;

//當這樣的情況發生的時候,我們把左右兩邊的最低價平均一下,當做是一個關鍵價
if condition1 then value1 = (L+L[2])/2;
//當股價跌破這個價格的時候,就是反轉的訊號! 這是標準型策略的作法!
{警示} if Close cross under value1 then ret=1;

這樣我們就完成一個型態辨識型的策略了!
如果要畫在圖上就可以改成:

{指標} plot1(Value1,"高檔反轉線");

這樣一來就可以在盤中即時知道哪些股票有面臨反轉向下的危機喔! 使用XS做即時型態辨試一點都不難!

突破投信成本線

對於一般投資人來說,當行情難以預料或是真的看不懂盤勢的時候,只要出掉部位,趁空偶爾看看盤瞭解一下,靜待適宜時機再來進場就好了!

可是對於法人來說,可就不是這樣了,尤其是投信!! 基本上投信可以看作是一個基金公司,這個公司呢,就是用募來的錢賺錢,績效好,才能越做越大! 如果績效不好,或是不夠好(大家都賺但是你賺的特別少)的情況下,那就麻煩了! 這樣不僅僅可能影響公司商譽,經理人的飯碗也是有可能不保的!

這時候身為一個基金經理人,就得使出渾身解數來創造績效了!

要賺到績效,第一件事就是…要會買股票! 沒錯,如果基金投信想從某檔股票上賺到錢,基本上在正常的情況下,這些動作是無所遁行的! 每個經理人操作方法可能不儘相同,不過重點都是一樣,買進以後快點拉抬,趁量還大,快出一出獲利了結!故事真是太完美了!

那我們這些小散戶怎麼從中獲利呢? 當然要從最簡單的方法下手,之前有提到過策略的標準作法: 找到一個關鍵價, 等市價突破這個價的時候,買進!! 就這樣,我們要先找到投信的短期進場成本價當關鍵價,盤中有突破就來通知一下,我們就可以很開心的搭順風車了!!

input: pastDays(3); setinputname(1,"計算天數");
input: _BuyRatio(10); setinputname(2,"買超佔比例(%)");

variable: SumAm(0),SumForce(0), SumTotalVolume(0),APrice(0),AVGP(0),Kprice(0),QDate(0);

APrice = GetField("成交金額")[1] / V[1]/1000;

SumAm = Summation(GetField("投信買賣超")[1]*APrice, pastDays);
SumForce = Summation(GetField("投信買賣超")[1], pastDays);

sumTotalVolume = Summation(Volume[1], pastDays);

if SumAm > 30000 and SumForce > SumTotalVolume * _BuyRatio/100 then
begin
Kprice =highest(avgprice,pastDays);
QDate=Date;
end;

if DateDiff(Date,QDate) < pastDays+5 and C > Kprice and C[1] < Kprice then ret=1;

凱特納通道

anne_0711_001

今天我們利用凱特納通道和成交量振盪來追蹤分析突破交易的趨勢穩定性!

這個指標分析稱為TMV(Trend.Momentum.Volatility&Volume),即趨勢動量,波動率與成交量的綜合指標。

一直以來,市場老手前輩在講解多頭盤勢的時候,都會提到一點:價格在上揚時,量要溫和放大,走勢才能持久,一但量失控,可能就意謂著行情的尾聲!

我們今天就來看一下怎麼樣把這樣的概念實現在可以具體表徵的K線圖上!

首先,我們做出凱特納通道,圖上三條線的地方就是這個通道,一般情況下,當價格超過這個通道的高點,就是多頭趨勢的發動,稱為通道突破,而這個通道的中線,即價格均線,做為出場點!

我們設計一個多方訊號標記在K線圖上,是綠色的向上三角形,然後將量的振蕩,用黃色長條框搭配著看。在前面的假設中,多方走勢就是有出現綠色三角的區間,而量的穩定放大,我們可以看做這個區間下的量振盪變小了!

加權指數中可以看到 在五月底到六月底的這段期間,量的振盪是有在往下收的趨勢,而在七月初的爆量,將振盪拉開相當大,這時後在看盤時就得時時注意是不是量有”回穩”的情況,如果能夠回穩,攻勢持續的機會也才能比較高!!

腳本如下: 請記得把plot3設到第2座標軸,而plot1,plot2設為點

var:Periods(13);
var:Price(0); Price = (C+H+l)/3;

var:Center(0);Center = average(Price,Periods);
var:KTop(0); Ktop = Center + average(H-L,Periods);
var:KBot(0); KBot = Center - average(H-L,Periods);

variable: Length(10),pdi(0), ndi(0), adx_value(0);
DirectionMovement(Length, pdi, ndi, adx_value);

if adx_value > adx_value[1] and C > average(C,8) then plot1(C,"ADX Rising");
if adx_value > adx_value[1] and C < average(C,8) then plot2(C,"ADX Falling");

var:VolumeOsc(0);
VolumeOsc = (average(v,1)-average(V,20))/average(V,20);

plot3(VolumeOsc,"VolumeOsc");
plot4(Center,"Center");
plot5(KTop,"KTop");
plot6(KBot,"KBot");

尋找具有領先預測性的交易策略

我們總是想在個股行情發動前,就先上車,但大部份的技術指標都總是在價量齊揚之後,才會出現買進訊號。

但有的時候,可能受限於大盤的下跌,雖然股價沒有太大的上揚,成交量也沒有明顯的回升,但如果成交量佔大盤比種持續變大,股價穩定的比大盤強,往往等到大盤一回穩,股價就開始有明顯的回升。

XS裡有兩個欄位,一個叫資金流向,一個叫強弱指標,前者是成交值跟大盤成交值的比值,後者則是個股漲跌幅與大盤漲跌幅的相對闗係,我們可以透過這個兩個欄位,找到盤不好但個股表現相對穩定且資金在流入的股票。

我們常說要找價量齊揚的股票,但如果考慮到相對的概念,我們要找的其實是成交量佔大盤的比重在增加,而且股價跟大盤對應的強度在增強。

運用這樣的概念,我寫了一個指標,這指標在計算十天之內有多少天成交值佔大盤比重在增加且比大盤強,然後取五日平均
我發現當這數字從一以下向上而股價還在橫向整理時,後市出現長紅的機率頗高(如附圖一)
這個指標的腳本如下:

input:sp(10);
setinputname(1,"短計算區間");
value1=GetField("資金流向");
value2=GetField("強弱指標");
var:count1(0) ;
count1=countif(value2>0and value1>value1[1],sp);
value3=average(count1,5);
plot1(value3,"短期價量齊揚天數");

這樣的概念,代表個股的強度跟佔大盤成交值都在轉強,但股價受大盤壓抑,一旦大盤好轉,股價表現就可能很亮眼。

這樣的概念,我們可以改寫成策略雷達的腳本

input:sp(10);
setinputname(1,"短計算區間");
value1=GetField("資金流向");
value2=GetField("強弱指標");
var:count1(0) ;
count1=countif(value2>0and value1>value1[1],sp);
value3=average(count1/SP*100,5);
if (highest(close,5)-lowest(close,5))<close*1.07
and value3 cross over 35
then ret=1;

運用這個策略,記得兩件事
1.選大盤不是很好的時候
2.別挑太沒有量的股票,不然資金流向稍為增加一點成交量就會暴增

我自己使用上發現,這個策略出現的股票不是天天都有,但後市有行情的機率比起其他策略,還頗不錯。

xqlite banner

主動買力指標

在操作上,每個人都有影響自己最深刻的體會,我自己的最深刻體會就是”反常必有妖”。 這句話是師父教我的,這些年來,在挑股票時,在決定是不是出場時,這句話影響我非常深。

什麼是常? 什麼是反常?

我自己的定義是,跟以往一樣叫常,跟以往不一樣叫反常。
所以我總是訂定一些指標,去衡量一檔股票的交易情況,從中找出個股的常,與反常。

今天要跟大家介的主動性買力比重指標,就是這樣的概念。

這個指標的計算,需要先來定義一些名詞

XQ把每天公佈的券商分公司進出資料作計算,定義了一些名詞如下:

控盤者買進:券商分公司單一價格買進成交值>=100萬者張數合計

控盤者賣出:券商分公司單一價格賣出成交值>=100萬者張數合計

拉高買盤:
開盤價>昨收價 & P≧開盤價,或
開盤價=昨收價 & P>開盤價,或
開盤價<昨收價 & P≧昨收價,在此P買進之張數 作多買盤 開盤價>昨收價 & (昨收價<P≦開盤價),或
開盤價<昨收價 & (昨收價≧P>開盤價),在此P買進之張數

控盤者主動買盤
控盤者拉高買盤+控盤者作多買盤

主動性交易比重
(控盤者主動買盤+控盤者主動賣盤)/(成交-當沖)

控盤者主動買力

控盤者主動買盤/(成交-當沖)

根據這樣的定義

如果把主動買盤除以主動性交易比重
其實就是算出
控盤者主動買盤/(控盤者主動買盤+控盤者主動賣盤)

它的意義就是找出每檔股票,每天在開盤後,願意往上買的大單,佔所有主動性交易的比重。

這樣的數字在成交量夠大的時候,是衡量一檔股票的常與反常的重要指標。

以附圖為例,這指標的移動平均線會在0.5上下波動,但如果成交量變大(第一個反常),而且這指標數字從0.5以下往上衝(第二個反常),那就代表有異於過往的買力進到這檔股票

特別是那些一直沒有成交量的股票,一旦出現這種情況,往往都是值得留意的標的。

這個指標的腳本很單純,我附在下面

input:PS(5);
setinputname(1,"計算區間");
value1=GetField("主動買力");
value2=GetField("主動性交易比重");
if value2 <> 0
then value3=value1/value2;
value4=average(value3,ps);
plot1(value4,"主動買力比重短期移動平均");

我們可以把這個腳本改成警示策略
只要加個警示的條件
例如

if value4 crossover 50
and volume>3000
and volume>average(volume,5)
then ret=1;

這樣應該就可以從每天分公司的進出明細中,找到開始有特定買力加持的股票了。

波動率通道

今天要來介紹的是一個可以當做進出場訊號的指標:波動率通道。

有許多方法會被用來衡量波動率,常見的像是ATR(平均真實區間),如果波動率高,ATR就會變大。今天我們使用的觀念則是用典型價,即最高價,最低價,收盤價這三個價位的平均,拿來和最低點比較,如果典型價上漲,就用今天典型價減去昨低,反之則用昨天典型價減今低。使用這個差值,來繪製一個波動率通道,然後用這個通到的上下緣來當做買賣訊號。

腳本如下:

variable: avg(8),vperiod(13),devfact(3.55),LbandAdj(0.9);
variable:DevHigh(0),DevLow(0);
variable:aTypical(0),dev(0),medianavg(0),typ(0),XMA(0);

if currentbar>=2 then begin{必需要2根K 才能開始}
typ = typicalprice;
{典型價}
aTypical = iff(typ >typ[1],typ-Low[1],typ[1]-Low);
{IFF 第1個是判斷式,如果成立了,用第1個算式的結果,不然就用第2個算式的結果}
dev = devfact*average(atypical,vperiod);
{計算平均值的3.55倍做為通道基值}
DevHigh =Xaverage(dev,avg);
DevLow =DevHigh *LbandAdj;
{計算通道上緣與下緣的邊界}
medianavg = Xaverage(typ,avg);
XMA = Xaverage(medianavg,avg);
{用指數平均兩次平滑典型價}
plot1(XMA+DevHigh,"多方線");
plot2(XMA-DevLow,"空方線");
plot3(XMA,"中線");
{畫出通道圖}
end;

{如果需要在圖上標記買賣訊號,可以加下列}

if C cross over XMA + DevHigh 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,"多");
end;

if C cross under XMA -DevLow 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,"空");
end;

如果價格突破了通道上緣,可以標示出做多訊號,跌破通道下緣,則為做空訊號!

這個通道還有另一個觀察點:如果股價從跌破下緣後往下探低一段,接著準備上漲突破通道下緣時,是相對低點或底部區的機會就很高了,反之則可能是頭部區的形成!

我們找了幾檔指標股來看,2317,圖上用多色垂直柱線標註了多方點,綠色柱線則是空點,從2012年12月跌破通道以來,一直都是空方格局,直到2013年11月29日出現了第1個多方點,之後一直都是多方訊號,這樣就表示了是一個很強力的多頭走勢,多方的波動率一直在放大,股價也從79元一路上漲到110元!

這樣的波動率判別不會受到公司股本市值大小的影響而有所不同,唯一的差別就是漲升的幅度而已!

各位可以試看看,如果要做成即時的警示,可以用下面的版本

variable: avg(8),vperiod(13),devfact(3.55),LbandAdj(0.9);
variable:DevHigh(0),DevLow(0);
variable:aTypical(0),dev(0),medianavg(0),typ(0),XMA(0);
if currentbar typ = typicalprice();
aTypical = iff(typ >typ[1],typ-Low[1],typ[1]-Low);
dev = devfact*average(atypical,vperiod);
DevHigh =Xaverage(dev,avg);
DevLow =DevHigh *LbandAdj;
medianavg = Xaverage(typ,avg);
XMA = Xaverage(medianavg,avg);
if C cross over XMA + DevHigh then ret=1; {多方}

pd4

pd3

pd2


pd1

上面的那個XQ頁面,有興趣的朋友可以在下面的連結中打開:
檔案連結

唐奇安通道

今天要介紹一個海龜交易法很有名的指標:唐奇安通道。

這是由著名的海龜交易員Richard Donchian所發明,是一個極簡的突破策略:當價格突破通道上緣就買進做多,跌破通道下緣就賣出部位。

可以用以下的腳本畫出指標圖:

input:Period(13);
plot1(Highest(H[1], period),"通道上緣");
plot2(Lowest(L[1], period),"通道下緣" );
plot3((Highest(H, period)+Lowest(L, period))/2,"通道中線");

警示則可以寫成

input:Period(13);
if H = Highest(H, period) then ret =1;{作多}
if L = Lowest(L,period) then ret=1;{作空}

當然這樣的期數調整會視情況而定,每一檔商品可能最佳的結果也都不一樣,不過通常每個交易員都會有一個習慣的參數,可能是月線或季線加減。

我們先看一下加上買賣點指標畫在圖上的情況,腳本加上

if C > value1[1] then begin
plot4(C*1.01 ,"作多");plot5(C*1.02);plot6(C*1.03);plot7(C*1.04);
end;
if C < value2[1] 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);
end;

我們從2747可以看到明顯的多空分壘,當股價的波動具有足夠的趨勢性時,這樣的指標就能夠發揮最大的效用!

這幾年來簡單的突破系統由於採取極短線賺取利差的人大幅增加,而導致假突破等”騙線”的情況越來越多,海龜交易也適應性的產生許多變形,但總結的目標就是要減少雜訊,判斷出商品的走勢穩定性,這是在交易中相當關鍵的獲利點!
tac1

自訂頁面唐奇安通道可以參考這裡!

多空趨勢指標

研究過許多策略後,會發現一種情況,最後是有效而能存活的策略,都會引用到波動率的概念!

這是為什麼呢? 照一個最基本的邏輯去看,要有獲利,其實就是在買進賣出間得有一定足夠的價差,讓這筆交易買在較低的點,賣出在較高的點,扣除手續費後,才是淨資本利得。

這件事最大的關鍵點就是”足夠的價差”!!

這意謂著,當在發展策略的時候,最好都要以這個點當作重要的參考依據,因為這是獲利的來源!! 所以絕大多數的策略,都會將波動率考慮進去,當做是必要參數!!

今天我們再來看一個常用的訊號,這是利用每天的價差高低點,計算出一個通道,突破通道上緣且收最高則作多,反之則標記作空。

我們先建立一個趨勢函數:LongShortTrend 腳本如下:

input: ATRLength(NumericSimple), ATRMult(NumericSimple), Strength(NumericSimple), sTrend(NumericRef);
var:mATR(0), avg(0), mLower(0), Upper(0), trend(1), flag(0), flagh(0), xTrend(0),HighLow(0);

HighLow = Highest(High, ATRLength) - Lowest(Low, ATRLength);
mATR = XAverage(HighLow, ATRLength);
avg = (XAverage(high, Strength) + XAverage(low, Strength))/2;
Upper = avg + mATR;
mLower = avg - mATR;

if c > Upper[1] and c > Highest(High, Strength)[1] then trend = 1
else if c < mLower[1] and c < Lowest(Low, Strength)[1] then trend = -1;

if trend < 0 and trend[1] > 0 then flag=1 else flag=0;
if trend > 0 and trend[1] < 0 then flagh = 1 else flagh = 0;

if trend > 0 and mLower < mLower[1] then mLower=mLower[1];
if trend < 0 and Upper > Upper[1] then Upper=Upper[1];

if flag = 1 then Upper = avg + mATR;
if flagh = 1 then mLower = avg - mATR;

if trend = 1 then xTrend = mLower else xTrend = Upper;
LongShortTrend = xTrend;
sTrend = trend;

從這個函數很明顯可以看出,我們用高低點價差的均值和高低中價均值去做了一個通道,畫出指標腳本用下面腳本

input: Length(9), Multi(1), Strength(9);
variable: strend(0),LS(0);
LS = LongShortTrend(Length, Multi, Strength, strend);
if strend = 1 then Plot1(LS,"Trend_Up") else Plot2(LS,"Trend_Down");

if C cross above LS 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);
end;

if C cross below LS 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);
end;

這樣很明顯可以看出,當股價一有趨勢時就會出現訊號,做為明確的買賣依據!!

ls2

多空點數指標

大量使用量化數據的經驗: 頭一年的時候還在摸索,會用很少的參數做嘗試,看看不一樣的參數會帶來什麼樣的結果。第二年開始,接觸的工具多了,會開始想要用更多樣化的參數,更複雜的方法,希望找到開啟交易致富之門的鑰匙,大量的最佳化和資料回朔測試,參數化…等等.買了高速電腦,學寫精進程式功力,然後交易實戰,調整,再實戰! 就這樣又過了幾年,行情起起伏伏,怎麼變化參數永遠都趕不上變化的市場!

最後直到放下了無止境的測試,刪除掉所有不該出現的參數,也才放下了那過於沉重的得失心!

就好像楊過在練劍的過程一樣,曾經追求的利刃終要放下,而致玄鐵重劍: 重劍無鋒,大巧不工。

大巧不工,說得真好!真正的關鍵,並不是高度參數化或回測最佳化的策略,而是符合市場行情最簡實的工具腳本!!

今天把一個很簡單的概念做成指標:

var:i(0),Lscore(0),Sscore(0);Lscore=0;Sscore=0;
for i = 1 to 100
begin
if C> H[i] then Lscore+= i else if C < L[i] then Sscore+= i;
end;
plot1(Lscore,"多方點數");
plot2(Sscore ,"空方點數");

過去的100天的高低價格,和現在的價格相比,現價高則多方點數加1現價低則空方點數加1。
我們可以看得出來多空勢力的轉折,對於2317,在2013年8月出就從空方優勢轉為了多方優勢! 2881富邦金在2014年5月底也扭轉成為多方走勢!!

dd2

dd1