量化选股策略回测系统
发布时间:2023-7-20 17:59阅读:637
前言:量化交易不是什么新鲜名词了,自从计算机出现在金融交易领域之后,就有越来越多的交易员从传统的人工交易转到计算机自动交易。
那些从事量化交易的交易员,本身也是很优秀的制图师,他们需要分析大量的市场数据,得到不同的指标之后作为判断依据。从这个方式出发诞生了很多理论,像波浪理论,动量理论。我们一般也是可以通过这些理论做选股策略,就是很多人长使用指标。其实指标和量化的区别就是一个是参考筛选条件,一个是程序实现自动交易。
量化交易分几个部分:
1.交易工具
2.量化策略
3.策略回测
量化交易系统既可以做回测,又可以做快速地实盘交易;还可以很方便的扩展指标或者信号。
我们可以定义自己的交易执行策略;还可以同时处理多个合约、多个策略、多个账户。量化交易本来就要求同时交易多个合约为好,甚至可以考虑用合约1的信号做合约2;可以同时做多个策略,资金使用率提高,风险分散;还可以多个帐户,有很多客观地需求。
同时支持回测和实盘,设置两个接口来实现,一个接口读行情,一个接口做交易。
1.读行情接口有两个派生,一个是从文件里面读数据,一个是从实盘行情服务器读数据。
2.交易接口也有两个派生,一个是下单通过网络报出去,一个是下单下到文件里。
这样回测、纸面交易和实盘交易的实现就是搭不同的积木。回测是把历史数据灌进来,下单到文件,最后统计一下回测结果好不好。真实的交易无非是听真实的行情,把单子报到网络中去。纸面交易则是听取真实的行情,下单下到文件中去。
今天我们重点讲讲策略回测步骤:
首先, 回测系统就是输入每日可买入的股票(这些股票是经过模型筛选得到的),然后回测系统根据一些条件买入卖出等操作。
一:买入情况:
1.需要一个股票的买入操作:

2.那么我们假设每支股票我们只买一次,不加仓,到止损点、止盈点或持股周期太长则全部卖出。
3.但是需要加一个判断条件:
如已在所买的股票中就不做买入操作,否则买入条件。
4.然后更新一些信息(包括尺寸股票,买入日期,买入价格,该股持仓时间,现金)。计算现金时,需要计算买入手续费!我们也是需要考虑进去的。

5.这个买入数量是我们预估的,可能会造成买入之后所剩现金无法付满手续。

6.回测需要一个股票的卖出操作。

7.找到需要卖出的股票在持仓股票中的索引,更新现金:(需要计算印花税、卖出费率等)
备注:更新其他一些信息:
二:卖出情况
1.卖出触发器:
因为我们是通过模型直接筛选了可以买入的股票,所以不需要买入触发器,但是需要一个卖出触发器。

2.首先根据日期和股票id获取股票当天一些信息。
3.找到该股在持仓股票的id。
4.判断开盘价是否到止盈或止损点:
5.如果没有,则先判断当日最低是否到止损点,再判断当日最高是否到止盈点(这里优先考虑差的情况,实际可能先到止盈点再到止损点)。
最后判断持股时间是否上限:(这里我们追求短线炒股,所以时间天数不要设置太长)
三:数据更新
1.当日信息更新:
需要一个更新当日股票的市值及总市值的一个操作。
2.得到持仓股票的收盘价。
3.更新市值、现金等信息。
4.更新最大回撤等信息。
回测主函数:
最重要的部分来了,也就是我们的回测。
1.为我们模型筛选后每日可买入的股票。
2.先按时间顺序排列,然后遍历选择股票。
3.买股票,这里我们假设对于每支股票,我们利用当前总市值的20%的现金去购买,如果现金小于5000就不买了。
然后判断持仓股票是否达到卖出要求,若达到则卖出,否则继续持有
最后更新一些持股周期和其他一些信息。
整个回测流程大致就是这样,量化选股策略中我们需要更加重视回测,更多量化策略详情关注交流。
温馨提示:投资有风险,选择需谨慎。


问一问
+微信
分享该文章
