Author Archives: 發財橘子

台灣50專屬多空指標

很久之前有跟大家分享過一個台灣50的多空指標,那就是計算前面十檔台灣50指數成份股有多少檔站在月線之上。上週五颱風假在假閒閒沒事,想說要不要乾脆把50檔成份股都納進來算,結果50檔裡有多少檔站在月線之上這樣的數據,對照台灣50的走勢,確實是有一定的參考價值,所以我想就直接跟大家分享腳本,讓大家不必辛苦的敲半天,然後也可以根據這樣的想法,透過計算有多少檔成份股RSI在50以上之類的數據,創造自己專屬的多空指標。

有不少朋友喜歡看多大盤時買0050,看壞大盤後市時買00632R,所以需要一個研究台灣50後市的多空依據,以下的腳本是用來計算台灣50裡的50檔成份股,有多少檔站在月線之上。

腳本

value1=GetSymbolField("1101.tw","收盤價");
value2=GetSymbolField("1102.tw","收盤價");
value3=GetSymbolField("1216.tw","收盤價");
value4=GetSymbolField("1301.tw","收盤價");
value5=GetSymbolField("1303.tw","收盤價");
value6=GetSymbolField("1326.tw","收盤價");
value7=GetSymbolField("1402.tw","收盤價");
value8=GetSymbolField("2002.tw","收盤價");
value9=GetSymbolField("2105.tw","收盤價");
value10=GetSymbolField("2207.tw","收盤價");
value11=GetSymbolField("2301.tw","收盤價");
value12=GetSymbolField("2303.tw","收盤價");
value13=GetSymbolField("2308.tw","收盤價");
value14=GetSymbolField("2317.tw","收盤價");
value15=GetSymbolField("2327.tw","收盤價");
value16=GetSymbolField("2330.tw","收盤價");
value17=GetSymbolField("2357.tw","收盤價");
value18=GetSymbolField("2382.tw","收盤價");
value19=GetSymbolField("2395.tw","收盤價");
value20=GetSymbolField("2408.tw","收盤價");
value21=GetSymbolField("2409.tw","收盤價");
value22=GetSymbolField("2412.tw","收盤價");
value23=GetSymbolField("2454.tw","收盤價");
value24=GetSymbolField("2474.tw","收盤價");
value25=GetSymbolField("2633.tw","收盤價");
value26=GetSymbolField("2801.tw","收盤價");
value27=GetSymbolField("2880.tw","收盤價");
value28=GetSymbolField("2881.tw","收盤價");
value29=GetSymbolField("2882.tw","收盤價");
value30=GetSymbolField("2883.tw","收盤價");
value31=GetSymbolField("2884.tw","收盤價");
value32=GetSymbolField("2885.tw","收盤價");
value33=GetSymbolField("2886.tw","收盤價");
value34=GetSymbolField("2887.tw","收盤價");
value35=GetSymbolField("2890.tw","收盤價");
value36=GetSymbolField("2891.tw","收盤價");
value37=GetSymbolField("2892.tw","收盤價");
value38=GetSymbolField("2912.tw","收盤價");
value39=GetSymbolField("3008.tw","收盤價");
value40=GetSymbolField("3045.tw","收盤價");
value41=GetSymbolField("3711.tw","收盤價");
value42=GetSymbolField("4904.tw","收盤價");
value43=GetSymbolField("4938.tw","收盤價");
value44=GetSymbolField("5871.tw","收盤價");
value45=GetSymbolField("5876.tw","收盤價");
value46=GetSymbolField("5880.tw","收盤價");
value47=GetSymbolField("6505.tw","收盤價");
value48=GetSymbolField("9904.tw","收盤價");
value49=GetSymbolField("9910.tw","收盤價");
value50=GetSymbolField("2823.tw","收盤價");

