盛 HTS API

 

版本:V2.00.0 

 http://www.hts.com.tw/FramePage_API.asp

 

常見錯誤:KFutOrdAP.ocx

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架構

 

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

API日盛期貨自動下單  

 

 

應用程式呼叫 HTS API(即 HTSAPITradeClient.dll)内的函數將下單指令字串送給

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

 

 

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

接著 HTS 下單核心進行憑證檢查及憑證簽章後送給後台主機處理.

 

 

3程式設計

 

3.1 前置作

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

\APITradeMgr.exe).

日盛期貨API下單機  

 

:目前版本為 V2.00.0

 

 

3.2 AP函數及功能說明

3.2.1下單函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;

 

 

期貨及期權下單指令字串規格如下表.

 

欄位

說明.

期貨

選擇權

Market

期貨:F期權:O

O

O

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方期貨帳號列表 取得

O

O

ContractName

期貨:TXF,FXF,EXF,MXF,T5F,XIF,GTF,TGF

期權:TXO,TFO,TEO,XIO,GTO

O

O

ContractDate

商品年月:yyyymm

O

O

CallPut

Call:C, Put:P

X

O

StrikePrice

履約價.

X

O

OpenCloseAuto

倉別. Open:O, Close:C, Auto:A

期貨:O,C,A

期權:O,C

O

O

BuySell

買賣別. Buy:B, Sell:S

O

O

Lots

口數.

O

O

OrderType

價格別限價:L市價:M

O

O

Price

價格市價單可不給值或給 0

O

O

FokIocRod

委託別. FOK:F, IOC:I, ROD:R

O

O

DayTrade

當沖. Yes:Y, No:N

O

X

: O 表必需欄位值, X 表無需要

 

範例 1: 期貨下單字串

Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=200808,OpenCloseAto=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,SrikePrice=8000,OpenCloseAuto=O,BuySell=B,Lots=1,OrderType=L,Price=88,FokIocRod= R 

 

3.2.2未平倉查詢函數 

 

 

HTSCurContract 

Argument: string       查詢指令字串 

Return: integer          未平倉量

 

(Return -1:處理逾時,-2:參數錯誤,-3:不允許密集查詢,-4:處理中)

 

 

Delphi Pascal 語言使用宣告為:

function HTSCurContract(sOuery: LPSTR):Integer; stdcall;

 

Tradestation 的 PowerEditor EasyLanguage 使用宣告為:

DefineDLLFunc: "C:\JihSun\HTS2\DLL\HTSAPITradeClient.dll", int, "HTSCurContract", LPSTR;

 

期貨及期權查詢指令字串規格如下表.

 

 

欄位

說明.

期貨

選擇權

Market

期貨:F期權:O

O

O

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方帳號列表取得

O

O

ContractName

期貨:TXF,FXF,EXF,MXF,T5F,XIF,GTF,TGF

期權:TXO,TFO,TEO,XIO,GTO

O

O

ContractDate

商品年月:yyyymm

O

O

CallPut

Call:C, Put:P

X

O

StrikePrice

履約價.

X

O

BuySell

買賣別. Buy:B, Sell:S

O

O

: O 表必需欄位值, X 表無需要

 

 

範例 1: 期貨查詢字串

Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=201001,BuySell=B

 

 

範例 2: 選擇權查詢字串

Market=O,Account=A01-1234567,ContractName=TXO,ContractDate=201001,CallPut=C,St rikePrice=9000,BuySell=B

 

3.2.3委託成交回報回補函數

 

 

期貨及期權

 

 

HTSReportFutOpt

Argument1: string  查詢指令字串

Argument2: integer 接收回補資料字串的視窗 Handle

Return: integer          狀態

 

(Return 0:正常,-2:參數錯誤,-4:處理中)

 

 

 

Delphi Pascal 語言使用宣告為:

function HTSReportFutOpt(sOuery: LPSTR; iRecWin: Integer):Integer;

stdcall;

 

參數 為查詢指令字串語法規格如下表.

 

 

欄位

說明.

期貨

選擇權

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方期貨帳號列表 取得

O

O

: O 表必需欄位值, X 表無需要

參數 為接收 WM_COPYDATA 訊息的視窗 Handle. 回補資料字串格式及欄位順序如下,  欄位間以空白分隔(可參考 HTS 7402): 格式一:

未成交委託(=1)++買賣別+商品+委託價+原委託+成交均價+已成交+已取

+可交易量

 

 

格式二:

已成交委託(=2) ++買賣別+商品+委託價+原委託+成交均價+已成交+已取 消+可交易量

 

格式三:

被拒絕委託(=3) ++買賣別+商品+委託價+原委託+原因

 

 

3.2.4委託成交即時回報函數

 

 

期貨及期權

 

 

HTSReportFutOptRT

Argument1: string  查詢指令字串

Argument2: integer 接收即時資料字串的視窗 Handle

Return: integer          狀態

 

(Return 0:正常,-2:參數錯誤,-4:處理中)

 

 

