代码|零基础入门商品期货程序化交易(3)( 二 )


这里我们就要学习到一个新的FMZ的API函数:SetContractType() , 可以看到SetContractType()是exchange交易所对象的成员函数 。 简单说就是SetContractType()是基于exchange调用的 , 作用是设置exchange这个交易所对象代表的期货账户当前所要操作的合约 。
代码中exchange.SetContractType("MA000")我们传入了参数MA000 。 MA000是一个合约代码 , 我们查询 零基础入门商品期货程序化交易(1) 中实践运行的例子显示的合约代码表格里 , 可以看到MA代码是指甲醇合约 , 那么000是指什么呢?000是FMZ平台定义的指数合约代码 , 组合起来MA000就是甲醇指数合约 。 类似的在FMZ上定义的虚拟合约还有主力连续合约(使用888表示) , 写法是MA888表示这个合约是甲醇主力连续合约 。
exchange.GetTicker()获取行情数据
当设置好当前的合约 , 明确了要操作的合约 , 就可以获取这个合约的行情数据了 。 我们学习的另一个函数GetTicker() , 这个函数也是exchange交易所对象的成员函数 。 作用是获取当前的实时行情数据 , 数据结构为:

代码|零基础入门商品期货程序化交易(3)
文章图片

var ticker = exchange.GetTicker()这行代码调用了GetTicker()函数获取当前实时行情赋值给声明的ticker变量 。
Log("MA000 ticker:", ticker)
Log函数作为使用最频繁的函数 , 使用起来也很简单 。 其作用就是输出传入的参数在实盘的日志区域 。
Log函数用于把一些认为关键的信息在实盘日志中输出 , 也常用于调试策略程序 , 观察分析程序中的数据 。 这里我们执行的Log("MA000 ticker:", ticker)函数 , 其中传入了2个参数 。 第一个参数是一个字符串MA000 ticker: , 第二个参数是被赋值后的ticker变量 。
运行时输出的日志如下图:

代码|零基础入门商品期货程序化交易(3)
文章图片

LogStatus()和_D()函数
最后再学习这两个FMZ的API函数 , 本例就算是学习完了 。 LogStatus函数和Log函数类似 , 只不过Log函数是在实盘页面的日志区域输出 。 LogStatus函数是在实盘页面的状态栏上输出 , 如图:

代码|零基础入门商品期货程序化交易(3)
文章图片

至于LogStatus函数还有很多有趣的用法 , 目前可以暂时先了解到此 。 (有兴趣的可以查看API文档自行提前学习:https://www.fmz.cn/api#logstatusmsg)
那么_D()函数是做什么用的呢?
_D()函数用途也十分简单 , 如果不传入参数就是返回一个当前的时间字符串 , 通常是用来打印当前时间方便观察 。
回测测试

代码|零基础入门商品期货程序化交易(3)
文章图片

推荐阅读