variable:count(0);
input:period(20);
count=0;
if value1>average(value1,period) then count=count+1;
if value2>average(value2,period) then count=count+1;
if value3>average(value3,period) then count=count+1;
if value4>average(value4,period) then count=count+1;
if value5>average(value5,period) then count=count+1;
if value6>average(value6,period) then count=count+1;
if value7>average(value7,period) then count=count+1;
if value8>average(value8,period) then count=count+1;
if value9>average(value9,period) then count=count+1;
if value10>average(value10,period) then count=count+1;
if value11>average(value11,period) then count=count+1;
if value12>average(value12,period) then count=count+1;
if value13>average(value13,period) then count=count+1;
if value14>average(value14,period) then count=count+1;
if value15>average(value15,period) then count=count+1;
if value16>average(value16,period) then count=count+1;
if value17>average(value17,period) then count=count+1;
if value18>average(value18,period) then count=count+1;
if value19>average(value19,period) then count=count+1;
if value20>average(value20,period) then count=count+1;
if value21>average(value21,period) then count=count+1;
if value22>average(value22,period) then count=count+1;
if value23>average(value23,period) then count=count+1;
if value24>average(value24,period) then count=count+1;
if value25>average(value25,period) then count=count+1;
if value26>average(value26,period) then count=count+1;
if value27>average(value27,period) then count=count+1;
if value28>average(value28,period) then count=count+1;
if value29>average(value29,period) then count=count+1;
if value30>average(value30,period) then count=count+1;
if value31>average(value31,period) then count=count+1;
if value32>average(value32,period) then count=count+1;
if value33>average(value33,period) then count=count+1;
if value34>average(value34,period) then count=count+1;
if value35>average(value35,period) then count=count+1;
if value36>average(value36,period) then count=count+1;
if value37>average(value37,period) then count=count+1;
if value38>average(value38,period) then count=count+1;
if value39>average(value39,period) then count=count+1;
if value40>average(value40,period) then count=count+1;
if value41>average(value41,period) then count=count+1;
if value42>average(value42,period) then count=count+1;
if value43>average(value43,period) then count=count+1;
if value44>average(value44,period) then count=count+1;
if value45>average(value45,period) then count=count+1;
if value46>average(value46,period) then count=count+1;
if value47>average(value47,period) then count=count+1;
if value48>average(value48,period) then count=count+1;
if value49>average(value49,period) then count=count+1;
if value50>average(value50,period) then count=count+1;

value51=count-25;

plot1(value51,"台灣50多頭指數");


用這個腳本可以畫出下面這張圖

觀察這樣的對照圖,我們有丝個結論

一,當這個指標在20以上快速下跌時,往往是多頭市場的結束

二,當這個指標在-20左右快速往上走時,往往是多頭市場的開始

三,當這個指標穩定的維持紅柱體時,代表大多數的成份股是站在月線之上,屬於多頭架構

四,當這個指標穩定維持在0以下時,代表大多數的成份股站在月線之下,屬於空頭架構

五,當指標與台灣50背離時,往往是反轉訊號。

下圖則是這個指標與台灣50一分鐘的對照圖,這裡代表的是20分鐘移動平均線,如果大家覺得應該調整參數,請直接修改。

 

以上大致是這個指標的作法與應用,我做的是苦工,目的是讓大家不用自己敲50檔成份股的股票代碼,剩下的就讓大家自由發揮了。

 

xqlite banner

 

 

 

如何使用跨頻率技術指標來建構策略雷達

有網友想要了解如何同時用不同頻率的指標來建構一個策略雷達,我今天舉例來跟大家說明。

 

目前XS內建有28個跨頻率的函數,依序如下,大家可以在函數頁籤下的系統選單中找到

運用這些函數,可以直接在一個警示腳本中使用不同頻率的指標。

舉個例子,如果我希望電腦可以在個股週RSI小於20且日KD低檔黃金交叉時發出訊號,那麼就可以使用像下面這樣的腳本

input: Length_D(9,"日KD期間");

variable:rsv_d(0),kk_d(0),dd_d(0),c5(0);

stochastic(Length_D, 3, 3, rsv_d, kk_d, dd_d);

if xf_RSI("w",close,5)<=20 and kk_d <=30 
and kk_d crosses over dd_d

then ret=1;

用這個腳本去跑過去兩年的權值股加中型100指數成份股,KD死亡交叉後出場,其回測報告如下

這個腳本轉門尋找那些大跌後的中大型股

 

這當中的xf_RSI就是在日線底下使用的跨頻率函數,大家也可以看一下這種跨頻率函數的寫法

SetBarMode(2);

