问财量化选股策略逻辑
选股逻辑:选择RSI小于65、价格小于12元、近10日涨幅大于0小于35的股票。
选股逻辑分析
该选股策略同时考虑了技术面和基本面,主要考虑了RSI、价格和涨幅等技术指标。可以抓住某些特定情境下股票市场的赚钱机会。
有何风险?
只考虑技术面和基本面,可能会错过一定的市场机会和风险控制能力不足。另外,单一的技术指标也容易被市场大势所左右,需要结合其他的指标进行综合考虑。
如何优化?
除了考虑RSI、价格和涨幅等技术指标,还应考虑市场情绪指标、宏观经济指标以及基本面指标,综合考虑各种因素可以增加策略的可靠性和市场机会把握的机率。
最终的选股逻辑
选股逻辑:选择RSI小于65、价格小于12元、近10日涨幅大于0小于35的股票,同时考虑市场情绪指标、宏观经济指标和基本面指标。
同花顺指标公式代码参考
- RSI小于65:RSI(6)<65
- 价格小于12元:CLOSE<12
- 近10日涨幅大于0小于35:(REF(CLOSE, 0) - REF(CLOSE, 9))/REF(CLOSE, 9)>0 and (REF(CLOSE, 0) - REF(CLOSE, 9))/REF(CLOSE, 9)<0.35
python代码参考
通过聚宽等股票API获取数据,代码示例:
import jqdatasdk as jq
jq.auth('username', 'password') # jq 连接凭证
# 选股条件
cond1 = jq.query(
jq.valuation.code,
jq.valuation.market_cap,
).filter(
# 过滤掉ST类股票和上市时间过短的股票
jq.valuation.code.notlike('*ST%'),
jq.valuation.code.notlike('300%'),
jq.valuation.code.notlike('688%'),
jq.valuation.code.notlike('900%'),
jq.valuation.code.notlike('000001'),
jq.valuation.code.notlike('002001'),
jq.valuation.code.notlike('600401'),
jq.valuation.code.notlike('601985'),
jq.valuation.code.notlike('600100'),
jq.valuation.start_date < '2010-01-01',
jq.valuation.market_cap > 200, # 至少200亿市值
)
# 根据行情信息进一步筛选
q1 = jq.query(
jq.valuation, # valuation 表
jq.indicator.ROE, # 个股 ROE
jq.indicator.current_ratio, # 个股流动比率
jq.indicator.gross_profit_margin, # 销售毛利率
jq.advanced_index.eps, # 每股收益
jq.bank_indicator.current_asset_yield, # 流动资产周转率
jq.bank_indicator.net_profit_margin, # 净利润率
jq.bank_indicator.non_interest_income_ratio, # 手续费及佣金收入占比
jq.finance.STK_LIST_DATE, # 上市日期
jq.finance.STK_BOARDDIR, # 上市板块
jq.finance.STK_STATUS, # 上市状态
jq.finance.STK_NAME, # 股票名称
jq.finance.STK_EXCHANGE, # 所属交易所
).filter(
jq.valuation.code.in_(
cond.filter(jq.valuation.pe_ratio > 0).order_by(
-jq.valuation.market_cap,
-jq.valuation.pe_ratio,
).limit(2000).code.values.tolist()
),
)
# 策略选股
stocks = []
for stock in q1:
# 获取股票K线数据
k_data = jq.get_price(stock.code, count=10, end_date=context.current_dt.strftime('%Y-%m-%d'), frequency='daily')
# 获取近10个交易日收盘价、开盘价
close_prices = k_data['close'].values
open_prices = k_data['open'].values
# 计算10日涨幅
change = (close_prices - open_prices) / open_prices
# 筛选条件
if (
stock.RSI6 < 65
and stock.close < 12
and 0 < change[-1] < 0.35
):
stocks.append(stock.code)
# 以结果长度为30进行选股
selected_stocks = stocks[:30]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


