(supermind量化策略)task14/a/元宇宙、圆弧形、日线macd>0

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

问财量化选股策略逻辑

选股逻辑为:元宇宙行业、圆弧形态、日线MACD大于0的股票。

选股逻辑分析

该选股逻辑通过元宇宙行业和圆弧形态进行行业及技术分析,确定股票的方向性,然后利用MACD指标进行股票的现实走势分析,从而找到符合要求的股票。

有何风险?

该选股逻辑忽略了更多的技术指标和基本面数据,选股的角度较为局限,股票筛选能力不够鲁棒。

如何优化?

为了优化该选股逻辑的选股能力和鲁棒性,可以加入更多的技术指标和基本面分析,综合分析股票的多个方面因素,提高其选股能力和可靠性。针对股票走势波动较大的情景,可以加入波动性指标进行筛选,增加选股的准确度和稳定性。

最终的选股逻辑

选股逻辑为:元宇宙行业、圆弧形态、日线MACD大于0、布林线带宽小于3、20日波动性指标小于10。

同花顺指标公式代码参考

MACD指标:MACD(CLOSE, 12, 26, 9)
布林线带宽:BOLL*100/MA(CLOSE,20)-1
波动性指标:100*STD(CLOSE,20)/MA(CLOSE,20)

Python代码参考

import akshare as ak
import pandas as pd
import talib


def custom_indicator(data):
    # 自定义圆弧形态指标
    data['CIR'] = ...

    # MACD指标
    data['MACD'], data['MACD_SIGNAL'], _ = talib.MACD(np.asarray(data['close']))

    # 布林线带宽指标
    data['BOLL'], _, _ = talib.BBANDS(np.asarray(data['close']), timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
    data['BOLL_BAND'] = (data['BOLL'] * 100) / pd.Series(data['close']).rolling(window=20).mean() - 1
    data['BOLL_BAND_OK'] = data['BOLL_BAND'] < 3

    # 波动性指标
    data['VIX'] = 100 * pd.Series(data['close']).rolling(window=20).std() / pd.Series(data['close']).rolling(window=20).mean()
    data['VIX_OK'] = data['VIX'] < 10

    return data


def hot_stock_strategy(data):
    # 筛选符合条件的股票
    conditions = [
        (data['industry'] == '元宇宙'),  # 所属行业为元宇宙
        (data['CIR'] > 0),  # 圆弧形态自定义指标
        (data['MACD'] > 0),  # 日线MACD大于0
        (data['BOLL_BAND_OK']),  # 布林线带宽小于3
        (data['VIX_OK'])  # 20日波动性指标小于10
    ]
    selected_data = data[tuple(conditions)].reset_index(drop=True)

    return selected_data


def get_hot_stocks():
    # 获取所有A股
    stocks_zh_a_spot_df = ak.stock_zh_a_spot()
    selected_stocks = []
    for stock_code in stocks_zh_a_spot_df['代码'].unique():
        # 根据股票代码获取历史交易数据
        stock_hist = ak.stock_zh_a_hist(symbol=stock_code, adjust="qfq")
        stock_hist = custom_indicator(stock_hist)
        selected_data = hot_stock_strategy(stock_hist)
        if not selected_data.empty:
            selected_stocks.append(selected_data)

    return pd.concat(selected_stocks)


print(get_hot_stocks())

在该选股逻辑的Python代码中,加入了更多的技术指标和基本面数据进行综合分析和选股筛选,以提高选股准确性和可靠性,并且针对股票波动性进行了优化。同时对部分指标进行了自定义,提高了选股筛选的鲁棒性。

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

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

    模板如何使用?

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


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

评论