问财量化选股策略逻辑
选股逻辑:MACD零轴以上,今日均线向上发散,换手率3%-12%。
选股逻辑分析
该选股逻辑通过筛选MACD零轴以上、今日均线向上发散和换手率处于一定范围内的股票。通过MACD和均线指标判断趋势,通过换手率排除过度活跃或不够活跃的股票,寻找合适的交易机会。
有何风险?
- 换手率只是参考指标,只考虑了股票的流动性,而未考虑股票具体的交易情况;
- 需要结合其他基本面、行业及市场因素进行综合分析。
如何优化?
- 结合市场和行业趋势进行交易决策和风险控制;
- 基于信号组合或事件驱动等方法构建更为全面有效的量化选股策略。
最终的选股逻辑
经过分析和优化,最终的选股逻辑为:MACD零轴以上,今日均线向上发散,换手率处于一定范围(如3%-12%)内的股票。在筛选过程中,还需要结合其他行业和市场因素进行综合分析,选择具有潜力和价值的股票。
同花顺指标公式代码参考
MACD指标:
DIF:EMA(CLOSE,12)-EMA(CLOSE,26)
DEA:EMA(DIF,9)
MACD:(DIF-DEA)*2
均线指标:
MA5:MA(CLOSE,5)
MA10:MA(CLOSE,10)
换手率指标(假设Volume、VolumeRatio、Capitalization为通达信指标):
VolumeRatio:MA(Volume/Capitalization,20)
换手率范围:
3%≤VolumeRatio≤12%
python代码参考
以下为python的股票筛选代码,仅供参考:
import akshare as ak
import pandas as pd
# 获取股票基本面数据
stock_info = ak.stock_board_industry_name_ths()
# 获取股票历史行情数据
df = ak.stock_zh_a_hist_sina("sh000001")
# 计算MACD指标
ema12 = df['close'].ewm(span=12).mean()
ema26 = df['close'].ewm(span=26).mean()
DIF = ema12 - ema26
DEA = DIF.ewm(span=9).mean()
MACD = (DIF - DEA) * 2
# 计算均线指标
ma5 = df['close'].rolling(5).mean()
ma10 = df['close'].rolling(10).mean()
# 计算换手率指标
volume_ratio = (df['volume'] / df['amount']) / df['circulating_market_cap']
volume_ratio_ma20 = volume_ratio.rolling(20).mean()
# 筛选MACD零轴以上
condition1 = MACD > 0
# 筛选今日均线向上发散
condition2 = (ma5 > ma10) & (ma5.shift(1) < ma10.shift(1))
# 筛选换手率范围
condition3 = (volume_ratio_ma20 >= 0.03) & (volume_ratio_ma20 <= 0.12)
# 筛选具有良好基本面的股票
condition4 = ...
# 结合其他条件及权重
condition5 = ...
# 组合所有条件
all_conditions = condition1 & condition2 & condition3 & condition4 & condition5
# 输出选股结果
stock_list = df[all_conditions]['code']
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


