(supermind量化-)振幅大于1、(昨日换手率_(今日竞价成交量除昨日成交量))_0

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

问财量化选股策略逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,股票均价站在五日均线之上的股票作为投资目标。此策略主要从技术角度出发,确定股票的走势方向和品质,寻找具有一定上涨潜力的个股。

选股逻辑分析

本选股策略主要通过技术指标进行选股,其中包括振幅等股票价格波动方面的指标,同时还包括股票的平均价格和均值方向等指标。这些指标能够明确反映股票的走势,为投资者提供有关股票涨跌、走势方向、捕捉中长线投资机会的信息。

有何风险?

本选股策略主要基于技术指标,较为单一,可能没有考虑宏观经济环境和公司基本面因素,从而导致选错目标股票。同时,市场波动和基本面变化,以及政策、事件等因素可能会对股价带来较大影响,从而引起选股策略的失效或者误判。

如何优化?

为了更好地优化选股策略,可加入其他指标的考量,如资产负债率、净资产收益率、每股收益等指标,以便更好地反映公司的财务状况和盈利能力。同时,可对选股标准进行动态调整,根据市场行情变化和股票走势进行相应的调整。加强对股票流动性的量化研究,提高选股策略的稳定性。

最终的选股逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,股票均价站在五日均线之上的股票作为投资目标。在此基础上,加入其他指标的考量,如资产负债率、净资产收益率、每股收益等指标,结合基本面分析和市场情绪分析,以更好地反映公司的财务状况和盈利能力。加强对股票流动性的量化研究,提高选股策略的稳定性。同时,可对选股标准进行动态调整,根据市场行情变化和股票走势进行相应的调整。

同花顺指标公式代码参考

Python代码参考

import tushare as ts
import pandas as pd

pro = ts.pro_api()

def select_stocks(n):
    selected_stocks = []
    for code in pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,list_date,list_status,total_mv')["ts_code"]:
        if 'ST' in code:
            continue
        if float(pro.stock_basic(ts_code=code, fields='circ_mv').iloc[0]) / 100000000 < 50:
            continue
        if float(pro.stock_basic(ts_code=code, fields='circ_mv').iloc[0]) / 100000000 > 100:
            continue
        price = pro.query('daily', ts_code=code, start_date='', end_date='', fields='ts_code,trade_date,open,high,low,close').\
            assign(amplitude=lambda x: (x['high'] - x['low']) / x['pre_close'] * 100).\
            assign(volume_rate=lambda x: pro.query('stk_limit', ts_code=x['ts_code'].iloc[0], fields='trade_date,up_limit,down_limit').\
                               assign(up=None).\
                               assign(down=None).\
                               assign(close_price=x['pre_close'].iloc[0]).\
                               assign(up_limit_price=lambda x: round(x['close_price']*1.1, 2)).\
                               assign(down_limit_price=lambda x: round(x['close_price']*0.9, 2)).\
                               assign(raise_limit=lambda x: x['up_limit_price'].iloc[0]-x['close_price']).\
                               assign(fall_limit=lambda x: x['close_price']-x['down_limit_price'].iloc[0]).\
                               assign(rate=lambda x: (x['raise_limit'] + x['fall_limit'])/x['close_price']).\
                               assign(volume_rate=lambda x: x['rate'].iloc[-2]).\
                               iloc[-1]['volume_rate']
                  ).\
            assign(change_rate=lambda x:x['close'].pct_change()).\
            assign(autumn_15_days=lambda x:x['change_rate'].rolling(15).apply(lambda y:sum(list(map(lambda x: x<0, y)))/len(y) if len(y)>5 and len(y)<20 else 0)).\
            assign(avg_price_5day=lambda x:x['close'].rolling(5).mean()).\
            assign(avg_price_5day_ma=lambda x:x['avg_price_5day'].rolling(5).mean()).\
            loc[lambda x: (x['amplitude'] > 1) & (x['volume_rate'] > 0.5) & (x['volume_rate'] < 2) &(x['avg_price_5day']>x['avg_price_5day_ma'])]
        if len(price) > 0:
            selected_stocks.append(code)   
    return selected_stocks[:n]
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