了解Alpha策略和Fama_French 三因子模型的人都知道,市值因子是一个长期有效的超额收益来源,对股票收益率有一定的解释作用,小市值的股票更容易带来超额收益。这也比较好理解,因为小市值类股票往往表现活跃,容易引发炒作风潮。此外,还有IPO管制的原因(大量排队企业选择借壳),也有市场风险偏好提升的原因(市场恶性循环越来越偏爱小市值)。小市值通常选到的是刚起步的公司,具有较强的成长能力,在一定范围领域内有较强实力(否则谁让你上市的),特别是在发展中国家此类因子有强力的alpha。

策略逻辑:市值可以带来超额收益

策略内容:每月买入市值最小的30只股票,持有至下个月月初再调仓。

资金管理:等权重买入

风险控制:无单只股票仓位上限控制、无止盈止损

源代码如下:

# coding=utf-8
from __future__ import print_function, absolute_import, unicode_literals
from gm.api import *
from datetime import timedelta
"""
小市值策略
本策略每个月触发一次,计算当前沪深市场上市值最小的前30只股票,并且等权重方式进行买入。
对于不在前30的有持仓的股票直接平仓。
回测时间为:2018-07-01 08:00:00 到 2019-10-01 16:00:00
"""
def init(context):# schedule 定时任务详见: https://www.myquant.cn/docs/python/python_basic#7bce6621a1abafe8# 每月第一个交易日的09:40 定时执行algo任务schedule(schedule_func=algo, date_rule='1m', time_rule='09:40:00')# 使用多少的资金来进行开仓。context.ratio = 0.8
def algo(context):# 获取当前时间now = context.now# 选取全A股(剔除停牌和st股和上市不足50日的新股和退市股和B股)date1 = (context.now - timedelta(days=100)).strftime("%Y-%m-%d %H:%M:%S")date2 = context.now.strftime("%Y-%m-%d %H:%M:%S")# 通过get_instruments获取所有的上市股票代码 详见:https://www.myquant.cn/docs/python/python_select_api#8ba2064987fb1d1fall_stock = get_instruments(exchanges='SHSE, SZSE', sec_types=[1], fields='symbol, listed_date, delisted_date',df=True)code = all_stock[(all_stock['listed_date'] < date1) & (all_stock['delisted_date'] > date2) &(all_stock['symbol'].str[5] != '9') & (all_stock['symbol'].str[5] != '2')]# 获取所有股票在这个时候的市值, 详见: https://www.myquant.cn/docs/python/python_select_api#8ba2064987fb1d1ffundamental = get_fundamentals_n('trading_derivative_indicator', code['symbol'].to_list(),context.now, fields='TOTMKTCAP', order_by='TOTMKTCAP', count=1, df=True)# 对市值进行排序,并且获取前30个。 最后将这个series 转化成为一个list即为标的池trade_symbols = fundamental.reset_index(drop=True).loc[:29, 'symbol'].to_list()print('本次股票池有股票数目: ', len(trade_symbols))# 计算每个个股应该在持仓中的权重percent = 1.0 / len(trade_symbols) * context.ratio# 获取当前所有仓位 详见 https://www.myquant.cn/docs/python/python_concept#8079e2e4dad05879positions = context.account().positions()# 平不在标的池的仓位for position in positions:symbol = position['symbol']if symbol not in trade_symbols:order_target_percent(symbol=symbol, percent=0, order_type=OrderType_Market,position_side=PositionSide_Long)print('市价单平不在标的池的', symbol)# 将标中已有持仓的和还没有持仓的都调整到计算出来的比例。for symbol in trade_symbols:order_target_percent(symbol=symbol, percent=percent, order_type=OrderType_Market,position_side=PositionSide_Long)print(symbol, '以市价单调整至权重', percent)
if __name__ == '__main__':'''strategy_id策略ID,由系统生成filename文件名,请与本文件名保持一致mode实时模式:MODE_LIVE回测模式:MODE_BACKTESTtoken绑定计算机的ID,可在系统设置-密钥管理中生成backtest_start_time回测开始时间backtest_end_time回测结束时间backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POSTbacktest_initial_cash回测初始资金backtest_commission_ratio回测佣金比例backtest_slippage_ratio回测滑点比例'''run(strategy_id='strategy_id',filename='main.py',mode=MODE_BACKTEST,token='token_id',backtest_start_time='2010-07-01 08:00:00',backtest_end_time='2019-10-01 16:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=1000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)

最终回测结果

当下小市值策略已经成为了基金行业内部公开的“秘密”。谁也不知道未来能否继续获得超额收益,但谁也不能说未来一定会失效。

声明:本文观点仅供交流探讨,不够成任何投资建议,否则后果自负。

偏爱小市值策略的,进来了解下这个策略相关推荐

  1. 股票量化分析工具QTYX使用攻略——小市值轮动选股策略(更新2.5.9)

    搭建自己的量化交易系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统. 如何学会搭建自己的量化交易系统? 边学习边实战,在实战中学习才是最有效地方式.于是我们分享一个即可以用于学习,也 ...

  2. 策略系列篇(一)—小市值轮动

    前言 写于2022年一月,临近春节,祝大家新年快乐!写这篇文章的时候,刚经历了1.25号4000+只股票下跌,虽然入市不久,仓位也仅控制在3层,但是仍然缺乏安全感.于是提笔把入市半年的诸多策略以及成长 ...

  3. 小市值策略(股票).py

    # coding=utf-8 from __future__ import print_function, absolute_import, unicode_literals from gm.api ...

  4. 量化投资:小市值策略

    介绍一个小市值股票投资策略 小市值股票是指市值较小的公司股票,通常具有较高的增长潜力和较高的风险.该投资策略有以下参考: 潜在高收益:小市值股票通常是相对较新的.成长潜力较大的公司股票.由于市场对这些 ...

  5. 量化交易 聚宽 小市值策略

    小市值策略 # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作为基准set_benchmark( ...

  6. 奶茶店的线上线下营销策略

    奶茶店经营,从管理商来讲奶茶店的经营科分为线上经营与线下经营两种模式.虽说奶茶店开起来容易但是想要从根本上将营销策略做好,须知是一门技巧.加盟奶茶店为什么有的店铺生意慢慢,有的店铺却门庭罗雀,这和奶茶 ...

  7. 干货全拿走-用Excel制作小市值轮动价值投资选股器

    干货全拿走-用Excel制作小市值轮动价值投资选股器 一. 前言 二. 实现思路 三. 核心代码 四. 注意事项 一.前言 大数据时代,数据分析的价值愈发凸显,数据对于金融市场亦如是.现在越来越多的金 ...

  8. 小市值(股票)——Python量化

    小市值策略(股票) (以下部分内容参考<因子投资:方法与实践>一书) 目录 小市值策略(股票) 1. 原理 1.1 因子投资 1.2 规模因子 2. 策略逻辑 3. 策略代码 4. 回测结 ...

  9. 利用python建立股票量化交易系统(一)——小市值选股票模型

    从今天开始正式开启我的博客之旅,博客内容全部是我自己的量化心得,主要还是为自己将来中工作之中遇到相似问题,可以方便的找到答案,如果能帮到有相似问题的其他同学,我也很开心,如果帮不到的话,不喜勿喷,如果 ...

最新文章

  1. Eclipse生成jar文件
  2. MySQL案例-多源复制引起的内存泄漏
  3. 排序算法总结之归并排序
  4. Android 一个绚丽的loading动效分析与实现!
  5. win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)...
  6. SQL Server Window Function 窗体函数读书笔记二 - A Detailed Look at Window Functions
  7. 意想不到!WordPress安全漏洞98%来自插件
  8. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...
  9. redis分布式缓存(二)
  10. Java线程面试题,值得一看!
  11. thinkphp-查询某一列的值column
  12. 关于vue 项目页面打包后首次页面加载特别缓慢的原因及解决方案
  13. 免费提供离线地图部署服务
  14. 搭建SFTP服务器实现文件上传
  15. SPEA2算法原理及应用方向
  16. web网页设计实例作业 ——中国风文化传媒企业官网(6页) 简单个人网页设计作业 静态HTML文化主题网页作业
  17. Android从一个应用程序启动第三方应用app
  18. 情人节朋友圈秀恩爱九宫格配图
  19. 微信名片加好友服务器繁忙,还傻乎乎的微信加好友?这些细节你要注意!
  20. (java)求最大公约数

热门文章

  1. 百度通用翻译api使用
  2. 自古深情留不住,技术Leader30条套路得人心!!!
  3. C语言中的stdbool.h头文件
  4. 基于uniapp视频播放APP软件
  5. 【图片免费转PDF方法】
  6. 函数定义与调用,自己实现pow()函数对整数的运算
  7. IBM服务器诊断面板LED指示灯详细介绍
  8. XSS Game通关教程
  9. py225基于python的家政管理系统设计
  10. java转换时间格式 yyyy-MM-dd转成yyyy年MM月dd日