(supermind策略)task16/a/macd零轴以上、按个股热度从大到小排序名、周

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

问财量化选股策略逻辑

选股逻辑为MACD零轴以上,按个股热度从大到小排序名,并且股票周线MACD在零轴之上。选股时间为每周末收盘后进行。

选股逻辑分析

MACD指标可以反映市场趋势,个股热度可以反映市场关注度,周线MACD可以反映中长期市场情况。综合考虑这些因素可以找到市场上具有较好投资机会的股票,进而优化投资策略,提高投资成功率。

有何风险?

  1. 过度关注技术指标,忽略基本面和业绩变化,可能导致投资失败;
  2. 对于中长期趋势和周线MACD的分析存在偏差和误判的风险;
  3. 个股热度过高可能存在市场炒作和泡沫等风险,需要谨慎选择;
  4. 选股后没有对个股进行基本面分析,存在市场风险。

如何优化?

  1. 根据经济和行业的情况,根据市场结构性变化,设置更为合理、全面的筛选条件;
  2. 在周线MACD之上的股票不一定具有长期投资价值,需要结合其他指标分析;
  3. 加入其他技术指标或者参数,提高筛选的准确度;
  4. 加入个股基本面分析,减少对技术面的过度依赖。

最终的选股逻辑

选股逻辑为MACD零轴以上,按个股热度从大到小排序名,并且股票周线MACD在零轴之上。选股时间为每周末收盘后进行。

同花顺指标公式代码参考

MACD指标:

DIF: EMA(CLOSE, 12) - EMA(CLOSE, 26);
DEA: EMA(DIF, 9);
MACD: (DIF - DEA) * 2;

W-DIF: EMA(CLOSE, 12) - EMA(CLOSE, 26);
W-DEA: EMA(W-DIF, 9);
W-MACD: (W-DIF - W-DEA) * 2;

其中CLOSE为当日收盘价,EMA为指数移动平均数。

Python代码参考

以下为python的选股筛选代码,仅供参考:

import akshare as ak
import talib as ta

# 获取股票数据并计算筛选结果
data_stock = ak.stock_zh_a_daily_em()
data_stock = data_stock[data_stock['pct_chg'] < 10]  
# 去除涨停股
data_stock["close"] = data_stock["close"].astype(float)
data_stock["high"] = data_stock["high"].astype(float)
data_stock["low"] = data_stock["low"].astype(float)
data_stock['dif'] = ta.EMA(data_stock['close'], timeperiod=12) - ta.EMA(data_stock['close'], timeperiod=26)
data_stock['dea'] = ta.EMA(data_stock['dif'], timeperiod=9)
data_stock['macd'] = (data_stock['dif'] - data_stock['dea']) * 2
data_stock["week"] = data_stock["date"].apply(lambda x: int(x.strftime("%U")))
data_stock_week = data_stock.groupby(["ts_code", "week"]).last().reset_index()
data_stock_week['w-dif'] = ta.EMA(data_stock_week['close'], timeperiod=12) - ta.EMA(data_stock_week['close'], timeperiod=26)
data_stock_week['w-dea'] = ta.EMA(data_stock_week['w-dif'], timeperiod=9)
data_stock_week['w-macd'] = (data_stock_week['w-dif'] - data_stock_week['w-dea']) * 2
data_stock_hot = ak.stock_zh_a_board_spot_top(indicator="热度")
result_filtered = data_stock_week[(data_stock_week['dif'] > 0) & (data_stock_week['w-macd'] > 0) & data_stock_week['ts_code'].isin(data_stock_hot['ts_code'])]
result_sorted = result_filtered.sort_values(by=['hot'], ascending=False)
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论