(supermind)振幅大于1、昨天3连板、机构抄底_

用户头像神盾局量子研究部
2023-08-21 发布

问财量化选股策略逻辑

选股逻辑:振幅大于1、昨天有3连板、机构抄底。

选股逻辑分析

该选股逻辑主要是以市场活跃度、机构操作和一定的技术分析为参考因素。振幅大于1是反映市场活跃度的指标之一,昨天有3连板更加表明该股票当前有一定的市场关注度。机构抄底是反映股票可能存在低位抄底资金动向的指标之一。该选股逻辑选择了多个指标进行筛选,但仍可能存在筛选效率和精度不高、风险难以控制等问题。

有何风险?

以下是该选股策略存在的风险:

  1. 过度依赖技术分析、过度看重市场关注度,无法全面考虑股票的基本面表现;
  2. 机构抄底的数据来源和可靠性较难确定;
  3. 选股标准较为单一,不能充分考虑个股之间的差异性和行业差异性。

如何优化?

为了优化该选股逻辑,可以考虑以下优化方案:

  1. 加入资产负债表、利润表等财务指标作为选股指标之一,综合考虑选股的精度;
  2. 对于机构抄底指标,要根据实际情况和可靠数据进行判断,或者考虑将其作为辅助指标;
  3. 在选股标准中加入相对估值、板块轮动等指标,更加综合考虑股票的筛选。

最终的选股逻辑

改进后的选股逻辑如下:

  1. 筛选振幅大于1的股票;
  2. 在1的基础上,筛选昨天有3连板的股票;
  3. 在2的基础上,筛选机构抄底的股票;
  4. 在3的基础上,综合考虑较好的公司基本面、行业趋势、相对估值和板块轮动等,选取业绩稳定、有一定盈利能力和相对估值较低的股票。

同花顺指标公式代码参考

该选股逻辑的通达信指标公式如下:

C1 := (HIGH - LOW) > 1;
C2 := (REF(CLOSE, 1) > REF(CLOSE, 2)) AND (REF(CLOSE, 2) > REF(CLOSE, 3));
C3 := (CROSS(FILTER(MA(N, 2) > MA(N, 20), F), 0) > 0) AND (T[1]=LLV(LASTBAR,1,LOWEST));
SELECTOR := C1 AND C2 AND C3;

其中 T[1] 代表9:15这根K线的匹配价,LASTBAR 代表当前的K线索引,LOWEST 代表当日价格的最低价,N 代表均线的周期。这里引入了均线和机构抄底指标进行筛选。

python代码参考

import pandas as pd
from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("YOUR_ACCOUNT", "YOUR_PASSWORD"))

klines = api.get_kline_serial("SHFE.rb2101", 24 * 60 * 60, data_length=300) # 获取 df 数据,周期为日K线
df = pd.DataFrame(klines)

C1 = (df['high'] - df['low'] >= 1)
C2 = df.groupby('contract.symbol')['close'].apply(lambda x: (x.shift(1) > x.shift(2)) & \
                                                             (x.shift(2) > x.shift(3))).astype(int)
N1, N2 = 2, 20
ema_short = df.groupby('contract.symbol')['close'].transform(lambda x: x.ewm(span=N1, min_periods=1).mean())
ema_long = df.groupby('contract.symbol')['close'].transform(lambda x: x.ewm(span=N2, min_periods=1).mean())
is_ema_long_above_short = ema_long > ema_short
F = 2 / (N1 + 1)
cross = (is_ema_long_above_short != is_ema_long_above_short.shift(1)) & \
        (is_ema_long_above_short == True)
C3 = (cross.astype(int).rolling(LASTBAR).max() == 1) & \
     (df['datetime'].dt.time == datetime.time(9, 15)) & \
     (df['close'] == df['low'].rolling(min_periods=1, window=LASTBAR).min())
selector = (C1 & C2 & C3).astype(int)
result = df[selector == 1].index.tolist()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论