问财量化选股策略逻辑
选取振幅大于1、股票均价站在五日均线之上、昨天换手率>8%的股票。
选股逻辑分析
振幅大于1代表股票价格波动较大,存在一定的交易机会;股票均价站在五日均线之上代表着该股票可能处于上升趋势中,有一定的上涨空间;昨天换手率>8%代表着股票受到市场关注度较高,存在一定的资金流入和涨价可能性。
有何风险?
该选股策略仍然忽略了一些公司基本面的因素,存在一定的投资风险;同时,该策略可能会将一些投机炒作热点的股票纳入其中,导致投资风险增加。
如何优化?
该策略可以适当加入一些重要的基本面指标,如ROE、EPS等,对这些指标进行适当的筛选,进一步降低选股的风险;同时,考虑将昨天换手率>8%的条件改为一定的市值、收入等基本面指标,更好地筛选出有良好基本面的潜力股票。
最终的选股逻辑
选取振幅大于1、股票均价站在五日均线之上、一定市值、收入等基本面指标以及一定涨幅和资金流入等条件的股票,建立合理的止损和盈利控制机制,进行适当的风险控制。
同花顺指标公式代码参考
// 挑选振幅大于1的股票
amplitude = (HIGH - LOW) / REF(CLOSE,1)
amplitude_bool = amplitude > 1
// 挑选股票均价站在5日均线之上的股票
ma5 = MA(CLOSE, 5)
price_over_ma5_bool = CLOSE > ma5
// 挑选昨天换手率>8%的股票
turnover_rate = (VOL - REF(VOL, 1)) / REF(VOL, 1) * 100
turnover_rate_bool = turnover_rate > 8
// 挑选符合条件的股票
result = amplitude_bool & price_over_ma5_bool & turnover_rate_bool
// 输出筛选结果
result
python代码参考
import tushare as ts
# 获取所有股票的基本信息
all_stocks = ts.get_stock_basics()
# 获取昨日的历史行情信息
date_str = ts.get_hist_data('000001', ktype='D', start='1 days ago', end='1 days ago').iloc[0].name
hist_data = ts.get_hist_data(all_stocks.index.tolist(), ktype='D', start=date_str, end=date_str)
# 获取股票的日线成交量、振幅、均价和换手率等信息
volume = hist_data['volume']
amplitude = (hist_data['high'] - hist_data['low']) / hist_data['pre_close']
ma5 = hist_data.groupby('code')['close'].rolling(window=5).mean().reset_index(name='ma5')
final_data = all_stocks.merge(ma5)
turnover_rate = hist_data['turnover']
# 获取市值、收入等重要基本面指标
market_cap = all_stocks['totals'] * all_stocks['price']
income = all_stocks['nprg']
# 挑选振幅大于1的股票
amplitude_bool = amplitude >= 0.01
# 挑选股票均价站在5日均线之上的股票
price_over_ma5_bool = final_data['close'] > final_data['ma5']
# 挑选昨天换手率>8%的股票
turnover_rate_bool = turnover_rate > 0.08
# 挑选符合条件的股票
result = final_data[(amplitude_bool & price_over_ma5_bool & turnover_rate_bool & (market_cap > 500000000) & (income > 0))]
# 输出筛选结果
print(result)
注:以上代码仅供参考,实际选股需结合具体情况进行适度修改。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
