振幅大于1、MACD零轴以上、资金强度由大到小 问财量化策略

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

选股逻辑

选取振幅大于1、MACD零轴以上、资金强度由大到小的股票。

选股逻辑分析

除了关注波动性和多头力量外,新增了资金强度的选股因素。资金强度是通过计算股票成交量与成交金额的比值得出,代表了股票的资金流向和市场热度。同时,按照由大到小的顺序排序,对资金流向较强的股票进行优先选取。

有何风险?

该逻辑对于资金流向的关注可能会忽略掉一些未受资金关注但有较高潜力的股票。同时,该逻辑忽略了公司的基本面和行业发展趋势对股票价格的影响,存在一定程度的风险。

如何优化?

可以结合基本面分析和行业发展趋势,将资金强度作为选股因素之一,而不是唯一依据。可以将资金强度与股票的财务数据、行业前景等因素进行综合分析,完善选股逻辑。

最终的选股逻辑

选取振幅大于1、MACD零轴以上、按资金强度由大到小排序的股票。

同花顺指标公式代码参考

  • 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
  • MACD零轴以上:CROSS(MACD(12,26,9),0)>0
  • 资金强度:VOL/CAPITALFLOW
  • 排序:SORTBY(CAPITALFLOW ,1)

选取股票代码:

  • SELECTED: VAR1 AND VAR2 AND VAR3;

python代码参考

import tushare as ts
import talib

def get_filter():
    # 获取MACD指标
    df = ts.get_stock_basics()
    macd = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)

    # 获取振幅大于1
    mask1 = abs(df['high'] - df['low']) / df['open'] > 0.01

    # 获取MACD零轴以上
    mask2 = macd[2] > 0

    # 获取资金强度
    mask3 = df['volume'] / df['turnover'] > 1

    # 综合mask并排序
    mask = [code for code in mask1.index.values if (code in mask2.index.values) and (code in mask3.index.values)]
    mask = sorted(mask, key=lambda x: df.loc[x, 'turnover'], reverse=True)

    return mask

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论

需要帮助?

试试AI小助手吧