過往不錯的公司落難時

By | 2024-01-08

要找抗跌的股票,可以找那些以往表現不錯,前陣子落難,但股價已有反映的公司。今天就來跟大家介紹我是怎麼挑這樣的公司。

首先我們先來定義什麼叫作過往表現不錯。

我同事寫了兩個腳本來作定義,

他的定義有以下幾條:

一、過去十年至少有八年有配現金股利

二、過去五年至少每年都配超過一元現金股利

這兩條的腳本如下:

value1 = GetField("現金股利","Y");
value2 = getfielddate("現金股利");

// 連續N年都有配股利
input: year_length1(8, "連續N年都有配股利");
condition1 = trueall(value1 > 0, year_length1);

// 過去N年配大於X元股利
input: year_length2(5, "過去N年配");
input: cash_threshold(1, "配至少X元");
condition2 = trueall(value1 >= cash_threshold, year_length2);




if 
condition1 
and condition2 
then
ret = 1;

outputfield(1, value1[0], 2, formatdate("yyyy", value2[0]));
outputfield(2, value1[1], 2, formatdate("yyyy", value2[1]));
outputfield(3, value1[2], 2, formatdate("yyyy", value2[2]));
outputfield(4, value1[3], 2, formatdate("yyyy", value2[3]));
outputfield(5, value1[4], 2, formatdate("yyyy", value2[4]));


三、最近一季營業利益率及毛利率跟過去幾年同期相比要維持成長

他寫了一個函數來作計算:

input: x(numeric, "季度");

settotalbar(30);

value1 = GetField("營業利益率","Q");

value11 = 0;
if value1[x] > value1[x+4] then value11 += 1;
if value1[x+4] > value1[x+8] then value11 += 1;
if value1[x+8] > value1[x+12] then value11 += 1;

ret = value11;

這個函數是來計算過去n季,有幾季是每一季的營業利益率都比去年同期高。

同樣的,他也寫了一個函數來計算過去n季,有幾季是每一季的營業毛利率都比去年同期高。

input: x(numeric, "季度");

settotalbar(30);

value1 = GetField("營業毛利率","Q");

value11 = 0;
if value1[x] > value1[x+4] then value11 += 1;
if value1[x+4] > value1[x+8] then value11 += 1;
if value1[x+8] > value1[x+12] then value11 += 1;

ret = value11;

有了這兩個函數之後,他寫了以下的腳本:

settotalbar(30);

input: score_threshold1(9, "營業利益率得分門檻");
input: score_threshold2(9, "營業毛利率得分門檻");

value10 = callfunction("過去三年營業利益率同季比較分數", 0);
value11 = callfunction("過去三年營業利益率同季比較分數", 1);
value12 = callfunction("過去三年營業利益率同季比較分數", 2);
value13 = callfunction("過去三年營業利益率同季比較分數", 3);

value19 = value10 + value11 + value12 + value13;
outputfield(1, value19, 0, "營業利益率得分");




value20 = callfunction("過去三年營業毛利率同季比較分數", 0);
value21 = callfunction("過去三年營業毛利率同季比較分數", 1);
value22 = callfunction("過去三年營業毛利率同季比較分數", 2);
value23 = callfunction("過去三年營業毛利率同季比較分數", 3);

value29 = value20 + value21 + value22 + value23;
outputfield(2, value29, 0, "營業毛利率得分");







if value19 >= score_threshold1 and value29 >= score_threshold2 then ret = 1;

 

在這個腳本裡,他用callfunction這個函數,去呼叫上述那兩個函數,然後去計算這幾季裡,營業利益率及毛利率是否有一定的季度,都優於前一年同期。

符合上述條件的公司,才符合過往表現不錯的定義。

接下來我們來定義什麼叫作落難。

他的定義有三個:

一、股價夠低。例如股價要低於30元

二、估值不高,例如本益比要小於8倍

三、現金股利殖利率夠高,例如要大於5%

最後他把上述所有條件組合成一個選股策略,就是所謂過去表現不錯,如今落難的股票。

下圖是這個策略,過去七年所有普通股,停損停利設為7%的回測報告:

這是一個很不錯的選股策略,分享給大家,祝大家今天操作順利。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5hxqgl

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)