交流Q群1064240775

一、前言:

  本人对期货其实不太懂,只是会写一点python,有一些错漏之处还请各位指正。

  极星客户端默认自带了很多套利合约,比如JD2001-JD2005,还提供了K线图。对于自定义的套利,比如JD2001-JD2002,就只有闪电图。但是有时候我们又想分析下自定义套利的K线走势,做一些指标分析。利用极星9.5的量化功能可以很方便做到这一点。

二、思路

  整个思路简单直接

  1、订阅行情:需要哪些合约的行情用SetBarInterval函数先订阅好(量化窗口默认会显示订阅的第一个品种K线)

  2、读取各合约的开盘价、最新价、最高价、最低价

  3、A合约各种价减去B合约各种价就是套利合约AB的价格

    AB套利的开盘价=A开盘价-B开盘价

    AB最新价=A最新价-B最新价

    AB最高价=A最高价-B最高价

    AB最低价=A最低价-B最低价

    (注意:这里的最高价和最低价肯定是不对的,这里简化一下而已,因为各项指标是以最新价来算的,所以就先这样吧)

  4)绘制K线图,使用PlotBar绘制K线柱,使用PlotStickLine绘制K线上的线段,需要注意开盘价高于最新价表明价格下跌,要用绿色。开盘价低于最新价表明价格上涨,要用红色。不涨不跌我们用蓝色表示(因为没有白色可选)

  实际过程中遇到的主要问题是:

  1、如果同时订阅了合约A和合约B,bar来的时机是随机的,也就是一会来个A的bar,一会来一个B的bar,所以在handle_data中是无法按一个个bar顺序处理历史K线的

  2、所以考虑在hisover_callback中通过HisData函数一次读取所有历史K线数据,这时候又有个问题,那就是触发hisover_callback时历史K线已经接收完毕,直接绘制K先会发现起始位置在基准合约K线的末尾,还好PlotBar函数可以指定起始位置的偏移。

  3、一切就绪后发现个更大的问题,那就是AB合约即使各种设置都一致,最后得到的K线数据是不一样的,因为临近交割期有些合约会缺少数据,这时还好发现HisData可以返回历史K线中bar的时间信息,这样通过时间信息就可以把两个合约的数据对齐了。对齐后,只处理两个合约都有数据的情况,某一个没有数据则直接跳过不处理。

三、实操

  极星9.5量化版的下载和基本使用就不说了,这里直接开始解析代码,文末附完整代码的下载方式。

  1、设置全局参数

  通过全局参数的方法我们就可以在代码运行前方便的修改需要处理的合约和一些参数。

  

  2、订阅行情

  在初始化函数里通过SetBarInterval()函数订阅行情,其中的M表示K线周期是以“分钟”为单位,具体的还支持“T分笔”、“D日线”。

  使用SetTriggerType()函数设置触发方式,这里设置的是K线触发,即每当更新一个K线数据就触发一次handle_data()函数。可选的还有1 即时行情触发;2 交易数据触发;3 间隔固定时间触发;4 指定时刻触发。实际上这个案例里触不触发的不重要,因为我们只处理历史数据。

  3)获取并处理数据

  这里使用HisData一次获取所有的K线数据,我们将open、close、high、low、time数据分别放到list中

  然后对比两个合约K先的time数据,如果time一致就处理,不一致就跳过。这里的方法是遍历A合约的timeList,然后找B合约中是否有对应的时间,有的话找到其索引值i2,通过i2来找到该时间对应的K线数据。

  最后根据计算出来的open、close、haigh、low绘制自定义套利合约的K线。需要注意这里需要先计算一个偏移值,与基准合约的K线对齐。其次需要注意除了bar柱还得绘制线段。

  最后,我还利用talib包计算了MA5、MA10、BOLL指标并绘制了相应的指标线。最终效果如下:

  上方是基准合约的K线,下方就是自定义套利的K线。

完整代码:文件分享

