策略编辑
登录 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哟。