COCO研究院

 找回密碼
 註冊
搜索
查看: 27248|回復: 10

[API] 群益策略王報價函式庫(報價API)使用說明

[複製鏈接]
發表於 10-1-7 10:30 | 顯示全部樓層 |閱讀模式
這是vito27216大大傳給我的資料,
滿好的。不知道是否比DDE快速穩定。
如果有人試用,再把心得告訴大家喔。

本文件有word及ppt說明,
還有ini、dll檔及excel使用範例。
------------------

策略王報價函式庫使用說明
1、說明:

報價函式庫主要提供市場即時報價功能,商品包括證券、期貨以及選擇權。欲使用此項元件功能,必須先填寫申請表單,經過權限開放後方可使用,否則將會得到錯誤代碼為SK_ERROR_PERMISSION_DENIED 的錯誤。

2、環境設定

所需要的檔案包括:

$Install\Data\Stock.dat
商品名稱定義

$Install\SKQuoteLib.dll
報價函式庫核心檔案

$Install\Config.ini
環境設定檔

2.1 Stock.dat

當每次報價連線後,會針對 Stock.dat 內遺漏的商品做下載名稱的動作,因此每次程式結束會自動更新檔案內容,如果此檔案遺漏,將會在初次連線下載全部市場的商品名稱,重新建立,因此將會導致初始的時間有所延遲的現象。

2.2 Config.ini

檔案主要設定函式庫程式的重要設定,設定內容初始如下:

[version]

id=2.08.10

[Servers]

0=order2.capital.com.tw

#1=order3.capital.com.tw

[debug]

enable=1

file=C:\Source\SKOrderLib\Test\ObjectTester\debug.log

[Version] 區段主要為告知「使用者認證伺服器」目前使用軟體的版本編號,隨著程式的不斷修正或擴增功能,使用者的函式庫版本可能因異動而導致無法使用,因此「使用者認證伺服器」將會依照此序號做檢查的依據,如果版本過舊,伺服器將拒絕函式庫的使用。

因此發現函式庫無法使用,可以試著調整此序號繼續使用,但是建議先和群益相關人員洽詢,取得最新的版本,避免因為版本的不一致,導致產生問題。

[Servers] 區段主要放置「使用者認證伺服器」的位址。

[debug] 區段只要設定是否開啟除錯模式,以及除錯記錄的檔案位置與檔名。



---------然後下面很多圖,綠茶跳過,詳情請看word檔的說明------

Excel報價範例.zip

609.71 KB, 下載次數: 2394

發表於 10-2-3 23:47 | 顯示全部樓層
回復 4# 綠茶妹


    Thank you !!
 樓主| 發表於 10-1-7 10:30 | 顯示全部樓層
3.函式說明

        注意,函式中所取回的價格都未經過小數點處理,例如1101 價格為 34.5」,則函式所傳回的價格為「3450」,因此使用者所開發的程式則必須接手處理。目前證券報價固定為 2 位小數,期貨、選擇權部份商品報價為3位小數,因此,可以從 TStock 物件的內容找到
m_sDecimal
的欄位,此欄位即定義該檔報價所必需呈現的小數位數。詳細 TStock 物件說明,請參考後續說明。


int __stdcall SKQuoteLib_GetVersion( [out] char* lpszVersion, [in,out] int* pnSize)

說明:

            取得函式庫版本編號。

參數:


lpszVersion
填入目前的版本值。


pnSize
帶入lpszVersion可填入的大小,回傳時內容為 lpszVersion 的字串長度。

回傳值:


SK_SUCCESS
表示成功。


int __stdcall SKQuoteLib_Initialize( [in]char* lpszLoginID, [in]char* lpszPassword)

說明:

            初始函式庫物件,同時向「使用者驗證伺服器」確認使用者資訊,確認是否有權限執行此函式庫。

參數:


lpszLoginID
使用者登入帳號。


lpszPassword
密碼。

回傳值:


