(supermind量化投资)task13/a/元宇宙、股票均价站在五日均线之上、500日

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

问财量化选股策略逻辑

该选股策略选择元宇宙行业中,符合以下条件的股票进行投资:股票均价在五日均线之上,500日内至少2次涨停。

选股逻辑分析

该选股策略的选股条件包括:选择元宇宙行业、股票均价在五日均线之上,以及500日内至少2次涨停。

选择元宇宙行业,可解决过度依赖传统产业的问题。股票均价在五日均线之上,说明价格正在上涨,具有一定的投资价值。在500日内至少有2次涨停,也能反映出市场对该股票的追捧程度,这样的股票更有可能出现赚钱的机会。

有何风险?

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

  1. 涨停次数的数据只考虑了近500日内的情况,而忽略更长时间的历史数据;
  2. 过于依赖涨停次数的条件,可能会忽略其他重要因素,如基本面的影响,市场趋势等。

如何优化?

为了减小选股策略的风险,可以进行如下优化:

  1. 加入更多基本面指标,如市盈率、市净率、ROE等因素,更全面地分析公司财务状况和估值情况;
  2. 充分考虑历史数据,如扩大涨停次数的时间范围,或者考虑股票在过去一段时间的平均涨幅等;
  3. 结合其他技术指标,如RSI、KDJ等进行综合考虑,以确保选股的全面性。

最终的选股逻辑

该选股策略选择元宇宙行业中,符合以下条件的股票进行投资:股票均价在五日均线之上,500日内至少2次涨停。

具体的选股条件为:

  • 元宇宙行情为GNXQ;
  • 股票均价在五日均线之上;
  • 500日内至少有2次涨停。

因此,该选股策略的最终选股公式为:

GNBK('gnxq') AND (C > MA(C,5)) AND (COUNT(IF((REF(HIGH,1) == REF(LIMIT,1)),1,0),500) >=2)

其中,C表示股票的收盘价,MA表示股票的移动平均线,COUNT表示函数,IF表示条件判断语句。

同花顺指标公式代码参考

  • 元宇宙行情:GNBK('gnxq')
  • 五日均线:MA(C,5)
  • 500日内涨停次数:COUNT(IF((REF(HIGH,1) == REF(LIMIT,1)),1,0),500)

在通达信中,可以使用如下指标代码:

(C > MA(C,5)) AND (COUNT(IF((REF(HIGH,1) == REF(LIMIT,1)),1,0),500) >=2)

Python代码参考

import pandas as pd
import tushare as ts

def stock_selector(date):
    ts.set_token('your_token')
    pro = ts.pro_api()
    data1 = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code, name, industry, list_date, circ_mv, pe, pb, roe')
    data2 = pro.daily_basic(trade_date=date, fields='ts_code, close, turnover_rate')
    data_merge_1 = pd.merge(data1, data2, on='ts_code', how='inner')
    data3 = pro.bar(ts_code='', adj='qfq', start_date=(pd.Timestamp(date) - pd.Timedelta(days=500)), end_date=date, freq='D', 
                    fields='ts_code, trade_date, close, open, high, low, pre_close, volume, turnover_rate, pct_chg, amount')
    data3['limit'] = data3.apply(lambda row: 1 if row['high'] == row['pre_close'] * 1.1 else 0, axis=1)
    data_merge_2 = pd.merge(data_merge_1, data3, on='ts_code', how='inner')
    data4 = data_merge_2.groupby('ts_code').agg({'close': list, 'limit': sum}).reset_index()
    data5 = data4.loc[data4['limit'] >= 2]
    data6 = pd.merge(data_merge_2, data5, on='ts_code', how='inner')
    data7 = data6[(data6['close'][-1] > data6['close'][-2]) & (data6['turnover_rate'][-1] > data6['turnover_rate'].mean())]
    data8 = data7[['ts_code', 'name']]
    
    return data8
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论