除權行情的檢討腳本該怎麼寫

By | 2015-07-02

有網友問到,XS能不能透過語法,找出某特定日之後,一段時間股價的漲跌幅?例如股東會後,法說會後,或是開放信用交易日之後,除權除息日之後有那些股票漲幅較大的。

我們公司的高手高手高高手寫了一個函數來解決這個問題,函數的腳本如下:

Input: target(numeric);

variable: i(1);

if target > date then
begin
GetBarOffset = 0;
return;
end;

while true
begin
Value1 = date[i];
if Value1 <= target then
begin
GetBarOffset = i;
return;
end;
i = i + 1;
end;

這個函數可以算出特定日期是從現在開始往回算的第幾根BAR

它的用法是Getbaroffset(某日期);

例如我們在7/2日寫出value1=getbaroffset(20150701);

意思是昨天是今天算來的第幾根bar,那麼value1就=1。

 

運用這個函數,可以寫出下面這個腳本來找出特定日期之後,到現在個股的漲跌幅

Input: type(1);
SetInputName(1, "1:股東會,2:除息日,3:法說日");

Input: dist(20);
SetInputName(2, "事件發生在最近幾日");

Input: ratio(1);
SetInputName(3, "上漲%");

switch(type)
begin
case 1:
Value1 = GetField("股東會日期");
case 3:
Value1 = GetField("法說會日期");
case 2:
Value1 = GetField("除息日期");
end;

If datediff(Date, Value1) >= 0 and datediff(Date, Value1) <= dist then
begin
// 計算今日到'Value1'那一天的漲跌幅
//
Value2 = GetBarOffset(Value1);
Value3 = RateOfChange(Close, Value2);
if Value3 >= ratio Then Ret = 1;
end;

OutputField(1, Value1); setoutputname(1, "發生日期");
OutputField(2, Value2); setoutputname(2, "距離今日幾天");
outputfield(3, Value3); setoutputname(3, "區間漲幅(%)");

抱歉的是,我們目前選股中可以拿來計算的事件欄位只有除權日,像法說會啦,股東會啦,這些都還沒有support,(我會請同事們加進來)所以就先拿這腳本來算除息後距今20天內的股票漲幅超過1%的有那些,選出來的股票及漲跌幅排列如下圖。

 

0702
我算了一下,一共31檔,漲幅低於1的有65檔
跌幅較大的如下圖
070201

從這些股票我們大致可以看得出來,先前有先拉的,基本面展望比較不明朗的,就不要太期待填權填息行情了。