问财量化选股策略逻辑
选股逻辑为:RSI指标小于65,归属母公司股东的净利润同比增长率大于20%小于等于100%,下午大单净流入。通过综合考虑技术面、基本面和资金面的因素,筛选出相对低位、盈利能力出众、并获得资金青睐的股票进行买入,以获取盈利。
选股逻辑分析
相比于之前的选股逻辑,增加了下午大单净流入的条件,更全面地考虑了资金面的因素。同时,保持了之前的RSI指标和归属母公司股东的净利润同比增长率条件,既考虑了技术面和基本面的因素,也为之后的资金面筛选提供了更好的基础。
有何风险?
该选股策略同样存在遗漏其他基本面和技术面指标的风险,如PE、PB等因素对股票市价的影响。同时,资金面特征的变化可能会导致投资效果的不稳定性。
如何优化?
可以增加其他基本面和技术面指标或条件,以更全面衡量公司的财务情况和股票价格。同时,对于资金面的选股,可以多考虑其他指标,如主力资金净流入、资金流向等,结合其他面向进行综合判断。
最终的选股逻辑
选股逻辑为:RSI指标小于65,归属母公司股东的净利润同比增长率大于20%小于等于100%,下午大单净流入。通过综合考虑技术面、基本面和资金面的因素,选择相对低位、盈利能力出众,并且资金流向积极的股票进行买入。
同花顺指标公式代码参考
// 筛选A股,非ST
SELECT S_INFO_WINDCODE
FROM ASHAREDESCRIPTION
WHERE S_INFO_EXCHMARKET IN ('SZSE', 'SSE')
AND S_INFO_LISTEDSTATE = '上市'
AND S_INFO_LASTTRADEDATE IS NULL
AND S_INFO_ST_FLAG = '否'
AND S_DQ_TRADESTATUS <> '停牌'
AND S_DQ_MAXUPORDOWN <> 1
AND S_INFO_WINDCODE IN (
SELECT S_INFO_WINDCODE
FROM ASHAREINCOME
WHERE S_FA_YEAR = YEAR(CURRENT_DATE)
AND S_FA_REPORT_TYPE = 'A'
AND S_FA_PROFIT_PARENT_COMPANY > 0
AND S_FA_PROFIT_PARENT_COMPANY / LAG(S_FA_PROFIT_PARENT_COMPANY, 3) > 1
AND S_FA_PROFIT_PARENT_COMPANY / LAG(S_FA_PROFIT_PARENT_COMPANY, 3) <= 2
)
AND S_INFO_WINDCODE IN (
SELECT S_INFO_WINDCODE
FROM ASHARESUNHINEINDUSTRY
WHERE S_DQ_CLOSE > S_DQ_OPEN
AND S_DQ_AMOUNT > 0
AND TRADE_DT > TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'yyyyMMdd'),'yyyyMMdd')-7,'yyyyMMdd')
)
ORDER BY S_DQ_AMOUNT_TODAY DESC
LIMIT 10
Python代码参考
# 导入需要使用的库
import pandas as pd
import tushare as ts
import talib
# 选股函数
def stock_picking(data):
# 计算RSI指标
rsi = talib.RSI(data['close'], timeperiod=14)
# 筛选A股、非ST、未涨停板
stock_list = ts.get_stock_basics().index.tolist()
suspended_list = ts.get_suspended().index.tolist()
st_list = ts.get_st_classified().index.tolist()
stock_list = list(set(stock_list) - set(suspended_list) - set(st_list))
trade_date = pd.to_datetime(ts.get_k_data('000001', index=True, ktype='D')['date'])
data = data.loc[data.index.get_level_values(0).isin(stock_list) & data.index.get_level_values(1).isin(trade_date)]
data = data.loc[data['pct_chg'] < 9.9]
# 计算归属母公司股东的净利润同比增长率
data['net_profits_growth'] = data['net_profits'].pct_change()
# 计算下午大单净流入
data = data.groupby(level=0).apply(lambda x: x[x['volume'] > x['volume'].mean()]['net_amount'].sum())
# 筛选满足条件的股票
filter_cond = (rsi < 65) & (data['net_profits_growth'] > 0.2) & (data['net_profits_growth'] <= 1) & (data > 0)
stock_list = data[filter_cond].index.get_level_values(0).unique().tolist()
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