SK_SUCCESS (0)
,表示初始化成功,其餘非0數值都表示初始失敗。


SK_ERROR_PERMISSION_DENIED
表示使用者權限不足,尚未開啟使用權限。


SK_ERROR_INITIALIZE_FAIL
請檢查config.ini 驗證伺服器網址設定是否正確。

            


int __stdcall SKQuoteLib_EnterMonitor()

說明:

            與報價伺服器建立連線。


參數:

            


回傳值:


SK_SUCCESS
表示成功,等待 Connection Call Back function 回傳處理結果。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_FAIL
表示進行連線發生不明錯誤。




int __stdcall SKQuoteLib_LeaveMonitor()

說明:

            中斷報價伺服器連線。


參數:

            無。


回傳值:


SK_SUCCESS
表示成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_ERROR_SERVER_NOT_CONNECTED
表示尚未與伺服器做連線動作。

            其餘非0代碼表示其他未知錯誤原因。




int __stdcall SKQuoteLib_RequestStocks( [in,out] short* psPageNo, [in]TCHAR* pStockNos)

說明:

            要求伺服器針對 pStockNos 內的商品代號做報價通知動作。


參數:


psPageNo
每一次送出要求報價的動作都需要向報價伺服器指定一個特定的 Page 編號,伺服器會以編號當作Key值維護每一次送出不同的商品代號。當要變更某一 Page 索取報價的內容,即重複使用相同的 Page 編號,即可取消之前索取的內容,以新的內容取代。當psPageNo=-1時帶入,函式庫會指定一個新的編號,並回傳給呼叫端。Page 的範圍為 1~49,每一 Page 最大100檔。當代入 Page 50 則會取消該檔的報價。


pStockNos
為索取的商品股票代號,一筆以上的資料時,每檔股票代號以”,”做區隔。

            舉例說明:


psPageNo = -1
時,pStockNos = “1101,1102,1103,1104,1108,1109,1110”,表示向伺服器索取這七檔股票的報價。如果是第一次執行,則 psPageNo 將會是回傳1,表示這次的索取是用Page 編號為 1 Page

            當想要取消這七檔的股票,改換其他股票時,則:


psPageNo = 1
pStockNos = “ bla bla…What you want” 帶入即可。


            如果目前用的 Page 僅有 3 頁,但是帶入的 Page>3,則會新增一頁並取代,即回傳 Page=4

            如果帶入的股票數超過100檔,則僅以100檔處理,並不會回傳錯誤。

            如果帶入的股票代號不存在,則會直接略過不處理,也不會回傳錯誤。


回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_SUBJECT_QUOTE_PAGE_EXCEED
表示帶入的 Page 超過極限範圍。


SK_SUBJECT_QUOTE_PAGE_INCORRECT
表示帶入的 Page 不正確,可能為負值。


SK_SUBJECT_CONNECTION_DISCONNECT
表示報價連線已經斷線了。




int __stdcall SKQuoteLib_RequestTicks( [in,out]short* psPageNo, [in]TCHAR* pStockNo)

說明:

            要求傳送成交明細以及五檔。


參數:


psPageNo
每一次送出要求成交明細的動作都需要向報價伺服器指定一個特定的 Page 編號(請參考RequestStocks觀念說明)


pStockNo
指定的股票代號,一次僅能索取一檔。

            所以成交明細、五檔最多僅能同時索取49檔。


回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_SUBJECT_TICK_PAGE_EXCEED
表示帶入的 Page 超過極限範圍。


SK_SUBJECT_TICK_PAGE_INCORRECT
表示帶入的 Page 不正確,可能為負值。


SK_SUBJECT_TICK_STOCK_NOT_FOUND
表示無法找到帶入的股票代號資訊。


SK_SUBJECT_CONNECTION_DISCONNECT
表示報價連線已經斷線了




int __stdcall SKQuoteLib_GetStockByIndex([in]short sMarketNo, [in]short sIndex,[in,out] TStock* pStock)

