问财量化选股策略逻辑
- 至少5根均线重合的股票
- 昨天换手率>8%
- 近一个月内有过涨停
选股逻辑分析
这个策略的逻辑是基于技术分析和市场行为分析。首先,选择至少5根均线重合的股票,这表明这些股票的走势比较稳定,可能有较强的趋势。其次,要求昨天换手率大于8%,这表明该股票在昨天有比较活跃的交易,可能存在较大的市场参与度。最后,要求近一个月内有过涨停,这表明该股票在近一个月内有过比较明显的市场表现,可能具有较高的投资价值。
有何风险?
这个策略的局限性在于它只考虑了股票的技术和市场行为因素,而忽略了其他因素,如公司财务状况、行业前景等。此外,如果市场出现较大的变化,这个策略的准确性可能会受到影响。
如何优化?
为了优化这个策略,可以考虑加入其他因素,如公司财务状况、行业前景等,以更好地评估股票的投资价值。此外,可以考虑加入更多的技术指标和市场行为指标,以提高策略的准确性。
最终的选股逻辑
- 选择至少5根均线重合的股票
- 要求昨天换手率大于8%
- 要求近一个月内有过涨停
- 加入公司财务状况和行业前景等其他因素
- 加入更多的技术指标和市场行为指标
python代码参考
import talib
import pandas as pd
def get_stocks():
# 获取所有A股股票
stocks = pd.read_csv('stock_list.csv')
return stocks
def get_stock_data(stocks):
# 获取股票的历史数据
data = pd.read_csv('stock_data.csv')
data = data.set_index(stocks['股票代码'])
return data
def get_stock_trend(data):
# 获取股票的趋势指标
ma5 = talib.MA(data['收盘价'], timeperiod=5)
ma10 = talib.MA(data['收盘价'], timeperiod=10)
ma20 = talib.MA(data['收盘价'], timeperiod=20)
trend = pd.DataFrame({'ma5': ma5, 'ma10': ma10, 'ma20': ma20})
trend.columns = ['ma5', 'ma10', 'ma20']
return trend
def get_stock_volume(data):
# 获取股票的成交量指标
volume = data['成交量']
volume = pd.DataFrame({'volume': volume})
return volume
def get_stock_signal(data):
# 获取股票的信号指标
signal = talib.STOCH(data['收盘价'], fastperiod=14, slowperiod=3, rsi=70)
signal = pd.DataFrame({'signal': signal})
return signal
def get_stock_klrd(data):
# 获取股票的K线形态指标
klrd = talib.KELDRA(data['收盘价'], timeperiod=30)
klrd = pd.DataFrame({'klrd': klrd})
return klrd
def get_stock_score(stocks, data, trend, volume, signal, klrd):
# 计算股票的综合评分
score = 0
score += trend['ma5'] * 0.2
score += trend['ma10'] * 0.3
score += trend['ma20'] * 0.5
score += volume * 0.1
score += signal['signal'] * 0.1
score += klrd['klrd'] * 0.1
return score
def get_top_stocks(stocks, data, n=5):
# 获取前n个综合评分最高的股票
top_stocks = stocks.sort_values(by='score', ascending=False)[:n]
return top_stocks
def main():
# 获取所有A股股票
stocks = get_stocks()
# 获取股票的历史数据
data = get_stock_data(stocks)
# 获取股票的趋势指标
trend = get_stock_trend(data)
# 获取股票的成交量指标
volume = get_stock_volume(data)
# 获取股票的信号指标
signal = get_stock_signal(data)
# 获取股票的K线形态指标
klrd = get_stock_klrd(data)
# 计算股票的综合评分
scores = []
for stock in stocks:
score = get_stock_score(stock, data, trend, volume, signal, klrd)
scores.append(score)
# 获取前5个综合评分最高的股票
top_stocks = get_top_stocks(stocks, scores, n=5)
print(top_stocks)
if __name__
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
