Quant Buffet放轻松,别过度思虑

择时小盘股效应版本 2

登录后收藏

策略概要

该策略基于大盘股(定义为市值排名前30%的股票)的月度表现交易iShares Russell 2000 ETF (IWM)。大盘ETF或指数基金可以作为这些股票的代理。仅在大盘股加权平均回报为正的月份,投资者做多IWM ETF。在大盘股没有正回报的月份,投资者持有零利率现金。该策略旨在捕捉大盘股表现对小盘股(由IWM代表)的潜在益处。

II. 策略合理性

学术研究表明,回报的可预测性受到机构投资者交易模式的影响。在重新平衡投资组合时,大型投资者倾向于买卖更多的大盘股,因为他们可以快速调整风险敞口。相比之下,对于小盘股,他们会将订单分成几天进行。这种交易行为,即机构对流动性和非流动性股票都有大量的买卖需求,会在股票回报中产生模式。结果是,机构投资者的交易,尤其是小盘股的交易,有助于市场中可预测的价格波动。

III. 来源论文

缓慢交易和股票回报可预测性 [点击查看论文]

阿拉乌丁·哈米德,马蒂斯·洛夫,马蒂·苏奥米宁。新加坡国立大学。阿尔托大学商学院。阿尔托大学商学院。

<摘要>

市场回报的状态正向预测规模溢价(或小公司和大公司回报的差异),因为小盘股对市场回报的调整有延迟,而大盘股则在市场回报后出现反转。当总资产和融资流动性较低时,这种规模溢价的可预测性最强,并且与机构和信息摩擦有关,这些摩擦表现为机构在小盘股中的缓慢交易,但在大盘股中的快速交易。例如,共同基金的缓慢交易导致小盘股回报在资金流向上的可预测性。

回测表现

索提诺比率0.066
胜率62%

完整 Python 代码

from AlgorithmImports import *
class TimingtheSmallCap(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2000, 1, 1)
self.SetCash(100000)
self.period:int = 21
self.SetWarmUp(self.period, Resolution.Daily)
self.symbol:Symbol = self.AddEquity("SPY", Resolution.Daily).Symbol
self.data:RollingWindow = RollingWindow[float](self.period)

self.iwm:Symbol = self.AddEquity("IWM", Resolution.Daily).Symbol

self.recent_month:int = -1
self.Settings.MinimumOrderMarginPortfolioPercentage = 0.
def OnData(self, data: Slice) -> None:
if self.symbol in data and data[self.symbol]:
    price:float = data[self.symbol].Value
    self.data.Add(price)

if self.recent_month == self.Time.month:
    return
self.recent_month = self.Time.month
if self.data.IsReady:
    if self.data[0] / self.data[self.period - 1] - 1 > 0:
        self.SetHoldings(self.iwm, 1)
    else:
        self.Liquidate(self.iwm)