问财量化选股策略逻辑
选股逻辑:rsi小于65,上市大于1年,竞价涨幅>-2<5。
选股逻辑分析
该选股逻辑结合了技术面和市场情况,通过RSI指标判断股票是否具有较大的买入空间和市场潜力;通过竞价涨幅筛选出有短期上涨空间的股票。选股策略相对合理,但涉及到市场情况,风险较大。
有何风险?
因为竞价涨幅受到市场环境和市场情绪的影响较大,很容易被市场短期行情的波动所干扰,选股策略存在较大的噪音和误判风险。此外,瞬时竞价涨幅容易被人为操作,存在操作风险。
如何优化?
可以结合更多基本面指标和财务数据,例如盈利能力、估值水平、成长潜力等;或者考虑加入更加稳定的指标进行筛选,如PE、PB、ROE等。此外,也可以通过数据挖掘、机器学习等技术手段,筛选出与竞价涨幅相关的有效因子,提高选股策略的精度和稳健性。
最终的选股逻辑
选股逻辑:rsi小于65,上市大于1年,竞价涨幅>-2<5。
同花顺指标公式代码参考
XG1: RSI(14) < 65
XG2: LISTDAYINDEX() > 1
XG3: J2-J3 > -2 AND J2-J3 < 5
C1: MAINBORADINFO(0) == 1
C2: CIRCSHARE >= 5000 AND CIRCSHARE <= 10000
...
SELECT IF(XG1 AND XG2 AND XG3 AND C1 AND C2, 1, 0)
Python代码参考
import pandas as pd
import akshare as ak
def get_stock_list():
# 获取股票基本信息
stock_info_df = ak.stock_info_a_spot()
stock_info_df = stock_info_df[['代码', '名称', '市值']]
stock_info_df = stock_info_df.astype({'代码':'str'})
stock_info_df['code'] = stock_info_df['代码'].str.slice(start=0, stop=6)
stock_info_df.columns = ['code', 'name', 'market_cap']
# 获取股票日线交易信息
stock_daily_df = ak.stock_zh_a_hist(date="20220523")
stock_daily_df = stock_daily_df.astype({'代码':'str'})
stock_daily_df['code'] = stock_daily_df['代码'].str.slice(start=0, stop=6)
stock_daily_df = stock_daily_df[['code', '日期', '竞价涨跌幅']]
stock_daily_df.columns = ['code', 'date', '竞价涨跌幅']
# 计算RSI指标
rsi_df = pd.DataFrame()
for code in stock_info_df['code']:
df = stock_daily_df[stock_daily_df['code'] == code]
rsi = talib.RSI(df['竞价涨跌幅'].values, timeperiod=14)[-1]
rsi_df = rsi_df.append({'code': code, 'rsi': rsi}, ignore_index=True)
# 合并数据并筛选符合条件的股票
result_df = pd.merge(stock_info_df, rsi_df, on='code')
result_df = pd.merge(result_df, stock_daily_df, on='code')
result_df = result_df[(result_df['rsi'] < 65) & (result_df['竞价涨跌幅'] > -2) & (result_df['竞价涨跌幅'] < 5) & (result_df['market_cap'] >= 5000000000) & (result_df['market_cap'] <= 10000000000)]
# 返回结果
return result_df[['code', 'name']]
Python依赖库
-
pandas
-
akshare
-
talib
## 如何进行量化策略实盘? 请把您优化好的选股语句放入文章最下面模板的选股语句中即可。 select_sentence = '市值小于100亿' #选股语句。 模板如何使用? 点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。 ## 如果有任何问题请添加 下方的二维码进群提问。 

