(i问财选股策略)换手率3%-12%_、高点为两日最高、macd零轴以上

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

问财量化选股策略逻辑

选股逻辑:MACD零轴以上,高点为两日最高,换手率3%-12%。

选股逻辑分析

该选股逻辑在基本的技术分析指标MACD和高点的基础上,加入了换手率的因素。通过选取适当范围内的换手率,可以筛选出一些有活力、流动性较好的个股。

有何风险?

该选股策略可能存在以下风险:

  1. 选股的换手率范围只是个参考,不同的市场环境下,换手率的范围会发生较大的变化,可能导致选出的股票不具备一定的流动性。

  2. 其它因素的影响:即使满足MACD零轴以上、高点为两日最高、换手率3%-12%等条件,股票的业绩、估值等因素也会对股票的表现产生较大的影响。

如何优化?

为减少风险,可以采用以下方式进行优化:

  1. 除了换手率,可以加入其他流动性指标,如日均换手率、成交金额等,这样选出的股票更可能是流动性好的。

  2. 加强对基本面的研究,对股票的业绩、估值等因素进行分析,并与技术分析指标结合起来,综合选股。

  3. 加入风控管理,避免选股结果的波动范围过大。

最终的选股逻辑

优化后的选股逻辑如下:

选股逻辑:MACD零轴以上,高点为两日最高,流动性指标(如换手率、日均换手率、成交金额等)在一定范围内。

同花顺指标公式代码参考

  • MACD零轴以上:
    CROSS(JC, 0) AND DIFF > DEA

  • 高点为两日最高:
    H = HHV(HIGH, 2)
    CROSS(H, REF(H, 1))

  • 换手率3%-12%:
    (((VOL / CAPITALIZATION) * 100) > 3) AND (((VOL / CAPITALIZATION) * 100) < 12)

Python代码参考

import pandas as pd
from jqdata import *
import talib as ta

def select_stock(context):
    q = query(
        valuation.code,
        valuation.market_cap,
        valuation.circulating_market_cap,
        stock_account.industry_code_name_1,
        fundamental.eps
    ).filter(
        valuation.market_cap >= 500000000,
        valuation.circulating_market_cap >= 100000000,
        stock_account.exchanges != '北京A股'
    )
    df = get_fundamentals(q).sort_values(by=['market_cap', 'circulating_market_cap'])

    # MACD零轴以上
    macd_list = []
    for stock in df['code']:
        if df.loc[df['code'] == stock, 'macd'].iloc[-1] > 0:
            macd_list.append(stock)

    # 高点为两日最高
    top_point = []
    for stock in macd_list:
        x = attribute_history(stock, 2, '1d', ('high', 'close'))
        if x.high.iloc[-1] == max(x.high):
            top_point.append(stock)

    # 换手率3%-12%
    liquid_list = []
    for stock in top_point:
        vol = get_bars(stock, count=1, unit='1d', fields=['volume'])[0][0]
        capital = get_current_data()[stock].total_equity
        turn_rate = (vol / capital) * 100
        if turn_rate > 3 and turn_rate < 12:
            liquid_list.append(stock)

    result = liquid_list[:10]

    log.info("Chosen stocks:", result)
    return result
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论