說明:

            根據市場別編號與系統所編的特殊代號,取回股票報價的相關資訊。

            市場編號分別為:

            上市
0x00

            上櫃
0x01

            期貨
0x02

            選擇權
0x03

            興櫃
0x04

            每一檔股票的編碼代號每天都有可能不同,因此不能以相同的代號在不同的交易日使用,以避免報價上產生錯誤。

參數:


cMarketNo
市場別代碼。


sIndex
系統編碼後的特定股票代碼。


pStock
回傳的個股報價內容。

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_FAIL
表示找不到股票代碼所對應的股票資訊。




int __stdcall SKQuoteLib_GetStockByNo([in] const TCHAR* lpszStockNo,[in,out] TStock* pStock)

說明:

            根據股票代號取得報價資訊。


參數:


lpszStockNo
股票代號,例如 1101


pStock
回傳股票代號所對應的報價資訊。

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_FAIL
表示找不到股票代碼所對應的股票資訊。




int __stdcall SKQuoteLib_GetTick([in]short sMarketNo, [in]short sStockidx, [in]int nPtr, [in,out]TTick* pTick)

說明:

            取得成交明細資訊。


參數:


sMarketNo
市場別代號。


sStockidx
系統所定義的股票代碼,詳細說明請參考 SKQuoteLib_GetStockByIndex 中說明。


nPtr
目前成交明細的儲存位置。可以根據此 Index 取得該筆成交明細資訊。


pTick
成交明細內容。詳細物件內容說明,請參考後續說明。


回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_SUBJECT_TICK_STOCK_NOT_FOUND
表示找不到股票代碼所對應的成交明細資訊。



int __stdcall SKQuoteLib_GetBest5( [in]short sMarketNo, [in]short sStockidx, [in,out]TBest5* pBest5)

說明:

            取得最佳五檔價格資訊。

參數:


sMarketNo
市場別代號。


sStockidx
系統定義的股票代碼。


pBest5
最佳五檔資訊。詳細參考後續說明。

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_SUBJECT_BEST5_DATA_NOT_FOUND
表示找不到股票代碼所對應的最佳五檔資訊。



int __stdcall SKQuoteLib_GetStrikePrices()

說明:

            向報價伺服器提出,取得全部選擇權資訊需求。報價伺服器會透過向AttachStrikePricesCallBack( long lCallBack)註冊的Call Back函式,回傳全部選擇權資訊。

參數:

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_GetKLine([in,out] char* caStockNo, [in] int KLineType )

說明:

向報價伺服器提出,取得單一上市股票技術分析資訊需求。報價伺服器會透過向AttachKLineCallBack( long lCallBack)註冊的Call Back函式,回傳單一上市股票技術分析資訊。

參數:


caStockNo
上市股票代號。Ex. 6005


KLineType
技術分析類型。


0 = 1
分鐘線。


1 = 5
分鐘線。


2 = 30
分鐘線。




3 =
日線288天。


4 =
完整日線。


5 =
週線。


6 =
月線。

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


SK_KLINE_DATA_TYPE_NOT_FOUND
表示找不到要使用的技術分析類型。



int __stdcall SKQuoteLib_GetMarketTot( [in] int index, [in] char cMarketNo , [out] short sPrt ,

[out] long* lTime, [out] long* lTotv,[out] long* lTots,[out] long* lTotc )

說明:

向報價伺服器提出,依輸入鍵值(index),取得大盤成交張筆資料需求。報價伺服器會透過向AttachMarketTotCallBack ( long lCallBack)註冊的Call Back函式,回傳大盤成交張筆資料。

參數:


index
輸入要求第index筆成交明細資訊。

                                        鍵值(0~n)0為當天第一筆成交資料。



cMarketNo
市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
回傳目前成交明細的儲存位置。(index)


lTime
大盤成交資料時間


lTotv
大盤成交值


lTots

大盤成交筆數


