问财量化选股策略逻辑
选股逻辑为振幅大于1、圆弧形、主升起动的股票。
选股逻辑分析
- 振幅大于1可以筛选出成交活跃但不过度的股票,符合短期操作的需求。
- 圆弧形可以筛选出相对于均线波动比较缓和的股票,符合短期操作的需求。
- 主升起动可以筛选出短期内即将启动上涨趋势的股票,符合短期操作的需求。
有何风险?
- 选股逻辑相对单一,容易出现选中垃圾股票的情况。
- 不考虑股票的基本面,存在操作风险。
如何优化?
- 引入更多的技术指标如KDJ等,提高选股策略的可靠性。
- 根据不同股票的基本面加入筛选条件,提高选股策略的可靠性。
最终的选股逻辑
选股逻辑为振幅大于1、圆弧形、主升起动的股票。
同花顺指标公式代码参考
(HIGH-LOW)/OPEN >= 0.01 AND
ABS(((2*CLOSE+HIGH+LOW)/4-MAX(MA(CLOSE,5),MA(CLOSE,20))))/(MAX(MA(CLOSE,5),MA(CLOSE,20))) <= 0.1 AND
(HHV(C,5)-REF(HHV(C,5),5)) = 0 AND
((REG(100*(MA(C,5)-MA(C,30))/MA(C,30), 5) + LLV(100*(MA(C,5)-MA(C,30))/MA(C,30), 15)) * (IF(MA(VOL,5)>MA(VOL,15), 1, 0))) > 0
其中REG表示对数据进行线性回归,HHV表示高价值的最大值,LLV表示低价值的最小值,IF表示判断条件语句。
python代码参考
import akshare as ak
def select():
data = ak.stock_zh_a_daily_sina(symbol='sh000001', adjust='qfq')
selected = []
for code in data['symbol'].unique():
code_data = data[data['symbol']==code]
if (code_data['high']-code_data['low'])/code_data['open'] >= 0.01 \
and abs(((2*code_data['close']+code_data['high']+code_data['low'])/4-talib.MAX(code_data['close'].rolling(window=5).mean(), code_data['close'].rolling(window=20).mean())).iloc[-1])/(talib.MAX(code_data['close'].rolling(window=5).mean(), code_data['close'].rolling(window=20).mean())).iloc[-1] <= 0.1 \
and (talib.MAX(code_data['close'].rolling(window=5).max(), shift=5)-talib.MAX(code_data['close'].rolling(window=5).max(), shift=10)).iloc[-1]==0 \
and ((talib.LINEARREG(100*(code_data['close'].rolling(window=5).mean()-code_data['close'].rolling(window=30).mean())/code_data['close'].rolling(window=30).mean(), timeperiod=5) + talib.LLV(100*(code_data['close'].rolling(window=5).mean()-code_data['close'].rolling(window=30).mean())/code_data['close'].rolling(window=30).mean(), timeperiod=15)) * (code_data['volume'].rolling(window=5).mean()>code_data['volume'].rolling(window=15).mean())).iloc[-1]>0:
selected.append(code)
return selected
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
