易盛api java对接_【零基础】易盛9.0API入门三:下单并查询订单状态

一、前言

前面我们搞定了系统环境和账户登陆,写的有点乱所以这里我们先把前面的梳理一遍,然后试试下个单并获取订单的成交情况。

二、环境安装回顾

1、我们使用的是linux系统(centos6.5)

2、安装gcc和gcc-c++(编译和运行C++)

3、下载API包,iTapTradeApi是交易API,我们目前只需要交易API

4、在你的项目目录里新建代码文件test.c(比如/root)

5、在项目目录里新建一个API目录用于存放iTapTradeApi(交易API)的.so文件,并将其加入动态链接库

6、将iTapTradeApi(交易API)的.h文件放到项目目录中

7、新建一个MakeFile文件用以设置编译的参数

最后的结果应该是下面这样:

6cfb99641b4ea0e7f9057a34b8aacc3d.png

8c5565204f498b39ed4018ab17ceef19.png

二、账户登录回顾

1、首先我们要继承ITapTradeAPINotify实现一个Trade类,这个类就是消息回调的接口。实现Trade类时需要按ITapTradeAPINotify的结构对所有消息回调接口进行实现。后面有消息触发就会执行对应消息接口内的代码,比如登陆成功就会执行OnRspLogin内的代码。

0f3d4c70ab77189cdeff6efd51719489.png

2、使用CreateITapTradeAPI创建API实例

fe0dc1e677830fb459e861307a315c6b.png

3、将API实例与消息回调接口进行关联。

f402246ecadb597f0405422092f09c39.png

4、后面使用pAPI做操作,objTrade处理回调的消息,就形成了完美的闭环。

三、登陆后立即下单并周期性查询订单状态

1、状态判断

登陆成功后先是触发OnRspLogin,接着触发OnAPIReady,这时API才真正准备好了。此时我们就可以用pAPI来下单了,但是我们晓得有消息回调时触发的是objTrade所以如何通知pAPI可以下单是个问题,办法很多,这里我们可以简单使用一个FLAG来识别API是否准备好。

我在objTrade中定义了一个statusFlag,通过修改其值来记录当前的状态。

statusFlag = 0 默认情况

statusFlag = 1 API已准备好可以下单

statusFlag = 2 已下单等待委托的成交回报

statusFlag = 3 已成交

statusFlag = 4 啥也不做

statusFlag = -1 出现异常

接着在while循环中判断statusFlag的状态即可。

070bf12aa02ed0d29e45fecf31532e6a.png

2、API准备就绪

在objTrade中新增了statusFlag用来记录状态,在API准备好时修改值为1,while循环中查询到值变为1时就会发送订单。

2e47675fe120f299c4ba2dbbd0abc5ca.png

3、下单操作

为了便于操作,我将pAPI传递给了objTrade,然后objTrade里新增了一个下单的函数SendOrder

92553305882ffc81ba771c34aafcdd04.png

e25190997c713dfd143761e9549d6b1c.png

4、等待成交消息

为了确保成交,我设置的价格比较高。成交消息是OnRtnFill,在里面将statusFlag设置为3即可。

d41b80d33327dbd38634d0ee5d99663a.png

5、运行结果

24659b7c0cabf9e2935e6d091c7afbce.png

59eb1a581525af3fa7a9bf4056072744.png

我使用的是自己的模拟账号,你们也可以换用自己的账号。不过只有模拟账号可以用,实盘需要另外申请授权才行。

四、总结

从登录到下单其实都不难,真正有难度的是整个逻辑闭环如何整合起来,后面我会试试写一个完整的案例,从案例解析到代码实现搞一遍,这样大家搬运去用也不费力气了。本篇的完整代码:

https://share.weiyun.com/0I7HdB69

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值