(supermind量化投资)task13/a/元宇宙、昨日股价大于250日均线、三个技术

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

问财量化选股策略逻辑

该选股策略包括三个条件:元宇宙、昨日股价大于250日均线、三个技术指标同时金叉。通过筛选符合要求的股票进行投资。

选股逻辑分析

该选股策略主要通过以下三个条件选择符合要求的个股进行投资:

  1. 元宇宙:选择热门板块中的个股
  2. 昨日股价大于250日均线:判断个股目前的价格是否接近长期均线及相对稳定
  3. 三个技术指标同时金叉:通过技术指标的交叉判断股票的趋势单方向变化,进而捕捉股票的上涨机会。

综合以上三个条件,选择符合要求的个股进行投资。

有何风险?

  1. 市场波动带来的风险;
  2. 技术指标不能保证百分之百正确;
  3. 选股逻辑单一可能会带来误判。

如何优化?

  1. 加入其他指标,综合多方面判断;
  2. 利用深度学习等技术对选股逻辑进行进一步优化;
  3. 利用止盈止损的选股方法,控制风险。

最终的选股逻辑

该选股策略选择元宇宙板块中、股票均价站在五日均线之上、包含MACD、KDJ、RSI三个技术指标,且三个指标同时出现金叉的个股作为投资目标。

同花顺指标公式代码参考

元宇宙:GNBK("gnxq")

昨日股价大于250日均线:C >= MA(250)

MACD:

DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIFF,MID);
MACD:=(DIFF-DEA)*2;
MA1(CROSS(MACD,0),5);

KDJ:

K: SMA((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))100,3,1);
D: SMA(K,3,1);
J: 3
K-2*D;

MA1(CROSS(J,D),5);

RSI:

RSI1:=SMA(MAX(CLOSE-LASTCLOSE,0),N,1)/SMA(ABS(CLOSE-LASTCLOSE),N,1)*100;
RSI2:=SMA(MAX(CLOSE-LASTCLOSE,0),29,1)/SMA(ABS(CLOSE-LASTCLOSE),29,1)*100;
MA1(CROSS(RSI1, RSI2), 5)

Python代码参考

import pandas as pd
import tushare as ts

def stock_selector():
    ts.set_token('your_token')
    pro = ts.pro_api()

    # 获取所有元宇宙板块中的个股
    gnxq = pro.index_basic(
        fields='category',
        identifying_code='9650',
        market='SSE'
    )
    gnxq_stocks = gnxq.loc[gnxq['category'] == 'GN023']

    data_selected = pd.DataFrame()
    for code in gnxq_stocks['con_code']:
        df = pro.query('stock_basic', ts_code=code, fields=['name'])
        ts_data = ts.pro_bar(
            ts_code=code,
            adj='qfq',
            start_date='20160101',
            end_date='20220110'
        )
        if len(ts_data)>2 and ts_data.iloc[-1]['close'] >= ts_data.iloc[-1]['close'].rolling(5).mean()[4] and ts_data.iloc[-2]['close'] >= ts_data.iloc[-2]['close'].rolling(250).mean()[249]:
            macd, macdsignal, _ = talib.MACD(ts_data['close'], fastperiod=12, slowperiod=26, signalperiod=9)
            kdj_k, kdj_d, kdj_j = talib.STOCH(ts_data['high'], ts_data['low'], ts_data['close'], fastk_period=9, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
            rsi1 = talib.RSI(ts_data['close'], timeperiod=14)
            rsi2 = talib.RSI(ts_data['close'], timeperiod=29)
            if macd[-1]>macdsignal[-1] and kdj_k[-1]>kdj_d[-1] and rsi1[-1]>rsi2[-1]:
                data_selected = data_selected.append(df[['name']])
                
    return data_selected
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论