问财量化选股策略逻辑
选股逻辑:MACD零轴以上、高点为两日最高、10天内涨停天数大于2的股票。
选股逻辑分析
该选股策略主要考虑到股票的技术面和短期趋势,MACD能够反映出当前市场的买卖信号,历史高点能够反映出股票的抵抗力和支撑水平,涨停天数大于2则反映出股票具有一定的市场关注度和活跃性。
有何风险?
以下是该选股逻辑存在的一些风险:
-
涨停天数大于2并不能完全反映出股票的质量,满足该条件的股票也可能存在业绩或财务状况不佳等问题。
-
所选股票的涨停天数与买卖时机无法有效匹配,可能导致投资收益不佳。
-
基于历史高点的选股策略具有一定的滞后性,有可能将一些短期高度波动的股票过滤掉。
如何优化?
以下是对该选股逻辑进行优化的相关建议:
-
需要加入基本面指标及财务指标进行筛选,选取质量更为高端的股票。
-
考虑加入其他短期技术面和市场关注度指标,以提高选股准确性。比如:KDJ、RSI、成交量等指标。
-
需要对历史高点进行相应的修正,避免将一些有良好业绩股票过度过滤。
最终的选股逻辑
根据股票的技术面和市场关注度,加入基本面指标及财务指标综合分析,选取质量更为高端的股票,避免过度依赖涨停天数及历史高点等单一指标。
同花顺指标公式代码参考
- MACD是指数移动平均线的差值,包括快线(12日指数移动平均线)和慢线(26日指数移动平均线),DIF为MACD与其9日指数移动平均值的差值,DEA则是DIF的9日指数移动平均值,BAR为两者的差值;
- 利用count函数统计近期的涨停日期数量。
(HHV(HIGH,2)==HIGH AND MACD(12,26,9)>0 AND COUNT(C>=REF(HIGH,1),10)>2)
python代码参考
def initialize(context):
set_benchmark('000001.XSHG')
set_commission(PerTrade(buy_cost=0.0003, sell_cost=0.0003, min_cost=5))
set_slippage(PriceSlippage(0.002))
set_option('avoid_future_data', True)
def select_stock(context):
stock_list = list(get_index_stocks('000001.XSHG'))
selected = []
for stock in stock_list:
h = attribute_history(stock, 10, '1d', ('high', 'close', 'volume', 'capitalization'), df=True)
# 选股
if (max(h['high']) == h['high'][-2] and talib.MACD(h['close'])[2][-1] > 0 and sum(h['close'] == h['high']) > 2):
selected.append(stock)
# 加入财务和基本面指标,并根据估值水平排序
selected = sorted(selected, key=get_valuation, reverse=True)
return selected
def get_valuation(stock):
pass # 计算股票的估值水平和基本面指标
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


