问财量化选股策略逻辑
选取振幅大于1、机构资金动向大于0、日线MACD大于0的股票作为选股对象。
选股逻辑分析
该选股逻辑同样综合运用了技术面指标和市场热度指标。振幅和机构资金动向作为技术面指标,可以提高对股票吸引力的把握。日线MACD则可以直观的反映当前市场的热度和强弱,更有利于把握市场趋势。
有何风险?
该选股逻辑同样可能会因市场情况和股票个别情况产生一定偏差,同时MACD指标可能会存在滞后性,可能会对市场趋势的判断产生一定影响。
如何优化?
可以增加其他技术面指标,比如相对强弱指标(RSI)、布林带等,以增强对市场趋势的预测能力,同时增加板块、市场和资金流向等宏观指标的考虑,综合分析股票的投资价值和盈利空间,以提高选股效果和风险控制能力。
最终的选股逻辑
选取振幅大于1、机构资金动向大于0、日线MACD大于0的股票作为选股对象,同时增加相对强弱指标(RSI)、布林带等因素作为补充指标,综合分析股票的投资价值和盈利空间,以提高选股效果和风险控制能力。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 1
// 筛选机构资金动向大于0的股票
FUND_NET_AMOUNT = IF(NETFAMOUNT>0,NETFAMOUNT,0)
sum_fund_net_amount = SUM(FUND_NET_AMOUNT, 5)
fund_trend_bool = sum_fund_net_amount > 0
// 筛选日线MACD大于0的股票
DIF = EMA(CLOSE,12) - EMA(CLOSE,26)
DEA = SMA(DIF,9)
MACD = 2*(DIF-DEA)
macd_bool = MACD > 0
// 筛选符合条件的股票
result = amplitude_bool & fund_trend_bool & macd_bool
// 输出筛选结果
result
Python代码参考
import tushare as ts
# 筛选条件1:振幅大于1
today_data = ts.get_today_all()
amplitude = (today_data['high'] - today_data['low']) / today_data['open']
amplitude_bool = amplitude > 1
# 筛选条件2:机构资金动向大于0
fund_data = ts.fund_holdings(2020, 3)
sum_fund_net_amount = fund_data.groupby('code')['net_amount'].sum().fillna(0)
fund_trend_bool = sum_fund_net_amount > 0
# 筛选条件3:日线MACD大于0
macd_data = ts.get_k_data('sh', ktype='D', autype='qfq', start='20200101', end='20210101')
EMA_12 = macd_data['close'].ewm(span=12, adjust=False).mean()
EMA_26 = macd_data['close'].ewm(span=26, adjust=False).mean()
DIF = EMA_12 - EMA_26
DEA = DIF.ewm(span=9, adjust=False).mean()
MACD = (DIF - DEA) * 2
macd_bool = MACD > 0
# 筛选符合条件的股票
result = amplitude_bool & fund_trend_bool & macd_bool
# 输出筛选结果
final_result = today_data.loc[result].sort_values(by=["turnoverratio"],ascending=False)
print(final_result)
注:以上为示例代码,请根据实际情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
