问财量化选股策略逻辑
选股逻辑:rsi小于65,上市大于1年,换手率大于2%且小于9%。
选股逻辑分析
该选股逻辑主要是通过技术面指标和基本面指标进行筛选。首先选择RSI指标,以判断股票的超买或超卖情况,选取近期相对较弱的股票。其次,要求股票上市时间不少于1年,筛选业绩稳定、市场价值有所体现的公司。最后,选取换手率在2%到9%之间的股票,筛选具有一定市场流动性、较小的波动性且未被大资金主力机构关注的股票,从而使得进场成本更低,风险降低。
有何风险?
该选股逻辑忽略了一些重要的基本面指标和市场行情等因素,可能会漏选一些表现优良但不符合条件的股票。另外,换手率并不能完全反映一只股票的市场流动性和波动性等关键指标。
如何优化?
可以在基本面指标上增加一些筛选条件,例如过去一年的盈利增长率、净资产收益率等,进一步评估公司的财务情况。同时,也可以结合市场行情等信息,例如惯性指标和市场拐点等,筛选出更有潜力的股票。此外,可以通过一定的统计分析和回测来完善选股策略,减少投资风险。
最终的选股逻辑
选股逻辑:rsi小于65,上市大于1年,换手率大于2%且小于9%。
同花顺指标公式代码参考
C1: MAINBORADINFO(1) == 1 AND ZuiXinJia >= 5
C2: RSI(CLOSE, 14) < 65
C3: HSL >= 2 AND HSL <= 9
SELECT IF(C1 AND C2 AND C3, 1, 0)
Python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list():
result_df = pd.DataFrame()
stock_pool = ak.stock_zh_a_spot().astype({'证券代码':'str'})['证券代码'].tolist()
for code in stock_pool:
# 获取股票基本信息和财务数据
stock_info = ak.stock_info_a_name(code).reset_index(drop=True)
if len(stock_info) == 0:
continue
stock_info.rename(columns={"0": "name", "4": "industry"}, inplace=True)
stock_info['code'] = code
stock_info = stock_info[['code', 'name', 'industry']]
# 剔除上市时间较短的股票
if stock_info['上市时间'] > 1:
# 获取股票换手率,并筛选符合条件的股票
df_turnover = ak.stock_zh_a_hist(symbol=code)
if len(df_turnover) == 0:
continue
turnover = df_turnover.iloc[-1]['换手率']
if turnover > 2 and turnover < 9:
# 计算RSI
df = ak.stock_zh_a_daily(symbol=code, adjust="qfq")
if len(df) == 0:
continue
df['rsi'] = talib.RSI(df['收盘价'].values, timeperiod=14)
if df['rsi'].iloc[-1] < 65:
result_df = result_df.append(stock_info, ignore_index=True)
return result_df
Python依赖库
-
pandas
-
akshare
-
talib
## 如何进行量化策略实盘? 请把您优化好的选股语句放入文章最下面模板的选股语句中即可。 select_sentence = '市值小于100亿' #选股语句。 模板如何使用? 点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。 ## 如果有任何问题请添加 下方的二维码进群提问。 

