(supermind)振幅大于1、现量大于1万手

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1、现量大于1万手、高开、圆弧形的股票。该策略主要关注于市场交易活跃程度和当日股票走势。

选股逻辑分析

选股逻辑基于振幅、现量、高开、圆弧形等指标综合判断股票行情。振幅大于1和现量大于1万手代表着市场交易活跃;高开也意味着可能存在上涨机会,而圆弧形则代表着短期走势相对稳定。该选股逻辑忽略了较长期的走势趋势和一些基本面因素。

有何风险?

该选股策略过于依赖短期的股票走势,可能会出现选错股票或者短线操作失误而造成亏损的风险。

如何优化?

为了更好地把握股票的走势趋势和基本面因素,需要加入更多指标进行筛选。比如,可以引入技术指标例如MACD、RSI等,也可以加入基本面指标例如市盈率、股息率等,综合判断选股价值。

最终的选股逻辑

选股逻辑为:振幅大于1、现量大于1万手、高开、圆弧形的股票;加入其他因素,如市场情绪指标、公司基本面指标等进行判断和筛选。

同花顺指标公式代码参考

SZ122:IF(ABS((HIGH-LOW)/REF(CLOSE,1)) > 0.01 AND DRAWLINE,1,0);

以上指标公式中的DRAWLINE表示圆弧形的判断。

Python代码参考

import tushare as ts

def get_selected_stocks():
    selected_stocks = []
    pro = ts.pro_api()
    all_stocks = [ts_code for ts_code, name in pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry,market_cap').values.tolist() if name[0]!='S' and name[:3]!='ST']
    for ts_code in all_stocks:
        daily_data = pro.daily(ts_code=ts_code, start_date=pro.stock_basic(ts_code=ts_code, fields='start_date').iloc[0], end_date='today')
        if len(daily_data) < 2 or daily_data['vol'].max() < 10000 or daily_data.iloc[-1]['open'] > daily_data.iloc[-2]['close'] or not is_draw_line(daily_data):
            continue
        # 处理选股指标筛选条件
        sz_data = pro.query('SZ122', ts_code=ts_code, start_date=daily_data.iloc[-2]['trade_date'], end_date=daily_data.iloc[-1]['trade_date'], fields='sz122, high, low, close').iloc[-1]
        if sz_data['sz122'] == 1:
            selected_stocks.append((pro.stock_basic(exchange='', list_status='L', ts_code=ts_code, fields='name').iloc[0]['name'], ts_code))
    selected_stocks.sort()
    return selected_stocks

def is_draw_line(daily_data):
    # 判断是否符合圆弧形的条件
    # 拟合直线,并计算拟合曲线和实际数据之间的偏差
    # 使用最小二乘法拟合直线,满足 y = a * x + b 的形式
    n = len(daily_data)
    x = daily_data.index.values
    y = daily_data['close'].values
    x_mean, y_mean = x.mean(), y.mean()
    sum_xy = (x * y).sum()
    sum_xx = (x * x).sum()
    a = (n * sum_xy - x.sum() * y.mean()) / (n * sum_xx - x.sum() ** 2)
    b = y_mean - a * x_mean
    # 计算拟合曲线和实际数据之间的偏差
    deviations = []
    for i in range(n):
        deviations.append(abs(y[i] - (a * x[i] + b)))
    # 计算平均偏差
    mean = sum(deviations) / n
    # 成功判断圆弧形的条件:平均偏差不超过价差的1/3
    return mean < (daily_data['high'] - daily_data['low']).mean() / 3

以上为Python代码实现,选股逻辑为振幅大于1、现量大于1万手、高开、圆弧形的股票。在判断圆弧形时,使用最小二乘法拟合直线,并计算拟合曲线和实际数据之间的偏差,成功判断圆弧形的条件为平均偏差不超过价差的1/3。在整个选股过程中,可加入其他因素进行补充判断,如技术指标、基本面数据等。

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

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

    模板如何使用?

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


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

评论