问财量化选股策略逻辑
- 至少5根均线重合的股票
- 收益>0
- 20日均线大于120日均线
选股逻辑分析
这个策略的逻辑是基于技术分析的,主要关注股票的价格趋势和均线系统。首先,策略要求股票至少有5根均线重合,这可能意味着股票的价格趋势比较稳定,同时也可能表明股票的价格在某个范围内波动较小。其次,策略要求股票的收益要大于0,这表明股票必须是上涨的。最后,策略要求20日均线大于120日均线,这可能意味着股票的短期趋势比长期趋势更加积极。
有何风险?
这个策略的潜在风险包括市场风险、技术分析的局限性以及交易成本等。首先,市场风险是指股票市场的价格波动可能会对策略的收益产生负面影响。其次,技术分析的局限性意味着策略可能会忽略一些重要的因素,例如公司的基本面和行业发展趋势等。最后,交易成本也可能对策略的收益产生负面影响,因为交易成本可能会降低策略的收益率。
如何优化?
为了优化这个策略,可以考虑以下几点:
- 改变均线周期:可以尝试使用不同的均线周期来筛选股票,例如使用30日均线、60日均线等,以期找到更合适的策略参数。
- 考虑加入其他因素:可以考虑加入其他因素来辅助筛选股票,例如公司的财务数据、行业发展趋势等。
- 使用量化交易工具:可以使用量化交易工具来自动执行交易,以降低交易成本和提高交易效率。
最终的选股逻辑
- 股票至少有5根均线重合
- 收益率大于0
- 20日均线大于120日均线
- 可以考虑加入其他因素,例如公司的财务数据、行业发展趋势等
- 可以使用量化交易工具来自动执行交易
python代码参考
import talib
def get_moving_average(prices, n):
"""
计算n日移动平均线
"""
MA = talib.MA(prices, n)
return MA
def get_stock筛选逻辑(prices, n1, n2, n3):
"""
筛选至少有n1日均线重合、收益率大于0、20日均线大于120日均线的股票
"""
ma1 = get_moving_average(prices, n1)
ma2 = get_moving_average(prices, n2)
ma3 = get_moving_average(prices, n3)
if len(set(prices)) == len(prices):
return False
if ma1[-1] == ma2[-1] == ma3[-1]:
return True
if ma1[-1] > ma2[-1] and ma1[-1] > ma3[-1]:
return True
return False
# 以下为示例代码,需根据实际情况进行修改
# 例如,使用wind数据源,获取上证综指的历史数据
import wind as wb
data = wb.Data('000300.XSHG', start='2010-01-01', end='2021-12-31')
# 筛选出至少有5日均线重合、收益率大于0、20日均线大于120日均线的股票
filtered_data = data[(data['close'] > data['close'].rolling(window=5).mean()) &
(data['close'] > data['close'].rolling(window=20).mean()) &
(data['close'] > data['close'].rolling(window=120).mean()) &
get_stock筛选逻辑(data['close'], 5, 20, 120)]
# 输出筛选结果
print(filtered_data)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