// 跨頻率RSI函數
//
// FreqType是預期要引用的頻率, 支援"D", "W", "M"
// 輸入: FreqType, Series, Length
//
input:
FreqType(string), //引用頻率
Series(numericseries), //價格序列
Length(numericsimple); //計算期間

variable: 
SumUp(0), SumDown(0), 
LastSumUp(0), LastSumDown(0),LastRefSeries(Series), 
up(0), down(0),
closePeriod(0);

condition1 = xf_getdtvalue(FreqType, Date) <> xf_getdtvalue(FreqType, Date[1]);
if condition1 then
begin
LastSumUp = SumUp[1];
LastSumDown = SumDown[1];
LastRefSeries = Series[1];
end;

if xf_GetCurrentBar(FreqType) = 1 then
begin
SumUp = Average(maxlist(Series - LastRefSeries, 0), Length); 
SumDown = Average(maxlist(LastRefSeries - Series, 0), Length); 
end
else
begin
up = maxlist(Series - LastRefSeries, 0);
down = maxlist(LastRefSeries - Series, 0);

SumUp = LastSumUp + (up - LastSumUp) / Length;
SumDown = LastSumDown + (down - LastSumDown) / Length;
end;

if SumUp + SumDown = 0 then
xf_RSI = 0
else
xf_RSI = 100 * SumUp / (SumUp + SumDown);

 

這樣的語法目前系統內建的指標都是常用的指標,如果需要其他的指標,可以用類似的方法來自訂一個函數,例如跨頻率的加權移動平均線EMA就可以像下面這樣的寫法

SetBarMode(2);

// 跨頻率EMA
//
// FreqType是預期要比對的期別, 支援"D", "W", "M"
// 輸入: FreqType, Series, Length
//
input:
FreqType(string), //引用頻率
Series(numericseries), //價格序列
Length(numericsimple); //計算期間

variable:
Factor(0), lastEMA(0);

condition1 = xf_getdtvalue(FreqType, Date) <> xf_getdtvalue(FreqType, Date[1]);
if condition1 then
lastEMA = xf_EMA[1];

value1 = xf_GetCurrentBar(FreqType);

if Length + 1 = 0 then Factor = 1 else Factor = 2 / (Length + 1);

if value1 = 1 then
xf_EMA = Series
else if value1 <= Length then
xf_EMA = (Series + (lastEMA * (value1 - 1)))/value1
else
xf_EMA = lastEMA + Factor * (Series - lastEMA);

大家是否有留意到,這類跨頻率指標的寫法都會用到兩個函數,一個是xf_getdtvalue ,一個是xf_GetCurrentBar,要自訂跨頻率函數時,基本上都必須用到這兩個函數,大家可以直接看這兩個系統提供的跨頻率腳本常用函數是怎麼寫的。

以上大致是跨頻率指標同時應用的基本概念,未來有機會再跟大家介紹回測績效不錯的跨頻率函數。

xqlite banner

 

 

 

 

XS系統化決策結構說明文

XS是一套系統化的決策系統, 不少網友來信問到XS的使用方式,以及免費版與收費版的差異, 我想跟大家分享我使用XS的步驟及方式,用實際的例子來說明XS的設計結構,然後也跟大家說明什麼情況使用免費版即可,什麼情況下才需要用到付費版。

由於我是從投信操盤體系出身,所以當初在發想XS的時候,是希望可以把整個投信投資決策流程都自動化,而以往當我在操盤的時候,整個決策流程如下

這四大項就變成XS四個獨立但可以串連的四大部份。

接下來分別跟大家說明這四大項的功能,雖然投資決策的第一項是先決定多空比例,但為了說明方便,我把它放在最後

一,選股

XS的選股是在“選股中心”這個功能中來進行的,使用者可以透過自己撰寫程式,選擇系統內建的條件或腳本,來進行選股,免費版與收費版的差異如下

使用者可以免費的透過回測功能,不斷地試驗,最終找到自己最中意的選股策略,然後每天利用XS的選股平台來執行選股,只要您每天執行的次數不大於十次,都是免費的。

