大致思路:
从06年开始提取股票数据,到11年结束,为历史数据期,然后从12年到13年10月为回测期间。开始每月调整权重。
本文分为三部分
1. 因子设计
2. 数据整理
思考了一下,还是放弃大矩阵的思想。在R里面要多利用神奇的Vector和data frame啊。做成单因子data frame。
3. 回归分析
因子的处理本来就很奇葩了,还要价格回归价格,略蛋疼。
=======神奇的分割线==============
确定一个数据整理的框架。我认为数据整理就是一个不断降维的过程。
首先,拿到所有的数据,row <- trading time, col <- raw data
考虑到,不同数据,trading time不能对齐,有的多有的少。稀疏矩阵处理也不是很方便。而且很明显这是matlab里面的做法。
dataframe拼接也颇有不便。自动循环,额,要是有字典就好了。算了,直接分开存了所有的变量。
(回过头来看如果刚开始做,这样sql拼成表的方法确实是最直观的方式,但是有了这个基础进行改进,这种循环嵌套拿滞后项的操作应该不及内存操作,尤其像利润表那个四个季度利润处理)
PB: ClosePrice, TotalShares, SEWithoutMI
C: QT_DailyQuote 日行情库表
I:LC_ShareStru 公司股本结构变动
H: LC_BalanceSheetAll 资产负债表
U: 一年前最近的资产负债表
C.ClosePrice*I.TotalShares/NULLIF(H.SEWithoutMI,0) AS PB_ratio,
PS: ClosePrice,TotalShares, OperatingRevenue
J: // 滞后一年的股本结构表
K: 同下 // 最近一期
L: 同下 //滞后一季
M: LC_QIncomeStatementNew 单季利润表_新会计准则 //滞后两季,二四季度可能不准确
N: //同上,滞后三季
C.ClosePrice*(I.TotalShares + J.TotalShares)/2/nullif((K.OperatingRevenue + L.OperatingRevenue + M.OperatingRevenue + N.OperatingRevenue),0) AS PS_ratio
PC: 3个表
P/Cash Earnings:现金盈利使用净营运现金流
O,P,Q: LC_QCashFlowStatementNew 单季现金流量表_新会计准则
C.ClosePrice*(I.TotalShares + J.TotalShares)/2/nullif((O.NetOperateCashFlow + P.NetOperateCashFlow + Q.NetOperateCashFlow + R.NetOperateCashFlow),0) AS PC_ratio,
EV/EBITA: 3个表
EV计算
企业价值=股票市值+净债务,净债务=负债总额-应付工资-应付福利费-应付股利-应交税金-其他应交款-预提费用-住房周转金-递延税款贷项;
(C.ClosePrice*I.TotalShares + H.TotalLiability - (isnull(H.AccountsPayable,0)+isnull(H.AdvanceReceipts,0)+isnull(H.SalariesPayable,0)+isnull(H.TaxsPayable,0)+isnull(H.OtherPayable,0)+isnull(H.AccruedExpense,0)+isnull(H.DeferredProceeds,0)+isnull(H.OtherCurrentLiability,0))-(isnull(H.TotalNonCurrentLiability,0)-isnull(H.LongtermLoan,0)-isnull(H.BondsPayable,0))-isnull(H.CashEquivalents,0))
EBITDA计算 一个表
(K.TotalProfit+L.TotalProfit+M.TotalProfit+N.TotalProfit+K.FinancialExpense+L.FinancialExpense+M.FinancialExpense+N.FinancialExpense+isnull(S.FixedAssetDepreciation,0)+isnull(S.IntangibleAssetAmortization,0)+isnull(S.DeferredExpenseAmort,0)) AS EV_EBITDA,
RV:
Replacement Value 重置成本: (Market value of equity + book value of debt) / Book value of assets
(I.TotalShares*C.ClosePrice + H.TotalLiability)/nullif(H.TotalAssets,0) AS RV_ratio,
PE: P/E Ratio 两个表
Earnings 采用归属于母公司所有者的净利润
C.ClosePrice*(I.TotalShares + J.TotalShares)/2/nullif((K.NPFromParentCompanyOwners + L.NPFromParentCompanyOwners + M.NPFromParentCompanyOwners + N.NPFromParentCompanyOwners),0) AS PE_ratio,
这是直接取的平安银行的,虽然不让这么干,但是可以比较下。
Trend in Analyst Revision Index
Cash Flow from Operations:
Cash Flow to Invested Capital: (计算公式最长)
Asset turnover: Net Sales Revenue/Average Total Assets
Operating margin = operating income/revenue
Sales Per Employee
======1217 END===========
=======1218 BEGIN=========
开始了一致预期的工作,
取出了数据,确定了代码结构
写在自己的文档里面了...
======1218 END ===========