zoukankan      html  css  js  c++  java
  • 【零基础】易盛9.0API入门一:搞定开发环境(linux)

    一、前言

      开始研究API了,远期目标是实现极星量化(python)运行策略,但下单通过API(C++)下单,在API上做一些简单的功能,比如条件单、止盈止损、套利等,极星量化跑策略向API下指令交易。这样做似乎有点脱了裤子放屁的感觉,但不失为一种新的尝试。

      本篇就先搞定开发环境的问题,由于一个很奇葩的原因,这里就只研究linux下的开发环境,我使用的是centos6.7。

      (因为我电脑上开发工具是VC++6.0只支持32位,但API开发包说是有32和64,实际运行发现只有64位的,所以干脆到linux环境下开发好了,反正早晚都是linux跑)

    二、API开发包

      易盛API分为内盘、外盘两类,又有行情和交易两种。下载地址为:

      http://www.esunny.com.cn/index.php?a=lists&catid=49

      

      乍一看有点懵啊,实际上最上面两个“8.0API、启明星API”是内盘使用的,“3.0、9.0”是外盘使用的。9.0API又分为行情和交易两个包,都下载下来先。

      

       tradeapi是交易包、TapQuoteAPI是行情包,我们先看看交易包。

      

       第一个目录“9.0apidemo”是官方的示例代码,第二个目录“iTapTradeApi9.3.3.2”是API的lib目录,开发时就要把lib目录下的.so文件引入到工程里就可以使用API了。 

      在“iTapTradeApi9.3.3.2”目录内有.h文件和.so文件,.h文件是代码中需要include的(申明了哪些函数可以使用),而.so文件就是lib文件(里面是函数的具体实现)。

    三、准备测试代码

      我们先写一段测试代码

      引入的头文件中,“stdio.h”、“string.h”、“iostream”是系统自带的库用以做字符输入输出、字符串处理等。“iTapTradeAPI.h”、“iTapAPIError.h”就是易盛API的头文件了。

      using namespace std是为了使用字符串处理函数,而using namespace ITapTrade则是要使用易盛API内的一些函数,using namespace后用起来便捷。

      代码里主要就是使用了一个GetITapTradeAPIVersion()函数,这个函数在API内有定义,如果能正常使用则开发环境就准备好了。

    四、准备开发环境

      1、安装gcc-c++

      yum install -y gcc

      yum install -y gcc-c++

      2、准备lib

      在任意目录下新建一个API目录(我的是/root/API),将前面提过的.so文件全部放进去

      我这个目录里多了一些文件不用关心,确保下面这几个文件放进去了就行。

       然后在“/etc/ld.so.conf.d”新建api.conf文件,写入下面的内容:

       这一步的作用是将.so文件加入到动态链接库内,接着执行“/sbin/ldconfig”使配置生效。

    五、测试代码

      将前面说的测试代码写到任意文件内,我这里是“test.c”,然后将API的.h文件跟test.c放一起。

      接着写“Makefile”的内容

      vi Makefile

      其中-L指明了.so文件的目录,-l指明了编译时引入的库

       而后直接在test.c所在目录执行“make”即可

       上述步骤只是编译出了可执行文件“test”,接着执行./test即可

       测试成功

    六、回顾

      这里一定要注意的是lib的使用,在linux环境下编译和运行的lib是分开的,在g++指令中使用-L、-l参数可以指明编译的lib,但运行时的lib却在/etc/ld.so.conf.d中指明。如果出现 error while loading shared libraries很可能就是这个问题。

  • 相关阅读:
    迷你图标集大集合:5000+ 30套免费的图标(不得不下,设计必备)
    Github简介
    Sublime Text 3 文本编辑器
    FusionCharts V3图表导出图片和PDF属性说明(转)
    FusionCharts参数的详细说明和功能特性(转)
    SQL 数据结构操作语句
    SQL Server 2008 各种DateTime的取值范围
    Datagrid数据导出到excel文件的三种方法
    开发环境
    如何利用ThoughtWorks.QRCode 生成二维码
  • 原文地址:https://www.cnblogs.com/cation/p/12508999.html
Copyright © 2011-2022 走看看