這個平台用的資料是日資料以上,它的功能是讓使用者在收盤後,隔天開盤前,運用各種數據,挑出符合自己心目中理想的標的,由於大家在選股時,不見得會僅僅使用到價量資料,可能會用到籌碼,集保,法人,營收,財報等等資料,這些資料有些是日資料,有些是週資料,有些一個月公佈一次,有一些是一季公佈一次,要把這些資料全部放在盤中運算,既要消耗電腦資源,又有跨頻率資料對齊的問題,所以先在選股中心,透過AND或OR的交集聯集,先挑出隔一天開盤後會願意用日線或分鐘線去洗價的股票。這樣洗價時就不用一次洗1700檔,然後把電腦的CPU吃的滿滿的。

如果是付費的使用者,則每天可以讓系統自動執行100組的選股策略,您每天打開電腦,就可以直接看到有那些個股符合最多的選股策略,然後再把當中想要列入觀察名單的標的存到自選股去,這樣每天做,就會有一份自己非常有興趣進場的自選股清單。

所以如果您並沒有很多的選股策略,或是還在學習使用XS選股,其實免費版就夠用了,等到您手上有夠多靠譜的選股策略,才有需要進階到收費版。

我最近在整理一些大家常用的選股腳本,目的就是讓大家在選股中心可以不用寫程式就能完成自己心目中理想的選股策略,然後透過回測來驗證它。

二,策略雷達

在透過選股完成一份觀察名單之後,在投資流程上,名單上的股票,如果盤中符合某些價量條件,就可能符合您所設定的進場條件 ,策略雷達的功能,就是讓您設計特定的進場條件,例如我最常用的預估量爆增,整理後創新高等等,都是透過策略雷達,讓電腦幫我洗價,然後在符合條件的時候用訊號來通知我。

這個功能的免費版與收費版的差異如下圖

免費版的功能主要是讓大家先透過練習,回測,最重要的是學會寫腳本,所以只限定用日線的基本欄位,然後只限跑五檔商品,同時也僅能跑五個策略,等到學會寫腳本了,再進到收費版,這時候因為已經會程式了,也有了自己愛用的策略,這錢就不會浪費了。

但由於這樣的規定,所以像是要用到分鐘線的程式,包括指標,要盤中能更新,就必須要是收費版的會員才能使用,所以之前跟大家介紹的一些如盤中大戶散戶的指標,就必須是收費版的使用者才能使用,這點要跟大家說歹勢。

另外要稍為介紹一下策略雷達的自動排程功能

如果把選股結果直接拿來跑一些自動排程的策略雷達,就可以自動化的選股及盤中洗價,然後讓電腦自動運算出進場訊號

三,執行交易

出現進場訊號之後,目前策略雷達是有提供簡易的下單設定

您可以分配進場的資金,張數等。

這樣的設定跟目前常用程式交易平台,有很大的不一樣,一個完善的程式交易平台,是用語法來設定進場點,加碼條件,減碼條件及平倉點,但我當時在投信不會做當沖,每天都是收到對帳單及報表後才來擬定個股的出場條件等投後管理動作,所以XS並不符合時下流行的程式交易作法,這點我們會在明年逐筆撮合前完成交易語法的開發,讓XS既合乎法人的決策流程,也符合當沖,短線及期指操作的特性。

 

四,大盤多空觀測。

我很常跟朋友說,在台灣股票市場如果要賺錢,最重要的事情是避開崩盤及隨之而來的空頭市場。以往在投信時,我有自己一套觀察大盤多空方向的方法,我會用這方法來決定管理資金的持股比例,所以在XS上,我也想要把這個概念加進來,後來PM就使用了參照商品這樣的概念。

參照商品的意思是,如有在參照商品符合某個條件,電腦才會開始去跑策略雷達裡設定的策略,符合條件時才會發出訊號。

以下圖為例,我希望加權指數在月線之上才啟動某一策略,我就可以在策略雷達的設定視窗裡勾選參數商品,然後像下圖這樣的設定

以上是XS目前的架構,免費的使用者可以學寫程式,設計選股策略,決定進場時點,等到真的有些把握了,再轉成收費的使用者,這樣比較OK

 

xqlite banner

指標選股市場常用語補充包

