选股逻辑
选取振幅大于1、MACD零轴以上,并且2019年分红比例超过25%的股票。
选股逻辑分析
选取具有一定波动性的股票,并且具有一定分红能力。
有何风险?
考虑到分红比例可能受到公司季度利润波动的影响,单一因素作为选股依据可能会出现选股不稳定的情况。
如何优化?
可结合其他因素,如公司基本面和财务数据等,增加选股稳定性。
最终的选股逻辑
选取振幅大于1、MACD零轴以上,并且2019年分红比例超过25%的股票。
同花顺指标公式代码参考
- 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
- MACD零轴以上:CROSS(MACD(12,26,9),0)>0
- 2019年分红占比:(DIV2YIELD+RIGHTS_DIVIDEND_RATIO)/(1+TRANS_STK_EXCHANGE_TAX)/(1+TAX_RATE)>0.25
python代码参考
import tushare as ts
def get_filter():
# 获取股票数据,并计算涨跌幅
df = ts.get_today_all()
df['change'] = (df['trade'] - df['settlement']) / df['settlement']
# 筛选出2019年分红比例超过25%的股票
div_ratio = (df['div2yield'] + df['rights_dividend_ratio']) / (1 + df['trans_stk_exchange_tax']) / (1 + df['tax_rate'])
mask = div_ratio > 0.25
df = df[mask]
# 计算振幅
amplitude = abs(df['high'] - df['low']) / df['open']
# 计算MACD指标
df['MACD'], df['signal'], df['hist'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
# 综合筛选条件
mask = (amplitude > 0.01) & (df['MACD'] > 0)
codes = mask.index.values.tolist()
return codes
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。