问财量化选股策略逻辑
- 至少5根均线重合的股票
- 9点25分涨幅小于6%
- 15分钟周期MACD绿柱变短
选股逻辑分析
这个策略基于以下三个假设:
- 股票的价格趋势是由均线决定的,当至少5根均线重合时,表明市场趋势较为稳定,可以考虑买入。
- 9点25分涨幅小于6%的股票,表明该股票在开盘时没有受到市场过大的压力,可能有上涨的潜力。
- 15分钟周期MACD绿柱变短,表明市场动能正在减弱,有利于股票价格上涨。
综合以上三个假设,该策略选择在价格趋势稳定、开盘压力较小且动能减弱的股票进行买入。
有何风险?
该策略存在以下风险:
- 均线的选取和参数的设定会影响策略的效果,需要进行不断地测试和优化。
- 9点25分涨幅小于6%的股票并不一定代表该股票有上涨潜力,可能存在误判。
- 15分钟周期MACD绿柱变短也并不一定代表市场动能减弱,可能存在误判。
如何优化?
为了优化该策略,可以考虑以下方法:
- 根据不同的市场环境和股票特点,选择不同的均线组合和参数设定。
- 在开盘阶段,可以考虑使用其他指标来判断股票的压力和动能,以提高准确率。
- 可以使用其他周期的MACD指标来判断市场动能,以提高准确率。
最终的选股逻辑
import tushare as ts
import talib
def get_stocks():
# 获取所有A股股票
stocks = ts.get_stocks()
# 选择至少5根均线重合的股票
filtered_stocks = []
for stock in stocks:
if len(ts.get_k_data(stock, 'close', 5)) >= 5:
filtered_stocks.append(stock)
return filtered_stocks
def get_price_trend(stocks):
# 获取股票价格趋势
price_trend = []
for stock in stocks:
price_trend.append(ts.get_k_data(stock, 'close', 20).rolling(window=5).mean())
return price_trend
def get_macd信号线(macd):
# 获取MACD信号线
signal_line = macd['ema']
return signal_line
def get_macd柱状线(macd):
# 获取MACD柱状线
柱状线 = macd['signal'] - macd['hist']
return柱状线
def get_stock_scores(stocks):
# 获取股票评分
scores = []
for stock in stocks:
price_trend = get_price_trend(stock)
signal_line = get_macd信号线(price_trend)
柱状线 = get_macd柱状线(price_trend)
score = 0
if signal_line[-1] > 0 and柱状线[-1] > 0:
score += 1
if signal_line[-1] < 0 and柱状线[-1] < 0:
score += 1
if signal_line[-1] == 0 and柱状线[-1] == 0:
score += 1
scores.append(score)
return scores
def get筛选后的股票():
# 获取筛选后的股票
stocks = get_stocks()
scores = get_stock_scores(stocks)
filtered_stocks = []
for stock in stocks:
if scores[stock] >= 3:
filtered_stocks.append(stock)
return filtered_stocks
def get_open_price(stocks):
# 获取股票开盘价
open_prices = []
for stock in stocks:
open_prices.append(ts.get_k_data(stock, 'open', 1).values)
return open_prices
def get_stock_scores_15macd(stocks):
# 获取15分钟周期MACD的股票评分
scores = []
for stock in stocks:
macd = talib.MACD(get_open_price(stock), fastperiod=12, slowperiod=26, signalperiod=9)
signal_line = get_macd信号线(macd)
柱状线 = get_macd柱状线(macd)
score = 0
if signal_line[-1] > 0 and柱状线[-1] > 0:
score += 1
if signal_line[-1] < 0 and柱状线[-1] < 0:
score += 1
if signal_line[-1] == 0 and柱状线[-1] == 0:
score += 1
scores.append(score)
return
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


