(iwencai量化策略)macd零轴以上_、昨天龙虎榜、至少5根均线重合的股票

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

问财量化选股策略逻辑

选股逻辑

  1. 至少5根均线重合的股票
  2. 昨天龙虎榜
  3. macd零轴以上

选股逻辑分析

  1. 第一条均线重合的股票代表了多条均线的支撑,说明股票价格比较稳定,不容易出现大幅下跌的情况。
  2. 第二条龙虎榜代表了机构投资者和游资的关注程度,如果昨天龙虎榜上有机构投资者或游资买入,说明股票可能有上涨的趋势。
  3. 第三条macd零轴以上代表了股票价格趋势向上,如果macd零轴以上,说明股票价格有可能继续上涨。

有何风险?

  1. 如果股票价格已经处于高位,三条均线重合的股票可能会出现回调的风险。
  2. 龙虎榜上的机构投资者或游资买入并不一定代表股票会涨,因为机构投资者和游资的操作往往是短期的,而且买入的量也不一定很大。
  3. macd零轴以上并不一定代表股票会涨,因为macd零轴以上只是说明股票价格趋势向上,但并不一定代表股票价格会继续上涨。

如何优化?

  1. 可以考虑加入更多均线的条件,例如10日、20日、60日均线等,这样可以更好地判断股票的价格趋势。
  2. 可以考虑加入成交量的条件,例如成交量需要大于一定数量,这样可以更好地判断股票的活跃程度。
  3. 可以考虑加入其他技术指标的条件,例如布林线、RSI等,这样可以更好地判断股票的价格波动情况。

最终的选股逻辑

  1. 股票价格稳定,至少5根均线重合
  2. 龙虎榜上有机构投资者或游资买入
  3. macd零轴以上
  4. 成交量大于一定数量
  5. 布林线在中轨以上,RSI在50以上

python代码参考

import talib
import pandas as pd

def get_stock_data(stock_code):
    # 获取股票的历史数据
    df = pd.read_csv(f'https://query1.finance.sina.com.cn/gundata/stock/quote/{stock_code}.csv')
    df = df[['close']]
    df = df.resample('D').last()
    df = df['close'].diff()
    df = df.dropna()
    df = df[df > 0]
    return df

def get_moving_average(df, n):
    # 计算n日的移动平均线
    ma = talib.MA(df, n)
    return ma

def get_volume(df):
    # 获取股票的历史成交量数据
    df = df[['volume']]
    df = df.resample('D').sum()
    df = df['volume'].diff()
    df = df.dropna()
    return df

def get_stock_bollinger(df):
    # 计算股票的布林线
    lower, middle, upper = talib.BBANDS(df['close'], timeperiod=20)
    return lower, middle, upper

def get_stock_rsi(df):
    # 计算股票的RSI指标
    rsi = talib.RSI(df['close'], timeperiod=14)
    return rsi

def get_stock_data_with_macd(df):
    # 获取股票的历史数据,加入macd指标
    df['macd'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
    df['macd_signal'] = df['macd'].signal
    df['macd_hist'] = df['macd'].hist
    return df

def get_stock_data_with_all(df):
    # 获取股票的历史数据,加入所有指标
    df['ma5'] = get_moving_average(df, 5)
    df['ma10'] = get_moving_average(df, 10)
    df['ma20'] = get_moving_average(df, 20)
    df['ma60'] = get_moving_average(df, 60)
    df['volume'] = get_volume(df)
    df['lower'], df['middle'], df['upper'] = get_stock_bollinger(df)
    df['rsi'] = get_stock_rsi(df)
    df['macd'] = get_stock_data_with_macd(df)
    return df

def get_stock_data_with_all_and_filter(df):
    # 获取股票的历史数据,加入所有指标,并过滤掉成交量小于10000的股票
    df = get_stock_data_with_all(df)
    df = df[df['volume'] > 10000]
    return df

def get_stock_data_with_all_and_filter_and_sort(df):

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

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

模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