问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10日涨幅大于0小于35
- 60开头的股票
选股逻辑分析
- 这个策略首先筛选出至少5根均线重合的股票,这意味着这些股票的短期和长期趋势可能比较一致,从而增加其长期投资价值。
- 然后,策略要求10日涨幅大于0小于35,这意味着这些股票在过去10天内有了一定的上涨,但还没有达到过高的水平。
- 最后,策略要求股票以60开头,这意味着这些股票的市值相对较大,可能更具有投资价值。
有何风险?
- 这个策略可能无法准确预测股票的未来表现,因为其基于过去的数据和趋势。
- 这个策略可能无法考虑到市场变化和突发事件的影响,这些因素可能对股票价格产生重要影响。
- 这个策略可能无法筛选出真正具有投资价值的股票,因为其基于简单的技术指标和趋势分析。
如何优化?
- 可以考虑加入更多的技术指标和趋势分析,以更准确地预测股票的未来表现。
- 可以考虑加入更多的市场因素和突发事件的分析,以更准确地筛选出真正具有投资价值的股票。
- 可以考虑加入更多的量化分析和机器学习技术,以更准确地预测股票的未来表现。
最终的选股逻辑
- 筛选出至少5根均线重合的股票
- 筛选出过去10日涨幅大于0小于35的股票
- 筛选出以60开头的股票
- 加入更多的技术指标和趋势分析
- 加入更多的市场因素和突发事件的分析
- 加入更多的量化分析和机器学习技术
python代码参考
-
import talib
-
import pandas as pd
-
import numpy as np
-
def get_5均线_crossings(data):
-
ma1 = talib.MA(data, timeperiod=5) -
ma2 = talib.MA(data, timeperiod=10) -
ma3 = talib.MA(data, timeperiod=20) -
ma4 = talib.MA(data, timeperiod=50) -
ma5 = talib.MA(data, timeperiod=100) -
for i in range(5): -
if ma1[i] > ma2[i] and ma1[i] > ma3[i] and ma1[i] > ma4[i] and ma1[i] > ma5[i]: -
return True -
return False
-
-
def get_10_day_return(data):
-
return np.log(data[-1] / data[0]) / 10
-
-
def get_60_stocks(data):
-
return data.index.get_level_values(0).unique().sort_values().index[:60]
-
-
def get筛选股票的策略(data):
-
5均线交叉 = get_5均线_crossings(data) -
10日涨幅 = get_10_day_return(data) -
60开头 = data.index.get_level_values(0).unique().sort_values().index[:60] -
stocks = pd.concat([data.loc[ stocks, 5均线交叉 ], data.loc[ stocks, 10日涨幅 ], data.loc[ stocks, 60开头]]) -
return stocks
-
-
以下为测试代码
-
data = pd.read_csv('data.csv')
-
filtered_data = get筛选股票的策略(data)
-
print(filtered_data.head())
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


