Metadata-Version: 2.4
Name: PyNetstockQuoteLib
Version: 1.0.1
Summary: 台湾金融家(Netstock)提供的台股报价API
Author-email: WeiTian <twccad@163.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Dynamic: license-file

PyNetstockQuoteLib是一款台湾金融市场证券，期货，期权多合一的轻量级报价API模块，由台湾Netstock公司采用C++开发，做到极致化的高效和轻量级。
如需账号请访问公司网站：https://www.netstock.net/

函数列表：
1，连接
def Connect(Address: str, nPort: unsigned short)-> bool: ...
2，断开连接
def Disconnect() -> None: ...
3，登录
def Login(UserName: str, Password: str, Software: str, Version: str, Company: str, Branch: str) -> None: ...
4，运行阻塞函数
def Go() -> None: ...
5，注册报价函数
def SubscribeToQuote(Symbol: str, Exc: int, sExc: int = -1, rlot:bool = False) -> int: ...
6，关闭注册报价
def CloseSubscribe(Index: int) -> bool: ...
7，注册Tick函数
def SubscribeToTick(Symbol: str, Exc: int, sExc: int = -1, rlot:bool = False) -> int: ...
8，获得报价
def GetQuote(Index: int, Field: int) -> int | float: ...
9，获得Tick数据
def GetTick(Index:int)-> List[Dict[str, Union[int, float]]]: ...
10，获得基本资料(9-16)
def GetInfo(Exc:int, Symbol:str, Field:str, sExc:int)-> str: ...
11，设置主动回报callback
def SetNoticeCallback(callback: Callable[[int, int, object, int], None]) -> None: ...
12，设置登录回报函数
def SetLoginCallback(callback: Callable[[int, str, int], None]) -> None: ...
13，设置交易日资讯回报函数
def SetExcInfoCallback(callback: Callable[[int, int], None]) -> None: ...
14，设置基本资料更新回报函数
def SetStkiCallback(callback: Callable[[int, int, int], None]) -> None: ...
15，设置报价回报callback
def SetQuoteCallback(callback: Callable[[int, int], None]) -> None: ...
16，设置Tick回报函数
def SetTickCallback(callback: Callable[[int], None]) -> None: ...

示例1：Quote.py
import PyNetstockQuoteLib as NsQuote

Ind = 0
Ind1 = 0
#登录回报
def OnLogin(Type,pInfo,InfoSize):
    if(Type == 25):
        global Ind,Ind1
        print("登录成功!")
        #登录成功后对商品进行报价订阅
        Ind = NsQuote.SubscribeToQuote("FITX",12,2)
        Ind1 = NsQuote.SubscribeToQuote("2330",1)
    else:
        print("登录失败")        
#报价回报
def OnQuote(Index,Type):
    if(Type == 1):
        global Ind,Ind1
        if(Index == Ind):
            print("Sym:FITX,Last:" + str(NsQuote.GetQuote(Index,4)) + ",Vol:" + str(NsQuote.GetQuote(Index,8)))
        if(Index == Ind1):
            print("Sym:2330,Last:" + str(NsQuote.GetQuote(Index,4)) + ",Vol:" + str(NsQuote.GetQuote(Index,8)))

#启动入口
if NsQuote.Connect("sts-s2pro.netstock.net", 80):
    print("连接成功")
    NsQuote.SetLoginCallback(OnLogin)
    NsQuote.SetQuoteCallback(OnQuote)
    NsQuote.Login("xxxxx", "xxxxx", "csgpc", "0.0", "SNST", "")
    NsQuote.Go()
else:
    print("连接失败")
print("Over")

示例2：
import PyNetstockQuoteLib as NsQuote

indTick = 0
#登录回报
def OnLogin(Type,pInfo,InfoSize):
    if(Type == 25):
        print("登录成功!")
    else:
        print("登录失败")        
#Tick回报
def OnTick(Index):
    #获得Tick数据,返回字典列表迭代器
    TickList = NsQuote.GetTick(Index)
    #获得Tick总数
    Ticklen = len(TickList)
    count = 0
    #用基本资料获取商品名称
    print(NsQuote.GetInfo(12,"FITX","name"))
    #显示本次Tick信息
    print("Index:" + str(Index) + " TickCount:",str(Ticklen))
    #显示10条数据用于测试
    for Item in TickList:
        print(Item)#Item是字典对象，实际使用时可以用Key取单元数据例如：Item["Last"]
        count = count + 1
        if (count >=10): break
#交易日资讯回报
def OnExcInfo(Type,Exc):
    if(Exc == 12):#收到对应市场交易日资讯后注册（较为单纯）
        global indTick
        indTick = NsQuote.SubscribeToTick("FITX",12,2)
#程序入口
if NsQuote.Connect("sts-s2pro.netstock.net", 80):
    print("连接成功")
    NsQuote.SetLoginCallback(OnLogin)
    NsQuote.SetExcInfoCallback(OnExcInfo)
    NsQuote.SetTickCallback(OnTick)
    NsQuote.Login("xxxxx", "xxxxx", "csgpc", "0.0", "SNST", "")
    NsQuote.Go()
else:
    print("连接失败")
print("Over")