先前有提過,我想要把大家常用的策略想法,都寫成腳本,讓大家不用寫程式,就可以直接拿來用,這次我整理了二十個除了MACD,KD等常用技術指標之外,也稍具知名度且普遍被大家使用的技術指標常用買進訊號腳本,把它們寫成市場常用語法腳本,讓大家可以直接用勾選及改參數的方式就能使用。

這二十個腳本如下

下載點在以下

連結

在編輯器匯入腳本後,即可以在選股平台中使用

匯入後的使用UI如下

接下來會跟大家分享基本面及財務面的常用腳本。

xqlite banner

30歲警官靠美股提早退休

如果沒有投資過美股的朋友,想要找一本入門的書,我會推荐30歲警官靠美股提早退休這本書,這本書的作者 是筆名美股夢想家的施雅棠先生,他本身是一位警官,而且他才30歲,但他靠投資美股已經達到提早退休的人生,他寫的這本書裡,除了美股之外,也觸及了美債,特別股等金融商品,適合不同投資風格的投資人。

這本書一開始先教大家如何開美股戶,以及開戶券商的選擇,(不過因為我們在推人人都是巴菲特方案,所以歹勢,要用XQ操盤高手美股即時模組下單的朋友,請選擇與我們配合的券商,小弟代替我們所有員工一起感謝您,啾咪),也跟大家介紹了美股的交易規則及稅賦等相關規定。

接下來書上開始分別介紹股票,公司債及特別股等不同的美股商品。其中股票的部份由於美股可以每季配息一次,所以書上有教大家如何投資美股賺股息。

接下來有介紹大家如何查詢個股定期公佈的財報,年報等資料,教大家如何作功課,甚至包括如何研判經營階層的誠信及估值等進階版的研究方法

最後兩章則很詳細的介紹了特別股及美國公司債的投資方法,這兩章非常值得一讀,寫的非常詳細,這是實戰經驗豊富的人才寫得出來的。

我看完後非常佩服作者 ,年紀輕輕就知道把關注的焦點放在全球最大的資本市場,而且勇於嚐試各種金融商品,並且把投資的心得分享給大家。

 

這本書非常值得有興趣投資美股的朋友一看

 

當然也提醒有志於投資美股的朋友來加入XQ操盤高手的人人都是巴菲特方案

xqlite banner

 

 

 

盤中上漲下跌量累計差額指標

有網友希望提供內外盤的即時指標,但因為目前指標裡無法支援內外盤的flag,所以我改變一下寫法,寫了一個盤中上漲量與下跌量的差額指標,大家可以參考看看

首先依慣例還是先給腳本

variable:i(0),tv(0),tp1(0),tp(0);
i=0;
if date<>date[1] then begin
value1=0;
value2=0;
end;
if V>0
then begin
while GetField("時間","Tick")[i]>=time and GetFieldDate("成交量","Tick")[i]=date
i+=1;
while i>0
begin
i-=1;
tv=GetField("成交量","Tick")[i];
tp=GetField("收盤價","Tick")[i];
tp1=GetField("收盤價","Tick")[i+1];
if tp>tp1 //上漲 
then begin
condition1=true;
condition2=false;
end;
if tp<tp1
then begin
condition1=false;
condition2=true;
end;
if condition1 then value1+=tv;//上漲成交量累加
if condition2 then value2+=tv;//下跌成交量累加
end;
end;
value3=value1-value2;
plot1(value3,"累計上漲下跌量差");

 

用這個腳本畫出來的圖如下

用在期指上的圖形如下

這種盤中統計市場買賣方道消長的指標,確實在作當沖或進出場點決策時,有很大的幫助,我聽說XQ7.0會支援更多QUOTE的欄位可以支援到指標畫圖腳本中,到时候再跟大家分享更多的指標畫法。

 

期指盤中大戶散戶指標

昨天分享股票的盤中大戶散戶指標之後,有不少網友希望也提供期指專用的盤中大戶散戶指標,我試著拿昨天的腳本改了一下,不曉得符不符合大家的需求

首先還是先PO腳本

input:
bos(true,"類別",inputkind:=dict(["大戶",true],["散戶",false]),quickedit:=true),
p(50,"大戶門檻(口數)");//預設值先訂50口,大家可以改成自己的定義
variable:i(0),tv(0),tp1(0),tp(0);

