在股票量化投资领域中,通达信l2接口如何用的知识也是要知道和了解的,像现在特别多的团队已经开发有多种不一样的数据接口系统,主要是方便大家去查询行情的时候,能够很快的从这些l2数据接口中产生数据,直观的显示数据的情况,第一时间就能获取行情,也就容易抓住了盈利的机会。那么,要是在通达信l2接口中,应该如何去掌握这些呢?
不过,想要了解这些行情数据,是可以根据这其中通达信l2接口的开发原理来决定,像十档行情的查询,或者是五档行情,都可以从中挖掘,针对各个交易所数据反馈出来,那就简单多了。
例如对应的开发文档:
1.数据类型:
交易所 | 数据类型 |
上交所 | 十档行情快照(Level-2) |
委托队列(Level-2) | |
逐笔成交(Level-2) | |
深交所 | 十档行情快照(Level-2) |
逐笔委托(Level-2) | |
委托队列(Level-2) | |
逐笔成交(Level-2) | |
沪深交易所 | 期权、可转债 |
2.消息类型:
消息 | 说明 |
TickRecord | 逐笔成交 |
OrderRecord | 逐笔委托 |
OrderQueueRecord | 委托队列 |
StockQuoteRecord | 股票十档行情 |
但如果是执行接口程序获取数据行情,则如下表示:
先在通达信l2接口下单之前先定义一个函数, 将32位字节转换为float
def bytesToFloat(h1, h2, h3, h4):
ba = bytearray()
ba.append(h1)
ba.append(h2)
ba.append(h3)
ba.append(h4)
return struct.unpack("!f", ba)[0]
# 再进行测试函数, 看结果如何
b_f = bytesToFloat(v1, v2, v3, v4)
print(b_f)
# 定义一个函数, 将float转换为32位字节
def floatToBytes(f1):
b1, b2, b3, b4 = struct.pack("!f", f1)
return b1, b2, b3, b4
print(floatToBytes(b_f))
break
stock_date = struct.unpack('l', stock_date) # 4字节 如20091229
stock_open = struct.unpack('f', stock_open) # 开盘价
stock_high = struct.unpack('f', stock_high) # 最高价
stock_low = struct.unpack('f', stock_low) # 最低价
stock_close = struct.unpack('f', stock_close) # 收盘价
stock_open_interest = struct.unpack('l', stock_open_interest) # 持仓量
stock_vol = struct.unpack('l', stock_vol) # 成交量
stock_settlement_price = struct.unpack("f", stock_settlement_price) # 结算价
date_format = datetime.datetime.strptime(str(stock_date[0]), '%Y%M%d') # 格式化日期
day_str = date_format.strftime('%Y-%M-%d') + "," + str(stock_open[0]) + "," + str(stock_high[0]) + "," \
+ str(stock_low[0]) + "," + str(stock_close[0]) + "," + str(stock_open_interest[0]) + "," \
+ str(stock_vol[0]) + "," + str(stock_settlement_price[0]) + "\n"
file_object.writelines(day_str) # 将文件写入到csv文件中
file_object.close()
执行示例:
也就是说,通达信l2接口如何用的问题就有答案了,针对市场上的很多数据接口也是一样的道理,可以帮助很多交易者解决这些难题,利用好这些行情系统平台,自然就提高了机遇,不再是像以前传统的手动交易,还需要自己花上很多宝贵的时间去大海捞针,到头来,这期间的机会都溜走了不少。如果大家对数据接口想了解更多的,则可以Q下方继续深入学习。