麦语言编写趋势策略确实十分简单,得益于封装,只需使用几行代码就可以写出一个策略。在发明者量化(FMZ)交易平台上使用麦语言,除了查询麦语言文档:发明者量化My语言(Mylang)文档之外,缺少一些指导文章。本篇我们就一起来玩转FMZ上的麦语言。麦语言在FMZ上可以分为商品期货、数字货币现货、数字货币期货三个方面,我们一起来梳理各个不同市场的使用区别。先来看一下一个比较重要的内容。
「麦语言交易类库」是把一些需要用户设置的数值、参数、模式整合封装在了一起,脱离策略代码层面,在创建机器人时由使用者设置、配置的框架类库,创建麦语言策略时自带。
对于熟练掌握在FMZ上使用麦语言策略,这些参数、设置的了解是必不可少的,下面我们一起来学习各个参数的概念、用途。
收盘价模型
、实盘价模型
。
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSSUP(MA5,MA10),BK;
此时如果「默认开仓手数」设置为2,那么当策略BK的执行条件CROSSUP(MA5,MA10)
触发时,买开数量为2(具体是2手、2个币或者2张合约要看添加的是什么交易所,是商品期货,还是数字货币现货,数字货币期货)。
以回测系统中举例:
实盘要看交易所页面自己添加配置的交易所对象:
定价货币精度
参数相关,主要用于设置下单交易吃单时加上或减去的溢价,例如当需要买入时,对手卖一的价格时10,我们下买单价格出11,此时11-10=1,多出的1元差价就是滑价,卖出相反,减价卖出的部分就是滑价,加滑价的目的是为了确保成交。在商品期货交易中,不同品种有不同的priceTick(即一跳价格),数字货币交易中也是一样,如果下单的价格不是priceTick的倍数,例如i2009
铁矿石2009合约,价格一跳是0.5,如果我下单760.1,这样就不满足priceTick的要求,这样的委托单是无法下成功的,交易所会拒绝此次报单,如果下单是760.5是可以的。所以在设置滑价的时候就需要考虑这个问题。
对于商品期货,系统会自动获取当前品种的priceTick(定价货币精度这个参数不生效),此时设置的滑价点数
就是priceTick的倍数,例如:
显示铁矿石的价格一跳是0.5,当我们设置滑价点数为5时。
由于数字货币提供价格一跳之类的信息并不统一,并且有些提供,有些不提供。所以需要「定价货币精度」这个参数来控制。例如,「定价货币精度」参数设置为2,即当前交易时下单价格精确到小数位第二位即0.01。此时priceTick就为0.01,如果设置滑价点数为5,那么每次下单时基于对手价加上或者减去的滑价(或者叫溢价)就为0.05。
该参数主要用于商品期货
、数字货币期货
市场设置合约代码,参看麦语言文档:https://www.fmz.com/bbs-topic/2569#合约
如果策略添加的交易所对象为数字货币现货,该参数设置无效。
对于麦语言的模板参数我们先熟悉到这里,下一篇我们可以一起熟悉FMZ平台上的麦语言运行时界面、图表、等内容。
买好币上币库:https://www.kucoin.com/r/1f7w3