i=0;
if date<>date[1]
then begin
//當天開盤開始從新起算
value1=0;
value2=0;
end;
if V>0
then begin
while GetField("時間","Tick")[i]>=time and GetFieldDate("成交量","Tick")[i]=getfield("日期", "D")
i+=1;
while i>0
begin
i-=1;
//做一個從這一根往前算到開盤共幾根的計數器
tv=GetField("成交量","Tick")[i];
tp=GetField("收盤價","Tick")[i];
tp1=GetField("收盤價","Tick")[i+1];
condition1=tv>=p;//設定符合大戶的口數門檻
if tp>tp1 //分上漲及下跌時的情況,這裡沒有考慮平盤的口數
then begin
condition2=true;
condition3=false;
end;
if tp<tp1
then begin
condition2=false;
condition3=true;
end;
if condition1
then begin
if condition2 then value1+=tv;//計算累積的大戶量
if condition3 then value1-=tv;
end
else begin
if condition2 then value2+=tv;//計算累積的非大戶量
if condition3 then value2-=tv;
end;
end;
end;

if bos then value3=value1 else value3=value2;


if value3>=0 then plot1(value3,"大戶買賣超");
if value3<0 then plot2(value3,"大戶買賣超");
if not bos
then begin
setplotlabel(1,"散戶買賣超");
setplotlabel(2,"散戶買賣超");
end;

 

用這腳本畫出來的畫面如下,我用的是一分鐘線,然後大戶的門檻是單筆50口

這一頁的下載點如下

下載連結

如果是直接複製上述腳本的朋友,繪圖的設定如下

請記得到技術分析設定視窗中把XS指標計算範圍改成如下圖

我把頻率改成用五分鐘線

要改大戶的門檻 可以在下圖這地方更改

以上是我修改的內容,不曉得有沒有符合網友的需求?

 

xqlite banner

盤中的大戶散戶買賣超指標

前天跟大家分享了盤中大戶即時買賣超的警示腳本,然後在文中提到說現在盤中是無法畫出指標的,這句話敝公司的天才工程師們很不服氣,抗議說分時圖是畫不出來沒有錯,但分鐘K是畫的出來的(以為我不知道哦,我只是寫不出來而己),結果其中一位天才就直接把它寫出來了,今天就來跟大家分享這個分鐘K版的即時大戶散戶買賣超指標

先跟大家分享這個指標腳本

input:
bos(true,"類別",inputkind:=dict(["大戶",true],["散戶",false]),quickedit:=true),
p(100,"大戶門檻(萬元)");
variable:i(0),tv(0),tp1(0),tp(0);

i=0;
if date<>date[1]
then begin
value1=0;
value2=0;
end;
if V>0
then begin
while GetField("時間","Tick")[i]>=time and GetFieldDate("成交量","Tick")[i]=date
i+=1;
while i>0
begin
i-=1;
tv=GetField("成交量","Tick")[i];
tp=GetField("收盤價","Tick")[i];
tp1=GetField("收盤價","Tick")[i+1];
condition1=0.1*tv*tp>=p;
if tp>tp1 
then begin
condition2=true;
condition3=false;
end;
if tp<tp1
then begin
condition2=false;
condition3=true;
end;
if condition1 
then begin
if condition2 then value1+=tv;
if condition3 then value1-=tv;
end
else begin
if condition2 then value2+=tv;
if condition3 then value2-=tv;
end;
end;
end;

if bos then value3=value1 else value3=value2;


if value3>=0 then plot1(value3,"大戶買賣超");
if value3<0 then plot2(value3,"大戶買賣超");
if not bos
then begin
setplotlabel(1,"散戶買賣超");
setplotlabel(2,"散戶買賣超");
end;

這個指標腳本在計算上請在技術分析設定的第一個視窗底下,作如下圖的設定,不然會算很久線都出不來

這個指標在一分鐘K頻率下,畫出來的圖如下

也可以用五分鐘K

其實只要是分鐘K都能用

在應用上,可以挑那些大戶持續買超但散戶是賣超的公司

但要小心大漲後,散戶買但大戶賣超的股票

以上是在分鐘K底下所呈現的大戶及散戶買賣超指標

