问财量化选股策略逻辑
选股逻辑:选择RSI小于65、周线MACD在零轴之上、2019年分红比例大于25%的股票。
选股逻辑分析
该选股策略基于技术分析和基本面因素,选股逻辑为RSI小于65、周线MACD在零轴之上、2019年分红比例大于25%的股票。该策略综合考量了技术指标和基本面因素,从分红政策等角度出发选择分红比例大于25%的股票,同时基于技术分析选出MACD指标和RSI指标的符合要求的股票。
有何风险?
该选股策略忽略了一些重要的基本面和市场因素,如公司的盈利能力、现金流、资产负债比率等指标,以及市场运行状态等因素。同时,选择分红比例作为投资策略因素可能会忽略一些其他的重要因素,例如公司的经营管理水平和业绩表现等。
如何优化?
在原有选股策略的基础上,可以加入更多基本面因素,例如公司的盈利能力、财务稳定性、资产管理能力等指标,丰富选股逻辑,综合多方面因素来选股。同时,应对分红比例进行动态调整,以适应市场情况的变化。此外,定期进行投资回报评估,及时优化选股策略。
最终的选股逻辑
在RSI小于65、周线MACD在零轴之上、2019年分红比例大于25%的条件下,根据市场情况和公司的基本面,综合考量盈利能力、财务稳定性、资产管理能力等指标,筛选出具备长期投资价值的股票。
同花顺指标公式代码参考
SELECT STOCK_LIST.*,
GET_RANKING() AS RANKING
FROM STOCK_LIST) RESULT
WHERE C1
ORDER BY RANKING ASC
Python代码参考
import pandas as pd
import akshare as ak
def get_ranking(df):
df = df[df['RSI'] < 65]
df = df[df['MACD'] > 0]
df = df[df['分红比例'] > 0.25]
df['涨幅'] = (df['收盘价'] - df['昨收盘']) / df['昨收盘']
df = df[df['涨幅'] < 0.097]
df = df[df['涨幅'] >= 0.07]
df['大单净额'] = (df['大单买入额'] - df['大单卖出额']) / 100000000
df['连续三天大单净额'] = df['大单净额'].rolling(window=3).sum()
df = df[df['连续三天大单净额'] > 0.05]
df = df[['代码', '名称', '收盘价', '市盈率(动态市盈率)', '分红比例']]
df = df.sort_values(by='市盈率(动态市盈率)', ascending=True)
return df
def get_stock_list():
stock_list = ak.stock_zh_a_daily_hfq(date='20220128')
stock_list['市值'] = stock_list['市值'].astype(float)
stock_list['流通市值'] = stock_list['流通市值'].astype(float)
stock_list = stock_list[stock_list['市值'] > 0]
stock_div = ak.stock_financial_report_sina(stock="全部", year="2019", quarter="4")
stock_div['code'] = stock_div['代码'].apply(lambda x: x.split('.')[0])
stock_div.drop(['代码'], axis=1, inplace=True)
stock_list = pd.merge(stock_list, stock_div, on="code")
stock_list.rename(columns={'收盘价': '收盘价', '名称': '名称', '代码': '代码', '市盈率(动态市盈率)': '市盈率(动态市盈率)', 'MACD': 'MACD',
'RSI': 'RSI', '大单买入额': '大单买入额', '大单卖出额': '大单卖出额', '非ST': '非ST', '昨收盘': '昨收盘',
'总市值': '市值', '流通市值': '流通市值', '成交金额': '成交金额', '成交量': '成交量','送股': '送股', '转增股': '转增股',
'派息': '派息', '分红年度': '年份', '分红方案': '方案'}, inplace=True)
df = stock_list[['代码', '名称', '收盘价', '市盈率(动态市盈率)', 'MACD', 'RSI', '大单买入额', '大单卖出额', '非ST', '昨收盘', '分红比例']]
stock_list = pd.merge(stock_list, df_short, on=['代码', '名称', '收盘价', '市盈率(动态市盈率)', 'MACD', 'RSI', '大单买入额', '大单卖出额', '非ST', '昨收盘', '分红比例'])
stock_list = get_ranking(stock_list)
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


