(同花顺量化)2021年_、收盘价_boll(upper值)且收盘价_boll(mid值)

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

问财量化选股策略逻辑

1. 至少5根均线重合的股票

至少5根均线重合的股票,说明这些股票的短期和中期趋势比较一致,有利于投资者进行买入操作。

2. 收盘价<boll(upper值)且收盘价>boll(mid值)

收盘价在布林带上轨处且收盘价高于布林带中轨,说明股票价格处于上升趋势中,投资者可以考虑买入。

3. 2021年

选择2021年的数据,可以确保筛选出最近一年内的股票,更加符合当前市场情况。

选股逻辑分析

以上三个条件结合起来,可以筛选出一些短期和中期趋势一致、价格处于上升趋势中的股票,这些股票可能具有较好的投资价值。

有何风险?

1. 均线重合的股票数量较少

如果市场上符合以上条件的股票数量较少,那么投资者可能会面临股票选择困难的问题,从而影响投资决策。

2. 布林带指标的准确性

布林带指标是一种常用的技术分析工具,但是它并不是100%准确的,投资者需要结合其他因素进行分析。

如何优化?

1. 选择更多的均线

选择更多的均线可以更好地反映股票价格的短期和中期趋势,从而提高筛选出优质股票的准确率。

2. 考虑其他技术指标

除了布林带指标外,投资者还可以考虑其他技术指标,如移动平均线、MACD等,以更加全面地分析股票价格走势。

最终的选股逻辑

以下是最终的选股逻辑:

  1. 筛选出至少5根均线重合的股票。

  2. 筛选出收盘价在布林带上轨处且收盘价高于布林带中轨的股票。

  3. 选择2021年的数据。

  4. 选择更多的均线进行分析。

  5. 结合其他技术指标进行分析。

python代码参考

以下是使用pandas和ta-lib库进行实现的python代码参考:

import pandas as pd
import talib

def bollinger_upper(df):
    upper = talib.BBANDS(df['close'], timeperiod=20, nbdevup=2, nbdevdn=2)
    return upper[1]

def bollinger_mid(df):
    mid = talib.BBANDS(df['close'], timeperiod=20, nbdevup=2, nbdevdn=2)
    return mid[1]

def bollinger_lower(df):
    lower = talib.BBANDS(df['close'], timeperiod=20, nbdevup=2, nbdevdn=2)
    return lower[1]

def select_stock(df):
    # 筛选出至少5根均线重合的股票
    condition1 = df['close'].rolling(window=5).apply(lambda x: len(x) >= 5)
    condition2 = df['close'].rolling(window=5).apply(lambda x: x[-1] > x[-2] and x[-1] > x[-3])
    condition3 = df['close'].rolling(window=5).apply(lambda x: x[-1] > x[-4] and x[-1] > x[-5])
    condition = condition1 & condition2 & condition3
    selected_stocks = df[condition].index.tolist()
    return selected_stocks

def analyze_stock(selected_stocks, df):
    # 筛选出收盘价在布林带上轨处且收盘价高于布林带中轨的股票
    condition1 = df['close'].rolling(window=14).apply(lambda x: x[-1] > bollinger_upper(x))
    condition2 = df['close'].rolling(window=14).apply(lambda x: x[-1] > bollinger_mid(x))
    condition3 = df['close'].rolling(window=14).apply(lambda x: x[-1] > bollinger_lower(x))
    selected_stocks = selected_stocks[condition1 & condition2 & condition3]
    return selected_stocks

def optimize_strategy(selected_stocks, df):
    # 选择更多的均线进行分析
    condition = df['close'].rolling(window=20).apply(lambda x: x[-1] > bollinger_upper(x))
    selected_stocks = selected_stocks[condition]
    return selected_stocks

def final_strategy(selected_stocks, df):
    # 结合其他技术指标进行分析
    condition = df['close'].rolling(window=20).apply(lambda x: x[-1] > bollinger_upper(x) and x[-1] > bollinger_mid(x) and x[-1] > bollinger_lower(x))
    selected_stocks = selected_stocks[

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

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

模板如何使用?

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


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

评论