lTotc
大盤成交張數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_GetMarketBuySell( [in] int index, [in] char cMarketNo , [out] short sPrt ,

[out] long* lTime, [out] long* lBc, [out] long* lSc, [out] long* lBs, [out] long* lSs )

說明:

向報價伺服器提出,依輸入鍵值(index),取得大盤成交買賣張筆數資料需求。報價伺服器會透過向AttachMarketBuySellCallBack( long lCallBack)註冊的Call Back函式,回傳大盤成交買賣張筆數資料。

參數:


index
輸入要求第index筆成交明細資訊。

                                        鍵值(0~n)0為當天第一筆成交資料。



cMarketNo
市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
回傳目前成交明細的儲存位置。(index)


lTime
大盤成交資料時間


lBc
大盤成交買進筆數


lSc
大盤成交賣出筆數


lBs
大盤成交買進張數


lSs
大盤成交賣出張數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

 樓主| 發表於 10-1-7 10:31 | 顯示全部樓層

int __stdcall SKQuoteLib_GetMarketHighLow( [in] int index, [in] char cMarketNo , [out] short sPrt ,

[out] long* lTime, [out] short* sUp, [out] short* sDown, [out] short* sHigh, [out] short* sLow,

[out ]short* sNoChange )

說明:

向報價伺服器提出,依輸入鍵值(index),取得大盤成交上漲下跌家數資料需求。報價伺服器會透過向AttachMarketHighLowCallBack( long lCallBack)註冊的Call Back函式,回傳大盤成交上漲下跌家數資料。

參數:


index
輸入要求第index筆成交明細資訊。

                                        鍵值(0~n)0為當天第一筆成交資料。



cMarketNo
市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
回傳目前成交明細的儲存位置。(index)


lTime
大盤成交資料時間


sUp
大盤成交上漲家數


sDown
大盤成交下跌家數


sHigh
大盤成交漲停家數


sLow
大盤成交跌停家數


sNoChange
大盤平盤家數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_Delta( [in] int nCallPut, [in] double S, [in] double K, [in] double R,


[in]double T, [in] double sigma, [out] double* dDelta )

說明:

輸入


1.
nCallPut
標的別( Call: 0 , Put: 1)


2.
S
指數


3.
K
StrikePrice(
履約價)


4.
R
RisklessRate(
無風險利率)


5.
T
RemainMaturity(
剩餘天數)


6.
sigma

得到Delta

參數:


nCallPut

標的別( Call: 0 , Put: 1)

S
指數

K
StrikePrice(
履約價)

R
RisklessRate(
無風險利率)

T
RemainMaturity(
剩餘天數)

sigma
sigma

dDelta
儲存回傳Delta 參數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


int __stdcall SKQuoteLib_Gamma( [in] double S, [in] double K, [in] double R, [in] double T,

[in]double sigma , [out] double* dGamma)

說明:

輸入


1.
S
指數


2.
K
StrikePrice(
履約價)


3.
R
RisklessRate(
無風險利率)


4.
T
RemainMaturity(
剩餘天數)


5.
sigma

得到Gamma

參數:

S
指數

K

StrikePrice(
履約價)

R
RisklessRate(
無風險利率)

T
RemainMaturity(
剩餘天數)

sigma
sigma


dGamma
儲存回傳Gamma 參數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


int __stdcall SKQuoteLib_Theta( [in] int nCallPut, [in] double S, [in] double K, [in] double R,
[in]double T, [in] double sigma , [out] double* dTheta)

說明:

輸入


1.
nCallPut
標的別( Call: 0 , Put: 1)


2.
S
台指期成交價


3.
K
StrikePrice(
履約價)


4.
R
RisklessRate(
無風險利率)


5.
T
RemainMaturity(
剩餘天數)


6.
v
波動率 = sigma

得到Theta

參數:


nCallPut
標的別( Call: 0 , Put: 1)

S
台指期成交價

K
StrikePrice(
履約價)

R
RisklessRate(
無風險利率)

T
RemainMaturity(
剩餘天數)

sigma
V
波動率 = sigma

