问财量化选股策略逻辑
选取振幅大于1、2019年度分红比例大于25%、大单净量排行的股票作为选股对象。
选股逻辑分析
该选股策略通过振幅、分红和大单净量等因素,筛选出具有较好表现和较低风险的股票。振幅能够反映股票的波动性,2019年度分红比例能够反映公司的盈利情况,大单净量排行则是反映市场对该股票的认同度。通过综合考虑多因素,提高选股准确性。
有何风险?
该选股策略可能会有较大的样本外效应,根据振幅、分红和大单净量等因素选股可能会出现因子失效或数据改变等问题。同时,大单净量比较主观,所选的排行榜也选择过多或过少的股票都可能会影响选股结果。
如何优化?
可引入更多因素来筛选优质的股票,比如市盈率、市净率、成交量等,以增加选股维度,提高筛选效率。同时,在大单净量排行榜中根据具体情况选择合适的排名范围,避免样本失真。
最终的选股逻辑
通过振幅、分红和大单净量等因素,选取具有较好表现和较低风险的股票作为投资标的,以获得稳定的收益。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH-LOW)/OPEN
amplitude_bool = amplitude>0.01
// 筛选2019年度分红比例大于25%的股票
dividend_year = DIVIDENDYIELD*100
dividend_year_bool = dividend_year>25
// 筛选大单净量排行前10的股票
big_order_net = HSL
big_order_rank = RANK(big_order_net)
big_order_bool = big_order_rank<=10
// 筛选符合条件的股票
result = amplitude_bool & dividend_year_bool & big_order_bool
// 输出筛选结果
result
Python代码参考
import tushare as ts
# 筛选条件1:振幅大于1
today_data = ts.get_today_all()
amplitude = (today_data['high'] - today_data['low']) / today_data['open']
amplitude_bool = amplitude > 0.01
# 筛选条件2:2019分红比例大于25%
basic_data = ts.get_stock_basics()
dividend_year = basic_data['dividend_yield'] * 100
dividend_year_bool = dividend_year > 25
# 筛选条件3:大单净量排行前10名
transactions_data = ts.get_sina_dd('600519', date='20220316', vol=500)
big_order_net = transactions_data.groupby('code')['net'].sum()
big_order_rank = big_order_net.rank(method='min', ascending=False, na_option='bottom')
big_order_bool = big_order_rank <= 10
# 筛选符合条件的股票
result = amplitude_bool & dividend_year_bool & big_order_bool
# 输出筛选结果
final_result = today_data.loc[result].sort_values(by=["DOMINANTMARKETMAKING"], ascending=False)
print(final_result)
注:以上为示例代码,仅供参考,实际使用中需根据具体情况做适当调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
