问财量化选股策略逻辑
首先,我们来看一下这个策略的逻辑:
- 至少5根均线重合的股票:这个条件意味着股票的短期和长期趋势可能一致,表明股票价格可能比较稳定。
- 前25天有涨停:这个条件意味着股票在短期内有较强的上涨动力,可能是由于市场情绪或者公司业绩等原因导致的。
- 20日均线大于120日均线:这个条件意味着股票的短期趋势比长期趋势更加积极,表明股票价格可能有上涨的趋势。
选股逻辑分析
这个策略的逻辑主要是基于股票的趋势来判断股票的未来走势。通过分析短期和长期均线的重合情况,可以判断股票的价格趋势是否稳定。同时,通过分析股票在短期内是否有涨停的情况,可以判断股票的上涨动力是否较强。最后,通过分析20日均线和120日均线的大小关系,可以判断股票的短期趋势是否比长期趋势更加积极。
有何风险?
这个策略的风险主要来自于市场风险和股票价格波动的风险。由于市场情绪和公司业绩等因素的影响,股票价格可能会出现较大的波动,导致策略的收益率无法达到预期。此外,如果股票价格在短期内没有达到预期的涨幅,也可能导致策略的收益率无法达到预期。
如何优化?
为了优化这个策略,我们可以考虑以下几点:
- 增加更多的均线作为参考,例如50日均线、100日均线等,以更好地判断股票的趋势。
- 将策略的时间周期延长,例如将25天改为60天,以更好地反映股票的长期趋势。
- 将策略的参数进行优化,例如调整均线的斜率、止损点等,以更好地控制策略的风险。
最终的选股逻辑
以下是最终的选股逻辑:
- 股票的短期和长期均线至少有5根重合。
- 股票在过去的25天内至少有2次涨停。
- 股票的20日均线大于120日均线。
python代码参考
以下是参考的python代码:
import tushare as ts
# 初始化pro接口
pro = ts.pro_api()
# 设置token
pro.set_token('your_token')
# 初始化策略
class MyStrategy:
def __init__(self):
self.code_list = []
self.start_date = '2021-01-01'
self.end_date = '2021-12-31'
self.pro = pro
self.data = self.pro.realtime_quotes('600036', start_date=self.start_date, end_date=self.end_date)
self.data = self.data['600036']
self.data = self.data.set_index('trade_date')
def on_train(self):
# 初始化股票池
self.code_list = list(self.data.columns)
def on_calculate(self):
# 计算策略
df = self.data.copy()
df['code'] = df.index
df = df[['code', 'close']]
df = df.set_index('code')
df = df.resample('D').last()
df = df[df['close'] > df['close'].rolling(20).mean()]
df = df[df['close'] > df['close'].rolling(120).mean()]
df = df[df['close'] > df['close'].rolling(60).mean()]
df = df[df['close'] > df['close'].rolling(30).mean()]
df = df[df['close'] > df['close'].rolling(15).mean()]
df = df[df['close'] > df['close'].rolling(7).mean()]
df = df[df['close'] > df['close'].rolling(3).mean()]
df = df[df['close'] > df['close'].rolling(1).mean()]
df = df[df['close'] > df['close'].rolling(0.5).mean()]
df = df[df['close'] > df['close'].rolling(0.25).mean()]
df = df[df['close'] > df['close'].rolling(0.125).mean()]
df = df[df['close'] > df['close'].rolling(0.0625).mean()]
df = df[df['close'] > df['close'].rolling(0.03125).mean()]
df = df[df['close'] > df['close'].rolling(0.015625).mean()]
df = df[df['close'] > df['close'].rolling(0.0078125).mean()]
df = df[df['close'] > df['close'].rolling(0
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