dTheta
儲存回傳Theta 參數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


int __stdcall SKQuoteLib_Vega( [in] double S, [in] double K, [in] double R, [in] double T,
[in]double sigma , [out] double* dVega)

說明:

輸入


1.
S
台指期成交價


2.
K
StrikePrice(
履約價)


3.
R
RisklessRate(
無風險利率)


4.
T
RemainMaturity(
剩餘天數)



5.
v
波動率 = sigma

得到Vega

參數:

S
台指期成交價

K
StrikePrice(
履約價)

R
RisklessRate(
無風險利率)

T
RemainMaturity(
剩餘天數)

sigma
V
波動率 = sigma

dVega
儲存回傳Vega 參數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_Rho([in] int nCallPut, [in] double S, [in] double K, [in] double R, [in]double T, [in]double sigma , [out] double* dRho)

說明:

輸入


1.
nCallPut
標的別( Call: 0 , Put: 1)


2.
S
台指期成交價


3.
K
StrikePrice(
履約價)


4.
R
RisklessRate(
無風險利率)


5.
T
RemainMaturity(
剩餘天數)


6.
v
波動率 = sigma

得到Rho

參數:


nCallPut
標的別( Call: 0 , Put: 1)

S
台指期成交價

K
StrikePrice(
履約價)

R
RisklessRate(
無風險利率)

T
RemainMaturity(
剩餘天數)

sigma
V
波動率 = sigma

dRho
儲存回傳Rho 參數

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


TStock 物件說明:

typedef struct STOCK

{

short m_sStockidx;
//
系統自行定義的股票代碼


short m_sDecimal;
//
報價小數位數


short m_sTypeNo;
//
類股分類


char m_cMarketNo;
//
市場代號0x00上市;0x01上櫃;0x02期貨;0x03選擇權;



0x04
興櫃


char m_caStockNo[20];
//
股票代號


char m_caName[10];
//
股票名稱


int m_nOpen;
//
開盤價


int m_nHigh;
//
最高價


int m_nLow;
//
最低價



int m_nClose;
//
成交價



int m_nTickQty;
//
單量


int m_nRef;
//
昨收、參考價


int m_nBid;
//
買價



int m_nBc;
//
買量



int m_nAsk;
//
賣價



int m_nAc;
//
賣量



int m_nTBc;
//
買盤量


int m_nTAc;
//
賣盤量


int m_nFutureOI;
//
期貨未平倉 OI



int m_nTQty;
//
總量


int m_nYQty;
//
昨量



int m_nUp;
//
漲停價


int m_nDown;

//
跌停價

} TStock;


TTick 物件說明:

typedef struct TICK

{


int m_nPtr;
//
資料所在的位置(Key)


int m_nTime;
//
時間

int m_nBid;
//
買價

int m_nAsk;
//
賣價

int m_nClose;
//
成交價

int m_nQty;
//
成交量

}TTick;


TBest5 物件說明:

typedef struct BEST5

{

int m_nBid1;
//
第一檔買價

int m_nBidQty1;
//
第一檔買量

int m_nBid2;
//
第二檔買價

int m_nBidQty2;
//
第二檔買量

int m_nBid3;
//
第三檔買價

int m_nBidQty3;
//
第三檔買量

int m_nBid4;
//
第四檔買價

int m_nBidQty4;
//
第四檔買量

int m_nBid5;
//
第五檔買價

int m_nBidQty5;
//
第五檔買量

int m_nExtendBid;
//
衍生一檔買價

int m_nExtendBidQty;
//
衍生一檔買量

int m_nAsk1;
//
第一檔賣價

int m_nAskQty1;
//
第一檔賣量

int m_nAsk2;
//
第二檔賣價

int m_nAskQty2;
//
第二檔賣量

int m_nAsk3;
//
第三檔賣價

int m_nAskQty3;
//
第三檔賣量

int m_nAsk4;
//
第四檔賣價

int m_nAskQty4;
//
第四檔買量

int m_nAsk5;
//
第五檔賣價

int m_nAskQty5;
//
第五檔賣量

int m_nExtendAsk;
//
衍生一檔賣價

int m_nExtendAskQty;
//
衍生一檔賣量

} TBest5;


