在FMZ.CN获取股票市场股票代码集合的实践

Author: 雨幕(youquant), Created: 2021-12-20 14:59:47, Updated: 2023-11-21 21:20:38

img

在FMZ.CN获取股票市场股票代码集合的实践

如何在FMZ.CN发明者量化交易平台上查询股票证券所有正股股票代码呢?通过Futu API的原生SDK可以很方便的查询。

准备工作

  • 部署托管者 首先在FMZ上实盘、模拟盘运行使用富途证券接口的股票策略,必须部署一个托管者(如果还不了解托管者概念的同学可以查询平台社区置顶的教程)。

  • 下载运行FutuOpenD软件 FutuOpenD是作为托管者和富途证券服务器通信的中间件程序,在社区有详细文章描述:https://www.fmz.cn/bbs-topic/6270

  • 托管者所在设备系统必须已经安装python,只能是python哦!其它语言无法自由导入使用的包,也就没法使用futu API这个SDK软件包了。

  • python上已经安装了futu的SDK软件包

    img

futu API

futu API 文档:https://openapi.futunn.com/futu-api-doc/quote/get-static-info.html#9555

img

只传入查询的市场,不传入股票列表参数即可查询所有股票。

返回数据的格式

img

编写策略获取股票代码等信息

接下来就可以在FMZ.CN上编写策略了,策略代码十分简单:

FMZ.CN上的查询范例代码:

#!python3
from futu import *
import json 

exDict = {
    "Market.HK" : Market.HK
}

def getExStocksInfo(exName):
    global exDict
    quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
    ret, data = quote_ctx.get_stock_basicinfo(exDict["Market.HK"], SecurityType.STOCK)
    if ret == RET_OK:
        Log("获取数据成功!")
    else:
        Log('error:', data)
    
    # 构造数据
    stocksInfoTbl = {
        "type" : "table",
        "title" : "股票信息",
        "cols" : ["股票代码", "股票名称", "每手股数", "股票类型", "是否退市", "上市时间", "股票 ID"],
        "rows" : []
    }
    arrKey = ["code", "name", "lot_size", "stock_type", "delisting", "listing_date", "stock_id"]
    arrKeyWithColor = []
    for key in arrKey:
        arrKeyWithColor.append(key + " #FF0000")
    stocksInfoTbl["rows"].append(arrKeyWithColor)
    for i in range(len(data["code"])):
        arrRow = []
        for key in arrKey:
            arrRow.append(str(data[key][i]))
        stocksInfoTbl["rows"].append(arrRow)
        
    # 结束后记得关闭当条连接,防止连接条数用尽
    quote_ctx.close()

    return stocksInfoTbl

def main():
    Log("开始查询")
    ret = getExStocksInfo("Market.HK")
    
    # 表格展示
    LogStatus('`' + json.dumps(ret) + '`')
    
    Log("结束查询")

运行结果

img

代码ret = getExStocksInfo("Market.HK"),可以看出只查询了港股,查询一共有几千只股票…

img

报错信息可以忽略,只是返回了一些接口信息。


更多内容