企业微信

交易师软件与北交所数据基础

交易师软件内置北交所股票行情接口,覆盖全部北交所上市公司。数据字段包括开盘价、最高价、最低价、收盘价、成交量、成交额、换手率、市盈率等。实时数据通过TCP推送,历史数据支持按日、周、月及分钟级下载。北交所股票代码以8开头,交易师使用统一数据格式,便于与沪深股票池混合处理。

北交所数据特征与沪深存在差异。涨跌幅限制为30%,新股上市首日无涨跌幅限制。流动性相对较低,单笔成交金额较小,对量化策略的冲击成本敏感。交易师软件提供的数据清洗功能可过滤异常报价,避免脏数据影响回测结果。

获取北交所数据的编程接口

交易师软件开放Python API,函数名通常为get_market_dataget_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_sqlto_hdf。每日收盘后增量更新北交所数据,避免重复下载。


df.to_sql('bjse_daily', con=engine, if_exists='append')

量化交易中的北交所数据应用要点

北交所数据波动大,因子有效性衰减快,需每周重新校准。期货数据用于风险对冲,降低组合回撤。交易师软件的数据接口稳定,延迟低于50毫秒,满足中高频策略需求。回测时使用event_driven模式,避免未来函数。实盘前用paper_trading模拟一周,验证信号执行和滑点。

北交所股票代码与沪深不冲突,可统一管理。交易师软件支持多市场同时回测,股票与期货混合持仓。策略参数优化使用grid_search,避免过拟合。最终实盘资金分配建议:北交所股票占60%,期货对冲占40%。