商品期货程序化交易的零基础入门(3)

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

接着上篇文章咱们持续学习。

一切操作的前提–和期货公司前置机衔接

exchange.IO(“status”)函数判别与期货公司前置机衔接状况

可能有的同学会问exchange是什么?

答:在零根底入门产品期货程序化买卖(1)篇最终,咱们着手实践了一下运转了一个看上去挺复杂的战略,功用是在FMZ实盘页面状况栏上显示一个表格,表格上为一切的合约代码以及相关信息。咱们实践时在实盘页面给实盘装备的华泰期货次席(看穿式监管)就对应战略代码中的exchange即买卖所方针。

所以exchange是什么?

答:简略了解exchange便是咱们装备好的期货公司账户!

那在实盘上能够装备多个这样的代表期货公司账户的买卖所方针么?

答:当然能够,不过这属于略微高阶一点的内容,咱们仅仅知道就能够,暂时用不到。

上篇咱们学会了if(…){…}else{…}句子的基本用法。接着咱们就要学习重点了,前面讲解了那么多根底语法便是为了这儿的一个功用。还记得咱们说过的:一切操作的前提–和期货公司前置机衔接这句话么?在if句子的小括号中的判别条件便是用来判别和期货公司前置机衔接状况的。这个if中的表达式条件由exchange.IO(“status”)函数调用回来。

exchange.IO(“status”)函数调用时回来true,表示与期货公司前置机现已衔接(而且正常登录)。

exchange.IO(“status”)函数调用时回来false,表示与期货公司前置机未衔接。原因可能是:

1、未到开盘时刻,期货公司前置机服务器并未敞开。

2、账户密码装备过错,这时有过错日志输出,参看前几篇文章中提及的内容。

3、认证失败,装备的期货公司未看穿式认证,这时也有过错日志输出。

4、网络原因,IP地址过错、端口过错等,伴随过错日志输出。

这儿就很简单了解这个程序逻辑结构了:

整个产品期货战略结构便是:

从战略代码的主函数,也便是main函数开端履行。首要遇到了一个while循环,而且循环的条件恒定为真值。所以这个循环会不停的履行。每次履行这个循环的循环体代码时,会运用if句子进行判别,经过exchange.IO(“status”)函数调用时回来的值来确认体系与期货公司前置机服务器的衔接以及登录状况(exchange.IO(“status”)是固定写法能够死记硬背!)。假如exchange.IO(“status”)函数回来了true则履行对应的if代码块内的代码。假如回来了false则履行对应的else代码块内的代码。

exchange.SetContractType设置合约函数

接着咱们看看假如和期货公司前置机服务器衔接上之后要做点什么操作。当exchange.IO(“status”)函数调用回来true时程序的履行流程就进入了if句子对应的代码块,这时现已确认了和期货公司前置机通信衔接正常。能够履行获取行情、下单等操作。可是请想一想咱们做这些操作是不是需求有个方针,简略说便是要对哪个合约做下单操作?获取哪个合约的行情?

这儿咱们就要学习到一个新的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买卖所方针的成员函数。作用是获取当时的实时行情数据,数据结构为:

varticker=exchange.GetTicker这行代码调用了GetTicker函数获取当时实时行情赋值给声明的ticker变量。

Log(“MA000ticker:”,ticker)

Log函数运用起来也很简略。其作用便是输出传入的参数在实盘的日志区域。

Log函数用于把一些认为关键的信息在实盘日志中输出,也常用于调试战略程序,调查剖析程序中的数据。这儿咱们履行的Log(“MA000ticker:”,ticker)函数,其中传入了2个参数。第一个参数是一个字符串MA000ticker:,第二个参数是被赋值后的ticker变量。

运转时输出的日志如下图:

LogStatus和_D函数

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

至于LogStatus函数还有很多风趣的用法,目前能够暂时先了解到此。(有爱好的能够查看API文档自行提早学习:https://www.fmz.com/api#logstatusmsg)

那么_D函数是做什么用的呢?

_D函数用途也十分简略,假如不传入参数便是回来一个当时的时刻字符串,通常是用来打印当时时刻便利调查。

回测测验

至此,以上这段代码从全体到细节咱们都剖析了一遍。前几篇内容中也提过,其实咱们在FMZ上学习的时候能够充分利用FMZ渠道的回测体系学习战略规划、编程言语语法,乃至提高自己的DEBUG才能(排错才能)。以上代码也能够在回测体系中运转。

设置好之后,点击开端回测按钮战略就在回测体系中运转起来了。

当然,这个战略代码比如仅仅是在判别实盘程序和exchange对应的期货公司前置机衔接之后,设置exchange方针当时操作的合约为MA000即甲醇指数合约,然后打印实时行情数据。在未衔接的状况下,仅仅在状况栏上输出时刻和

此时快讯

【Hive变更公司名称取消“区块链”字眼】金色财经报道,加密数字货币矿商Hive变更公司名称,从中取消“区块链”字眼,以期追逐人工智能热潮。

版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:商品期货程序化交易的零基础入门(3) | 币百度

相关文章