11.会员专属(499)

综合风控:如何通过条件止损+补仓+精炼买入/卖出信号 (副本)

由small_q创建,最终由small_q 被浏览 11 用户

作者:woshisilvio

导语

对于部分中长线策略来说,并不是当天买入股票,第二天必须卖出,其持仓天数可能要长达5-10天及以上。除了止损之外,还要对部分看好的股票进行补仓,在个股的处理逻辑上会更多样化,也更加复杂。实际交易中我们除了需要大盘风控应对大盘下行的风险之外,可能还要有一套针对个股进行择时的方法。 因此,我们这一期Meetup将结合上一期三种构建大盘风控指标的方法 ,将 一些日常用的个股操作逻辑汇总结合大盘风控与个股择时的方法,糅合在一起做一个综合型策略案例。

{w:40}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

主要方法

  1. 特征表达式 构造大盘风控表达式
  2. 特征表表式 构造个股择时表达式
  3. 数据连接与排列操作
  4. 主函数中的数据读取,对补仓逻辑的编写
  5. 数据准备函数 读取持仓个股的状态
  6. 盘前处理函数可以对未撮合的订单做处理

效果

  1. 在可视化画布中,可以对大盘风控和个股择时的表达式进行更改
  2. 在回测引擎-主函数中可以用来判断当日大盘情况,次日决定是否空仓/卖出持仓 ;
  3. 在回测引擎-主函数中可以判断当日个股的资金流,量价,形态数据,决定是否执行卖出操作/补仓
  4. 在回测引擎-数据准备函数函数中可以传入当日的个股的资金流,量价,形态数据,
  5. 在回测引擎-盘前处理函数对持仓股票进行判断:涨停不卖,是否保留持仓

构建步骤

①把指数当日用来判断风控的数据通过特征抽取模块构造出来

用指数的成交量(3.5日ma线死叉作为 全仓卖出风控的依据

 bm_0=where(mean(volume, 5)-mean(volume, 10)<0,1,0)


②把个股当日当日用来做择时判断通过特征表达式抽取出来

当日的资金流超大单数据

cond8=mf_net_amount_xl_0 

收盘价是否大于20日均线,用来做20日均线止损

cond13=where(close_0>mean(close_0, 20), 1, 0) 

收盘价是否小于10日均线大于20日均线-用来判断是否低吸补仓

 cond14=where((close_0>mean(close_0, 20))&(close_0<mean(close_0, 10)), 1, 0)

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

③把两个数据拼接,并且把可视化模块中的大盘风控的数据块与个股择时的数据块 一同传入回测引擎

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

④把传入进来的数据在主函数中挨个读取并进行计算

为了防止数据为空传入时报错,可以做一个容错处理

收盘价是否小于10日均线大于20日均线,用来判断是否低吸补仓

#try: 
cond14=ranker_prediction.cond14.values print(cond14) 

#except: 
print('当天 cond14有数据缺失,请检查!',today_date)

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下面是止盈止损补仓编写,把前面在可视化画布中读取到的数据进行判断:是否满足进行止损或者补仓的条件?

例如:

读取 cond8 当日资金流的数据

 zjl=ranker_prediction[ranker_prediction.instrument==i].cond8 #print('资金流',zjl)

读取 cond13 当日是否跌破20日均线-发生止损的数据 --如果收盘价>ma20 返回1,收盘价<ma20返回0

 zhisun_20=ranker_prediction[ranker_prediction.instrumenti].cond13
 print('止损线-20日均线',zhisun_20) 

读取 cond14 收盘价是否小于10日均线大于20日均线-用来判断是否低吸补仓的数据

 bucang10_20=ranker_prediction[ranker_prediction.instrumenti].cond14 #print('补仓线-10日线-20日均线',bucang10_20)

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

⑥把刚才个股的数据传入 买入函数单元中,可以进行买入前的择时 (可以对资金流,形态,量价数据做限制)。

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

⑦ 把 持仓中个股的资金流数据 通过数据准备函数传入

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

通过这一系列的操作,我们可以针对个股择时进行更加精细化的处理,精炼买入和卖出的信号,让策略的买入逻辑整体变得更严谨,同时更有层次感。

讲解视频

https://www.bilibili.com/video/BV1oS4y1P7rZ/

策略源码

https://bigquant.com/experimentshare/a3052767fd9149ad9107dda00299ad24

\

{link}