因著最近的XS語法教學,與XS的使用者有了更多的互動,我發現,最常被問到的問題是:”你怎麼知道要用這樣的方式來選股? 你怎麼知道要用這個方法來制訂交易策略?”,我的方法除了經驗及看書之外,最常做的方式就是去尋找每一檔大漲過的股票的共同特點,然後用它來制定自己的選股策略。
在跟程式交易入門者互動的過程中,我發現,當大家學會寫程式之後,接下來所面對的問題是: 不知道要如何寫出屬於自己專屬的交易策略?
我自己的作法如同下面這張圖:
根據這個流程,首先我們得找出所有曾經大漲過的股票,然後看看他們有那共同特徵。
為了作到這件事,我寫了下面這個腳本
input:aday(20150824,"漲跌幅計算起點"); input:ratio(10,"漲跌幅過濾標準"); input:trendmark(1,"1:超過標準,2:低於標準"); value1=getbaroffset(aday); if trendmark=1 then begin if close>close[value1]*(1+ratio/100) then ret=1; end; if trendmark=2 then begin if close<close[value1]*(1+ratio/100) then ret=1; end; if close[value1]<>0 then value2=(close-close[value1])/close[value1]*100; setoutputname1("起始日迄今漲跌幅%"); outputfield1(value2); setoutputname2("股本(億)"); outputfield2(GetField("最新股本")); outputfield(3,GetField("累計營收年增率","M"),0,"累計營收年增率"); outputfield(4,GetField("股價淨值比","D"),1,"股價淨值比"); outputfield(5,GetField("董監持股佔股本比例","D"),1,"董監持股比例"); outputfield(6,GetField("股利合計","Y"),1,"股利合計"); outputfield(7,GetField("投信持股比例","D"),1,"投信持股比例"); outputfield(8,GetField("公司掛牌日期"),0,"公司掛牌日期"); outputfield(9,GetField("營業毛利率","Q"),1,"毛利率"); outputfield(10,GetField("營業利益成長率","Q"),1,"營業利益成長率");
這個腳本可以很快的找到從特定日期以來,漲跌幅超過一定百分比的所有股票,並顯示出這些股票的相關統計數據
例如我想找到從今年一月一日以來,到今天為止,漲幅超過五成的股票有那些?
我就把這個腳本拿來制訂了一個選股策略,這個策略的參數設定如下圖
然後我就可以挑出今年以來漲幅超過五成的股票
並且由於我在腳本中用outputfield的方式,讓電腦在列出這些符合條件的股票的同時,也列出這些股票的相關數據,所以透過XS選股平台挑出來的股票,呈現方式如下:
如上圖,今年漲幅超過五成的一共是70檔,我們可以按各個欄位的標題,電腦會根據這個標題的數據重新排序
透過這個排序的功能,我們會發現這些股票有幾個共同的特徵
1.股本最大的是85億的榮化,其中61檔股本低於30億元。
2.絕大多數累計營收年增率是大於零
3.絕大多數董監持股比例大於兩成
4.大部份是有發放股利
5.大部份毛利率超過15%
6.大部份營業利益成長率是超過兩位數
接下來我們可以把這個欄位通通再換成其他的欄位再重跑一遍,然後再觀察這70檔股票還有那些共同的特徵。
這樣子不斷的嚐試,我們就可以訂出屬於我們自己的選股策略。