(supermind策略)task16/a/macd零轴以上、价格<12、圆弧形

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

问财量化选股策略逻辑

选股逻辑为 MACD 技术指标零轴以上、价格小于 12 元、成交量的圆弧形(由近到远排列)递增。选股时间为每个交易日开盘前 10 点进行。

选股逻辑分析

该选股策略综合考虑了技术指标、股票价格和成交量的形态,圆弧形的成交量形态反映了近期成交量的变化趋势,与 MACD 技术指标的零轴以上、价格较低一同进行综合选股,可以排除一些成交量极端的股票,进而降低策略的风险。

有何风险?

  1. 数据风险,选股依赖于数据,如果数据不稳定或不准确,可能会影响选股结果。
  2. 市场风险,股票市场波动较为剧烈,选股结果容易受到市场波动的影响。

如何优化?

  1. 考虑加入其他技术指标或基本面指标,以提高选股准确性。
  2. 根据场内成交量的实际情况,调整选股策略中的成交量圆弧形条件。

最终的选股逻辑

综合 MACD 技术指标、价格条件、成交量条件的形态,选出符合要求的股票,并进一步进行资金运用的风险评估。

同花顺指标公式代码参考

以下为 MACD 指标、价格条件、成交量条件的同花顺指标公式:

MACD(C, 12, 26, 9);
CROSS(MACD, 0) = 1;
CLOSE < 12;
ARC_VOL = ARC(VOL, 30);

其中 C 为当日收盘价,VOL 为当日成交量,ARC_VOL为近30天的成交量的圆弧形。

Python代码参考

以下是 Python 的选股筛选代码,仅供参考:

import talib
import akshare as ak
import pandas as pd

data_stock_price = ak.stock_zh_a_daily(symbol="sz000001", adjust="qfq")  # 获取股票数据,可根据实际需求调整

close_price = data_stock_price['close'].to_numpy()
can_trading = data_stock_price['can_trading'].to_numpy()
vol = data_stock_price['vol'].to_numpy()
arc_vol = talib.ARC(vol, timeperiod=30)
vol_rank = pd.Series(arc_vol).rank(pct=True).values  # 计算成交量圆弧形的排名占比

short, long, m = 12, 26, 9
dif, dea, macd = talib.MACD(np.array(close_price), fastperiod=short, slowperiod=long, signalperiod=m)

target_stocks = []
for i in range(2, len(data_stock_price)):
    if data_stock_price["price"].iloc[i] < 12 and macd[i] > 0 and can_trading[i-1] and vol_rank[i-1]>0.3 and vol_rank[i-1]<=0.7:
            target_stocks.append([data_stock_price.index[i], data_stock_price["name"].iloc[i]])

target_stocks = sorted(target_stocks, key=lambda x: hot_rank_list.index(x[0]), reverse=True)

需要注意,由于数据在运行时需要更新,因此具体代码需要根据实际情况进行调整。同时需要根据实际情况查询对应的 AKShare 数据接口。还需要根据需求调整选股结果的输出方式。

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

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

    模板如何使用?

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


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

评论