綠茶妹 發表於 10-1-7 10:30

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

這是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檔案主要設定函式庫程式的重要設定,設定內容初始如下: id=2.08.10 0=order2.capital.com.tw#1=order3.capital.com.tw enable=1file=C:\Source\SKOrderLib\Test\ObjectTester\debug.log 區段主要為告知「使用者認證伺服器」目前使用軟體的版本編號,隨著程式的不斷修正或擴增功能,使用者的函式庫版本可能因異動而導致無法使用,因此「使用者認證伺服器」將會依照此序號做檢查的依據,如果版本過舊,伺服器將拒絕函式庫的使用。因此發現函式庫無法使用,可以試著調整此序號繼續使用,但是建議先和群益相關人員洽詢,取得最新的版本,避免因為版本的不一致,導致產生問題。 區段主要放置「使用者認證伺服器」的位址。 區段只要設定是否開啟除錯模式,以及除錯記錄的檔案位置與檔名。

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

TrendRover 發表於 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( char* lpszVersion, int* pnSize)說明:            取得函式庫版本編號。 參數:
lpszVersion 填入目前的版本值。
pnSize 帶入lpszVersion可填入的大小,回傳時內容為 lpszVersion 的字串長度。 回傳值:
SK_SUCCESS 表示成功。
int __stdcall SKQuoteLib_Initialize( char* lpszLoginID, 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( short* psPageNo, 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( short* psPageNo, 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(short sMarketNo, short sIndex, TStock* pStock)說明:            根據市場別編號與系統所編的特殊代號,取回股票報價的相關資訊。            市場編號分別為:            上市
0x00            上櫃
0x01            期貨
0x02            選擇權
0x03            興櫃
0x04             每一檔股票的編碼代號每天都有可能不同,因此不能以相同的代號在不同的交易日使用,以避免報價上產生錯誤。 參數:
cMarketNo
市場別代碼。
sIndex
系統編碼後的特定股票代碼。
pStock
回傳的個股報價內容。 回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。
SK_FAIL 表示找不到股票代碼所對應的股票資訊。


int __stdcall SKQuoteLib_GetStockByNo( const TCHAR* lpszStockNo, TStock* pStock)說明:            根據股票代號取得報價資訊。
參數:
lpszStockNo
股票代號,例如 1101。
pStock
回傳股票代號所對應的報價資訊。 回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。
SK_FAIL 表示找不到股票代碼所對應的股票資訊。


int __stdcall SKQuoteLib_GetTick(short sMarketNo, short sStockidx, int nPtr, 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( short sMarketNo, short sStockidx, 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( char* caStockNo, 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( int index, char cMarketNo , short sPrt ,

long* lTime, long* lTotv, long* lTots, 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( int index, char cMarketNo , short sPrt ,

long* lTime, long* lBc, long* lSc, long* lBs, 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( int index, char cMarketNo , short sPrt ,

long* lTime, short* sUp, short* sDown, short* sHigh, short* sLow, 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( int nCallPut, double S, double K, double R,


double T, double sigma, 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
sigmadDelta
儲存回傳Delta值 參數 回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。
int __stdcall SKQuoteLib_Gamma( double S, double K, double R, double T,

double sigma , 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( int nCallPut, double S, double K, double R,
double T, double sigma , 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波動率 = sigmadTheta
儲存回傳Theta值 參數 回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。
int __stdcall SKQuoteLib_Vega( double S, double K, double R, double T,
double sigma , 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波動率 = sigmadVega
儲存回傳Vega值 參數 回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。 int __stdcall SKQuoteLib_Rho( int nCallPut, double S, double K, double R, double T, double sigma , 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波動率 = sigmadRho
儲存回傳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;
// 股票代號
char m_caName;
// 股票名稱
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(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(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( 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( 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( 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.5,nStrikePrice資料為10250,使用時要除一百,

即nStrikePrice/100。
nYearMonth
年+月。例如,2009年9月,nYearMonth資料為200909 參數:
lCallBack
帶入Call back 的函式位址。當向報價伺服器索取全部選擇權資訊時,報價伺服器會透過呼叫此 Call back函式,回傳選擇權資訊。            回傳值:
SK_SUCCESS 表示執行成功。
SK_ERROR_INITIALIZE_FAIL表示SKQuoteLib_Initialize 尚未執行完成。            
int __stdcall SKQuoteLib_AttachKLineDataCallBack( 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( 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( 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( 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

應該要穩定許多,可惜這我實在看不懂

tokukawa01 發表於 10-5-29 17:03

在程式聚寶盆聽wldtw2008大大的說法,似乎這個API會造成系統CPU Load變重...

AS96 發表於 10-6-9 16:16

需要研究一下

AllenLin1010 發表於 11-2-7 11:26

....還是先推再說,看無董

ste647 發表於 11-3-15 03:55

除了群益有報價API~
還有其他家的嗎?

RECOM 發表於 12-4-8 10:24

理論上,它直接要求伺服器報價,應該比較快吧;打算明天來測一下{:4_81:}
頁: [1]
查看完整版本: 群益策略王報價函式庫(報價API)使用說明