制作服务器的用途是什么(本身制作服务器主机)「制作服务器需要什么」

接着上篇文章我们继承学习。

制作服务器的用途是什么(自己制作服务器主机) 制作服务器的用途是什么(本身
制作服务器主机)「制作服务器需要什么」 行业资讯

全部操纵的条件--和期货公司前置机毗连

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.cn/api#logstatusmsg)

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

_D()函数用途也非常简单,假如不传入参数就是返回一个当前的时间字符串,通常是用来打印当前时间方便观察。

回测测试

至此,以上这段代码从团体到细节我们都分析了一遍。前几篇内容中也提过,着实我们在FMZ上学习的时间可以充实利用FMZ平台的回测体系学习战略计划、编程语言语法,乃至提拔本身的DEBUG本领(排错本领)。以上代码也可以在回测体系中运行。

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

固然,这个战略代码例子仅仅是在判定实盘程序和exchange对应的期货公司前置机毗连之后,设置exchange对象当前操纵的合约为MA000即甲醇指数合约,然后打印及时行情数据。在未毗连的状态下,仅仅在状态栏上输出时间和未毗连CTP!。固然,这些和期货公司毗连之类的机制在回测体系中都是模仿的,为了让战略的回测和实盘在计划上只管保持同等。

客户评论

我要评论