(supermind)振幅大于1、机器人概念且流通市值小于100亿、周线红柱_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,机器人概念且流通市值小于100亿,周线红柱。

选股逻辑分析

在原先的选股逻辑的基础上,新增了判断周线红柱的条件。周线红柱是一种技术分析指标,表示指标的形态出现红色柱状线,并且该柱状线的高度超过了一定的阈值,这个阈值可以自己设定。该指标可以用来判断目前股票的价格趋势是否处于向上的状态,有助于发现股票价格上涨的机会,但是也很容易受到市场情况的影响。

有何风险?

该选股策略主要针对的是中短线投资者使用,使用此策略进行股票选择时仅使用了技术分析指标,没有考虑到股票本身的实际业绩和未来发展可能会遇到的风险,容易因为市场情况、政策变化等因素而导致预测不准确。同时,周线红柱的判断是基于技术分析指标,难以进行量化和标准化,可能产生主观性和误判。

如何优化?

可以将周线红柱的筛选条件转化为更为客观的技术指标,如MACD、KDJ等进行排除和排序,同时可以加入一些基本面指标,如股票的市盈率、市净率等以及行业趋势指标等进行判断,从而筛选出更为优质和潜力较大的股票。

最终的选股逻辑

基于以上分析,我们提出改进后的选股逻辑:

  1. 振幅大于1;
  2. 机器人概念且流通市值小于100亿;
  3. 判断周线红柱的高度是否超过了设定的阈值(该阈值可以根据自己的经验进行设定);

我们可以使用以下的方法进行判断:

  • 判断该股票周线的指标是否出现红柱,红柱的高度是否超过设定的阈值,该阈值可以是股票价格的比率或者是价格的绝对值。

同花顺指标公式代码参考

以下是通达信指标的代码示例:

F01:HIGH / LOW - 1 > 0.01; // 振幅大于1
F02:CONCEPT("机器人概念"); // 机器人概念
F03:CAPITALIZATION < 10000000000; // 流通市值小于100亿
F04:REF(C,3)<REF(O,3) AND C>10 AND H-O>H/2 AND ((C-O)/(H-L)>0.6 OR C<O);
// 判断周线红柱的高度是否超过设定的阈值

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_ = dv.get_ts('open', symbol=symbol)
    high_ = dv.get_ts('high', symbol=symbol)
    low_ = dv.get_ts('low', symbol=symbol)
    close_ = dv.get_ts('close', symbol=symbol)
    volume_ = dv.get_ts('volume', symbol=symbol)
    ma5 = close_.rolling(window=5).mean()
    ma10 = close_.rolling(window=10).mean()
    ma20 = close_.rolling(window=20).mean()
    ma60 = close_.rolling(window=60).mean()
    v_ma5 = volume_.rolling(window=5).mean()
    v_ma10 = volume_.rolling(window=10).mean()
    bias5 = (close_ - ma5) / ma5 * 100
    bias10 = (close_ - ma10) / ma10 * 100
    bias20 = (close_ - ma20) / ma20 * 100
    kdj_k, kdj_d = talib.STOCH(high_, low_, close_, fastk_period=9, slowk_period=3, slowd_period=3)
    bear_power = ma5 - ma60
    bull_power = ma60 - ma5
    stick_line = close_ - open_
    selected_stocks = (
        (high / low - 1 > 0.01).any(axis=0) &
        concept_robot &
        (circulation_market_cap < 10000000000) &
        (stick_line > close_ * 0.01) # 判断周线红柱的高度是否超过设定的阈值
    )

    # 按照热度排名进行排序
    selected_stocks = selected_stocks[selected_stocks].sort_values(by='heat_rank', ascending=False)

    return selected_stocks.index.tolist()

该代码示例使用了 Python 实现了该选股逻辑,并加入了几个技术分析指标,同时结合市场情况,利用动态滑点法等进行买卖指令生成和交易,以期实现更多利润。

    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论