有網友在問說想要計算某日到某間之間的某個數值,而不是從現在到以前某日的數值,不知道要如何計算,剛好昨天被問到一個需求,有客戶想要知道有那些中小型的股票,在這一波指數盤底期間大股東有進場回補的,所以我想今天就來藉這個題目,介紹一下如何計算兩個特定日期之間相關數據的運算。
首先,如下圖
這一次指數是在去年10/26日打了第一支腳,然後在今年的01/04打了第二根腳,我們就把這兩天中間的時間當成是大盤在打底的時間。
接下來我就寫了一個程式來尋找在這段期間內千張大戶有明顯回補股票的公司,選股腳本如下
input:startdate(20181026,"區間起始日"); input:enddate(20190104,"區間結束日"); input:vl(2000,"差額限數下限"); value1=getbaroffset(startdate); value2=getbaroffset(enddate); value3=GetField("大戶持股張數","W",param := 1000)[value1]; value4=GetField("大戶持股張數","W",param := 1000)[value2]; value5=GetField("大戶持股比例","W",param := 1000)[value1]; value6=GetField("大戶持股比例","W",param := 1000)[value2]; if value4-value3>vl and value6>value5 then ret=1; outputfield(1,value3,0,"期初張數"); outputfield(2,value4,0,"期末張數"); outputfield(3,value4-value3,0,"差額張數");
透過這個腳本,跑出的股票如下
這個腳本裡,是用getbaroffset這個函數來取得某特定日期,是位於整個K線數列裡的第幾根BAR,不同的K線頻率,這函數會自動去分辨是第幾根BAR,所以這函數用在日線及週線,回傳值會不一樣。
透過這個函數,可以從已知日期得到其在序列中的第N根BAR,這樣就可以找出特定欄位當時的值了。
至於這個選股策略,在應用上,網友的意思是如果大盤盤底時間大股東有明顯回補動作的,應該是屬於今年展望比較樂觀的,或是大股東覺得股價已委屈的。