Call back 函式說明:

int __stdcall SKQuoteLib_AttachConnectionCallBack([in]long lCallBack)

說明:

            向報價函式庫註冊接收連線狀態的 Call back 函式位址。函式的宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyConnection)( int nKind, int nCode)

            

            會有兩個參數回傳:


nKind
表示訊息種類,可能得值有:


SK_SUBJECT_CONNECTION_CONNECTED
表示為連線事件。


SK_SUBJECT_CONNECTION_DISCONNECT
表示為斷線事件。


nCode
表示事件所獲得的代碼,代碼為0值即表示執行正確,非0表示例外事件。

            

            

參數:


lCallBack
帶入Call back 的函式位址。當狀況發生時即可呼叫此函式進行處理。

            請注意,如果傳入的函式定義與上面描述的不同,將可能導致系統發生嚴重錯誤,甚至導致電腦發生當機情況,因此請務必謹慎使用。

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


int __stdcall SKQuoteLib_AttachQuoteCallBack([in]long lCallBack)

說明:

            當有索取的個股報價異動時,將透過此註冊的函式通知應用程式處理。

            向報價函式庫註冊接收報價更新時處理的Callback函式,函式的宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyQuote)( short sMarketNo, short sStockidx)

            

            兩個參數回傳:


sMarketNo
報價有異動的商品市場別。


sStockidx
系統自行定義的股票代碼。

            透過以上兩個參數,可以再使用SKQuoteLib_GetStockByIndex 取出報價的內容。

參數:


lCallBack
帶入Call back 的函式位址。當有向報價伺服器索取的個股報價有所異動,即會透過呼叫此 Call back函式,處理價格異動時使用者自行定義的程序。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

            


int __stdcall SKQuoteLib_AttachTicksCallBack([in] long lCallBack)

說明:

            當有索取的個股成交明細有所異動,即透過向此註冊的Call back 函式進行處理。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyTicks)( short sMarketNo, short sStockidx, int nPtr)

            

            三個參數回傳:


sMarketNo
成交明細有異動的商品市場別。


sStockidx
系統自行定義的股票代碼。


nPtr
表示資料的位址(Key)。所以如果要取得今天該檔股票的全部成交明細,可

以迴圈的方式逐筆取得。Index的範圍從 0 ~ Ptr 所指定的位置。

參數:


lCallBack
帶入Call back 的函式位址。當有向報價伺服器索取的個股報價有所異動,即會透過呼叫此 Call back函式,處理成交明細異動時使用者自行定義的程序。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

            

 樓主| 發表於 10-1-7 10:31 | 顯示全部樓層

int __stdcall SKQuoteLib_AttachBest5CallBack([in] long lCallBack)

說明:

            當有索取的個股五檔價格有所異動,即透過向此註冊的Call back 函式進行處理。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyTicks)( short sMarketNo, short sStockidx)

            

            兩個參數回傳:


sMarketNo
五檔有異動的商品市場別。


sStockidx
系統自行定義的股票代碼。

            

參數:


lCallBack
帶入Call back 的函式位址。當有向報價伺服器索取的個股報價有所異動,即會透過呼叫此 Call back函式,處理五檔價格異動時使用者自行定義的程序。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

            

            

int __stdcall AttachStrikePricesCallBack([in] long lCallBack)

說明:

            報價伺服器會透過向此註冊的Call back 函式,回傳全部選擇權資訊。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyStrikePrices)( BSTR BProduct, BSTR BName, BSTR BCall BSTR BPut, int nStrikePrice, int nYearMonth )

            

            六個參數回傳:


BProduct

商品代碼。例如,台指選商品代碼為 TXO,也就是選擇權代號前三碼。


BName

