什么是程序化交易
大到量化、程序化、高频交易、套利交易、主观投资这些基本的概念,小到网格交易、条件单、T+0、ETF套利、期现套利、算法拆单交易、打板策略等具体的投资方式。如果没有接触过这些,很容易混淆。
程序化交易:
指通过既定程序或特定软件,自动生成或执行交易指令的交易行为。通过程序化交易,使得软件下单代替了人工委托。
在这次监管及沪深交易所给出的程序化相关业务通知中对程序化交易的定义为:
指通过计算机程序自动生成或者下达交易指令在本所进行证券交易的行为,包括按照设定的策略自动选择特定的证券和时机进行交易的量化交易,或者按照设定的算法自动执行交易指令的算法交易以及其他符合程序化交易特征的行为。
沪深交易所认为交易符合以下条件之一的,应当履行报告义务:
(1)下单自动化程度高:证券代码、买卖方向、委托数量、委托价格等指令的核心要素以及指令的下达时间均由计算机自动决定的程序化交易投资者。
(2)申报速率快:1天出现10次以上1秒钟内10笔以上申报(含撤单申报)的程序化交易投资者。
(3)交易股票只数多、换手率高:最近30个交易日日均交易沪市股票不少于50只,且最近30个交易日年化换手率在30倍以上的程序化交易投资者。
(4)使用自主研发或其他定制软件的程序化交易投资者。
(5)交易所认定的其他需要报告的情形。
使用会员为客户提供的带有一定自动化功能的客户端软件进行交易的,且不符合上述条件的投资者,无需进行报告。
不管我们使用那种投资交易方式,我们始终在解决两个核心问题:选股、择时(什么时候如何交易)。
通过上面的基本概念可以看出程序化交易是相对人工交易而言,最大的特点就是:由计算机来自动生成订单并完成交易。
其中上述沪深交易所表述的一条“使用会员为客户提供的带有一定自动化功能的客户端软件进行交易的,且不符合上述条件的投资者,无需进行报告。”。
比如证券公司针对机构用户或证券公司认定高净值的合格投资者提供的QMT和Ptrade两个主流的PC交易客户端中,就包括了: 网格交易、条件单、套利交易(ETF、可转债、期现)等自动化交易功能,这一类功能主要是用户通过可视化界面人工操作方式,预先设置一些规则,在条件触发后,由软件生成订单并由系统自动报单完成交易,按照上面的定义可以看出完全符合:程序化交易定义。
同时,QMT和Ptrade等“专业投资工具”均提供了用户可以以python、Java,C++等代码方式来编写一段“代码”来完成自己的交易,这样的方式相比软件提供的“标准的人工操作界面”的功能,可以更加灵活的实现一些个人的交易思路,这里的代码我们常称为“策略”,比如要实现一个简单的策略:1)如果上一时间点价格高出五天平均价1%,则全仓买入;2)如果上一时间点价格低于五天平均价,则空仓卖出,则在Ptrade的代码示例如下:
-
def initialize(context):
-
g.security = '600570.SS'
-
set_universe(g.security)
-
def handle_data(context, data):
-
security = g.security
-
sid = g.security
-
# 取得过去五天的历史价格
-
df = get_history(5, '1d', 'close', security, fq=None, include=False)
-
# 取得过去五天的平均价格
-
average_price = round(df['close'][-5:].mean(), 3)
-
# 取得上一时间点价格
-
current_price = data[sid]['close']
-
# 取得当前的现金
-
cash = context.portfolio.cash
-
# 如果上一时间点价格高出五天平均价1%, 则全仓买入
-
if current_price > 1.01*average_price:
-
# 用所有 cash 买入股票
-
order_value(g.security, cash)
-
log.info('buy %s' % g.security)
-
# 如果上一时间点价格低于五天平均价, 则空仓卖出
-
elif current_price < average_price and get_position(security).amount > 0:
-
# 卖出所有股票,使这只股票的最终持有量为0
-
order_target(g.security, 0)
-
log.info('sell %s' % g.security)
由此可见,证券公司提供的PC交易端中提供了不同层面的“程序化”交易工具,丰富了投资者的交易方式,以前这些交易方式大多数可能是机构投资者独有,比如ETF套利、期现套利之前都是证券公司自营的主要投资方向,但随着技术的普及化以及日益增长的投资者交易诉求,这些机构化的投资工具都可以“降位”给符合条件的个人使用,使用这些能不能赚到钱先不展开,因为片面的说,从投资交易角度,比如抢涨停,假设全市场都是用同质化的标准软件,那交易必然会趋同,赚钱效应就会大大降低。在沪深交易所的表述也特别强调到了这点,如果使用这些标准的工具不需要报告,但如果符合了申报速率高、交易频率高、换手高,或者说即使人工操作或使用以上简单代码触发了:每秒300笔或每天20000笔的监控阀值,也需要报告。
除了PC交易终端软件外,证券公司已将上述的“高级投资工具”集成在了各自的移动交易APP终端,进一步惠普散户。比如这次量化风波中,被散户抨击最多的:T0为例,很多证券公司在APP端都提供了,只要符合条件就可申请使用,而且这里最大的点,如果是同一个证券公司的同一个T0策略,那么散户使用的T0策略和机构使用的策略逻辑是一样的。因为目前市场上卡方科技、非凸科技、跃然科技、启能达等第3方的算法交易软件供应商,一般都会提供标准的:T0策略,如果某证券公司采购了其中某家的T0策略,那不管是机构客户使用PB客户端,还是散户使用移动APP终端,使用的T0策略背后,都是同一个“服务器”。除非是有的机构针对具体的产品策略进行了合作定制。