顯示具有 下單機相關 標籤的文章。 顯示所有文章
顯示具有 下單機相關 標籤的文章。 顯示所有文章

2012年5月23日 星期三

日盛-API 應用程式介紹

備份資料
http://ffbbhh.pixnet.net/blog/post/25375120-%E6%97%A5%E7%9B%9Bapi--%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E4%BB%8B%E9%9D%A2%E4%BB%8B%E7%B4%B9



下單前說明:

1.您必須擁有日盛期貨帳號,若沒有期貨帳號,請至日盛期貨開戶。
請務必下載HTS最新版本,並重新安裝 (舊版可能導致慢盤&送單延遲的風險)

2.此外,您必須確認已經安裝期貨商發給您的[中繼憑證]及[數位憑證] ,
若要匯出憑證,以日盛期貨爲例,請先登入日盛期貨的網頁,選擇"備份憑證",將憑證輸出成檔案存在電腦中,
以後只要開啓該檔案,就可以依照指示匯入憑證


01.配合HTS下單交易API程式,因此需安裝較新版本之HTS(程式會檢查並提示)
02.此一程式執行環境需事先安裝.NET Framework 2.0以上版本


(如無安裝.NET,程式啟動時會發生錯誤)
下載安裝網址


http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5





























HTS API使用說明






1. 簡介


API(Application Programming Interface)簡稱應用程式設計介面,


此介面提供事先預定的函數讓外部程式呼叫,


以與應用程式溝通或使用其服務.


HTS API 是以單一DLL(Dynamic Linked Library,


即HTSAPITradeClient.dll)形式提供


函數讓外部程式呼叫HTS 應用程式的下單核心服務.


交易員及程式設計師可使用開發工具(VB/VC++/Delphi/.Net/Excel等)


設計自己特製的下單應用程式(即個人下單機)


直接呼叫HTS API 或利用程式交易軟體(STS/Tradestation/MetaStock...等)產生買賣訊號後,


再直接呼叫HTS API 間接讀檔方式進行下單動作.






2. 架構


對整體下單軟體架構的了解將有助於後續的應用程式開發工作.










應用程式呼叫HTS API(即HTSAPITradeClient.dll)


内的函數將下單指令字串送給API


Trade Manager(即APITradeMgr.exe)進行字串語法檢核.


API Trade Manager 負責將正確的下單指令字串轉換成正式下單指令.


接著HTS 下單核心進行憑證檢查及憑證簽章後,


送給後台主機處理.


3. 程式設計


3.1 前置作業


請先正式登入HTS 成功後, 執行API Trade Manager(位於\HTS 安裝目錄\APITradeMgr.exe).

















3.2 API 函數說明


目前HTSAPITradeClient.dll 提供一個下單函數:


HTSOrder


Argument: string 下單指令字串


Return: none 無


Delphi Pascal 語言使用宣告為:


procedure HTSOrder(sOrderTokens: LPSTR); stdcall;


Tradestation 的PowerEditor EasyLanguage 使用宣告為:


DefineDLLFunc: "C:\JihSun\HTS2\DLL\HTSAPITradeClient.dll", void,"HTSOrder",


LPSTR;


唯一參數為下單指令字串, 語法規格如下表.

















範例1: 期貨下單字串


Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=200808,OpenClose


Auto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=R,DayTrade=N






範例2: 選擇權下單


Market=O,Account=A01-1234567,ContractName=TXO,ContractDate=200808,CallPut=C


,StrikePrice=8000,OpenCloseAuto=O,BuySell=B,Lots=1,OrderType=L,Price=88,Fok


IocRod=R










3.3 函數呼叫






Delphi Pascal 語言:


HTSOrder(pansichar(`Market=F,Account=A01-1234567,ContractName=TXF,Contract


Date=200808,OpenCloseAuto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRo


d=R,DayTrade=N'));


Tradestation EasyLanguage:


HTSOrder(“Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=20080


8,OpenCloseAuto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=R,DayTr


ade=N");






4. 執行結果






C# 載入日盛 HTS API 的 DLL 檔

備份資料
http://percyy-buy.blogspot.com/2009/07/c-hts-api-dll.html


using System.Runtime.InteropServices;

namespace Strategy
{
 class Program
 {
  [DllImport(@"C:\JihSun\HTS2\Dll\HTSAPITradeClient.dll") ]
  static extern void HTSOrder( [MarshalAs(UnmanagedType.LPStr)] String msg );

  static void Main(string[] args)
  {
   String msg = "下單字串"; // 字串內容見以下說明
   HTSOrder( msg );
  }
 }
}

HTS API 以 DLL 形式,提供函數讓程式呼叫來下單
 DLL 預設位置在 C:\JihSun\HTS2\Dll\HTSAPITradeClient.dll

API 函數:HTSOrder
 argument: string // 下單指令字串
 return: none

下單指令字串範例:
 Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=200808,
 OpenCloseAuto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=R,DayTrade=N


在Excel中呼叫日盛HTS API

備份資料
拖稿拖很久了阿...

這大概是2月就學問過菜籃的玩意了。

然後拖到現在,越來越懶了~

想搞這個主要是想看有沒有辦法可以讓人工下單更快。

有機會的話也許可以抓到一點套利機會。

不過套利大概只是作白日夢~

讓下單更快倒是可能作到。


日盛在HTS寫了一個HTSAPITradeClient.dll

每個HTS都有。

只要用 Excel VBA 把這個 dll 叫醒

就可以在 Excel 作下單動作

不過個人VBA不是很熟,用的方法都有點蠢。

所以有需要的就湊合著用吧。


首先:

先建立一個資料夾,把 HTSAPITradeClient.dll 丟進去

然後在建立一個Excel

C# 在 64-bit 平台載入 32-bit DLL 出錯 (0x8007000B)


備份資料
環境:
C#
Microsoft Visual Studio 2008
Microsoft Vista Enterprise 64-bit

在 C# 程式碼中,載入 32-bit DLL,編譯時出現錯誤:
未處理的例外狀況: System.BadImageFormatException: 試圖載入格式錯誤的程式。
(發生例外狀況於 HRESULT: 0x8007000B)