(supermind)振幅大于1、反包、外盘除内盘大于1

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,反包,外盘/内盘大于1.3。

选股逻辑分析

该选股逻辑主要考虑了股票价格波动、市场情绪和资金流入流出情况。考虑的指标量比较少,从而选股逻辑比较容易理解和操作。但同时也会带来一定的选股偏差和不确定性。

有何风险?

该选股逻辑仅考虑了股票价格和资金流情况,而忽略了其他基础面因素。市场情况、政策变化等因素可能会影响股票的表现,而该选股逻辑可能无法完全顾及到这些因素,存在一定的风险。

如何优化?

可以加入其他的技术指标和基础面因素,例如均线、市盈率等,提高选股的维度和准确性。同时,可以考虑使用机器学习等方法,系统性地挑选出有效的指标,提高选股效率和精度。

最终的选股逻辑

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

  1. 振幅大于1;
  2. 反包出现;
  3. 外盘/内盘大于1.3;
  4. 股票的市盈率、市净率等指标。
  5. 其他技术指标和基础面因素。

同花顺指标公式代码参考

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

F01:HIGH / LOW - 1 > 0.01;  // 振幅大于1
F02:NOT(SIGN(CLOSE-REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2)));  // 反包
F03:(VB / IB) >= 1.3;  // 外盘/内盘大于1.3
F04:INDEXMEMBER('000001.SH',STOCKCODE)>=0 AND INDEXMEMBER('399006.SZ',STOCKCODE)<0; // 中证指数成份股,创业企业板除外
F05:PE > 0 AND PB > 0; // 市盈率、市净率大于0

FILTER:F01 AND F02 AND F03 AND F04 AND F05;
SYMBOL_SORT("热点板块", SORT_DESCEND);
SELECT(IF(F06, 1, 0), "诊股"); // 输出文本信息:选股

python代码参考

以下是用 Python 实现该策略的选股逻辑:

def stock_filter(dv, 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)
    fund_ext = dv.get_ts("fund_ext", symbol=symbol)
    # 获取公司市盈率、市净率等数据
    pe_ratio = get_fundamentals(query(
        valuation.pe_ratio
    ).filter(
        valuation.pe_ratio.symbol == symbol
    ), end_date=dt.datetime.today(), count=1, panel=False)
    pb_ratio = get_fundamentals(query(
        valuation.pb_ratio
    ).filter(
        valuation.pb_ratio.symbol == symbol
    ), end_date=dt.datetime.today(), count=1, panel=False)
    # 计算其他指标
    selected_stocks = (high / low - 1 > 0.01) & (Ta('CDL2CROWS', 0, open, high, low, close) == 100) & (fund_ext['fvolume'] / fund_ext['fivolume'] >= 1.3) & (index_stockfilter('000001.SH', exclude=True) & index_stockfilter('399006.SZ', exclude=False)) & (pe_ratio > 0) & (pb_ratio > 0)
    selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
    return selected_stocks.index.tolist()

在 Python 中实现整个选股逻辑,需要先获取相关的股票数据和公司基础数据,如行情、成交量、市盈率、市净率等数据,并与选股条件进行比对,从而得到选股结果。在本例中,先用 get_fundamentals 函数获取公司市盈率、市净率的数据,再用其他指标计算选股结果,最后返回筛选结果。

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

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

    模板如何使用?

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


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

评论