(supermind量化策略)task14/a/元宇宙、开盘价在十日线左右、2021年营收

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

问财量化选股策略逻辑

选股策略为:在元宇宙行业中,选取开盘价在十日均线左右、且2021年营收/2018年营收大于1.1的股票。

选股逻辑分析

本选股策略旨在选择营收增长幅度较快的元宇宙行业个股,同时利用技术面因素判断其走势趋势。选股逻辑包含三个要素:元宇宙行业、开盘价在十日均线左右、2018年营收与2021年营收的增长比例大于1.1。

首先,选取元宇宙行业的股票。之后,筛选出开盘价在十日均线左右的股票。最后,在两年间的营收数据中,筛选出2021年营收/2018年营收大于1.1的个股。

有何风险?

本选股策略忽略了财务指标间的联动关系,以及其它可能影响个股价值变化的重要因素,从而存在着较大的风险。此外,个股走势所受影响因素往往不可预见,可能存在突发事件导致的市场波动,以及数据质量问题等。

如何优化?

可以加入一些关键财务指标如净利润、净利润增长率等,在选择个股时综合考虑财务和技术面因素。此外,增加考虑行业和市场整体状况等因素,一定程度上降低选股的风险。

最终的选股逻辑

在元宇宙行业中,筛选出当前开盘价在十日线左右、且2021年营收/2018年营收大于1.1的股票。

同花顺指标公式代码参考

1、选出符合元宇宙行业的股票:INDUSTRY == '元宇宙';

2、选出当前开盘价在十日均线左右的股票:
REF(CLOSE,1)<MA(CLOSE,10) AND OPEN>MA(CLOSE,10) AND REF(OPEN,1)<REF(MA(CLOSE,10),1);

3、选出2021年营收/2018年营收大于1.1的股票:
(REF(YOYGR, 1, 4) > 1.1);

4、合并选股条件:(INDUSTRY == '元宇宙') AND \
    (REF(CLOSE,1)<MA(CLOSE,10) AND OPEN>MA(CLOSE,10) AND REF(OPEN,1)<REF(MA(CLOSE,10),1)) AND \
    ((REF(YOYGR, 1, 4) > 1.1));

Python代码参考

import tushare as ts
import datetime as dt

def get_eligible_stocks():
    eligible_stocks = []
    stock_data = ts.get_today_all()
    for stock_code, row in stock_data.iterrows():
        if '元宇宙' in row['industry_name'] and row['exchange'] != 'SSESTAR' and row['exchange'] != 'SZSEEM':
            two_year_profit_data = ts.get_profit_data(stock_code, top=2)
            if len(two_year_profit_data) >= 2:
                if two_year_profit_data.iloc[-1]['roe'] > two_year_profit_data.iloc[-2]['roe'] and (two_year_profit_data.iloc[-1]['profits_yoy']/two_year_profit_data.iloc[0]['profits_yoy']) > 1.1:
                    open_prices = ts.get_k_data(stock_code, start=(dt.datetime.now()-dt.timedelta(days=10)).strftime('%Y-%m-%d'), end=(dt.datetime.now()-dt.timedelta(days=1)).strftime('%Y-%m-%d'))['open'].values
                    ten_day_ma = open_prices.mean()
                    if ts.get_k_data(stock_code, start=dt.datetime.now().strftime('%Y-%m-%d'), end=dt.datetime.now().strftime('%Y-%m-%d')).iloc[0]['open'] > ten_day_ma:
                        fund_flow = ts.get_sina_dd(stock_code).get('vol', 0)
                        if fund_flow > 0:
                            eligible_stocks.append((stock_code, fund_flow))
    eligible_stocks.sort(key=lambda x: x[1], reverse=True)
    return [x[0] for x in eligible_stocks]

print(get_eligible_stocks())

上述 Python 代码同样使用了 tushare 包获取实时行情数据,同时还涉及到后续数据处理和计算等问题。需要注意技术面指标的使用和时间窗口的选取,以及异常处理等问题。同时,由于采用的是营收增长的指标作为筛选标准,需要注意财报数据的时间和有效性等问题。

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

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

    模板如何使用?

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


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

评论