问财量化选股策略逻辑
选股逻辑为:振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业。该选股策略旨在寻找市值较小但财务状况良好的企业,以进行短期投资。
选股逻辑分析
该选股策略结合了股票波动情况和企业基本面因素的考虑,既考虑了短期内的行情热点,又考虑了企业的健康发展状况。通过限定市值范围以及无亏损的条件,过滤出财务稳定且具有成长潜力的公司。
有何风险?
该选股逻辑可能存在以下风险:
-
由于只考虑了市值以及企业是否盈利等基本面因素,可能无法全面评估企业价值,遗漏其他可能影响企业发展的因素,如管理层能力、市场环境、政策因素等。
-
股市波动较大,可能导致选出的股票在短期内价格波动幅度较大。
如何优化?
以下是对该选股逻辑的优化建议:
-
在选股时可以增加对技术指标的考虑,如MA、KDJ等指标,更全面地评估股票行情状况。
-
同时应该结合前景分析,根据不同的行业和市场环境来综合评估企业的未来发展潜力。
最终的选股逻辑
选股策略为:振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业。同时加入了相对强弱指标(RSI)作为技术指标的一个参考,根据企业行业不同的特征,结合前景分析,以更全面的视角来综合研究股票的投资价值。
同花顺指标公式代码参考
通达信指标公式:
((HIGH-LOW)/REF(CLOSE,1) > 0.01) AND (CLOSE/REF(CLOSE,1)-1) < 0.1 AND (NOT LLV(LOW, 30) == LOW) AND (NOT LIMIT) AND MARKET_CAP < 100 AND (CLOSE-REF(CLOSE,200))/REF(CLOSE,200)*100 > 0 AND RSI(CLOSE,14) > 30
Python代码参考
from gm.api import *
set_token('your_token_here')
start_date = '2021-01-01'
end_date = '2022-01-01'
# 获取前一交易日的大盘PE值,并根据该值确定行情热点板块和行业
industry_pe = get_fundamentals(table='PE_INDICS', date=trade_days(-1)[-1], symbols='SHSE.000300')['pe'].mean()
hot_industry = ['银行', '交通运输', '建筑', '建材', '工业', '机械']
if industry_pe < 20:
hot_industry = ['电子', '计算机', '通信']
elif industry_pe > 40:
hot_industry = ['采掘', '钢铁', '煤炭']
symbols_selected = []
for symbol in symbols:
# 获取每个股票的市值、总资产、净利润,计算出净利润率
data = get_fundamentals(table='tq_sk_finindic', symbols=symbol, start_date=start_date, end_date=end_date,
fields='tot_assets,net_profit,tot_shrhldr_eqy_excl_min_int,market_cap',
filter='ann_date=2021-12-31;', adjust_mode='post')
data = data[data['market_cap'].notna()]
data['net_profit_margin'] = data['net_profit'] / data['tot_assets']
# 选取市值在100亿以内,净利润率大于0的股票
data_selected = data[(data['market_cap'] < 10000000000) & (data['net_profit_margin'] > 0)]
if len(data_selected) > 0:
# 获取股票历史K线数据
df = history(symbol=symbol, frequency='1d', start_time=start_date, end_time=end_date, fields='open,close,high,low')
# 计算RSI指标
rsi = TA.RSI(df, timeperiod=14).iloc[-1]
# 过滤出符合条件的股票,并缩短name字段
if ((df['high'].iloc[-1] - df['low'].iloc[-1]) / df['close'].iloc[-1] > 0.01) and (
df['limit'].iloc[-1] == False) and (symbol_info(symbol).industry_name in hot_industry) and (
rsi > 30):
symbol_name = symbol_info(symbol).symbol_name.split(' ')[0]
symbols_selected.append((symbol, symbol_name))
# 根据选股结果进行交易
for symbol, name in symbols_selected[:10]:
order_target_percent(symbol=symbol.replace('XSHE', 'SZSE'), percent=0.1, side=OrderSide_Buy,
order_type=OrderType_Market, position_effect=PositionEffect_Open)
以上代码为选股逻辑为振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业的完整代码。增加了技术指标RSI和前景因素的考虑,同时对选股结果进行了交易操作。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
