问财量化选股策略逻辑
选股逻辑为:振幅大于1,企业性质优秀,股票10日涨幅大于0小于35。
选股逻辑分析
该选股逻辑主要考虑了股票价格波动、企业基本面以及股票市场表现。振幅大于1表明该股的价格波动较大,存在投机机会和投资价值,企业性质优秀保证了企业的盈利能力和可持续性。选股逻辑还考虑了股票的市场表现,通过10日涨幅筛选出市场表现良好的个股。整体能够有效识别市场中的投资机会,但仍需要注意风险点。
有何风险?
该选股逻辑有以下风险:
- 过分依赖技术面指标,忽略了基本面和行业因素等重要因素;
- 仅考虑了短期市场表现,在过于短暂的市场繁荣期中,很容易被短期反弹削弱;
- 涨幅数据有一定的噪点,需要进行分析和规避;
- 只考虑了少量的股票指标和市场表现,需要综合考虑慎重投资。
如何优化?
在选股策略中,可以结合其他股票基本面指标、行业和市场表现指标进行综合考虑,包括但不限于:
- 关注股票市场领袖、成长性股票等相关行业指标,以确保筛选出的个股符合长期市场发展趋势;
- 选择优秀的指标库或建立自己的指标库,如加入滚动策略等,以优化短期和长期的选股效果;
- 综合市场消息、新闻、分析师报告、定量数据等各方面的信息进行投资判断;
- 注意分散化投资,避免过度集中投资于少数个股。
最终的选股逻辑
在综合以上分析基础上,完善后的选股逻辑如下:
- 股票分类以代码60开头的创业板股票;
- 企业性质优秀,包括但不限于利润率、成长性、股息率等;
- 股票价格波动大,振幅大于1,反映股票的投机机会和投资价值;
- 市盈率、市净率等基本面指标均优秀;
- 股票10日涨幅良好,大于0且小于35;
- 在技术面上,可以考虑其他技术指标,如KDJ、RSI、MACD等;
- 根据市场情况和个人风险偏好,选择适当的排名范围;
- 在选股过程中,综合考虑技术指标、基本面指标、市场宏观指标、流动性指标、热度等多个方面进行筛选;
- 根据综合信息判断股票的投资价值及风险情况,最终得出投资决策。
同花顺指标公式代码参考
该选股逻辑的同花顺指标公式如下:
/* 选股公式 */
A:股票代码60开头;
B:XX企业性质;
C:HHV(HIGH,25)/REF(CLOSE,1)>1+EPS;
D:REF(CLOSE,1)/REF(CLOSE,9)>0 AND REF(CLOSE,1)/REF(CLOSE,9)<1.35;
A AND B AND C AND D<=N; /* N为排名范围 */
其中,A:股票代码60开头
表示股票分类以代码60开头的创业板股票,B:XX企业性质
表示企业性质优秀。C:HHV(HIGH,25)/REF(CLOSE,1)>1+EPS
表示股票价格波动大,振幅大于1。D:REF(CLOSE,1)/REF(CLOSE,9)>0 AND REF(CLOSE,1)/REF(CLOSE,9)<1.35
表示股票10日涨幅良好。 A AND B AND C AND D<=N
表示逻辑与且排名不高于N。
Python代码参考
适用于Tushare库的Python选股代码如下:
import tushare as ts
def is_selected(code, eps=1, rank_range=(1, 50)):
'''
判断股票是否满足选股逻辑
'''
if not code.startswith('60'):
return False
df_basic = ts.get_stock_basics()
if code not in df_basic.index or df_basic.loc[code, 'esp'] <= df_basic.loc[code, 'bvps']:
return False
df_hist = ts.get_hist_data(code)
if (df_hist['high'].rolling(25).max() / df_hist['close'].shift(1) > 1).sum() == 0:
return False
if df_hist['close'].pct_change(periods=9).iloc[-1] <= 0 or df_hist['close'].pct_change(periods=9).iloc[-1] > 0.35:
return False
rank = ts.top_list(df_moneyflow.index[0])['code'].tolist().index(code) + 1
if rank < rank_range[0] or rank > rank_range[1]:
return False
return True
# 获取热度排名前N的股票列表,遍历股票进行选股
stocks = ts.top_list()
selected_stocks = []
for i in range(N):
code = stocks['code'].iloc[i]
if is_selected(code, rank_range=(1, N)):
selected_stocks.append(code)
# 利用选股结果进行股票交易
for code in selected_stocks:
pass # 参考其他策略
其中需要根据选股策略修改参数,通过tushare库获取股票基本面信息和历史交易数据,并利用策略中设定的其他指标进行计算判断,最后利用选股结果进行股票交易。在Python代码中要注意startswith()函数的使用,特别是排除不是以60开头的股票。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
