问财量化选股策略逻辑
选股逻辑:在 MACD 指标零轴以上、外盘/内盘比例大于1.3、竞价涨幅介于-2%和5%之间的股票中,筛选符合选股条件的股票作为选股结果。
该选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。分析以上的选股逻辑(每个逻辑以 "," 进行分隔),分析选股的逻辑(放入标题为 ## 选股逻辑分析 的段落),有什么风险?(放入标题为 ## 有何风险? 的段落)如何优化?(放入标题为 ## 如何优化? 的段落)并最终给出完善选股逻辑(放入标题为 ## 最终的选股逻辑 的段落),请用 Markdown 格式。
选股逻辑分析
该选股策略基于 MACD 指标、外盘/内盘比例和竞价涨幅等指标,综合考虑股票的走势等因素,筛选符合条件的股票进行选股。
MACD 指标选股逻辑是基于零轴以上的 MACD 柱确认股票在短期和中期存在上涨趋势。外盘/内盘比例则强调市场的风格转移和成交量,可以对市场整体走势产生启示作用。竞价涨幅的指标可以衡量股票短期内的情绪因素和市场表现,适合用于敏感性高的指标进行选择。
有何风险?
该选股策略存在以下风险:
- 该选股策略的逻辑仅考虑了少量的技术指标,过度依赖短期涨幅等因素,跳动变化大,也容易忽略其他影响因素;
- 市场行情变化和交易时间短导致筛选的数据小,会对选股结果产生影响;
- 股票市场的短期波动和风险因素增加,该策略的稳健性可能会收到影响。
如何优化?
以下是该选股策略的优化建议:
- 修正选股逻辑中的竞价涨幅指标,应该结合其他指标一起过滤,提高选股的可靠性和稳健性;
- 引入其他基本面和财务数据指标,例如 EPS、PE 等,提升选股模型的全面性和出错率;
- 除了 MACD 指标外,也应该引入其它技术指标,例如均线、RSI 等指标来进行选股,全面端到端考虑市场和个股因素;
- 区分不同的市场阶段和情况,针对性地调整选股策略和参数,减少市场周期性风险;
- 提高交易策略的全流程控制,包括买卖逻辑的完善、交易代码的错误处理、风险控制策略的创造和最佳性价比的评估等。
最终的选股逻辑
选股策略为:在 MACD 指标零轴以上、外盘/内盘比例大于1.3、竞价涨幅介于-2%和5%之间的股票中,筛选符合选股条件的股票作为选股结果。
同花顺指标公式代码参考
以下是该选股逻辑中涉及到的通达信指标公式:
MACD 指标公式同前面的例子。
计算外盘、内盘等指标的公式为:
VOLH:SUM(IFF(LOW=REF(LOW,1),0,VOL*(2*CLOSE-LOW-HIGH)/(HIGH-LOW)),2);
VOL:SUM(VOL,2);
竞价涨幅的指标在通达信中没有具体的函数计算,需要通过其他指标计算,例如动量指标可以计算出买卖决策的强度来衡量股票上涨的可能性,暂不赘述。
Python代码参考
以下是获取符合选股条件的股票列表的 Python 代码:
import tushare as ts
import pandas as pd
import talib as ta
# 设置 tushare pro 的 token
token = 'your_token_here'
ts.set_token(token)
# 初始化 tushare pro 接口
pro = ts.pro_api()
# 获取符合选股条件的股票列表
result = []
for stock_code in pro.stock_basic(exchange='', list_status='L', is_hs='S', fields='ts_code,symbol,market,industry')['ts_code']:
# 获取 MACD 指标
df_macd = pro.daily(ts_code=stock_code, start_date='20210101', end_date='20211231')
dif = ta.EMA(df_macd['close'].values, 12) - ta.EMA(df_macd['close'].values, 26)
dea = ta.EMA(dif, 9)
macd = (dif - dea) * 2
# 计算外盘和内盘
df_base = pro.moneyflow(ts_code=stock_code, start_date='20210101', end_date='20211231')
vol = df_base['net_mf_vol'].values
volh = df_base['buy_lg_vol'].values + df_base['sell_lg_vol'].values
# 计算竞价涨幅
pct_chg = pro.margin_detail(ts_code=stock_code, start_date='20220101', end_date='20221231')['bs_ratio'].values
# 判断是否符合选股条件
if macd[-1] > 0 and vol[0] / (vol[0] + volh[0]) > 1.3 and -2 < pct_chg[-1] < 5:
result.append(stock_code)
print(result)
注:该代码仅供参考,真实情况中需要根据自己的实际需求进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
