[] Zero-based Polar Star 9.5 quantified basic introductory tutorial

I. Introduction

  He continues to write several articles about the pole star to quantify, but it does not seem to know how to get started writing. Here to write an introductory tutorial that all equipment, to help you zero-based entry, by the way is to record the experience points.

  The entire content is divided into three parts:

  1, download and install Introduction

  2, the operation simple interface

  3, commonly used functions described

  Note: The pole star is quantified based on the python, whatever the outcome, will only play the turn point program, but now with the current school is not can not.

Second, download and install Introduction

1, download and install

  Download the official website link: http:? //Www.epolestar.info/download ver = q

  Note that to download the "Premium quantify" instead of the pole star 9.5.

  Structurally, the current is very wise to quantify the pole star 9.5+ very wise to quantify because quantify the need to run 9.5 client support for the job, so the installation Premium quantified while automatically install the 9.5 client.

 

  After downloading the installation package will automatically start the installation, the installation path no choice.

2, program structure

  

 

  Open the installation directory can be seen mainly contains three folders, which

  epolestar: Polar Star 9.5 program directory

  equant: quantitative directory

  Miniconda: Python environmental management

  Note 1: The use of miniconda to manage very wise to quantify python runtime environment, so you do not need to install additional python or management runtime environment, but if you need to use python expansion pack will use miniconda the pip to install, path in:

  “.\Miniconda\Scripts\pip.exe”

3, Introduction

  1. Polar Star 9.5 quantification is open source, all the code in the src directory under the equant directory, have the opportunity to write a source resolution.

  2. Premium quantification is based on the current 9.5, but it was unclear whether the transaction did take the market and borrowed 9.5 channel, or he will be able to do independently. Anyway, doubtless to operate independently.

  3. Compared with other mainstream platforms on the market to quantify, quantify Premium has three advantages:

  1)结合极星9.5,这样在使用量化时可以同步绘制K线图,还可以自定义一些标记、指标线在K线上做分析

  2)基于python,这样可扩展性其实很强,很多强大的量化包可以直接使用

  3)规定好了代码结构,这个好处是不需要自己去写回调和触发,常用的功能函数(取行、画K线、发委托等)都封装好了,门槛一下又降低许多

  其实其他量化平台也都有上述三个特点,但最多只占一两个,三个全齐的目前就只有极智量化。

三、简单的界面操作

1、启动

  安装好后,双击“极智量化1.1.0”启动,这时候启动的其实是极星9.5,然后在上方的功能栏中点击“量化>极星量化”启动量化平台。

 

 

  启动量化后,极星9.5的界面自动跳转到“程序化1”页面。

 

  这里的程序化1、程序化2、程序化3就是策略运行时的K线展示,默认就是显示的“基准合约”,至于啥是基准合约后面再说。

  在极星9.5的程序化页面中你可以右键鼠标选取当前运行的策略来做K线的切换,因为你可以同时运行多个策略嘛,那显示哪一个策略的K线是可以选的。

 

2、极智量化窗口介绍

  整个窗口的布局还是比较常规的,右侧的函数介绍和函数检索功能很实用,里面的介绍也很详细。策略文件中有一些示例教程,可以先按个看一遍熟悉下常用的函数。

  下方的策略管理可以右键运行的策略进行“启动、停止、删除”操作,另外还有“投资报告、图表展示、属性设置”,因为我没咋用这三个功能就不详细说了。

  需要额外说明的是“消息日志”和“报错信息”。

  1. 运行日志>用户日志

  这里显示的就是LogInfo函数输出的信息了,这个完全由用户自己掌控。

  2. 运行日志>信号日志

  这里显示的是python运行过程中输出的信息,比如有一个list为空,但你做了个取值的操作list[1],这样的error在python层面,他不会主动报错到“错误信息”里提示你。所以有时候发现运行异常,但没有主动报错信息,可以到这里看看是不是运行过程中有些操作不合法。

  3. 运行日志>系统日志

  这里显示的是量化平台自己的日志信息,比如现在启动了量化它会有个日志记录,取到了行情会有个记录,取不到也会有记录。比如你合约代码写错了,就是在这个地方提示你“取不到合约”的数据或者“提交合约时发生异常”。所以如果代码运行异常又没有明显的提示,可以到这里看看是不是哪些参数设置错了。

  4. 错误信息

  这里就是代码中有语法错误,运行不起来会在这里给出提示,而且代码不会继续执行。

  综上,除了错误信息外,策略运行过程中还需要关注“信号日志”和“系统日志”,由于量化是一个运行框架(按既定节奏运行固定代码),所以很多内部错误无法抛出来提示。

