请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3364477 新帖:3

投资研究功能

我是一个土豆发表于:5 月 25 日 16:00回复(1)

本文是量化交易零基础入门教程中的一篇,点击蓝字链接可查看该系列详情。


文章内容请看附的研究(notebook)。研究内的链接建议右键-选择在新标签页打开。


查看下一篇

投资研究功能¶

本文是量化交易零基础入门教程中的一篇,点击蓝字连接可查看该系列详情。


摘要¶

  • 投资研究功能简介
  • 新建notebook
  • 单元格及其类型
  • 命令模式与编辑模式
  • 应用举例

  • 这里讲的研究是聚宽量化交易平台中投资研究功能,实质上是有独立空间的python环境,意思是不光是做量化交易,python支持做的事这里几乎都可以做,比如统计分析、数据可视化、数据预处理、机器学习等。投资研究功能入口在导航栏-我的策略-投资研究。

新建 notebook¶

  • notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。官方文档:Jupyter Notebook
  • 新建notebook的方法如下图,可以看到有多个版本,目前就先选python2这个版本吧。这些版本有什么区别见这个文章,如果对此还有不明白的地方可以在那个文章下留言问或反馈相关建议,比如我就反馈过。 新建notebook.png

单元格及其类型¶

  • notebook中的一个个格子就是单元格,单元格类型有两种主要类型code(代码)和markdown,可以在工具类查看并改变当前单元格的类型,如下图。不妨自己顺便看下工具栏里的各个按钮。 单元格类型.png
  • 代码类型的单元格用来进行代码编写、运行代码、显示结果等。多个单元格之间的代码虽然被单元格分开,但是是一体的,运行某个单元格后产生的影响并不局限在一个单元格中,而是对当前notebook的所有单元格有效,比如变量的值改变了,其他格中的同一变量的值也改变;定义了某个函数,其他格中可以直接用等等。重点注意,有些API不能在研究中使用,有些则不能直接使用,需要加载模块后使用,有些能直接用,但参数默认值不同,具体看API文档注意事项与API用法说明。 注意事项.png
  • markdown类型的单元格用来进行文档编写,编写语法为markdown语法,运行单元格,将根据markdown语法进行自动排版。markdown语法比较简单,聚宽社区也是使用markdown的,参考这个文章了解下。

命令模式与编辑模式¶

  • 命令模式是操作notebook的模式,识别方法是单元格边框为灰色,左侧粗边为绿色,看不到编辑光标,如下图。按enter转为编辑模式。 命令模式.png
  • 编辑模式是编辑单元格里内容的模式,识别方法是单元格边框为绿色,左侧粗边为绿色,可以看到编辑光标,如下图(截图截不到光标)。按esc转为命令模式。 编辑模式.png

  • 在导航栏-帮助中可以查看快捷键,建议都至少看一遍。重点提几个:

    • 命令模式下按z,可以撤销被删除的单元格,从而拯救被你误删的整个单元格。
    • 命令模式下按d、d,可以删除当前单元格。
    • 命令模式下按b,可以在当前单元格下方增加单元格。
    • 命令模式下按y, 修改单元格类型为code。
    • 命令模式下按m, 修改单元格类型为markdown。
    • 编辑模式下按ctrl+enter,可以运行当前单元格。

应用举例¶

获取格力电器和美的集团两个股票近400日市值数据¶

  • 提示阅读API文档:get_fundamentals_continuously()以及panel类型数据怎么处理。
  • 还是那句话,基本内容学差不多了,应考虑有自学能力了,另外,思考如果没有提示将如何,毕竟以后难免需要去阅读他人的代码并学习。
  • 代码如下:
# APIget_fundamentals_continuously()
scu=['000651.XSHE', '000333.XSHE']
date='2018-07-01'
n=400

q=query(
     valuation.market_cap
    ).filter(
        valuation.code.in_(scu)
    )
df=get_fundamentals_continuously(q, end_date=date,count=n)

# [panel类型数据怎么处理](https://joinquant.com/post/9375)
df=df['market_cap',:,:]

