使用手册
1. 配置文件¶
对普通用户而言,Omega会从~/zillionare/omega/config下加载配置。
Note
如果您是Omega的开发者,应该将环境变量__cfg4py_server_role__
设置为DEV,这样Omega会
从源代码所在文件夹下面的omega/config下读取配置。
如果您是Omega的测试者,建议您将环境变量__cfg4py_server_role__
设置为TEST,这样Omega
会从~/.zillionare/omega/config下加载配置。
上述设置并非必须,如果您不懂得这种设置的意义,您完全可以使用默认的位置,即~/zillionare/omega/config
配置文件使用YAML文件格式,并支持环境变量。比如,如果您通过环境变量POSTGRES_USER
来设置了数据库
账号,则可以在配置文件中这样使用它:
1 2 |
|
上述环境变量的扩展是通过cfg4py来支持的。
2. 数据同步¶
数据同步是Omega最核心的工作之一。Omega专门配置了一个Jobs进程来管理数据同步及其它工作。Jobs通过 读取配置文件来确定应该如何进行同步,并向Omega Fetcher进程发出数据同步请求。
对于日历、证券列表等少量数据的同步,这些请求通常只会发给一个Omega Fetcher进程,而对K线这样的大 批量数据,这些请求则会发给所有在线的Omega Fetcher进程,因此,使用Omega可以得到极为优秀的数据同 步性能。
2.1. 数据同步发生的时间¶
对日历和证券列表等数据,Omega每天进行一次,具体同步时间默认为午夜2点,您可以在配置文件中进行修改:
1 2 3 4 |
|
K线数据会在每个Frame结束时间进行同步。比如,对60分钟k线,会分别在10:30, 11:30, 14:00和15:00 各进行一次同步;对日线数据,会在15:00时进行同步,这样确保您始终可以得到最新的数据。
您的上游数据服务提供者可能没来得及在每个Frame结束时,就刚好把所有的数据准备好。因此,您可以通过 设置delay来稍稍延迟同步时间。如果您没有设置delay,而上游数据服务提供者又不能在Frame刚好结束时 提供数据的话,数据同步仍然会触发,只不过您只能得到上一帧的数据。您可以根据您应用的实时性要求和上 游数据提供者的服务能力来设置这个延时,系统默认是5秒钟。
关于delay
的设置,我们在下一节中介绍。
2.2. 如何同步K线数据¶
Omega控制K线数据同步的配置格式如下(注意其中包括了上一节已经提到的delay
参数):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上述配置格式提供了要同步的证券标的、K线的帧类型(比如,是30分钟线还是日线),起始时间和延迟等关键
信息。其中证券标的又是由cat
、exclude
和include
共同决定的。
上述配置中,每种K线都有自己的设置,它们构成了一个数组。
frame
键表明k线的帧类型。Omega支持的帧类型如下(注意区分大小写):
K线类型 | 标识 | 说明 |
---|---|---|
年线 | 1Y | 每年一条记录,当年停牌的除外,下同 |
季线 | 1Q | 每年产生4条记录 |
月线 | 1M | 每月产生1条记录 |
周线 | 1W | 每周产生1条记录 |
日线 | 1d | 每天产生1条记录,全年约250条记录 |
60分钟线 | 60m | 每天产生4条记录 |
30分钟线 | 30m | 每天产生8条记录 |
15分钟线 | 15m | 每天产生16条记录 |
5分钟线 | 5m | 每天产生48条记录 |
1分钟线 | 1m | 每天产生240条记录 |
start
指定该种k线获取数据的起点时间。如果不指定,则系统会从当前日期倒推1000个数据记录。您无
须指定精确的时间,比如对30分钟线指定精确到2020年1月3日10:00开始,或者担心2020年1月4日是否刚好是
周线的结束日。对于同步数据来说,多取一个帧的数据并不会增加什么负担,所以系统会取到一个最合适的起
始时间,刚好保证您要求的数据都能被同步。
stop
指定该种k线获取数据的终点。通常您无须进行设置,系统应该自动为您同步到最新时间。但
如果您设置了,则系统将不会为您获取在stop
之后的任何数据。实际效果是,在首次同步完成后,禁
止了今后的数据同步。
待同步证券的标的由cat
、include
和exclude
共同决定。系统先根据cat
选出一些标的,
然后排除在exclude
中的标的,再加入include
中的标的。
如果cat
为空,则根据上述规则,将只有include
中的标的被加入。如果一支标的在exclude
和
include
中同时存在,则include
拥有更高的优选级。
根据上述规则,如果您有以下同步需求:同步除了银行股以外的所有股票的日线数据,并且包括上证指数和深 成指,则可以使用以下的配置:
1 2 3 4 5 6 7 8 |
|
3. 管理omega¶
- 要启动Omega的行情服务,请在命令行下输入:
1 |
|
- 行情同步等任务是由jobs进程管理的,所以您还需要启动jobs进程
1 |
|
- 要查看当前有哪些fetcher和jobs进程在运行,使用下面的命令:
1 |
|
- 此外,Omega还提供了stop和restart命令:
1 2 3 4 |
|
4. 使用行情数据¶
虽然Omega提供了HTTP接口,但因为性能优化的原因,其通过HTTP接口提供的数据,都是二进制的。
使用行情数据的正确方式是通过Omicron SDK来访问数据。请跳转至 Omicron帮助文档 继续阅读。