高频因子--tick级别订单流因子计算(附代码)

文章来源于公众号:Logan投资

往期精选文章:

RSRS择时指标的150倍计算加速(有代码)

因子计算的1000倍加速

二级:手搓的择时指增

二级:最近思考的量化指标再挖掘

一级:轮胎行业的研究

一级:新能源汽车部件--CCS集成母排投研

有兴趣的朋友可以在公众号回复“OFI”获取因子计算的代码来自己改进再进行测试(附一个月单只股票的tick数据)

我国证券市场是订单驱动市场,在该市场中投资者通过发送订单将买卖委托命令发送到交易所进行撮合,而这一行为会被完整记录于限价订单薄(Limit Order Book,LOB)之中。限价订单薄包含了当前时刻一至五档的委买价、委卖价、委买量和委卖量,这些数据的变化可以识别为订单委托的增加、成交或者取消,价格的上升和下降,一定程度上反映了市场的买卖意图和价值信息。

目前在学术界基于订单薄构建的高频因子有许多,其有一种是研究交易不平衡(Trade Imbalance)来对价格的影响,如Chorida等(2002),也有一种是基于Cont等(2014)所提出的订单流不平衡(Order Flow Imbalance)框架进一步展开研究。

交易不平衡是使用已成交的订单成交量来进行计算,目前国内外大多数研究都基于Lee和Ready(1991)提出的分类算法来计算交易不平衡,主要是通过将某一时间段内的成交量通过 Lee-Ready(1991)判别法判断出是买方订单还是卖方订单,然后通过将一段时间内的买方订单和卖方订单相减进而计算得出。以下为LeeReady计算的不平衡因子代码。

G_data = {}
    cal_footpoint_model = 'quota_method'
    last_row = []
    for index, row in data.iterrows():
        if not last_row:
            last_row = row

        G_data[index] = {}

        bOF, aOF = multi_imb_En_t(row, last_row, count=5)
        
        G_data[index].update(bOF)
        G_data[index].update(aOF)
        
        midpoint = (row['a1'] + row['b1']) / 2  # 计算中间价
        G_data[index].update({'midprice': midpoint})

        last_price = row['last']
        sub_data = {}
        if cal_footpoint_model == 'quota_method':  #LeeReady分类算法
            if last_price > midpoint:
                pre_along = 1
            elif last_price < midpoint:
                pre_along = -1
            else:
                pre_along = pre_along

        sub_data['dirc'] = pre_along

        if cal_footpoint_model == 'quota_method':
            sub_data['OIBSH'] = pre_along * (max(0, row['volume'] - last_row['volume']))  # 股票时用的

        # sub_data['OIBNUM'] = pre_along * (row['num_trades'] - last_row['num_trades']) # 米筐的期货数据没有num_trades
        sub_data['OIBNUM'] = pre_along  # 没有num_trades时只能用每个tick当作一笔交易

        sub_data['spread'] = row['a1'] - row['b1']
        sub_data['S_B_share'] = max(0, row['volume'] - last_row['volume'])

        G_data[index].update(sub_data)
        G_data[index].update({'OIBDOL': pre_along * (max(0, row['total_turnover'] - last_row['total_turnover']))})

在上面的代码中,基于LeeReady的方法计算了OIBSH(交易量不平衡)、OIBNUM(交易次数不平衡)和OIBDOL(交易额不平衡)

但是基于这种方法计算的高频不平衡因子存在显著的局限性。因为在于交易量的标量性质无法捕捉交易方向的细微差别,而交易方向本身蕴含着关于股票价格行为的重要信息。所以Cont(2014)提出的订单流不平衡(Order Flow Imbalance,OFI)开始被纳入微观市场结构的研究范畴。

OFI根据市场订单到达的量、限价单到达的量和订单取消的量,以及对最优买价和最优卖价进行量化。

我自己通过翻阅文献,也对这个OFI 因子做了一些改进,大致的思想就利用主成分分析PCA和机器学习算法进行信息提取和预测。

总共对90个股票进行了高频因子的计算,使用2年历史的1分钟级别数据进行滚动预测,上图为其中三只股票的预测结果。准确率平均在60%左右,原来的因子准确率为57%,这一点提升在高频领域算是不错了。

虽是如此,但是想要将这个因子直接拿来实盘用还需要很多的改进和测试,上文的测试并没有从因子分析的框架进行分组回测来分析,主要是考虑到了数据量过于庞大,自己电脑没办法跑的原因。有兴趣的朋友可以在公众号回复“OFI”获取因子计算的代码来自己改进再进行测试。

参考文献:

[1]Cont R, Kukanov A, Stoikov S. The Price Impact of Order Book Events[J]. Journal of Financial Econometrics, 2014, 12(1): 47-88.

[2]Lee C M C, Ready M J. Inferring Trade Direction from Intraday Data[J]. The Journal of Finance, 1991, 46(2): 733-746.

<think>好的,用户想了解通达信的活跃度计算。首先,我需要确认用户指的是股票交易软件中的活跃度指标。通达信作为常用的股票分析软件,确实有活跃度相关的指标,但具体计算方法可能不公开。 接下来,我应该先回忆或查找通达信活跃度的常见计算方法。通常,这类指标可能基于成交量、换手率、价格波动等因素。例如,有的公式可能结合成交量的变化率和价格振幅。 然后,我需要验证这些信息的准确性,可能需要参考通达信的官方文档或可靠的技术分析资料。不过,由于通达信的公式可能属于专有信息,公开的详细计算步骤可能有限。因此,应该提醒用户注意这一点,避免提供不准确的信息。 另外,用户可能是想自己编写指标公式,所以需要建议他们参考通达信的公式编辑指南,或者提供常见的替代计算方法,比如结合成交量和价格变化率的加权公式。 最后,确保回答结构清晰,分步骤解释可能的计算方法,并强调实际应用中可能需要根据具体情况进行调整,同时建议用户查阅官方资源或咨询专业人士以获取准确信息。</think>关于通达信软件中的“活跃度计算”,需要明确以下几点: ### 一、概念说明 通达信软件本身没有官方公布的“活跃度”标准指标,但用户可通过自定义公式实现。常见的活跃度计算思路通常包含以下维度: 1. **量价结合指标** $$活跃度 = \frac{成交量}{通股本} \times 价格波动率$$ - 成交量:反映资金参与度 - 通股本:消除个股规模差异 - 价格波动率:衡量振幅强度 2. **高频交易因子** $$活跃度得分 = \sum_{i=1}^{n} (Tick成交量 \times 买卖价差系数)$$ 通过逐笔数据计算高频交易强度 ### 二、典型实现方案(参考公式) ```Tdx公式 {活跃度指标} VOL_RATE := VOL/FINANCE(46); {成交量/通股本} AMP_RATE := (HIGH-LOW)/REF(CLOSE,1); {振幅率} ACTIVE_DEGREE: VOL_RATE*AMP_RATE*100; ``` ### 三、应用场景 1. **短线选股**:筛选当日活跃度突增个股 2. **热点追踪**:监控板块活跃度排行 3. **量价验证**:配合MACD/KDJ等指标使用 ### 四、注意事项 1. 不同券商软件的数据颗粒度可能影响计算结果 2. 建议结合5日/10日均值观察趋势变化 3. 需警惕异常放量情况下的失真风险 建议在实际使用时,通过通达信公式编辑器(Ctrl+F)进行参数优化测试,也可参考软件内置的“量比”“换手率”等指标作为辅助验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值