问财量化选股策略逻辑
选股逻辑为:在换手率在3%-12%之间、连续三天收阴线、前一交易日实际换手率在3%~28%之间时,选取这些股票。
选股逻辑分析
该选股逻辑基于换手率、连续收阴线等技术面因素,同时将前一交易日的实际换手率作为筛选条件。这样既考虑了技术面的因素,也考虑了基本面的情况,提高了选股的精度。
有何风险?
该选股逻辑只考虑了前一交易日的实际换手率,没有考虑到换手率的走势。如果选股时该股票处于换手率较高的位置,但是其实际换手率并未达到筛选条件,可能会漏掉优质股票。
如何优化?
可以进一步考虑加入其它技术面因素,比如收盘价与开盘价的关系等,综合考虑多个因素,继而完善整个选股策略。
最终的选股逻辑
在换手率在3%-12%之间、连续三天收阴线、前一交易日实际换手率在3%~28%之间时,选取这些股票。
同花顺指标公式代码参考
以通达信公式为例:
SETBARS(250,0);
V_SELECT:=MAINbd AND 三连阴(5) AND REF(C, 2) / REF(O, 2) - 1 > 0.03 AND REF(C, 2) / REF(O, 2) - 1 < 0.28;
条件选股:V_SELECT;
python代码参考
import baostock as bs
import pandas as pd
#### 登陆系统 ####
lg = bs.login()
#### 获取满足条件的股票 ####
rs = bs.query_stock_basic()
stock_list = []
while (rs.error_code == '0') & rs.next():
stock_code = rs.get_row_data()[0]
# 查询历史K线和前一交易日的实际换手率
rs_k = bs.query_history_k_data_plus(stock_code, "date,open,high,low,close,tradeStatus,volume,amount,turn,pctChg", start_date='2022-01-01', end_date='2022-07-06', frequency='d', adjustflag='3')
if rs_k.error_code == '0':
close_hist = list(map(float, rs_k.get_column("close")))
volume_hist = list(map(float, rs_k.get_column("volume")))
actual_turnover = volume_hist[-2] / (sum(volume_hist[-5:-1]) / 4)
if len(close_hist) >= 4 and all([close_hist[i] < close_hist[i-1] for i in range(1, 4)]) and actual_turnover > 0.03 and actual_turnover < 0.28:
stock_list.append(stock_code)
# 转换成DataFrame格式并输出结果
df = pd.DataFrame(stock_list, columns=['stock_code'])
print(df)
#### 登出系统 ####
bs.logout()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


