【量化交易】 投资研究功能【009】

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


摘要

  • 投资研究功能简介
  • 新建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
code000333.XSHE000651.XSHE
day  
2016-11-101778.97001347.5200
2016-11-111769.95001347.5200
2016-11-141748.70001347.5200
2016-11-151742.27001347.5200
2016-11-161738.43011347.5200
2016-11-171742.34001373.9900
2016-11-181750.75001354.7400
2016-11-211779.80001371.5900
2016-11-221770.81011397.4500
2016-11-231810.21001537.0200
2016-11-241870.26001586.9500
2016-11-251871.62001638.0800
2016-11-281943.99001712.6801
2016-11-292031.18011712.6801
2016-11-301954.50001712.6801
2016-12-011991.50001840.2100
2016-12-021928.34001730.1200
2016-12-051847.76001556.8700
2016-12-061863.96001583.9399
2016-12-071865.31991575.5200
2016-12-081879.58001578.5300
2016-12-091948.74001623.6500
2016-12-121891.30001524.3900
2016-12-131859.71001536.4200
2016-12-141833.92001521.9800
2016-12-151797.16001488.8900
2016-12-161885.65001503.3300
2016-12-191863.06991453.4000
2016-12-201823.05001443.7800
2016-12-211832.74001455.8101
.........
2018-05-183550.10402903.7932
2018-05-213554.05662883.9414
2018-05-223467.49392815.3621
2018-05-233412.97882780.4707
2018-05-243353.84232743.7749
2018-05-253333.49632751.5952
2018-05-283422.55032805.1353
2018-05-293393.04472771.4473
2018-05-303341.64482726.9309
2018-05-313486.61872857.4722
2018-06-013436.70462802.1274
2018-06-043558.75422876.1208
2018-06-053623.97512920.6372
2018-06-063609.25732912.2153
2018-06-073580.62302886.3477
2018-06-083604.77492896.5745
2018-06-113714.45612943.4971
2018-06-123772.08623031.9285
2018-06-133759.33743000.6465
2018-06-143680.09552944.0986
2018-06-153714.05862948.3098
2018-06-193604.90992847.2454
2018-06-203637.33282880.3318
2018-06-213586.50072879.1289
2018-06-223553.50832891.1604
2018-06-253504.19432873.1130
2018-06-263467.02082845.4407
2018-06-273344.45262735.3528
2018-06-283319.27662717.9072
2018-06-293459.73292836.4170

400 rows × 2 columns

 

市值走势图

   <matplotlib.axes._subplots.AxesSubplot at 0x7fb20da6b5d0>

 

 

   <matplotlib.axes._subplots.AxesSubplot at 0x7fb20da6b5d0>

 

 

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

市值比值走势图

此处,作图方法同上,计算比值的操作是dataframe类型数据基本操作,还不熟悉的参考pandas.dataframe 专题使用指南思考,如果你持有格力电器与美的集团这两个股票,根据得到市值比值走势图,你应当以怎样的策略调整两者之间的持有比例?能否由此写出一个策略。

df2.plot(figsize=(18,8))
# 计算格力电器市值比上美的集团市值
df['mc_ratio']=df['000651.XSHE']/df['000333.XSHE']
# 取出比值作为新的变量df2,并维持其类型为dataframe
df2=df[['mc_ratio']]
# 作图

<matplotlib.axes._subplots.AxesSubplot at 0x7fb20d904e10>

 

 

其他应用案例

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

自测与自学

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值