# 显示结果
# notebook中单独的变量视为命令:显示该变量
df
code 000333.XSHE 000651.XSHE
day
2016-11-10 1778.9700 1347.5200
2016-11-11 1769.9500 1347.5200
2016-11-14 1748.7000 1347.5200
2016-11-15 1742.2700 1347.5200
2016-11-16 1738.4301 1347.5200
2016-11-17 1742.3400 1373.9900
2016-11-18 1750.7500 1354.7400
2016-11-21 1779.8000 1371.5900
2016-11-22 1770.8101 1397.4500
2016-11-23 1810.2100 1537.0200
2016-11-24 1870.2600 1586.9500
2016-11-25 1871.6200 1638.0800
2016-11-28 1943.9900 1712.6801
2016-11-29 2031.1801 1712.6801
2016-11-30 1954.5000 1712.6801
2016-12-01 1991.5000 1840.2100
2016-12-02 1928.3400 1730.1200
2016-12-05 1847.7600 1556.8700
2016-12-06 1863.9600 1583.9399
2016-12-07 1865.3199 1575.5200
2016-12-08 1879.5800 1578.5300
2016-12-09 1948.7400 1623.6500
2016-12-12 1891.3000 1524.3900
2016-12-13 1859.7100 1536.4200
2016-12-14 1833.9200 1521.9800
2016-12-15 1797.1600 1488.8900
2016-12-16 1885.6500 1503.3300
2016-12-19 1863.0699 1453.4000
2016-12-20 1823.0500 1443.7800
2016-12-21 1832.7400 1455.8101
... ... ...
2018-05-18 3550.1040 2903.7932
2018-05-21 3554.0566 2883.9414
2018-05-22 3467.4939 2815.3621
2018-05-23 3412.9788 2780.4707
2018-05-24 3353.8423 2743.7749
2018-05-25 3333.4963 2751.5952
2018-05-28 3422.5503 2805.1353
2018-05-29 3393.0447 2771.4473
2018-05-30 3341.6448 2726.9309
2018-05-31 3486.6187 2857.4722
2018-06-01 3436.7046 2802.1274
2018-06-04 3558.7542 2876.1208
2018-06-05 3623.9751 2920.6372
2018-06-06 3609.2573 2912.2153
2018-06-07 3580.6230 2886.3477
2018-06-08 3604.7749 2896.5745
2018-06-11 3714.4561 2943.4971
2018-06-12 3772.0862 3031.9285
2018-06-13 3759.3374 3000.6465
2018-06-14 3680.0955 2944.0986
2018-06-15 3714.0586 2948.3098
2018-06-19 3604.9099 2847.2454
2018-06-20 3637.3328 2880.3318
2018-06-21 3586.5007 2879.1289
2018-06-22 3553.5083 2891.1604
2018-06-25 3504.1943 2873.1130
2018-06-26 3467.0208 2845.4407
2018-06-27 3344.4526 2735.3528
2018-06-28 3319.2766 2717.9072
2018-06-29 3459.7329 2836.4170

400 rows × 2 columns

市值走势图¶

  • 此处使用的数据可视化方法是 x.plot(figsize=(长,宽)),用来画折线图,其中长宽可以自己调整,需要注意的是变量x需要是dataframe类型。
  • python数据可视化学习之旅很不平坦,对新手很不友好,此处仅进行简单演示,提供几个参考资料供深入学习。
    • pandas库可视化文档
    • seaborn库官网
    • matplot库官网
# 画折线图
df.plot(figsize=(18,8))
<matplotlib.axes._subplots.AxesSubplot at 0x7fb20da6b5d0>

市值比值走势图¶

  • 此处,作图方法同上,计算比值的操作是dataframe类型数据基本操作,还不熟悉的参考pandas.dataframe 专题使用指南。
  • 思考,如果你持有格力电器与美的集团这两个股票,根据得到市值比值走势图,你应当以怎样的策略调整两者之间的持有比例?能否由此写出一个策略。
# 计算格力电器市值比上美的集团市值
df['mc_ratio']=df['000651.XSHE']/df['000333.XSHE']
# 取出比值作为新的变量df2,并维持其类型为dataframe
df2=df[['mc_ratio']]
# 作图
df2.plot(figsize=(18,8))
<matplotlib.axes._subplots.AxesSubplot at 0x7fb20d904e10>

其他应用案例¶

  • 以下应用案例选自聚宽社区

    • 统计研究:统计了一下熔断的历史数据,我对小头爸爸报以深刻的同情
    • 心得&教程:数据类型之元组、集合
    • 统计&绘制K线图:根据扣非净益率筛选白马股,并绘制K线图
    • 自动并行回测&参数调优&回测与研究间文件读取:多回测运行和参数分析框架
    • 数据统计:全市场估值-等权PE PB
    • 机器学习:一只兔子帮你理解 kNN
    • 数学规划:无约束的非线性规划问题 -- 线搜索方法
    • 数据预处理:一键即得标准化、规范化、二值化等多种机器学习数据预处理方式
    • 学习笔记&机器学习:《机器学习》从零开始学 目录
    • 自定义模块:自定义python库

自测与自学¶

  • 亲手使用下投资研究功能
  • 大致浏览下文中其他应用案例
  • 是否理解并学会文中的美的与格力的应用案例
  • 在市值比值走势图部分提到的思考是否有答案,提示一下,在比值比较低的时候多持有一个股票,在比值比较高的时候持有另一个股票。

全部回复

0/140

达人推荐

量化课程

    移动端课程