问财量化选股策略逻辑
选股逻辑:选择RSI小于65,规模在2亿以上,100亿市值以内,且无亏损企业的股票。
选股逻辑分析
该选股逻辑同时考虑了技术指标和基本面因素,选股条件包含了股票市值、收益、财务健康状况等多个方面,更为全面和复杂。能够筛选出市场上符合多种条件、有投资价值的个股。
有何风险?
该选股逻辑存在以下几个风险:
- 过于依赖RSI指标,忽略了其他技术指标和基本面因素对股票的影响;
- 财务健康状况是企业的长期状态,选股过于短期化,不利于选出符合长期价值投资的股票;
- 无法保证选股结果的盈利性以及未来效果的稳定性。
如何优化?
可以在技术指标和基本面因素选择上进行更广泛的考虑,不要过于依赖单一指标。并且将选股范围逐步拓展到长期投资价值领域,以找到真正符合投资价值的标的。
最终的选股逻辑
筛选出RSI小于65,规模在2亿以上,市值在100亿内,近三年无亏损记录的股票。
同花顺指标公式代码参考
SELECT * FROM (
SELECT
S_INFO_WINDCODE AS STOCK_CODE,
S_VAL_MV AS MKT_CAP,
1 AS IS_PROFIT
FROM
ASHAREEODPRICES
JOIN AShareBalanceSheet ON ASHAREEODPRICES.TRADE_DT = AShareBalanceSheet.TRD_DT
JOIN ASHAREINCOMESTATEMENT ON ASHAREEODPRICES.TRADE_DT = ASHAREINCOMESTATEMENT.ANN_DT
WHERE
TRADE_DT >= '2018-01-01'
AND ANN_DT > '2018-01-01'
GROUP BY
S_INFO_WINDCODE, S_VAL_MV
HAVING
S_VAL_MV >= 2e8 AND S_VAL_MV < 1e11
AND COUNT(*) >= 10
AND SUM(NET_PROFIT > 0) >= 8
) A
WHERE
(SELECT MEAN(RSI(CLOSE, 14)) FROM ASHAREEODPRICES WHERE S_INFO_WINDCODE = A.STOCK_CODE AND TRADE_DT >= '2021-01-01') < 65
python代码参考
from jqdata import *
import talib
# 定义选股条件
def select_condition(context):
# 选取规模在2亿以上,100亿市值以内的股票
q = query(
valuation.code,
valuation.circulating_market_cap,
indicator.net_profit,
).filter(
valuation.circulating_market_cap >= 2e8,
valuation.circulating_market_cap < 1e11,
indicator.net_profit > 0
)
# 加入近三年内未亏损的条件
for i in range(1, 4):
q = q.filter(indicator.inc_net_profit_year_on_year.values(i) > 0)
all_stocks = get_fundamentals(q)
return all_stocks
# 获取选股结果
def select_stocks(context):
all_stocks = select_condition(context)
# 将选出结果中的股票与全市场中的股票做比较
all_codes = get_all_securities(types='stock', date=context.current_date).index.tolist()
stocks = all_stocks.loc[all_stocks['code'].isin(all_codes)]
# 筛选RSI小于65
selected_stocks = stocks.loc[talib.RSI(get_bars(stocks['code'].tolist(), context.window, '1d', ['high','low','close'])['close'], timeperiod=14).iloc[-1] < 65]
return selected_stocks
# 注册选股函数
m = M.instruments(v['margin'])
m.add_strategy(select_stocks, force=True)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