【零基础】极星9.5量化入门一:自定套利的K线绘制相关推荐

  1. python实现登录支付宝收能量_适合零基础人群学习的Python入门教程

    适合零基础人群学习的Python入门教程学什么?小编为大家准备的Python学习教程,课程主要讲解:Python核心编程.Linux基础.前端开发.Web开发.爬虫开发.人工智能等内容. 对于初学者想 ...

  2. 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间

    求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...

  3. python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...

  4. 零基础 Amazon Web Services (AWS) 入门教程图文版(三)

    原则上WDCP安装好了,就可以直接使用了,FTP.MySQL什么的应有尽有.但是本站Amazon AWS -- 免费的午餐不好吃一文中说到过这个问题,直接用WDCP的MySQL会导致EBS的I/O急剧 ...

  5. 零基础 Amazon Web Services (AWS) 入门教程图文版(四)

    自上一篇之后,5天过去了,这篇文章总算是挤出来了... 其实看不看无所谓啦,都说了WDCP非常适合小白,随便折腾.要是折腾的时候遇到什么问题,欢迎留言探讨~ 五.新建站点 登录WDCP后台,首次登录会 ...

  6. 零基础 Amazon Web Services (AWS) 入门教程图文版(二)

    上一篇讲到,主机正常运转了.但是此时如果直接访问公网IP是打不开网页的,因为主机上没有搭建Web服务器环境,防火墙也没有开放80端口,并且我们没有上传任何网页文件.所以这一篇主要介绍服务器环境的搭建. ...

  7. 零基础 Amazon Web Services (AWS) 入门教程 (列表)

    在 Amazon Web Services 上托管 Web 应用程序 Web 应用程序 是指用户通过 Web 浏览器或专门的 Web 客户端访问的任何软件.Web 应用程序通常具有逻辑层级结构.例如, ...

  8. 零基础 Amazon Web Services (AWS) 入门教程图文版(一)

    现在小站唯一的流量都靠AWS这个关键词了,刚好要用AWS重新建站,所以从头开始记录一遍吧. 所谓零基础,就是你可以没有任何AWS使用经历,仍然能够按照教程操作下去.所谓图文版,就是建议手机用户在没有连 ...

  9. python入门教材论坛_Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare ============= *Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐* ------------------------ 本文 ...

最新文章

  1. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
  2. 使用FIR.im发布自己的移动端APP
  3. 力扣——机器人能否返回原点
  4. RocketMQ最佳实战
  5. OpenCV高效准确的场景文本检测器(EAST)(附完整代码)
  6. 页面布局_word页面布局
  7. oracle 表 上限,Oracle分区表(Partition Table)的数量限制
  8. Python游戏编程入门,让你秒变电脑大神!
  9. C++的使用Lambda
  10. Modularity(模块化-无模块化)
  11. python自动翻译pdf_python实现从pdf文件中提取文本,并自动翻译的方法
  12. 【原创】技术员 Ghost Win 10(x86/x64)企业版 201806
  13. java对象转json字符串
  14. 手机驱动工程师门,准备转行了吗
  15. MAC 控制台常用命令
  16. 高数笔记(十四):多元复合函数的求导法则,隐函数的偏导数,多元微分在几何上的应用
  17. java socket连接超时_Java中Socket设置连接超时的代码
  18. html5 图片羽化,html5+webgl仿ps羽化笔刷液态动画特效
  19. illumina平台的测序接头
  20. Python---项目(简易画图软件)

热门文章

  1. WUST-CTF 2020 WriteUp
  2. matlab怎么对三组数据做相关性分析,如何用matlab做相关性分析
  3. Mac 装win系统
  4. 居家养老服务内容有哪些,居家养老系统大屏展示
  5. 可以级联的以太网远程IO模块的优点与具体的适用场景
  6. 题解1208 2的幂次方表示
  7. 微软机器翻译系统:中-英翻译水平可“与人类媲美”
  8. 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
  9. Java爬虫酷我音乐
  10. 跟着项目学sql——查询语句优化(一)