(同花顺量化)15分钟周期MACD绿柱变短_、流通市值大于100亿元、至少5根均线重合的股

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 流通市值大于100亿元
  • 15分钟周期MACD绿柱变短

选股逻辑分析

  • 5根均线重合,说明股票价格趋势较为稳定,有利于投资者进行长期投资。
  • 流通市值大于100亿元,说明该股票较为成熟,具有较大的市场影响力。
  • 15分钟周期MACD绿柱变短,说明股票价格短期趋势有望转为上涨。

有何风险?

  • 5根均线重合的股票,可能会导致股票价格波动较小,不利于投资者获取高收益。
  • 流通市值大于100亿元的股票,可能会导致股票价格被高估,不利于投资者进行价值投资。
  • 15分钟周期MACD绿柱变短,可能会导致股票价格在短期内上涨,但长期趋势不一定能够保持上涨。

如何优化?

  • 可以考虑加入更多均线的组合,以提高股票价格趋势的稳定性和准确性。
  • 可以考虑加入更多股票的筛选条件,以提高股票投资的效率和收益率。
  • 可以考虑加入更多技术指标的组合,以提高股票价格趋势的判断准确度。

最终的选股逻辑

  • 选取至少5根均线重合的股票,流通市值大于100亿元,15分钟周期MACD绿柱变短的股票。
  • 可以考虑加入更多均线、指标的组合,以提高股票价格趋势的稳定性和准确性。
  • 可以考虑加入更多股票的筛选条件,以提高股票投资的效率和收益率。

python代码参考

import talib

def get_5均线(x):
    ma5 = talib.MA(x, timeperiod=5)
    return ma5

def get流通市值(x):
    return x['流通市值']

def get_macd(x):
    ema12 = talib.EMA(x, timeperiod=12)
    ema26 = talib.EMA(x, timeperiod=26)
    macd = ema12 - ema26
    return macd

def get_signal(x):
    signal = talib.SMA(macd, timeperiod=9)
    return signal

def get_stock(x):
    ma5 = get_5均线(x)
    ema12 = get_ema12(x)
    ema26 = get_ema26(x)
    macd = get_macd(x)
    signal = get_signal(x)
   流通市值 = get流通市值(x)
    return ma5, ema12, ema26, macd, signal,流通市值

def get_stocks():
    stocks = []
    for i in range(1, len(x)):
        ma5, ema12, ema26, macd, signal,流通市值 = get_stock(x[i])
        stocks.append([ma5, ema12, ema26, macd, signal,流通市值])
    return stocks

def optimize_stocks(stocks):
    ma5, ema12, ema26, macd, signal,流通市值 = stocks[0]
    for i in range(1, len(stocks)):
        ma5, ema12, ema26, macd, signal,流通市值 = stocks[i]
        if ma5 > ma5[i]:
            ma5 = ma5[i]
        if ema12 > ema12[i]:
            ema12 = ema12[i]
        if ema26 > ema26[i]:
            ema26 = ema26[i]
        if macd > macd[i]:
            macd = macd[i]
        if signal > signal[i]:
            signal = signal[i]
        if流通市值 >流通市值[i]:
           流通市值 =流通市值[i]
    return ma5, ema12, ema26, macd, signal,流通市值

def get_optimized_stocks(stocks):
    ma5, ema12, ema26, macd, signal,流通市值 = optimize_stocks(stocks)
    return ma5, ema12, ema26, macd, signal,流通市值

def get_risk_free_rate():
    return 0.02

def get_daily_return(x):
    daily_return = x['close'] / x['close'].shift(1) - 1
    return daily_return

def get_total_return(x):
    total_return = get_daily_return(x).cumsum()
    return total_return

def get_stocks_risk_free_rate(stocks):
    risk_free_rate

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

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

模板如何使用?

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


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

评论