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

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

思路:在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,这波大盘走势先上后下,形成巨幅震荡行情

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

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

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

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

表现非常靓丽。

结论:

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

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

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

python股票量化交易系统_利用python建立股票量化交易系统(一)相关推荐

  1. python金融量化风险_利用 Python 进行量化投资分析 - 利率及风险资产的超额收益...

    本文是 利用 Python 进行量化投资分析 系列的第一篇文章,这个系列主要以 Python 作为工具,结果国内金融市场情况,及使用真实历史数据来实践一些基础的金融投资概念. 这篇文章主要讲述了真实利 ...

  2. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  3. python抓取股票形态_利用Python实现MACD#39;顶底背离#39;形态,并实现自动化交易!...

    点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下 ...

  4. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  5. 基于python的系统构建_利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  6. python实现邮件客户端_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  7. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  8. python怎么重复程序_利用Python程序完成ABAQUS中的一些重复性操作

    对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程.比如对上百个点施加集中力,比如建立几百个耦合约束.这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错. 利 ...

  9. python如何收集数据库_利用Python操作mysql数据库

    本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作 大家在转行项目中也可以加入这一步操作,提高逼格的同时还能简化流程 正文开始: 先看一下最常见的操作:从数据库中sele ...

  10. python处理nc数据_利用python如何处理nc数据详解

    利用python如何处理nc数据详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  利用python如何处理nc数据详解.txt ] (友情提示:右键点上行txt ...

最新文章

  1. Ubuntu16.04安装Mininet
  2. 如何压测基于容器服务ACK托管的DUBBO服务
  3. 公司的一些SEO面试题
  4. java代码耗尽内存_有关Java内存溢出及内存消耗的小知识
  5. 配置 jvisualvm 监控Java虚拟机
  6. 解决git rebase操作后推送远端分支不成功的问题
  7. 01. View C++ as a federation of languages
  8. JavaWeb中实现验证码(servlet版)
  9. 《尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通)》视频1
  10. ECharts快速上手 入门教学
  11. SuperScan扫描工具(或Nmap)的使用
  12. BUUCTF-CRYPTO-强网杯2019 Copperstudy
  13. Java项目:SSM酒店客房管理系统
  14. QCloud服务停止 ,解决WINDOWS防火墙开启后Ping不通的问题
  15. 绘制中国象棋棋盘 - CSS Pseudo Elements 的使用
  16. English - because of,due to ,thanks to ,owing to ,as a result of ,on account of解析
  17. 记录uni-app的时间选择器
  18. java定义枚举并赋值_java中枚举的特性是什么?如何赋值?
  19. 为Fragment设置转场动画
  20. MAC OS 上的app重新签名与打包

热门文章

  1. Python 绿盟远程安全评估系统(RSAS)漏洞跟踪表导出工具
  2. SQL 开源替代品,诞生了!
  3. Linux个人防火墙设计
  4. python先进先出Queue
  5. 银行表内表外业务图解
  6. 导出超大数据excel,基于EEC实现
  7. H5项目如何打包成APP
  8. 多个表格汇总怎么做?
  9. HI3516AD+OV4689内核编译
  10. 微信小程序引用阿里云图标的方法