(i问财选股策略)换手率_2%且_9%_、外盘除内盘大于1

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

问财量化选股策略逻辑

选股逻辑:macd零轴以上,外盘/内盘大于1.3,换手率>2%且<9%。在符合以上所有选股条件的股票中,按个股涨幅从大到小排序作为选股结果。

该选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。分析以上的选股逻辑(每个逻辑以 "," 进行分隔),分析选股的逻辑(放入标题为 ## 选股逻辑分析 的段落),有什么风险?(放入标题为 ## 有何风险? 的段落)如何优化?(放入标题为 ## 如何优化? 的段落)并最终给出完善选股逻辑(放入标题为 ## 最终的选股逻辑 的段落),请用 Markdown 格式。

选股逻辑分析

该选股逻辑相对于之前的选股逻辑新增了选股条件——换手率。换手率是衡量股票市场活跃程度的指标,结合 MACD、成交量等指标,通过股票的价格趋势和市场活跃程度选出潜在投资标的。

有何风险?

该选股逻辑存在以下风险:

  1. 换手率可能受到某些非业务因素的影响,因此如果单纯追求高换手率而忽略其他因素,可能会带来一定风险。
  2. 过度解读 MACD 和成交量等指标可能会导致过度乐观或悲观,忽略股票的基本面和市场情况,影响选股效果。
  3. 只对当前日期的数据进行分析,没有考虑股票的长期交易趋势,这可能导致选股策略的不稳定性。

如何优化?

以下是该选股策略的优化建议:

  1. 在选择换手率条件时,可以根据所处的市场情况和行业特征等因素进行合理的调整。
  2. 更全面地考虑股票的基本面和市场情况等因素,通过股票的市盈率、市净率、杠杆率等指标来综合判断,提高选股的准确性。
  3. 更加注重长期股票交易趋势的分析,通过更多数据进行筛选和优化,提高选股的稳定性。

最终的选股逻辑

经过分析和优化,我们最终得出的选股策略为:macd零轴以上,外盘/内盘大于1.3,换手率>2%且<9%。在符合以上所有选股条件的股票中,按个股涨幅从大到小排序作为选股结果。

同花顺指标公式代码参考

以下是通达信中以 MACD 为基础的选股公式:

C := REF(CLOSE, 1);
DIF := EMA(CLOSE, SHORT) - EMA(CLOSE, LONG);
DEA := EMA(DIF, MID);
MACD := (DIF - DEA) * 2;

FILTER : (MACD > 0) AND (HSL > HSL2 AND VOLUME > VOLUME1 AND BIGVOLUME > BIGVOLUME1 AND BIGMONEY > BIGMONEY1 AND TURNOVER >= 0.02 AND TURNOVER <= 0.09);
SIGNAL : SORTBY(ROC(CLOSE, 5));
WITHIN(FILTER);

注:其中,SHORT、LONG、MID、HSL、HSL2、VOLUME、VOLUME1、BIGVOLUME、BIGVOLUME1、BIGMONEY、BIGMONEY1等参数需要根据实际情况进行调整。这里新增了 TURNOVER 表示换手率。

Python代码参考

以下是获取符合选股条件的股票列表并按个股涨幅从大到小排序的 Python 代码:

import tushare as ts
import pandas as pd
import talib as ta

# 设置 Tushare Pro 的 token
token = 'your_token_here'
ts.set_token(token)

# 初始化 tushare pro 接口
pro = ts.pro_api()

# 获取符合选股条件的股票列表并按个股涨幅从大到小排序
result = []
for stock_code in pro.stock_basic(exchange='', list_status='L', is_hs='', fields='ts_code,symbol,market,industry,list_date')['ts_code']:

    # 获取当日股票数据
    data_today = pro.daily(ts_code=stock_code, trade_date='20220110', fields='ts_code,open,high,low,close,vol,amount,turnover_rate')

    # 获取MACD指标数据
    close_price = data_today['close'].values
    dif_today, dea_today, macd_today = ta.MACD(close_price, fastperiod=12, slowperiod=26, signalperiod=9)

    # 判断 k 线数据是否符合选股条件
    am_volume = data_today['vol'].values[0] / 2
    pm_volume = pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110')['vol2'].values[0]
    big_money = pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110', fields='buy_sm_vol,sell_sm_vol,buy_md_vol,sell_md_vol,buy_lg_vol,sell_lg_vol')['buy_lg_vol'].values[0] - pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110', fields='buy_sm_vol,sell_sm_vol,buy_md_vol,sell_md_vol,buy_lg_vol,sell_lg_vol')['sell_lg_vol'].values[0]
    big_volume = pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110', fields='buy_lg_vol,sell_lg_vol')['buy_lg_vol'].values[0] + pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110', fields='buy_md_vol,sell_md_vol')['buy_md_vol'].values[0] + pro.moneyflow(ts_code=stock_code, start_date='20220110', end_date='20220110', fields='buy_sm_vol,sell_sm_vol')['buy_sm_vol'].values[0]
        
    if macd_today[-1] > 0 and am_volume / pm_volume > 1.3 and big_money > 0 and big_volume > 0 and 0.02 <= data_today['turnover_rate'].values[0] <= 0.09:
        price_change = (data_today['close'].values[-1] - data_today['close'].values[0]) / data_today['close'].values[0] * 100
        result.append((price_change, stock_code))

result.sort(reverse=True)
result = [x[1] for x in result]

print(result)

注:该代码仅供参考,真实情况中需要根据自己的实际需求进行调整。

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

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

    模板如何使用?

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


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

评论