(iwencai量化策略)竞价主力净买大于0_、至少5根均线重合的股票、振幅大于1

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

问财量化选股策略逻辑

该选股策略包括三个条件:

  • 振幅大于1
  • 至少5根均线重合的股票
  • 竞价主力净买大于0

选股逻辑分析

该选股策略同样侧重了技术面指标,挖掘技术面的关键点。选股条件中振幅大于1和至少5根均线重合的限制,有助于筛选出股票价格较为稳定的品种。竞价主力净买大于0表明主力资金正在增加仓位,有望在未来一段时间内表现良好。

有何风险?

选股方式依然比较单一,没有考虑公司基本面和未来发展趋势等因素,存在挑选不理想的股票的风险。同时,市场风险仍然存在。在进行回测时,应该考虑不同市场环境下该策略的表现,以避免过度拟合。

如何优化?

可以综合考虑公司的基本面和未来发展趋势等因素,采用更严格的选股条件,并结合机器学习等方法,构建更加精准的选股模型。在进行回测时,应该采用交叉验证等方法,以避免过度拟合。同时,可以加入其他技术指标如MACD、KDJ等来补充选股条件,提高模型的准确度。

最终的选股逻辑

综合考虑以上因素,修改后的选股逻辑为:

  • 振幅大于1;
  • 5日均线、10日均线、20日均线、30日均线、60日均线重合;
  • 竞价主力净买大于0;
  • 综合考虑公司的基本面和未来发展趋势等因素。

同花顺指标公式代码参考

  • 竞价主力净买指标公式:LJCJJE - LJCJL > 0,其中LJCJJE表示当日竞价成交总金额,LJCJL表示当日竞价成交总量。

python代码参考

import pandas as pd
import tushare as ts
import talib

df = ts.get_stock_basics()
codes = df.index.tolist()

result = pd.DataFrame()

for code in codes:
    is_amplitude_large = False
    is_ma_converge = False
    is_lj_buy = False
    
    bars = ts.get_k_data(code, '2022-01-01', '2022-12-31') # 获取2022年的日线K线图
    
    if bars is not None and len(bars) > 1:
        # 振幅大于1
        is_amplitude_large = (bars['high'].max() - bars['low'].min()) / bars['close'].iloc[-2] > 0.01
        
        # 至少5根均线重合的股票
        close = bars['close'].values
        ma_5 = talib.MA(close, timeperiod=5)
        ma_10 = talib.MA(close, timeperiod=10)
        ma_20 = talib.MA(close, timeperiod=20)
        ma_30 = talib.MA(close, timeperiod=30)
        ma_60 = talib.MA(close, timeperiod=60)
        ma_count = len(set([ma[-1] for ma in [ma_5, ma_10, ma_20, ma_30, ma_60]]))
        is_ma_converge = ma_count >= 5
        
        # 竞价主力净买大于0
        lj_cjje = bars['volume'] * bars['close'] # 竞价成交总金额
        lj_jyje = lj_cjje - bars['money'] # 竞价净成交总金额
        lj_buy_volume = lj_jyje[lj_jyje > 0].sum() / bars['close'].iloc[-1]
        is_lj_buy = lj_buy_volume > 0
        
        if is_amplitude_large and is_ma_converge and is_lj_buy:
            result = result.append({'code': code, 'name': df.loc[code]['name'], 'price': bars['close'].iloc[-1], 'industry': df.loc[code]['industry']}, ignore_index=True)

result = result.sort_values(by=['industry'], ascending=False)
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论