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

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

问财量化选股策略逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据企业性质进行进一步筛选。企业性质的定义可以根据投资者自行定义,如选择高成长性的企业、高股息率的企业、环保企业等。该策略主要关注股票价格的波动和流动性,同时结合企业性质等因素寻找股票投资机会,并注意风险控制。

选股逻辑分析

本选股策略以股票价格波动和流动性为基础,通过振幅和换手率等指标找寻较有潜力的股票。同时,根据不同的企业性质对数据集合进行筛选,寻找投资价值更高、前景更好的股票。这一投资策略相对为主观,需要根据个人的诉求和风险偏好来进行调整。

有何风险?

本选股策略的“企业性质”是主观因素,可能存在因为数据采集的不完整性、过度主观等原因造成的投资策略错误。此外,较高的振幅和换手率也是较高风险的表现形式,需要注意风险控制,适当降低仓位和止损。

如何优化?

为了优化选股策略,可以考虑较多数据源,同时加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。在企业性质方面,可以选择更加客观的指标,如行业、市盈率等,避免对数据的过度解读。同时,可以加入权重投资策略,依照投资人的风险偏好、股票行情等可确定不同权重配置,达到更好的投资效果。

最终的选股逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据客观指标,如行业、市盈率等企业性质进行进一步筛选。同时,加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。

同花顺指标公式代码参考

Python代码参考

import tushare as ts
import pandas as pd
from datetime import datetime,timedelta

pro = ts.pro_api()

def select_stocks(n, industry):
    selected_stocks = []
    
    today = datetime.today().strftime("%Y%m%d")
    yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y%m%d")

    for code in pro.query('stock_basic', exchange='', list_status='L',
                         fields='ts_code,name,list_date,list_status,total_mv')["ts_code"]:
        if len(selected_stocks) >= n:
            break
            
        db = pro.daily(ts_code=code, start_date=(datetime.now() - timedelta(days=365)).strftime("%Y%m%d"),
                           end_date=date.today().strftime("%Y%m%d"), fields='close,high,low')
        
        if db.empty or len(db) < 250:
            continue
        
        db_amplitude = (db['high'] - db['low']) / db['close']
        
        df_moneyflow = pro.moneyflow(ts_code=code, start_date=db['trade_date'].iloc[0].strftime("%Y%m%d"),
                                  end_date=db['trade_date'].iloc[-1].strftime("%Y%m%d"), fields='date,main_buyer')
        db_mainmoney = pd.Series(df_moneyflow['main_buyer'].values, index=df_moneyflow['date'])
        
        db_turnover_rate = db['vol'] / pro.query('stock_basic', ts_code=code,
                                                 fields='outstanding_share')['outstanding_share'].iloc[0] * 100
    
        if db_amplitude.iloc[-1] > 1 and 0.5 < db_turnover_rate.iloc[-1] * (db['vol'].iloc[-1] / db['vol'].iloc[-2]) < 2:
            info = pro.stock_basic(ts_code=code, fields='industry')
            if industry in str(info['industry']):
                selected_stocks.append({'code':code, 'last_close': db['close'].iloc[-1], 
                                        'hot':db_mainmoney.iloc[-1]})

    df = pd.DataFrame(selected_stocks)
    df_selected = df.sort_values('hot', ascending=False).head(n)

    selected_stocks = list(df_selected['code'])
    
    return selected_stocks
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