交易师软件里的北交所数据怎么用于量化股票交易
摘要:
交易师软件提供北交所数据接口,用于股票与期货量化策略。获取历史与实时行情,构建因子模型,执行回测和自动交易。

交易师软件与北交所数据基础
交易师软件内置北交所股票行情接口,覆盖全部北交所上市公司。数据字段包括开盘价、最高价、最低价、收盘价、成交量、成交额、换手率、市盈率等。实时数据通过TCP推送,历史数据支持按日、周、月及分钟级下载。北交所股票代码以8开头,交易师使用统一数据格式,便于与沪深股票池混合处理。
北交所数据特征与沪深存在差异。涨跌幅限制为30%,新股上市首日无涨跌幅限制。流动性相对较低,单笔成交金额较小,对量化策略的冲击成本敏感。交易师软件提供的数据清洗功能可过滤异常报价,避免脏数据影响回测结果。
获取北交所数据的编程接口
交易师软件开放Python API,函数名通常为get_market_data、get_history_data。调用时指定市场代码BJSE或直接使用股票代码前缀8。以下代码演示获取北交所股票日线数据并转换为DataFrame。

import tradingmaster as tm
# 初始化连接
api = tm.TraderAPI()
api.connect()
# 获取北交所股票列表
bj_stocks = api.get_stock_list(market='BJSE')
# 拉取单只股票历史日线
df = api.get_history_data(
symbol='830799',
start='2024-01-01',
end='2024-12-31',
frequency='1d',
fields=['open','high','low','close','volume','amount']
)
print(df.head())
实时数据订阅使用subscribe方法,回调函数接收tick数据。北交所tick频率为3秒一笔,与沪深一致。期货数据同样通过该接口获取,合约代码需指定交易所前缀,如CFE代表中金所,SHF代表上期所。
def on_tick(data):
print(data.symbol, data.last_price, data.volume)
api.subscribe(symbol='830799', callback=on_tick)
北交所股票量化策略构建
北交所股票适合小市值因子、流动性因子和动量因子。交易师软件提供因子计算库,可直接调用alpha101中的部分因子。以下策略基于北交所股票日内均价线突破。
策略逻辑:当收盘价上穿过去20分钟均价线且成交量放大1.5倍时做多,下穿时平仓。回测周期为2024年1月至2024年6月。代码使用交易师回测引擎。
from tradingmaster import Strategy, run_backtest
class BJBreakout(Strategy):
def __init__(self):
self.ma = self.indicator('MA', period=20)
self.vol_ma = self.indicator('MA', period=20, field='volume')
def on_bar(self, bar):
if bar.close > self.ma[-1] and bar.volume > self.vol_ma[-1] * 1.5:
self.buy(bar.symbol, 100)
elif bar.close < self.ma[-1]:
self.sell(bar.symbol, 100)
run_backtest(BJBreakout, symbols=bj_stocks, start='2024-01-01', end='2024-06-30')
回测结果需关注夏普比率、最大回撤和胜率。北交所股票滑点设置建议为0.2%,手续费按万分之三双边。
期货数据与跨品种套利
交易师软件同时提供期货数据,包括商品期货和金融期货。北交所股票与期货可构建跨品种策略,如买入北交所小市值股票组合,卖出中证1000股指期货对冲系统性风险。数据获取方式与股票相同,期货合约需注意主力连续合约的拼接。
# 获取中证1000股指期货主力连续
future_df = api.get_history_data(
symbol='IM9999',
market='CFE',
start='2024-01-01',
end='2024-12-31',
frequency='1d'
)
套利策略使用协整检验。计算北交所股票组合收益率与期货收益率之差,当价差偏离均值2倍标准差时开仓。交易师软件内置coint函数,直接输出p值。
from statsmodels.tsa.stattools import coint
score, pvalue, _ = coint(stock_returns, future_returns)
if pvalue < 0.05:
# 执行配对交易
pass
数据质量与实盘注意事项
北交所数据存在停牌、临时停牌和盘后固定价格交易。交易师软件数据接口返回的status字段标识交易状态,策略需过滤非连续交易时段。盘后固定价格交易时段为15:00-15:30,此时成交价格固定为收盘价,量化策略应避免在该时段下单。
实盘部署时,使用交易师软件的live_trading模块,设置bjse_slippage=0.002。期货保证金监控通过risk_manager实现,单笔最大亏损不超过总资金的2%。北交所股票最小交易单位为100股,卖出时不足100股需一次性卖出。
数据存储建议使用本地SQLite或HDF5,交易师软件支持to_sql和to_hdf。每日收盘后增量更新北交所数据,避免重复下载。
df.to_sql('bjse_daily', con=engine, if_exists='append')
量化交易中的北交所数据应用要点
北交所数据波动大,因子有效性衰减快,需每周重新校准。期货数据用于风险对冲,降低组合回撤。交易师软件的数据接口稳定,延迟低于50毫秒,满足中高频策略需求。回测时使用event_driven模式,避免未来函数。实盘前用paper_trading模拟一周,验证信号执行和滑点。
北交所股票代码与沪深不冲突,可统一管理。交易师软件支持多市场同时回测,股票与期货混合持仓。策略参数优化使用grid_search,避免过拟合。最终实盘资金分配建议:北交所股票占60%,期货对冲占40%。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: