问财量化选股策略逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,主板股票,前天MACD指标小于0。期望通过技术面、市场情绪及市场热度控制,找到具备较好市场提升空间和投资价值的个股。
选股逻辑分析
本选股策略主要依据技术面、市场情绪及市场热度进行股票筛选。其中,选择RSI指标小于65、今日上涨幅度大于1%、主板股票,旨在排除市场短期内表现过于弱势的个股及低流动性的二板、创业板股票;选择前天MACD指标小于0,从技术面上倾向于选择近期处于下跌趋势中且有望反转的股票。期望通过多方面因素的考虑,筛选出具备较好市场战斗力的优质股票。
有何风险?
本选股策略仍有严重误判股票的可能性,例如,有些个股因为未来业绩及市场热点复苏情况的变化而出现调整,而无法取得理想表现;部分个股近期涨势过于猛烈而出现高位震荡。此外,筛选标准相对简单,而且无法充分考虑股市风险,存在潜在风险。
如何优化?
可以采用基于机器学习的算法挖掘更多有效的因子,例如PE、PB、ROE等财务因子、市场情绪等因素,进一步筛选出市场走势及个股表现良好的优质股票;此外加入换手率等因素,来反映个股的市场流动性,以平衡个股的风险。此外加强风险管理意识,及时监测股市变化,调整仓位,控制风险。
最终的选股逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,主板股票,前天MACD指标小于0。期望通过技术面、市场情绪及市场热度控制,找到具备较好市场提升空间和投资价值的个股。
同花顺指标公式代码参考
前天MACD小于0: REF(MACD(),2) < 0
python代码参考
# 导入需要使用的库
import pandas as pd
import tushare as ts
# 选股函数
def stock_picking():
# 获取RSI指标小于65、今日上涨幅度大于1%、主板股票、前天MACD指标小于0的股票
data = ts.get_today_all()
data.dropna(inplace=True)
hist_data = ts.get_hist_data(code_list=data['code'].tolist(), ktype='D', start=(pd.Timestamp.today() - pd.Timedelta('300 days')).strftime('%Y-%m-%d'))
calc_data = pd.concat([data, hist_data], axis=1, join='inner')
filter_data = calc_data[(calc_data['rsi'] < 65) & (calc_data['changepercent'] > 1.0) & (calc_data['stock_type'] == '主板')]
macd_data = ts.get_hist_data(code_list=filter_data['code'].tolist(), ktype='D', start=(pd.Timestamp.today() - pd.Timedelta('3 days')).strftime('%Y-%m-%d'), end=(pd.Timestamp.today() - pd.Timedelta('1 days')).strftime('%Y-%m-%d'))
macd_filter_data = macd_data[macd_data['macd'] < 0]
filter_data = pd.merge(filter_data, macd_filter_data, on='code', how='inner')
filter_data = filter_data[['name', 'industry', 'open', 'price', 'outstanding', 'totals', 'totalAssets', 'liquidAssets', 'fixedAssets', 'reserved', 'reservedPerShare', 'esp', 'bvps', 'pb', 'timeToMarket']]
return filter_data
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


