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

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

问财量化选股策略逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,且当日收盘价低于12的股票。该策略主要关注股票价格的波动和低估程度,同时考虑股票的流动性和市场情绪等因素,注重风控,避免选取风险较高的股票。

选股逻辑分析

本选股策略侧重于选取低价的股票,在正常市场行情下,低价股票投资机会相对更多,有更高的风险收益比。同时考虑了市场流动性和情绪等因素,振幅大的股票更容易出现高买低卖的机会,同时也能够一定程度上增量冲量和市场热度。过滤价格高于12的做法,可以避免一些高估的低价股票,同时避免了高估对于后续的投资价值带来的负面影响。选股策略在风险控制上,避免了过分关注收益率的投资策略。

有何风险?

选取低价股票的策略可能会忽略股票的基本面情况和公司未来发展前景,导致投资价值降低。同时,忽略选股时间点选择的风险也需要注意,可能会导致选出股票的质量和盈利水平发生变化。另外,股票价格的波动也导致股票的收益可能会受到市场风险和市场趋势等因素的影响。

如何优化?

为了优化选股策略,可以结合更多的信息,如市场环境、行业影响、重磅新闻、基本面和技术面等因素。加入行业因素并根据股票的成长性和业务发展情况,以全面考虑股票的投资价值;同时结合技术面指标和市场情绪等因素,更加全面地分析和评估选取股票的质量和价值。此外,选股时应注意市场风险的控制,根据市场周期进行投资,避免过于乐观或悲观,根据市场环境进行相应的投资策略。

最终的选股逻辑

本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,且当日收盘价低于12的股票。同时,加入行业因素,侧重于股票的成长性和业务发展情况,加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。

同花顺指标公式代码参考

Python代码参考

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

pro = ts.pro_api()

def select_stocks(n):
    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 or db['close'].iloc[-1] > 12:
            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:
            selected_stocks.append({'code':code, 'last_close': db['close'].iloc[-1], 
                                    'hot':db_mainmoney.iloc[-1]})

    df = pd.DataFrame(selected_stocks)
    df_selected = df.loc[df['last_close']<12].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小助手吧