Delphi Pascal 語言使用宣告為:

function HTSReportFutOptRT(sOuery: LPSTR; iRecWin: Integer):Integer;

stdcall;

 

參數 為查詢指令字串語法規格如下表.

 

 

欄位

說明.

期貨

選擇權

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方帳號列表取得

O

O

: O 表必需欄位值, X 表無需要

 

 

參數 為接收 WM_COPYDATA 訊息的視窗 Handle.

 

 

即時資料內容為 API Trade Manager 送單紀錄欄位字串格式及欄位順序如下,

欄位間以垂直|分隔( V2.00.0 )

 

 

格式(V2.00.0 序號+時間+種類+帳號+送單狀態+委託編號+商品+月份+倉別+買賣+數量+價格 別+價格+委託別+當沖+送單結果

3.2.5減量函: (V2.00.0 HTSOrderMinus

Argument: string       減量指令字串

Return: none             

 

 

Delphi Pascal 語言使用宣告為:

procedure HTSOrderMinus(sOrderTokens: LPSTR); stdcall;

 

Tradestation 的 PowerEditor EasyLanguage 使用宣告為:

DefineDLLFunc: "C:\JihSun\HTS2\DLL\HTSAPITradeClient.dll", void, "HTSOrderMinus", LPSTR;

 

期貨及期權減量指令字串規格如下表.

 

 

欄位

說明.

期貨

選擇權

 

Market

期貨:F期權:O

O

O

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方期貨帳號列表 取得

O

O

ContractName

期貨:TXF,FXF,EXF,MXF,T5F,XIF,GTF,TGF

期權:TXO,TFO,TEO,XIO,GTO

O

O

ContractDate

商品年月:yyyymm

O

O

CallPut

Call:C, Put:P

X

O

StrikePrice

履約價.

X

O

OrderID

委託編號.

O

O

Lots

口數.

O

O

:  委託編號可由 API Trade Manager 下方送單紀錄視窗內取得或呼叫

HTSReportFutOptRT 函數取得

 

 

範例 1: 期貨減量

Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=201012,OrderID=

01123456,Lots=1

 

 

範例 2: 選擇權減量

Market=O,Account=A01-1234567,ContractName=TXO,ContractDate=201012,CallPut=C,St rikePrice=8000,OrderID=01123456,Lots=1

 

3.2.6改價函: (V2.00.0 )

 

 

HTSOrderChgPrice

Argument: string       改價指令字串

Return: none             

 

 

Delphi Pascal 語言使用宣告為:

procedure HTSOrderChgPrice(sOrderTokens: LPSTR); stdcall;

 

Tradestation 的 PowerEditor EasyLanguage 使用宣告為:

DefineDLLFunc: "C:\JihSun\HTS2\DLL\HTSAPITradeClient.dll", void, "HTSOrderChgPrice", LPSTR;

 

期貨及期權改價指令字串規格如下表.

 

 

欄位

說明.

期貨

選擇權

 

Market

期貨:F期權:O

O

O

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方期貨帳號列表 取得

O

O

ContractName

期貨:TXF,FXF,EXF,MXF,T5F,XIF,GTF,TGF

期權:TXO,TFO,TEO,XIO,GTO

O

O

ContractDate

商品年月:yyyymm

O

O

CallPut

Call:C, Put:P

X

O

StrikePrice

履約價.

X

O

OrderID

委託編號.

O

O

Lots

口數.

O

O

OrderType

價格別限價:L市價:M

O

O

Price

價格市價單可不給值或給 0

O

O

FokIocRod

委託別. FOK:F, IOC:I, ROD:R

O

O

:  委託編號可由 API Trade Manager 下方送單紀錄視窗內取得或呼叫

HTSReportFutOptRT 函數取得

 

 

範例 1: 期貨改價

Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=201012,OrderID=

01123456,Lots=1,OrderType=L,Price=8888,FokIocRod=R

 

 

範例 2: 選擇權改價

Market=O,Account=A01-1234567,ContractName=TXO,ContractDate=201012,CallPut=C,St rikePrice=8000,OrderID=01123456,Lots=1,OrderType=L,Price=88,FokIocRod=R

 

3.2.7投資現況函數: (V2.00.0 )

 

 

HTSAcntInfoFutOpt

Argument1: string  查詢指令字串

Argument2: integer 接收回補資料字串的視窗 Handle

Return: integer          狀態

(Return 0:正常,-2:參數錯誤,-4:處理中)

 

 

Delphi Pascal 語言使用宣告為:

function HTSAcntInfoFutOpt(sOuery: LPSTR; iRecWin: Integer):Integer;

stdcall;

 

參數 為查詢指令字串語法規格如下表.

 

 

欄位

說明.

期貨

選擇權

Account

交易帳號:123-1234567(分公司 3-帳號 7)

可由 API Trade Manager 右上方期貨帳號列表 取得

O

O

: O 表必需欄位值, X 表無需要

參數 為接收 WM_COPYDATA 訊息的視窗 Handle. 回補資料字串格式及欄位順序如下,  欄位間以空白分隔(可參考 HTS 7404): 格式:

結算狀態+維持率+帳戶權益+今日存提款+可用餘額+期貨平倉損益+始保証金

+維持保証金+期貨浮動損益+權利金+預扣權利金+買方市值+賣方市值+前日權 益+前日餘額+總手續費+總交易稅+權益總值+總權益維持率+足額總維持率+前 日權益總值

 

範例:

結算狀態=未結帳  維持率=*********% 帳戶權益=100447563 今日存提款=可 用餘額=100447563 期貨平倉損益=原始保証金=維持保証金=0  期貨浮動損 益=權利金=0  預扣權利金=買方市值=方市值=前日權益=100447563 前日餘額=100447563 總手續費=0  總交易稅=權益總值=100447563 總權益維 持率=*********% 額總維持率=*********%  前日權益總值=100447563

 

 

3.2.8 下單次數控管功能: ( V2.00.0 )

 

 

 

 

 

程式初始預設不啟用下單次數控管功能需手動勾選右方啟用選擇.

 

 

每分鐘最大 次下單及每日最大 20 次下單亦可隨時手動上下調整最大下單次 數,  設定確認後會立即生效且系統會自動累計且紀錄當日已下單次數若判斷 超過每日最大下單次數則會停止正式下單此時可立即手動上調每日最大下單 次數,  以利後續正式下單動作.

 

 

每分鐘最大下單次數限制是依帳號分別獨立計算收到第一筆單開始計時於此 一分鐘內只接受所設定下單次數超過部份將被拒絕需待下一分鐘起且有收到

 

單後才開始計時.

 

 

 API日盛期貨  

 

 

 

 

3.3  函數呼

 

 

3.3.1下單函

 

 

期貨及期權

 

 

Delphi Pascal 語言:

HTSOrder(pansichar(‘Market=F,Account=A01-1234567,ContractName=TXF,ContractD ate=201001,OpenCloseAuto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=RDayTrade=N’));

 

 

Tradestation EasyLanguage:

HTSOrder(Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=201001OpenCloseAuto=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=R,DayTradeN”);

 

3.3.2未平倉查詢函數

 

 

Delphi Pascal 語言:

 

 

期貨:

HTSCurContract(pansichar(‘Market=F,Account=A01-1234567,ContractName=TXF,Co ntractDate=201001,BuySell=B));

 

期權:

HTSCurContract(pansichar(‘Market=O,Account=A01-1234567,ContractName=TXO,C

 

ontractDate=201001,CallPut=C,StrikePrice=9000,BuySell=B));

 

 

3.3.3委託成交回報回補函數

 

 

Delphi Pascal 語言:

 

 

期貨/期權:

recHandle := FindWindow(PChar('TReceiverForm'),PChar('ReceiverForm'));

HTSReportFutOpt(pansichar(‘Account=A01-1234567’)Integer(recHandle));

 

 

3.3.4委託成交即時回報函數

 

 

Delphi Pascal 語言:

 

 

期貨/期權:

recHandle := FindWindow(PChar('TReceiverForm'),PChar('ReceiverForm'));

HTSReportFutOptRT(pansichar(‘Account=A01-1234567’)Integer(recHandle));

 

 

3.3.5減量函(V2.00.0 )

 

 

期貨及期權

 

 

Delphi Pascal 語言:

HTSOrderMinus(pansichar(‘Market=F,Account=A01-1234567,ContractName=TXF,CntractDate=201012,OrderID01123456,Lots=1));

 

 

Tradestation EasyLanguage:

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

201012,OrderID01123456,Lots=1);

 

 

3.3.6改價函(V2.00.0 )

 

 

期貨及期權

 

 

Delphi Pascal 語言:

HTSOrderChgPrice(pansichar(‘Market=F,Account=A01-1234567,ContractName=TXF,

ContractDate=201012,OrderID=01123456,Lots=1,OrderType=L,Price=8888,FokIocRod=R’)

);

 

 

Tradestation EasyLanguage:

HTSOrderChgPrice(Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=

201012,OrderID01123456,Lots=1,OrderType=L,Price=8888,FokIocRod=R”);

 

 

3.3.7投資現況函數: (V2.00.0 )

 

 

期貨及期權

 

 

Delphi Pascal 語言:

recHandle := FindWindow(PChar('TReceiverForm'),PChar('ReceiverForm'));

HTSAcntInfoFutOpt(pansichar(‘Account=A01-1234567’)Integer(recHandle));

 

 

4執行結果

API日盛期貨下單第四點確認  

 

 其他推薦站內聯結

 

日盛期貨開戶手續費優惠+語法翻譯機+程式交易系統教學+懶人包+移動停損等多項好禮

日盛期貨程式交易語法翻譯機

日盛期貨預約開戶

文章標籤
創作者介紹

日盛期貨開戶手續費優惠 程式交易系統教學-日盛期貨Leo

日盛期貨程式交易 發表在 痞客邦 PIXNET 留言(0) 人氣()