(同花顺量化)20日均线大于120日均线_、收盘价_boll(upper值)且收盘价_bo

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

问财量化选股策略逻辑

这个策略的逻辑是基于以下三个条件来筛选股票:

  1. 至少5根均线重合的股票
  2. 收盘价<boll(upper值)且收盘价>boll(mid值)
  3. 20日均线大于120日均线

选股逻辑分析

这个策略的逻辑看起来比较清晰,主要是通过均线和布林线来筛选股票。首先,至少5根均线重合的股票意味着这些股票的均线走势比较稳定,可以作为买入的参考。其次,收盘价<boll(upper值)且收盘价>boll(mid值)意味着这些股票的价格在布林线的上轨和中轨之间,表明价格处于相对高位,有回调的风险。最后,20日均线大于120日均线意味着这些股票的短期趋势比长期趋势更加乐观,可以作为买入的参考。

有何风险?

这个策略的逻辑看起来比较简单,但是仍然存在一些风险。首先,均线和布林线的指标并不是完全准确的,可能会导致筛选出的股票不符合实际情况。其次,即使筛选出的股票符合这些条件,仍然存在价格回调的风险。最后,由于这个策略是基于短期趋势和长期趋势的判断,因此可能会忽略一些长期趋势更加重要的因素。

如何优化?

为了优化这个策略,可以考虑以下几点:

  1. 使用更多的均线和布林线指标来筛选股票,以提高筛选的准确率。
  2. 考虑加入其他指标,如MACD、RSI等,来更好地判断股票的趋势。
  3. 对于筛选出的股票,可以进行进一步的分析和筛选,以确定是否值得买入。

最终的选股逻辑

最终的选股逻辑如下:

  1. 选择至少5根均线重合的股票。
  2. 选择收盘价在布林线的上轨和中轨之间的股票。
  3. 选择20日均线大于120日均线的股票。
  4. 对于筛选出的股票,进行进一步的分析和筛选,以确定是否值得买入。

python代码参考

以下是基于pandas和ta-lib库的python代码参考:

import pandas as pd
import talib

def get_rolling_mean(data, n):
    return data.rolling(n).mean()

def get_bollinger Bands(data, n):
    upper = talib.BBANDS(data, timeperiod=n, type='upper')
    middle = talib.BBANDS(data, timeperiod=n, type='middle')
    lower = talib.BBANDS(data, timeperiod=n, type='lower')
    return upper, middle, lower

def get_stock_data(symbol):
    df = pd.read_csv('stock_data.csv')
    df['date'] = pd.to_datetime(df['date'])
    df.set_index('date', inplace=True)
    df = df[symbol]
    return df

def get筛选条件(data, n):
    rolling_mean_upper = get_rolling_mean(data, n)
    rolling_mean_middle = get_rolling_mean(data, n)
    rolling_mean_lower = get_rolling_mean(data, n)
    upper, middle, lower = get_bollinger Bands(data, n)
    return rolling_mean_upper, rolling_mean_middle, rolling_mean_lower, upper, middle, lower

def get筛选结果(data, n):
    rolling_mean_upper, rolling_mean_middle, rolling_mean_lower, upper, middle, lower = get筛选条件(data, n)
    stocks = []
    for i in range(len(data)):
        if rolling_mean_upper[i] > upper[i] and rolling_mean_middle[i] > middle[i] and rolling_mean_lower[i] > lower[i]:
            stocks.append(data.iloc[i])
    return stocks

# 示例
data = get_stock_data('AAPL')
rolling_mean_upper, rolling_mean_middle, rolling_mean_lower, upper, middle, lower = get筛选条件(data, 20)
stocks = get筛选结果(data, 20)
print(stocks)

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论