龙头战法实盘+AI-量化大赛NO.3-中证150增强_new
由qxiao创建,最终由qxiao 被浏览 247 用户
前言
感谢BQ-小Q送的礼物,礼物已经收到拉,一如既往的黑盒高科技风。高端大气上档次。
-
\
\
自我介绍
我是18年底加入的BQ,距今也快3年了,目前在一家私募中研究高频开发。在BQ之前也接触过其他的线上研究平台,例如米筐,JQ和vnpy框架辅助研究。 BQ作为国内为数不多的量化平台,咱们bigquant这边做的无疑是非常成功的,团队也非常有实力,从策略研究界面上也能感受到一股微软学院风。 为了加深了解行业发展的一些变化,基本上每年的BQ培训交流我都有会去参加,也感谢官方给我这次机会给大家分享 本次培训的一些成果 -AI-中证150综合增强策略。
策略思路
我们平常寻找投资模式的时候一般分为两种:左侧的抄底低估值品种和右侧的信号交易。
左侧的抄底低估值品种
预判未来会上升,买的是预期。比如很多做价值投资的理念都来源于此,找一家好公司,在它的价值被低估的时候买入。
==优点:盈亏比高,交易成本低。==
==缺点:时间成本高,选股难度大。==
右侧的信号交易
在符合交易预期的信号出现的时候买入。比如很多做趋势投资,或者超短套利的策略都是围绕信号交易。
==优点:可以通过交易次数积累优势,交易模式灵活==
==缺点:交易成本高,遇到风格反转容易损失多头利润==
中证150增强的策略
中证150增强的策略,结合了两者的优缺点。 尝试在策略中挖掘那些未来有投资价值的标的,捕捉趋势并买入, 赚取股价在趋势中上涨的收益。
价值投资最难的地方在于选股,需要寻找到一个合适的投资标的往往需要投入大量的投研时间。而短线信号择时难的地方在于信号的精准度,要提炼出更高胜率的交易信号,也得对股票的股性还有市场的风格有较深的研究。
我们通过算法来大数据挖掘,省去全市场选股的步骤,直接将好的股票样本交给AI算法做打分排序,让它学会寻找那种绩优股。同时也通过一些交易信号择时,增加交易的机会。
主要是围绕一些值得做中长线的,可以做价值投资的股票标的,我们通过AI算法的预测值,进行排序,筛选择时信号,选出那些未来5日内最有可能 形成主升浪起爆点的强势股票。 在中短期内低买高卖,拿到一个风格成长的收益,做跟踪趋势投资的模式。
选股思路
股票池范围和样本提前做了划分,手动导入了中证150的样本池。 选择的股票以赛道抱团股为主,也就是所谓的核心资产, 数量在100-300之间。
股票的市值都在100亿以上,安全性会有保障,踩雷的可能性会稍微低一点; 同时因为本身基本面不错,每天的成交量也不少,流动性充足,股性也比较活跃, 行情来临时更容易顺风而起,被称为卡位等风。
总体来说,我的策略缩小了算法的选股范围,可以在一定程度上起到降低市场噪音的作用,也能让模型选股的精确率提高,在5000选一和300选一之间,明显后者的难度会更小。
\
择时思路
在策略中加入了简单的择时:
- macd的红柱量能线要大于绿色量能线
- 收盘价最低回踩25日内均线不破,可以防止趋势走坏
- 要求macd的黄线慢线要大于0.2
cond1=sum(ta_macd_dif(close_0,2,4,4),5)>sum(ta_macd_dea(close_0,2,4,4),5)
cond2=close_0>mean(close_0, 25)
cond3=sum(ta_macd_dea(close_0,2,4,4),5)>0.2
\
因子选择
主要选择三个因子,主要是量价因子和资金流因子:
- avg_turn_15/turn_0
- mf_net_amount_xl_0
- alpha4=close_0avg_turn_0+close_1avg_turn_1+close_2*avg_turn_2
==选择换手率因子,是为了找流动性较好的股票,股性较为活跃。 选取资金流超大单因子,是为了增加短期买点的爆发力。 因为超大单因子的ic均值很高,而且存在一定的方向性,在牛市中有较为稳健的风格收益。==
自动标注表达式
- relative_ret=stockret-bmret
- relative_ret_5=sum(relative_ret,5) #5日的累计大盘相对收益率
- relative_ret_30=sum(relative_ret,30) #30日的累计大盘相对收益率
过滤表达式:
(relative_ret_5>0)&(relative_ret_30>0)&(rank(relative_ret_30)>0.8) #找到5日内相对收益率>0且 30日内的相对收益率大于80%分位数的股票。
也就是所谓的强趋势股,能在震荡中上升,或者是那种非常抗跌的股票。
大盘风控
采用了 沪深300的macd均线死叉作为风控触发条件
bm_0=where(ta_macd_dif(close,2,4,4)-ta_macd_dea(close,2,4,4)<0,1,0)
止盈止损
1.赚60%且为可交易状态就止盈
if stock_market_price/stock_cost-1>=0.6 and data.can_trade(context.symbol(instrument)):
context.order_target_percent(context.symbol(instrument),0)
cash_for_sell -= positions[instrument]
current_stopwin_stock.append(instrument)
2.亏-5%并且为可交易状态就止损
if stock_market_price/stock_cost-1 <= -0.05 and data.can_trade(context.symbol(instrument)):context.order_target_percent(context.symbol(instrument),0)
cash_for_sell -= positions[instrument]
current_stoploss_stock.append(instrument)
持仓票数
总共持仓5只股票,轮仓天数为5天, 最大单票资金比例不超过10%。
stock_count = 5
context.max_cash_per_instrument =0.1
context.options['hold_days'] = 5
https://bigquant.com/codesharev2/820b63a9-f4cd-4810-9678-a57ecb3a4b16
\