问财量化选股策略逻辑
这个策略的逻辑是基于以下三个条件来筛选股票:
- 至少5根均线重合的股票
- 收盘价<boll(upper值)且收盘价>boll(mid值)
- 20日均线大于120日均线
选股逻辑分析
这个策略的逻辑看起来比较清晰,主要是通过均线和布林线来筛选股票。首先,至少5根均线重合的股票意味着这些股票的均线走势比较稳定,可以作为买入的参考。其次,收盘价<boll(upper值)且收盘价>boll(mid值)意味着这些股票的价格在布林线的上轨和中轨之间,表明价格处于相对高位,有回调的风险。最后,20日均线大于120日均线意味着这些股票的短期趋势比长期趋势更加乐观,可以作为买入的参考。
有何风险?
这个策略的逻辑看起来比较简单,但是仍然存在一些风险。首先,均线和布林线的指标并不是完全准确的,可能会导致筛选出的股票不符合实际情况。其次,即使筛选出的股票符合这些条件,仍然存在价格回调的风险。最后,由于这个策略是基于短期趋势和长期趋势的判断,因此可能会忽略一些长期趋势更加重要的因素。
如何优化?
为了优化这个策略,可以考虑以下几点:
- 使用更多的均线和布林线指标来筛选股票,以提高筛选的准确率。
- 考虑加入其他指标,如MACD、RSI等,来更好地判断股票的趋势。
- 对于筛选出的股票,可以进行进一步的分析和筛选,以确定是否值得买入。
最终的选股逻辑
最终的选股逻辑如下:
- 选择至少5根均线重合的股票。
- 选择收盘价在布林线的上轨和中轨之间的股票。
- 选择20日均线大于120日均线的股票。
- 对于筛选出的股票,进行进一步的分析和筛选,以确定是否值得买入。
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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。