【零基礎】易盛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很可能就是這個問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM