量化交易学习(六十七)在Mac上使用miniqmt

alt text

前一篇文章实现了在Mac上安装qmt,本文介绍如何在Mac上安装xtquant连接miniqmt,实现股票行情的获取。

qmt使用起来真的是有点别扭,内置的python版本也比较低,内置的编辑器也不是很好用,好在qmt提供了一个极简模式,极简模式就是miniqmt,界面很简洁,只提供交易功能,没有行情展示、策略回测、代码编辑等功能。

在qmt登录的时候选择极简模式登录,就能进入miniqmt界面,如下图所示:
alt text

alt text

miniqmt相比qmt最大的优势就是它支持在第三方编辑器(比如pycharm、vscode)中编辑代码,用户可以自由使用第三方库。比如想用backtrader做回测就得用miniqmt,用qmt就没法接入backtrader。

miniqmt在使用时还需要安装xtquant,在代码中,通过xtquant库连接miniqmt来获取行情。

xtquant包含两个模块,xtdata和xttrader,xtdata用于获取行情数据,xttrader用于交易。

下面来讲一下怎么在mac上的CrossOver环境中安装xtquant。

CrossOver模拟了一个windows环境,但是它没有安装python,所以需要手动安装python。在 https://www.python.org/downloads/ 下载能和xtquant兼容的python版本,比如我下载的是python3.12.4,下载后安装,这样就可以在CrossOver中正常使用python了。

alt text

安装完成后如果没有设置环境变量,则需要手动设置环境变量,设置方法如下:

  1. 在CrossOver上方菜单栏选择【容器】->【打开Shell】,打开一个shell窗口,然后输入wine cmd,就能调出cmd。

    alt text

    alt text

  2. 然后输入regedit调出注册表编辑器,找到HKEY_CURRENT_USER\Environment,然后双击右侧的PATH,把值设置为C:\users\crossover\AppData\Local\Programs\Python\Python312C:\users\crossover\AppData\Local\Programs\Python\Python312\Scripts,如下图所示:

    alt text

  3. 接下来是安装在迅投官网下载xtquant包 https://dict.thinktrader.net/nativeApi/download_xtquant.html 下载最新版就可以了。
    alt text

  4. 把下载的压缩包解压到python的site-packages目录下,比如我的python安装在CrossOver容器下的C:\users\crossover\AppData\Local\Programs\Python\Python312文件夹,那么site-packages目录就是C:\users\crossover\AppData\Local\Programs\Python\Python312\Lib\site-packages,把压缩包解压到这个目录下就可以了。

    alt text

  5. 安装完成后,就可以在python中导入xtquant了。

因为xtquant是安装在CrossOver中的,所以需要使用wine来运行python,下面我就来演示一下怎么用xtquant获取行情数据。

  1. 把下面的代码保存为test.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    from xtquant import xtdata

    code = '600519.SH'

    #取全推数据
    full_tick = xtdata.get_full_tick([code])
    print('全推数据 日线最新值', full_tick)

    #下载历史数据 下载接口本身不返回数据
    xtdata.download_history_data(code, period='1m', start_time='20230701')

    #订阅最新行情
    def callback_func(data):
    print('回调触发', data)

    xtdata.subscribe_quote(code, period='1m', count=-1, callback= callback_func)
    data = xtdata.get_market_data(['close'], [code], period='1m', start_time='20230701')
    print('一次性取数据', data)
  2. 在CrossOver上方菜单栏选择【容器】->【打开Shell】,打开一个shell窗口,然后输入wine cmd,就能调出cmd。

  3. 进入存放test.py文件的目录,输入wine python test.py,就能看到输出结果了。

    alt text

江达小记