问财量化选股策略逻辑
首先,我们需要找到至少5根均线重合的股票。这可以通过计算股票的均线数量来实现。我们可以使用以下代码:
def count均线数量(df):
# 计算股票的均线数量
num均线 = df['close'].rolling(window=5).apply(lambda x: x.count())
return num均线
接下来,我们需要找到股价为18.5元的股票。这可以通过筛选股票的收盘价来实现。我们可以使用以下代码:
def find_price_185(df):
# 筛选出收盘价为18.5元的股票
price_185 = df['close'].apply(lambda x: x == 18.5)
return price_185
然后,我们需要找到2019分红比例>25%的股票。这可以通过筛选股票的分红比例来实现。我们可以使用以下代码:
def find_dividend_ratio(df):
# 筛选出分红比例大于25%的股票
dividend_ratio = df['dividend'].apply(lambda x: x / df['close'] * 100 > 25)
return dividend_ratio
最后,我们需要将以上三个筛选条件组合在一起。我们可以使用以下代码:
def combine筛选条件(df):
# 将三个筛选条件组合在一起
result = df[(count均线数量(df) >= 5) & (find_price_185(df)) & (find_dividend_ratio(df))]
return result
选股逻辑分析
以上策略通过计算股票的均线数量、筛选收盘价为18.5元的股票、筛选分红比例大于25%的股票,从而找到至少5根均线重合、股价为18.5元、2019分红比例大于25%的股票。该策略可能有助于找到具有稳定趋势和高分红潜力的股票。
有何风险?
该策略可能无法考虑到其他因素,例如公司的财务状况、行业发展趋势等。此外,该策略可能无法准确预测股票的未来表现。
如何优化?
我们可以尝试加入其他筛选条件,例如公司的市盈率、市净率等,以更好地评估股票的价值。此外,我们还可以尝试使用不同的技术指标来筛选股票,例如移动平均线、布林线等。
最终的选股逻辑
最终的选股逻辑如下:
def final_selection(df):
# 计算股票的均线数量
num均线 = df['close'].rolling(window=5).apply(lambda x: x.count())
# 筛选出收盘价为18.5元的股票
price_185 = df['close'].apply(lambda x: x == 18.5)
# 筛选出分红比例大于25%的股票
dividend_ratio = df['dividend'].apply(lambda x: x / df['close'] * 100 > 25)
# 将三个筛选条件组合在一起
result = df[(count均线数量(df) >= 5) & (find_price_185(df)) & (find_dividend_ratio(df))]
return result
python代码参考
def count均线数量(df):
# 计算股票的均线数量
num均线 = df['close'].rolling(window=5).apply(lambda x: x.count())
return num均线
def find_price_185(df):
# 筛选出收盘价为18.5元的股票
price_185 = df['close'].apply(lambda x: x == 18.5)
return price_185
def find_dividend_ratio(df):
# 筛选出分红比例大于25%的股票
dividend_ratio = df['dividend'].apply(lambda x: x / df['close'] * 100 > 25)
return dividend_ratio
def combine筛选条件(df):
# 将三个筛选条件组合在一起
result = df[(count均线数量(df) >= 5) & (find_price_185(df)) & (find_dividend_ratio(df))]
return result
def final_selection(df):
# 计算股票的均线数量
num均线 = df['close'].rolling(window=5).apply(lambda x: x.count())
# 筛选出收盘价为18.5元的股票
price_185 = df['close'].apply(lambda x: x == 18.5)
# 筛选出分红比例大于25%的股票
dividend_ratio = df['dividend'].apply(lambda x: x / df['close'] * 100 > 2
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


