万一免五开户,联系微信:golangsysu

【华泰matic量化交易教程】 编写并运行第一个python量化程序

量化程序 女子经理 331℃

策略编辑

登录 MATIC 客户端,在左侧导航栏选择“特色交易→量化交易→策略编辑”
,点击进入策略编辑页面。大体上可以分为左侧的菜单栏、中间的策略文件管理、右上的策略编辑和右下的策略调试日志输出四个区域,此外还包括策略文件管理的工具条、策略操作工具条等。如下图所示:

策略编辑

MQuant 新建策略有三种方式,如下图所示:

新建策略

新建策略时,可以选择策略模板文件,策略模板包括基础策略模板 template.py 和 MQuant 的所有内置策
略,如下图所示。选中用户策略文件右键新建策略时,会直接以被选中文件为模板,如上图方式 3 所示。

模板

它生成的模板文件大致结构如下:(其实还有很多注释和默认函数,被我直接删除了,实际上用不到)

from mquant_api import *
from mquant_struct import *
import json

def timer_func(context, interval, custom_param):
    print('公众号:量化低费率 -- {}'.format(datetime.datetime.now()))

def initialize(context):
    run_timely(timer_func, 3)

initialize : 必须有的函数,初始化函数。在里面可以设定程序按照什么模式运行,比如定时运行,设定运行周期。

比如上面的run_timely(timer_func, 3), 设定每隔3秒运行一次timer_func函数。

而这个timer_func函数你自己实现。

我上面的实现很简单,只是打印了一句话:

print('公众号:量化低费率 -- {}'.format(datetime.datetime.now()))

把代码写好之后,点击右上角的实盘按钮,程序就会直接运行:
所以程序在实盘里面运行得到的结果是这样的

每隔3秒打印一次 公众号:量化低费率 ---- + 当前时间戳 。

当然啦,这里只是入门举例子。实际上你可以在timer_func 获取实时的行情数据,然后计算实时的秒级别,分钟级别等的各种技术指标,比如均线上穿,macd,kdj等等。

比如 获取历史的函数:

klinedata = get_kline_data_from_init_date('000009.SZ',
                                          -30,
                                          kline_type=KLineDataType.KLINEData_1D,
                                          fq='pre', 
                                          date_type=DateType.TRADE_DATE, 
                                          include_init_date=True)

可以获取000009.SZ 这个股票的过去30天的前复权k线数据(高开低收成交量)。

完整代码如下,定期3秒获取日线历史行情:

from mquant_api import *
from mquant_struct import *
import json

def timer_func(context, interval, custom_param):
    print('公众号:量化低费率 -- {}'.format(datetime.datetime.now()))
    klinedata = get_kline_data_from_init_date('000651.SZ',
                                              -30,
                                               kline_type=KLineDataType.KLINEData_1D,
                                               fq='pre', 
                                               date_type=DateType.TRADE_DATE, 
                                               include_init_date=True)
    print(klinedata.data['close'])

def initialize(context):
    run_timely(timer_func, 3)

当然啦,上面的代码只是做学习教程,实际上这样做没有必要,因为过去30天的日线数据都是相同的。所以你无论在当天开盘期间,哪个时刻获取的过去30天的日线数据都是一样的。

但细心的你回发现这个参数:kline_type=KLineDataType.KLINEData_1D , 没错,如果要获取分钟级的数据,可以改动这个参数就可以了。

在源码里面可以看到,分钟级的数据获取是用:kline_type=KLineDataType.KLINEData_1M。

待续

欢迎持续关注,后续会有更多的量化教程。
需要开户的朋友也可以在公众号下的菜单获取哦。
有qmt,ptrade,掘金,matic哟。

转载请注明:吾要开户 » 【华泰matic量化交易教程】 编写并运行第一个python量化程序

喜欢 (0)or分享 (0)