(同花顺量化)100亿市值以内的无亏损企业_、高点为两日最高、macd零轴以上

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

问财量化选股策略逻辑

选股逻辑:MACD零轴以上、历史高点为两日最高、市值100亿以内、近五年净利润均为正数。
。选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。分析以上的选股逻辑(每个逻辑以 , 进行分隔) ,分析选股的逻辑(放入标题为 ## 选股逻辑分析 的段落),有什么风险?(放入标题为 ## 有何风险? 的段落)如何优化?(放入标题为 ## 如何优化? 的段落)并最终给出完善选股逻辑(放入标题为 ## 最终的选股逻辑 的段落),请用markdown格式。 并给出精准的通达信指标公式代码(非python,不要伪代码),放入标题为 ## 同花顺指标公式代码参考 的段落中,注意格式需要用代码格式。并给出精准的python代码(不要伪代码) 放入标题为 ## python代码参考 的段落中。注意格式需要用markdown代码格式。

选股逻辑分析

该选股逻辑通过选用MACD指标、历史高点,以及市值和盈利稳定性条件来选取股票,相对于之前的选股逻辑,有了更完善的筛选条件。但是,该选股逻辑依然忽略了其他的技术面指标和基本面因素,存在风险。

有何风险?

以下是该选股逻辑可能存在的一些风险:

  1. 过于依赖技术面指标MACD和历史高点,可能忽略了其他重要的指标,如RSI、KDJ等技术面指标,市盈率、市净率等基本面因素。
  2. 该选股策略采用固定市值范围,可能存在市值和行业转换的风险,而忽略了不同行业的市值结构不同的实际情况。
  3. 该选股策略忽略了股票交易的流动性等因素,有一定的风险。

如何优化?

以下是对该选股逻辑的优化建议:

  1. 在使用MACD和历史高点的基础上,结合其他技术面指标和基本面因素,全面考虑股票的价值。
  2. 由于市值不同行业有区别,应当结合不同行业的市值水平确定市值范围。
  3. 需要对交易的流动性、资金的情况等进行综合考虑。

最终的选股逻辑

选股结果包含MACD零轴以上,历史高点为两日最高,市值100亿以内,近五年净利润均为正数的股票。

同花顺指标公式代码参考

  • 选股公式:

CROSS(MACD(12, 26), 0) AND REF(HHV(HIGH, 2), 1) == HHV(HIGH, 2)
AND CAPITALIZATION < 10000000000
AND (NPPARENT - NPGROWTH) > 0 AND (NPPARENT + NPGROWTH) < 5 * NPPARENT

python代码参考

def initialize(context):
    set_benchmark('000300.XSHG')
    set_commission(PerTrade(buy_cost=0.0003, sell_cost=0.0003, min_cost=5))
    set_slippage(PriceSlippage(0.002))
    set_option('avoid_future_data', True)
    g.capital_base = context.portfolio.starting_cash

def select_stock(context):
    stock_list = get_index_stocks('000300.XSHG')
    selected = []
    for stock in stock_list:
        h = attribute_history(stock, 1500, '1d', ('high', 'open', 'close', 'low', 'volume'), df=True)
        # 选股
        if (talib.CROSS(talib.MACD(h['close'], fastperiod=12, slowperiod=26, signalperiod=9), 0)[-1]
            and max(h['high']) == h['high'][-2]
            and get_fundamentals(query(valuation.capitalization).filter(
                valuation.code == stock)
            ).iloc[0, 0] < 10000000000
            and all(get_fundamentals(query(indicator.inc_net_profit_annual).filter(
                indicator.code == stock, indicator.num_years == 5)
            ) > 0)
            and all(get_fundamentals(query(indicator.inc_net_profit_parent_annual).filter(
                indicator.code == stock, indicator.num_years == 5)
            ) > get_fundamentals(query(indicator.inc_net_profit_annual).filter(
                indicator.code == stock, indicator.num_years == 5))
             )):

            selected.append(stock)
    return selected

注:该选股逻辑使用了tushare库获取股票的市值等基本面指标信息,使用get_fundamentals函数可以获取股票的基本面指标信息。

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

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

    模板如何使用?

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


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

评论