利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]

利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]从今天开始正式开启我的博客之旅,博客内容全部是我自己的量化心得,主要还是为自己将来中工作之中遇到相似问题,可以方便的找到答案,如果能帮到有相似问题的其他同学,我也很开心,如果帮不到的话,不喜勿喷,如果文章中有什么不对的地方,欢迎批评指正。建立第一个简单的量化模型——小市值选股票模型。思路:在A股市场之中,在每个月月底的时候,按照市值排名,选择最小市值的10只股票买入,持有到下个月月底…

大家好,又见面了,我是你们的朋友全栈君。

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

 

建立第一个简单的量化模型——小市值选股票模型。

思路:在A股市场之中,在每个月月底的时候,按照市值排名,选择最小市值的10只股票买入,持有到下个月月底,每月调仓一次,坚持一年,看收益率能否跑赢同期的创业板指数/中小板指数

 


具体操作:

方法1:

自己下载数据并且进行清洗和计算,建议使用tushare网站——http://tushare.org/,数据质量不错,还免费。

然后经过清洗和计算之后,得到自己想要的结果,我大概是用了近3天的时间才搞定,主要还是自己以前没学过python,很多函数都是现学现卖,浪费很多时间,之前的博客写过相关的内容,现在来看不值得新手学习,原因有二:

1:下载太多,数据清洗步骤太多,需要用到pandas 的各种方法,相比较之下都不是很好的方法,毕竟量化交易的核心不在数据清洗,这些都是基本工作,如果有质量很高的数据的话,可以减少很多无用功,所以建立一个好的数据库,可以节省很多时间。

2:在自己进行这个策略编织的时候,其实90%以上的时间都是用于计算各种数值,或者画图,这里还不包括用来评价策略好坏的夏普比率,要是加上的话,代码更多,真正策略本身的代码其实少得可怜,大多数都是脏活累活的数据清洗和整理,所以决定以后还是用第三方平台效率更高一些,可以更加的专注策略本身。

方法2:

使用第三方平台,目前我使用的是聚宽,我对比了一下聚宽、优矿、大宽网(已经倒闭了),都大同小异,选哪个都一样。

 

顺便说一句,虽然这些平台都大同小异,但是代码可不能简单复制粘贴,因为底层函数库是不一样的,有可能在别的平台根本用不了某个函数,并且简单复制到自己电脑中的python的话百分之百用不了。

talking is cheap, show me the code

展示部分源代码

def find(context):
    # 计算出要买的股票——按照流通市值从小到大排序,并且选出50只,因为有可能有ST/*ST/停牌/涨停的股票,所以先得出股票池
    df=get_fundamentals(query
    (valuation.code,valuation.circulating_market_cap).order_by(valuation.circulating_market_cap)).loc[:49,'code']
    
    # 把股票池转为列表,并且带入过滤函数得到最后的buylist
    buylist=list(df)
    buylist=filter_stock(buylist)[:30]
    
    #得到目前持仓 
    hold=[]
    for i in context.portfolio.positions.keys():
        hold.append(i)
    # 如果目前持有的股票不在buylist中,就都卖出
    sell=[]
    for i in hold:
        if i not in buylist:
            order_target_value(i,0)
    # 如果在buylist中的股票,不在目前的持仓中,就把股票放到to_buy中
    to_buy=[]
    for i in buylist:
        if i not in hold:
            to_buy.append(i)
    # 如果to_buy不是空列表的话,就给每只股票平分可用资金,然后进场
    if len(to_buy)>0:
        cash=context.portfolio.available_cash/len(to_buy)
        for i in to_buy:
            order_value(i,cash)

代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后选择最小市值的10只,基准是创业板综指,看看结果吧。

时间2017.1.1-2018.12.31,这波大盘走势先上后下,形成巨幅震荡行情

利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]

跑输创指,并且整体很悲催

 

时间2016.1.1-2018.2.28,大盘先下后上,和上次走势正好相反,但是因子的效果不同

利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]

这次跑赢指数,但是惨胜,回撤有点过分了

 

2014.4.28-2014.12.11,大盘单边上涨行情

利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]

表现非常靓丽。

结论:

1.因子本身的确有效,但是很明显单因子是不可能直接使用的。

2.顺风太浪,逆风就投,牛市来的时候可以搞,熊市很难做到降低风险

如果自己有策略,但是不会写代码的话,可以给我私信,价钱从几十到几百不等,看策略实现的难易程度而定,我使用的是聚宽平台,代码写好之后,可以在上面上模拟盘和实盘,对应的券商是第一创业证券。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153178.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle 函数 wm_concat 将列转行 用法 实例

    Oracle 函数 wm_concat 将列转行 用法 实例

    2021年8月31日
    84
  • Eclipse安装教程 ——最详细安装java

    Eclipse安装教程——史上最详细安装java&python教程说明(Win7_64位+Eclipse64位+JDK_8u131_64位+python2.7.8+PyDev5.7.0插件)适用操作系统:Win764位所需要的软件以及插件:Eclipse64位、JDK_8u131_64位、python2.7.8、PyDev5.7.0插件第一次发这么长的博客,若有…

    2022年4月6日
    59
  • cBridge 2.0主网启动:迈向无缝互操作性未来的关键一步

    cBridge 2.0主网启动:迈向无缝互操作性未来的关键一步在不到两个月前,我们宣布了基于升级版SGN的cBridge2.0计划,今天,我们高兴地宣布cBridge2.0主网正式上线!

    2022年5月4日
    49
  • linux 开发板 ldd,Linux ldd命令

    linux 开发板 ldd,Linux ldd命令Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。ldd是list,dynamic,dependencies的缩写,列出动态库依赖关系。可以用ldd–help或者manldd来看其用法。可以用which命令找到ldd的位置:$whichldd/usr/bin/ldd使用ldd,往往在制作自己的发行版时经常需要判断某条命…

    2022年6月11日
    30
  • 前端总结大全

    前端总结大全记住88条精简前端面试题,让面试成为享受前言HTML&CSSJavaScriptVUE网络性能相关前言背的最少、面的最好。你的面试我帮你,夜色正黑,我们出发,感谢各位一直默默关注本侠的小伙伴,你们的关注,是我永恒动力,在此奉上一份大礼。次面试技能题不是最全,却是最精。后期持续优化改进。HTML&CSS浏览器内核;盒模型、flex布局、两/三栏布局、水平/垂直居中;BFC、清除浮动;css3动画、H5新特性。JavaScript继承、原型链、this指向、设计模式

    2022年6月22日
    37
  • java 事务处理_java如何处理异常

    java 事务处理_java如何处理异常Java事务处理总结一、什么是Java事务通常的观念认为,事务仅与数据库相关。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复…

    2022年10月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号