Skip to content

教程

1. 快速上手

1.1. 配置文件

Omicron使用 cfg4py 来管理配置。

cfg4py使用yaml文件来保存配置项。在使用cfg4py之前,您需要在某处初始化cfg4py:

1
2
import cfg4py
cfg4py.init('path_to_your_config_folder')
注意初始化cfg4py时,需要提供包含配置文件的文件夹的路径,而不是配置文件的路径。配置文件名必须为defaults.yml。

您至少应该为Omicron配置时区、Redis连接串、Postgres连接串和Omega服务器连接地址:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# path_to_config/defaults.yaml
tz: Asia/Shanghai
redis:
  dsn: redis://localhost:6379
postgres:
  # 请修改服务器名称,并在环境变量中增加pg_account, pg_password
  dsn: postgres://${pg_account}:${pg_password}@localhost/zillionare
  enabled: false
omega:
  urls:
    quotes_server: http://localhost:3181

请根据您实际环境配置来更改上述文件。缺省地,Omicron是不使用Postgres数据库的。如果您打算使用Postgres数据库的话,除了要配置正确的连接串之外,还要将这里的 enabled 改为 true

关于Postgres数据库的作用,请参见Omega文档

Omicron的最基础的作用,就是访问行情数据。我们通过下面的例子来看如何实现这个功能:

1.2. 获取行情数据

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import arrow
import cfg4py
import omicron
from omicron.models.securities import Securities
from omicron.models.security import Security
from omicron.core.timeframe import tf
from omicron.core.types import FrameType

asynd def main():
    cfg4py.init('path_to_config')

    # 初始化omicron, 建立与 redis, postgres及omega server的连接
    await omicron.init()

    s = Securities()

    # 加载全市场证券列表
    await s.load()

    print(s[0]['code]) # this should output '000001.XSHE'

    # 加载行情数据
    start = arrow.get('2020-10-10').date()
    end = arrow.get('2020-10-20').date()
    sec = Security('000001.XSHE')

    assert sec.display_name == '平安银行'
    frame_type = FrameType.DAY
    bars = await sec.load_bars(start, stop, frame_type)
    print(bars)

    # 日期转换
    n = tf.count_day_frames(start, end)
    start = tf.day_shift(end, -n)
    bars = await sec.load_bars(start, stop, frame_type)
    print(bars)