3、运行一个策略试试

  我们运行一个简单的示例策略“AvrHighLow.py”,内容是输出K线最大值和最小值的平均值。

  打开策略文件后,点击右上角的“运行”按钮。

 

  此时会先弹出一个“属性”设置窗口,啥也不用管直接点“确定”即可。然后你就会发现界面自动切换到了9.5的“程序化1”页面,但是是空白的啥也没有,然后也没有报错信息。

 

 

 

 

   这时候就需要到运行日志里去看了,你会发现在系统日志中有error信息,原来是合约设置错误,"DCE|F|I|1909"这个合约早就过期了,现在系统里没有这个合约编号,自然是取不到数据的。

 

   我们修改合约编号为“DCE|F|I|2001",再运行下就能看到K线了,并且用户日志中会输出平均值。

 

四、常用函数介绍

1、触发函数

  量化一般包含四个过程:初始化、历史数据处理、即时数据处理、策略结束处理。极智量化使用了四个预设的触发函数来实现这四个过程,分别是:

  def initialize(context): 

  初始化函数,初始化数值、参数或者订阅行情就在这里做

  def handle_data(context):

  数据处理函数,处理K线数据就是在这里做的,一般是来一个K线数据就触发一次这个函数

  def hisover_callback(context):

  历史数据结束时触发的函数

  def exit_callback(context):

  策略结束时触发的函数,手动关闭策略时会触发

2、初始化initialize

  一般初始化中就只做行情订阅并设置触发方式,

  SetBarInterval  行情订阅

  SetTriggerType  触发方式,这里设置的是handle_data的触发方式

  需要注意的是,点击运行后弹出的“属性设置”窗口,其实里面的内容与初始化差不多,如果你在初始化里做了设置,就不要在“属性设置”中做重复的设置,系统会使两个设置都生效,比如你在initialize设置了“K线触发”,在“属性设置”窗口又设置了“即时行情触发”,系统会使两个设置都生效,最后的结果是K线和即时行情都会触发handle_data。同理行情订阅也是一个道理。

3、数据处理handle_data

  极智量化的数据处理逻辑是这样的,如果你订阅了历史行情,那就先触发历史的数据,接着触发最新的数据。比如订阅了2000根历史K线,同时触发方式为K线触发。那么handle_data这里会先收到2000个历史K线数据,而且这些数据是一个接一个来的,也就是handle_data会先被触发2000次,你可以通过Open、Close等函数获取历史K线的数据。然后每当你订阅的行情有新的K线生成,就会触发一次handle_data,通过Open、Close获取的数据就会包含了最新的K线数据。

4、回测结束处理hisover_callback

  如果你订阅了历史数据,那么历史数据会先触发handle_data,当历史数据获取完毕会触发一次hisover_callback函数。所以我一般是这样做,订阅行情时订阅2000个历史K线,但触发设置这里我改为“即时行情触发”。那么历史K线不会触发handle_data,当历史K线获取完毕后在hisover_callback中处理历史数据。

5、策略结束处理exit_callback

  手动停止策略时触发,一般用于保存数据什么的。

6、其他常用函数

  Open,获取K线上bar的开盘价,返回的是一个数组,最新价可以通过Open[-1]获取

  Close,K线上bar的收盘价,与Open类似

  HisData,一次性获取所有历史数据,如果在hisover_callback中就是你订阅的历史数据,如果在handle_data中就是订阅的历史数据和已经收到的K线数据

  PlotNumeric,在K线上输出一个数值,其实这个可以画指标线,输出的数值连起来就是一个指标线了

  PlotBar,绘制一个bar

  A_SendOrder,发送一个委托单

  DeleteAllOrders,批量撤单

  A_OrderStatus,查询委托的状态

7、如何得到合约的编码

  比如“DCE|F|I|2001"

  DCE是交易所编码

  F表明是期货

  I是品种编码

  2001是合约编码

  可以自己拼,如果不知道怎么拼,可以在“属性设置>合约设置>增加>商品代码”中找到所有合约的编码。

 

8、订阅多个行情的问题

  前面的示例就只订阅了一个行情,那如果订阅了两个会发生什么呢?

  1)首先9.5的“程序化1”页面只会显示基准合约,也就是你订阅的第一个合约K线。

  2)其次像Open、Close这些函数如果不指明合约编号就默认使用“基准合约”。

  3)如果你订阅了历史行情,那么不是第一个合约先取完再取第二个,也不是轮流获取,而是随机获取。即一会来几个A合约的K线,一会来几个B合约的K线,随机的。所以对于多行情订阅的情况最好在hisover_callback里处理历史数据。

  4)对于实时阶段,两个合约的任何一个行情发生变化都会触发handle_data函数。

  5)如果在代码里设置行情就不要在属性设置里再设置了。

五、总结

  本文总结了这段时间操作极星9.5量化的一点心得,量化平台里自带的示例教程可以先看看,然后我写了一个画K线的教程和简单止盈的策略,有注释可以参考看下。

自定义套利的K线绘制

https://mp.csdn.net/postedit/103942974

滚动止盈策略

https://mp.csdn.net/postedit/103952807

发布了30 篇原创文章 · 获赞 2 · 访问量 2986

Guess you like

Origin blog.csdn.net/weixin_40402375/article/details/103971117