问财量化选股策略逻辑
选股逻辑:振幅大于1,机器人概念且流通市值小于100亿,9点25分涨幅小于6%。
选股逻辑分析
该选股策略在基本面因素的振幅、机器人概念、流通市值的基础上,增加了股票此时此刻的价格变化因素,即在开盘的5分钟内,股票的最高价与最低价的差异不能过大。该策略能够挑选出大盘起涨行情中,涨幅不过大,风险略小的潜力股。
有何风险?
该选股策略依然受制于市场波动情况以及机器人概念是否受到市场热度的喜爱。同时,该策略可能会忽略一些股票在开盘后呈现出较大涨势但一定程度上是因为市场向上走势和其他非基本面因素的刺激。另外,该策略对于流通市值为100亿以上的公司也无法进行有效的筛选。
如何优化?
该选股策略可以通过增加其他品种的选择条件,例如市盈率、市净率等指标,以减小非基本面因素对选股策略的干扰。另外可以根据不同市场环境下的实际情况选择不同的选股策略进行实时更新。
最终的选股逻辑
综合以上分析,我们提出一种改进的选股逻辑:
- 振幅大于1;
- 机器人概念;
- 流通市值小于100亿;
- 9点25分开盘后最高价与最低价之差小于当日收盘价的6%。
同花顺指标公式代码参考
以下是通达信指标的代码示例:
F01:HIGH / LOW - 1 > 0.01; // 振幅大于1
F02:CONCEPT("机器人概念"); // 机器人概念
F03:CAPITALIZATION < 100000000; // 流通市值小于100亿
F04:EVERY(MINUTE == 925, HIGH / LOW - 1 < 0.06 * CLOSE); // 9点25分涨幅小于6%
FILTER:F01 AND F02 AND F03 AND F04;
SYMBOL_SORT("热度", SORT_DESCEND);
SELECT IF(F05, 1, 0) AS GOTO;
python代码参考
以下是用 Python 代码实现该策略的选股逻辑:
def stock_filter(dv, symbol):
high = dv.get_ts('high', symbol=symbol)
low = dv.get_ts('low', symbol=symbol)
concept_robot = dv.get_ts('concept', symbol=symbol).apply(lambda x: "机器人" in x)
circulation_market_cap = dv.get_ts('circulation_market_cap', symbol=symbol)
close = dv.get_ts('close', symbol=symbol)
open_925 = dv.get_ts('open', symbol=symbol, start_time='9:25')
# 计算标志:振幅大于1、流通市值小于100亿、机器人概念、9点25分涨幅小于6%
selected_stocks = (
(high / low - 1 > 0.01).any(axis=0) &
concept_robot &
(circulation_market_cap < 10000000000) &
(circulation_market_cap > 0) &
(high / low - 1 < 0.06 * close.loc[open_925.index].iloc[0])
)
#按照热度排名进行排序
selected_stocks = selected_stocks[selected_stocks].sort_values(by='heat_rank', ascending=False)
return selected_stocks.index.tolist()
该代码示例使用 Python 实现了该选股逻辑,综合考虑了振幅、机器人概念、流通市值、当前价格变化等因素,但将流通市值的筛选条件调整为小于100亿。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
