问财量化选股策略逻辑
本选股策略选择振幅大于1、昨日成交额大于6千万、市值100亿以内且近三年无亏损的企业为选取对象。
选股逻辑分析
振幅大于1、昨日成交额大于6千万是为了筛选出短期波动较大的营收较好的股票,以获得更快的利润。同时加入市值的筛选条件是为了控制企业的规模。而加入近三年无亏损的条件则是为了筛选出财务状况较好的企业。
有何风险?
同样是由于短期内价格波动的不确定性,存在追涨杀跌的风险,同时企业财务数据的自我披露也可能存在不确定性和不准确性。
如何优化?
可以加入更多的基本面因素,例如股息率、市销率等用于筛选稳健的企业。同时可以通过其他渠道获取企业财务数据进行验证,例如公开的财务报表及第三方评级机构的数据。
最终的选股逻辑
将本选股策略的最终逻辑定为筛选振幅大于1、昨日成交额大于6千万、市值100亿以内且近三年无亏损的企业为选取对象。
同花顺指标公式代码参考
// 筛选条件1:振幅大于1
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 0.01
// 筛选条件2:昨日成交额大于6千万
last_day_vol_bool = VOLUME > 60000000
// 筛选条件3:市值100亿以内
market_cap_bool = CAPITAL <= 10000000000
// 筛选条件4:近三年净利润均大于0
years = 3
profits = SUM(NETPROFIT > 0, years * 4) == years * 4
// 合并条件
result = amplitude_bool & last_day_vol_bool & market_cap_bool & profits
// 输出结果
result
python代码参考
import tushare as ts
from datetime import date
# 筛选条件1:振幅大于1
now_data = ts.get_today_all()
amplitude = (now_data['high'] - now_data['low']) / now_data['open']
amplitude_bool = amplitude > 0.01
# 筛选条件2:昨日成交额大于6千万
last_day_vol_bool = now_data['volume'] > 60000000
# 筛选条件3:市值100亿以内
market_cap_bool = now_data['mktcap'] <= 10000000000
# 筛选条件4:近三年净利润均大于0
start_year = date.today().year - 3
end_year = date.today().year - 1
profits = now_data['code'].apply(lambda x: ts.get_profit_data(x, start_year, end_year)['net_profits'].sum() > 0)
# 合并条件
result = amplitude_bool & last_day_vol_bool & market_cap_bool & profits
# 筛选结果
final_result = now_data.loc[result]
# 输出结果
print(final_result)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


