(iwencai选股策略)近25个交易日有单日涨幅大于等于百分之10_、资金强度由大到小、

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

问财量化选股策略逻辑

选股逻辑:MACD零轴以上,资金流强度由大到小,近25个交易日有单日涨幅大于等于百分之10的股票。

选股逻辑分析

该选股逻辑基于技术分析和历史涨幅分析,运用MACD指标和资金流动性分析筛选出当前上升趋势、资金流量强的股票。并且通过单日涨幅超过10%的历史走势,筛选出短期内涨幅喜人的品种。该选股逻辑综合利用多种技术指标进行选股分析,能够有效挖掘有较高盈利潜力的股票。

有何风险?

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

  1. 近期热点的风险,如果市场行情转变,会对选股效果产生一定的影响。

  2. 历史涨幅过高,可能造成股票被高估,存在追高风险。

  3. 单一因素选股,未能综合考虑其它因素,存在误判风险。

如何优化?

为减少风险,可以优化选股策略,例如:

  1. 综合运用多个技术指标和基本面因素,进行综合分析,选取有较好成长潜力的股票。

  2. 根据市场情况进行动态调整赛选标准,以应对行情变化带来的风险。

  3. 在选股过程中,加入其它技术指标,如KDJ等,进行综合分析。

最终的选股逻辑

考虑以上分析,得出最终的选股逻辑:

选股逻辑:MACD零轴以上,资金流强度由大到小,近25个交易日有单日涨幅大于等于百分之10且未出现停牌的股票,并且上涨空间较大、具备一定估值优势。

同花顺指标公式代码参考

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

  • 资金流强度由大到小:
    资金流强度(25)

  • 近25个交易日有单日涨幅大于等于百分之10:
    ABS(REF(CLOSE,1)/CLOSE-1)>=0.1 AND C/AVG(C,25)>0.8

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,
        income_statement.total_profit,
        income_statement.net_profit_after_tax,
        income_statement.total_operating_revenue,
        income_statement.total_cost,
        income_statement.operating_profit,
        stock_account.industry_code_name_1,
        stock_account.exchanges
    ).filter(
        valuation.market_cap >= 1000000000,
        valuation.circulating_market_cap < 10000000000,
        income_statement.total_profit > 0,
        income_statement.net_profit_after_tax > 0,
        (income_statement.total_operating_revenue - income_statement.total_cost - income_statement.operating_profit) > 0,
        stock_account.exchanges != '北京A股'
    )
    df = get_fundamentals(q).sort_values(by=['market_cap', 'circulating_market_cap'])
    df = df[:len(df)//2]

    # MACD零轴以上
    macd_list = []
    for stock in df['code']:
        close = get_price(stock, end_date=context.current_dt, frequency='daily', fields='close', count=200)['close']
        macd, signal, _ = ta.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9) 
        if macd[-1] > signal[-1] and macd[-2] < signal[-2]:  # MACD金叉
            macd_list.append(stock)

    # 资金流强度由大到小
    strong_fund = []
    for stock in macd_list:
        x = get_money_flow(stock, end_date=context.current_dt, count=25, fields=['main_fund_in', 'main_fund_out', 'turnover_ratio'])
        if x.main_fund_in.rolling(5).sum().iloc[-1] > x.main_fund_out.rolling(5).sum().iloc[-1]:
            strong_fund.append([stock, x.turnover_ratio.mean()])
    strong_fund = sorted(strong_fund, key=lambda x: x[1], reverse=True)

    # 近25个交易日有单日涨幅大于等于百分之10且未出现停牌的股票
    high_return = []
    for stock in strong_fund:
        price = get_price(stock[0], end_date=context.current_dt, frequency='daily', fields=['close', 'paused'], count=25)
        if sum(price.paused) > 0:
            continue
        price['return_%'] = (price['close'] - price['close'].shift(1)) / price['close'].shift(1)
        if sum(abs(price['return_%']) >= 0.1) > 0:
            high_return.append(stock[0])

    # 上涨空间较大、投资价值较高
    high_potential = []
    for stock in high_return:
        # 添加估值指标

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

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

    模板如何使用?

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


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

评论