公司高手如雲,我應該負責許願就好,各位有什麼想寫寫不出來的,不要客氣,儘管提出來,這些人對於我說寫不出來的,都非常有意願想化不可能為可能,大家儘管提。

 

 

xqlite banner

籌碼型市場常用語新增腳本

在XQ個人版選股中心裡,內建的籌碼類選股欄位都有內建的選股條件 ,只是內建的選股條件大多是屬於簡單敘述,但有的時候,我們內心想的選股條件,就不是簡單敘述所可以表達出來的。於是,我們會再用XS語法,寫出一些系統內建的選股腳本

目前選股系統內建的籌碼腳本如下

但除了系統內建的腳本之外,也會陸陸續續收到使用者建議再增加的選股條件,於是,每隔一陣子,我就會整理一些新增的腳本放到網路硬碟裡,供大家自行下載後匯入使用。

以下是這一次整理出來的籌碼選股腳本,一共有22個

 

下載連結

上面是下載點,之後等到這一批所有選股腳本都整理過後,下一次改版時,再把這些腳本都分門別類的放到系統內建的選股腳本中。

除了跟大家介紹過的價量型,籌碼型之外,接下來再陸續上傳指標型,基本型及財務型的選股腳本。

大家如果還有那些選股腳本想要直接我們提供,也歡迎提出來

我們的目標是希望可以讓大家不用寫程式就完成完全符合您想法的選股策略

xqlite banner

 

如何盤中即時估算主力大戶當天買賣超

坊間有軟體號稱可以在盤中就即時算出當天主力的買賣超,根據我的了解,這是判斷當天的單筆交易金額的大小,然後根據內外盤,定義為大戶或散戶的買進或賣出,我根據這樣的精神,用XS語法寫出一個盤中找出主力買進佔個股整體成交量超過一定比例的腳本,大家看看合不合用。

這個腳本如下,這是一個警示腳本,中中大戶的定義各位可以自行調整,要佔成交量比例超過多少才讓電腦發出訊號? 也是可以調整的。

input: BigBuy(300,"大戶買單(萬)");
input: bigbuyratio(30,"大戶買單比例下限%");
variable: intrabarpersist Xvolume(0);//累計大戶買單
variable: intrabarpersist Volumestamp(0);

Volumestamp =q_DailyVolume; 

if Date <> currentdate or Volumestamp = Volumestamp[1] then Xvolume =0; //開盤那根要歸0

if q_tickvolume*q_Last > BigBuy*10 and q_BidAskFlag=1 then Xvolume=Xvolume+q_tickvolume; //量夠大就加到累計大戶買單

if volumestamp >=1000 then begin
if Xvolume/volumestamp*100> bigbuyratio then ret=1;
end;

這個腳本由於到到getquote的語法,目前這語法不支援指標,也不支援回測,所以目前僅能以這樣警示腳本的方式來呈現。

我用把這種概念下算出來的大戶累計買進張數及大戶累計賣出張數,分別寫成兩個函數:XBvolume及XSvolume,公式分別如下

XBvolume

variable: intrabarpersist XBvolume(0);//累計大戶買單
variable: intrabarpersist Volumestamp(0);

Volumestamp =q_DailyVolume; 

if Date <> currentdate or Volumestamp = Volumestamp[1] then XBvolume =0; //開盤那根要歸0
if q_tickvolume*q_Last > 1000 and q_BidAskFlag=1 then XBvolume=XBvolume+q_tickvolume;
//量夠大就加到累計大戶買單
//1000代表大戶的標準是100萬,如果想要改變定義請自行修改數字

XSvolume

variable: intrabarpersist XSvolume(0);//累計大戶賣單
variable: intrabarpersist Volumestamp(0);

Volumestamp =q_DailyVolume; 

if Date <> currentdate or Volumestamp = Volumestamp[1] then XSvolume =0;
if q_tickvolume*q_Last > 1000 and q_BidAskFlag=-1
then XSvolume=XSvolume+q_tickvolume;

所以如果想要算大戶盤中即時買賣超張數,就可以直接XBvolume-XSvolume就可以

如果想要算散戶,也可以用這樣的概念來作。

不過要跟大家抱歉的是,目前只能用在策略雷達的腳本上,不能用在指標也不能用在選股,這點要先跟大家說明。