问财量化选股策略逻辑
- 至少5根均线重合的股票
- 前25天有涨停
- 换手率3%-12%
选股逻辑分析
- 这个策略的逻辑是寻找均线重合的股票,这可能意味着股票价格在短期内处于趋势性上涨或下跌,因为均线的重合表明市场参与者对股票价格的预期比较一致。
- 同时,策略要求股票在前25天有涨停,这可能意味着股票价格短期内有比较强的上涨动力。
- 最后,策略要求股票的换手率在3%-12%之间,这可能意味着股票的流动性较好,容易进行交易。
有何风险?
- 这个策略的缺点是可能无法准确预测股票的未来表现,因为均线的重合、涨停和换手率等指标只是历史数据的统计结果,不能保证未来也会出现类似的情况。
- 另外,如果股票价格在短期内出现大幅波动,可能会导致策略的收益率出现较大的波动。
如何优化?
- 可以考虑加入更多的技术指标来综合分析股票的价格走势和市场情绪,以提高策略的准确性和稳定性。
- 可以考虑加入股票的基本面数据,例如公司的财务状况、盈利能力等,以更好地评估股票的价值和未来表现。
最终的选股逻辑
- 选取至少5根均线重合的股票
- 选取前25天有涨停的股票
- 选取换手率在3%-12%之间的股票
- 加入其他技术指标和基本面数据,以提高策略的准确性和稳定性
python代码参考
- 导入所需模块和数据源
- 定义函数,根据策略的条件筛选股票
- 输出符合条件的股票列表
示例代码:
import talib
import yfinance as yf
# 设置数据源
data = yf.download('AAPL', start='2020-01-01', end='2021-01-01')
# 定义策略条件
def strategy条件(data):
# 筛选均线重合的股票
ma5 = talib.MA(data['Close'], timeperiod=5)
ma10 = talib.MA(data['Close'], timeperiod=10)
ma20 = talib.MA(data['Close'], timeperiod=20)
ma50 = talib.MA(data['Close'], timeperiod=50)
ma200 = talib.MA(data['Close'], timeperiod=200)
if ma5 == ma10 and ma10 == ma20 and ma20 == ma50 and ma50 == ma200:
return True
else:
return False
# 筛选前25天有涨停的股票
def strategy2(data):
# 筛选有涨停的股票
data['streak'] = data['Close'].diff()
data['streak'] = data['streak'].fillna(0)
data['streak'] = data['streak'].apply(lambda x: 1 if x > 0 else 0)
data = data[(data['Close'] > data['Close'].shift(1)) & (data['streak'] == 1)]
return data
# 筛选换手率在3%-12%之间的股票
def strategy3(data):
# 筛选换手率在3%-12%之间的股票
data['turnover'] = data['Volume'] / data['Close']
data = data[(data['turnover'] > 3) & (data['turnover'] < 12)]
return data
# 综合筛选股票
def strategy(data):
# 筛选符合条件的股票
data = strategy2(data)
data = strategy3(data)
data = data[strategy条件(data)]
return data
# 输出符合条件的股票列表
print(strategy(data))
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