中文名稱。例如,台選。


BCall

Call
標的代碼。例如,TXO03800I9


BPut

Put
標的代碼。例如,TXO03800U9


nStrikePrice

履約價。例如,C102.5nStrikePrice資料為10250,使用時要除一百,



nStrikePrice/100


nYearMonth
年+月。例如,20099月,nYearMonth資料為200909

參數:


lCallBack
帶入Call back 的函式位址。當向報價伺服器索取全部選擇權資訊時,報價伺服器會透過呼叫此 Call back函式,回傳選擇權資訊。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

            


int __stdcall SKQuoteLib_AttachKLineDataCallBack([in] long lCallBack)

說明:

            當報價伺服器會透過向此註冊的Call back 函式,回傳技術分析資訊。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyKLineData)( char * caStockNo, char * caData )

            

            二個參數回傳:


caStockNo
上市股票代號。


caData
回傳字串,技術分析資料。傳回字串格式分成兩種:



(1.) 1
分鐘線,5分鐘線,30分鐘線。以逗號分開所有資料。


(
//, :, 開盤價, 最高價, 最低價, 收盤價, 成交量 )

                                                        例如,06/18/2009, 09:05, 1365, 1385, 1365, 1380, 656

                                                        


(2.)
日線288天,完整日線,週線,月線。以逗號分開所有資料。


(
//, 開盤價, 最高價, 最低價, 收盤價, 成交量 )

                                                        例如,06/18/2009, 1365, 1385, 1365, 1380, 656

函式中所取回的價格都未經過小數點處理,例如6005 價格為 13.65」,則函式所傳回的價格為「1365」,因此使用者所開發的程式則必須接手處理。

參數:


lCallBack
帶入Call back 的函式位址。當向報價伺服器索取單一上市股票技術分析資料時,報價伺服器會透過呼叫此 Call back函式,回傳技術分析資訊。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

            

int __stdcall SKQuoteLib_AttachMarketTotCallBack( [in] long lCallBack)

說明:

            當報價伺服器會透過向此註冊的Call back 函式,回傳大盤成交張筆資料。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyMarketTot)( char cMarketNo , short sPrt, long lTime, long lTotv, long lTots, long lTotc )

            

            六個參數回傳:


cMarketNo
市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
目前成交明細的儲存位置。可以根據此 index 取得該筆成交明細資訊。


lTime

大盤成交時間。Ex. lTime = 92000 ,為早上九點20(09:20)


lTotv

大盤成交值()Ex. lTotv = 88542,為885.42 ()


lTots

大盤成交筆數


lTotc

大盤成交張數

函式中所取回的價格都未經過小數點處理,例如6005 價格為 13.65」,則函式所傳回的價格為「1365」,因此使用者所開發的程式則必須接手處理。

參數:


lCallBack
帶入Call back 的函式位址。當向報價伺服器索取大盤成交張筆資料時,報價伺服器會透過呼叫此 Call back函式,回傳大盤成交張筆資料。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_AttachMarketBuySellCallBack( [in] long lCallBack)

說明:

            當報價伺服器會透過向此註冊的Call back 函式,回傳大盤成交買賣張筆數資料。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyMarketBuySell)( char cMarketNo , short sPrt, long lTime, long lBc, long lSc, long lBs, long lSs )

            

            七個參數回傳:\


cMarketNo
市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
目前成交明細的儲存位置。可以根據此 index 取得該筆成交明細資訊。


lTime
大盤成交時間。Ex. lTime = 92000 ,為早上九點20(09:20)


lBc
大盤成交買進筆數


lSc
大盤成交賣出筆數


lBs
大盤成交買進張數


lSs
大盤成交賣出張數

函式中所取回的價格都未經過小數點處理,例如6005 價格為 13.65」,則函式所傳回的價格為「1365」,因此使用者所開發的程式則必須接手處理。

參數:


lCallBack
帶入Call back 的函式位址。當向報價伺服器索取大盤成交買賣張筆數資料時,報價伺服器會透過呼叫此 Call back函式,回傳大盤成交買賣張筆數資料。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。

