文章目录
- QMT介绍
- 基本使用代码
- 初始化
- 股票和行情
- 交易
- 量化策略示例
- 相关链接
QMT介绍
QMT是迅投公司出品量化交易客户端软件,目前只能运行在windows机器上,分为QMT 和 miniQMT两种模式,后者可以采用python API做程序化交易,极大方便了广大散户。这点上比同花顺/通信达好很多。
国金版登录界面如下:
基本使用代码
初始化
from xtquant import xtconstant
from xtquant.xttrader import XtQuantTrader
from xtquant.xttype import StockAccount## 初始化trader对象
path = r'D:\国金证券QMT交易端\userdata_mini'
session_id = int(random.randint(100000, 999999))
xt_trader = XtQuantTrader(path, session_id)## 启动
xt_trader.start()## 连接QMT客户端
connect_result = xt_trader.connect()
print(connect_result)
if connect_result == 0:print('连接成功')## 订阅账户
acc = StockAccount('xxxxx')
subscribe_result = xt_trader.subscribe(acc)
print(subscribe_result)
股票和行情
from xtquant import xtdata## 下载板块数据
xtdata.download_sector_data()
res = xtdata.get_stock_list_in_sector('沪深A股')
res = xtdata.get_sector_list() ## 板块列表## 获取历史行情
xtdata.download_history_data(stock_code='002358.SZ', period='1d', start_time='20220101', end_time='20221001')## 多股下载
xtdata.download_history_data2(stock_list=['600360.SH', '600989.SH', '002207.SZ'], period='tick', start_time='20231111', end_time='20231115', callback=on_progress)## 实时行情
res = xtdata.get_full_tick(['600360.SH']) ## 该股票最新的tick数据
seq = xtdata.subscribe_whole_quote(code_list=['600360.SH'], callback=on_data) ## 订阅## 获取财务数据
table_list = ['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']xtdata.download_financial_data(stock_list=['600360.SH'], table_list=table_list)
交易
stock_code = '000429.SZ'
## 下单
order_id = xt_trader.order_stock(acc, stock_code, xtconstant.STOCK_BUY, 100, xtconstant.FIX_PRICE, 7.5)
print(order_id)
## 撤单
xt_trader.cancel_order_stock(acc, 1082130954)
量化策略示例
“打地鼠”策略示例代码:
db_path = r'D:wenjianpythonsmartdataguojin_account.db'# 读取需要打地鼠的数据库中的持仓数据,并保存到数据表——与策略一起运行,与打地鼠策略无直接关系。
def get_filtered_data(db_path: