(supermind量化-)振幅大于1、昨日非涨停板、2021年营收除2018年营收大于1

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

问财量化选股策略逻辑

本选股策略选取振幅大于1、昨日非涨停板、2021年营收/2018年营收大于1.1的股票。

选股逻辑分析

选股逻辑主要考虑了股票的价格走势和基本面因素,通过振幅大于1、昨日非涨停板来筛选价格走势良好的股票,而营收升幅则表明了公司的运营情况良好,在一定程度上可以预示未来的发展空间。

有何风险?

该选股逻辑依然存在一定盲目性,只考虑了公司营收的增长情况,而未考虑其他基本面因素,如毛利润率、净利润率、资产负债率等。同时,营收增长也不一定代表着公司未来的盈利稳定增长,存在一定的风险。

如何优化?

可以加入其他基本面因素的筛选条件,并对不同的基本面因素赋予不同的权重,以提高选股的精度。同时,可以将营收增长换为持续增长的因素,如净利润增长等,以更好地反映公司的盈利水平。此外,还可以结合技术指标等其他因素进行筛选。

最终的选股逻辑

本选股策略选取振幅大于1、昨日非涨停板、2021年营收/2018年营收大于1.1的股票。

同花顺指标公式代码参考

本选股策略主要依赖于股票的涨幅、营收数据等基本面指标。

python代码参考

# 引入Tushare库
import tushare as ts

# 连接Tushare库
pro = ts.pro_api()

def select_stocks(n):
    selected_stocks = []
    today = pro.trade_cal(exchange='', is_open='1')["cal_date"].values[-1]
    yesterday = pro.trade_cal(exchange='', is_open='1', end_date=today, count=2)["cal_date"].values[0]
    # 筛选出振幅大于1、昨日非涨停板、2021年营收/2018年营收大于1.1的股票
    quote = pro.limit_list(trade_date=yesterday, limit_type='U')
    quote = quote.append(pro.limit_list(trade_date=yesterday, limit_type='D'))
    quote = quote[~quote["ts_code"].str.startswith("300")]
    quote = quote.drop_duplicates(subset="ts_code", keep=False)
    quote = quote.merge(pro.daily(trade_date=yesterday, fields='ts_code, pct_chg, high, low, close'), on="ts_code")
    quote = quote[quote["pct_chg"] < 9.9]
    quote_finance = pro.fina_indicator(ts_code=quote["ts_code"].tolist(), start_date="20180101", end_date="20211231",
                                fields="ts_code, end_date, revenue")
    quote_finance = quote_finance[quote_finance["end_date"].str.endswith("1231")]
    quote_finance = quote_finance.merge(quote_finance[quote_finance["end_date"].str.startswith("2018")],
                on="ts_code", suffixes=("_2021", "_2018"))
    quote_finance["revenue_rate"] = quote_finance["revenue_2021"]/quote_finance["revenue_2018"]
    quote = quote.merge(quote_finance[["ts_code", "revenue_rate"]], on="ts_code")
    quote = quote[quote["revenue_rate"] > 1.1]
    quote = quote[quote["high"] == quote["high"].rolling(2).max()]
    selected_stocks.extend(quote["ts_code"].tolist()[:n])
    selected_stocks = list(set(selected_stocks))
    return selected_stocks
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论