int __stdcall SKQuoteLib_AttachMarketHighLowCallBack( [in] long lCallBack)

說明:

            當報價伺服器會透過向此註冊的Call back 函式,回傳大盤成交上漲下跌家數資料。

            所註冊的函式宣告必須符合以下格式:


typedef void ( __stdcall* FOnNotifyMarketHighLow)( char cMarketNo , short sPrt, long lTime, short sUp, short sDown, short sHigh, short sLow, short sNoChange )

            

            八個參數回傳:


cMarketNo

市場別代號 (0x00 上市, 0x01 上櫃)


sPrt
目前成交明細的儲存位置。可以根據此 index 取得該筆成交明細資訊。


lTime
大盤成交時間。Ex. lTime = 92000 ,為早上九點20(09:20)


sUp
大盤成交上漲家數


sDown
大盤成交下跌家數


sHigh,
大盤成交漲停家數


sLow
大盤成交跌停家數


sNoChange

大盤平盤家數

函式中所取回的價格都未經過小數點處理,例如6005 價格為 13.65」,則函式所傳回的價格為「1365」,因此使用者所開發的程式則必須接手處理。

參數:


lCallBack
帶入Call back 的函式位址。當向報價伺服器索取大盤成交上漲下跌家數資料時,報價伺服器會透過呼叫此 Call back函式,回傳大盤成交上漲下跌家數資料。

            

回傳值:


SK_SUCCESS
表示執行成功。


SK_ERROR_INITIALIZE_FAIL
表示SKQuoteLib_Initialize 尚未執行完成。


4.附件

4.1錯誤代碼定義:

#define SK_SUCCESS

0

#define SK_FAIL

-1

#define SK_ERROR_STRING_LENGTH_NOT_ENOUGH
-2

#define SK_ERROR_SERVER_NOT_CONNECTED

-3

#define SK_ERROR_INITIALIZE_FAIL

-4

#define SK_ERROR_ACCOUNT_NOT_EXIST

1

#define SK_ERROR_ACCOUNT_MARKET_NOT_MATCH
2

#define SK_ERROR_PERIOD_OUT_OF_RANGE

3

#define SK_ERROR_FLAG_OUT_OF_RANGE

4

#define SK_ERROR_BUYSELL_OUT_OF_RANGE

5

#define SK_ERROR_ORDER_SERVER_INVALID

6

#define SK_ERROR_PERMISSION_DENIED

7

#define SK_KLINE_DATA_TYPE_NOT_FOUND

8

#define SK_SUBJECT_CONNECTION_CONNECTED
100

#define SK_SUBJECT_CONNECTION_DISCONNECT

101

#define SK_SUBJECT_QUOTE_PAGE_EXCEED

200

#define SK_SUBJECT_QUOTE_PAGE_INCORRECT
201

#define SK_SUBJECT_TICK_PAGE_EXCEED

210

#define SK_SUBJECT_TICK_PAGE_INCORRECT

211

#define SK_SUBJECT_TICK_STOCK_NOT_FOUND
212

#define SK_SUBJECT_BEST5_DATA_NOT_FOUND
213

發表於 10-5-10 08:54 | 顯示全部樓層
應該要穩定許多,可惜這我實在看不懂
發表於 10-5-29 17:03 | 顯示全部樓層
在程式聚寶盆聽wldtw2008大大的說法,似乎這個API會造成系統CPU Load變重...
發表於 10-6-9 16:16 | 顯示全部樓層
需要研究一下
發表於 11-2-7 11:26 | 顯示全部樓層
....還是先推再說,看無董
發表於 11-3-15 03:55 | 顯示全部樓層
除了群益有報價API~
還有其他家的嗎?
發表於 12-4-8 10:24 | 顯示全部樓層
理論上,它直接要求伺服器報價,應該比較快吧;打算明天來測一下
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-29 06:52

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |